Latex文档中的C源代码

时间:2010-12-14 13:21:21

标签: latex

任何人都可以向我推荐一个好的模板来包含带有行号的C源代码 在乳胶?例如,采用经典的Hello world程序,我想使它看起来如下:

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

典型的,我总是使用逐字环境,但我想知道是否有更好更好的方法来做到这一点。

非常感谢 理查德

5 个答案:

答案 0 :(得分:9)

您可能想查看listings package。它非常灵活且易于使用。

答案 1 :(得分:9)

正如其他人所说,listings包可能会使用以下内容执行您想要的操作:

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

更强大的替代方法是使用minted软件包,虽然这会比您当前要求的更多,因为它使用/要求在系统上安装pygments以便它可以完全标记化你提供的代码。

答案 2 :(得分:1)

看看http://www.tex.ac.uk/cgi-bin/texfaq2html?label=codelist。你会在那里找到几种替代品。

答案 3 :(得分:0)

CWEB有一个不错的C格式化程序。

答案 4 :(得分:0)

使用lgrind包装来制作乳胶。它将您的代码转换为.tex文件