用 scrpage2 替换 fancyhdr

用 scrpage2 替换 fancyhdr

我正在尝试减少文档中加载的包数量,并且我在 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的设置。scrplainplain
  • 标题字体由宏控制\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}

(这盲文包仅用于向示例添加一些虚拟文本。)

相关内容