# TrueType

Il TrueType è un formato di caratteri sviluppato originariamente da Apple alla fine degli anni 1980 in competizione con i font Type 1 usati da Adobe nel PostScript. Oggi il True Type Font (TTF) è il formato standard per utenti Windows, mentre gli utenti Mac, pur utilizzandolo, sono ancora legati al formato PostScript (PS).
Per capire la differenza tra i due formati bisogna distinguere tra caratteri per la stampa e caratteri di "sistema" per la visualizzazione sullo schermo.
Il Mac utilizza un formato TrueType (non compatibile con Windows) che è adatto alla visualizzazione su schermo. Tale formato ha la peculiarità di cercare di visualizzare sullo schermo tali caratteri mascherando lo spiacevole effetto pixel che rende frastagliate (quadrettate o pixellate) le linee non verticali né orizzontali e le curve.
Il carattere PostScript, invece, contiene le informazioni per la stampa e permette che le informazioni vettoriali legate ai caratteri siano comprese adeguatamente dalle stampanti (principalmente da quelle professionali del tipo PostScript appunto, che comprendono tali informazioni). In entrambi i casi si tratta di differenze minime apprezzabili da un tipografo esperto o da un graphic designer, per cui a prima vista un documento stampato usando un carattere TTF per Mac sembra non contenere scalettature, ma in realtà non è così.
Il sistema Windows utilizza un formato TTF (compatibile con Mac) che contiene sia le informazioni per la stampa sia quelle per la visualizzazione su schermo. Generalmente Windows, quindi, non usa PS ma solamente TTF.
Per la stampa professionale, sono stati sviluppati anche altri tipi di carattere quali ad esempio Apple Advanced Typography (AAT) e OpenType che differiscono sostanzialmente sia da PS che da TTF. Alcuni programmi (generalmente i programmi utilizzati per design dei caratteri) sono in grado di convertire TTF per Mac in un formato TTF compatibile per Windows (e viceversa).

## Storia

