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 \includeonly
comando para compilar solo ciertas partes. Entonces, si solo quiero Text_A
y 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_A
y , 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_A
Attachment_C
\includepdf
Podría refactorizar un poco y poner los \includepdf
comandos en archivos individuales para poder usarlos \include
exclusivamente en el documento principal. Pero me pregunto si podría haber una solución más elegante.
Respuesta1
Puede tomar prestada la \includeonly
prueba 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}