Интервалы в `alignat' и `alignedat'

Интервалы в `alignat' и `alignedat'

Привет.

Я пытался набрать следующую систему уравнений:

система уравнений

Для этого я использовал следующий код:

\begin{equation*}
    \left\{
    \begin{alignedat}{9}
        & b_{1,1} x_2 &&{} + {}&& b_{1,2} x_2 &&{} + {}&& \cdots &&{} + {}&& b_{1,9} x_9 &&{} = {}&& c_1 \\
        & b_{2,1} x_2 &&{} + {}&& b_{2,2} x_2 &&{} + {}&& \cdots &&{} + {}&& b_{2,9} x_9 &&{} = {}&& c_2 \\
        &&& \: \: \vdots &&&& \: \: \vdots &&&& \: \: \vdots &&&& \:\: \vdots \\
        & b_{9,1} x_2 &&{} + {}&& b_{9,2} x_2 &&{} + {}&& \cdots &&{} + {}&& b_{9,9} x_9 &&{} = {}&& c_9
    \end{alignedat}
    \right.
\end{equation*}

Теперь у меня 2 вопроса:

  1. Есть ли более естественный способ добавить интервал между столбцами?
  2. Почему {} + {}работает (то есть добавляет пробелы вокруг +знака)? Я получил это случайно (отчаянные времена требуют отчаянных мер), но понятия не имею, как/почему это работает.

решение1

Код {}+{}работает, поскольку он добавляет пустые атомы по обе стороны операции, обеспечивая правильное размещение.

Однако вы можете ввести эту формулу проще с помощью array:

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}

\begin{document}

\begin{equation*}
\left\{
\setlength{\arraycolsep}{0pt}% no padding
\newcolumntype{B}{>{{}}c<{{}}}
\begin{array}{ l B l B l B l B l }
b_{1,1} x_2 & + & b_{1,2} x_2 & + & \cdots & + & b_{1,9} x_9 & = & c_1 \\
b_{2,1} x_2 & + & b_{2,2} x_2 & + & \cdots & + & b_{2,9} x_9 & = & c_2 \\
  & \vdots && \vdots && \vdots &&  \vdots \\
b_{9,1} x_2 & + & b_{9,2} x_2 & + & \cdots & + & b_{9,9} x_9 & = & c_9
\end{array}
\right.
\end{equation*}

\end{document}

Здесь {}+{}тоже используется этот трюк, но он скрыт во временном типе столбца B(для Binary).

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

решение2

Вам не нужно так много точек выравнивания. На самом деле, количество точек выравнивания по сути зависит от количества вертикальных точек, которые вы хотите выровнять. Я даю два варианта: с 4 или 2 точками выравнивания (7 или 3 амперсанда). Само выравнивание использует команду \vdotswithinиз mathtools, а скобки берутся из empheqпакета (который загружает mathtools). Вам не нужна alignedatсреда, вложенная в equation*, alignat*справится с этой задачей.

    \documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[overload]{empheq}

\begin{document}

\begin{alignat*}{4}[left =\empheqlbrace]
     b_{1,1} x_2 &{}+ {}& b_{1,2} x_2 &{} + ⋯ +{} & b_{1,9} x_9 & ={} & c_1 \\
 b_{2,1} x_2 &{}+{} & b_{2,2} x_2 &{} + ⋯ + {}& b_{2,9} x_9 & = & c_2 \\[-1.5ex]
  \vdotswithin{b_{2,1} x_2}&& \vdotswithin{b_{2,2} x_2} && \vdotswithin{b_{2,9} x_9 } &&\vdotswithin{c_2} \\[-1ex]
     b_{9,1} x_2 &{}+ {}& b_{9,2} x_2 &{} + ⋯ + {}& b_{9,9} x_9 & = & c_9
\end{alignat*}

\begin{alignat*}{2}[left =\empheqlbrace]
     b_{1,1} x_2 &{}+ b_{1,2} x_2 + ⋯ + b_{1,9} x_9 & ={} & c_1 \\
 b_{2,1} x_2 &{}+ b_{2,2} x_2 + ⋯ + b_{2,9} x_9 & = {}& c_2 \\[-1.5ex]
  \vdotswithin{b_{2,1} x_2} && \vdotswithin{ = {}} \\[-1ex]
     b_{9,1} x_2 &{}+ b_{9,2} x_2 + ⋯ + b_{9,9} x_9 & = {}& c_9
\end{alignat*}

\end{document} 

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

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