2010-12-14 68 views
7

Bất kỳ ai có thể giới thiệu cho tôi một mẫu tốt để bao gồm mã nguồn C có đánh số dòng bằng latex không? Ví dụ, lấy chương trình Hello world cổ điển, tôi muốn làm cho nó trông như sau:C Mã nguồn trong tài liệu Latex

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

Typicall, tôi luôn luôn sử dụng các môi trường verbatim, nhưng tôi tự hỏi nếu có một cách tốt hơn và đẹp hơn để làm cái đó.

Cảm ơn rất nhiều Richard

+1

xem tex.stackexchange.com cũng xem http://stackoverflow.com/questions/741985/latex-source-code-listing-like-in-professional-books – deinst

+0

Có lẽ câu trả lời tốt hơn có thể nhận được trên [TeX và LaTeX stackexchange] (http://tex.stackexchange.com/). –

Trả lời

9

Bạn có thể muốn xem qua số listings package. Nó rất linh hoạt và dễ sử dụng.

0

CWEB có trình định dạng C đẹp.

9

Như những người khác đã nói, gói listings lẽ sẽ làm những gì bạn muốn sử dụng một cái gì đó như sau:

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

Một thay thế mạnh mẽ hơn sẽ được sử dụng gói minted, mặc dù điều này sẽ làm nhiều hơn những gì bạn đang yêu cầu, vì nó sử dụng/yêu cầu các pygments được cài đặt trên hệ thống của bạn để nó có thể mã hóa đầy đủ mã bạn cung cấp.

0

Sử dụng gói lgrind cho mủ cao su. Nó chuyển đổi mã của bạn thành tệp .tex

Các vấn đề liên quan