\newenvironment、\refstepcounter 和 hyperref 的分页符错误

\newenvironment、\refstepcounter 和 hyperref 的分页符错误

我尝试定义一些环境,但有时会遇到糟糕的分页符。最小工作示例如下:

\documentclass[b5paper]{article}
\usepackage{hyperref} % page break is correct when removing this line

\newcounter{question}
\newenvironment{question}{\par\refstepcounter{question}\thequestion. }{}
% page break is correct when changing \refstepcounter to \stepcounter

\begin{document}

\fontsize{40pt}{50pt}\selectfont

\begin{question}111\end{question}
\begin{question}111\end{question}
\begin{question}111\end{question}

\begin{question}
If ... Then ... ( ).\par
(A) 11; (B) 22; (C) 33; (D) 44.
\end{question}

\begin{question}111\end{question}
\begin{question}111\end{question}
\begin{question}111\end{question}
\begin{question}111\end{question}
\begin{question}111\end{question}

\end{document}

删除 hyperref 包或将 \refstepcounter 更改为 \stepcounter 时,分页符是正确的。此示例有什么问题?

答案1

避免在 vmode 中放置特殊内容

\newenvironment{question}{\par\mbox{}\refstepcounter{question}\thequestion. }{}

相关内容