我想使用 report class 和 titlesec 自定义文档中的 headrule 和 footrule 方面。不幸的是,我对 \makeheadrule 和 \makefootrule 的重新定义并未考虑到章节页面。请参阅下面带有代码和图片的基本示例,两页上的规则线都应为蓝色。
\documentclass{report}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}
\newpagestyle{normalStyle}
{\sethead{}{Header}{}\headrule
\setfoot{}{Footer}{}\footrule}
\pagestyle{normalStyle}
\newpagestyle{chapterStyle}
{\sethead{}{Header}{}\headrule
\setfoot{}{Footer}{}\footrule}
\pagestyle{chapterStyle}
\assignpagestyle{\chapter}{chapterStyle}
\renewcommand\makeheadrule{\color{cyan}\rule[-.3\baselineskip]{\linewidth}{0.4pt}}
\renewcommand\makefootrule{\color{cyan}\rule[\baselineskip]{\linewidth}{0.4pt}}
\begin{document}
\chapter{Some Chapter Title}
\lipsum
\end{document}
答案1
问题在于\headrule
调用\setheadrule
,然后重新定义\makeheadrule
。这是在页面样式由\pagestyle
或设置时完成的\thispagestyle
(用于章节页面)。这同样适用于\footrule
。
\makeheadrule
将和的重新定义移到和之后\makefootrule
的页面样式定义中,解决了这个问题。\headrule
\footrule
\documentclass{report}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}
\newpagestyle{normalStyle}{%
\sethead{}{Header}{}\headrule
\setfoot{}{Footer}{}\footrule
\renewcommand\makeheadrule{\color{cyan}\rule[-.3\baselineskip]{\linewidth}{0.4pt}}
\renewcommand\makefootrule{\color{cyan}\rule[\baselineskip]{\linewidth}{0.4pt}}
}
\newpagestyle{chapterStyle}{%
\sethead{}{Header}{}\headrule
\setfoot{}{Footer}{}\footrule
\renewcommand\makeheadrule{\color{cyan}\rule[-.3\baselineskip]{\linewidth}{0.4pt}}
\renewcommand\makefootrule{\color{cyan}\rule[\baselineskip]{\linewidth}{0.4pt}}
}
\assignpagestyle{\chapter}{chapterStyle}
\pagestyle{normalStyle}
\begin{document}
\chapter{Some Chapter Title}
\lipsum
\end{document}