在研究文章中显示(源)代码

在研究文章中显示(源)代码

我迫切需要在文章中并排显示两段代码以供比较。显示代码时,我有几个要求

  1. 应该适当缩进
  2. 输出应该语法高亮
  3. 应尽可能自动地处理长行代码(即,必要时换行)
  4. 代码应该很容易从输出 pdf 中复制
  5. 代码可以任意长,即跨越多页,因此最好能够自动处理此类事情

我简要地研究了两种选择,Verbatim 和 listing 以及 minipage。它们工作得还不错!但输出结果实在太差了。这两种设置哪个好,至少能产生好看的输出。对于自动化部分,我仍然可以编写 Python 脚本来实现这一点。如果你们当中有人知道可以完美呈现代码的研究文章示例,请与我分享,我将不胜感激。请记住,我并不经常使用 Latex。

答案1

以下是包使用的示例listings(针对 Octave 的 m 文件):

\usepackage{listings}
\lstset{basicstyle=\small,breaklines=true,language=Octave,
    extendedchars=true,aboveskip=1em,belowcaptionskip=5pt,
    prebreak = \hbox{%
\normalfont\small\hfill\green{\ensuremath{\hookleftarrow}}},
    postbreak = \hbox to 0pt{%
\hss\normalfont\small\green{\ensuremath{\hookrightarrow}}\hspace{1ex}},
    commentstyle=\color{blue},showspaces=false,
    showstringspaces=false,stringstyle=\bfseries\color[rgb]{0.6,0,1},
    numbers=left,numberstyle=\tiny,stepnumber=2,
    keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
    frameround=tttt,frame=trBL,tabsize=4,backgroundcolor=\color[rgb]{.9,.9,1}}
\lstloadlanguages{Octave}
\def\lstlistingname{Listing}
\def\lstref#1{(look~listing~\ref{#1})}
\begin{document}
\lstinputlisting[caption={Caption for listing},label=alabel]{file.m}

阅读文档listings:您可以调整颜色、行号、列表周围的框以及许多其他内容。

相关内容