在标题引用中使用 \thesubsection 是最后一次,而不是第一次

在标题引用中使用 \thesubsection 是最后一次,而不是第一次

我想\thesubsection在标题中添加第一的小节的实例,而不是最后一个,似乎是默认的。

以下 MWE 说明了一切:

\documentclass[a5paper]{article}

\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage[a5paper]{geometry}

\lhead{\thesubsection}

\pagestyle{fancy}

\begin{document}

\section{Section 1}
\subsection{Subsection 1}
\lipsum[1]
\section{Section 2}
\subsection{Subsection 1}
\lipsum[2]

\pagebreak

\subsection{Subsection 2}
\lipsum[3]
\subsection{Subsection 3}
\lipsum[4]

\section{Section 3}
\subsection{Subsection 1}
\lipsum[5]
\subsection{Subsection 2}
\lipsum[6]
\subsection{Subsection 3}
\lipsum[7]

\end{document}

结果:

Page      What I want    What I get
1         1.1            2.1
2         2.2            3.1
3         3.2            3.3

答案1

您永远不应该直接在页头中引用计数器。您获得的不是页面上的最后一个值,而是文档中 TeX 决定尝试分页时的值。这可能是最终选择的分页符之前的任意数量的页面。

系统\mark旨在可靠地获取给定页面的正确值。遗憾的是,LaTex 在其章节标题中对标记的标准使用主要设计用于双面使用,章节值位于跨页的左侧,子章节位于右侧。

\lhead{\rightmark}

几乎可以满足您的要求,但第一页的标题左侧部分为空白,因为\firstmark内部使用的是从上一页继承的值。您可以按如下方式初始化内容

\lhead{\rightmark}\markright{1.1 Subsection 1}

这样就可以得到你想要的结果。

您可以使用\topmark(LaTeX 通常不使用)如果您想要选择页面的第一部分,即使页面顶部的文本位于上一节,这通常可能更好。但是,完成整个工作需要进行更广泛的更改,因为标记会\section掩盖\subsection页面顶部的标记,因为目的是只使用一个,否则它们会影响双面模式下跨页相对两侧的标题。

相关内容