如何在 LaTeX 文档中包含 Matlab 代码

目前已经存在许多宏包可以将程序源码包含到 LaTeX 文档中。最为流行的是可能是 listingsfancyvrb。然而,由于在设计时考虑到通用性,因此在包含 matlab 代码时设置适当的颜色与标记成为了一件十分繁琐的事。幸运的是Florian Knorn在 Matlab 中心发布了一个简单的模板文件——mcode, 来帮助我们完成这项工作。

配置

下载mcode.sty, 如果下载中断的话,还可以到howtotex网上去下载。下载完后将mcode.sty文件放在与tex文件向东文件夹下。并且在 tex 文件的导言区加入如下代码:

\usepackage[]{mcode}

方括号中的选项可以包括:

  • bw: 黑白打印(根据灰度进行高亮)
  • numbered: 生成代码行号
  • framed: 包含代码框
  • final: 该选项是配合使用 draft选项,当开启 draft选项时,除非添加 final选项,才会生成代码
  • useliterate: 文学编程格式
  • autolinebreaks: 自动断行

注意:mcode 宏包是基于 listing 宏包的,(它仅仅是针对 Matlab 代码高亮标准进行了特殊的颜色设置)。

使用

使用该宏包可以通过以下两种途径包含matlab代码:

第一种:

\begin{lstlisting}
 a = 1; % MATLAB comment
 b = 2; 
c = a^2 + b^2; 
\end{lstlisting}

第二种:

\lstinputlisting{/path_to_mfile/my_mfile.m}

评论

该宏包主要是针对 matalab 代码颜色与格式的精细调整,由于在论文文稿中 matlab代码较多,所以使用该宏包在某种程度上能够节省时间,美化排版。并且该宏包还提供了一些其他的比较雅观的排版技巧,比方说文学编程选项,使用该选项可以在代码中输出不等号,具体可见文档中的 demo。

本文翻译自How to include MATLAB code in LaTeX documents