我的论文中,有很多内联方程式,带有大量的上标和下标。两行之间通常没有间距。
下面是一个示例,该示例既可以出现在正文,标题中,也可以出现在算法浮点中。示例中的数学写得可能不是很好,但这个问题的重点是如何保证两行之间有一定的间距。
\documentclass{IEEEtran}
\usepackage{algorithm}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodss
$a_{\frac{f+b}{p+1}}$
tempor incididunt ut labore et dolore magna aliqasd a
$a^{\frac{1}{n+1}}$
proident, sunt in culpa qui officia
\begin{figure}
\caption{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodss
$a_{\frac{f+b}{p+1}}$
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
$a^{\frac{f+b}{p+1}}$
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.}
\end{figure}
\begin{algorithm}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodss
$a_{\frac{f+b}{p+1}}$
tempor incididunt ut labore et dolore magna aliqua
$a^{\frac{1}{n+1}}$
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{algorithm}
\end{document}
我的要求是保证两行之间的间距不小于一定的长度,比如1pt
。我目前的做法是将\lineskip
、\normallineskip
和设置\lineskiplimit
为。\normallineskiplimit
1pt
\ExplSyntaxOn
\clist_map_inline:nn
{ \lineskip, \normallineskip, \lineskiplimit, \normallineskiplimit }
{ \setlength { #1 } { 1pt } }
\ExplSyntaxOff
我有两个问题:
我想问一下我的做法是否有副作用。我在 tex.sx 上搜索并找到了一些答案,但我担心这可能会对某些领域产生负面影响。
当我阅读的源代码时,
IEEEtran.cls
我发现这些被设置为0pt
,而\lineskip
和\normallineskip
是1pt
,\lineskiplimit
和\normallineskiplimit
在。为什么的作者这样设计呢。0pt
article.cls
IEEEtran.cls
% if things get too close, go ahead and let them touch
\lineskip 0pt
\normallineskip 0pt
\lineskiplimit 0pt
\normallineskiplimit 0pt
答案1
也可以看看https://tex.stackexchange.com/a/549219
latex 中的默认值(从 plain 继承)稍微奇怪,\lineskiplimit
是 0pt,所以线可以任意接近,但是\lineskip
是 1pt,所以如果达到 0pt 就会不连续并插入 1pt 的跳线。
将它们全部设为 0pt(正如您向 ieee 展示的那样)或全部设为 1pt(正如您建议的那样)会更加一致。
请注意,即使是很小的负值也\lineskiplimit
不会(平均而言)导致过度打印,因为它们只允许较高的项目某处在一条线上重叠较大的深度某处在上面的行上,因此您可以选择保持基线间距,但请在日志中检查这一点,并在必要时调整措辞。
注意,印刷工(和字体)会尽力保持基线均匀,因此任何使用\lineskip
本质上是一种失败。这就是为什么内联数学将极限设置为下标,使用更狭窄的上标,更小的积分符号……所以你可以通过调整符号来避免这个问题,也许使用a/b
而不是\frac{a}{b}
下标。