如何将代码复制到 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 中更新它,因为我直接指向文件而不是代码本身。
结果将会是这样的:
当然,你总是可以玩,\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
并使用 Pygments
库python
进行语法突出显示。尝试以下示例,将其替换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}