如果没有可用的子部分,标题应该显示部分

如果没有可用的子部分,标题应该显示部分

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 页)。

编辑:我尝试采用以下解决方案这个问题(用于scrreprtscrartcl,但我仍然得到空白标题。我试过:

\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

相关内容