我确实有一个命令,它可以用不同的颜色打印出部分文本。
\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}}}
不会有任何意外。