为什么(例如) \strutbox 和包含此 \strutbox 的(expl3) \vbox_set:Nn 框的高度不一样?

为什么(例如) \strutbox 和包含此 \strutbox 的(expl3) \vbox_set:Nn 框的高度不一样?

如下面的 MCE 所示,a和包含 this 的\strutbox( expl3)框的高度不一样。为什么?\vbox_set:Nn\strutbox

\documentclass{article}
\begin{document}
\ExplSyntaxOn

\vbox_set:Nn \l_tmpa_box { \strutbox }

The~ height~ of
\begin{itemize}
\item \verb|\strutbox|~ is:~ \dim_use:N \box_ht:N \strutbox
\item \verb|\l_tmpa_box|~ is:~ \dim_use:N \box_ht:N \l_tmpa_box
\end{itemize}

\ExplSyntaxOff
\end{document}

答案1

(这与盒子无关expl3,所以这个答案使用普通的 TeX 盒子语法。)

在正常设置下,\strutbox只是一个巧妙存储的整数,\meaning该宏的值为:

\strutbox:
\char"B

因此,如果您使用的情况\setbox\mybox\vbox{\strutbox}与您使用的情况相同\setbox\mybox\vbox{\char"B}(因此这会从插槽 11 打印字符,在 Computer Modern 中这是 -ligature ff)。

如果您想插入\strutbox,您可以使用\copy\strutbox\unhcopy\strutbox(后者\strut在文本模式下由宏使用,前者在数学模式下使用)。

当您执行时,这与(因此盒子寄存器 11 的高度)\the\ht\strutbox相同,但是当您执行时,您将其与字符槽 11 的高度进行比较,而不是与 的高度进行比较。\the\ht11\setbox\mybox\vbox{\strutbox}\strutbox

简短地回答一下:用于\strut插入支柱。

相关内容