The following question stinks a bit of crazed micro-optimization. But I had written it, and I was a bit curious, so I thought I might as well post it.

The following loop iterates over inserting some files:

\foreach \n in {1,...,3}
{\includefile{\n}}


But I'd like to insert some blank pages in between those files. So, something like this:

\includefile{1}
\includefile{2}
\includefile{3}


The question is - can this be done while still preserving a loop structure? Something involving a double loop like in Parallel loop [python-like zip] in Tikz might work, but a graceful way of doing so it not obvious.

See a complete MWE below.

\documentclass[12pt]{article}
\usepackage{filecontents}
\usepackage{shellesc}
\usepackage{tikz}
\usepackage{pdfpages}
\usepackage{listofitems}
\begin{document}

\begin{filecontents*}{foo/bar.tex}
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}  % This will be output to foo/bar
\node [font=\bfseries\Large, align=center] at (10, -10){TEST};(10,10);
\end{tikzpicture}
\end{document}
\end{filecontents*}
\ShellEscape{cd foo; pdflatex -shell-escape bar.tex}

foo/bar.pdf,
foo/bar.pdf,
foo/bar.pdf
}
\newcommand{\includefile}[1]{
\includepdf[pagecommand=
{\begin{tikzpicture}[remember picture, overlay]
\node [font=\bfseries\Large, align=center] at (5, -5){WRITE ON TOP};
\end{tikzpicture}}
,pages=1-]{\Filenames[#1]}
}

% Can this be done
\includefile{1}
\includefile{2}
\includefile{3}

% using a loop?
\foreach \n in {1,...,3}
{\includefile{\n}}

\end{document}

• Is there a pattern which the insertion of blank pages adheres to? – TeXnician Mar 29 at 10:41
• @TeXnician No, in general, no pattern. The idea is that I may occasionally want to add a blank page. – Faheem Mitha Mar 29 at 11:18

It seems that adding an array containing \addblankpage's, and then looping over that simultaneously, works. Like this:

\readlist*\Blankfiles{
,
}
And then changing the loop to

\foreach \n in {1,...,3}
{\includefile{\n}\Blankfiles[\n]}


A corresponding MWE follows. Comments welcome.

\documentclass[12pt]{article}
\usepackage{filecontents}
\usepackage{shellesc}
\usepackage{tikz}
\usepackage{pdfpages}
\usepackage{listofitems}
\begin{document}

\begin{filecontents*}{foo/bar.tex}
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}  % This will be output to foo/bar
\node [font=\bfseries\Large, align=center] at (10, -10){TEST};
\end{tikzpicture}
\end{document}
\end{filecontents*}
\ShellEscape{cd foo; pdflatex -shell-escape bar.tex}

foo/bar.pdf,
foo/bar.pdf,
foo/bar.pdf
}

,
}

\newcommand{\includefile}[1]{
\includepdf[pagecommand=
{\begin{tikzpicture}[remember picture, overlay]
\node [font=\bfseries\Large, align=center] at (5, -5){WRITE ON TOP};
\end{tikzpicture}}
,pages=1-]{\Filenames[#1]}
}

\includefile{1}
\includefile{2}