やりたいこと
$$a \left( \sum \text{長い数式} + \text{長い数式} \right)$$
a \left( \sum \text{長い数式} + \text{長い数式} \right)
というタイプの数式を適切に改行したい。
案1 安直に改行する
\begin{align}
a \left( \sum \text{長い数式}
\\
+ \text{長い数式} \right)
\end{align}
このようにすると
Undefined control sequence.
とエラーが出てしまいます。
これは\left(
と\right)
の間で改行を挟んだためです。
そこで次の案を検討します。
案2 \left.
, \right.
を使う
\begin{align}
a \left( \sum \text{長い数式} \right.
\\
\left. + \text{長い数式} \right)
\end{align}
確かに改行は出来ています。
しかし括弧の大きさが不揃いであり見栄えが悪いです。
この問題は $\sum$ \sum
の上下に文字を配置すると一層顕著となります。
この問題に対処するのが本記事の目的です。
解決策1 大きさが固定されている括弧を使う
\begin{align}
a \Big( \sum \text{長い数式} \right.
\\
\left. + \text{長い数式} \Big)
\end{align}
上手くできています。
しかし括弧の中身に合わせて一々大きさを揃えるのは手間です。
せっかくなので大きさを自動制御してくれる括弧 \left(
を使った方法を考えましょう。
解決策2 \phantom
でダミーの空白を入れる
いよいよ本命の方法を紹介します。
\vphantom{hoge}
というコマンドは hoge
と同じ高さで幅が0の空白を挿入する効果があります。
これを使い、 $\sum$ \sum
と同じ高さで幅が0の空白を挿入するのです。
なお、 \vphantom
や関連するコマンドの \phantom
, \hphantom
の使いかたは [LaTeX] \phantom でいい感じに揃える が非常に参考になります。
\begin{align}
a \left( \sum \text{長い数式} \right.
\\
\left. + \vphantom{\sum} \text{長い数式} \right)
\end{align}
$\sum$ \sum
の上下に文字がある場合も同様です。
\begin{align}
a \left( \sum_{n=1}^\infty \text{長い数式} \right.
\\
\left. + \vphantom{\sum_{n=1}^\infty} \text{長い数式} \right)
\end{align}
これで改行を含む括弧の大きさを揃えることが出来ました!
応用
\begin{align}
A &= ab \\
&= a \left( \sum \text{長い数式} + \text{長い数式} \right)
\end{align}
のように、 align
環境中で &=
を用いて $=$ で揃えている状況で、括弧の内部で改行することを考えてみます。
上のように \vphantom
を用いてみます。
\begin{align}
A &= ab
\\
&= a \left( \sum \text{長い数式} \right.
\\
& \left. \vphantom{\sum} + \text{長い数式} \right)
\end{align}
するとこのように、最後の行の開始位置が左に行き過ぎてしまいます。
このようなことが起こってしまうのは &=
を用いて $=$ のところで揃えているためです。
左括弧の真下から最後の行を開始するには、その分の空白を \phantom
を用いて空けてあげれば良いです。
(このテクニックを筆者は上述した記事 [LaTeX] \phantom でいい感じに揃える, 少し凝った例 で知りました。)
\begin{align}
A &= ab
\\
&= a \left( \sum \text{長い数式} \right.
\\
&\phantom{{}= a \left( \right.}
\left. \vphantom{\sum} + \text{長い数式} \right)
\end{align}
これで万事解決です!