Re: Curiosità: alcuni “bug” di LaTeX

#26653
lorenzo.pantieri
Partecipante
    Up
    0
    Down
    ::

    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.

    Sono scelte, certo, ma le trovo assai poco felici.

    Pensa che il caporedattore di una casa editrice per cui lavoravo (avevo il compito di migliorare l’impaginazione dei documenti inviati dai loro autori) mi disse di aver ricevuto un documento particolarmente brutto, con “addiruttura, le didascalie scritte non in corpo più piccolo rispetto al resto”…

    Ai miei occhi (ma non solo ai miei!), questi sono difetti, anche se certo qui siamo nell’ambito dei giudizi soggettivi di cui dicevo all’inizio.

    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.

    Perché troppo tardi? Che cosa potrebbe accadere di male nel ridefinire la spaziatura dell’ambiente? Problemi TeXnici? A livello di impaginazione, non credo che l’utente finale, con un vecchio documento che usa eqnarray ridefinito, avrebbe problemi particolari…

    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.

    Non si finisce mai di imparare! Pensavo che TeX e LaTeX fossero nati fin da subito per scrivere (anche) testi con molta matematica! Ti andrebbe di sviluppare un po’ la tua affermazione?

    In ogni caso, la cosa non è comunque decisiva, almeno IMHO. Ora LaTeX viene usato specialmente per comporre matematica: le estensioni AMS io le includerei senz’altro nel nucleo di LaTeX. Non sto dicendo, l’ho detto e lo ripeto, che LaTeX dovrebbe includere “tutti” i pacchetti! (Una cosa del genere non la penserei neanche dopo essermi scolato in sequenza una bottiglia di sangiovese e una di albana.) Sto dicendo che potrebbe essere giunto il momento che certe (poche, pochissime) estensioni venissero comprese nel suo codice.

    Oppure, molto più semplicemente, mi accontenterei che l’utente fosse almeno al corrente dell’esistenza di questi difettucci (che un eufemista potrebbe anche chiamare “feature”!), per potervi porre rimedio caricando il pacchetto o scrivendo il codice “giusto” (e in questo senso Rosaria ha capito perfettamente lo spirito della mia iniziativa!).

    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 \(…\).

    Non lo sapevo: grazie mille!

    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ì. 🙂

    I primi due punti (con l’eccezione di graphicx) erano più che altro una provocazione! Il punto 9. però non capisco come “non avrei dovuto pensarlo”. Quella “testatina sul nulla” (che si ottiene con lo stile di pagina predefinito della classe book) l’ho sempre trovata più surreale di un quadro di Magritte!
    `\documentclass{book}
    \usepackage{lipsum}
    \begin{document}
    \chapter{Magritte}
    \lipsum[1-2]
    \section{Boh}
    \lipsum
    \chapter{Bah}
    \lipsum
    \end{document} `
    Anche l’autore delle classi KOMA riconosce l’esistenza del problema (che in quelle classi viene risolto molto semplicemente con l’opzione di classe cleardoubleempty).

    Qui devi proprio spiegarmi che cosa vuoi dire!!

    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.

    Beh, all’epoca magari no, ma oggi sì! Del resto, quando è stato scritta la prima versione di LaTeX non esistevano neanche i telefoni cellulari, ma non mi pare un buon motivo per non usarli oggi… 😯 Spiegati meglio!

    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à.

    Come sopra. Knuth e Lamport hanno fatto anche troppo! Tuttavia il loro lavoro può essere migliorato! Vale anche per Galileo, per Newton, per Einstein!

    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.

    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.

    “Tutti noi commettiamo errori, e tutti noi ne paghiamo le conseguenze”, dice il Dr. House… Chi ridefinisce \fi non lo fa certo apposta! Proprio per questo, sarebbe il caso che il messaggio d’errore fosse più chiaro.

    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ù.

    A scanso di equivoci, il pacchetto sul frontespizio non è tra quelli che includerei in LaTeX! Quando a \dots, è un piccolo bug, ma fastidioso.

    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.

    D’accordo al 100%. Sto solo dicendo che quando si trova un difettuccio di design, sarebbe i caso di migliorare! In fin dei conti, i sistemi operativi vengono costantemente aggiornati (e la loro interfaccia viene costantemente limata e perfezionata).

    Non prendertela, mi raccomando.

    Ma figurati: è un piacere!

    Un salutone,
    Lorenzo

    Go to top