l3on4rdo” post=79429Ciao a tutti.
Ho iniziato, con l’aiuto della breve guida “L’arte di scrivere codici con LaTeX”, ad inserire i codici nelle appendici della mia tesi.
Nel preambolo, ho dato le istruzioni:
`\usepackage{listings}
\addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}
\lstset{basicstyle=\small\ttfamily,
language=C++,
numbers=left,
numberstyle=\tiny,
tabsize=4,
frame=single}`e funziona quasi tutto a meraviglia, a parte due comportamenti che non riesco a gestire.
Il primo è dovuto al fatto che mi capita molto spesso di “sforare” i limiti del frame, sebbene io sia stato attento, nell’editor di testo in cui ho scritto i codici, a non andare oltre le 72 battute (limite spesso consigliato).
Purtroppo, anche se ho impostato i caratteri come piccoli, non riesco a capire se sia possibile aumentare il numero di battute che possano rientrare nel frame… oppure ridurre ulteriormente la dimensione dei caratteri.Un secondo problema è relativo alla colorazione del codice.
Mi piacerebbe vedere l’effetto grafico, per capire se mi “piace”.
A tale scopo, ho aggiunto ad lstset le chiavi:
`
keywordstyle=\color{black}\bfseries,
commentstyle=\color{darkgray},
stringstyle=\color{black}
`
… ma o non mi colora nulla… oppure mi dà addirittura errore se inserisco nel codice C++ le direttive del precompilatore.Vi ringrazio in anticipo
Ciao 🙂
Problema numero 1: prova la chiave [tt]breaklines=true[/tt] (la trovi sul manuale – texdoc listings pagina 33). Per ridurre le dimensioni:
`
\normalfont
\small
\footnotesize
\scriptsize
\tiny
` in ordine di corpo decrescente. Vanno inserite nelle dichiarazioni di stile, vedi esempio successivo.
Problema numero 2; prova qualcosa tipo:
`
\lstset{language=C++,
basicstyle=\small\ttfamily,
keywordstyle=\small\color{blue}\ttfamily,
stringstyle=\small\color{red}\ttfamily,
commentstyle=\small\color{green}\ttfamily,
morecomment=[l][\small\color{magenta}]{\#}
}`
con un codice di esempio:
`
\begin{lstlisting}
#include
#include
// A comment
int main(void)
{
printf(“Hello World\n”);
return 0;
}
\end{lstlisting}
` Il risultato dovrebbe essere così.
Ciao
Claudio