标题中的节和小节

标题中的节和小节

我有一个相当简单的问题,我无法解决,我只是试图获取标题中的节和子节(使用 fancyhdr)。但是,我似乎无法做到这一点。我想在左侧获取节或子节,在右侧获取页码。目前我正在使用以下代码:

\pagestyle{fancy}

\fancyhead[L]{\rightmark}
\fancyhead[R]{\thepage}
\fancyfoot[L]{}
\fancyfoot[C]{}
\fancyfoot[R]{}

但一开始,我有 3 个章节,没有子节,因此页眉只显示页码。我尝试了不同的右标记和左标记组合,但没有得到我想要的结果。所以,我试图将章节放在页眉中,除非有子节,否则我希望将子节放在页眉中。有什么想法可以做到这一点吗?

谢谢乔纳斯

答案1

您想要重新定义\subsectionmark(默认情况下不执行任何操作)来发出标记:

\documentclass[a4paper,oneside]{report}

\usepackage{fancyhdr}

\usepackage{kantlipsum} % for mock text

\pagestyle{fancy}
\fancyhf{} % clear all fields
\fancyhead[L]{\rightmark}
\fancyhead[R]{\thepage}

\renewcommand{\subsectionmark}[1]{%
  \markright{\MakeUppercase{\thesubsection.\ #1}}}%
}

\begin{document}

\chapter{Chapter title}

\kant[1]

\section{Section title}

\kant[2-7]

\subsection{Subsection title A}

\kant[8-10]

\subsection{Subsection title B}

\kant[11-14]

\subsection{Subsection title C}

\kant[15-18]

\end{document}

在此处输入图片描述

答案2

您是否熟悉 scrlayer-scrpage 软件包?该软件包允许您更详细地修改页面布局。阅读文档需要一段时间,而且很难找到您要查找的内容。但是,结合 scrlayer-scrpage 进行良好的 Google 搜索将为您提供进一步帮助。

我创建了一个小例子,它总是将“活动”元素放在页眉中,也就是最后提到的 {section、subsection 等}。我取消注释了一些行(%lehead 到 %cofoot)。如果您想在某个位置写一个特定的术语,例如您的姓名,您可以使用这些行。这适用于像书籍这样的文档,其中有两页彼此相邻。第一个字母可以是 l(左)c(中)或 r(右),然后是 e(偶数页)或 o(奇数页),然后是 head 表示页眉,foot 表示页面的页脚部分。

请检查您是否可以编译它以及它是否是您所寻找的。

祝好,巴斯蒂安

\documentclass[a4paper,11pt]{scrartcl}


\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage[automark, headsepline, footsepline]{scrlayer-scrpage}

\clearpairofpagestyles
\automark*{section}
\automark*{subsection}
\automark*{subsubsection}
\ihead{\headmark}
\ohead*{\pagemark}

%\lehead{}
%\rehead{}
%\lohead{}
%\rohead{}
%\cefoot{}
%\cofoot{}

\pagestyle{scrheadings} 

\begin{document}
    \section{Section A}
    \blindtext
    \subsection{Subsection a}
    \blindtext
    \blindtext
    \subsection{Subsection b}
    \blindtext
    \blindtext
    \newpage
    \subsection{Subsection c}
    \blindtext
    \section{Section B}
    \blindtext
    \subsection{Subsection c}
    \blindtext
    \blindtext
    \subsection{Subsection d}
    \blindtext
    \newpage
    \section{Section C}
    \blindtext
    \subsection{Subsection e}
    \blindtext
\end{document}

相关内容