scrbook
我使用KOMA 脚本包中的文档类编写了我的硕士论文,并\chapterpagestyle
使用该包定义了我自己的论文scrpage2
:
\deftripstyle{ChapterPage}{}{}{}{}{}{\footnotesize\pagemark}
\renewcommand*{\chapterpagestyle}{ChapterPage}
这对整个文档来说效果很好,除了 TOC、LOF 和 LOT 的章节页码。这看起来很丑陋,因为前后页码都有编号。
我想要做的就是将章节页码从底部中央移到右下角。
因此,我另外使用了此处的解决方案:如何在右侧页脚设置页码:
\usepackage{fancyhdr} % to change header and footers
\pagestyle{fancy} % Turn on the style
\fancyhf{} % Start with clearing everything in the header and footer
% Set the right side of the footer to be the page number
\fancyfoot[R]{\thepage}
% Redefine plain style, which is used for titlepage and chapter beginnings
% From https://tex.stackexchange.com/a/30230/828
\fancypagestyle{plain}{%
\renewcommand{\headrulewidth}{0pt}%
\fancyhf{}%
\fancyfoot[R]{\thepage}%
}
然后,当我的第一章开始时(在...,致谢,摘要,目录,LOF,LOT,...,第 1 章之后)我正在激活脚本样式
\pagestyle{scrheadings}
文档通过这种方式进行编译,但是存在一些错误,因为scrpage2
和fancyhdr
都定义了一个名为的命令\chead
。
我怎样才能使它\chapterpagestyle
与 TOC、LOF 和 LOT 一起工作scrpage2
?
据我所知,上面的代码(使用fancyhdr
)只是重新定义了默认的纯页面样式。
如果可以使用scrpage2
,那么这对我来说就完全可以了。
编辑:
更改scrpage2
为scrlayer-scrpage
。
重新定义页面样式为\deftripstyle{plain}{}{}{}{}{}{\footnotesize\pagemark}
,就像上面的代码一样,不起作用。
答案1
如果所有页面(包括章节页面)上的页码位置相同,则无需定义新的页面样式。正如fancyhdr
您可以重新定义页面样式(即章节页面上的默认页面样式)一样。因此,您可以将可选参数或 与的带星号版本一起plain
使用。\ofoot
scrlayer-scrpage
\ofoot
\documentclass{scrbook}
\usepackage{tocloft}% do not use this package with a KOMA-Script class!
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\headmark}
\ofoot*{\pagemark}
\addtokomafont{pagenumber}{\footnotesize}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\Blinddocument
\end{document}
结果:
或者使用过时的包scrpage2
:
\documentclass{scrbook}
\usepackage{tocloft}% do not use this package with a KOMA-Script class!
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
\addtokomafont{pagenumber}{\footnotesize}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\Blinddocument
\end{document}
答案2
在创建可编译的 MWE 时,发现这是包的错误tocloft
,出于某种原因,我在早期的工作中加载了该包。
将其注释掉后,一切顺利。之前
移动没有帮助。 \usepackage{tocloft}
\usepackage{scrlayer-scrpage}
现在,这真是几个小时的盲人摸象。
真是浪费时间。通常我会标记代码中所有潜在的不兼容性。