Betrachten Sie das folgende Beispiel.
Datei: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}
Datei: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}
Datei:A.tex
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[
nup = 2x4,
pages = -,
frame = true
]{B}
\includepdf[
nup = 2x4,
pages = -
]{C}
\end{document}
(Die Dokumente B.tex
sind C.tex
in Wirklichkeit viel größer.)
Frage
AKTUALISIERT
Wie ändere ich die Reihenfolge der Seiten A.pdf
in
Bp1, Bp2, ..., Bpn, Cp1, Cp2, ..., Cpn
Zu
Bp1, ..., Bp8, Cp1, ..., Cp8, [...], Bp(n-8), ..., Bpn, Cp(n-8), Cpn
für beliebiges n?
Das heißt, ich möchte , dass auf der ersten Seite A.pdf
nur Seiten aus und auf der zweiten Seite nur Seiten aus usw. erscheinen.B.pdf
C.pdf
Antwort1
Ich habe den vorherigen Code gelöscht, daher passt diese Antwort zur neuesten Bearbeitung Ihrer Frage.
Der folgende Code macht, was Sie wollen (und prüft, ob C.pdf
und B.pdf
dieselbe Seitenanzahl haben, wenn nicht, druckt er bis zur letzten Seite der Seite mit weniger Seiten (in einer Art Duplex mit B
auf der einen und C
auf der anderen Seite) und druckt danach den Rest der Seite mit mehr Seiten. Er akzeptiert ein optionales Argument, das eine feste Maximalseite anstelle aller Seiten beider PDFs angeben kann (bei der festen Maximalseite wird allerdings nicht geprüft, ob beide PDFs so viele Seiten haben).
\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: Ich poste die Fehlererkennung trotzdem (sie gibt eine Warnung aus):
\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}
Antwort2
Es könnte effizienter sein, die beiden PDF-Dateien zu einer zusammenzufassen und diese dann ein zweites Mal zu Ihrem Dokument C hinzuzufügen. Dieser Link könnte nützlich sein, wenn Sie mit JavaScript vertraut sind:http://www.planetpdf.com/developer/article.asp?ContentID=collating_pdfs_using_javascrip&rh%20s_fa
oder diesen Online-Dienst https://www.sejda.com/en/alternate-mix-pdf