下划线包在核心和重音之间提供不一致的垂直间距

下划线包在核心和重音之间提供不一致的垂直间距

下面提供了我自己的答案,但您也可以随意添加自己的改进。

\utilde包中的命令在undertilde.sty重音符号和核心之间放置不同量的垂直空间,具体取决于方程式是否在单行环境中排版,(IE、内联数学、equationdisplaymath)或多行环境(IE,,,,及其align相关环境)。gathermultline*-ed

在单行环境中,重音符号被给予适当的空间,但是在多行环境中,重音符号太远了。

下面是一个例子: 下划线间距问题

答案1

我回答我自己,因为我花了一段时间才发现这个问题的原因,而且我认为这对其他人有用。

这是软件包中的一个bug undertilde.sty,解释如下:

*TeX 中的垂直间距由两个粘连和一个维度控制:\baselineskip\lineskip\lineskiplimit

\baselineskip控制从一行的基线到下一行的基线的距离——简单地说,就是从下到下的距离。如果此值相对于排版文本足够小,则行与行之间可能会发生冲突。为了避免这种情况,还监视从上一行的底部到下一行的顶部的距离,如果所需的值\baselineskip导致此从下到上的距离小于\lineskiplimit,则将\lineskip替换为粘连,从而提供绝对的从下到上的行间分离。

命令\utilde通过创建一个与核宽度相同的空框undertilde.sty来创建重音,然后将核和重音空框堆叠在一个命令中。为了实现适当的间距,该包包含以下行:\widetilde\vtop

\baselineskip=1pt\relax

这会缩小重音符和核心之间的间距。但是,此设置会导致行彼此重叠,因此此时\lineskip将改为设置。在单行环境中,我们有\lineskiplimit=0pt\lineskip=1pt,这给出了适当的间距。但是,默认情况下,多行环境中有 和\lineskiplimit=3pt\lineskip=4pt这意味着波浪号与核心之间的距离在多行环境中比在单行环境中多 1/24 英寸。

解决这个问题的方法是更新文件undertilde.sty,将上述行替换为以下内容:

\baselineskip=\z@\relax
\lineskiplimit=\z@\relax
\lineskip=1pt\relax

这将为所有数学环境设置适当的距离。

相关内容