
Является ли 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 для вложенных определений. Забудьте о первом &
на данный момент. \ialign
является инициализированной формой \halign
, примитива TeX для горизонтального выравнивания (он устанавливает межколоночное расстояние равным нулю). Первый столбец имеет спецификацию
\hfil $\m@th\displaystyle{#}$
что означает "выравнивание по правому краю, displaystyle math". Используя обозначение пакета, array
это будет спецификатор столбца в форме
>{$\m@th\displaystyle\bgroup}r<{\egroup$}
Второй столбец содержит
$\m@th\displaystyle{{}#}$\hfil
что означает «выравнивание по левому краю, отображение стиля математики и начало с пустого \mathord
атома» (важно для правильного интервала).
А как насчет первого &
в строке, который я сначала сказал игнорировать? Это конструкция TeX; цитата из TeXBook (стр. 241)
Преамбулы часто имеют периодическую структуру, и если вы поместите дополнительный символ
&
непосредственно перед одним из шаблонов, TeX будет считать преамбулу бесконечной последовательностью, которая начинается снова с отмеченного шаблона при достижении\cr
.
Поэтому эта последовательность выровненных по правому краю и выровненных по левому краю столбцов может повторяться бесконечно. Таким образом, aligned
среда в основном соответствует табличной с повторяющимися rlrlrlrl...
столбцами, все в режиме displaystyle math.