删除列表中单个实例中关键字的突出显示

删除列表中单个实例中关键字的突出显示

我正在使用自定义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}

结果:

在此处输入图片描述

相关内容