我有多个 PDF 文件(只有一页),需要将它们包含在文档中。我成功让 Latex 包含目录中存在的 PDF,如下所示:
\usepackage{pdfpages}
\usepackage{bookmark}
\includepdf[pages={1},fitpaper=true]{1.pdf}
\includepdf[pages={1},fitpaper=true]{2.pdf}
\includepdf[pages={1},fitpaper=true]{3.pdf}
\includepdf[pages={1},fitpaper=true]{4.pdf}
\includepdf[pages={1},fitpaper=true]{5.pdf}
ETC...
因此,如果目录中只有文件 1.pdf 和 2.pdf,则将跳过文件 3.pdf、4.pdf 等...,文档将继续执行下一个命令。然后,如果我有更多文件要包含,LaTeX 将自动检测它们并将它们插入到最终文档中。这就是我想要的。问题是我必须在每个插入的 PDF 之间包含一个空白页。我试过:
\includepdf[pages={1,{}},fitpaper=true]{1.pdf}
和这个:
\includepdf[pages={1},fitpaper=true]{1.pdf}
\newpage
\thispagestyle{empty}
\mbox{}
但如果我这样做,它会在每个不在目录中的 PDF 后插入一个空白页。从而导致在创建的 PDF 文档中出现 \AM@currentdoc... 页,后面跟着一个空白页。因此,为了清楚起见,我希望他只在找到 PDF 文件时插入一个空白页。这可能吗?
答案1
您可以使用类似这样的方法,这样当文件不存在时就不会产生错误。在我的计算机上,我得到了一个四页的文档(文件 1 和 4 存在;文件 2 和 3 不存在)。
\documentclass[twoside]{article}
\usepackage{pdfpages}
\includepdfset{pages=1, fitpaper=true}
\usepackage{bookmark}
\newcommand*\ifpdfexists[1]{%
\IfFileExists{#1.pdf}{\includepdf{#1}\cleardoublepage}{\relax}}
\begin{document}
\ifpdfexists{body}
\ifpdfexists{1}
\ifpdfexists{2}
\ifpdfexists{mypages}
\end{document}