分割された 2 つの環境を等号で揃えるにはどうすればよいでしょうか?

分割された 2 つの環境を等号で揃えるにはどうすればよいでしょうか?
\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 つ含まれています。 このような構造を、たとえば 構造内に囲むことはできません。 splitsalignsplit\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環境外で設定する必要があります。

関連情報