如何在程序列表/代码中添加行号?

如何在程序列表/代码中添加行号?

如何将代码复制到 Latex 中以获得如下结果:

在此处输入图片描述

...当然没有红色条。我不知道如何在编译 LaTeX 时获取左侧的编号。使用\verbatim只会给我代码。

更新:有必要使代码具有与 Matlab 中显示相同的颜色。

答案1

为了完成我的硕士论文,我在 MatLab 中编写了大量代码。为了使代码“打印得漂亮”,我使用了与 @cmhughes 提到的相同的软件包。它看起来像这样(在序言中):

\usepackage{listings} %For code in appendix
\lstset
{ %Formatting for code in appendix
    language=Matlab,
    basicstyle=\footnotesize,
    numbers=left,
    stepnumber=1,
    showstringspaces=false,
    tabsize=1,
    breaklines=true,
    breakatwhitespace=false,
}

然后,当你想包含你的代码文件时,只需使用\lstinputlisting。继续这个例子:

\lstinputlisting[language=Matlab]{./Code/calc_error.m}

我特别喜欢这个,因为它允许我在文件夹本身中更改 MatLab 中的代码,而不必在 LaTeX 中更新它,因为我直接指向文件而不是代码本身。

结果将会是这样的:

使用 <code>\usepackage{listings></code> 并使用 <code>\lstset</code> 进行设置的代码示例

当然,你总是可以玩,\lstset以获得你想要的东西,正如文档

答案2

如果您不需要代码高亮显示,那么该fancyvrb包就可以了。我没有使用matlab,但为了演示,假设您有一个名为的文件yourfile.m,那么以下代码将为您提供左侧编号。VerbatimInput{yourfile.m}输入您的文件。

\documentclass[10pt]{article}

\usepackage{fancyvrb}
\fvset{%
fontsize=\small,
numbers=left
}

\begin{document}
\VerbatimInput{yourfile.m}
\end{document}

另一个选择是minted。它在内部使用fancyvrb并使用 Pygmentspython进行语法突出显示。尝试以下示例,将其替换yourfile.m为您的实际文件。您必须在-shell-escape启用选项的情况下进行编译。阅读有关库安装的手册Pygments

\documentclass[10pt]{article}

\usepackage{minted}
\newmintedfile{matlab}{
linenos=TRUE,
fontsize=\small,
}
\usemintedstyle{trac}

\begin{document}
\matlabfile{yourfile.m}
\end{document}

相关内容