scrartcl
我正在编写一个使用和的文档twoside
,并希望使用 创建一个页眉scrpage2
。正如预期的那样,该包在偶数页上打印该部分,在奇数页上打印子部分。到目前为止一切顺利。但是,当奇数页上没有可用的子部分时(因为该部分没有子部分或它在文档中出现得较晚),则页眉将留空。
如果当前没有可用的子部分,是否可以显示该部分?
一个例子:
\documentclass[twoside]{scrartcl}
\usepackage[automark,headsepline,komastyle]{scrpage2}
\pagestyle{scrheadings}
\begin{document}
\section{Section}
\newpage
\null
\newpage
\subsection{Sub-section}
\newpage
\subsection{Sub-section}
\end{document}
第 2-4 页的页眉没有问题,符合预期,但由于第 1 页没有子部分,因此页眉留空。我想打印该部分(如第 2 页)。
编辑:我尝试采用以下解决方案这个问题(用于scrreprt
)scrartcl
,但我仍然得到空白标题。我试过:
\renewcommand*\sectionmark[1]{%
\markboth
{\MakeMarkcase{\sectionmarkformat#1}}
{\MakeMarkcase{\sectionmarkformat#1}}}
编辑 2:它与上面的方法兼容,renewcommand
但它必须出现在包含scrpage2
包之后。这有点道理,因为sectionmark
命令也可能在那里更新。
答案1
请注意,该包scrpage2
已弃用。后继者是scrlayer-scrpage
。然后您可以简单地使用带星号的版本\automark
来获得所需的结果:
\usepackage[headsepline]{scrlayer-scrpage}
\automark[section]{section}
\automark*[subsection]{}
例子:
\documentclass[twoside]{scrartcl}
\usepackage[headsepline]{scrlayer-scrpage}
\automark[section]{section}
\automark*[subsection]{}
\usepackage{blindtext}
\begin{document}
\section{Section}
\blindtext[5]
\subsection{Sub-section}
\blindtext[5]
\subsection{Sub-section}
\blindtext[5]
\end{document}
答案2
答案这个问题如果进行相应调整,也可以解决问题:
\usepackage[automark,headsepline,komastyle]{scrpage2}
\pagestyle{scrheadings}
\renewcommand*\sectionmark[1]{%
\markboth
{\MakeMarkcase{\sectionmarkformat#1}}
{\MakeMarkcase{\sectionmarkformat#1}}}
这里重要的是\renewcommand
出现在之后\usepackage{scrpage2}
(因为也sectionmark
可能更新)。scrpage2