我正在写一本书,书的标题是空的,所有信息都是脚注。我正在使用这个scrbook
类来完成这项工作。
因此,在页脚的外侧我写了页码,在左页(背面)写了书名,在右页(正面)写了所在章节的名称。
我认为我可以使用该scrlayer-scrpage
包来做到这一点,但我对几个问题感到困惑。
我知道我可以用来\ofoot{\pagemark}
将页码放置在适当位置,但如果我使用,\cfoot
我就无法区分奇数页的内容和偶数页。
我在这里查看了几个类似的问题,例如,我对 情况下选项的使用感到困惑。我想我理解和\ofoot
的用法,但不明白。我也不清楚什么时候使用 比较方便。\chaptermark
\sectionmark
\headmark
\clearpairofpagestyles
我的 MWE 可能是这样的:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\automark{section}
\clearpairofpagestyles
\ofoot{\pagemark}
\lcfoot{Book Title}
\rcfoot{\sectionmark}
\usepackage{lipsum}
\title{Book Title}
\begin{document}
\maketitle
\chapter{First chapter}
\lipsum[1-5]
\section{A section}
\lipsum[1-20]
\section{Another section}
\lipsum[1-20]
\section{Another}
\lipsum[11-15]
\end{document}
答案1
\clearpairofpagestyles
scrheadings
删除 pagestyle和的预定义内容plain.scrheadings
。还有命令\clearmainofpairofpagestyles
和分别\clearplainofpairofpagestyles
用于清除scrheadings
和plain.scrheadings
。
请注意,包scrlayer-scrplain
pagestlyeheadings
是 的别名scrheadings
,也是plain
的别名plain.scrheadings
。
双面文档:奇数页\headmark
使用,偶数页使用。选项与 相同。然后新章节设置左侧标记并清除右侧标记。新章节设置右侧标记。\rightmark
\leftmark
automark
\automark[section]{chapter}
单面文档:只有正面(奇数)页。\headmark
使用\rightmark
。选项automark
与 相同\automark{chapter}
。然后新章节设置左侧和右侧标记。 的可选参数\automark
将被忽略,直到您设置autooneside=false
。
要将内容设置在页脚的中心,您可以使用:
\cfoot{<content for scrheadings>}
\cfoot[<content for plain>]{<content for scrheadings>}
\cfoot*{<content for both plain and scrheadings>}
\cefoot{<content for scrheadings on even pages>}
\cofoot{<content for scrheadings on odd pages>}
\cefoot[...]{...}
和\cofoot[...]{...}
\cefoot*{...}
和\cofoot*{...}
请注意,章节页面plain
默认使用这些页面样式。可以通过重新定义来更改\chapterpagestyle
。
关于你的例子:
如果书名应该位于所有奇数页(包括章节页)页脚的中心,则使用
\cofoot*{Book Title}
如果章节应该位于偶数页页脚的中心,请使用
\cefoot{\headmark}% or \leftmark
如果该部分应该位于偶数页页脚的中心,请使用
\cefoot{\rightmark}
页脚中包含章节的示例:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\ofoot*{\pagemark}
\cofoot*{Book Title}
\cefoot{\headmark}% or \leftmark
\usepackage{lipsum}
\title{Book Title}
\author{Book Author}
\begin{document}
\maketitle
\chapter{First chapter}
\lipsum[1-5]
\section{A section}
\lipsum[1-20]
\section{Another section}
\lipsum[1-20]
\section{Another}
\lipsum[11-15]
\end{document}
\chaptermark
和\sectionmark
由\chapter
和\section
调用,根据选项automark
或命令设置左和右标记\automark
。可以使用manualmark
或禁用此功能\manualmark
。
如果使用\automark{section}
新的部分,则设置左标记和右标记,而章节则不设置任何标记。
因此,以下示例\headmark
将打印页脚中的部分:
\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\automark{section}
\clearpairofpagestyles
\ofoot*{\pagemark}
\cofoot*{Book Title}
\cefoot{\headmark}% or \leftmark
\usepackage{lipsum}
\title{Book Title}
\author{Book Author}
\begin{document}
\maketitle
\chapter{First chapter}
\lipsum[1-5]
\section{A section}
\lipsum[1-20]
\section{Another section}
\lipsum[1-20]
\section{Another}
\lipsum[11-15]
\end{document}
答案2
为何以及何时\clearpairofpagestyles
?
scrlayer-scrpage
定义两个新的页面样式scrheadings
和plain.scrheadings
。它们一起构成了一对页面样式,类似于大多数类中的headings
和。和都预定义了页码()。还预定义了运行头元素()。这些元素的放置位置取决于和是否或布局。的默认值取决于是否使用 KOMA-Script 类。有关页面样式的和默认值的更多信息,请参阅手册。plain
scrheadings
plain.scrheadings
\pagemark
scrheadings
\headmark
pagestyleset
oneside
twoside
pagestyleset
pagestyleset
如果你只想移动,例如,页码从,例如,外脚双面scrbook
文档的元素,中脚元素,你可以使用
\ofoot*{}% or \ofoot[]{}
\cfoot*{\pagemark}% or \cfoot[\pagemark]{\pagemark}
第一行定义外脚元素既不包含scrheadings
,也不包含plain.scrheadings
。第二行定义了中脚scrheadings
和的元素plain.scrheadings
均为\pagemark
页码元素。如果省略第一行,您仍会在中脚元素,但页码在外脚元素仍会存在。
如果要scrheadings
从头开始定义,可以先清理它,使用 将所有元素定义为空\clearmainofpairofpagestyles
。这定义为\ihead{}\chead{}\ohead{}\ifoot{}\cfoot{}\ofoot{}
。
如果要plain.scrheadings
从头开始定义,可以使用 将所有元素定义为空来清理它\clearplainofpairofpagestyles
。此命令不能用等替换\ihead
。因为不能在没有主页面样式的情况下\ihead
用于重新定义页面样式。plain
如果您想定义plain.scrheadings
并scrheadings
从头开始使用\clearpairofpagestyles
。它与 相同\ihead[]{}\chead[]{}\ohead[]{}\ifoot[]{}\cfoot[]{}\ofoot[]{}
。
名称\clearmainofpairofpagestyles
、\clearplainofpairofpagestyles
、\clearpairofpagestyles
在某种程度上是通用的,而不是特定于scrheadings
和 的plain.scrheadings
,因为scrlayer-scrpage
可用于定义其他对。在这种情况下,命令与当前对相关,而不是与对scrheadings
+相关plain.scrheadings
。scrheadings
+plain.scrheadings
只是默认对。
什么是\ifoot
,\cfoot
,\ofoot
?
\ifoot[foo]{bar}
是\refoot[foo]{bar}\lofoot[foo]{bar}
. 的快捷方式\ifoot
脚内侧元素。\refoot
手段右脚元素甚至页数。\lofoot
意思是左脚元素奇怪的页。只有双面文档才区分偶数页和奇数页。单面文档只有奇数页。
\cfoot[foo]{bar}
是 的快捷方式\cefoot[foo]{bar}\cofoot[foo]{bar}
。它定义了偶数页和奇数页的中心页脚元素。因此,如果要区分奇数页和偶数页的中心页脚元素,可以使用\cefoot
和\cofoot
。
\ofoot[foo]{bar}
是 的快捷方式\lefoot[foo]{bar}\rofoot[foo]{bar}
。
KOMA-Script 手册中有一张图片可以直观地了解这些命令的含义:
什么是\headmark
?
\headmark
是\rightmark
在奇数页还是\leftmark
在偶数页。没有什么神奇之处。它使放置页眉(例如,在外边距)变得更容易,因为您只需使用\ohead{\headmark}
而不是即可\lehead{\leftmark}\rohead{\rightmark}
。
LaTeX 通过一对标记来处理运行头。设置它们的低级命令是\markboth{left mark}{right mark}
和\markright{right mark}
。\leftmark
和\rightmark
用于获取这些标记。通常书籍和报告类使用\chaptermark{…}
和\sectionmark{…}
为headings
标题命令\chapter
和内的页面样式自动设置这些标记\section
。scrlayer-scrpage
扩展它,例如通过命令\markleft
和通过\automark
。\automark
用于重新定义\partmark
、等\chaptermark
,以将自动运行头添加到给定级别。有关和其他命令的\sectionmark
更多信息,请参阅 KOMA-Script 手册。\automark
目前没有类似的东西\titlemark{…}
,也没有title
元素\automark
。因此,标题不能用作自动运行头元素。您必须将其设置为静态或手动元素。在您的示例中,您尝试使用静态元素,我也将在最后一节中这样做。
最终的
\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\automark[chapter]{chapter}
\clearpairofpagestyles
\ofoot*{\pagemark}% pagemark at outer foot element of plain.scrheadings and scrheadings
\cefoot{Book Title}% book title at centre foot element of scrheadings on even pages
\cofoot{\headmark}% head mark at centre foot element of scrheadings on odd pages
\usepackage{lipsum}
\title{Book Title}
\begin{document}
\maketitle
\chapter{First chapter}
\lipsum[1-5]
\section{A section}
\lipsum[1-20]
\section{Another section}
\lipsum[1-20]
\section{Another}
\lipsum[11-15]
\end{document}
会产生:
但在章节的第一页plain.scrheadings
使用了页面样式,因此中脚元素将为空。如果您也想将章节添加到其中,则必须替换
\cofoot{\headmark}
经过
\cofoot*{\headmark}
或相等
\cofoot[\headmark]{\headmark}
这也会将标记添加到纯色页面样式中plain.scrheadings
。如果您不想在所有纯色页面上添加标记,而是在章节页面上添加标记,则可以使用
\renewcommand*{\chapterpagestyle}{headings}
表示scrreprt
必须使用headings
页面样式而不是plain
章节页面的页面样式。注意:如果使用scrlayer-scrpage
页面headings
样式,则页面样式是当前页面样式对的主页面样式。默认情况下,这是scrheadings
。
您也\headmark
可以使用上面示例中的\leftmark
或,因为我已经使用它们来制作章节标题。\rightmark
\automark[chapter]{chapter}