Considere el siguiente ejemplo.
Archivo: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}
Archivo: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}
Archivo:A.tex
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[
nup = 2x4,
pages = -,
frame = true
]{B}
\includepdf[
nup = 2x4,
pages = -
]{C}
\end{document}
(Los documentos B.tex
y C.tex
son mucho más grandes en realidad).
Pregunta
ACTUALIZADO
¿Cómo cambio el orden de las páginas A.pdf
desde
Bp1, Bp2, ..., Bpn, Cp1, Cp2, ..., Cpn
a
Bp1, ..., Bp8, Cp1, ..., Cp8, [...], Bp(n-8), ..., Bpn, Cp(n-8), Cpn
para n arbitrario?
Es decir, A.pdf
quiero que solo las páginas de B.pdf
estén en la primera página y solo las páginas de C.pdf
estén en la segunda página, y así sucesivamente.
Respuesta1
Eliminé el código anterior, por lo que esta respuesta se ajusta a la última edición de su pregunta.
El siguiente código hace lo que desea (y verifica si C.pdf
tiene B.pdf
la misma cantidad de páginas; de lo contrario, imprime hasta la última página de la que tiene menos (en modo dúplex con B
una y C
la otra página) , y luego imprime el resto del que tiene más páginas. Acepta un argumento opcional, que puede proporcionar una página máxima fija en lugar de todas las páginas de ambos archivos PDF (aunque con una página máxima fija no se verifica si ambos PDF tienen 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}
EDITAR: publicaré la detección de errores de todos modos (aparece una advertencia):
\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}
Respuesta2
Podría ser más eficiente combinar los dos archivos PDF en uno y luego agregarlo por segunda vez a su documento C. Este enlace podría ser útil si está acostumbrado a JavaScript:http://www.planetpdf.com/developer/article.asp?ContentID=collating_pdfs_using_javascrip&rh%20s_fa
o este servicio en línea https://www.sejda.com/es/mezcla-alternativa-pdf