这可能在某处有一个答案......
以下是 MWE:
\documentclass[a4paper]{memoir}
\usepackage{listings}
\usepackage[svgnames,dvipsnames]{xcolor}
\colorlet{level1}{red}
\lstset{
basicstyle=\small\ttfamily,
keywordstyle=\bfseries\color{level1},
alsoletter={\\},
}
\begin{document}
\lstset{
morekeywords={\\bigl,\\bigr}
}
\begin{lstlisting}
$\bigl(\sqrt{x^2}\bigr)$
\end{lstlisting}
\begin{lstlisting}
$ \bigl(\sqrt{x^2}\bigr)$
\end{lstlisting}
\end{document}
为什么我需要一个空格才能得到红色\bigl
?
答案1
数学移位也是一个字母,因此列表会看到“关键字” $\bigl
。您可以添加alsoother={$}
。
编辑
可能更好的方法是定义一种自己的语言:
\documentclass[a4paper]{memoir}
\usepackage{listings}
\usepackage[svgnames,dvipsnames]{xcolor}
\colorlet{level1}{red}
\lstdefinelanguage{daleif}{%
moretexcs={bigr}}%default keywords
[keywords,tex,comments] %aspects
\lstset{
language=daleif,
basicstyle=\small\ttfamily,
texcsstyle=*\bfseries\color{level1},
}
\begin{document}
\begin{lstlisting}
$\bigr\bigl\def$
\end{lstlisting}
\begin{lstlisting}[moretexcs={bigl}]
$\bigr\bigl\def$
\end{lstlisting}
\begin{lstlisting}
$\bigr\bigl\def$
\end{lstlisting}
\end{document}