如何将章节和部分名称都放在页面标题中?

如何将章节和部分名称都放在页面标题中?

我正在使用文档类处理单面 LaTeX 文档scrreprt,并用它scrpage2来自定义页面的页眉和页脚。目前,相应的章节名称显示在每页的右上角,使用序言中的以下代码:

\usepackage[autooneside]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark{chapter}
\rohead{\headmark}

现在我想改变这一点,这样当一个章节中的一个部分开始时,它\headmark应该改变为格式

章节名称 - 部分名称

在包含此节文本的所有页面上,直到此节结束。如果我更改\automark\automark{section},则只显示节名称,而不再显示章节名称。我怎样才能同时显示两者?是否也可以将章节名称放在每页的左上角,将节名称放在右上角?

答案1

这正是您所需要的。唯一需要做的是正确定义\sectionmark

\documentclass{scrreprt}

\usepackage[autooneside]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark{chapter}
\renewcommand\sectionmark[1]{\markright{\MakeMarkcase {\thesection\hskip .5em\relax#1}}}
\rohead{\ifnum\expandafter\pdfstrcmp\botmark=0 \rightmark\else\leftmark{} --- \rightmark\fi}

\usepackage{lipsum}

\begin{document}

\chapter{Cht}
\section{Sct}
\lipsum
\section{SScctt}
\lipsum

\end{document}

这实际上表明Section -- Chapter,为了向他们展示相反的方向,请\leftmark{} --- \rightmark改为\rightmark{} --- \leftmark

答案2

一种可能的解决方案是使用scrreprtclass 选项twoside=semi(边距类似于oneside,但不同于\leftmark\rightmark)。

\documentclass[twoside=semi]{scrreprt}

\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\lehead{\leftmark}
\rehead{\rightmark}
\lohead{\leftmark}
\rohead{\rightmark}

\usepackage{lipsum}

\begin{document}

\chapter{foo}

\section{foobar}

\lipsum[1-12]

\chapter{bla}

\end{document}

答案3

请注意,scrpage2 已弃用。因此建议使用scrlayer-scrpage

\documentclass{scrreprt}

\usepackage[automark,autooneside=false]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\leftmark\ifstr{\rightmark}{\leftmark}{}{ -- \rightmark}}

\usepackage{lipsum}
\begin{document}
\chapter{Cht}
\section{Sct}
\lipsum
\section{SScctt}
\lipsum
\chapter{Next}
\lipsum
\end{document}

如果您想使用过时的包scrpage2删除选项autooneside并使用\automark[section]{chapter}

\documentclass{scrreprt}

\usepackage{scrpage2}
\automark[section]{chapter}
\pagestyle{scrheadings}
\clearscrheadfoot
\ohead{\leftmark\ifstr{\rightmark}{\leftmark}{}{ -- \rightmark}}

\usepackage{lipsum}
\begin{document}
\chapter{Cht}
\section{Sct}
\lipsum
\section{SScctt}
\lipsum
\chapter{Next}
\lipsum
\end{document}

相关内容