Re: l’ambiente verbatim e la dimensione del font

#22324
Up
0
Down
::

perdonami se disturbo ancora, ma sono curioso…
cosa mi hai fatto scrivere?????

È meglio se citi i messaggi, visto che ci sono state diverse risposte. Siccome il codice magico l’ho scritto io, immagino che ti riferissi all’incantesimo
`\makeatletter
\g@addto@macro\@verbatim\small
\makeatother`
Vediamo con calma.

1. Il comando \verb e l’ambiente verbatim usano un font che è definito nella macro \verbatim@font che usualmente significa “\normalfont\ttfamily”.

2. Se modificassimo la definizione di \verbatim@font aggiungendo \small, avremmo in corpo \small anche le parti inserite con \verb|…|, e non sarebbe corretto.

3. L’ambiente verbatim emette il comando \@verbatim, che fa un po’ di cose amministrative, fra cui scegliere il font, ma poi lascia il comando ad altre macro che eseguono la composizione effettiva di ciò che compare nell’ambiente.

4. La definizione di \verbatim, che è il comando che viene eseguito quando si scrive \begin{verbatim}, è
`\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}`
Siccome quando viene eseguito \@verbatim non è stato ancora fatto nulla se non impostare certi parametri, si può inserire \small fra \@verbatim e \frenchspacing.

5. Non è necessario modificare la definizione di \verbatim, perché basta aggiungere in fondo alla definizione di \@verbatim il comando \small; questo è esattamente ciò che fa la macro \g@addto@macro.

Esempio:
`\makeatletter
\def\xxx{abc\uuu}
\g@addto@macro\xxx\XYZ
\makeatother`
Dopo questo incantesimo è come se la definizione di \xxx fosse stata
`\def\xxx{abc\uuu\XYZ}`
Et voilà. Semplice, no? 😉

Ciao
Enrico

Go to top