我有一份有编号的文档。我想对文档的某些部分进行双重编号。例如,页码编号:
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
我将使用两个pagestyle
s 和一个新的计数器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}