我正在尝试减少文档中加载的包数量,并且我在 KOMA 文档(以及其他地方)中看到它可以比 更好地定义页面样式fancyhdr
。但每次我尝试设置时scrpage2
都会得到奇怪的结果,例如错误的部分标题或元素定位。我该如何将fancyhdr
布局重写为scrpage2
?
\usepackage{fancyhdr}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO]{\textit{\nouppercase{\scshape \mytitle{}}}}
\fancyhead[RE]{\textit{\nouppercase{\scshape \thechapter. \leftmark{}}}}
\fancyfoot[CE,CO]{\thepage{}}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[CE,CO]{\thepage{}}
}
\fancypagestyle{preface}{
\fancyhf{}
\fancyhead[RE]{\textit{\nouppercase{\scshape \leftmark{}}}}
\fancyhead[LO]{\textit{\nouppercase{\scshape \mytitle{}}}}
\fancyfoot[CE,CO]{\thepage{}}
}
该preface
样式用于第1章之前的页面;其他页面只使用默认fancy
样式。
答案1
这是一个scrpage2
至少应该接近您想要的解决方案。一些说明:
- 没有头部和脚部规则是 的默认设置
scrpage2
。 - 禁用标题栏中的大写字母是通过包选项完成的
nouppercase
。 - 可选参数
\lohead
、\rehead
和控制页面样式(替换)\cfoot
的设置。scrplain
plain
- 标题字体由宏控制
\headfont
。
我没有模仿您单独的preface
页面样式(与您的样式只有一点点不同fancy
)。相反,我重新定义了它\chaptermarkformat
(它能够区分编号和未编号的章节)。
\documentclass{scrbook}
\usepackage[automark,nouppercase]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\lohead[]{(mytitle)}% Placeholder for \mytitle
\rehead[]{\leftmark}
\cfoot[\pagemark]{\pagemark}
\renewcommand*{\headfont}{\itshape\scshape}% Will equal \scshape for most fonts
\renewcommand*{\chaptermarkformat}{\chapapp~\thechapter\autodot\enskip}
\usepackage{blindtext}
\begin{document}
\setcounter{secnumdepth}{-1}% Unnumbered chapters
\blinddocument
\setcounter{secnumdepth}{2}% Numbered chapters, sections, and subsections
\blinddocument
\end{document}
(这盲文包仅用于向示例添加一些虚拟文本。)