LaTeX 中的语法着色

LaTeX 中的语法着色

有没有办法将 Python 代码包含在 LaTeX 文件中并自动为其语法着色?是否可以使用任何其他语言进行语法着色?如果可以,我可以使用哪些软件包来做到这一点?

答案1

这样做的标准方法是使用listings包。它允许对输出进行多种格式设置,可以选择仅显示输入文件的一部分等等。该包还附带了许多它能理解的预定义语言,包括 Python。

答案2

虽然listings软件包很好,但它也有一些不足,特别是在 Unicode 支持方面。我建议尝试一下minted,它使用的输出皮格门特斯,它比更有可能获得语法更新listings

答案3

我在论文中使用 matlab 代码。要在 matlab 中获取语法着色,请在标题中输入以下内容:

\usepackage{alltt}
\usepackage{color}
\usepackage{fullpage}
\definecolor{string}{rgb}{0.7,0.0,0.0}
\definecolor{comment}{rgb}{0.13,0.54,0.13}
\definecolor{keyword}{rgb}{0.0,0.0,1.0}

然后使用highlight.mmatlab 中的函数生成放入 latex 文件中的代码。

然后只需将 matlab 代码放在里面

\begin{alltt}
%% code generated by highlight.m %%
\end{alltt}

答案4

这是我编写的代码,用于将结果和代码列表放在我最近提交的一些作业中。结果和代码列表都有自己的计数器,因此它们被编号,我的论文可以引用它们。

以下是标题的内容:

\usepackage{fancyvrb, listings, color}

\definecolor{gogetit}{HTML}{6C8B9F}
\lstset{
    fancyvrb=true,
    showstringspaces=false,
    tabsize=3,
    keywordstyle=\color{blue}\textbf,
    identifierstyle=,
    commentstyle=\color{gogetit}\textit,
    stringstyle=\color{red},
    }
\begin{document}
\fvset{numbers=left,numbersep=3pt,fontsize=\small,fontfamily=helvetica,frame=lines,resetmargins=true}  

现在,在我的论文中,我包含了没有任何语言定义的估计结果

\newcounter{resultsin}
\setcounter{resultsin}{1}
\VerbatimInput[firstline=6,lastline=27,label=\fbox{\textbf{Results \arabic{resultsin}:} OLS labor supply}]{"./results/ps3_stata_c.log"}
\stepcounter{resultsin}

最后我将语言改为 R 来显示一些代码

\section*{Appendix: Code}
\lstset{language=R}
\newcounter{codein}
\setcounter{codein}{1}
\VerbatimInput[firstline=70,lastline=90,label=\fbox{\textbf{Code \arabic{codein}:} function for IV estimation}]{"ps3.R"}
\stepcounter{codein}
\VerbatimInput[firstline=42,lastline=53,label=\fbox{\textbf{Code \arabic{codein}:} makeresiduals (called by IVregress)}]{"ps3.R"}
\stepcounter{codein}
\VerbatimInput[firstline=53,lastline=58,label=\fbox{\textbf{Code \arabic{codein}:} addcons (called by IVregress)}]{"ps3.R"}

相关内容