使用命令创建标签时,创建唯一的标签名称

使用命令创建标签时,创建唯一的标签名称

我正在为学生做指导性笔记。在每个部分的笔记页眉中,我想显示“第 1 页,共 3 页”、“第 2 页,共 3 页”等。我可以通过在该部分的末尾放置一个标签,然后在页眉中使用该标签的 pageref 来获取最终页码。这正好生成了我想要的内容。当然,然后我添加了第二个部分,这就是问题所在。我想使用命令来设置每个部分的开始和结束(清除页面、设置编号等)。由于名为 pageCnt 的标签始终名为 pageCnt,因此每个部分都会显示最后一部分的总页数。

我尝试了多种方法将部分标记连接到标签,但都没有成功。这可能是因为它是一个数字。有人有什么想法吗?

以下是最小可重现的示例:

\documentclass[12pt]{article}

\usepackage{lipsum}  

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{page \thepage \ of \pageref{pageCnt}}
\usepackage{emptypage}

\newcommand{\opensection}[1]{
    \pagenumbering{arabic}
    \section{#1}
}
\newcommand{\closesection}{
    \label{pageCnt}
    \cleardoublepage
}

\begin{document}

\opensection{First Section}
\lipsum[1-2]
\closesection

\opensection{Second Section}
\lipsum[3-12]
\closesection

\end{document}

答案1

确实,您不能多次使用相同的标签,但您可以使用计数器对标签进行索引。如下所示:

\documentclass[12pt]{article}

\usepackage{lipsum}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{page \thepage \ of \pageref{pageCnt.\arabic{sectionCnt}}}
\usepackage{emptypage}

\newcommand{\opensection}[1]{%
  \stepcounter{sectionCnt}%
  \pagenumbering{arabic}%
  \section{#1}%
}
\newcounter{sectionCnt}
\newcommand{\closesection}{%
  \label{pageCnt.\arabic{sectionCnt}}%
  \cleardoublepage%
}

\begin{document}

\opensection{First Section}
\lipsum[1-2]
\closesection

\opensection{Second Section}
\lipsum[3-12]
\closesection

\end{document}

顺便说一句,第一个问题问得很好。欢迎!

相关内容