Riepilogo
Questa lezione insegna a dichiarare le lingue di un documento e a sceglierne i caratteri. Spiega che cosa cambia babel quando si dichiara una lingua (la sillabazione, le etichette, le date e le virgolette) e distingue i tre modi di cambiare lingua: \selectlanguage, \foreignlanguage e l’ambiente otherlanguage. Applica quanto visto al greco politonico e al latino, con un passo di ciascuno. Presenta poi fontspec: le tre famiglie di un documento, \babelfont per assegnare un font a ogni lingua e le funzionalità OpenType più utili (cifre in stile antico, maiuscoletto e legature). Insegna a verificare che un font contenga tutti i caratteri del documento, leggendo gli avvisi «Missing character» e cercando i font con albatross, e spiega perché conviene preferire i font forniti con TeX Live quando il documento deve compilare anche su Overleaf. Termina con un breve cenno alle scritture da destra a sinistra, a quelle asiatiche e a polyglossia.
Obiettivi di apprendimento
- Dichiarare la lingua principale e le secondarie di un documento con babel, e spiegare che cosa decide ciascuna lingua nel risultato.
- Scegliere tra
\foreignlanguage,otherlanguagee\selectlanguagesecondo ciò che deve cambiare, e prevedere la data, le etichette e le virgolette che ne risultano. - Comporre passi in greco politonico e in latino con la loro sillabazione e un font adeguato.
- Assegnare i font con fontspec e babel, e attivare cifre in stile antico, maiuscoletto e legature.
- Verificare che i font scelti contengano tutti i caratteri e gli stili che il documento usa, e interpretare gli avvisi che indicano il contrario.
- Decidere tra un font di TeX Live e uno del sistema secondo il luogo in cui il documento deve essere compilato.
Che cosa cambia con la lingua
Le lezioni precedenti hanno sempre caricato \usepackage[italian]{babel} senza soffermarsi su ciò che fa. Ora, una lingua non è solo un elenco di lettere: ha le sue regole per dividere le parole a fine riga, i suoi nomi per le parti di un documento, il suo modo di scrivere le date e le sue virgolette. Il pacchetto babel raccoglie queste convenzioni lingua per lingua, e dichiarare una lingua significa chiedergli di applicarle. In concreto, la lingua decide:
- la sillabazione: con quali pattern il motore cerca i punti in cui una parola può essere spezzata;
- le etichette che LaTeX scrive da sé, come il titolo dell’indice o il nome delle tabelle e delle figure;
- la data che stampa
\today, che è quella del giorno della compilazione; - certe abbreviazioni da tastiera, come quelle che alcune lingue definiscono per le virgolette, che si vedranno in questa stessa sezione.
I tre capoversi usano le stesse istruzioni; cambia solo la lingua in cui vengono lette. \tablename, \figurename e \contentsname sono le etichette delle tabelle, delle figure e dell’indice.
\documentclass{article}\usepackage{fontspec}\usepackage[latin, english, italian]{babel}\begin{document}Data: \today. Etichette: \tablename, \figurename, \contentsname.\begin{otherlanguage}{english}Date: \today. Captions: \tablename, \figurename, \contentsname.\end{otherlanguage}\begin{otherlanguage}{latin}Dies: \today. Tituli: \tablename, \figurename, \contentsname.\end{otherlanguage}\end{document}Il latino scrive il giorno e l’anno in numeri romani. Va notato inoltre che l’italiano di babel intitola «Indice» il sommario, mentre \refname, il titolo della bibliografia di un articolo, è «Riferimenti bibliografici».
La sillabazione
La sillabazione è l’effetto meno visibile della lingua e il più importante. Ogni lingua divide le sue parole secondo la propria tradizione: l’italiano divide per sillabe, l’inglese rispetta spesso la formazione della parola, come in stand-ing, e il latino conosce due tradizioni, una moderna, che segue la pronuncia e l’uso tipografico italiani e porta la s seguita da consonante alla riga successiva, e una classica, che divide secondo la fonetica antica. Se un passo in un’altra lingua non viene marcato, il motore lo divide con i pattern della lingua vigente, e i tagli che propone possono essere errati in quella lingua.
L’istruzione \showhyphens scrive nel log i punti di divisione che il motore ammetterebbe nelle parole che riceve, senza stampare nulla nel documento. Serve a verificare quali pattern valgono in ciascun punto.
La sorgente chiede i tagli di due parole inglesi e di due latine, prima con i pattern dell’italiano, che è la lingua principale, e poi con quelli di un’altra tradizione: l’inglese per le prime, il latino classico per le seconde.
\documentclass{article}\usepackage{fontspec}\usepackage[classicallatin, english, italian]{babel}\begin{document}\showhyphens{understanding knowledge}\foreignlanguage{english}{\showhyphens{understanding knowledge}}\showhyphens{nostrum conscientia}\foreignlanguage{classicallatin}{\showhyphens{nostrum conscientia}}\end{document}Il log mostra, per ciascuna riga, un avviso di scatola (innocuo: \showhyphens compone le parole in una riga molto larga per esaminarle) seguito dalle parole con i loro tagli.
Underfull \hbox (badness 10000) in paragraph at lines 5--5[] \TU/lmr/m/n/10 un-der-stan-ding kno-w-led-geUnderfull \hbox (badness 10000) in paragraph at lines 6--6[] \TU/lmr/m/n/10 un-der-stand-ing knowl-edgeUnderfull \hbox (badness 10000) in paragraph at lines 7--7[] \TU/lmr/m/n/10 no-strum con-scien-tiaUnderfull \hbox (badness 10000) in paragraph at lines 8--8[] \TU/lmr/m/n/10 nos-trum con-scien-tiaCon i pattern dell’italiano, l’inglese viene diviso in sillabe italiane, e tagli come kno-w o led-ge sarebbero errori visibili in un testo inglese; con quelli dell’inglese, i tagli rispettano la formazione delle parole. Con il latino la sorpresa è opposta: la riga 7 lo divide già come la tradizione moderna, perché in parole come queste i pattern italiani e quelli dell’opzione latin coincidono; la riga 8 mostra invece la divisione classica, che classicallatin applica e che seguono molte edizioni di testi antichi. Un passo latino va comunque marcato, perché riceva le etichette, la data e i pattern della sua lingua anche dove questi non coincidono.
Le virgolette dell’italiano
L’italiano preferisce al primo livello le virgolette basse, o caporali, «…»; al secondo, le virgolette alte, “…”; al terzo, gli apici, ‘…’. L’italiano di babel non definisce, per omissione, alcuna abbreviazione per le virgolette: con LuaLaTeX le caporali si scrivono direttamente, oppure con due segni < o >, come si vedrà subito. Chi preferisce le abbreviazioni le attiva nel preambolo con \setactivedoublequote, dopo di che "< e "> producono le caporali ed eliminano gli spazi accanto a esse. In nessun caso babel alterna i segni secondo la profondità: il livello di ogni virgoletta lo sceglie l’autore.
La seconda riga mostra la forma classica di LaTeX, che non dipende dalla lingua: due accenti gravi aprono le virgolette alte e due apostrofi le chiudono; uno solo di ciascuno dà gli apici. La prima riga compone i tre livelli dell’italiano combinando le caporali con questa forma.
Va distinto, tuttavia, ciò che fa babel da una coincidenza. Il font, caricato da fontspec con la funzionalità delle legature di TeX che si vedrà più avanti, converte da sé due segni < consecutivi in una caporale, in qualsiasi lingua e senza tener conto dei livelli: in italiano, <<a <<b>> c>> stampa tre coppie di caporali, una dentro l’altra. Solo lo spagnolo di babel fa di questi segni delle abbreviazioni che alternano le virgolette secondo il livello: la stessa riga vi produce «a “b” c». La lezione dedicata a note, citazioni e versi tratterà le citazioni più in dettaglio.
Caricamento del contenuto…