由于includepdf自动openright检测中跳过页面,偏移无法可靠工作

由于includepdf自动openright检测中跳过页面,偏移无法可靠工作

由于includepdf自动openright检测中跳过页面,偏移无法可靠工作

情况与问题

为了我的目的,我想合并和偏移一组给定的 pdf。当我包含单个 pdf 并设置 -option 时,offset一切都正常,但包含多个 pdf 会导致offset某些部分失败。

更准确地说,如果跳过页面,它就会失败,因为前一章以奇数页码结束;例如,chapter_1.pdf在第 49 页结束,但chapter_2.pdf在第 51 页开始。这意味着 MWE 中的第 1 部分和第 3 部分对我有用,但第 2 部分和第 4 部分则不行。

我通过手动检查“缺失”页面解决了这个问题,因为添加openright到所有调用都不起作用。不过,我更喜欢一个选项。

由于我不是作者,所以我无法上传原始文件,但唯一相关的信息是排版twoside和章节从奇数页开始的事实。

问题

如何在跳过页面的 pdfpages 中设置双边偏移?

或者

如何检测跳过的页面并自动添加openright

平均能量损失

生成一些“进口商”副本,然后在“进口商”中根据需要调整名称。

importee.tex
\documentclass[a4paper,twoside]{article}
\usepackage{lipsum}

\begin{document}

\lipsum[1-14]

\end{document}
importer.tex
\documentclass[
    a4paper,
    twoside % to make offset odd/even-page-sensitive
]{article}
\usepackage{pdfpages}

\includepdfset{pages=-, offset={25pt 0pt}} % not reliably working for all calls

\begin{document}

\includepdf[]{./test_importee_1.pdf}
\includepdf[]{./test_importee_2.pdf}
\includepdf[]{./test_importee_3.pdf}
\includepdf[]{./test_importee_4.pdf}

\end{document}

答案1

虽然您的示例乍一看可能很奇怪,但这不是错误,而且完全正确。请重新阅读offset文档中的描述。它说:

抵消移动插入页面的原点。参数应为二维,以空格分隔。在“单面”文档中,正值分别将页面移至右侧和顶部边距,而在“双面”文档中,正值分别将页面移至外部和顶部边距。

因此,在twoside文档中offset,正面和反面页面会朝相反方向移动。引入此选项是为了适应将单面文档纳入双面文档时的布局。

当尝试将双面文档包含到单面文档中,或将双面文档包含到双面文档中时,事情变得更加复杂。现在,如果从正面页面开始,则需要正向移位,如果从反面页面开始,则需要负向移位。问题是您事先不知道您是从正面页面还是反面页面开始。到目前为止,pdfpages 还不支持这种情况,但是一旦您有一个可用的\ifthispageodd宏,实现这一点并不困难。(请注意,这样的宏并不像看起来那么容易实现。)例如,koma-script 提供了一个正确的\Ifthispageodd。这是一个例子:

\documentclass[twoside, paper=a4]{scrartcl}
\usepackage{pdfpages}
\includepdfset{pages=-}

\begin{document}

\newpage
\Ifthispageodd{%
  \includepdf[offset={25pt 0pt}]{importee.pdf}}{%
  \includepdf[offset={-25pt 0pt}]{importee.pdf}}

\newpage
\Ifthispageodd{%
  \includepdf[offset={25pt 0pt}]{importee.pdf}}{%
  \includepdf[offset={-25pt 0pt}]{importee.pdf}}

\newpage
\Ifthispageodd{%
  \includepdf[offset={25pt 0pt}]{importee.pdf}}{%
  \includepdf[offset={-25pt 0pt}]{importee.pdf}}

\newpage
\Ifthispageodd{%
  \includepdf[offset={25pt 0pt}]{importee.pdf}}{%
  \includepdf[offset={-25pt 0pt}]{importee.pdf}}

\end{document}

编辑\Ifthispageodd在包中定义scrextend.sty,无需加载 koma-script 类即可使用。

相关内容