我正在定义自己的列表并遇到一个问题,即 LaTeX 突出显示单词中的单词 - 例如,如果 OR 是一个关键字,它会突出显示 ANIMATOR 中的 OR - 即使 ANIMATOR 本身是一个关键字(它会覆盖 ANIMATOR 突出显示)。
梅威瑟:
\documentclass{article}
\usepackage{listings, xcolor, courier}
\lstdefinelanguage{defFile}{
morekeywords={FOOBAR, FOOBAE},
otherkeywords={-,->,> ,BAR},
morekeywords=[2]{-,->,>,;},
morekeywords=[3]{BAR}
}
\lstdefinestyle{defFile}
{
\lstset{
language = {defFile},
basicstyle = \small\ttfamily,
keywordstyle = \bfseries\color{purple},
keywordstyle = [2]{\color{green}},
keywordstyle = [3]{\color{blue}}
}
}
\begin{document}
\begin{lstlisting}[style={defFile}]
FOOBAR -> FOO, BAR
FOOBAE -> FOO, BAE
\end{lstlisting}
\end{document}
其结果是:
请注意,由于随后将 BAR 定义为关键字,FOOBAR 不再突出显示。
答案1
您的示例无法编译。您不能\lstset
在样式定义中使用。除此之外:不要在中重复您的关键字otherkeywords
:
\documentclass{article}
\usepackage{listings, xcolor, courier}
\lstdefinelanguage{defFile}{
morekeywords={FOOBAR, FOOBAE},
otherkeywords={-,->,>},
morekeywords=[2]{-,->,>,;},
morekeywords=[3]{BAR}
}
\lstdefinestyle{defFile}
{
language = {defFile},
basicstyle = \small\ttfamily,
keywordstyle = \bfseries\color{purple},
keywordstyle = [2]{\color{green}},
keywordstyle = [3]{\color{blue}}
}
\begin{document}
\begin{lstlisting}[style={defFile}]
FOOBAR -> FOO, BAR
FOOBAE -> FOO, BAE
\end{lstlisting}
\end{document}