+++
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 και τις γενικότερες κατευθύνσεις που μου έδωσε.
