我正在使用自定义lstlisting
环境来突出显示 LaTeX 代码。为了使用此功能,我额外输入了几个关键字。但是,该multirow
包将其名称用作命令。我如何才能像在数学环境中一样删除此实例中的关键字突出显示\mathrm
?
环境如下(简化为基本内容):
\lstnewenvironment{customtex}
{\lstset{%
language=[LaTeX]{TeX},
...
keywordstyle=\color{darkred}\bfseries,
morekeywords={multirow},
}}{}
\RequirePackage{multirow}
并且在包的实例中不应该突出显示,而在使用时\multirow{...}{...}{...}
它应该作为关键字突出显示。
答案1
对于包含 LaTeX 代码的列表,有特殊lstset
选项可以设置 LaTeX 命令的外观,以及将条目添加到突出显示命令列表中的相应选项。这些是texcsstyle
(TeX 控制序列样式) 和moretexcs
。如果您希望反斜杠也突出显示(例如,在本网站上所做的那样),那么您可以使用=*
而不是=
。
梅威瑟:
\documentclass{article}
\usepackage{listings}
\usepackage[svgnames]{xcolor}
\lstnewenvironment{customtex}
{\lstset{%
language=[LaTeX]{TeX},
texcsstyle=*\color{DarkRed}\bfseries,
moretexcs={RequirePackage,multirow},
}}{}
\begin{document}
\begin{customtex}
\RequirePackage{multirow}
\multirow{1}{2}{3}
\end{customtex}
\end{document}
结果: