HTML 颜色在 \lstset 的 moredelim 中不起作用

HTML 颜色在 \lstset 的 moredelim 中不起作用

这是我的代码:

\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}

相关内容