我正在使用类设置文档octavo
并包括包tocloft
和fancyhdr
。这是我的 fancyhdr 设置:
\fancyhead[CE]{\itshape\booktitle}
\fancyhead[CO]{\itshape\leftmark}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
我希望章节号出现在目录中的章节列表中,因此我以如下内容开始章节:
\chapter[II. Title of Chapter Two]{Title of Chapter Two}
这给了我想要的章节标题(“第二章标题”)和我想要的目录条目(“II.第二章标题”),但是每个右页上的标题都是后者,而我想要的是前者。
有什么办法可以做到这一点吗?
感谢您的帮助!
答案1
可选\chapter
参数 被用于目录和\markboth
。如果您想要一个没有编号的章节标题,但在目录中使用不同的内容,在标题中使用不同的内容,您可以将 用作\addcontentsline
目录,\chapter*
将 用作未编号的标题 和 设置\markboth
为在左侧和/或右侧标题处有更多标题版本(即使没有fancyhdr
)。这可以用宏来简化,但我在两个章节中手动设置它以使方法更清晰。
请注意,这些章节标题版本中的任何一个都不应有错误的编号,如果您添加\删除\移动任何其他章节,编号将不正确。如果只应在目录中编号,则只需允许编号的目录设置计数器secnumdepth
,因为\chapter*
无论如何都不会受到阻碍。
在示例中,MWE 中的四个章节名称版本只是重复的字符,AAAA、EEE 等,而不是人类的标题(很丑,但更容易检查 PDF 中每个章节名称的结尾):
\documentclass{octavo}
\usepackage{lipsum}
\setcounter{secnumdepth}{1}
\renewcommand{\thechapter}{\Roman{chapter}}
\begin{document}
\tableofcontents
\mainmatter
\chapter*{AAAA\markboth{EEEE}{OOOO}} % Title ≠ even header ≠ odd header ≠ ToC
\stepcounter{chapter}
\addcontentsline{toc}{chapter}{\numberline{\thechapter} SSSSS}
\lipsum[1-10]
\chapter*{ZZZZ\markboth{XXXX}{CCCC}} % Title ≠ even header ≠ odd header ≠ ToC
\stepcounter{chapter}
\addcontentsline{toc}{chapter}{\numberline{\thechapter} UUUUU}
\lipsum[1-10]
\end{document}