\includeonly와 비슷하지만 \includepdf에 대한 것인가요?

\includeonly와 비슷하지만 \includepdf에 대한 것인가요?

아래와 같은 문서가 있다고 가정해 보겠습니다.

\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}

관련 정보