
Betrachten Sie das folgende Beispiel:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\usepackage[2-]{pagesel}% Ignore first page
\begin{document}
\lipsum[1-50]
\end{document}
Die Ausgabe enthält eine Warnung vonatbegshi
:
Wie kann ich das vermeiden?
Antwort1
Dies geschieht nach jeder verworfenen Seite.
pagesel
verwirft Seiten je nach den von Ihnen angegebenen Einschlusskriterien. Wenn eine Seite ausgeschlossen wird, wird die Versandbox ungültig, was verwirrtatbegshi
.
Um dies zu vermeiden, ändern Sie die Ladereihenfolge, ladenatbegshi
nach pagesel
:
\documentclass{article}
\usepackage[2-]{pagesel}
\usepackage{lipsum,atbegshi}
\begin{document}
\lipsum[1-50]
\end{document}
Antwort2
Ergänzungen zu WernersAntwort.
Das Paket verfügt auch atbegshi
über eine Funktion zum „Verwerfen von Seiten“. Beispielsweise kann die erste Seite folgendermaßen ignoriert werden:
\documentclass{article}
\usepackage{lipsum,atbegshi}
% \usepackage[2-]{pagesel}% Ignore first page
\AtBeginShipoutNext{\AtBeginShipoutDiscard}
\begin{document}
\lipsum[1-50]
\end{document}
Oder alle geraden Seiten ignorieren:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\AtBeginShipout{%
\ifodd\value{page}%
\else
\AtBeginShipoutDiscard
\fi
}
\begin{document}
\lipsum[1-50]
\end{document}
Natürlich ist die Syntax nicht so komfortabel wie bei package pagesel
, daher ist Werners Lösung mit der Verwendung von pagesel
before atbegshi
der einfachste Weg.
Das Ignorieren über erlaubt allerdings auch atbegshi
witzigere Dinge, wie das Ignorieren von Seiten, die durch einen Verweis gekennzeichnet sind:
% \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}
Im ersten Durchlauf wird die Referenz in die .aux
Datei geschrieben. Im zweiten Durchlauf wird dann die Seite mit der Referenz verworfen. Da die Seite nicht ausgegeben wird, wird die Referenz auch nicht in die .aux
Datei geschrieben und ein dritter Durchlauf schreibt die Referenz erneut, schließt die Seite aber mit ein. Daher sollte der Durchlauf, der Dateien ausschließt, aufgerufen werden, \nofiles
um Änderungen an den Hilfsdateien zu verhindern.