atbegshi 警告が出力の一部として印刷される

atbegshi 警告が出力の一部として印刷される

次の例を考えてみましょう。

\documentclass{article}
\usepackage{lipsum,atbegshi}
\usepackage[2-]{pagesel}% Ignore first page
\begin{document}
\lipsum[1-50]
\end{document}

出力には、atbegshi:

ここに画像の説明を入力してください

これを避けるにはどうしたらいいでしょうか?

答え1

これは、破棄されたページごとに発生します。

pagesel指定した包含基準に応じてページを破棄します。ページが除外されると、出荷ボックスが無効になり、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 ほど快適ではないので、 beforepageselを使用する Werner のソリューションが最も簡単な方法です。pageselatbegshi

それでも、無視経由を使用すると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。2 回目の実行では、参照を含むページが破棄されます。ページは出力されないため、参照はファイルに書き込まれず、3 回目の実行では参照が再度書き込まれますが、ページが含まれます。したがって、ファイルを除外する実行では、補助ファイルの変更を防ぐために を.aux呼び出す必要があります。\nofiles

関連情報