在LaTeX里实现最专业的程序源代码排版

我们可以用一个叫做listings的LaTeX package来实现专业源代码排版的效果。这个package支持很多不同的编程语言,从常见的C, Java到不怎么常用的R, Elisp, 到很不常用的Ada, Logo等。基本上,只要你能想到的语言它都能支持。

基本用法,首先在preamble里加载listings:

\usepackage{listings}

这个package提供了三种源代码的排版方法。

  • inline, 适合在正常的一段话中引一个函数。用法:

    \lstset{language=c}
    the call \lstinline!socket()! creates a socket.
    
  • enviroment, 适合在LaTeX源文档里插入一段中等长度的代码。用法:
    \lstset{language=c++}
    \begin{lstlisting}[frame=tb]{somecode}
        for(i = 0; i < 10; i++)
        {
            // increment the pointer
            *p++ = i;
        }
    \end{lstlisting}
    
  • 直接调用外部源代码文件,用法:
    \lstinputlisting[language=Python]{source_filename.py}
    

listings提供了很多可调参数,比如说字体,Tabsize,keywords等等。我目前用的参数如下:

\lstset{language=r,
  basicstyle=\ttfamily,
  keywordstyle=\color{blue},
  commentstyle=\color{darkgreen},
  stringstyle=\color{red}}

这些比较高级的用法可以在Wikipedia上找到。

,

  1. 发表评论

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: