Macro
In LaTeX la sintassi di una macro si compone di backslash \ seguito da un nome
e da eventuali argomenti tra parentesi graffe.
Le macro possono accettare opzioni facoltative che ne modificano il
comportamento. Le opzioni devono essere inserite prima dell’argomento e tra
parentesi quadre []. Come esempio consideriamo la macro \framebox[][]{} che
incornicia un testo:
Questo è un semplice \framebox{testo incorniciato}
Questo è lo stesso \framebox[120pt]{testo incorniciato}
a 120 pt di larghezza
Che produce:
Ambienti
In LaTeX oltre alla macro esiste un secondo elemento molto espressivo del
linguaggio: l’ambiente. Un ambiente inizia con \begin{nome-ambiente} e
termina con \end{nome-ambiente}. All’interno il codice si riferirà alla
definizione di un specifico oggetto.
Per esempio, per costruire un elenco numerato si fa ricorso all’ambiente
enumerate:
\begin{enumerate}
\item prima riga
\item seconda riga
\item terza riga
\end{enumerate}
Anche gli ambienti possono avere argomenti e/o opzioni. Queste informazioni
vanno scritte con graffe per i primi o con quadre per le seconde, al seguito
della macro di apertura. Come esempio inseriamo una tabella tramite l’ambiente
tabular. L’argomento obbligatorio definisce gli allineamenti per ciascuna
colonna della tabella con i codici: l per “a sinistra” (left), r per “a
destra” (right), e c per “al centro”:
\begin{tabular}{lcr}
prima cella a sinistra & seconda cella centrata & terza cella a destra \\
1 & 2 & 3\\
4 & 5 & 6
\end{tabular}
Macro e ambienti possono anche comprendere una variante chiamata versione asteriscata poiché al nome si aggiunge un asterisco per produrne la versione alternativa.
Un esempio è l’ambiente equation che compone in display il codice matematico
numerandolo in automatico . Il pacchetto amsmath aggiunge la variante
asteriscata che per così dire spegne proprio la numerazione:
% ambiente standard: numerazione si
\begin{equation}
f(x) = \frac{x^2 + 1}{x^2 - 1}
\end{equation}
% ambiente asteriscato: numerazione no
\begin{equation*}
f(x) = \frac{x^2 + 1}{x^2 - 1}
\end{equation*}
Spazi e ritorni a capo
Uno spazio è solo un simbolo di separazione tra parole. Non decide l’effettiva distanza tra queste nel testo composto che sarà invece assegnata dal compositore secondo i criteri di leggibilità propri della tipografia.
Nel sorgente gli spazi e i ritorni a capo hanno una particolare interpretazione da parte del compositore secondo queste regole:
- gli spazi a inizio riga sono ignorati
- più di un carattere spazio è interpretato come un solo carattere spazio
- lo spazio dopo una macro senza argomento o senza altro separatore è ignorato
- un ritorno a capo singolo è interpretato come uno spazio
- più di un ritorno a capo è interpretato come separazione tra due capoversi
Questi capoversi differenti nel codice danno identico risultato in composizione:
Ecco un testo molto simpatico per capire come
sono interpretati in \LaTeX{} sia gli spazi che
i ritorni a capo.
Ecco un testo molto simpatico
per capire come sono interpretati in \LaTeX{}
sia gli spazi
che
i ritorni a capo.
Anche i caratteri di tabulazione possono essere utilizzati con lo stesso significato di uno spazio ma normalmente non si usano.
Capita spesso di digitare per errore due spazi tra due parole anziché uno. Mentre per i Word Processor essi saranno tutti significativi, per LaTeX non farà differenza. E ancora, se nei Word Processor siamo abituati (forse male) a spostare il testo sulla riga aggiungendo caratteri spazio, in LaTeX ciò non funzionerà e dovremo usare altri mezzi.
In LaTeX capita invece di fare l’errore contrario: eliminare invece che
aggiungere spazio. Ciò avviene quando scriviamo una macro senza argomenti come
\LaTeX che produce il logo caratteristico.
Lo spazio dopo la macro verrà ignorato come da regola 3 così tra il logo e la parola successiva non ci sarà separazione. Ecco la soluzione:
% lo spazio dopo la macro senza argomenti non ha effetto:
Usiamo \LaTeX per migliorare i nostri documenti.
% rimedio 1: coppia di graffe:
Usiamo \LaTeX{} per migliorare...
% rimedio 2: backslash + spazio:
Usiamo \LaTeX\ per migliorare...
Anche i ritorni a capo — se singoli — sono semplici separatori di parole, l’ultima della riga precedente con la prima di quella successiva, perciò si è liberi di formattare il testo di un capoverso su un’unica riga oppure di spezzarlo su più righe consecutive.
Per le righe molto lunghe solitamente gli editor mostrano il testo come se fosse su più righe per evitare di dover scorrere in orizzontale la finestra di visualizzazione, una modalità detta di word wrapping.
Se un sorgente è sottoposto al controllo di versione di git tutte le modifiche
sono tracciate e visibili con una colorazione rosso/verde. Questo confronto tra
versioni funziona bene se le righe sono corte, diciamo di una lunghezza non
superiore a 80 caratteri. Così conviene spezzare a questa lunghezza il capoverso
con dei ritorni a capo singoli, operazione che certi editor fanno in automatico.
Se si inseriscono più di due ritorni a capo allora il testo successivo diventa un nuovo capoverso. L’aspetto del testo in LaTeX è perciò una sequenza di righe di testo consecutive separate da righe vuote.
Commenti
I commenti sono una particolare categoria sintattica e sono gestiti con un
carattere dedicato: il simbolo di percentuale %. Quando il compositore legge
un carattere di percento lo ignora assieme a tutti i caratteri che lo seguono
fino alla fine della riga.
I commenti sono importanti per fare annotazioni nel sorgente e generalmente per:
- inserire le righe magiche a inizio file che istruiscono in vari modi gli editor compatibili
- descrivere idee su come proseguire o migliorare il testo di un capitolo
- inserire un segnaposto a indicare il punto il cui si è arrivati nella revisione del testo
- inserire informazioni di data e ora per poter valutare il tempo impiegato nella redazione del documento
- eliminare dal documento finale una parte di contenuto senza cancellarla dal sorgente
- evitare che a fine riga venga inserito uno spazio spurio
Non esiste il commento multiriga ma se lo si vuole ad ogni inizio riga va
inserito un %. Poco male, gli editor più evoluti lo fanno in automatico oppure
rendono immediata l’operazione tramite funzionalità come il cursore multiplo
così che è sufficiente una sola battuta del carattere % per inserirlo a capo
di un numero qualsiasi di righe.
In alternativa esiste il pacchetto comment di Victor Eijkhout che
esclude/include una porzione di testo con l’omonimo ambiente.