아래와 같은 문서가 있다고 가정해 보겠습니다.
\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
행을 하나씩 주석 처리해야 합니다. 통해 포함된 파일이 많고 \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}