
\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
複数の明示的な例が 2 つ含まれています。 このような構造を、たとえば 構造内に囲むことはできません。 splits
align
split
\left ... \right
さまざまなブロック間の複雑な配置を可能にするコードを含むパッケージがありますがbreqn
、これは数式モードでの基本的な構造を変更するため、多くの互換性の問題が発生することに注意してください。
答え2
わかりました。正直に言うと、なぜこれが機能するのかわかりません。単に、 を使用した例を追加したかっただけです\vdotswithin{}
。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
環境外で設定する必要があります。