我正在尝试为排版正则表达式创建一个简单的语言定义。包提供otherkeywords
的选项listings
似乎非常方便。然而,它似乎不起作用。以下是我想要做的事情的 MWE:
\documentclass{article}
\usepackage{listings}
\lstdefinelanguage{regex}{
otherkeywords={+,*,|,?}
}
\begin{document}
\begin{lstlisting}[language=regex]
[A-Za-z](_?[A-Za-z0-9])*
\end{lstlisting}
\end{document}
当我尝试编译它时出现以下错误:
! Undefined control sequence.
\lst@OutputToken ...lst@CheckMerge {\lst@thestyle
{\lst@FontAdjust \setbox \...
l.12 [A-Za-z](_?
[A-Za-z0-9])*
?
显然,这里出了问题,但我想象不出是什么
答案1
我认为这是 lstlistings 中的一个错误,有一个未定义的关键字样式的内部命令。请提交错误报告。
\documentclass{article}
\usepackage{listings}
\lstdefinelanguage{regex}{
otherkeywords={+,*,|,?}
}
\makeatletter \def\lst@gkeywords@sty{\bfseries} %definition for this is missing.
\begin{document}
\begin{lstlisting}[language=regex]
[A-Za-z](_?[A-Za-z0-9])*
\end{lstlisting}
\end{document}