插入几个 pdf 文件的每 'n' 页

插入几个 pdf 文件的每 'n' 页

我有 3 个 pdf 文件(a.pdfb.pdfc.pdf),每个文件有 50 张图片。我需要逐一插入每个 pdf 的每一页(一行 3 个)。并非所有页面来自第一个 pdf,所有内容都来自另一个,但有一页来自a.pdf,一页来自b.pdfc.pdf

期望输出是一份包含以下页面的文档:1a、1b、1c、2a、2b、2c、3a、3b、3c....50a、50b、50c

平均能量损失

\documentclass[a4paper]{article}
\usepackage{pdfpages}

\begin{document}

\includepdfmerge[nup=1x3]
{a.pdf, 1,2,3,
b.pdf, 1,2,3,
c.pdf, 1,2,3}

\end{document}

答案1

这只是一条评论,因为对于正常评论来说它有点太长了。

\includepdfmerge[nup=1x3]{a.pdf, 1,b.pdf, 1, c.pdf, 1}
\includepdfmerge[nup=1x3]{a.pdf, 2,b.pdf, 2, c.pdf, 2} 
...

有效吗?因为这可以通过一个简单的 latex 循环来完成


这似乎有效

\documentclass[a4paper]{memoir}
\usepackage{pdfpages,pgffor}
\begin{document}

\foreach\n in{1,...,5}{
  \includepdfmerge[nup=1x3]{a.pdf,\n,b.pdf,\n,c.pdf,\n}
}
\end{document}

答案2

这扩展了回答daleif 添加了在 PDF 模式下使用 pdfTeX 时自动检索所包含文档的页数的功能。该命令\pdflastximagepages在调用之前返回先前包含的 PDF 文档的页数\pdflastximagepages

\documentclass[a4paper]{memoir}
\usepackage{pdfpages,pgffor}
\begin{document}

\sbox0{\includegraphics{a.pdf}}
\edef\PagesA{\number\pdflastximagepages}

\foreach\n in{1,...,\PagesA}{
  \includepdfmerge[nup=1x3]{a.pdf,\n,b.pdf,\n,c.pdf,\n}
}
\end{document}

答案3

以下是@Heiko Oberdiek 提出的解决方案

它适用于两个文件(可以适应更多文件),即使它们的页数不同。

\documentclass{report}
\usepackage[landscape,margin=0pt,a3paper]{geometry}
\usepackage{pdfpages,pgffor}


\begin{document}
\pagestyle{empty}
\sbox0{\includegraphics{new.pdf}}
\edef\PagesA{\number\pdflastximagepages}
\sbox1{\includegraphics{old.pdf}}
\edef\PagesB{\number\pdflastximagepages}
\newcounter{Min}
\newcounter{Max}
\setcounter{Min}{\minof{\PagesA}{\PagesB}}
\setcounter{Max}{\maxof{\PagesA}{\PagesB}}



\foreach\n in{1,...,\theMin}{
  \includepdfmerge[nup=2x1]{new.pdf,\n,old.pdf,\n}
}
\ifnum\theMin=\PagesA
  \addtocounter{Min}{1}
  \foreach\n in{\theMin,...,\theMax}{
    \includepdfmerge[nup=2x1]{old.pdf,\n}
  }
\else
  \addtocounter{Min}{1}
  \foreach\n in{\theMin,...,\theMax}{
    \includepdfmerge[nup=2x1]{new.pdf,\n}
  }
\fi
\end{document}

相关内容