amsmath 中 \sin 与 \tan 的高度

amsmath 中 \sin 与 \tan 的高度

我知道这个问题\sin这解释了和之间的区别\cos,因为 中的字母“i”不同\sin。但是,出于好奇,我不明白为什么\tan不像 那样在以下 MWE 中处理\sin。毕竟,“t”的高度与“i”大致相同,不是吗?此外,我只在 中看到这种情况amsmath

\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
$\frac{\sqrt{a^2+4b^2\sin^2\alpha}}{2}$\quad\quad
$\frac{\sqrt{a^2+4b^2\cos^2\alpha}}{2}$\quad\quad
$\frac{\sqrt{a^2+4b^2\tan^2\alpha}}{2}$
\end{document}

在此处输入图片描述

答案1

\sin^2您会注意到 中的指数比 中的高一点\tan^2,而 中的指数又比 中的高一点a^2。 的高度i大于 的高度t,但只在一定程度上影响了拥挤字体中上标的位置。

\documentclass[12pt]{article}
\usepackage{mathtools}

\newcommand{\two}{2\rlap{\vrule height 0pt depth 0.1pt width 3cm}}

\begin{document}

\begin{gather*}
a^{\two} \tan^{\two} \sin^{\two} \\
\cramped{a^{\two} \tan^{\two} \sin^{\two}} \\
\textstyle a^{\two} \tan^{\two} \sin^{\two} \\
\textstyle \cramped{a^{\two} \tan^{\two} \sin^{\two}}
\end{gather*}

\end{document}

在此处输入图片描述

平方根下的数学材料以拥挤的风格排版,您可以在图像中看到高度的差异。

解决方法,当您有大量三角函数时非常有用:

\documentclass[12pt]{article}
\usepackage{amsmath,mathtools}

\let\sin\relax
\let\tan\relax
\DeclareMathOperator{\sin}{\vphantom{x}\smash{\mathrm{sin}}}
\DeclareMathOperator{\tan}{\vphantom{x}\smash{\mathrm{tan}}}

\newcommand{\two}{2\rlap{\vrule height 0pt depth 0.1pt width 3cm}}

\begin{document}

\begin{gather*}
a^{\two} \tan^{\two} \sin^{\two} \\
\cramped{a^{\two} \tan^{\two} \sin^{\two}} \\
\textstyle a^{\two} \tan^{\two} \sin^{\two} \\
\textstyle \cramped{a^{\two} \tan^{\two} \sin^{\two}}
\end{gather*}

\begin{center}
$\frac{\sqrt{a^2+4b^2\sin^2\alpha}}{2}$\quad
$\frac{\sqrt{a^2+4b^2\cos^2\alpha}}{2}$\quad
$\frac{\sqrt{a^2+4b^2\tan^2\alpha}}{2}$
\end{center}
\[
\frac{\sqrt{a^2+4b^2\sin^2\alpha}}{2}\quad
\frac{\sqrt{a^2+4b^2\cos^2\alpha}}{2}\quad
\frac{\sqrt{a^2+4b^2\tan^2\alpha}}{2}
\]

\end{document}

在此处输入图片描述

答案2

您已经知道如何解决这个问题,所以让我再详细阐述一下。(对于评论来说,这太长了。)

这是一个很好的例子,其中有几件事同时发生。

  • 部首有各种不同的大小,因此随着内容的增加,必须有离散的跳跃。
  • i 和 t 的高度略有不同。这使得 上的上标 2sin比 上的上标 2 略高tan,而 上的上标 2 又比 上的上标 2 略高cos
  • 奇怪的是,当删除 + 时,效果就消失了。我最初以为这可能是因为 + 的深度,但令人惊讶的是,如果将加号改为减号(深度不大!),效果仍然存在。我对此没有很好的解释。
  • tan根据是否加载,结果(部分)会有所不同amsmath。我不知道为什么。
  • 有人可能会争辩说(正如芭芭拉在另一个答案的评论中所说的那样),b 上的正方形至少应该与 上的正方形一样高sin,这就是事情开始变得有趣的地方。这里发生的事情是,上标的实现方式不同,这取决于它们是位于字符上还是位于某种构造上。代码路径完全不同。为了强调这一点,这里有两个大正方形(哈哈!)平方左边的方块充当一个字符,把 2 放在某个位置固定的高度。第二个不充当字符,因此 2 位于相应位置。第一个模型用于字符,第二个模型用于大括号等。

偶然间,我和 Hans Hagen 讨论了这个问题,由于我们最近经常讨论数学,所以我们很好奇。我们花了一段时间才弄清楚问题到底是什么原因造成的,但一旦我们找到了原因,由于原子类的开放,修复就非常接近了。我们有一个特定的函数原子类,从今天开始(在 luametatex 中)有一个类选项single,告诉原子在这个意义上表现得像一个字形。所以上面的两个黑色方块被设置为

$\mathatom single class \mathordinarycode {\vrule height 1cm depth 0pt width 1cm}^2$ \quad
$\mathatom class \mathordinarycode {\vrule height 1cm depth 0pt width 1cm}^2$

同时,这个新选项single也被添加到了定义数学函数的具体构造中。这意味着,当我们现在输入

$\frac{ \sqrt{ a^2 + 4b^2 \sin^2 \alpha} }{2}$\quad
$\frac{ \sqrt{ a^2 + 4b^2 \cos^2 \alpha} }{2}$\quad
$\frac{ \sqrt{ a^2 + 4b^2 \tan^2 \alpha} }{2}$

我们在 ConTeXt 中得到(在下一个版本中)

根式三角公式

相关内容