当 \section 之前有长文本时,标题中的 \leftmark 为空

当 \section 之前有长文本时,标题中的 \leftmark 为空

我正在使用sr-vorlscrbook基于的类来为 Springer 排版书籍;该包可以在这里) 目前正在写我的论文。

Springer 要求在页眉处显示章节名称,所有页码为偶数的页面显示章节名称,奇数页码的页面显示章节名称。一般来说,这种方式开箱即用。

但是,我现在遇到的情况是,在\chapter{}和 第一个之间有很多文本\section{}。这导致\leftmark在某些页面(奇数页)上设置了空的运行头(即空的 )。请参见下文:

在此处输入图片描述

只有在第一次\section{}发生后我才能得到想要的结果:

在此处输入图片描述

这显然是预期的结果。但是,我希望章节名称出现在奇数页上,而不是什么都没有(即,在本例中为:“1 第一章”)。

我已经做了一些研究,但只找到了一些对我没有帮助的答案(例如,12-> 那里的答案可能给出了解决方案,但我不知道如何将它们应用于我的问题)。

问题:

当奇数页的页眉上没有可打印的章节名称时,如何获取该章节的名称?

(请注意:该问题同样会出现在普通的 中scrbook。)


以下是 MWE:

\documentclass[englisch, format=a5-monografie]{sr-vorl}

\usepackage{lipsum}

\usepackage[utf8]{inputenc}

\begin{document}

\mainmatter

\chapter{First Chapter}

\lipsum[4-20]

\section{First Section}

\end{document}

答案1

sr-vorl加载已弃用的包来scrpage2定义页面样式sr-standard

\defpagestyle{sr-standard}% Standard pagestyle
{%
(0pt,0pt)%
{\pagemark\hfill\headmark}%
{\headmark\hfill\pagemark}%
{}%
(\textwidth,0.5pt)%
}%
{%
(0pt,0pt)%
{}%
{}%
{}%
(0pt,0pt)%
}%

因此,存在不同的可能性来获得期望的结果。


您可以scrpage2用其后继者替换scrlayer-scrpage。此软件包知道 的星号版本\automark

\RequirePackage{scrlfile}
\ReplacePackage{scrpage2}{scrlayer-scrpage}
%
\documentclass[englisch, format=a5-monografie]{sr-vorl}
%
\automark[chapter]{chapter}
\automark*[section]{}

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\begin{document}
\mainmatter
\chapter{First Chapter}
\lipsum[4-20]
\section{First Section}
\end{document}

在此处输入图片描述

在此处输入图片描述


或者您可以重新定义 pagestyle sr-standard

\documentclass[englisch, format=a5-monografie]{sr-vorl}

\renewpagestyle{sr-standard}% Standard pagestyle
{%
(0pt,0pt)%
{\pagemark\hfill\headmark}%
{\ifstr{\headmark}{}{\leftmark}{\headmark}\hfill\pagemark}%<- changed
{}%
(\textwidth,0.5pt)%
}%
{%
(0pt,0pt)%
{}%
{}%
{}%
(0pt,0pt)%
}%

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\begin{document}
\mainmatter
\chapter{First Chapter}
\lipsum[4-20]
\section{First Section}
\end{document}

或者您可以手动重新定义\chaptermark

\documentclass[englisch, format=a5-monografie]{sr-vorl}

\makeatletter
\renewcommand*{\chaptermark}[1]{%
  \markboth
    {\MakeMarkcase{\ifnumbered{chapter}{%
        \if@mainmatter
          \chaptermarkformat
        \fi
      }{}#1}%
    }
    {\MakeMarkcase{\ifnumbered{chapter}{%
        \if@mainmatter
          \chaptermarkformat
        \fi
      }{}#1}%
    }%
}%
\makeatother

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\begin{document}
\mainmatter
\chapter{First Chapter}
\lipsum[4-20]
\section{First Section}
\end{document}

相关内容