哪些论点可以fancyhdr
重现确切地使用文档类时的标准页面布局book
?
标准布局fancyhdr
引入了上下栏,将章节和节的名称大写,在标题中的每个章节号前面添加“章节”,并将章节计数器更改为“III.4”而不是“4”。如果您只想将页码移动到底部中央,那么所有这些都会成为噪音。
答案1
大写和数字格式已经与使用headings
类的页面样式相同book
:
或fancy
的页面样式fancyhdr
。然而,标题本身是不同的,因为fancyhdr
的默认使用\leftmark
和\rightmark
在每个页面上,这非常不常见。您可以使用 来更改它,例如\fancyhead
。如果您还希望页码位于外边距,您也可以使用\fancyfoot
来更改页脚。如果您还想删除标题下方的规则,您可以设置\headrulewidth
为 0pt。所以你会得到类似的东西:
\documentclass{book}
\usepackage{fancyhdr}
\fancyhead[RE]{\slshape\leftmark}% right even head with chapter mark
\fancyhead[LO]{\slshape\rightmark}% left odd head with section mark
\fancyhead[LE,RO]{}% remove left even and right odd head
\fancyfoot[LE,RO]{\thepage}% set left even and right odd foot
\fancyfoot[C]{}% remove centre foot
\renewcommand{\headrulewidth}{0pt}% Note: It's a command not a length!
\pagestyle{fancy}
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
另一种方法是使用scrlayer-scrpage
而不是fancyhdr
。此包不会更改 的默认值book
。因此,要将页码移到页脚中,只需将其从页眉中移除并放入页脚中:
\documentclass{book}
\usepackage[automark]{scrlayer-scrpage}
\ohead{}% remove page number from head
\ofoot*{\pagemark}% put page number into the foot (also at plain pages)
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
结果和上面一样。
如果您不想要大写标题,您可以使用:
\documentclass{book}
\usepackage[markcase=noupper,automark]{scrlayer-scrpage}
\ohead{}% remove page number from head
\ofoot*{\pagemark}% put page number into the foot (also at plain pages)
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
如果您确实希望页码居中:
\documentclass{book}
\usepackage[markcase=noupper,automark]{scrlayer-scrpage}
\ohead{}% remove page number from head
\cfoot*{\pagemark}% add page number at the centre
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
尽管如此,对于双面文档,我更喜欢将标题和页码放在外边距:
\documentclass{book}
\usepackage[pagestyleset=KOMA-Script,markcase=noupper,automark]{scrlayer-scrpage}
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
如果你想Chapter
从运行头中删除,你可以使用:
\documentclass{book}
\usepackage[pagestyleset=KOMA-Script,markcase=noupper,automark]{scrlayer-scrpage}
\renewcommand*{\chaptermarkformat}{\thechapter.\enskip}
\usepackage{mwe}
\begin{document}
\blinddocument
\end{document}
答案2
如果您确实想保留课程的标准标题book
,则不需要fancyhdr
:
\documentclass[a4paper]{book}
\usepackage{blindtext}
\makeatletter
\renewcommand\@evenhead{\hfil\slshape\leftmark}
\renewcommand\@oddhead{\slshape\rightmark\hfil}
\renewcommand\@evenfoot{\hfil\thepage\hfil}
\renewcommand\@oddfoot{\hfil\thepage\hfil}
\makeatother
\begin{document}
\blinddocument
\end{document}
和fancyhdr
:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % clear all fields
\fancyhead[RE]{\slshape\leftmark}
\fancyhead[LO]{\slshape\rightmark}
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0pt}
% restore the standard \chaptermark and \sectionmark
\makeatletter
\renewcommand\chaptermark[1]{%
\markboth{%
\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\@chapapp\ \thechapter. \ %
\fi
\fi
#1%
}%
}{}%
}
\renewcommand\sectionmark[1]{%
\markright{%
\MakeUppercase{%
\ifnum \c@secnumdepth >\z@
\thesection. \ %
\fi
#1%
}%
}%
}
\makeatother
\headheight
如果您使用11pt
或类选项,您可能还需要设置12pt
:查看日志文件中fancyhdr
有关它发出的警告。
我毫不怀疑该选择哪种方法。