意外的字幕着色

意外的字幕着色

我确实有一个命令,它可以用不同的颜色打印出部分文本。

\newcommand{\indexit}[1]{\index{#1}{\sffamily\color{NavyBlue}#1}}

它工作正常,但如果分页中断#1,并且程序列表在新页面上跟随,则列表的标题将采用 NavyBlue 颜色。我确实使用定义

{\begin{program}[h!btp] }
 \caption{#3}
 \lstinputlisting[label=#4, name=#4] {#2}
....

如果不进行 MWE(引发这种情况、提交格式描述等会很棘手),您是否知道可能是什么问题?

答案1

\color{NavyBlue}#1需要包含在组内才能使其效果局部化。因此,您需要将其括在一对括号内,如{\color{NavyBlue}#1}

\newcommand{\indexit}[1]{\index{#1}{\sffamily{\color{NavyBlue}#1}}}

然而,这有时会以奇怪的方式给你带来惊喜。最安全的方法是使用\textcolor命令

\newcommand{\indexit}[1]{\index{#1}{\textcolor{NavyBlue}{\sffamily #1}}}

不会有任何意外。

相关内容