命令 \tiny 等在数学模式下无效,但并非如此

命令 \tiny 等在数学模式下无效,但并非如此

我们知道\tiny,,\scriptsize等是文本字体宏,在数学模式下使用它们时我们会收到通知:

LaTeX 字体警告:命令 \tiny 在输入行的数学模式下无效……

然而,如下面的 MCE 所示,它们看起来是有效的,至少在环境中是有效的equation(缺点是标签方程的大小也会改变)。有趣的是,它们在环境中不起作用equation*

因此,命令 \tiny 等在数学模式下无效,但事实并非如此,不是吗?

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
  \tiny%
  e^{i\pi}+1=0
\end{equation}

\begin{equation}
  e^{i\pi}+1=0
\end{equation}

\begin{equation*}
  \tiny%
 e^{i\pi}+1=0
\end{equation*}
\end{document}

在此处输入图片描述

编辑

这个问题之所以产生,是因为有用户希望cases环境的方程更小。在这种情况下,\scriptstyle\scriptscriptstyle,通常建议在数学模式中使用不同的(较小的)字体,但不起作用,如以下 MCE 所示(顺便说一句,它显示了如何获取正常大小的标签):

\documentclass{article}
\usepackage{kpfonts}
\usepackage{mathtools}
\begin{document}
\begin{equation}
  \tiny%
  \makeatletter
  \renewcommand{\maketag@@@}[1]{\hbox{\m@th\normalsize\normalfont#1}}%
  \makeatother
  \begin{cases}
    e^{i\pi}+1=0
  \end{cases}
  \normalsize
\end{equation}

\begin{equation}
  \scriptstyle%
  \begin{cases}
    e^{i\pi}+1=0
  \end{cases}
\end{equation}

\begin{equation}
  \scriptscriptstyle%
  \begin{cases}
    e^{i\pi}+1=0
  \end{cases}
\end{equation}
\end{document}

在此处输入图片描述

答案1

如果未设置数学字体,LaTeX 会向您尖叫:

LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <> not available
(Font)              size <5> substituted on input line 7.


LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <0.7> not available
(Font)              size <5> substituted on input line 7.

所以基本上什么都没有起作用,但是正如你选择的那样\tiny,并且并不真正希望下标小到不可能读到的事实是它们根本没有设置,而乳胶做了一些合理的事情,因为后备使得输出看起来很合理,但这是运气好,而不是设计好的。

答案2

可以使用框来完成,但基线和中心之间的偏移取决于字体大小。

\documentclass{article}
\usepackage{kpfonts}
\usepackage{mathtools}
\begin{document}
\begin{equation}
x = \begin{cases} e^{i\pi}+1=0 \\  e^{i\pi}+1=0 \end{cases}
\end{equation}

\begin{equation}
x = \raisebox{0.6pt}{\footnotesize $\displaystyle \begin{cases} e^{i\pi}+1=0 \\  e^{i\pi}+1=0 \end{cases} \frac{1}{2}$}
   \frac{1}{2}
\end{equation}

\end{document}

答案3

unicode-math包的\setmathfont命令将字形映射到“每个符号和字母变体”的名称( ,p7(s4)),因此这表明可以通过使用底层包的字体选项texdoc unicode-math,通过传入源字体本身的单点更改大小。fontspecScale=

对缩放系数为 0.5、0.75、1、1.25、1.5、2 和 2.5 进行快速测试,结果如下(放大 100%,蓝色为未缩放):

缩放方程

也许是一个值得探索的选择。

性能:重置 000 个符号等(或任意数量)大约需要 5-8 秒,因此 7 次这样的更改大约需要半分钟。

平均能量损失

\documentclass{article}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmainfont{Tex Gyre Pagella}
\setmathfont{Tex Gyre Pagella Math}[Colour=blue]

\newcommand\smathscale[1][1]{%
\setmathfont{Tex Gyre Pagella Math}[Scale=#1]
}
\newcommand\smathscalea{\smathscale[0.5]}
\newcommand\smathscaleb{\smathscale[0.75]}
\newcommand\smathscalec{\smathscale}
\newcommand\smathscaled{\smathscale[1.25]}
\newcommand\smathscalee{\smathscale[1.5]}
\newcommand\smathscalef{\smathscale[2]}
\newcommand\smathscaleg{\smathscale[2.5]}

\newcommand\testmaths{%
\begin{equation}
  \begin{cases}
    e^{i\pi}+1=0
  \end{cases}
\end{equation}}


\begin{document}
\testmaths
\smathscalea\testmaths
\smathscaleb\testmaths
\smathscalec\testmaths
\smathscaled\testmaths
\smathscalee\testmaths
\smathscalef\testmaths
\smathscaleg\testmaths

\end{document}

相关内容