在内部垂直模式下使用 \end

在内部垂直模式下使用 \end

请问我该如何不惜一切代价阻止以下情况?注意:\leavevmode没有救援。

\documentclass[crop]{standalone}
\def\z#1#2{%
  \ifnum#1<\numexpr#2+1\relax
    \noindent\hfill#1%
    \ifnum#1=#2\relax
      \hfill\null\endgraf
    \else
      \ifdefined\xz
        \hfill\number\numexpr#1+1\hfill\null\endgraf
      \else
        \let\xz\relax\hfill\null\endgraf
      \fi
    \fi
    \expandafter\z\expandafter{\number\numexpr#1+2\expandafter}%
    \expandafter{\number#2\expandafter}%
  \fi
}
\begin{document}
\z19
\stop
\end{document} 

在此处输入图片描述

答案1

使用标准设置,standalone类使用一个\hbox来工作。如果你添加

\showthe\currentgrouplevel
\showthe\currentgrouptype

之前\stop:报告的值是组级别 1 和组类型 2(“hbox 组”)。您根本无法\end在框内使用原语并期望一切顺利。此外,即使您使用 e-TeX 扩展测试框,关闭它也无济于事,因为内容会消失,因为您没有输出。因此,对于像类这样的复杂设置,standalone您确实必须在界面方面“遵守规则”,或者自己编写所有内容。

相关内容