使用此代码:
\documentclass[12pt,letterpaper,twoside,openright]{report}
\usepackage{xcolor}
\usepackage{fourier}
\usepackage[fit, breakwords]{truncate}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\renewcommand{\chaptermark}[1]{\markboth{\small\textsc{\color{blue}{\thechapter.\ #1}}}{}}
\renewcommand{\sectionmark}[1]{\markright{\small\textsc{\color{blue}{\thesection.\ #1}}}{}}
\fancyhead[RE]{\truncate{0.9 \textwidth}{\leftmark}}
\fancyhead[LO]{\truncate{0.9 \textwidth}{\rightmark}}
\fancyhead[LE,RO]{\small\color{blue}\textsc{\thepage}}
\fancyfoot{}
\renewcommand\headrule{\color{blue}%
\rule{6.4cm}{.4pt}%
\raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}%
\rule{6.4cm}{.4pt}}
\usepackage{blindtext}
\begin{document}
\chapter{This is a chapter title}
\section{This is a section title}
\Blindtext
\section{This is a a very long section title that employs three lines of text.
This is a a very long section title that employs three lines of text.}
\Blindtext
\end{document}
我遇到了图中所示的问题:在彩色标题中截断的长标题之后,文本的颜色也会发生变化。我希望它保持黑色。
答案1
这不是fancyhdr
问题。
正如@daleif所说,你不应该把\color
命令放在\chaptermark
或\sectionmark
。我认为发生的情况是,在 TeX 输出\color
中写入的命令\mark
泄漏到了其余输出中。
更新:经过一些实验,我发现问题是由命令\color
内部的命令引起的\truncate
。由于某种原因\truncate
导致\color
命令脱离自身(可能是因为它切断了在最后重置颜色堆栈的内部命令)。因此命令\color
应该在命令之外\truncate
。
换句话说:(1)不要使用\color
在标记中使用命令。(2)不要在参数\color
中使用命令\truncate
。
这是您文档的更正版本。我做了以下更正:
- 将
\color
命令从...mark
s 移至标题 - 改变了
\headheight
,并对 做了相应修改\textheight
。 - 太长
\headrule
了。我将显式的 改为\rule
,\hfillrule
这样它们就会自动获得正确的长度。 - 我把
\color
命令放在了 之外\truncate
。见上文。
\documentclass[12pt,letterpaper,twoside,openright]{report}
\usepackage{xcolor}
\usepackage{fourier}
\usepackage[fit, breakwords]{truncate}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\fancyhead[RE]{\color{blue}\truncate{0.9 \textwidth}{\small\textsc{\leftmark}}}
\fancyhead[LO]{\color{blue}\truncate{0.9 \textwidth}{\small\textsc{\rightmark}}}
\fancyhead[LE,RO]{\color{blue}\small\textsc{\thepage}}
\fancyfoot{}
\renewcommand\headrule{\color{blue}%
\hrulefill
\raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}%
\hrulefill}
\usepackage{blindtext}
\begin{document}
\chapter{This is a chapter title}
\section{This is a section title}
\Blindtext
\section{This is a a very long section title that employs three lines of text.
This is a a very long section title that employs three lines of text.}
\Blindtext
\end{document}