ams 类中 \hsize 的值在序言中为 0pt

ams 类中 \hsize 的值在序言中为 0pt
\documentclass{amsart}
\showthe\hsize
\begin{document}
...
\end{document}

返回0pt

\documentclass{amsart}
\begin{document}
\showthe\hsize
...
\end{document}

返回360pt。第一种情况是错误吗?我可以想象如果一些包进行如下计算:

\divide\baselineskip by \hsize

然后,就会得到Arithmetic overflow error

答案1

这实际上不是一个错误,而且在很多方面它比设置它的标准类更一致。\hsize不是像这样的文档参数\textwidth;它只是在不同的上下文中具有本地值来控制 TeX 换行符的换行宽度。LaTeX 有意设置了一些东西,使得在序言中开始一个会调用换行符的段落会调用缺失错误\begin{document},因此不设置\hsize为可用值与此一致。

请注意,无论是哪种类别,LaTeX 格式都会忽略\hsize序言中的值,并根据\textwidth列数设置合适的值,同时处理时\begin{document}不会amsart进行任何特殊设置\hsize\begin{document}

相关内容