我知道我可以在单个命令前或文档前言中使用 \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}
将得到预期结果。