¿Algo como \includeonly pero para \includepdf?

¿Algo como \includeonly pero para \includepdf?

Supongamos que tenemos un documento como el siguiente.

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

Puedo usar el \includeonlycomando para compilar solo ciertas partes. Entonces, si solo quiero Text_Ay Text_C, puedo agregarlo \includeonly{Text_A,Text_C}al preámbulo. Ahora mi problema es que esto sólo funciona para las piezas que se incluyen con \include.

Estoy buscando una manera de combinar esto con las piezas que se incluyen \includepdf. Entonces , si solo quiero Text_Ay , tengo que comentar las líneas una por una. Esto es bastante desagradable si hay muchos archivos incluidos y si el comando contiene varias líneas de opciones.Attachment_AAttachment_C\includepdf

Podría refactorizar un poco y poner los \includepdfcomandos en archivos individuales para poder usarlos \includeexclusivamente en el documento principal. Pero me pregunto si podría haber una solución más elegante.

Respuesta1

Puede tomar prestada la \includeonlyprueba utilizada por \include.

Esto solo incluye el texto y el archivo adjunto de 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}

información relacionada