![在 \savebox 中显示数学运算?](https://linux22.com/image/445157/%E5%9C%A8%20%5Csavebox%20%E4%B8%AD%E6%98%BE%E7%A4%BA%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97%EF%BC%9F.png)
根据标题,我正在尝试利用保存框中的显示数学来获取显示数学的宽度:
\documentclass{minimal}
\newsavebox{\mybox}
\sbox{\mybox}{\[ 2 + 2 \]}
\begin{document}
\usebox{\mybox}
\end{document}
但是,此操作失败,并显示“错误的数学环境分隔符”。该如何解决?在这里使用保存框是否错误?
为了获得更多背景信息,我正在尝试自动计算 displaymath 的宽度,以计算displaymath 所需的subtable
(来自包的)宽度。subcaption
array
谢谢大家。
答案1
显示数学像一个段落总是全宽(\hsize
)所以要存储在一个盒子里,你需要使用一个\parbox
,这样它才能容纳垂直材料
\sbox{\mybox}{\parbox{4cm}{\[ 2 + 2 \]}}
可以工作但对于测量宽度的意图没有任何用处,因为它是预先已知的 parbox 的宽度 4cm。
您可以做的是测量数学的自然宽度,并将其设置为显示样式中的内联数学
\sbox{\mybox}{$\displaystyle 2 + 2 $}