- Questo topic ha 8 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 9 mesi fa da .
-
Topic
-
Il seguente documento fa uso di listings per includere un listato in C++:
`\documentclass{report}
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{listings}
\definecolor{veryLightGrey}{rgb}{0.9629411,0.9629411,0.9629411}\lstset{language=C++,
alsolanguage=[ANSI]C,
backgroundcolor=\color{veryLightGrey},
keywordstyle=\color{RoyalBlue},
directivestyle=\color{Red}\tiny,
%keywordsprefix={\#},
%morekeywords={\#include},
%moredirectives={include},
numbersep=8pt,
basicstyle=\small\sffamily,
commentstyle=\color{Green}\small\sffamily,
stringstyle=\sffamily,
showstringspaces=false,
breaklines=true,
frame=none}\begin{document}
\begin{lstlisting}
// Include headers
#include “Epetra_MpiComm.h”// Main driver
int main( int argv, char *argv[]) {// MPI initialisation
MPI_Init(&argc, &argv);// Instantiate the communciator
Epetra_MpiComm Comm(MPI_COMM_WORLD);// MPI finalisation
MPI_Finalize();}
\end{lstlisting}
\end{document}`
Oltre a chiedere dei consigli sull’aspetto estetico (sono molto scettico e inesperto sull’uso dei colori e listati come questo saranno frequenti nella mia tesi), volevo farvi notare che la direttiva #include non è riconosciuta né come parola chiave, né come direttiva. Scartabellando i sorgenti di listings, ho visto che il linguaggio [ANSI]C riconosce “include” come una direttiva e quindi, con il codice che ho scritto, dovrebbe apparire \tiny ed in rosso (questo è solo per prova, non vi preoccupate! Non lo userei mai in fase finale).Come si nota dalle opzioni commentate di \lstset, ho provato senza successo con
`moredirectives=include`
Successivamente, ho pensato che almeno potevo farlo passare come una parola chiave, e perciò ho provato
`keywordsprefix={\#}`
che mi restituisce #include invece di #include. Infine, se provo con
`morekeywords={\#include}`
ottengo #include, tutto in nero.Avete qualche idea?
Grazie
Daniele
- Devi essere connesso per rispondere a questo topic.