自定义页码

自定义页码

我正在用 LaTeX 写一篇文章,我将打印出来,这样每面有两页。我想将页面编号为 1a、1b、2a、2b、3a、3b……这样出现在第 1 页上的两页将是 1a 和 1b,依此类推。

例如,可以使用fancyhdr包来做到这一点吗?

答案1

以下示例以与、、\abpage类似的方式定义计数器格式命令。该命令是可扩展的,因此可以像往常一样与 、 页面引用、...一起使用。\arabic\alph\roman\thepagehyperref

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

\makeatletter
\newcommand*{\abpage}[1]{%
  \expandafter\@abpage\csname c@#1\endcsname
}
\newcommand*{\@abpage}[1]{%
  \ifodd\numexpr(#1)\relax
    \the\numexpr(1+#1)/2\relax
    a%
  \else
    \the\numexpr(#1)/2\relax
    b%
  \fi
}
\makeatother

\renewcommand*{\thepage}{\abpage{page}}

\begin{document}
\lipsum[1-30]
\end{document}

该示例使用 e-TeX 执行可扩展计算\numexpr。在极少数情况下,当 e-TeX 不可用时(例如,古老的 TeX 系统),intcalc可以使用包进行可扩展整数计算。

答案2

OP 澄清道:

“因此,普通文档的页码为 1、2、...、(N-1),而每页出现两张的“幻灯片”为 Na、Nb、(N+1)a、(N+1)b、...”

以下 MWE 似乎可以通过对 的重新定义来实现该结果,\thepage通过调用 来\transitionpagenumbers清除旧编号系统下的当前页面并在 之后开始新的编号系统\clearpage

\documentclass{article}
\def\transitionpagenumbers{
  \clearpage
  \edef\ptran{\thepage}
  \def\pcycle{a}
  \newcounter{falsepage}
  \def\thepage{%
    \setcounter{falsepage}{\numexpr\value{page}-\ptran\relax}%
    \divide\value{falsepage} by 2\relax%
    \addtocounter{falsepage}{\ptran}%
    \arabic{falsepage}\pcycle%
    \if a\pcycle\gdef\pcycle{b}\else\gdef\pcycle{a}\fi%
  }
}
\usepackage{lipsum}
\begin{document}
\lipsum[1-23]
\transitionpagenumbers
\lipsum[1-36]
\end{document}

这将生成一个包含第 1-5 页、第 6a、6b、7a、7b、8a、8b 和 9a 页的文档。

答案3

带有“普通页码”的文档应该没有问题,因此不在本答案的考虑范围内。另外,我认为将横向页面堆叠成纵向页面意味着您使用 A5 之类的页面尺寸来制作幻灯片,这样它们就可以垂直放置在 A4 上。

创建幻灯片的方法如下:

\documentclass{article}
\usepackage{geometry,lipsum,atbegshi,fancyhdr}
\geometry{
  twoside,
  landscape,
  paper=a5paper,
  margin=15mm
}
\fancyhf{}% Clear header/footer
\renewcommand{\headrulewidth}{0pt}% Remove header rule
\fancyfoot[C]{\theslowpage\ifodd\value{page}a\else b\fi}
\pagestyle{fancy}
\newcounter{slowpage}\setcounter{slowpage}{1}% Set first slow page
\AtBeginShipout{\ifodd\value{page}\else\stepcounter{slowpage}\fi}
\begin{document}

\lipsum[1-50]

\end{document}

根据上一文档的最后一页,slowpage相应地设置 的值。该slowpage计数器实际上是一个从属计数器,每隔一页才增加,而附录a或则b取决于常规page计数器的奇数。

上述方法不会对常规page计数器造成干扰,因此不会给hyperref或其他交叉引用。

相关内容