Re: “L’arte di scrivere codici con LaTeX”

#29156
lorenzo.pantieri
Partecipante
    Up
    0
    Down
    ::


    Rieccomi!

    Ho appena aggiornato il documento, sulla base delle indicazioni fornite da Enrico.

    1. Ho eliminato l’elenco dei codici dall’indice.

    2. Ho eliminato l’opzione eulermath da classicthesis.

    3. Ho rivisto il paragrafo 2:

    […] Scrivendo nel preambolo
    `\lstset{basicstyle=\small\ttfamily}`
    tutti i codici del proprio documento verranno stampati in caratteri dal corpo piccolo (scelta peraltro sempre consigliabile, nel caso dei codici fuori corpo), usando il font a spaziatura fissa predefinito, a meno che non si specifichi diversamente per codici particolari.

    Va notato che il comando \lstinline eredita tutte le opzioni impostate con i comandi \lstset che lo precedono (nello stesso gruppo). Per esempio, se nel preambolo del documento si seleziona l’opzione globale basicstyle=\small\ttfamily, anche \lstinline produrrà codici in caratteri dal corpo piccolo. Per far sì che i codici inseriti con \lstinline siano composti usando sempre il corpo corrente (evitando di esplicitare ogni volta basicstyle=\normalsize), è sufficiente introdurre tutti i codici fuori corpo, con le relative impostazioni, mediante gli ambienti personalizzati descritti nel paragrafo 4 nella pagina 12. In alternativa, è possibile ridefinire il comando \lstinline scrivendo nel preambolo le seguenti istruzioni:
    `
    \makeatletter
    \lst@Key{addtobasicstyle}\relax{%
    \toks@=\expandafter{\lst@basicstyle #1}%
    \edef\lst@basicstyle{\the\toks@}}
    \def\calc@current@size{%
    \edef\current@size{%
    \noexpand\fontsize{\f@size}{\f@baselineskip}%
    \noexpand\selectfont}}

    \renewcommand\lstinline[1][]{%
    \leavevmode\bgroup %
    \calc@current@size
    \def\lst@boxpos{b}\lsthk@PreSet
    \lstset{flexiblecolumns,addtobasicstyle=\current@size,#1}%
    \lsthk@TextStyle
    \@ifnextchar\bgroup{\afterassignment\lst@InlineG
    \let\@let@token}\lstinline@}
    \makeatother
    `

    Come dicevo, il risultato è indubbiamente efficace, ma mi lascia molto freddo, dal punto di vista didattico. 😕 Troverei decisamente preferibile che l’eccellente patch di Enrico venisse inglobata direttamente nel codice di listings…

    A presto,
    L.

    Go to top