
Considere o seguinte exemplo.
Arquivo:B.tex
\documentclass[
12pt,
landscape
]{article}
\usepackage[
a6paper
]{geometry}
\usepackage{multido}
\newenvironment{navn}{%
\setlength{\topskip}{0pt}%
\centering
\vspace*{\fill}%
\nointerlineskip
\Huge
% \sbox0{Front}%
% \showthe\ht0
}{%
\par
\vspace*{\fill}%
% \setlength{\showboxdepth}{\maxdimen}%
% \setlength{\showboxbreadth}{\maxdimen}%
% \tracingonline=1 %
% \showlists
}
\pagestyle{empty}
\begin{document}
\multido{\i = 1+1}{16}{%
\begin{navn}
Front
\end{navn}
\newpage}
\end{document}
Arquivo:C.tex
\documentclass[
12pt,
landscape
]{article}
\usepackage[
a6paper
]{geometry}
\usepackage{multido}
\newenvironment{navn}{%
\setlength{\topskip}{0pt}%
\centering
\vspace*{\fill}%
\nointerlineskip
\Huge
% \sbox0{XYZ}%
% \showthe\ht0
}{%
\par
\vspace{\fill}%
% \setlength{\showboxdepth}{\maxdimen}%
% \setlength{\showboxbreadth}{\maxdimen}%
% \tracingonline=1 %
% \showlists
}
\pagestyle{empty}
\begin{document}
\multido{\i = 1+1}{16}{%
\begin{navn}
\thepage
\end{navn}
\newpage}
\end{document}
Arquivo:A.tex
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[
nup = 2x4,
pages = -,
frame = true
]{B}
\includepdf[
nup = 2x4,
pages = -
]{C}
\end{document}
(Os documentos B.tex
são C.tex
muito maiores na realidade.)
Pergunta
ATUALIZADA
Como altero a ordem das páginas A.pdf
de
Bp1, Bp2, ..., Bpn, Cp1, Cp2, ..., Cpn
para
Bp1, ..., Bp8, Cp1, ..., Cp8, [...], Bp(n-8), ..., Bpn, Cp(n-8), Cpn
para n arbitrário?
Ou seja, A.pdf
quero que apenas as páginas de B.pdf
estejam na primeira página e apenas as páginas de C.pdf
estejam na segunda página e assim por diante.
Responder1
Excluí o código anterior, então esta resposta se ajusta à edição mais recente da sua pergunta.
O código abaixo faz o que você deseja (e verifica se C.pdf
tem B.pdf
a mesma quantidade de páginas, caso contrário imprime até a última página daquela com menor (em modo duplex com B
uma e C
outra página) , e depois imprime o restante daquele com mais páginas. Ele aceita um argumento opcional, que pode fornecer uma página máxima fixa em vez de todas as páginas de ambos os PDFs (embora com a página máxima fixa não seja verificado se ambos os PDFs têm tantas páginas). ).
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\newcount\maxpages
\newcount\curpage
\newcount\untilpage
\makeatletter
\newif\if@pdfdingsunbalance
\newcount\@testmaxpages
\newcommand{\@incpdfdings}[3]{\includepdf[nup=2x4,pages={#1-#2},frame=true]{#3}}
\newcommand{\incpdfdings}[3][]{%
\ifx\relax#1\relax%
\pdfximage{#2}%
\maxpages=\pdflastximagepages%
\pdfximage{#3}%
\@testmaxpages=\pdflastximagepages%
\ifnum\maxpages<\@testmaxpages%
\@pdfdingsunbalancetrue%
\def\@pdfdingsmore{#3}%
\else\ifnum\@testmaxpages<\maxpages%
\@pdfdingsunbalancetrue%
\def\@pdfdingsmore{#2}%
\maxpages=\@testmaxpages%
\fi\fi%
\else%
\maxpages=#1%
\fi%
\curpage=0%
\loop\ifnum\maxpages>\curpage%
\advance\curpage by 1%
\untilpage=\numexpr\curpage+7\relax%
\ifnum\maxpages>\untilpage\else%
\untilpage=\maxpages%
\fi%
\@incpdfdings{\the\curpage}{\the\untilpage}{#2}%
\@incpdfdings{\the\curpage}{\the\untilpage}{#3}%
\advance\curpage by 7%
\repeat%
\if@pdfdingsunbalance%
\advance\maxpages by 1%
\@incpdfdings{\the\maxpages}{}{\@pdfdingsmore}%
\fi%
}
\makeatother
\begin{document}
\incpdfdings{B.pdf}{C.pdf}
\end{document}
EDIT: Vou postar a detecção de erros de qualquer maneira (lança um aviso):
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\newcount\maxpages
\newcount\curpage
\newcount\untilpage
\makeatletter
\newif\if@pdfdingsunbalance
\newcount\@testmaxpages
\newcommand{\@incpdfdings}[3]{\includepdf[nup=2x4,pages={#1-#2},frame=true]{#3}}
\newcommand{\incpdfdings}[3][]{%
\ifx\relax#1\relax%
\pdfximage{#2}%
\maxpages=\pdflastximagepages%
\pdfximage{#3}%
\@testmaxpages=\pdflastximagepages%
\ifnum\maxpages<\@testmaxpages%
\@pdfdingsunbalancetrue%
\def\@pdfdingsmore{#3}%
\else\ifnum\@testmaxpages<\maxpages%
\@pdfdingsunbalancetrue%
\def\@pdfdingsmore{#2}%
\maxpages=\@testmaxpages%
\fi\fi%
\else%
\maxpages=#1%
\pdfximage{#2}%
\@testmaxpages=\pdflastximagepages%
\ifnum\maxpages>\@testmaxpages%
\@latex@warning{The file #2 you wanted to be printed with
incpdfdings doesn't have enough pages to match your request in
the optional argument}%
\maxpages=\@testmaxpages%
\fi%
\pdfximage{#3}%
\@testmaxpages=\pdflastximagepages%
\ifnum#1>\@testmaxpages%
\@latex@warning{The file #3 you wanted to be printed with
incpdfdings doesn't have enough pages to match your request in
the optional argument}%
\ifnum\maxpages>\@testmaxpages%
\maxpages=\@testmaxpages%
\fi\fi%
\fi%
\curpage=0%
\loop\ifnum\maxpages>\curpage%
\advance\curpage by 1%
\untilpage=\numexpr\curpage+7\relax%
\ifnum\maxpages>\untilpage\else%
\untilpage=\maxpages%
\fi%
\@incpdfdings{\the\curpage}{\the\untilpage}{#2}%
\@incpdfdings{\the\curpage}{\the\untilpage}{#3}%
\advance\curpage by 7%
\repeat%
\if@pdfdingsunbalance%
\advance\maxpages by 1%
\@incpdfdings{\the\maxpages}{}{\@pdfdingsmore}%
\fi%
}
\makeatother
\begin{document}
\incpdfdings[60]{B.pdf}{C.pdf}
\end{document}
Responder2
poderia ser mais eficiente combinar os dois arquivos PDF em um e, em uma segunda vez, adicioná-lo ao seu documento C. Este link pode ser útil se você estiver acostumado com JavaScript:http://www.planetpdf.com/developer/article.asp?ContentID=collating_pdfs_using_javascript&rh%20s_fa
ou este serviço online https://www.sejda.com/en/alternate-mix-pdf