内联数学运算弄乱了垂直间距

内联数学运算弄乱了垂直间距

当我在段落中使用数学符号时,间距经常会变得很宽。当我使用指数或“选择”符号(用于组合)时,这种情况尤其常见。

下面是最小工作示例。如果使用其他设置且字体和字体大小不同,问题可能会更加严重。

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-3] There are $|A|={N \choose k}^2$ different options. \lipsum[1][1-3]
\end{document}

外观:

带有不同字体大小的段落数学公式

答案1

我建议你熟悉smallmatrix一下数学包裹。

创建一个专用宏(\smallchoose在以下示例中称为)很简单,该宏基于smallmatrix环境来排版一个沿垂直轴明显小于{N \choose k}或 的表达式\binom{N}{k}。实际上, 的结果$\smallchoose{N}{k}^2$非常小,以至于不再影响行距。

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}    % filler text
\usepackage{amsmath} % for 'smallmatrix' env.
\newcommand\smallchoose[2]{%
   \bigl(\!\begin{smallmatrix}#1\\#2\end{smallmatrix}\!\bigr){}}

\begin{document}

${N\choose k}^2$ $\binom{N}{k}^2$ $\smallchoose{N}{k}^2$

\bigskip
\lipsum[1][1-3] 
There are $|A|={N \choose k}^2$ different options. 
\lipsum[1][1-3]

\medskip
\lipsum[1][1-3] 
There are $|A|=\smallchoose{N}{k}^2$ different options. 
\lipsum[1][1-3]
\end{document}

答案2

仅就历史背景而言,我注意到我的副本数学的印刷,(牛津大学出版社,1954 年)有关于二项式系数的这段话:

在此处输入图片描述

如果我将其渲染到 LaTeX 中,您会发现布局比 OUP 在 1954 年管理的布局要好得多。

\documentclass{article}
\usepackage{amsmath}
\usepackage[textwidth=324pt]{geometry}
\begin{document}
\textit{Binomial coefficients} are now usually written with the notation $\binom{n}{r}$, 
though this, as here, breaks the line awkwardly when it appears in the 
text, as it may well do in enumerating the number of members in a set.
If this symbol is printed with $5\frac12$-point letters as $\scriptstyle\binom{n}{r}$, it is less quickly read,
especially with a more elaborate form such as $\scriptstyle\binom{mn+p-1}{n}$. The older forms
${}^nC_r$, $C^n_r$, which still survive, also have this disability and wastefully add
the intrusive $C$.  It is sugested that the symbol $(n\mathbin{!}r)$, which has been
used, might be tried more frequently.
\end{document}

在此处输入图片描述

我非常喜欢(n!r),但我不确定它是否会流行。

答案3

您得到了很多不错的 LaTeX 答案,希望能够解决您的问题。让我给您一个在 ConTeXt 中处理此问题的可能方法(部分是新的,正在进行调整)。(它不会有帮助在这种情况下,但另一个 TeX.SE 用户要求我在这里添加它。也许在不久的将来我们会在 LaTeX 中看到类似的东西?也许它会对其他人有所帮助?)

正如其他人指出的那样,通常在需要时会在行间添加额外的空间,因为顶行的深度太大和/或底行的高度太大。在您的示例中,主要问题是上标 2 的位置较高(正如您将看到的,它在 ConTeXt 中的位置较低,可能是由于其他字体参数设置)。

现在,上面描述的标准模型在决定是否在行间添加一些额外的跳跃时会考虑整行。有了所谓的分析我们采取局部行动,看看是否真的存在冲突。在您的示例中,上标 2 上方没有任何具有深度的内容,因此原则上这些线可以靠得很近。让我们通过一个例子来看一下它的实际作用:

有或没有剖析,有助手

顶部段落未设置剖析。这些行借助 来显示\showmakeup[line]。在第二个示例中,剖析通过 开启\setupalign[profile]。我们还使用助手(通过 启用\enabletrackers[profiling.lines.show])来显示它被激活的位置。如您所见,带有“有问题的”上标 2 的行上方的所有额外空间都消失了。在下面的行中它没有消失,因为这意味着二项式中的左括号太靠近下面一行的大写字母 I。让我们看看没有助手时它是什么样子:

有或没有分析,没有助手

这种机制当然会给编译增加一些开销,但事实证明这是可以忽略不计的(原因之一是它只需要检查添加了额外跳过的行,而且通常不会太多。)可以使用来配置分析(数量和粒度)\setuplineprofile

答案4

如果您的文档中有许多这样的对象,我会考虑增加行间空间。

然而,对于特殊情况,指数会造成阻碍,因此我建议降低它。

\documentclass{article}
\usepackage{amsmath}
\usepackage{lipsum}

\makeatletter
\NewDocumentCommand{\Tbinom}{mme{^}}{%
  \IfNoValueTF{#3}{\tbinom{#1}{#2}}{%
    \begingroup
    \sbox\z@{$\m@th\tbinom{#1}{#2}$}%
    \usebox{\z@}\raisebox{\dimexpr\ht\z@-\height}{$\m@th^{\mkern-1mu #3}$}%
    \endgroup
  }%
}
\makeatother

\begin{document}

\lipsum[1][1-3] There are $|A|=\Tbinom{N}{k}^{2}$ different options. \lipsum[1][1-3]

\end{document}

在此处输入图片描述

相同,但与\linespread{1.05}之前相同\begin{document}

在此处输入图片描述

相关内容