我是否错过了指定文档类scrbook
将页码放在书籍每章首页的何处的说明?
在一本包含多个章节、涉及多种复杂格式的书中,我使用scrbook
,因为它支持\multiplefootmarker
。我还使用fancyhdr
,以便控制标题内容。
当scrbook
和fancyhdr
共存时,我遇到无法让页码在每章第一页居中显示的问题。fancyhdr
将页码按需要在章节第一页后居中显示。但似乎scrbook
默认将页码放在每章第一页的右下角,这似乎覆盖了fancyhdr
的\fancyfoot
命令。下面是 MWE(\multiplefootmarker
不需要实际使用 来说明问题)。
\documentclass[12pt]{scrbook} % needed for use of \multiplefootmarker (not shown)
% Fancy *headers* are only needed on pages after first of chapter.
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[RO]{Right header only needed on pages after chapter's first.}
\fancyhead[LE]{Left header only needed on pages after chapter's first.}
\fancyhead[RE,LO]{}
% But page number should be centered at bottom of every page.
\fancyfoot[C]{\thepage}
% For MWE content
\usepackage{lipsum}
\title{Book Title}
\begin{document}
\maketitle
\chapter{Chapter Title}
\markboth{Right Header Text}{Left Header Text}
\lipsum[1-12]
\chapter{Another Chapter Title}
\markboth{Right Header Text}{Left Header Text}
\lipsum[1-12]
\end{document}
编辑:根据@Ulrike_Fisher的评论,我添加了一个命令
\newcommand\headrulecontrol{
\fancypagestyle{plain}{
\renewcommand{\headrulewidth}{0pt}\fancyhf{}\cfoot{\thepage}}
\renewcommand{\headrulewidth}{1pt}
}
然后对每一章进行修改,例如:
\chapter{Chapter Title}
\markboth{Right Header Text}{Left Header Text}
\headrulecontrol
\lipsum[1-12]
这很有效——页码居中,但章节第一页没有页眉规则。
答案1
正如@Ulrike 提到的,你必须plain
在序言中重新定义样式:
\fancypagestyle{plain}{
\fancyhf{}% remove all entries in header and footer
\fancyfoot[C]{\thepage}% centred page numbers in footer
\renewcommand{\headrulewidth}{0pt}% no headsepline on plain pages
}
设置\headrulewidth
为0pt
页面样式plain
仅影响页面上的标题规则plain
。
例子:
\documentclass[12pt]{scrbook} % needed for use of \multiplefootmarker (not shown)
% Fancy *headers* are only needed on pages after first of chapter.
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO]{\rightmark}
\fancyhead[LE]{\leftmark}
% But page number should be centered at bottom of every page.
\fancyfoot[C]{\thepage}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0pt}
}
\usepackage{lipsum}% For MWE content
\title{Book Title}
\begin{document}
\maketitle
\chapter{Chapter Title}
\markboth{Left Header Text}{Right Header Text}
\lipsum[1-12]
\chapter{Another Chapter Title}
\markboth{Left Header Text}{Right Header Text}
\lipsum[1-12]
\end{document}
请注意,我已更改页眉条目。现在在左页(偶数页码)\leftmark
使用,在右页(奇数页码)使用\rightmark
。因此,您的\markboth
命令可以更改页眉条目。但该\chapter
命令也会设置标记。
也许你想使用包scrlayer-scrpage
它是 KOMA-Script 包的一部分:
\documentclass[12pt]{scrbook} % needed for use of \multiplefootmarker (not shown)
\usepackage[
headsepline,
manualmark% because of your manual usage of \markboth
]{scrlayer-scrpage}
\clearpairofpagestyles
%\rohead{Right header only needed on pages after chapter's first.}
%\lehead{Left header only needed on pages after chapter's first.}
\ohead{\headmark}
\cfoot*{\pagemark}
\addtokomafont{pageheadfoot}{\normalfont}
\usepackage{lipsum} %For MWE content
\title{Book Title}
\begin{document}
\maketitle
\chapter{Chapter Title}
\markboth{Left Header Text}{Right Header Text}
\lipsum[1-12]
\chapter{Another Chapter Title}
\markboth{Left Header Text}{Right Header Text}
\lipsum[1-12]
\end{document}
但您真的想手动设置标记吗?如果\chapter
要\section
自动设置标记,请将选项更改manualmark
为automark
并删除您的\markboth
命令。