图表列表的彩色标题与彩色花式标题冲突

图表列表的彩色标题与彩色花式标题冲突

我正在写一份文档,希望将图列表的标题和页眉也着色(比如说用红色)。但似乎命令\fancyhead[L]{\textcolor[rgb]{1,0,0}{\leftmark}}干扰了标题的着色\renewcommand\listfigurename{\textcolor[rgb]{1,0,0}{List of Figures}}。章节的页眉没问题,但图列表的页眉不行……

完整代码如下:


\documentclass[a4paper,oneside,12pt]{book} 


\usepackage{xcolor}
\usepackage{graphicx} 
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\textcolor{red}{\leftmark}}
\fancyfoot[CE,CO]{\thepage}


\begin{document}

   
    
\renewcommand\listfigurename{\textcolor[rgb]{1,0,0}{List of Figures}} 
\listoffigures


\chapter{X}

\def\z{
  \begin{figure}[htp]
  \caption{A}
  \end{figure}
}
\z\z\z\z\z\z\z\z\z \clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage

\end{document}

有没有办法规避这个问题,让图列表的标题和页眉都变成彩色?我试过了\markboth{ \textcolor[rgb]{1,0,0}{LIST OF FIGURES} }{\textcolor[rgb]{1,0,0}{LIST OF FIGURES}}。但它只为最后一页提供了彩色标题。

我将不胜感激任何帮助。

答案1

第一次尝试

通过重新定义 实现了一次粗暴的尝试\listoffigures。请注意,每次\listoffigures通过不同的文档类或包重新定义 时,您都需要调整修补程序。

\documentclass[a4paper,oneside,12pt]{book}
\usepackage{xcolor}
\usepackage{graphicx} 
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\leftmark}
\fancyfoot[CE,CO]{\thepage}

\makeatletter
\renewcommand\listoffigures{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\color{red}\listfigurename}%
      \@mkboth{\color{red}\MakeUppercase\listfigurename}%
              {\color{red}\MakeUppercase\listfigurename}%
    \@starttoc{lof}%
    \if@restonecol\twocolumn\fi
    }
\makeatother

\begin{document}
\listoffigures

\chapter{X}

\def\z{
  \begin{figure}[htp]
  \caption{A}
  \end{figure}
}
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z
\z\z\z\z\z\z\z\z\z\clearpage

\end{document}

第二次尝试

\MakeUppercase由于在 中使用了\listoffigures,因此 中的每个字符都\listfigurename首先转换为大写。因此\textcolor[rgb]{1,0,0}{...}转换为\textcolor[RGB]{1,0,0}{...}。由于RGB[0, 255]^3颜色空间,1, 0, 0非常接近黑色(0, 0, 0),以至于无法与黑色区分。

诀窍如下:

\renewcommand{\listfigurename}{\textcolor[RGB]{255,0,0}{List of Figures}}

请注意,通常命名命令\listfigurename应该只包含普通字符,而不包含样式命令。不过我认为,在你的特定要求中有一些是可以的。

可能更优雅的解决方案

开始一个新页面,更改 的样式\chapter*和页面样式,使用\listoffigures,开始另一个新页面,然后恢复正常样式。

相关内容