请考虑以下示例:
\documentclass[varwidth]{standalone}
\begin{document}
\begin{equation}
x
\end{equation}
\end{document}
使用 进行编译pdftex
,我得到:
使用 进行编译luatex
,我得到:
是我遗漏了什么还是这是一个错误?
附注一下,上面的图像是根据手册中所述的类别convert
选项生成的:standalone
\documentclass[varwidth,convert={size=640}]{standalone}
奇怪的是,Imagemagickconvert
产生的结果与我的查看器中看到的结果完全相反pdf
(即上面的图片显示了输出发生的情况pdftex
,luatex
convert
反之亦然)。
答案1
varwidth 的工作原理是将所有内容放入一个盒子(一个小页面),然后移除外壳,并测量内容的宽度。
问题在于,该公式为 pdflatex 和 lualatex 给出了不同的宽度。编译此文件,然后检查日志文件(\eqno
是打印数字的原语):
\documentclass{article}
\begin{document}
\setbox0=\vbox{$$ x \eqno{x} $$}
\showoutput\showbox0
\end{document}
使用 pdflatex 显示数学给出这个 hbox:
.\hbox(4.30554+0.0)x175.35764, shifted 169.64236
这是一个相当小的框,向右移动。当 varwidth 测量内容时,这种移动会消失。
使用 lualatex(我使用 0.95 进行测试)可以得到
.\hbox(4.30554+0.0)x345.0, direction TLT
..\kern169.64236
这是一个较大的盒子,里面有一个字粒,不会丢失。
因此,问题在于引擎级别对数字显示数学的不同处理。我怀疑 luatex 维护者会改变这一点,而 varwidth 在我看来没有机会删除额外的空间。因此,如果您想要相同的输出,则必须避免使用编号方程式...