TrueType era conosciuto durante la sua fase di sviluppo, prima con il nome in codice "Bass" e successivamente con il nome in codice "Royal". Il sistema è stato sviluppato e infine rilasciato come TrueType con il lancio di Mac System 7 nel maggio 1991. I caratteri iniziali TrueType outline, le famiglie a quattro pesi di Times Roman, Helvetica, Courier, e il carattere pi "Symbol" ha replicato i font PostScript originali di Apple LaserWriter. Apple ha anche sostituito alcuni dei loro caratteri bitmap utilizzati dall'interfaccia utente grafica delle versioni precedenti del sistema Macintosh (inclusi Ginevra, Monaco e New York) con caratteri di contorno TrueType scalabili. Per compatibilità con i sistemi meno recenti, Apple ha fornito questi font, un'estensione TrueType e una versione compatibile con TrueType di Font / DA Mover per System 6. Per la compatibilità con Laserwriter II, Apple ha sviluppato caratteri come ITC Bookman e ITC Chancery in formato TrueType.
Tutti questi tipi di carattere possono ora essere ridimensionati a tutte le dimensioni sullo schermo e sulla stampante, rendendo il sistema operativo Macintosh 7 il primo sistema operativo a funzionare senza caratteri bitmap. I primi sistemi TrueType, essendo ancora parte del sottosistema grafico QuickDraw di Apple, non rendevano i caratteri di Type 1 sullo schermo come fanno oggi. A quel tempo, molti utenti avevano già investito molto denaro nei font Type 1 ancora proprietari di Adobe. Come parte della tattica di Apple di aprire il formato del carattere contro il desiderio di Adobe di tenerlo chiuso a tutti tranne che ai licenziatari Adobe, Apple ha concesso in licenza TrueType a Microsoft. Quando TrueType e la concessione della licenza a Microsoft sono stati annunciati, John Warnock di Adobe ha tenuto un appassionato discorso in cui ha affermato che Apple e Microsoft stavano vendendo olio di serpente, e ha quindi annunciato che il formato di Type 1 era aperto a chiunque.
Nel frattempo, in cambio di TrueType, Apple ha ottenuto una licenza per TrueImage, un linguaggio di descrizione della pagina compatibile con PostScript di proprietà di Microsoft che Apple potrebbe utilizzare nella stampa laser. Questo non è mai stato effettivamente incluso in nessun prodotto Apple quando è stato raggiunto un accordo successivo tra Apple e Adobe, in cui Adobe ha promesso di inserire un interprete TrueType nelle loro schede di stampa PostScript. Apple ha rinnovato i suoi accordi con Adobe per l'uso di PostScript nelle sue stampanti, con conseguente riduzione dei pagamenti delle royalty ad Adobe, che stava iniziando a concedere in licenza i controller della stampante in grado di competere direttamente con le stampanti LaserWriter di Apple.
Parte della risposta di Adobe all'apprendimento dello sviluppo di TrueType è stata la creazione del software Adobe Type Manager per scalare i font Type 1 per l'output su schermo con anti-alias. Sebbene inizialmente ATM costasse denaro, piuttosto che essere gratuito con il sistema operativo, divenne uno standard de facto per chiunque fosse coinvolto nel desktop publishing. Il rendering anti-alias, combinato con la capacità delle applicazioni Adobe di ingrandire per leggere caratteri piccoli, e ulteriormente combinato con il formato di font PostScript Type 1 ora aperto, ha fornito l'impulso per un'esplosione nel design dei caratteri e nel desktop publishing di giornali e riviste.
Apple ha esteso TrueType con il lancio di TrueType GX nel 1994, con tabelle aggiuntive nel formato sfnt che facevano parte di QuickDraw GX. Ciò ha offerto potenti estensioni in due aree principali. Il primo è stato l'asse dei caratteri (morphing), ad esempio consentendo ai caratteri di essere regolati in modo fluido da chiaro a grassetto o da stretto a esteso: concorrenza per la tecnologia "multiple master" di Adobe. Il secondo è stato Line Layout Manager, dove particolari sequenze di caratteri possono essere codificate per passare a disegni diversi in determinate circostanze, utile ad esempio per offrire legature per "fi", "ffi", "ct", ecc. Mantenendo la memoria di supporto di caratteri necessari per i correttori ortografici e ricerca di testo. Tuttavia, la mancanza di strumenti user-friendly per creare caratteri TrueType GX significava che non c'erano più di una manciata di caratteri GX.
Gran parte della tecnologia in TrueType GX, inclusi morphing e sostituzione, vive come AAT (Apple Advanced Typography) in macOS. Pochi sviluppatori di font al di fuori di Apple tentano di creare font AAT; invece, OpenType è diventato il formato sfnt dominante.

### Adozione da parte di Microsoft

Per garantire la sua ampia adozione, Apple ha concesso in licenza TrueType a Microsoft gratuitamente. Nel 1991 Microsoft ha aggiunto TrueType nell'ambiente operativo Windows 3.1. In collaborazione con i loro appaltatori, Monotype Imaging, Microsoft si è impegnata molto nella creazione di un set di caratteri TrueType di alta qualità che fossero compatibili con i caratteri principali in bundle con l'apparecchiatura PostScript in quel momento. Ciò includeva i caratteri che sono standard con Windows fino ad oggi: Times New Roman (compatibile con Times Roman), Arial (compatibile con Helvetica) e Courier New (compatibile con Courier). Si dovrebbe intendere che "compatibile" significhi due cose: primo, che i caratteri sono simili nell'aspetto e secondo - e cosa molto importante - i caratteri hanno la stessa larghezza dei caratteri, e quindi possono essere usati per comporre gli stessi documenti senza ridisporre il testo.
I tecnici Microsoft e Monotype hanno utilizzato la tecnologia di font hinting di TrueType per garantire che questi caratteri non soffrissero del problema di illeggibilità a basse risoluzioni, che in precedenza aveva forzato l'uso di caratteri bitmap per la visualizzazione sullo schermo. Successivi progressi tecnologici hanno introdotto il primo anti-aliasing, che smussa i bordi dei caratteri a scapito di una leggera sfocatura, e più recentemente il rendering dei subpixel (l'implementazione Microsoft si chiama ClearType), che sfrutta la struttura dei pixel dei display basati su LCD per aumentare la risoluzione apparente del testo. Microsoft ha fortemente commercializzato ClearType e le tecniche di rendering sub-pixel per il testo sono ora ampiamente utilizzate su tutte le piattaforme.
Microsoft ha anche sviluppato una tecnologia "smart font", denominata TrueType Open nel 1994, successivamente ribattezzata OpenType nel 1996 quando ha unito il supporto dei contorni dei glifi di Adobe Type 1.

