
Considere el siguiente ejemplo:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\usepackage[2-]{pagesel}% Ignore first page
\begin{document}
\lipsum[1-50]
\end{document}
El resultado incluye una advertencia deatbegshi
:
¿Cómo puedo evitar esto?
Respuesta1
Esto sucederá después de cada página descartada.
pagesel
descarta páginas dependiendo de los criterios de inclusión que especifique. Cuando se excluye una página, el cuadro de envío se anula, lo que confundeatbegshi
.
Para evitar esto, cambie el orden de carga, cargandoatbegshi
después pagesel
:
\documentclass{article}
\usepackage[2-]{pagesel}
\usepackage{lipsum,atbegshi}
\begin{document}
\lipsum[1-50]
\end{document}
Respuesta2
Adiciones a Wernerrespuesta.
Además, el paquete atbegshi
tiene una función de "descarte de página". Por ejemplo, la primera página puede ser ignorada por:
\documentclass{article}
\usepackage{lipsum,atbegshi}
% \usepackage[2-]{pagesel}% Ignore first page
\AtBeginShipoutNext{\AtBeginShipoutDiscard}
\begin{document}
\lipsum[1-50]
\end{document}
O ignorando todas las páginas pares:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\AtBeginShipout{%
\ifodd\value{page}%
\else
\AtBeginShipoutDiscard
\fi
}
\begin{document}
\lipsum[1-50]
\end{document}
Por supuesto, la sintaxis no es tan cómoda como con el paquete pagesel
, por lo que la solución de Werner con el uso pagesel
de before atbegshi
es la forma más sencilla.
Sin embargo, ignorar vía atbegshi
permite cosas más divertidas, como ignorar páginas que están marcadas por una referencia:
% \nofiles % for the final run
\documentclass{article}
\usepackage{lipsum,atbegshi, refcount}
\AtBeginShipout{%
\ifnum\getrefbykeydefault{IgnoreThisPage}{page}{-\maxdimen}=\value{page}%
\AtBeginShipoutDiscard
\fi
}
\begin{document}
\lipsum[1-25]
\section{This page is ignored}
\label{IgnoreThisPage}
\lipsum[26-50]
\end{document}
En la primera ejecución, la referencia se escribe en el .aux
archivo. En la segunda ejecución, se descarta la página con la referencia. Dado que la página no se genera, la referencia no se escribe en el .aux
archivo y una tercera ejecución escribe la referencia nuevamente, pero incluye la página. Por lo tanto, la ejecución, que excluye archivos, debe llamar \nofiles
para evitar cambios en los archivos auxiliares.