
Рассмотрим следующий пример:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\usepackage[2-]{pagesel}% Ignore first page
\begin{document}
\lipsum[1-50]
\end{document}
Вывод включает предупреждение отatbegshi
:
Как этого избежать?
решение1
Это будет происходить после каждой удаленной страницы.
pagesel
отбрасывает страницы в зависимости от указанных вами критериев включения. Когда страница исключается, поле shipout аннулируется, что сбивает с толкуatbegshi
.
Чтобы избежать этого, измените порядок загрузки, загрузивatbegshi
после pagesel
:
\documentclass{article}
\usepackage[2-]{pagesel}
\usepackage{lipsum,atbegshi}
\begin{document}
\lipsum[1-50]
\end{document}
решение2
Дополнения к Вернераотвечать.
Также пакет atbegshi
имеет функцию "отбрасывания страницы". Например, первую страницу можно проигнорировать:
\documentclass{article}
\usepackage{lipsum,atbegshi}
% \usepackage[2-]{pagesel}% Ignore first page
\AtBeginShipoutNext{\AtBeginShipoutDiscard}
\begin{document}
\lipsum[1-50]
\end{document}
Или игнорируя все четные страницы:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\AtBeginShipout{%
\ifodd\value{page}%
\else
\AtBeginShipoutDiscard
\fi
}
\begin{document}
\lipsum[1-50]
\end{document}
Конечно, синтаксис не такой удобный, как с package pagesel
, поэтому решение Вернера с использованием pagesel
before atbegshi
— самый простой способ.
Тем не менее, игнорирование via atbegshi
позволяет делать и более забавные вещи, например, игнорировать страницы, отмеченные ссылкой:
% \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}
В первом запуске ссылка записывается в .aux
файл. Во втором запуске страница со ссылкой затем отбрасывается. Поскольку страница не выводится, ссылка не записывается в файл .aux
, а третий запуск снова записывает ссылку, но включает страницу. Поэтому запуск, который исключает файлы, должен вызывать , \nofiles
чтобы предотвратить изменения вспомогательных файлов.