amsmath 默认是否对齐环境显示样式?

amsmath 默认是否对齐环境显示样式?

环境是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 数学模式。

相关内容