在以下单面文档中,如何获取KOMA-Script 类section
中左标题和subsection
右标题的标题?scrartcl
scrlayer-scrpage
\documentclass{scrartcl}
\usepackage[automark]{scrlayer-scrpage}
\automark[subsection]{section}
\ohead{\leftmark}
\ihead{\rightmark}
\chead{}
\cfoot{\pagemark}
\usepackage{blindtext}
\begin{document}
\section{Section}
\subsection{Subsection}
\blindtext[3]
\subsection{Subsection}
\blindtext[3]
\section{Section}
\subsection{Subsection}
\blindtext[3]
\subsection{Subsection}
\blindtext[3]
\end{document}
答案1
例如:
\documentclass{scrartcl}
\usepackage[autooneside=false]{scrlayer-scrpage}
\automark[subsection]{section}
\ohead{\rightbotmark}
\ihead{\leftmark}
\chead{}
\cfoot{\pagemark}% Note: I would recommend to use `\cfoot*` instead of `\cfoot` here.
\usepackage{blindtext}
\begin{document}
\section{Section}
\subsection{Subsection}
\blindtext[3]
\subsection{Subsection}
\blindtext[3]
\section{Section}
\subsection{Subsection}
\blindtext[3]
\subsection{Subsection}
\blindtext[3]
\end{document}
autooneside=false
需要 选项,因为(参见scrguiden-en
,第 17.6 节):
在单面打印中,通常只需要较高级别的章节提供连续标题。默认选项
autooneside
与此行为相对应。
\rightbotmark
被使用,因为\rightmark
是\rightfirstmark
(参见scrguide-en
,第 17.6 节)并且\sectionmark
使用\markboth
。因此,同一页上的\section
a 之前的每个\subsection
也将支配右标记。另一个解决方案可能是使用如下构造:
\ohead{\Ifstr{\leftmark}{\rightmark}{\rightbotmark}{\rightmark}}
或者重新定义\sectionmark
,例如:
\renewcommand*{\sectionmark}[1]{\markleft{\sectionmarkformat #1}}
有时甚至可以用来代替\automark[section]{subsection}
,\automark[subsection]{section}
但通常情况下则不然。
注意:不同建议的结果在细节上有所不同,例如\section
和(上一个或下一个)\subsection
是否在同一页面或不在同一页面。