Seitenreihenfolge bei Verwendung von pdfpages ändern

Seitenreihenfolge bei Verwendung von pdfpages ändern

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.texsind C.texin Wirklichkeit viel größer.)

Frage

AKTUALISIERT

Wie ändere ich die Reihenfolge der Seiten A.pdfin

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.pdfnur Seiten aus und auf der zweiten Seite nur Seiten aus usw. erscheinen.B.pdfC.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.pdfund B.pdfdieselbe Seitenanzahl haben, wenn nicht, druckt er bis zur letzten Seite der Seite mit weniger Seiten (in einer Art Duplex mit Bauf der einen und Cauf 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

verwandte Informationen