[LaTeX] 改行を含む括弧の大きさを揃える

## やりたいこと

$$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}
```

![texclip20241110144513.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/b08b59cd-6a1e-be8c-4a73-ec78687f3c2c.png)


確かに改行は出来ています。
しかし括弧の大きさが不揃いであり見栄えが悪いです。

この問題は $\sum$ `\sum` の上下に文字を配置すると一層顕著となります。

![texclip20241110144536.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/bf73e92a-4f77-f98d-824b-892a84b26199.png)

この問題に対処するのが本記事の目的です。


## 解決策1 大きさが固定されている括弧を使う

```
\begin{align}
	a \Big( \sum \text{長い数式} \right.
	\\
	\left. + \text{長い数式} \Big)
\end{align}
```

![texclip20241110144346.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/74dff0c6-d634-c35a-e0bf-8eac155c568c.png)


上手くできています。
しかし括弧の中身に合わせて一々大きさを揃えるのは手間です。
せっかくなので大きさを自動制御してくれる括弧 `\left(` を使った方法を考えましょう。


## 解決策2 `\phantom` でダミーの空白を入れる

いよいよ本命の方法を紹介します。
`\vphantom{hoge}` というコマンドは `hoge` と同じ高さで幅が0の空白を挿入する効果があります。
これを使い、 $\sum$ `\sum` と同じ高さで幅が0の空白を挿入するのです。

なお、 `\vphantom` や関連するコマンドの `\phantom`, `\hphantom` の使いかたは [[LaTeX] \phantom でいい感じに揃える](https://qiita.com/zkou/items/21a2229bb900fd87e760#hphantom-vphantom-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6) が非常に参考になります。

```
\begin{align}
	a \left( \sum \text{長い数式} \right.
	\\
	\left. + \vphantom{\sum} \text{長い数式} \right)
\end{align}
```

![texclip20241110145142.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/d4177571-a7a9-1fe8-7ec0-efc892b3d68e.png)

$\sum$ `\sum` の上下に文字がある場合も同様です。

```
\begin{align}
	a \left( \sum_{n=1}^\infty \text{長い数式} \right.
	\\
	\left. + \vphantom{\sum_{n=1}^\infty} \text{長い数式} \right)
\end{align}
```

![texclip20241110145010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/ff6287a7-d489-9982-8af1-4e946e1f3369.png)

これで改行を含む括弧の大きさを揃えることが出来ました！


## 応用

```math
\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}
```

![texclip20241110150929.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/4f90135c-6bd2-9bc3-823f-7df927c70bcf.png)

するとこのように、最後の行の開始位置が左に行き過ぎてしまいます。
このようなことが起こってしまうのは `&=` を用いて $=$ のところで揃えているためです。

左括弧の真下から最後の行を開始するには、その分の空白を `\phantom` を用いて空けてあげれば良いです。
（このテクニックを筆者は上述した記事 [[LaTeX] \phantom でいい感じに揃える, 少し凝った例](https://qiita.com/zkou/items/21a2229bb900fd87e760#%E5%B0%91%E3%81%97%E5%87%9D%E3%81%A3%E3%81%9F%E4%BE%8B) で知りました。）

```
\begin{align}
A &= ab 
\\
&= a \left( \sum \text{長い数式} \right. 
\\
&\phantom{{}= a \left( \right.} 
\left. \vphantom{\sum} + \text{長い数式} \right)
\end{align}
```

![texclip20241110151942.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795757/3c5cb0a5-c73d-2572-b3ac-efa9a0a967f4.png)

これで万事解決です！