93 γραμμές
10 KiB
Markdown
93 γραμμές
10 KiB
Markdown
|
+++
|
|||
|
title = 'True Type Fonts σε Linux: Γιατί και πως.'
|
|||
|
date = '1998-12-01T00:00:00Z'
|
|||
|
description = ''
|
|||
|
author = 'Κωνσταντίνος Κοτσόκαλης'
|
|||
|
issue = ['Magaz 10']
|
|||
|
issue_weight = 5
|
|||
|
+++
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*Ένα από τα σημαντικότερα προβλήματα των χρηστών Linux έχει να κάνει με τα fonts (γραμματοσειρές) των X-Windows όσον αφορά τόσο στο localization (την δυνατότητα
|
|||
|
δηλαδή να διαβάζουμε/γράφουμε σε πολλές διαφορετικές γλώσσες, όσο και την εμφάνιση των γραμματοσειρών στην οθόνη μας αλλά και τις εκτυπώσεις μας συχνά. Στο
|
|||
|
κείμενο αυτό θα προσπαθήσουμε να δώσουμε κάποιες σχετικά εύκολες λύσεις στο πρόβλημα αυτό, προτείνοντας ένα τρόπο να χρησιμοποιούνται True Type fonts (τα fonts
|
|||
|
που χρησιμοποιούν και τα MS Windows). Το ζήτημα των γραμματοσειρών, του localization, του font rendering κλπ είναι ιδιαίτερα μεγάλο και δυσεπίλυτο και εγώ δεν
|
|||
|
έχω σημαντική γνώση επάνω σε αυτό. Ενδεχομένως στο κείμενο που ακολουθεί να υπάρχουν λάθη - ελπίζω όχι χονδροειδή -, εάν βρείτε τέτοια θα παρακαλούσα να με
|
|||
|
ενημερώσετε με mail στη διεύθυνση <C.Kotsokalis@ece.ntua.gr>.*
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Υπάρχουν δύο είδη γραμματοσειρών, τα scalable και τα bitmap fonts. Τα scalable μπορούν να αλλάζουν μεγέθη ανάλογα με τις απαιτήσεις της εκάστοτε εφαρμογής χωρίς
|
|||
|
να χάνουν την ποιότητά τους, ενώ δεν έχουν τυποποιημένα μεγέθη. Αντίθετα, τα bitmap fonts υπάρχουν σε συγκεκριμένα μεγέθη (π.χ. 8,10,12,14,16,18,20,24 κλπ
|
|||
|
points). Εάν λοιπόν εσείς επιθυμείτε να χρησιμοποήσετε ένα bitmap font με μέγεθος για παράδειγμα 40 ενώ το μέγεθος αυτό δεν ορίζεται στη συγκεκριμένη
|
|||
|
γραμματοσειρά, τότε το αποτέλεσμα θα είναι πολύ άσχημο. Αυτό που θα συμβεί είναι η απλή μεγέθυνση ή σμίκρυνση του αμέσως μικρότερου ή αμέσως μεγαλύτερου font
|
|||
|
στο επιθυμητό μέγεθος και αυτό που θα δείτε στην οθόνη σας θα είναι γεμάτο \`\`σκαλάκια\'\' και καθόλου ευχάριστο οπτικά.
|
|||
|
|
|||
|
Ο κόσμος του Unix γενικότερα αντιμετωπίζει αυτό το πρόβλημα. Οι γραμματοσειρές Type1 ήλθαν να το λύσουν όντας scalable fonts. Παρόλα αυτά, η ποιότητά τους δεν
|
|||
|
είναι τόσο καλή όσο των True Type fonts τα οποία είναι επίσης scalable. Αν λοιπόν θέλετε να έχετε την καλύτερη δυνατή ποιότητα για τα fonts των εφαρμογών που
|
|||
|
τρέχετε, ακολουθήστε τις παρακάτω συμβουλές. Πριν ξεκινήσουμε να τονίσω πως σε γενικές γραμμές τόσο οι Type1 όσο και οι TT γραμματοσειρές είναι εμπορικές - ενώ
|
|||
|
bitmap μπορείτε να βρείτε και free. Εάν έχετε αγοράσει τα MS Windows, μπορείτε να χρησιμοποιήσετε τα fonts που έρχονται μαζί με αυτά (Κατάλογος:
|
|||
|
\\windows\\fonts ή \\winnt\\fonts). Διαφορετικά μπορείτε να αγοράσετε TTF sets από οποιοδήποτε μαγαζί με software.
|
|||
|
|
|||
|
Αυτό που πρέπει αναγκαία να έχουμε, είναι ένα truetype engine. Ένα τέτοιο που κάνει πολύ καλά τη δουλειά του και είναι freeware, είναι το freetype.
|
|||
|
Προμηθευτείτε το από το <http://www.freetype.org> και κάντε compile σύμφωνα με τις οδηγίες που έχει μέσα\... Είναι το κλασσικό ./configure; make; make install.
|
|||
|
Αφού γίνει αυτό το βήμα, πρέπει να εγκαταστήσετε έναν X11 Truetype font server. Ένας τέτοιος που είναι freeware και δουλεύει τέλεια στο Redhat 5.1 σύστημά μου
|
|||
|
είναι ο xfsft που βασίζεται στην freetype. Υπάρχει και ο xfstt που είναι ανεξάρτητος της freetype engine, αλλά δεν τον έχω δοκιμάσει ακόμα. Ο xfsft είναι αυτή
|
|||
|
τη στιγμή σε beta version αλλά αυτό δεν πρέπει να σας προβληματίζει. Μπορείτε να τον κατεβάσετε από τη διευθυνση
|
|||
|
<ftp://ftp.dcs.ed.ac.uk/pub/jec/programs/xfsft/beta> - βρείτε την πιο πρόσφατη έκδοση, παρτε την και κάντε compiling. Υπάρχει και ένα precompiled binary gia
|
|||
|
redhat 5.x (ουσιαστικα για glibc 2). Μέσα στα sources υπάρχουν και χρήσιμα readme files οπότε καλό είναι να τα έχετε κάπου και αυτά. Ένα τελευταίο που θα
|
|||
|
χρειαστείτε είναι το ttmkfdir ή το ttinst από το <ftp://ftp.dcs.ed.ac.uk/pub/jec/programs/xfsft/contrib>. Αφού έχετε πάρει όλα τα παραπάνω ακολουθείτε τα εξής
|
|||
|
βήματα:
|
|||
|
|
|||
|
- Εγκατάσταση της freetype
|
|||
|
- Αντιγραφή των windows truetype fonts σε κάποιο directory, π.χ. /usr/X11R6/lib/X11/fonts/TTF. **ΜΗΝ ΞΕΧΑΣΕΤΕ ΝΑ ΣΒΗΣΕΤΕ ΟΛΑ ΤΑ ΑΡΧΕΙΑ ΠΟΥ ΔΕΝ ΕΧΟΥΝ ΚΑΤΑΛΗΞΗ
|
|||
|
.TTF (ή .ttf :-))!!!**
|
|||
|
- Εγκατάσταση του ttmkfdir ή του ttinst. Εγώ δοκίμασα το ttmkfdir. Γίνεται compiling με gcc -o ttmkfdir ttmkfdir.c -lttf και μετά στο directory
|
|||
|
/usr/X11R6/lib/X11/fonts/TTF τρέχετε ttmkfdir \< fonts.scale
|
|||
|
- Εγκατάσταση του xfsft, π.χ. σαν /usr/local/bin/xfs. Πρέπει να φτιάξετε και ένα configuration file, π.χ. /usr/local/etc/xfs-conf.
|
|||
|
|
|||
|
Ένα sample configuration file είναι το παρακάτω:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
clone-self = off
|
|||
|
use-syslog = off
|
|||
|
|
|||
|
client-limit = 20
|
|||
|
|
|||
|
# Εδώ βάλτε το directory με τα ttfs.
|
|||
|
catalogue = /usr/X11R6/lib/X11/fonts/TTF
|
|||
|
|
|||
|
error-file = /tmp/xfs.errors
|
|||
|
|
|||
|
# in decipoints
|
|||
|
default-point-size = 120
|
|||
|
|
|||
|
# x,y
|
|||
|
default-resolutions = 100,100,75,75
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Στη συνέχεια προσθέστε στο rc.local του υπολογιστή σας ώστε να εκτελείται κάθε φορά που ξεκινάει, τη γραμμή:\
|
|||
|
/usr/local/bin/xfs -port 7100 -config /usr/local/etc/xfs-conf &\
|
|||
|
όπου έχετε προσαρμόσει κατάλληλα τα paths και filenames, ενώ μπορείτε να την εκτελέσετε και αυτή τη στιγμή ώστε να μη χρειάζεται reboot μέχρι να απολαύσετε τα
|
|||
|
αποτελέσματα :-). Εάν είστε σε περιβάλλον X εκτελέστε την εντολή\
|
|||
|
xset +fp tcp/localhost:7100; xset fp rehash\
|
|||
|
και προσθέστε και τις δύο εντολές στο .xinitrc file σας, ώστε να εκτελούνται κάθε φορά που ξεκινάτε τα X-windows:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
xset +fp tcp/localhost:7100
|
|||
|
xset fp rehash
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Αμέσως μετά από τα παραπάνω και αν τα έχετε κάνει όλα σωστά, μπορείτε να εκτελέσετε:\
|
|||
|
xlsfonts \| grep microsoft\
|
|||
|
για να δείτε όλα τα standard windows fonts τα οποία μπορείτε να χρησιμοποιήσετε κανονικά στις Χ-εφαρμογές σας! Προφανώς μπορείτε να χρησιμοποιήσετε έτσι και
|
|||
|
όποια άλλα fonts για windows, όπως τα ελληνικά της magenta, ή άλλα. Περιττό να πούμε ότι ο συνδυασμός TTF και ελληνικών στο Linux δίνει τεράστια ώθηση στη χρήση
|
|||
|
του από Έλληνες. Για το πως θα γραφετε ελληνικά - ενδεχομένως εκμεταλλευόμενοι τα True Type fonts - δείτε το grkbd του Γιάννη Τσακίρη ή τα grISOxkb του Δημήτρη
|
|||
|
Μπούρα κλπ.
|
|||
|
|
|||
|
CREDITS: Στον Αλέξη Ζάβρα για τα πολύτιμα URLs και τις γενικότερες κατευθύνσεις που μου έδωσε.
|