控制 \displaystyle 的范围

控制 \displaystyle 的范围

我知道我可以在单个命令前或文档前言中使用 \displaystyle。这两者之间有什么区别吗?具体来说,我可以将所有内容放在给定的环境在 displaystyle 中,无需单独标记每个命令或将范围扩展到整个文档?

例如,

\begin{myenvironment}[display]
    & y = f(x) \\
    & x = \frac{1}{2}
\end{myenvironment}

达到同样的效果

\begin{tabular}
    & \displaystyle y = f(x) \\
    & \displaystyle x = \frac{1}{2}
\end{tabular}

答案1

您所说的可以\displaystyle在命令前面使用的说法是误导性的,它不会(仅仅)适用于该命令,而是适用于当前组的其余部分。同样,您不能在序言中使用它(除了稍后在数学模式中使用的定义)。

您的tabular示例会出现错误,因为表格单元格是文本,所以\frac会出现错误。

加载包后array你可以使用

\begin{array}{>{\displaystyle}c>{\displaystyle}c}
 a & b
\end{array}

在显示样式中设置两列,但您几乎永远不应该这样做。array用于设置矩阵和数组,单元格最好设置为文本样式。您示例中的方程式最好在\displaystyle默认使用的显示数学环境中设置,例如align来自amsmath

\begin{align}
   y &= f(x) \\
   x &= \frac{1}{2}
\end{align}

答案2

这个问题的前提存在缺陷:\displaystyle 不能在文档的序言中使用(或者在数学模式之外使用,\displaystyle $\frac12$将会出现错误)。

也就是说,我们可以\displaystyle通过编写来强制执行所有数学运算\everymath{\displaystyle},这将为我们提供将后续数学运算放入的预期结果\displaystyle。现在,如果我们想限制这个范围,我们可以使用 TeX 的概念群组来限制它。数学环境有一个隐式组,这就是为什么如果我$\displaystyle\frac 12$ $\frac 34$只写第一个分数,它将以显示样式显示。最简单的组由括号强制执行,例如,我可以写

{\everymath{\displaystyle} $\frac 12$ $\frac34$} $\frac56$

前两个分数将采用显示样式,而最后一个分数则不会。

组发挥作用的另一个地方是环境。环境的内容周围有一个组,因此,如果我写,例如,

\begin{quotation}
\everymath{\displaystyle}
$\frac12$
\end{quotation}

$\frac34$

只有引号内的分数才会采用显示样式。当然,您可以将命令合并\everymath到环境定义中:

\newenvironment{quotationwithdisplaymath}{\everymath{\displaystyle}\begin{quotation}}{\end{quotation}}

然后您就可以使用quotationwithdisplaymath如上所述的环境。

为什么我要把 放在\everymath前面\begin{quotation}?因为在其他地方,组会默默出现,最明显的是 或其他对齐环境的每个单元tabular都是array自己的组。因此,如果我写,例如,

\newenvironment{myfancytab}{\begin{tabular}{cc}\everymath{\displaystyle}}{\end{tabular}}

然后

\begin{myfancytab}
  $\frac12$&$\frac34$
\end{myfancytab}

只有第一个分数会采用显示样式。移动\everymath前面的分数\begin{tabular}将得到预期结果。

相关内容