为什么数学模式下的零宽度框没有与基线对齐?

为什么数学模式下的零宽度框没有与基线对齐?

我想将方程式标签移到我正在撰写的文章的边缘,并将答案移到定理名称/页边编号完全满足我的要求。下面是一个小例子:

\documentclass{article}

\usepackage{amsmath,amssymb,amsthm}

\makeatletter
\let\mytagform@=\tagform@
\def\tagform@#1{%
    \makebox[1sp][r]{\maketag@@@{(\ignorespaces#1 \unskip \@@italiccorr)}\hspace*{-1in}}%
    }
\renewcommand{\eqref}[1]{\textup{\mytagform@{\ref{#1}}}}
\makeatother

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\begin{equation}
    f(x) = x^2 \label{deepinsight}
\end{equation}

See \ref{deepinsight} for an example.

\end{document}

然而,当我第一次尝试这个时,我使用了一个零宽度的盒子:\makebox[0pt][r]{ ...。这几乎可以工作,但生成的方程标签不再与方程垂直对齐,如下所示:

方程式标签未对齐

经过进一步的调整后,我意识到原来的解决方案是使用\llap这可能是实现此效果的更好方法,但我仍然很好奇为什么零宽度的框与宽度非常小的框的对齐方式不同。感谢您的任何解释或指示!

答案1

零宽度方程编号用作获得特殊处理的标志。在描述方程编号放置的详细规则后,TeXBook 说道:

这些规则的一个结果是,你可以强制方程式编号单独出现在一行上,方法是将其宽度设为零,

相关内容