True Type Fonts σε Linux: Γιατί και πως.
Κωνσταντίνος Κοτσόκαλης C.Kotsokalis@ece.ntua.gr
Δεκέμβριος 1998
Ένα από τα σημαντικότερα προβλήματα των χρηστών 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 και τις
γενικότερες κατευθύνσεις που μου έδωσε.