![使用循环通过 \includegraphics 添加 PDF 页面](https://linux22.com/image/272540/%E4%BD%BF%E7%94%A8%E5%BE%AA%E7%8E%AF%E9%80%9A%E8%BF%87%20%5Cincludegraphics%20%E6%B7%BB%E5%8A%A0%20PDF%20%E9%A1%B5%E9%9D%A2.png)
我需要包含 PDF 页面\includegraphics
。我知道有包\usepackage{pdfpages}
。所以这就是我所拥有的:
\begin{picture}(0,0)(75,272.5)
\put(0,0){\frame{\includegraphics[page=i]{pdf_file_name}}}
\end{picture}
我需要这些尺寸,以便 PDF 页面覆盖其所包含的整个页面。现在我想将每一页添加到该 PDF 文件的一行中。我该如何创建一个循环来完成此操作?文件最后一页有键吗?我不知道在这种情况下如何使用\while
\for
或\if
。如果您有关于它的进一步文档,那就太好了。
例子:
\for i=1 to i=last_page_of_pdf_file
{
\begin{picture}(0,0)(75,272.5)
\put(0,0){\frame{\includegraphics[page=i]{pdf_file_name}}}
\end{picture}
\newpage
}
我使用 询问了类似的问题\includepdf
。-关联
答案1
棘手的部分是获取 PDF 文件中的最大页数。如果文件包含在 pdfTeX 中,则它会设置一个原语,\pdflastximagepages
其中包含所包含 PDF 文件中的页数。
因此,以下示例定义了宏\getpdfpages
。它将第一页包含在临时框中。然后它将 LaTeX 计数器设置pdfpages
为值\pdflastximagepages
。
循环有多种实现方式。本例仅使用了其中一种,\foreach
即pgf
/ TikZ
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgffor}
\newcounter{pdfpages}
\newcommand*{\getpdfpages}[1]{%
\begingroup
\sbox0{%
\includegraphics{#1}%
\setcounter{pdfpages}{\pdflastximagepages}%
}%
\endgroup
}
\begin{document}
\getpdfpages{t.pdf}
\foreach \x in {1,...,\value{pdfpages}} {
% your code for page \x of t.pdf goes here
\includegraphics[page=\x]{t.pdf}%
}
\end{document}