插入具有适当大小、位置和边距的外部 PDF 页面

插入具有适当大小、位置和边距的外部 PDF 页面

我正在使用 changepage 包来调整我的页面,如下图所示:

在此处输入图片描述

纸张尺寸为 A4,页面尺寸为 B5(第一页边距)。在 B5 区域内,页边距设置如下图所示。现在我想使用 pdfpages 包从另一个 pdf 文档插入几页:

在此处输入图片描述

纸张尺寸为 A4,页边距设置如图所示。现在我的问题是:有没有办法将这些页面包含到我的文档中,并将页面大小、位置和页边距调整为第一张图所示的大小、位置和页边距?

答案1

  • 所包含页面的纵横比不同(宽度较大,高度较小)。因此,除非页面变形,否则不可能具有相同的边距。

  • 您可以运行外部 PDF 文件pdfcrop以获得没有白色边距的 PDF 文件。这使得后续步骤/计算更加容易。

  • 由于包含的页面应适合文本主体,并且页面布局对奇数页和偶数页有不同的边距,\includegraphics因此可能更容易使用,例如:

    \noindent
    \includegraphics[
        page=1,
        width=\textwidth,
        height=\textheight,
        keepaspectratio
    ]{external.pdf}
    \vfill
    \newpage
    

    由于宽度较大,包含的页面的高度将比正常文本主体短。

  • 可以使用选项调整边距trim(也可以与 一起使用\includepdf)。正值表示将 TeX 的边界框放在图像内部,负值表示将边界框放在图像外部。如果clip不使用裁剪(选项 ),裁剪区域将显示在最终输出中。该技巧可用于顶部边距,以使包含页面的标题行位于文本正文上方,例如:

    \includegraphics[
      page=1,
      width=\textwidth,
      height=\textheight,
      keepaspectratio,
      trim=0 0 0 20pt,
    ]{external.pdf}
    

自动化

pdfTeX 和 LuaTeX 都知道\pdflastimagepages包含最后包含的文件的页数。这可用于通过自动包含页面\includegraphics,例如:

\documentclass{article}
\usepackage{graphicx}

\makeatletter
\newcounter{imagepage}
\newcommand*{\foreachpage}[2]{%
  \begingroup
    \sbox0{\includegraphics{#1}}%
    \xdef\foreachpage@num{\the\pdflastximagepages}%
  \endgroup
  \setcounter{imagepage}{0}%
  \@whilenum\value{imagepage}<\foreachpage@num\do{%
    \stepcounter{imagepage}%
    #2\relax
  }%
}
\makeatother

\begin{document}
% image file is `example.pdf'
\foreachpage{example}{%
  \newpage   
  \begingroup 
    \centering
    \includegraphics[
      page=\value{imagepage},
      width=\textwidth,  
      height=\textheight,
      keepaspectratio,
    ]{example}%
    \newpage
  \endgroup
}
\end{document}

相关内容