由于前言采用罗马数字,pdf 查看器中的页码偏移,导致打印困难

由于前言采用罗马数字,pdf 查看器中的页码偏移,导致打印困难

我使用 LaTeX 生成的 PDF 文档的前言部分使用了罗马数字。

我的问题是:如果我想打印一定范围的页面,则很难选择它们,因为我的 PDF 查看器(Skim.app或)似乎从 PDF 的开头计算页数(1 = PDF 的第一页),但它显示了文档的正确页码(因此第 1 页是主要内容的第一页)。Preview.appMacOS X 10.6.8

有没有办法解决这个问题,以便显示的页码与我必须在打印对话框中输入的页码相同?

这是一个简单的例子:

\documentclass{scrbook}

\usepackage{hyperref}

\begin{document}

\frontmatter

\section{Here starts the Frontmatter}
text frontmatter

\mainmatter

\section{here starts the mainmatter}

text mainmatter: in my PDF viewer this is page 1, but when I would like to print it, I'd have to print page 3 (selecting page 1 in the print dialog would print page i, the first page of the PDF)

\backmatter

\section{here comes the backmatter}
text backmatter

\end{document}

答案1

感谢 Qrrbrbirlbel Torbjørn T. 的评论,我自己找到了解决方案:

Skim.app(版本 1.3.22)确实显示两个页码(以 MWE 第一页为例):

在此处输入图片描述

  • 左侧白色方框中显示第“i”页
  • 显示的是第 1 页,共 5 页(“真实的”窗口标题栏中的

Preview.app(版本 5.0.1)仅在标题栏中显示“真实”页码(PDF 第一页 = 1)

因此,在这两个应用程序中,如果我从打印对话框的标题栏中选择“真实”页码,我就可以精确选择要打印的页面范围。

答案2

尝试将其放在您的序言中。我们习惯于在每张发货的页面上\EveryShipout增加新的计数器xpage,然后我们习惯于\texorpdfstring在文本和 PDF 注释中写一些不同的东西。在 PDF 注释中,我们写下这个数字。修改可\pagenumbering确保我们修改的编号在任何地方都能正确使用。

\makeatletter
\usepackage{everyshi}
\newcounter{xpage}\stepcounter{xpage}
\def\@xnumber#1#2{\texorpdfstring{#1{#2}}{\@arabic\c@xpage}}
\def\@xroman{\@xnumber{\@roman}} % repeat for every numbering style you use
\def\@xRoman{\@xnumber{\@Roman}} % repeat for every numbering style you use
\def\@xarabic{\@xnumber{\@arabic}} % repeat for every numbering style you use
\let\@xpagenumbering\pagenumbering
\def\pagenumbering#1{\@xpagenumbering{x#1}}
\pagenumbering{arabic}
\EveryShipout{\stepcounter{xpage}}
\makeatother

相关内容