这是我的代码:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\begin{document}
% Example 1
\lstset{
basicstyle=\color[HTML]{0000ff}\ttfamily, % blue
moredelim=[s][\itshape\color{red}]{[}{]}, % red
}
\begin{lstlisting}
foo [bar] baz
\end{lstlisting}
% Example 2
\lstset{
basicstyle=\color[HTML]{008000}\ttfamily, % green
moredelim=[s][\itshape\color[HTML]{808080}]{[}{]}, % gray
}
\begin{lstlisting}
foo [bar] baz
\end{lstlisting}
\end{document}
输出如下:
我原本以为第二个“[bar]”会以灰色显示。但它却显示为红色。为什么会这样?
答案1
您在可选参数中使用可选参数,因此必须对该参数进行分组。
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\begin{document}
% Example 1
\lstset{
basicstyle=\color[HTML]{0000ff}\ttfamily, % blue
moredelim=[s][\itshape\color{red}]{[}{]}, % red
}
\begin{lstlisting}
foo [bar] baz
\end{lstlisting}
% Example 2
\lstset{
basicstyle=\color[HTML]{008000}\ttfamily, % green
moredelim=[s][{\itshape\color[HTML]{808080}}]{[}{]}, % gray
}
\begin{lstlisting}
foo [bar] baz
\end{lstlisting}
\end{document}