\chapterpagestyle 与 scrpage2 不适用于 toc、lof 和 lot

\chapterpagestyle 与 scrpage2 不适用于 toc、lof 和 lot

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}

文档通过这种方式进行编译,但是存在一些错误,因为scrpage2fancyhdr都定义了一个名为的命令\chead

我怎样才能使它\chapterpagestyle与 TOC、LOF 和 LOT 一起工作scrpage2

据我所知,上面的代码(使用fancyhdr)只是重新定义了默认的纯页面样式。
如果可以使用scrpage2,那么这对我来说就完全可以了。

编辑:
更改scrpage2scrlayer-scrpage
重新定义页面样式为\deftripstyle{plain}{}{}{}{}{}{\footnotesize\pagemark},就像上面的代码一样,不起作用。

答案1

如果所有页面(包括章节页面)上的页码位置相同,则无需定义新的页面样式。正如fancyhdr您可以重新定义页面样式(即章节页面上的默认页面样式)一样。因此,您可以将可选参数或 与的带星号版本一起plain使用。\ofootscrlayer-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}

结果:

enter image description here


或者使用过时的包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}

现在,这真是几个小时的盲人摸象。
真是浪费时间。通常我会标记代码中所有潜在的不兼容性。

相关内容