Carissimi,
LaTeX è un programma eccezionale, ma nessun programma è privo di difetti. Nulla di irrimediabile, naturalmente: in fin dei conti, uno dei punti di forza di LaTeX è la sua modularità, ed è sempre possibile superare le sue limitazioni caricando uno o più pacchetti o aggiungendo qualche riga di codice ad hoc.
In questo senso, questo topic, che ha l’obiettivo di individuare qualche difetto di LaTeX, è solo un gioco, una curiosità che nasce dalla mia esperienza di lettore e scrittore di guide al nostro programma preferito.
Innanzitutto, bisogna definire che cosa si intende per “LaTeX”. Qui, con “LaTeX” intendo il programma di composizione con le sue classi standard (article, book e report), senza l’ausilio di alcun pacchetto.
Più difficile è dire con precisione che cos’è un “difetto”, anche perché probabilmente entrano in gioco considerazioni soggettive…
Ad ogni modo, ecco alcuni aspetti di LaTeX (nel senso appena specificato) che considero difetti…
1. Le didascalie delle figure e delle tabelle non sono automaticamente in corpo più piccolo rispetto al testo, né incolonnate sotto la prima linea del testo, se formate da almeno due righe. (Per farlo, occorre caricare il pacchetto caption con le opzioni font=small e format=hang.)
2. Inoltre, LaTeX non separa automaticamente la didascalia di una tabella dalla tabella stessa (di regola, la didascalia si scrive sopra la tabella, ma LaTeX “non lo sa”): bisogna provvedere con del codice ad hoc (per esempio caricando il pacchetto caption e, una volta per tutte, scrivendo nel preambolo \captionsetup
{position=top}).
Scelte del progettista della classe.
3. Nella composizione delle tabelle, il comando \hline offerto da LaTeX per realizzare i filetti orizzontali ha una resa tipografica insoddisfacente a causa del poco spazio tra le linee orizzontali e il testo delle celle. (Vanno usati al suo posto i comandi \toprule, \midrule e \bottomrule del pacchetto booktabs.)
Questo è davvero un difetto.
4. La spaziatura dell’ambiente eqnarray è inconsistente. (Vanno usati gli appositi ambienti di amsmath.) Anche la scelta di non correggere, nelle recenti versioni di LaTeX, quell’ambiente vistosamente bacato, solo per mantenere la retro-compatibilità, mi sembra piuttosto discutibile.
Purtroppo Lamport decise di definire eqnarray in quel modo. È troppo tardi per modificare.
5. Nella composizione delle formule matematiche, non esistono comandi predefiniti per il modulo, la norma e il prodotto scalare. Inoltre, è possibile introdurre alcuni simboli scientifici notevoli, come ad esempio la costante di Planck ridotta, solo grazie a pacchetti specifici, come amssymb. In generale, il solo LaTeX, senza le estensioni AMS, non è per nulla soddisfacente nel trattamento della matematica (mancano infatti ambienti o comandi specifici per comporre formule fuori corpo opportunamente incolonnate, matrici, integrali multipli, font specifici per la matematica…). Spero di non essere espulso dal forum per quest’ultima affermazione! 😉
Il progetto di Lamport non mirava certo a un programma per scrivere testi con molta matematica.
6. Il codice per inserire formule in corpo $…$ è una vistosa (e IMHO fastidiosa) eccezione alla regola secondo cui gli ambienti di LaTeX iniziano con un comando diverso da quello che li termina (cosa che in molti casi facilita la diagnostica dei problemi). Il codice \(…\), sintatticamente ortodosso, non è però robusto.
Non era robusto, lo è diventato da parecchi anni. Nel manuale, Lamport dice di usare l’ambiente math oppure \(…\).
7. È possibile inserire direttamente i caratteri accentati, gestire lingue diverse dall’inglese e inserire immagini solo caricando pacchetti specifici (inputenc, babel, graphicx).
8. I font standard di LaTeX non contengono caratteri speciali per la maggior parte delle lettere accentate usate nelle lingue europee. (Per rimediare, com’è noto, è sufficiente servirsi dei font EC, attivati caricando il pacchetto fontenc con l’opzione T1.)
9. Le eventuali pagine bianche inserite alla fine di un capitolo, quando si seleziona l’opzione openright, hanno testatina e piè di pagina (bleah!). (Perché siano vuote, bisogna ridefinire il comando \cleardoublepage, aggiungendo nel preambolo del codice “di basso livello”. Le classi KOMA risolvono il problema in modo più elegante.)
Questo non avresti nemmeno dovuto pensarlo. Adesso rifletti sul perché ti dico così. 🙂
10. L’indice analitico nella classe book non inizia automaticamente in una pagina destra. (Bisogna inserire un \cleardoublepage.) Più che una scelta deliberata di chi ha scritto quella classe, mi sembra una semplice dimenticanza (càpita: ma perché non rimediare?).
Dimenticanza, suppongo. Di fatto all’epoca \cleardoublepage non esisteva.
11. Le colonne dell’ultima pagina dell’indice analitico non sono bilanciate automaticamente. (Occorre del codice ad hoc; serve anche il pacchetto multicol.)
Sacrificio alla semplicità.
12. In certe condizioni, per esempio quando si attiva \raggedbottom, una nota a piè di pagina può non essere… in fondo alla pagina. (Per rimediare si può caricare il pacchetto footmisc con l’opzione bottom, che però può introdurre altri problemini di impaginazione…)
Idem
13. I messaggi d’errore di LaTeX sono a volte criptici. Per esempio, il seguente
`\documentclass{article}
\renewcommand{\fi}{Firenze}
\begin{document}
Boh!
\end{document}`
produce un enigmatico
`! LaTeX Error: Missing \begin{document}.`
Questo esempio è fuorviante: stai ridefinendo un comando che non compare nell’indice analitico del manuale di LaTeX e c’è un chiaro avviso a non fare mai una cosa del genere.
14. LaTeX non è fornito di serie di comandi predefiniti per realizzare un frontespizio degno di questo nome. Esisite, è vero, il comando \maketitle, ma c’è qualcuno che lo usa davvero? Fortunatamente, ora esiste il pacchetto frontespizio (di E. Gregorio), che rimedia a questa vistosa lacuna.
15. Il comando \dots è sempre seguito da uno spazio sottile, cosa che rende inconsisitente la spaziatura di una scrittura come [\dots]. (Occorre definirsi un comando ad hoc, o caricare il pacchetto ellipsis, che corregge questo bug, ma che purtroppo è incompatibile con amsmath.)
Vedi più giù.
Naturalmente, tutti i problemi precedenti ammettono una soluzione (per comodità, l’ho indicata, fra parentesi, in corrispondenza di ogni punto), ma IMHO sarebbe opportuno che le soluzioni venissero incluse direttamente in LaTeX. Certo, ci potrebbero essere dei (piccoli, per lo più) problemi di impaginazione e compatibilità con documenti vecchi, ma credo che il gioco varrebbe la candela.
Chi vuole partecipare al “gioco”, anche semplicemente esprimendo il suo parere su qualcuno dei punti precedenti, è il benvenuto!
Come vedi mi presto. Difetti veri ne hai indicati tre: l’implementazione di tabular, l’ambiente eqnarray e l’errore con l’indice analitico.
LaTeX nasce per essere integrato da moduli aggiuntivi; non si può pensare a un software che tenga conto di tutte le esigenze tipografiche presenti, passate e future. Perciò buona parte dei tuoi punti non erano nemmeno da menzionare. Non prendertela, mi raccomando.
Ciao
Enrico