使用 listings 包排版 LaTeX 源代码

使用 listings 包排版 LaTeX 源代码

我正在为 LaTeX 包编写一些文档,其中我将包含一些示例 LaTeX 代码。排版该代码的最佳方法是什么?我知道我可以使用verbatim,但如果能获得语法高亮就更好了。我意识到这是这个问题,其中的共识是使用listings软件包。问题是listings它似乎只有一个 TeX 驱动程序,而没有 LaTeX 驱动程序。例如,当我排版如下内容时:

\begin{lstlisting}[language=TeX,
                   keywordstyle=\bfseries,
                   identifierstyle=\itseries,
                   stringstyle=\ttfamily]
\begin{minipage}{\hsize}
  This is a test!
\end{minipage}
\end{lstlisting}

结果是这样的:

\开始{小页面}{\水平尺寸}
  这是一个测试!
\结尾{中心}

这显然是搞乱了。

是否有专门针对 LaTeX 的驱动程序listings?如果没有,是否有其他软件包可以对 LaTeX 代码进行语法高亮?

答案1

您需要提供 TeX 的“子语言”:

language = [LaTeX]{TeX}

在编写包时,您可能还想使用键moretexcs来添加“新”的 LaTeX 命令。例如,在我的siunitx我有一个很长的清单:

  moretexcs    = 
    {
      addto,
      ampere,
      ang,
      angstrom,
      ...

涵盖它添加的所有新宏,以及来自文档中且未知的其他包的宏listings

答案2

minted使用色素解释器,它可以理解 TeX,所以这可能是一个有效的选择。

答案3

仅供参考,另一种解决方案使用色素解释器是纺织品

相关内容