关于LaTeX中包含程序代码的问题

关于LaTeX中包含程序代码的问题
  1. 我有一些 Matlab 代码,想要将其包含在我的 LaTeX 文档中。

    我用幻想VRB包,在此基础上我定义了一个新的环境,叫做 code。一个完整且最小的示例是:

    \documentclass[12pt,letterpaper]{article}
    \usepackage{fancyvrb}
    \DefineVerbatimEnvironment{code}{Verbatim}{fontsize=\small}
    \DefineVerbatimEnvironment{example}{Verbatim}{fontsize=\small}
    
    \begin{document}
    \begin{code}
    addpath('~/plot'); 
    \end{code}
    \end{document}
    

    但是,在创建的 pdf 文件中,如果我复制代码并将其粘贴到 Matlab 命令窗口中,Matlab 会抱怨单引号不是 Matlab 中使用的单引号。我想知道为什么以及如何解决这个问题?

  2. 概括来说,我还想知道除了单引号之外是否还有其他字符可能导致此类错误?不仅在 Matlab 中,而且在其他编程语言中也是如此?
  3. 另外,我想知道使用 fancyvrb 在 LaTeX 中包含代码的方法是否最好?您还有其他不错的方法可以推荐吗?

感谢致敬!

答案1

几年前,我写了一本关于 Matlab 的书,我把listings所有包含的代码都用到了这个包中。这提供了许多选项:转为 (La)TeX、彩色背景、框架等。

我使用

\lstset{language={},
  keepspaces=true,
  xleftmargin=\parindent,
  xrightmargin=\parindent,
  basicstyle=\ttfamily,
  frame=single,
  framesep=2mm,
  framerule=0pt,
  columns=flexible,
  backgroundcolor=\color[gray]{0.9}}

然后调用它

\begin{lstlisting}
function sc(n)

for i = 1:n
    disp([i, i^2, i^3])
end  
\end{lstlisting}

我也一直用它做学生笔记。

相关内容