2010-12-14 12 views
7

Czy ktoś może polecić mi dobry szablon, aby dołączyć kod źródłowy C z numerem linii w lateksie? Na przykład, biorąc klasycznego programu Hello World, chciałbym, aby wyglądał następująco:C Kod źródłowy w dokumencie Latex

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

Typicall, zawsze stosowany Verbatim środowiska, ale zastanawiam się, czy istnieje lepszy i ładniejszy sposób zrobić że.

Dzięki tak dużo Richard

+1

zobacz tex.stackexchange.com również spójrz na http://stackoverflow.com/questions/741985/latex-source-code-listing-like-in-professional-books – deinst

+0

Prawdopodobnie lepszą odpowiedź można uzyskać na [stackach wymiennika TeX i LaTeX] (http://tex.stackexchange.com/). –

Odpowiedz

9

Możesz chcieć rzucić okiem na listings package. Jest bardzo elastyczny i łatwy w użyciu.

0

CWEB miał ładny format C.

9

Jak mówili inni, pakiet listings prawdopodobnie będzie robić co chcesz przy użyciu coś jak następuje:

\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} 

Mocniejszy alternatywą byłoby użyć pakietu minted, choć będzie to zrobić znacznie więcej niż o to, o co pytasz, ponieważ używa/wymaga zainstalowania w twoim systemie figur, aby mógł w pełni tokenizować kod, który mu podałeś.

0

Użyj pakietu lgrind do lateksu. Przekształca twój kod w plik .tex.