如何突出显示包含特殊字符或数字的关键字?

如何突出显示包含特殊字符或数字的关键字?

在以下 MWE 中,声明的关键字te-st999未按预期突出显示:

\documentclass{scrartcl}
\usepackage{listings,xcolor}
\lstdefinelanguage{mylang}{keywords={test,te-st,999,xyz},keywordstyle=\color{red}}
\begin{document}
\begin{lstlisting}[language=mylang,basicstyle=\ttfamily]
abc test 
def te-st
ghi 999
jkl xyz
\end{lstlisting}
\end{document}

在此处输入图片描述

我如何定义诸如999或之类的关键字te-st

答案1

对于列表,关键字与所有标识符一样以字母开头,并以字母或数字结尾。如果您的标识符中需要其他字符,则必须将其设为字母或数字。或者,使用由otherkeywords您不想重新定义的字符组成的关键字选项:

\documentclass{scrartcl}
\usepackage{listings,xcolor}
\lstdefinelanguage{mylang}{%
    alsodigit={-},    % also: alsoletter
    otherkeywords={999},
    keywords={test,te-st,xyz},keywordstyle=\color{red}}
\begin{document}
\begin{lstlisting}[language=mylang,basicstyle=\ttfamily]
abc test 
def te-st
ghi 999
jkl xyz
\end{lstlisting}
\end{document}

有关详细信息,请参阅列表文档的参考部分。

相关内容