Re: Curiosità: alcuni “bug” di LaTeX

#26672
Up
0
Down
::

Sbagliato. La classe report non abilita di default le testatine.

Sembra che i comandi che vanno a modificare il layout non vadano usati e che ci si debba limitare ad utilizzare solo quelli messi a disposizione, o autorizzati esplicitamente, dalla classe in uso perché altrimenti non si hanno garanzie sul risultato (oppure usare pacchetti per quella classe).

Concludo che \pagestyle è un comando generico non contemplato dalla classe report,
mentre \chapter* è definito all’interno della stessa. (È così?)

Infatti: \pagestyle è un comando del nucleo di LaTeX al quale le classi si possono appoggiare per definire i loro stili di pagina, ma che è ovviamente accessibile anche all’utente finale. I comandi di sezione sono definiti dalle classi: per esempio non ce n’è nemmeno uno nella classe minimal.

Allora mi domando, perché la classe book, che vuole essere compatibile con \pagestyle, ha il comando \chapter* “sbagliato”?
Oppure, siccome book mette a disposizione i comandi appositi \frontmatter, \mainmatter, ecc. . ., perché c’è \chapter*? È rimasto da una versione più vecchia per motivi di compatibilità?

All’inizio di LaTeX non c’erano \frontmatter e simili; li introdusse Downes nella classe amsbook, con LaTeX2e vennero aggiunti alla classe book e, purtroppo, non molto usati anche perché il manuale uscì con la seconda edizione parecchio dopo.

Siamo alle solite: considerare “baco” ciò che non si gradisce. La classe report è pensata per rapporti tecnici, nei quali ogni parte importante ha il suo numero. È possibile che qualche parte non abbia un numero, in tal caso la soluzione è di usare \pagestyle{headings} dal momento in cui si vogliono le testatine che non devono esserci nelle parti non numerate. Se prendi una motozappa per curare il giardino di casa ti puoi aspettare qualche problemino con le aiuole delle rose.

Il vero baco, se proprio vogliamo andare a cercarlo, è nella definizione di \@evenhead e \@oddhead nello stile myheadings, dove \slshape dovrebbe essere sostituito da un comando “generico” modificabile dall’utente. E nell’imposizione di \MakeUppercase per le testatine dello stile headings insieme a \slshape. Lo dico ancora una volta: le classi standard servono solo come classi “generiche”; il vero “baco” è di non averle pensate in modo sufficientemente flessibile. La classe memoir però è un chiaro esempio di dove si deve arrivare se si vuole qualcosa di veramente flessibile: quante pagine ha il manuale? Anche escludendo l’interessante parte “tipografica”, rimane piuttosto massiccio.

Ciao
Enrico

Sono d’accordo. Però per chi vuole usare LaTeX con le classi standard, dovrebbe esserci allora una piccola guida per ogni classe che dica cosa si può fare.
La documentazione ufficiale, credo classes.dvi, è sostanzialmente il commento dei codici delle classi e basta.

Sbaglio?

La documentazione c’è, nel manuale di Lamport. Anche nella “Not so short guide”, credo.

Ciao
Enrico

Go to top