我正在使用 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}