有没有办法将 Python 代码包含在 LaTeX 文件中并自动为其语法着色?是否可以使用任何其他语言进行语法着色?如果可以,我可以使用哪些软件包来做到这一点?
答案1
这样做的标准方法是使用listings
包。它允许对输出进行多种格式设置,可以选择仅显示输入文件的一部分等等。该包还附带了许多它能理解的预定义语言,包括 Python。
答案2
答案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.m
matlab 中的函数生成放入 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"}