Привет.
Я пытался набрать следующую систему уравнений:
Для этого я использовал следующий код:
\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
Код {}+{}
работает, поскольку он добавляет пустые атомы по обе стороны операции, обеспечивая правильное размещение.
Однако вы можете ввести эту формулу проще с помощью 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}