2010-12-14 20 views
7

Qualcuno mi può consigliare un buon modello per includere il codice sorgente C con la numerazione delle righe in lattice? Ad esempio, prendendo il programma Ciao mondo classico, vorrei farlo sembrare come segue:Codice sorgente C in documento Latex

(1) /* Hello World program */ 
(2) 
(3) #include<stdio.h> 
(4) 
(5) main() 
(6) { 
(7) printf("Hello World"); 
(8) } 

Typicall, ho sempre usato l'ambiente verbatim, ma mi chiedo se c'è un modo migliore e più bello per fare quella.

Grazie tanto Richard

+1

vedi tex.stackexchange.com guarda anche http://stackoverflow.com/questions/741985/latex-source-code-listing-like-in-professional-books – deinst

+0

Probabilmente è possibile ottenere una risposta migliore [TeX e LaTeX stackexchange] (http://tex.stackexchange.com/). –

risposta

9

Si potrebbe desiderare di dare un'occhiata allo listings package. È molto flessibile e facile da usare.

0

CWEB aveva un bel formattatore C.

9

Come altri hanno detto, il pacchetto listings probabilmente fare ciò che si desidera utilizzare qualcosa di simile al seguente:

\lstset{ 
    language=C,    % choose the language of the code 
    numbers=left,     % where to put the line-numbers 
    stepnumber=1,     % the step between two line-numbers.   
    numbersep=5pt,     % how far the line-numbers are from the code 
    backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color} 
    showspaces=false,    % show spaces adding particular underscores 
    showstringspaces=false,   % underline spaces within strings 
    showtabs=false,     % show tabs within strings adding particular underscores 
    tabsize=2,      % sets default tabsize to 2 spaces 
    captionpos=b,     % sets the caption-position to bottom 
    breaklines=true,    % sets automatic line breaking 
    breakatwhitespace=true,   % sets if automatic breaks should only happen at whitespace 
    title=\lstname,     % show the filename of files included with \lstinputlisting; 
} 

\lstinputlisting{HelloWorld.c} 

Un più potente alternativa sarebbe quella di utilizzare il pacchetto minted, anche se questo farà molto di più di quello che stai chiedendo, poiché usa/richiede che pygments sia installato sul tuo sistema in modo che possa tokenizzare completamente il codice che gli dai.

0

Utilizzare il pacchetto lgrind per il lattice. Converte il tuo codice in un file .tex

Problemi correlati