在 LaTeX 文档中,如何生成像 StackExchange 网站中那样的逐字表达式来编写代码?例如,,example
其中会有一个灰色框突出显示文本。我知道\verb
,但不确定这是否可以实现。有什么想法吗?以前有人回答过这个问题吗?
如果我使用了错误的术语,请原谅,我很乐意收到有关如何了解这一点的任何建议。
答案1
您有两个主要解决方案:minted
和listings
。它们给出类似的结果,但minted
设置起来更困难,因为您需要 1) 安装特定的 Python 模块和 2) 通过激活 shell 转义在 LaTeX 中打开安全风险。
因此我建议使用listings
,它开箱即用,无需外部安装,也无需特殊选项。以下是一个小示例:
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=Python, numbers=left, frame=single]
# A Python example
import numpy as np
t = np.linspace(0, 10, 150)
\end{lstlisting}
\begin{lstlisting}[language={[LaTeX]TeX}, numbers=left, frame=single]
% A LaTeX example
\begin{itemize}
\item foo
\item bar
\end{itemize}
\end{lstlisting}
\end{document}
当然,也可以通过语言来调整外观,包括彩色语法突出显示。
在lstlisting
环境中,它是逐字代码,因此默认情况下您无法执行您想要执行的 LaTeX 命令。如果需要,有一个解决方案,请escapechar
在文档中查找选项。我习惯\label
在代码中插入命令,以便以后可以引用特定的行。