有没有什么办法可以对页数进行双重编号?

有没有什么办法可以对页数进行双重编号?

我有一份有编号的文档。我想对文档的某些部分进行双重编号。例如,页码编号:

1
2
3(1)
4(2)
5(3)
6
7
8(1)

此部分的编号始终从 1 开始。对于通常的编号,我使用以下部分代码:

\usepackage{kantlipsum}
\usepackage{fancyhdr}
\fancyhf{} % clear all header and footers
\renewcommand{\headrulewidth}{0pt}

\fancyfoot[R]{\thepage}

\pagestyle{fancy}
\fancypagestyle{plain}{%
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyhf[lef,rof]{\thepage}%
}

有什么方法可以按照上述解释去做吗?

答案1

我将使用两个pagestyles 和一个新的计数器pageother来跟踪第二个页码。

\newcounter{pageother}

\fancypagestyle{normal}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \fancyfoot[R]{\thepage}
}

\fancypagestyle{double}{%
  \setcounter{pageother}{0}
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \fancyfoot[R]{\stepcounter{pageother}\thepage(\thepageother)}
}

在序言中使用\pagestyle{normal}以使用正常页码,然后使用 切换到双页码\pagestyle{double}。使用\pagestyle{normal}再次返回正常编号样式。

请注意,这不会影响目录或对页码的任何其他引用。

答案2

您可以使用xassoccnt在两个计数器之间建立“关联”。每当“驱动器计数器”步进时,就会有一个“从属计数器”步进。

\documentclass[twoside]{article}
\usepackage{lipsum}

\usepackage{fancyhdr,xassoccnt}
\fancypagestyle{plain}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \fancyfoot[LE,RO]{\thepage}
}
\fancypagestyle{combined}{%
  \pagestyle{plain}% The same as plain
  \setcounter{otherpage}{1}% Restart otherpage counter
  \fancyfoot[LE,RO]{\thepage (\theotherpage)}
}

% Declare otherpage to be associated with (stepped together with) page
\DeclareAssociatedCounters[autodefine=associated]{page}{otherpage}

\pagestyle{plain}% Set default page style
\sloppy% Just for this example
\begin{document}

\tableofcontents

\section{First}
\lipsum[1-10]

\clearpage
\pagestyle{combined}% Switch to combined pages style
\section{Second}
\lipsum[11-25]

\clearpage
\pagestyle{plain}% Switch back to plain (default) page style
\section{Third}
\lipsum[26-40]

\clearpage
\pagestyle{combined}% Switch back to combined page style
\section{Last}
\lipsum[41-55]

\end{document}

页面样式用于在不同的显示之间切换。上面的最小示例将页码顺序设置为

1
2
3
4(1)
5(2)
6(3)
7
8
9
10(1)
11(2)
12(3)

由于相关计数器不构成实际页面计数器显示的一部分,因此对页面的引用可能不包括相关计数器。此外,目录中的条目不会显示此信息,因为仅\thepage写入辅助文件。查看由以下程序创建的输出时可以看到这一点\tableofcontents

在此处输入图片描述

如果您希望在目录中包含相关的计数器(可能还有页面引用),那么以下设置就可以了:

\usepackage{fancyhdr,xassoccnt}
\fancypagestyle{plain}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\thepage}{\arabic{page}}% Update page display
  \fancyfoot[LE,RO]{\thepage}
}
\fancypagestyle{combined}{%
  \pagestyle{plain}% The same as plain
  \setcounter{otherpage}{1}% Restart otherpage counter
  \renewcommand{\thepage}{\arabic{page}(\theotherpage)}% Update page display
}

% Declare otherpage to be associated with (stepped together with) page
\DeclareAssociatedCounters[autodefine=associated]{page}{otherpage}

在此处输入图片描述

答案3

您可以将以下代码添加到序言中:

\usepackage{atbegshi} % for "\AtBeginShipout" macro
\newcounter{extranum}
\AtBeginShipout{\stepcounter{extranum}}
\newcommand\simplepagenumbering{%
   \clearpage
   \renewcommand\thepage{\arabic{page}}}
\newcommand\compoundpagenumbering{%
   \clearpage
   \setcounter{extranum}{1} % reset "extranum" counter
   \renewcommand\thepage{\arabic{page}(\arabic{extranum})}}

代码定义了两种页面样式:“简单”和“复合”。宏\simplepagenumbering\compoundpagenumbering以指令开头\clearpage;如果不需要,只需省略\clearpage指令即可。

完整的 MWE(由于它将占用 11 页,因此未显示输出):

\documentclass{article}
\usepackage{lipsum}

\usepackage{fancyhdr}
\fancyhf{} % clear all header and footers
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[R]{\thepage}
\pagestyle{fancy}
\fancypagestyle{plain}{%
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyhf[lef,rof]{\thepage}%
}

\usepackage{atbegshi} % for "\AtBeginShipout" macro
\newcounter{extranum}
\AtBeginShipout{\stepcounter{extranum}}
\newcommand\simplepagenumbering{%
   \clearpage
   \renewcommand\thepage{\arabic{page}}}
\newcommand\compoundpagenumbering{%
   \clearpage
   \setcounter{extranum}{1} % reset "extranum" counter
   \renewcommand\thepage{\arabic{page}(\arabic{extranum})}}

\begin{document}
\lipsum[1-10]
\compoundpagenumbering
\lipsum[11-25]
\simplepagenumbering
\lipsum[26-40]
\compoundpagenumbering
\lipsum[41-55]
\end{document}

相关内容