Использует ли «array» меньший шрифт в уравнении по сравнению с «alignedat» или «aligned» в LaTeX?

Использует ли «array» меньший шрифт в уравнении по сравнению с «alignedat» или «aligned» в LaTeX?

Иногда удобнее использовать arrayдля выравнивания чего-либо в уравнениях в LaTeX. Однако, arrayотображает более мелкий шрифт по сравнению с alignedatили aligned.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
    \left.
    \begin{alignedat}{10}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{alignedat}
    \right\}
\end{equation} 
\begin{equation}
    \left.
        \begin{aligned}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
        \end{aligned}
    \right\}
\end{equation}
\begin{equation}
    \left.
    \begin{array}{r@{\:}c@{\:}l}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{array}
    \right\}
\end{equation}
\end{document}

введите описание изображения здесь

Итак, как сделать шрифт arrayкрупнее?

решение1

Окружающая среда arrayиспользует \textstyle, пока equationиспользуют \displaystyle. Вам нужно заставить \displaystyleкаждую клетку.

Определение столбцов таблицы LaTeX расширеномножествопакет. В частности, >{<something>}положить<something> перед содержимым каждой ячейки в следующем столбце.

В вашем примере у вас есть два столбца. \displaystyleнужен только для второго. Используйте:

\begin{array}{@{} r @{\;} >{\displaystyle} l @{}}

(Я исправил пробелы благодаря комментариям Мико).

При необходимости определите новый модификатор типа столбца, например

\newcolumntype{D}[1]{>{\displaystyle} #1}

и использовать @{} r @{\;} D{l} @{}как табличную спецификацию (или определить три новых типа столбцов \newcolumntype{C}{>{\displaystyle} c}, \newcolumntype{L}{>{\displaystyle} l}, \newcolumntype{R}{>{\displaystyle} r}).

Полный пример:

\documentclass{article}
\usepackage{array}

\usepackage{amsmath}

\newcolumntype{D}[1]{>{\displaystyle} #1}

\begin{document}
\begin{equation}
    \left.
    \begin{alignedat}{10}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{alignedat}
    \right\}
\end{equation}
\begin{equation}
    \left.
        \begin{aligned}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
        \end{aligned}
    \right\}
\end{equation}
\begin{equation}
    \left.
    \begin{array}{@{} D{r} @{\;} D{l} @{}}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{array}
    \right\}
\end{equation}
\end{document}

полный пример

В качестве альтернативы вы можете попробовать современный пакеттабличныймассив:

\documentclass{article}

\usepackage{tabularray}
\usepackage{amsmath}

\begin{document}
\begin{equation}
    \left.
    \begin{alignedat}{10}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{alignedat}
    \right\}
\end{equation}
\begin{equation}
    \left.
        \begin{aligned}
            f_\mathrm{1}&=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
        \end{aligned}
    \right\}
\end{equation}
\begin{equation}
  \left.
    \begin{tblr}
      {
        colspec = {rl},
        columns = {mode=dmath},
        colsep = 0pt,
      }
      f_\mathrm{1}&{}=\frac{\|\mathrm{AB}\|}{\|\mathrm{CD}\|}\\
    \end{tblr}
    \right\}
\end{equation}
\end{document}

альтернатива tabularray

решение2

Я не вижу веской причины для использования, {alignedat}{10}когда есть одна точка выравнивания на строку; почему бы не использовать окружение {aligned}? Кстати, ни то, ни {alignedat}{10}другое{aligned} на самом деле не делают ничего полезного в примере OP, так как в каждом из этих окружений есть только одна строка. Иными словами, эти окружениянетвыполнение чего-либо, связанного с выравниванием. Эта проблема на самом деле очевидна на скриншоте OP, который показывает, что три= символане выровнендруг с другом.

Поэтому я предлагаю решение, которое заменяет три отдельных equationокружения, каждое из которых содержит окружение с одной строкой {alignedat}{10}, на одно alignокружение. Обратите внимание, что =символы теперь выровнены. Более того, содержимое окружения alignпо умолчанию набирается в режиме отображения в стиле математики.

В дополнение к переключению на единую alignсреду, я бы (a) загрузил пакет mathtools, который является надмножеством пакета amsmath, чтобы (b) определить макрос с именем \norm, и (c) заменить все экземпляры \|\mathrm{AB}\|на \norm{\mathrm{AB}}. Кстати, нет смысла писать $\mathrm{1}$вместо просто $1$.

введите описание изображения здесь

\documentclass{article}
\usepackage{mathtools} % for '\DeclarePairedDelimiter' macro
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

\begin{document}
\begin{align}
f_{1}&=\left.\frac{\norm{\mathrm{AB}}}{\norm{\mathrm{CD}}}\right\}\\
f_{1}&=\left.\frac{\norm{\mathrm{AB}}}{\norm{\mathrm{CD}}}\right\}\\
f_{1}&=\left.\frac{\norm{\mathrm{AB}}}{\norm{\mathrm{CD}}}\right\}
\end{align}
\end{document}

Связанный контент