下面的 MCE 和图像显示 titleps 的页面样式在章节开始之前插入得太早:头部规则以“测试”页面样式开始,该样式应仅在第 1 章结束后应用,因此也应在第 2 章开始时应用。
\documentclass{book}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}
\usepackage{hyperref}
%
\newpagestyle{main}[]{%
\sethead
[\thepage][][\chaptertitlename\space\thechapter. \chaptertitle]
{\ifthesection{\thesection\space\,\sectiontitle}
{\chaptertitlename\space\thechapter. \chaptertitle}}{}{\thepage}
}
%
\newpagestyle{test}[]{%
\sethead
[\thepage][][\chaptertitlename\space\thechapter. \chaptertitle]
{\ifthesection{\thesection\space\,\sectiontitle}
{\chaptertitlename\space\thechapter. \chaptertitle}}{}{\thepage}
\headrule
}
%
\begin{document}
\tableofcontents
\pagestyle{main}
\chapter{Main}
\lipsum[1-25]
\pagestyle{test}
\chapter{Test}
\lipsum[1-25]
\end{document}
输出如下:
如下图所示,\cleardoublepage
在开头添加\newpagestyle{test}
并没有帮助:
答案1
添加\cleardoublepage
页面样式定义没有帮助,因为页面样式是在输出过程中应用的。
在页面样式改变之前添加\cleardoublepage
;您可能需要定义一个\switchpagestyle
命令:
\makeatletter
\newcommand{\switchpagestyle}{%
\@ifstar{\clearpage\pagestyle}{\cleardoublepage\pagestyle}}
\makeatother
这样你就可以输入
\switchpagestyle{test}
如果你还想要一个\cleardoublepage
或
\switchpagestyle*{test}
如果只\clearpage
需要a。