## TrueType oggi
### Macintosh e Microsoft Windows

TrueType è stato a lungo il formato più comune per i caratteri su Classic Mac OS, Mac OS X e Microsoft Windows, sebbene Mac OS X e Microsoft Windows includano anche il supporto nativo per il formato Adobe Type 1 e l'estensione OpenType per TrueType (da Mac OS X 10.0 e Windows 2000). Mentre alcuni caratteri forniti con i nuovi sistemi operativi sono ora nel formato OpenType, la maggior parte dei caratteri di terze parti gratuiti o poco costosi utilizza TrueType normale.
L'aumento delle risoluzioni e i nuovi approcci al rendering dello schermo hanno ridotto la necessità di suggerimenti TrueType estesi. L'approccio di rendering di Apple su macOS ignora quasi tutti i suggerimenti in un font TrueType, mentre ClearType di Microsoft ignora molti suggerimenti e, secondo Microsoft, funziona meglio con i caratteri "leggermente accennati".

### Linux e altre piattaforme

Il progetto FreeType di David Turner ha creato un'implementazione indipendente dello standard TrueType (così come altri standard di font in FreeType 2). FreeType è incluso in molte distribuzioni Linux.
Fino a maggio 2010, c'erano potenziali violazioni di brevetto in FreeType 1 perché parti della macchina virtuale di suggerimento TrueType erano state brevettate da Apple, un fatto non menzionato negli standard TrueType. (I titolari di brevetti che contribuiscono agli standard pubblicati da un importante organismo di normalizzazione come ISO sono tenuti a rivelare l'ambito dei loro brevetti, ma TrueType non era uno standard di questo tipo.) FreeType 2 includeva un hinter automatico opzionale per evitare la tecnologia brevettata, ma questi brevetti sono scaduti, quindi FreeType 2.4 ora abilita queste funzionalità per impostazione predefinita.

## Note tecniche
### Contorni

Un segmento di curva di Bézier quadratica è definito da due punti finali e un punto di controllo. Questo cerchio è composto da otto segmenti contigui. I quadrati sono punti finali e i cerchi sono punti di controllo. I contorni dei caratteri (o glifi) nei caratteri TrueType sono costituiti da segmenti di linea retta e curve di Bézier quadratiche. Queste curve sono matematicamente più semplici e più veloci da elaborare rispetto alle curve di Bézier cubiche, che vengono utilizzate sia nel mondo del design grafico centrato su PostScript che nei font Type 1. Tuttavia, la maggior parte delle forme richiede più punti per descrivere con curve quadratiche rispetto ai cubi. Questa differenza significa anche che non è possibile convertire il Type 1 senza perdita di dati nel formato TrueType, sebbene in pratica sia spesso possibile eseguire una conversione senza perdita da TrueType a Type 1.

### Suggerimenti di lingua

I sistemi TrueType includono una macchina virtuale che esegue i programmi all'interno del font, elaborando i "suggerimenti" dei glifi. Questi distorcono i punti di controllo che definiscono il contorno, con l'intenzione che il rasterizzatore produca meno caratteristiche indesiderabili sul glifo. Il programma di suggerimento di ciascun glifo tiene conto della dimensione (in pixel) alla quale il glifo deve essere visualizzato, nonché di altri fattori meno importanti dell'ambiente di visualizzazione.
Sebbene non sia in grado di ricevere input e produrre output come normalmente inteso nella programmazione, il linguaggio di suggerimento TrueType offre gli altri prerequisiti dei linguaggi di programmazione: branching condizionale (istruzioni if), loop con un numero arbitrario di volte (istruzioni di tipo for e while), variabili (sebbene questi siano semplicemente slot numerati in un'area di memoria riservata dal carattere) e incapsulamento del codice in funzioni. Le istruzioni speciali chiamate suggerimenti delta sono il controllo di livello più basso, spostando un punto di controllo a una sola dimensione di pixel.
Il segno distintivo delle efficaci tecniche di programmazione dei glifi TrueType è che fa il più possibile utilizzando variabili definite una sola volta nell'intero font (ad esempio, larghezza del gambo, altezza del maiuscolo, altezza-x). Ciò significa evitare il più possibile le istruzioni delta. Questo aiuta lo sviluppatore del font ad apportare modifiche importanti (ad esempio, il punto in cui i gambi principali dell'intero font saltano da 1 a 2 pixel di larghezza) per la maggior parte del percorso durante lo sviluppo.
La creazione di un carattere TrueType molto ben suggerito rimane una notevole quantità di lavoro, nonostante la maggiore facilità d'uso dei programmi per l'aggiunta di suggerimenti ai caratteri. Molti font TrueType hanno quindi solo suggerimenti rudimentali, oppure i suggerimenti vengono applicati automaticamente dall'editor dei font, con risultati di qualità variabile.

