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 那麼舒適pagesel,因此 Werner 的使用pageselbefore的解決方案atbegshi是最簡單的方法。

然而,忽略 viaatbegshi允許更有趣的事情,例如忽略由引用標記的頁面:

% \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以防止對輔助檔案進行更改。

相關內容