环境是aligned
自动的吗\displaystyle
?这个测试似乎表明它是:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\(\begin{aligned}
\int_{0}^{\pi}f(x)dx &= \frac{1}{\pi} \\
\end{aligned}\)
\(\int_{0}^{\pi}f(x)dx = \frac{1}{\pi} \)
\end{document}
此外,还amsmath.sty
包含以下代码:
\newcommand{\start@aligned}[2]{%
\RIfM@\else
\nonmatherr@{\begin{\@currenvir}}%
\fi
\savecolumn@ % Assumption: called inside a group
\alignedspace@left
\if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup
\maxfields@#2\relax
\ifnum\maxfields@>\m@ne
\multiply\maxfields@\tw@
\let\math@cr@@@\math@cr@@@alignedat
\alignsep@\z@skip
\else
\let\math@cr@@@\math@cr@@@aligned
\alignsep@\minalignsep
\fi
\Let@ \chardef\dspbrk@context\@ne
\default@tag
\spread@equation % no-op if already called
\global\column@\z@
\ialign\bgroup
&\column@plus
\hfil
\strut@
$\m@th\displaystyle{##}$%
\tabskip\z@skip
&\column@plus
$\m@th\displaystyle{{}##}$%
\hfil
\tabskip\alignsep@
\crcr
}
不幸的是,我不太懂 tex 黑客,所以我不能确定,但宏定义确实包含\displaystyle
。但是,我无法在文档中找到此信息。第 3 节(amsmath 用户指南)列出了显示的方程式,但aligned
不在其中。
有没有一个好的方法来确定给定的数学环境是否是\displaystyle
?通常,我会假设内联数学默认为不显示,但环境在或aligned
内部使用。\(\)
$$
答案1
代码包含该片段
\ialign\bgroup % spaces before and after & included for clarity
& \hfil$\m@th\displaystyle{#}$ & $\m@th\displaystyle{{}#}$\hfil \crcr
% \____________ ____________/ \_____________ _____________/
% \/ \/
% first column specification second column specification
我删除了很多与主题无关的内容;&
为了清晰起见,我还在 & 符号周围添加了空格,尽管它之前的空格实际上很重要;我用##
一个替换了 ,因为加倍源于 TeX 嵌套定义的常用规则。暂时#
忘记第一个。是 的初始化形式,TeX 水平对齐的原语(它将列间距离设置为零)。第一列具有以下规范&
\ialign
\halign
\hfil $\m@th\displaystyle{#}$
意思是“右对齐,显示样式的数学”。使用包的符号,array
这将是形式为
>{$\m@th\displaystyle\bgroup}r<{\egroup$}
第二列包含
$\m@th\displaystyle{{}#}$\hfil
意思是“左对齐,显示样式数学,并以空\mathord
原子开始”(对于正确的间距很重要)。
那第一&
行中我首先告诉忽略的内容呢?这是一个 TeX 构造;引自 TeXBook(第 241 页)
前导码通常具有周期性结构,并且如果在其中一个模板之前添加一个额外前导码
&
,TeX 会将前导码视为一个无限序列,当\cr
到达时,它会从标记的模板处再次开始。
因此,此右对齐、左对齐列序列可以无限重复。因此,aligned
环境基本上对应于具有重复列的表格rlrlrlrl...
,全部处于 displaystyle 数学模式。