
\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{mathtools}
\begin{document}
\begin{align}
\begin{split}
\label{eq:lines}
Q_{1x} &= C_{1x} + \mu_1 \vec{h_{1x}} \\
Q_{1y} &= C_{1y} + \mu_1 \vec{h_{1y}} \\
\vdots \\
Q_{3z} &= C_{3z} + \mu_3 \vec{h_{3z}}
\end{split} \\
\begin{split}
\label{eq:distances}
\overline{Q_1 Q_2}^2 &= (Q_{1x}-Q_{2x})^2 + (Q_{1y}-Q_{2y})^2 + (Q_{1z}-Q_{2z})^2\\
\vdots
\end{split}
\end{align}
\end{document}
Я хочу выровнять уравнения в обеих разделенных средах по символу "=" одинаковым образом. Есть идеи?
решение1
Все, что вам нужно сделать, это не забыть поставить знаки выравнивания &
на всех строках вашего кода splits
(в вашем коде их нет \vdots
). Минимизация вашего примера дает:
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
\label{eq:lines}
\begin{split}
Q_{1x} &= C_{1x} + \mu_1 \vec{h_{1x}} \\
Q_{1y} &= C_{1y} + \mu_1 \vec{h_{1y}} \\
\vdots& \\
Q_{3z} &= C_{3z} + \mu_3 \vec{h_{3z}}
\end{split} \\
\label{eq:distances}
\begin{split}
\overline{Q_1 Q_2}^2 &= (Q_{1x}-Q_{2x})^2 + (Q_{1y}-Q_{2y})^2
+ (Q_{1z}-Q_{2z})^2\\
\vdots&
\end{split}
\end{align}
\end{document}
Теперь вам нужно решить, как вы хотите разместить \vdots
...
Обсуждение
В документации amsmath.pdf
не так ясно говорится об этой структуре:
Разделенная структура должна составлять все тело охватывающей структуры, за исключением команд типа \label, которые не создают видимого материала.
в разделе «Разделение уравнений с выравниванием», в отличие от описания подgather
Любое уравнение в сборке может состоять из структуры \begin{split} ... \end{split}—...
Однако прилагаемое поле testmath.pdf
содержит два явных примера множественности splits
внутри align
. Чего вы не можете сделать, так это заключить такую split
конструкцию внутрь, например, \left ... \right
конструкции.
Обратите внимание, что существует пакет breqn
, содержащий код, позволяющий выполнять сложное выравнивание между различными блоками, но он изменяет фундаментальные конструкции в математическом режиме и поэтому имеет ряд проблем с совместимостью.
решение2
Ладно, должен признать, я понятия не имею, почему это сработало, просто хотел добавить пример с использованием \vdotswithin{}
from mathtools
, и вдруг =
' выровнялись. Я также изменил , \vec
чтобы он проходил только над h
'.
\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath, amsthm, amssymb,mathtools}
\usepackage{mathtools}
\begin{document}
\begin{align}
\begin{split}
\label{eq:lines}
Q_{1x} &= C_{1x} + \mu_1 \vec{h}_{1x} \\
Q_{1y} &= C_{1y} + \mu_1 \vec{h}_{1y} \\
&\vdotswithin{=} \\
Q_{3z} &= C_{3z} + \mu_3 \vec{h}_{3z}
\end{split} \\
\begin{split}
\label{eq:distances}
\overline{Q_1 Q_2}^2
&= (Q_{1x}-Q_{2x})^2 + (Q_{1y}-Q_{2y})^2 + (Q_{1z}-Q_{2z})^2\\
&\vdotswithin{=}
\end{split}
\end{align}
\end{document}
решение3
Вам нужно aligned
вместо split
:
\documentclass{scrartcl}
\usepackage{amsmath}
\newlength{\templen}
\begin{document}
\settowidth{\templen}{$\displaystyle\overline{Q_1 Q_2}^2$}
\begin{align}
\label{eq:lines}
&\begin{aligned}
\makebox[\templen][r]{$\displaystyle Q_{1x}$} &= C_{1x} + \mu_1 \vec{h_{1x}} \\
Q_{1y} &= C_{1y} + \mu_1 \vec{h_{1y}} \\
\vdots \\
Q_{3z} &= C_{3z} + \mu_3 \vec{h_{3z}}
\end{aligned} \\
\label{eq:distances}
&\begin{aligned}
\overline{Q_1 Q_2}^2 &= (Q_{1x}-Q_{2x})^2 + (Q_{1y}-Q_{2y})^2 + (Q_{1z}-Q_{2z})^2\\
\vdots
\end{aligned}
\end{align}
\end{document}
Ширина \templen
может быть повторно использована по желанию. Она должна быть установлена вне align
среды.