为什么 \everymath{\scriptsize} 仅适用于矩阵环境?

为什么 \everymath{\scriptsize} 仅适用于矩阵环境?

{align*}由于矩阵太宽,我需要在环境中创建一个方程,使其字体非常小。因此我使用这种方法,可以在如何改变数学方程式中的字体大小

\begingroup
  \everymath{\scriptsize}
  \scriptsize
    \begin{bmatrix}
       .... very wide matrix here..
    \end{bmatrix}
 \endgroup

这总是有效,即使我LaTeX Font Warning: Command \scriptsize invalid in math mode on input line ....总是看到。所以我忽略了这些,因为它有效,并且它确实使其成为脚本大小的字体。

但是现在我在普通数学(即非矩阵环境)上尝试了它,它没有效果,并且数学大小没有改变。

我想问为什么它适用于bmatrix普通数学,而不适用于普通数学。这是一个 MWE

\documentclass[11pt]{article}%
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{align*}
T   &  =
 \begingroup
  \everymath{\scriptsize}
  \scriptsize
    \begin{bmatrix}
       \cos(x)    %this works, i.e. the font becomes scriptsize
    \end{bmatrix}
 \endgroup
\\
   &  =
    \begin{bmatrix}
       \cos(x)    %this is to compare size with the above
    \end{bmatrix}
\\
   & =
 \begingroup
  \everymath{\scriptsize}
  \scriptsize
      \cos(x)    %this does not work, font size does not change!
\endgroup
\end{align*}
\end{document}

这是 pdf

Mathematica 图形

我们可以看到它在第一种情况下确实有效,但对普通数学无效。请注意,我需要更改大型align环境中的一个方程。而不是整个对齐的环境。所以这就是我使用这种方法的原因,因为我不知道其他方法可以做到这一点。

答案1

首先,\everymath={\scriptsize}是错误的。它以某种方式工作,但有警告。因此,打开一个,\hbox它会让您退出数学模式,选择\scriptsize,在中打开一个公式\displaystyle,最后关闭公式和框。

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{mathtools}

\newenvironment{reduce}
 {\hbox\bgroup\scriptsize$\displaystyle}
 {$\egroup}


\begin{document}
\begin{align*}
T   &  =
 \begin{reduce}
    \begin{bmatrix}
       \cos(x)    %this works, i.e. the font becomes scriptsize
    \end{bmatrix}
 \end{reduce}
\\
   &  =
    \begin{bmatrix}
       \cos(x)    %this is to compare size with the above
    \end{bmatrix}
\\
   & =
 \begin{reduce}
      \cos(x)    %this does not work, font size does not change!
 \end{reduce}
\end{align*}
\end{document}

在此处输入图片描述

相关内容