Τι είναι ένα αρχείο TTF;
Ένα αρχείο με επέκταση .ttf αντιπροσωπεύει αρχεία γραμματοσειρών που βασίζονται στην τεχνολογία γραμματοσειρών προδιαγραφών TrueType. Αρχικά σχεδιάστηκε και κυκλοφόρησε από την Apple Computer, Inc για Mac OS και αργότερα υιοθετήθηκε από τη Microsoft για Windows OS. Οι γραμματοσειρές TrueType παρέχουν την υψηλότερη ποιότητα εμφάνισης σε οθόνες υπολογιστών και εκτυπωτές χωρίς καμία εξάρτηση από την ανάλυση. Όλες οι σύγχρονες εφαρμογές που χρησιμοποιούν γραμματοσειρές μπορούν να λειτουργήσουν με αρχεία TTF. Τα αρχεία γραμματοσειρών TTF είναι ελεύθερα διαθέσιμα μέσω του Διαδικτύου και μπορούν επίσης να μετατραπούν σε άλλες μορφές αρχείων γραμματοσειράς όπως OTF και WOFF.
Σύντομη Ιστορία
Σχεδιασμένο από την Apply Computer, Inc τη δεκαετία του 1980 για MacOS, η μορφή γραμματοσειράς TTF είχε ως στόχο την επίλυση ορισμένων τεχνικών περιορισμών από τη μορφή τύπου 1 της Adobe. Η Apple συμπεριέλαβε υποστήριξη για γραμματοσειρές TrueType στο Mac το 1991. Ο σχεδιαστικός στόχος πίσω από τις γραμματοσειρές TTF ήταν η αποτελεσματικότητα στην αποθήκευση και την επεξεργασία και η επεκτασιμότητα. Με βάση αυτήν την επεκτασιμότητα, οι υπάρχουσες γραμματοσειρές μπορούν να μετατραπούν σε μορφή TrueType.
Η Microsoft χρησιμοποίησε για πρώτη φορά τις γραμματοσειρές TrueType στα Windows 3.1 τον Απρίλιο του 1992, αφού η Apple συμφώνησε να χορηγήσει άδεια χρήσης TrueType στη Microsoft. Βελτίωσε τον μηχανισμό ραστεροποίησης και βελτίωσε την αποτελεσματικότητα και την απόδοσή του.
Προδιαγραφές μορφής αρχείου True Type
Ένα αρχείο γραμματοσειράς TrueType είναι ένα δυαδικό αρχείο που αποτελείται από μια ακολουθία συνδυασμένων πινάκων. Κάθε πίνακας είναι μια ακολουθία λέξεων και έχει ένα όνομα γνωστό ως «Ετικέτα». Κάθε ετικέτα είναι τύπου δεδομένων uint32 και αποτελείται από τέσσερις χαρακτήρες. Ο πρώτος πίνακας στο αρχείο είναι ο κατάλογος γραμματοσειρών που δίνει πρόσβαση σε άλλους πίνακες στο αρχείο γραμματοσειρών. Τα δεδομένα γραμματοσειράς περιέχονται σε άλλους πίνακες που ακολουθούνται μετά τον πίνακα καταλόγου γραμματοσειρών. Δεδομένου ότι κάθε πίνακας είναι προσβάσιμος από την ετικέτα του, οι πίνακες μπορούν να εμφανίζονται με οποιαδήποτε σειρά στο αρχείο.
Οι απαιτούμενοι πίνακες και τα ονόματα των ετικετών τους εμφανίζονται στον παρακάτω πίνακα.
Ετικέτα | Πίνακας |
---|---|
‘cmap’ | αντιστοίχιση χαρακτήρων σε γλυφή |
‘γλυφ’ | δεδομένα γλυφών |
‘κεφάλι’ | κεφαλίδα γραμματοσειράς |
‘χαχα’ | οριζόντια κεφαλίδα |
‘hmtx’ | οριζόντιες μετρήσεις |
’loca' | ευρετήριο με τοποθεσία |
‘maxp’ | μέγιστο προφίλ |
‘όνομα’ | ονοματοδοσία |
‘ανάρτηση’ | PostScript |
Τύποι δεδομένων
Οι γραμματοσειρές TrueType χρησιμοποιούν τους τυπικούς ακέραιους και πρόσθετους τύπους δεδομένων όπως αναφέρονται στον παρακάτω πίνακα.
Τύπος δεδομένων | Περιγραφή |
---|---|
shortFrac | 16-bit υπογεγραμμένο κλάσμα |
Διορθώθηκε | 16,16-bit υπογεγραμμένος αριθμός σταθερού σημείου |
FWord | Ακέραιος αριθμός 16-bit που περιγράφει μια ποσότητα σε FUnits, τη μικρότερη μετρήσιμη απόσταση στο χώρο em. |
uFWord | Ακέραιος ανυπόγραφος 16-bit που περιγράφει μια ποσότητα σε FUnits, τη μικρότερη μετρήσιμη απόσταση στο χώρο em. |
F2Dot14 | Σταθερός αριθμός 16-bit με τα χαμηλά 14 bit να αντιπροσωπεύουν κλάσμα. |
longDateTime | Η μεγάλη εσωτερική μορφή μιας ημερομηνίας σε δευτερόλεπτα από τις 12:00 τα μεσάνυχτα, 1 Ιανουαρίου 1904. Αντιπροσωπεύεται ως υπογεγραμμένος ακέραιος αριθμός 64 bit. |
Κατάλογος γραμματοσειρών
Ο πρώτος πίνακας στη γραμματοσειρά TrueType είναι ο κατάλογος γραμματοσειρών που παρέχει πρόσβαση στις πληροφορίες που απαιτούνται για την πρόσβαση σε δεδομένα σε άλλους πίνακες. Αποτελείται περαιτέρω από:
- «Υποπίνακας offset» - διατηρεί αρχείο των πινάκων στη γραμματοσειρά και παρέχει πληροφορίες μετατόπισης για πρόσβαση σε κάθε πίνακα στον κατάλογο
- «Κατάλογος πίνακα» - Περιέχει καταχωρήσεις για κάθε πίνακα στη γραμματοσειρά
Υποπίνακας μετατόπισης
Ο υποπίνακας offset φαίνεται παρακάτω.
Τύπος | Όνομα | Περιγραφή |
---|---|---|
uint32 | τύπος κλιμάκωσης | Μια ετικέτα που υποδεικνύει τον ρυθμιστή OFA που θα χρησιμοποιηθεί για την ραστεροποίηση αυτής της γραμματοσειράς. δείτε τη σημείωση για τον τύπο κλιμάκωσης παρακάτω για περισσότερες πληροφορίες. |
ενότητα16 | numTables | αριθμός πινάκων |
ενότητα16 | Εύρος αναζήτησης | (μέγιστη ισχύς 2 <= numTables)*16 |
ενότητα16 | είσοδοςΕπιλογέας | log2(μέγιστη ισχύς 2 <= numTables) |
ενότητα16 | rangeShift | numTables*16-searchRange |
Κατάλογος πίνακα
Ο κατάλογος του πίνακα έρχεται αμέσως μετά τον υποπίνακα μετατόπισης. Η δομή του είναι όπως φαίνεται στον παρακάτω πίνακα.
Τύπος | Όνομα | Περιγραφή |
---|---|---|
uint32 | ετικέτα | Αναγνωριστικό 4 byte |
uint32 | checkSum | άθροισμα ελέγχου για αυτόν τον πίνακα |
uint32 | αντιστάθμιση | μετατόπιση από την αρχή του sfnt |
uint32 | μήκος | μήκος αυτού του πίνακα σε byte (το πραγματικό μήκος δεν έχει συμπληρωθεί το μήκος) |
Κάθε πίνακας σε ένα αρχείο γραμματοσειράς πρέπει να έχει τη δική του καταχώρηση καταλόγου πίνακα. Οι εγγραφές σε έναν πίνακα πρέπει να ταξινομηθούν σε αύξουσα σειρά ανά ετικέτα.