我想将负数页面放在书籍文档类的主页之前。
因此,我将得到类似页面 -4、-3、-2、-1、0(这是第一个主页)、1、2… 的内容
document
我可以将其放在环境的顶部\setcounter{page}{-<number>}
,但我必须知道它之前有多少页\mainmatter
才能将其作为<number>
变量。那么我如何才能获取这个值呢?
答案1
以下示例使用包zref
,尤其是 中的zref-abspage
,它为绝对页码提供了计数器。将具有属性(绝对页码)的\mainmatter
引用写入文件。在下一次运行中,页码在 的开头设置为 负数:mainmatter
abspage
.aux
\frontmatter
\documentclass{book}
\usepackage{zref-abspage}
\makeatletter
% Add label to \mainmatter for the absolute page number
\g@addto@macro\mainmatter{%
\zref@labelbyprops{mainmatter}{abspage}%
}
\g@addto@macro\frontmatter{%
% Overwrite \pagenumbering{roman} of the original \frontmatter
\pagenumbering{arabic}%
% Set the page number to the number of pages in the frontmatter
% with reverted sign.
\setcounter{page}{-\zref@extractdefault{mainmatter}{abspage}{0}}%
% The label is already on page n + 1, the first page of the main matter.
\stepcounter{page}%
% Also page number 0 is available:
\stepcounter{page}%
% Ensure, that the first page is odd-numbered.
\ifodd\value{page}%
\else
\addtocounter{page}{-1}%
\fi
\zref@refused{mainmatter}%
}
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\chapter{Introduction}
\mainmatter
\chapter{Main chapter}
\end{document}
结果:
- 第 3 页:目录
- 第 -2 页:由于 \cleardoublepage 的下列内容,页面变为空白
\chapter
- 第 1 页:章节“简介”
- 第 0 页:由于 \cleardobulepage 以下内容,页面为空
\mainmatter
- 第 1 页:章节“主要章节”,主要内容的第一页