Nehmen wir an, wir haben ein Dokument wie das folgende.
\documentclass{scrartcl}
\usepackage{pdfpages}
\begin{document}
\include{Text_A}
\include{Text_B}
\include{Text_C}
\include{Text_D}
\includepdf{Attachment_A}
\includepdf{Attachment_B}
\includepdf{Attachment_C}
\end{document}
Ich kann den Befehl verwenden, \includeonly
um nur bestimmte Teile zu kompilieren. Wenn ich also nur Text_A
und möchte Text_C
, kann ich \includeonly{Text_A,Text_C}
der Präambel etwas hinzufügen. Jetzt ist mein Problem, dass dies nur für Teile funktioniert, die in enthalten sind \include
.
Ich suche nach einer Möglichkeit, dies mit Teilen zu kombinieren, die mit eingebunden sind \includepdf
. Wenn ich also nur Text_A
, Attachment_A
und möchte Attachment_C
, muss ich die Zeilen einzeln auskommentieren. Das ist ziemlich unangenehm, wenn viele Dateien über eingebunden sind \includepdf
und der Befehl mehrere Optionszeilen enthält.
Ich könnte einige Umgestaltungen vornehmen und die Befehle in einzelne Dateien packen , sodass ich sie ausschließlich im Hauptdokument \includepdf
verwenden kann . Aber ich frage mich, ob es vielleicht eine elegantere Lösung gibt?\include
Antwort1
Sie können den \includeonly
von verwendeten Test ausleihen \include
.
Dies beinhaltet nur den Text und den Anhang für B
\documentclass{scrartcl}
\usepackage{pdfpages}
\makeatletter
\let\oldincludepdf\includepdf
\newcommand\zzincludepdf[2][]{%
\@tempswatrue
\if@partsw
\@tempswafalse
\edef\reserved@b{#2}%
\@for\reserved@a:=\@partlist\do
{\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
\fi
\if@tempswa
\IfFileExists{#2.pdf}{\oldincludepdf[#1]{#2}}{\typeout{no file #2.pdf}}%
\fi}
\let\includepdf\zzincludepdf
\makeatother
\includeonly{Text_B,Attachment_B}
\begin{document}
\include{Text_A}
\include{Text_B}
\include{Text_C}
\include{Text_D}
\includepdf{Attachment_A}
\includepdf[pages=-]{Attachment_B}
\includepdf{Attachment_C}
\end{document}