如果目录中存在此 PDF,如何于包含的 PDF 后插入空白页?

如果目录中存在此 PDF,如何于包含的 PDF 后插入空白页?

我有多个 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}

相关内容