请考虑以下示例:
\documentclass{article}
\usepackage{lipsum,atbegshi}
\usepackage[2-]{pagesel}% Ignore first page
\begin{document}
\lipsum[1-50]
\end{document}
输出包括来自atbegshi
:
我该如何避免这种情况?
答案1
答案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 的解决方案(使用pagesel
before)atbegshi
是最简单的方法。
尽管如此,通过忽略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
以防止对辅助文件的更改。