scrpage2:使用 \addsec 的未编号标题会得到错误的自动标记

scrpage2:使用 \addsec 的未编号标题会得到错误的自动标记

这是我的代码:

\documentclass{scrbook}

\usepackage[english]{babel}
\usepackage{blindtext}

\usepackage[markuppercase]{scrpage2}
\pagestyle{scrheadings}
\automark[chapter]{part}

\begin{document}

% This works as expected
\part{Ancient writing and its influence}
\chapter{The origin of writing}
\section{Introduction}

\blindtext[15]

% But this doesn't
\addpart{Modern writing and its influence}
\addchap{The end of writing}
\addsec{Conclusion}

\blindtext[15]

\end{document}

问题是未编号文档中的标头有一半一直像这样运行,[section]{chapter}而我希望它们像这样运行[chapter]{part}。我做错了什么?

答案1

正常\part情况下,发出\partmark命令来存储标记。\partmark存储更多或更少\thepart parttitle,这意味着它还存储数字。因此\partmark不能与一起使用\addpart。其他\add命令也一样。因此,它们都使用了一些\mark不适合您的示例的硬编码命令。

您必须手动设置标记:

\addchap{The end of writing}
\markboth{\MakeUppercase{Modern writing and its influence}}{\MakeUppercase{The end of writing}}
\addsec{Conclusion}
\markboth{\MakeUppercase{Modern writing and its influence}}{\MakeUppercase{The end of writing}}

我也认为向 KOMA 的作者展示你的例子是个好主意。如果能把问题分开就更好了如果分段命令应该根据标记内容的问题来设置左/右/两侧标记。

答案2

我回答我自己的问题。我在 Koma-Script 文档中找到了以下解决方案(有点昏暗)。

\documentclass[a5paper,DIV=11, headings=small,numbers=enddot,pagesize,11pt]{scrbook}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage[automark,markuppercase]{scrpage2}
\clearscrheadfoot
\pagestyle{scrheadings}
\automark[chapter]{part}
\cfoot[\pagemark]{\pagemark}
\chead{\headmark}
\renewcommand*{\partpagestyle}{empty}
\setkomafont{pageheadfoot}{\small\rmfamily\upshape}
\setkomafont{pagenumber}{\large\rmfamily\upshape}
\renewcommand*{\chapterformat}{}
\renewcommand*{\chaptermarkformat}{}
\renewcommand*{\chapterformat}{}
\renewcommand*{\chaptermarkformat}{}
\renewcommand*{\partformat}{}
\renewcommand*{\partmarkformat}{}

\begin{document}
\part{Ancient writing and its influence}
\chapter{The origin of writing}
\section{Introduction}
\blindtext[15]
\end{document}

答案3

也许您必须声明标题和页脚,然后选择页面样式。从您的示例来看:

\usepackage[automark,markuppercase]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadings
\automark[chapter]{part}
\cfoot[\pagemark]{\pagemark}
\chead{\headmark}

编辑:抱歉,感谢 Seamus 发现了这个明显的错误。而且这显然不是我的代码。

相关内容