16. Ecco un altro bug:
`\[
\left(
\begin{array}{cc}
\displaystyle\frac{a}{b} & \displaystyle\frac{a}{b} \\
\displaystyle\frac{a}{b} & \displaystyle\frac{a}{b}
\end{array}
\right)
\]`
Sgradevole, vero?
Naturalmente, basta aggiungere una spaziatura, manualmente:
`\[
\left(
\begin{array}{cc}
\displaystyle\frac{a}{b} & \displaystyle\frac{a}{b} \\[2.5ex]
\displaystyle\frac{a}{b} & \displaystyle\frac{a}{b}
\end{array}
\right)
\]`
Ah, se qualcuno crede che usando l’apposito ambiente di amsmath il problema non si presenti,
`\[
\begin{pmatrix}
\dfrac{a}{b} & \dfrac{a}{b} \\
\dfrac{a}{b} & \dfrac{a}{b} \\
\end{pmatrix}
\]`
è invitato a ripensarci!
…credo che il buon Knuth e Lamport dopo di lui non avrebbero mai potuto sistemare questi “bug” anche perchè non potevano metterli tutti in preventivo…
Vero, preventivare tutti i possibili “bug” di un software è impossibile: solo con l’uso vengono scoperti!
Quindi per questo che man mano sono nati i pacchetti in modo (come hai giustamente detto) di estendere e potenziare il linguaggio con righe ad hoc o con pacchetti.
Certo.
La vera ricchezza del LaTeX sono… i suoi package!
Lo penso anch’io.
Non mi pare pensabile che il solo “LaTeX base” possa pensare a tutto, sarebbe come dire che ad ogni compilazione tutti i package dovrebbero essere caricati, con conseguenze nefande per il tempo di compilazione! e questo include anche i package AMS (che pure io uso sempre).
Mi pare di capire che tu vorresti includere alcune di queste soluzioni direttamente nel sorgente/compilatore del TeX/LaTeX in modo che non si presentino o non debbano essere caricati i pacchetti ma questo mi sembra controproducente per diversi motivi:
1) Sarebbe impossibile gestire tutti i casi che si possono presentare e quindi servirebbero ancora i pacchetti per i casi che mancano;
2) Il compilatore TeX/LaTeX perderebbe di modularità e secondo me anche di “pulizia” del codice.
Vedete, io non ho mai detto che LaTeX debba “pensare a tutto” o che debbano essere “inclusi tutti i pacchetti”! Anzi, ho esordito dicendo che uno dei punti di forza di LaTeX è la sua modularità!
Tuttavia, di regola quando si scopre un bug in un software, non credete che sarebbe meglio porvi rimedio nelle versioni successive?
Non sono un esperto di programmazione LaTeX “di basso livello”, ma non credo che aggiungere un \cleardoublepage alla definizione dell’indice analitico (punto 10) o aggiungere
`\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
\ifodd\c@page
\else
\null\thispagestyle{empty}\clearpage
\fi
\fi}
\makeatother`
per rimediare il problema delle pagine bianche (punto 9) minerebbe la solidità delle fondamenta del nucleo di LaTeX! Anche ridefinire eqnarray con un
`\setlength\arraycolsep{2pt} `
non credo sarebbe causa di terremoti diprogrammazione! Un discorso analogo si può fare per molti dei sedici bug che ho evidenziato.
se io avessi scritto un vecchio documento LaTeX e vedessi che all’improvviso mi cambia layout mi altererei non poco… !!!
Vero, tu avresti quel fastidio, ma tutti gli utenti (tu compreso!) che scriverebbero un documento nuovo, potrebbero beneficiare delle correzioni!
D’altra parte, il problema sviluppo/retrocompatibilità si ripresenta in ogni software e, più in generale, in ogni settore tecnologico. Dubito che un documento redatto con Word 1.0 si apra senza alcun problema con una versione moderna di Word! Dubito che esista un software (o un formato, PDF compreso) completamente libero da questi problemi.
Allo stesso modo, pensa alle videocassette che stanno in libreria a prendere polvere: il DVD è una tecnologia incompatibile con VHS, e la transizione non è stata certo indolore (ben più dolorosa dell’eventuale aggiornamento di qualche linea di codice!). Lo stesso si può dire per il passaggio dal vinile (e dalle musicassette) al CD. Tuttavia, non credi che, alla fine, il gioco sia valso la candela?
Ma stiamo andando OT.
Ciao,
L.