我正在使用基于 KOMA 脚本类和样式的以下文档结构
\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof]{scrbook}
\usepackage[nouppercase,headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark[section]{chapter}
\chead{\headmark}
(还有一些我没有在这里列出的内容)。这通常很有效。但我有一个像这样的未编号章节
\addcontentsline{toc}{chapter}{Bla bla}
\chapter*{Bla bla}
并且我希望它的标题(无编号)出现在右页的标题中(左页为空白,因为本章中没有编号部分)。正如所料,这不能立即使用,它目前列出了上一章的名称(图片列表)。
我该如何让它工作?手动发布\markboth{}{Bla bla}
是正确的方法吗?从 KOMA 脚本文档来看,我不太确定这会如何影响自动标记功能。
答案1
使用 KOMA-Script 类scrbook
,scrreprt
您可以使用\chaptermark{...}
、\sectionmark
、\chaptermarkformat{...}
、\sectionmarkformat{...}
来设置和格式化运行标题。一个小例子:
\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof]{scrbook}
\usepackage[nouppercase,headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark[section]{chapter}
\chead{\headmark}
\usepackage{lipsum}
\begin{document}
\chapter{A numbered chapter}
\section{Test section}
\lipsum[1-5]
\chapter*{A chapter without number}
\renewcommand*{\chaptermarkformat}{}
\renewcommand*{\sectionmarkformat}{}
\chaptermark{}
\sectionmark{A chapter without number}
\lipsum[1-30]
\end{document}
答案2
KOMA 脚本类也有命令\addchap
代替\chapter*
。使用\addchap
应该可以纠正错误命名标题的问题。此命令还会自动创建 ToC 条目,因此\addcontentsline{toc}{chapter}{...}
不再需要。
查看使用 KOMA 脚本类本机命令从上面修改的 MWE。
\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof]{scrbook}
\usepackage[nouppercase,headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark[section]{chapter}
\chead{\headmark}
\usepackage{lipsum}
\begin{document}
\chapter{A numbered chapter}
\section{Test section}
\lipsum[1-5]
\addchap{A chapter without number}
\addsec{A chapter without number}
\lipsum[1-30]
\end{document}