![下划线包在核心和重音之间提供不一致的垂直间距](https://linux22.com/image/252279/%E4%B8%8B%E5%88%92%E7%BA%BF%E5%8C%85%E5%9C%A8%E6%A0%B8%E5%BF%83%E5%92%8C%E9%87%8D%E9%9F%B3%E4%B9%8B%E9%97%B4%E6%8F%90%E4%BE%9B%E4%B8%8D%E4%B8%80%E8%87%B4%E7%9A%84%E5%9E%82%E7%9B%B4%E9%97%B4%E8%B7%9D.png)
下面提供了我自己的答案,但您也可以随意添加自己的改进。
\utilde
包中的命令在undertilde.sty
重音符号和核心之间放置不同量的垂直空间,具体取决于方程式是否在单行环境中排版,(IE、内联数学、equation
或displaymath
)或多行环境(IE,,,,及其align
相关环境)。gather
multline
*-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
这将为所有数学环境设置适当的距离。