Ciao a tutti.
L’argomento “font” è molto complesso, vorrei qualche chiarimento spiegato il più semplicemente possibile.
Per funzionare al meglio, il pacchetto lettrine richiede il pacchetto type1ec (che rende i font scalabili “a piacimento”), da caricare prima di fontenc con l’opzione T1:
`\usepackage{type1ec}
\usepackage[T1]{fontenc}
\usepackage{lettrine}
`
Si noti che usando font di tipo PostScript il pacchetto type1ec non serve.Le domande che ho sono queste:
1. È giusto quanto precede?
2. Che cosa sono i font PostScript
3. Quali sono?
4. Come si caricano?
5. Che cosa sono i font PostScript “di tipo 1”?
6. I font PostScript sono (particolari) font vettoriali. Giusto?
7. Se sì alla domanda precedente, qual è un esempio di font vettoriale non PostScript?Insomma, avrei bisogno di qualche chiarimento sui font PostScript.
Più che PostScript parlerei di font “a disegno unico”.
I font di un tempo erano disponibili solo in un certo numero di corpi, visto che i caratteri erano incisi in rilievo su blocchi di metallo (o di legno). Con la tecnologia attuale è possibile ingrandire o ridurre a piacimento un carattere. Tuttavia questo ha limiti, perché riducendo un carattere i tratti si assottigliano. Questo è il motivo per il quale il maiuscoletto “finto” è molto ben riconoscibile: le lettere piccole sono semplicemente quelle maiuscole rimpicciolite e la differenza dello spessore dei tratti diventa evidente quando sono vicini i due tipi.
Alcuni font sono disegnati appositamente in vari corpi; per esempio i Computer Modern (o gli European Modern e i Latin Modern). Gli altri font di uso comune invece hanno un solo disegno che viene usato per tutti i corpi.
Vediamo la questione TeXnica esaminando una delle definizioni che si trovano in ot1cmr.fd (responsabile delle scelte dei font nella codifica OT1); prendiamo la dichiarazione per il font normale (peso medio e forma diritta):
`\DeclareFontShape{OT1}{cmr}{m}{n}%
{<5><6><7><8><9><10><12>gen*cmr%
<10.95>cmr10%
<14.4>cmr12%
<17.28><20.74><24.88>cmr17}{}`
Che significa questa misteriosa formula magica? Semplice. Se si chiede il font a corpo 5 viene usato cmr5, a corpo 6 si usa cmr6, e così via fino a cmr12 (saltando 11). Per il corpo 11 (in realtà 10.95, ma cambia poco) si usa cmr10 ingrandito; per corpo 15 (cioè 14.4, in realtà) si ingrandisce cmr12; per i corpi 17, 21 e 25 si usa cmr17, eventualmente ingrandito. Se la richiesta è per un corpo non menzionato, LaTeX prende quello più vicino. Con la codifica T1 la faccenda è molto simile, ma il file è un po’ meno facile da interpretare.
È evidente che con lettrine questo funziona male, perché il carattere da scegliere probabilmente non compare fra quelli elencati. Se, per esempio, serve un capolettera corpo 36, l’unico disponibile è quello a corpo 25 e sarà usato. Ci sarà un messaggio di avviso che si è usato un corpo diverso da quello richiesto (il messaggio è soppresso se la differenza è meno di mezzo punto, circa).
Che fa type1ec? Essenzialmente sostituisce la serie a “corpi fissi” con una serie “quasi continua”, ma sempre usando i vari disegni:
`\DeclareFontShape{T1}{cmr}{m}{n}{%
<-6>ecrm0500%
<6-7>ecrm0600%
<7-8>ecrm0700%
<8-9>ecrm0800%
<9-10>ecrm0900%
<10-10.95>ecrm1000%
<10.95-12>ecrm1095%
<12-14.4>ecrm1200%
<14.4-17.28>ecrm1440%
<17.28-20.74>ecrm1728%
<20.74-24.88>ecrm2074%
<24.88-29.86>ecrm2488%
<29.86-35.83>ecrm2986%
<35.83->ecrm3583%
}{}`
Fino a meno di 6pt si usa il disegno per il corpo 5; fra 6 e 7 il disegno per il corpo 6, e così via, ingrandendo il font fino al corpo richiesto. Per esempio ecrm1200 è il font disegnato per il corpo 12, ma può essere usato per corpi fino a meno di 14.4pt.
Con un font a disegno unico, diciamo Palatino, questo non serve, perché t1ppl.fd contiene dichiarazioni come
`\DeclareFontShape{T1}{ppl}{m}{n}{<-> pplr8t}{}`
che significa: per qualsiasi corpo usa il font pplr8t (cioè Palatino Roman in codifica T1) ingrandendo o riducendo (il disegno è per il corpo 10, tipicamente).
È evidente, dunque, che type1ec non fa assolutamente nulla. Del resto agisce solo sulle definizioni per i font European Modern e non sugli altri. Perciò in presenza di una dichiarazione nel pacchetto come
`\usepackage{txfonts}
\usepackage{mathpazo}
\usepackage[fourier}
\usepackage{kpfonts}`
eccetera, che scelgono come font del documento uno a disegno fisso, lettrine funzionerà da sé trovando il corpo corretto. Ma con i difetti detti prima.
Vediamo un caso specifico. Supponiamo di usare corpo 10 con avanzamento di riga 12pt e di volere un capolettera che copra tre righe; l’altezza del maiuscolo è 6.8pt, quindi ci occorre un capolettera alto 6.8+24=30.8 punti. Con la proporzione 6.8 : 30.8 = 10 : x otteniamo che il corpo è 45 (circa). Se le righe sono solo due, 6.8 : 18.8 = 10 : x dà un corpo 27.6 (con type1ec si ottiene una buona approssimazione usando il disegno per il corpo 25).
Vediamo a corpo 11, con avanzamento di riga 13pt e capolettera che copre due righe. L’altezza del maiuscolo è 7.5, dunque l’altezza del capolettera dev’essere 20.5pt. La proporzione è 7.5 : 20.5 = 11 : x, dando un corpo 30 di cui LaTeX, con le definizioni normali per Computer Modern e codifica T1, dispone.
È chiaro viceversa che con un font a disegno unico i tratti di un carattere a corpo 30 saranno troppo spessi rispetto al contesto.
Discorso filosofico conclusivo. Non usare lettrine se non si è sicuri del risultato: le lettere ingrandite possono diventare visivamente incompatibili con le altre. Nel caso si usino font a corpi fissi, l’altezza del capolettera deve essere studiata in modo che corrisponda a uno dei font disponibili. L’automatismo va spesso contro la buona tipografia.
Ciao
Enrico