分母中指数的间距不正确

分母中指数的间距不正确

请看下面的代码:

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\Huge

\begin{equation}
\frac{x^{2}}{x^{2}}
\end{equation}

\begin{equation}
x^{2} / x^{2}
\end{equation}

\end{document}

你能看出分母中指数的位置错误吗?将其与平分数进行比较。

示例代码的输出

我真的不知道该怎么做才能获得相同的间距。有什么建议吗?

谢谢。

答案1

在继续阅读之前,请先阅读这个答案。接下来是关于修改 TeX 的行为,以便在原始级别(特别是,不只是对于分数,而且对于所有出现的“拥挤”风格)。

@Mico 说的没错他的评论,即分母的狭窄样式是所有 TeX 引擎内置的非常低级的功能;但它也可以通过相关参数进行配置\fontdimen(因此我不会将其描述为“硬连线”)。这些参数的确切含义在附录 G 中定义TeXbook;具体来说,与这个问题相关的只是规则 18c 的第二句(第 445 页的最后两行),它规定了 TeX 如何选择将“普通”指数(即不太深的指数)应用于“普通”基本符号(例如,单个字符,而不是子公式)时要增加的量。事实证明有三种可能性:

  • 在 中\displaystyle,所选的量是可以称为 的参数的值\fontdimen 13 \textfont 2

  • 在任何“不拥挤”、不展示的风格中,所选择的金额是\fontdimen 14 \<style>font 2

  • 在任何“狭窄”的(展示或非展示)样式中,所选数量为\fontdimen 15 \<style>font 2,但如果是 ,则<style>用 替换。textdisplay

正如其他人已经指出的那样,“拥挤”风格用于分数的分母;但请注意,它们也用于根式、结构\overline以及其他地方。

因此,只需将第 14 个\fontdimen参数的值分配给第 15 个参数,就可以“禁用”实际上的“拥挤”样式,从而使分母中的指数增加与 TeX 通常用于分子中指数的量相同的量;也就是说,与@Mico 的解决方案完全相反,后者也强制分子采用“拥挤”的样式。

然而,也存在一些注意事项。

  1. 首先,\fontdimen参数的改变不是遵守 TeX 分组规则:其范围是总是全球的 (TeXbook,第 277 页)。这意味着,如果您想撤消它们,您需要“手动”保存原始值。

  2. 其次,每个\fontdimen更改都应重复三次(每种风格一次,即针对\textfont 2\scriptfont 2\scriptscript 2),除非您只想对某些风格禁用“crampedness”而不对其他风格禁用:例如,为了仅为\textstyle和 禁用“crampedness” \scriptstyle,但不为 禁用\scriptscriptstyle,您可以更改 \fontdimen 15 \textfont 2\fontdimen 15 \scriptfont 2,但不要\fontdimen 15 \scriptscriptfont 2

  3. 反过来,对于排版公式的所有大小(\normalsize\footnotesize,...),必须重复这三重设置,因为一般来说,对应于 的字体 \textfont 2与对应于的\normalsize字体不同。\textfont 2\footnotesize

  4. 如果您决定抑制“crampedness”,那么抑制“displayedness”似乎也是明智之举,也就是说,赋予与相同的值 \fontdimen 14\fontdimen 13参见上文)。

以下代码给出了一种“概念证明”。它定义了两个声明,两者都是不可逆的:

  • \LeveledExponentsForCurrentSize仅抑制当前字体大小的“拥挤度”和“显示度”(但一直到\scriptscriptstyle);

  • \LeveledExponentsForAllSizes抑制所有的“拥挤感”和“显眼感”标准LaTeX 尺寸;但请注意,这将加载大量数学字体,其中大多数您永远不会使用,这可能会导致您达到某些引擎(主要是 pdfTeX)中可加载字体数量的限制。

正如前面提到的,代码没有提供保存原始值的功能,因此无法恢复到原始设置。不过,这并不难实现。

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\makeatletter

\newcommand*\@level@exponents@for@font[1]{%
    \fontdimen 13 #1\tw@ \fontdimen 14 #1\tw@
    \fontdimen 15 #1\tw@ \fontdimen 14 #1\tw@
}
\newcommand*\@level@exponents@for@size[1]{%
    \begingroup
        #1% set font size
        \setbox\z@ \hbox{$$}% activate math font for that size
        \@level@exponents@for@font \textfont
        \@level@exponents@for@font \scriptfont
        \@level@exponents@for@font \scriptscriptfont
    \endgroup
}
\newcommand*\LeveledExponentsForCurrentSize{%
    \@level@exponents@for@size \@currsize
}
\newcommand*\LeveledExponentsForAllSizes{%
    \@level@exponents@for@size \tiny
    \@level@exponents@for@size \scriptsize
    \@level@exponents@for@size \footnotesize
    \@level@exponents@for@size \small
    \@level@exponents@for@size \normalsize
    \@level@exponents@for@size \large
    \@level@exponents@for@size \Large
    \@level@exponents@for@size \LARGE
    \@level@exponents@for@size \huge
    \@level@exponents@for@size \Huge
}



\begin{document}

\Huge

Compare $x^{2}$ with $\overline{x^{2}}$.
In display, three placements are possible:
\[x^{2}|{\textstyle x^{2}}|\overline{x^{2}}\]

As @Mico suggests, let's show fractions too, both in display, as in
\[\frac{x^{2}}{x^{2}}\ne x^{2},\]
and inline: \( \frac{x^{2}}{x^{2}}\ne x^{2} \).

\LeveledExponentsForCurrentSize

Now compare them again: \( x^{2}|\overline{x^{2}} \).
Now in display:
\[x^{2}|{\textstyle x^{2}}|\overline{x^{2}}\]
And the fractions, displayed
\[\frac{x^{2}}{x^{2}}\ne x^{2},\]
and inline: \( \frac{x^{2}}{x^{2}}\ne x^{2} \).

\end{document}

为了您的方便,这里是结果输出:

上述代码的输出

答案2

要强制在分子和分母的指数上使用所谓的“狭窄”样式,请对分子中的项使用\cramped宏(由包提供)。(“狭窄样式对分母自动生效。”)mathtools

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools} % for "\cramped" macro
\begin{document}
$\displaystyle\frac{x^2+\cramped{x^2}}{x^2} $
\end{document}

答案3

我倾向于选择一种在其他地方没有副作用的方法。这消除了 gustavo mezzetti 描述的(最出色!)方法。并且由于强制使用“拥挤”风格并不是所要求的(并且会产生副作用,即如果修改的对象靠近同时具有下标和上标的变量),对齐将不一致。

仅对上标位置进行操作的方法是插入幻像下标。这会将上标上推至几乎正常的、内联变量上的上标的级别。为了方便起见,可以像这里一样,将其制成命令。幻影物体应该具有良好的高度而没有深度;数字或大写“X”通常是一个不错的选择。

\documentclass{article}
\newcommand{\matchsupheight}{_{\vphantom{0}}}
\begin{document}

\begin{equation}
x^{2} / x^{2}
\end{equation}

\begin{equation}
\frac{x^{2}}{x^{2}} \quad \frac{x^{2}}{x\matchsupheight^{2}}
\end{equation}

\end{document}

示例代码的输出

相关内容