### Protezione incorporata

Il formato TrueType consente il tipo più elementare di gestione dei diritti digitali: un campo di bit incorporabile che specifica se l'autore consente l'incorporamento del file del carattere in cose come file PDF e siti Web. Chiunque abbia accesso al file del font può modificare direttamente questo campo, ed esistono semplici strumenti per facilitarne la modifica (ovviamente, la modifica di questo campo non modifica la licenza del font e non conferisce ulteriori diritti legali). Questi strumenti sono stati oggetto di controversia su potenziali problemi di copyright.

### Formati dei caratteri
#### Collezione TrueType

TrueType Collection (TTC) è un'estensione del formato TrueType che consente di combinare più caratteri in un unico file, creando un notevole risparmio di spazio per una raccolta di caratteri con molti glifi in comune. Sono stati inizialmente disponibili nelle versioni cinese, giapponese e coreana di Windows e supportati per tutte le regioni in Windows 2000 e versioni successive.
Il classico Mac OS includeva il supporto di TTC a partire da Mac OS 8.5. Nel classico Mac OS e macOS, TTC ha il tipo di file ttcf.

#### Emoji

Apple ha implementato un'estensione proprietaria per consentire file .ttf a colori per il suo carattere emoji "Apple Color Emoji".

### Formati di file
#### Base

Un carattere di base è composto da più tabelle specificate nella sua intestazione. Il nome di una tabella può contenere fino a 4 lettere.
Un file di raccolta TrueType inizia con una tabella ttcf che consente l'accesso ai caratteri all'interno della raccolta puntando a singole intestazioni per ogni carattere incluso. I caratteri all'interno di una raccolta condividono la stessa tabella di struttura del glifo, sebbene ogni carattere possa fare riferimento a sottoinsiemi all'interno di tali profili a modo suo, attraverso le tabelle "cmap", "nome" e "loca".
Un'estensione.ttf indica un carattere TrueType normale o un carattere OpenType con contorni TrueType, mentre un'estensione .ttc è riservata ai TTC. L'editor di caratteri definiti dall'utente finale di Windows (EUDCEDIT.EXE) crea il carattere TrueType con il nome EUDC.TTE. Un font OpenType con contorni PostScript deve avere un'estensione.otf. In linea di principio un carattere OpenType con contorni TrueType può avere un'estensione.otf, ma questo è stato fatto raramente nella pratica.
Nel classico Mac OS e macOS, OpenType è uno dei diversi formati indicati come font data-fork, poiché mancano del classico fork delle risorse del Mac.

#### Suitcase

Il formato suitcase per TrueType viene utilizzato su Mac OS e macOS classici. Aggiunge ulteriori informazioni specifiche per Apple.
Come TTC, può gestire più caratteri all'interno di un singolo file. Ma a differenza di TTC, non è necessario che quei caratteri appartengano alla stessa famiglia.
Le suitcase sono disponibili nei formati resource-fork e data-fork. La versione del resource-fork era il formato originale della suitcase. Le suitcase Data-fork-only, che inseriscono il contenuto del resource-fork nel data-fork, sono state supportate per la prima volta in macOS. Una suitcase inserita nel formato Data-fork-only ha l'estensione dfont.

#### PostScript

Nel linguaggio PostScript, i contorni TrueType vengono gestiti con un wrapper PostScript come Type 42 per i caratteri con chiave di nome o Type 11 per i caratteri con chiave CID.