以下のような文書があるとします。
\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}
コマンドを使用して、特定の部分のみをコンパイルできます。したがって、 とのみ\includeonly
が必要な場合は、プリアンブルに追加できます。ここで問題になるのは、これが に含まれている部分にしか機能しないことです。Text_A
Text_C
\includeonly{Text_A,Text_C}
\include
私はこれを に含まれる部分と組み合わせる方法を探しています\includepdf
。したがって、 と だけが必要な場合はText_A
、Attachment_A
行Attachment_C
を 1 つずつコメント アウトする必要があります。 および を介してインクルードされるファイルが多数ある場合や\includepdf
、コマンドに複数行のオプションが含まれている場合、これはむしろ不便です。
リファクタリングを行ってコマンドを単一のファイルにまとめ、メイン ドキュメントでのみ\includepdf
使用できるようにすることも可能でしょう。しかし、もっとエレガントな解決策があるのではないかと思います。\include
答え1
\includeonly
で使用されているテストを借りることができます\include
。
これには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}