[自動改行]長い数式を折り返して表示させる3つの方法

# ○ はじめに

$\rm\LaTeX$ で文章を書いていて「数式がきれいに書ける！やったー！」と思っていても，紙面よりも長い数式が現れると紙面サイズにfix するように調整する必要があり，「組版とは???」のようなことを思うようになっていた．

「これが自動的に改行されればなぁ」と思い調べてみると，そのようなことを実現させるパッケージがありました．

この記事では，オーソドックスな方法を復習しつつ，自動改行のパッケージを紹介します．


# ○ オーソドックスな方法

オーソドックスな方法として，split 環境を用いた方法がある．これは，数式モード内で改行する位置を自分で決めて改行させる方法である．

````TeX:split
\begin{equation}
\begin{split}
<Left Hand Side>
	&= <Right Hand Side 1>\\
	& \quad <Right Hand Side 2>
\end{split}
\end{equation}
````
のように行うことが多いだろう．

しかし，上のようであれば問題ないのだが，`\left(`，`\right)`でくくっている場合，split 環境で対応が取れなくなる．これの対応としては，

````TeX:split
\begin{equation}
\begin{split}
<Left Hand Side>
	&= \left( <Right Hand Side 1>\right. \\
	& \quad \left. <Right Hand Side 2>\right)
\end{split}
\end{equation}
````
“`\left(`，`\right.`” や “`\left.`，`\right)`”で対応させれば良い．

以上から，split 環境で改行させる際に不便な点を挙げておく．

* 改行位置を自分で決める必要がある．
* `\left(`，`\right)`の対応関係が取れない．
* `<Right Hand Side 1>`と`<Right Hand Side 2>`のディスプレイサイズが異なる場合，括弧の大きさが対応しない．

これらの点を解決させるパッケージを紹介する．


# ○ `autobreak`を用いた自動改行

- [autobreak.sty | CTAN](https://www.ctan.org/pkg/autobreak)

プリアンブルに`autobreak.sty`を取り込み，自動改行させたい数式にautobreak 環境を用いればよい．以下の通りだ．


````TeX:autobreak
\documentclass[a4,uplatex]{jsarticle}
\usepackage{amsmath}
\usepackage{autobreak}
\begin{document}
\begin{align}
	\begin{autobreak}
	<Left Hand Side>
		= <Right Hand Side 1>
		 <Right Hand Side 2>
	\end{autobreak}
\end{align}
\end{document}
````

**追記 :** autobreak に関して次の記事を書いた．

- [autobreak を使いこなす - Qiita](https://qiita.com/Yarakashi_Kikohshi/private/098621ab4b4d4f5ce8cc)

ある程度詳細に使い方を記載しているので，ぜひ参考にしてください．

使用する際の注意点として，

* `amsmath.sty`のalign 環境内で改行を行うので，equation 環境ではエラーになる．
* autobreak 環境内に強制改行や"\&"を置くとエラーになる．
* autobreak 環境での数式の最大幅は`\linewidth`が用いられる．
* `\left(`，`\right)`の対応は取れない．

最後の括弧の対応が取れないことは，split 環境で挙げたように面倒事の一つである．次にそれを解決させるパッケージを紹介する．

# ○ `breqn`を用いた自動改行

- [breqn.sty | CTAN](https://www.ctan.org/pkg/breqn)

プリアンブルに`breqn.sty`を取り込み，自動改行させたい数式にdmath 環境を用いればよい．以下の通りだ．

````TeX:breqn
\documentclass[a4,uplatex]{jsarticle}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}
\begin{dmath}
<Left Hand Side>
	= <Right Hand Side>
\end{dmath}
\end{document}
````

dmath 環境では，`\left(`，`\right)`の対応を取ることが出来る．

````TeX:breqn
\documentclass[a4,uplatex]{jsarticle}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}
\begin{dmath}
<Left Hand Side>
	= \left( <Right Hand Side> \right)
\end{dmath}
\end{document}
````

# ○ これらのパッケージでいろいろ遊んでみた

数式モードでよくやることでいくつか遊んでみた．以下のようなことで遊んだ．



   [1. 高さが自動調整される括弧を付けてみる](#1-高さが自動調整される括弧を付けてみる)
   [2. `*` 付き環境で式番号の消去](#2--付き環境で式番号の消去)
   [3. `\notag`で式番号の消去](#3-notagで式番号の消去)
   [4. `\nonumber`で式番号の消去](#4-nonumberで式番号の消去)
   [5. 相互参照はどうなるのか](#5-相互参照はどうなるのか)
   [6. `mathtools`による式番号の消去](#6-mathtoolsによる式番号の消去)
   [7. 実験を通して](#7-実験を通して)



それぞれについて実験してまとめてみた．
## ■ 実験環境

* upLaTeX+dvipdfmx
* jsarticle
* TeXworks を使用


## ■ TeX ソース

上の結果が得られたソースを以下に与えておきます．TeXlive2019には`autobreak.sty`と`breqn.sty`は両方とも含まれていました．

<details><summary>実験TeXソース (折りたたみ)</summary>
<div>

```TeX:math-mode-experience
\documentclass[uplatex,a4papter,12pt,dvipdfmx]{jsarticle}
\usepackage{amsmath}
%\usepackage{mathtools}
\usepackage{autobreak}
\usepackage{breqn}
%\mathtoolsset{showonlyrefs=true}
%\mathtoolsset{showonlyrefs=fault}
\begin{document}
%%%%%%%%%%%%%%%%%%%5%
\section*{align 環境}
%%%%%%%%%%%%%%%%%%%%%

\paragraph{そのまま書いてみる}

\begin{align}
\zeta(s)
    & = \sum_{n=1}\frac{1}{n^s}\\
    & = 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots
\end{align}

普通に書くとはみ出る．


\newpage%%
%%%%%%%%%%%%%%%%%%%%%
\section*{split 環境}
%%%%%%%%%%%%%%%%%%%%%

\paragraph{改行位置を自分で決めて書いてみる}

\begin{align}
\zeta(s)
    &=\sum_{n=1}\frac{1}{n^s}\\
\begin{split}
    &=\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s} \right.\\
    &\quad \left. +\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right)
\end{split}
\end{align}

\paragraph{align* 環境にしてみる}

\begin{align*}
\zeta(s)
    &=\sum_{n=1}\frac{1}{n^s}\\
\begin{split}
    &=\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s} \right.\\
    &\quad \left. +\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right)
\end{split}
\end{align*}

\paragraph{notag を付けてみる}

\begin{align}
\zeta(s)
    &=\sum_{n=1}\frac{1}{n^s}\\
\begin{split}\notag
    &=\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s} \right.\\
    &\quad \left. +\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right)
\end{split}
\end{align}

\paragraph{nonumber を付けてみる}
\begin{align}
\zeta(s)
    &=\sum_{n=1}\frac{1}{n^s}\\
\begin{split}\nonumber
    &=\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s} \right.\\
    &\quad \left. +\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right)
\end{split}
\end{align}

\paragraph{ちょっといじわるな数式を書いてみる}

\begin{align}
\begin{split}
f(x)
    &=\left( a_{1}+a_{2}+a_{3}+a_{4}+a_{5}+a_{6}+a_{7}+a_{8}+a_{9} \right. \\
    &\quad \left. +\frac{1}{2}a_{10}+\frac{1}{2}a_{11}+\frac{1}{2}a_{12}+\frac{1}{2}a_{13}+\frac{1}{2}a_{14}+\frac{1}{2}a_{15}+\frac{1}{2}a_{16}+\frac{1}{2}a_{17}+\cdots \right)
\end{split}
\end{align}

\paragraph{label を付けてみる}

\begin{align}
\zeta(s)
    &=\sum_{n=1}\frac{1}{n^s}\\
\begin{split}
    &=\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s} \right.\\
    &\quad \left. +\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right) \label{split}
\end{split}
\end{align}
\eqref{split}

\newpage%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{autobreak 環境}
%%%%%%%%%%%%%%%%%%%%%%%%%%

\paragraph{そのまま書いてみる}

\begin{align}
\begin{autobreak}
\zeta(s) = 
    1+\frac{1}{2^s}
    +\frac{1}{3^s}
    +\frac{1}{4^s}
    +\frac{1}{5^s}
    +\frac{1}{6^s}
    +\frac{1}{7^s}
    +\frac{1}{8^s}
    +\frac{1}{9^s}
    +\frac{1}{10^s}
    +\frac{1}{11^s}
    +\frac{1}{12^s}
    +\frac{1}{13^s}
    +\frac{1}{14^s}
    +\frac{1}{15^s}
    +\frac{1}{16^s}
    +\frac{1}{17^s}
    +\frac{1}{18^s}
    +\frac{1}{19^s}
    +\cdots
\end{autobreak}
\end{align}

\paragraph{align* 環境にしてみる}

\begin{align*}
\begin{autobreak}
\zeta(s) = 
    1+\frac{1}{2^s}
    +\frac{1}{3^s}
    +\frac{1}{4^s}
    +\frac{1}{5^s}
    +\frac{1}{6^s}
    +\frac{1}{7^s}
    +\frac{1}{8^s}
    +\frac{1}{9^s}
    +\frac{1}{10^s}
    +\frac{1}{11^s}
    +\frac{1}{12^s}
    +\frac{1}{13^s}
    +\frac{1}{14^s}
    +\frac{1}{15^s}
    +\frac{1}{16^s}
    +\frac{1}{17^s}
    +\frac{1}{18^s}
    +\frac{1}{19^s}
    +\cdots
\end{autobreak}
\end{align*}

\paragraph{notag を付けてみる}
\begin{align}
\begin{autobreak}
\zeta(s) = 
    1+\frac{1}{2^s}
    +\frac{1}{3^s}
    +\frac{1}{4^s}
    +\frac{1}{5^s}
    +\frac{1}{6^s}
    +\frac{1}{7^s}
    +\frac{1}{8^s}
    +\frac{1}{9^s}
    +\frac{1}{10^s}
    +\frac{1}{11^s}
    +\frac{1}{12^s}
    +\frac{1}{13^s}
    +\frac{1}{14^s}
    +\frac{1}{15^s}
    +\frac{1}{16^s}
    +\frac{1}{17^s}
    +\frac{1}{18^s}
    +\frac{1}{19^s}
    +\cdots
\end{autobreak}\notag
\end{align}

\paragraph{nonumber を付けてみる}
\begin{align}
\begin{autobreak}
\zeta(s) = 
    1+\frac{1}{2^s}
    +\frac{1}{3^s}
    +\frac{1}{4^s}
    +\frac{1}{5^s}
    +\frac{1}{6^s}
    +\frac{1}{7^s}
    +\frac{1}{8^s}
    +\frac{1}{9^s}
    +\frac{1}{10^s}
    +\frac{1}{11^s}
    +\frac{1}{12^s}
    +\frac{1}{13^s}
    +\frac{1}{14^s}
    +\frac{1}{15^s}
    +\frac{1}{16^s}
    +\frac{1}{17^s}
    +\frac{1}{18^s}
    +\frac{1}{19^s}
    +\cdots
\end{autobreak}\nonumber
\end{align}

\paragraph{label を付けてみる}
\begin{align} \label{autobreak}
\begin{autobreak}
\zeta(s) = 
    1+\frac{1}{2^s}
    +\frac{1}{3^s}
    +\frac{1}{4^s}
    +\frac{1}{5^s}
    +\frac{1}{6^s}
    +\frac{1}{7^s}
    +\frac{1}{8^s}
    +\frac{1}{9^s}
    +\frac{1}{10^s}
    +\frac{1}{11^s}
    +\frac{1}{12^s}
    +\frac{1}{13^s}
    +\frac{1}{14^s}
    +\frac{1}{15^s}
    +\frac{1}{16^s}
    +\frac{1}{17^s}
    +\frac{1}{18^s}
    +\frac{1}{19^s}
    +\cdots
\end{autobreak}
\end{align}
\eqref{autobreak}


\newpage%%
%%%%%%%%%%%%%%%%%%%%%
\section*{dmath 環境}
%%%%%%%%%%%%%%%%%%%%%

\paragraph{そのまま書いてみる}
\begin{dmath}
\zeta(s)
    =1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots
\end{dmath}

\paragraph{dmath* 環境にしてみる}
\begin{dmath*}
\zeta(s)
    =1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots
\end{dmath*}

\paragraph{notag を付けてみる}
\begin{dmath}
\zeta(s)
    =1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots
\end{dmath}\notag

\paragraph{括弧を付けてみる}
\begin{dmath}
\zeta(s)
    =\left( 1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \right)
\end{dmath}

\paragraph{イジワルな式に括弧を付けてみる}
\begin{dmath}
f(x)
    =\left( a_{1}+a_{2}+a_{3}+a_{4}+a_{5}+a_{6}+a_{7}+a_{8}+a_{9}+\frac{1}{2}a_{10}+\frac{1}{2}a_{11}+\frac{1}{2}a_{12}+\frac{1}{2}a_{13}+\frac{1}{2}a_{14}+\frac{1}{2}a_{15}+\frac{1}{2}a_{16}+\frac{1}{2}a_{17}+\cdots \right)
\end{dmath}

\paragraph{label を付けてみる}
\begin{dmath}
\zeta(s)
    =1+\frac{1}{2^s}+\frac{1}{3^s}+\frac{1}{4^s}+\frac{1}{5^s}+\frac{1}{6^s}+\frac{1}{7^s}+\frac{1}{8^s}+\frac{1}{9^s}+\frac{1}{10^s}+\frac{1}{11^s}+\frac{1}{12^s}+\frac{1}{13^s}+\frac{1}{14^s}+\frac{1}{15^s}+\frac{1}{16^s}+\frac{1}{17^s}+\frac{1}{18^s}+\frac{1}{19^s}+\cdots \label{dmath}
\end{dmath}
\eqref{dmath}
\end{document}
```

</div>
</details>


## 1. 高さが自動調整される括弧を付けてみる

|        環境        | 結果                               |
| :----------------: | :--------------------------------- |
|   **split 環境**   | 改行位置で切り替えられた．         |
| **autobreak 環境** | 括弧が対応していない．             |
|   **dmath 環境**   | 高さも調整されて括弧が表示された． |


## 2. `*` 付き環境で式番号の消去

|        環境        | 結果                                                                                                                 |
| :----------------: | :------------------------------------------------------------------------------------------------------------------- |
|   **split 環境**   | align\* 環境で，align 環境に含まれる数式のすべての式番号が消去された．split 環境は`*` 付き環境に対応していない．     |
| **autobreak 環境** | align\* 環境で，align 環境に含まれる数式のすべての式番号が消去された．autobreak 環境は`*` 付き環境に対応していない． |
|   **dmath 環境**   | `*` 付き環境に対応しており，消去された．                                                                                |


## 3. `\notag`で式番号の消去

|        環境        | 結果                                                                                                     |
| :----------------: | :------------------------------------------------------------------------------------------------------- |
|   **split 環境**   | `\begin{split}`のあと，`\end{split}`のあと，数式の後ろのいずれに入れても消去された．                     |
| **autobreak 環境** | `\end{autobreak}`のあと，数式の後ろに入れると消去された．`\begin{autobreak}`のあとでは消去できなかった． |
|   **dmath 環境**   | `\begin{dmath}`のあと，`\end{dmath}`のあと，数式の後ろのいずれに入れても消去された．                     |


## 4. `\nonumber`で式番号の消去

`\notag`と同様の結果を得られた．


## 5. 相互参照はどうなるのか

いずれの場合でも相互参照は適用された．

## 6. `mathtools`による式番号の消去

mathtools では，相互参照している式のみに式番号を与えることが出来るようになる．このパッケージに対応されるかを確かめてみた．

|        環境        | 結果                             |
| :----------------: | :------------------------------- |
|   **split 環境**   | 適用された．                     |
| **autobreak 環境** | 適用された．                     |
|   **dmath 環境**   | 適用されずに式番号が表示される． |

コンパイルするときに，mathtools の位置でエラーを起こすことがあった．以下のような順であれば，エラーが生じなかった．

````TeX:mathtoolsの位置
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{autobreak}
\usepackage{breqn}
````

## 7. 実験を通して

autobreak 環境では，括弧のサイズ自動調整は機能しなかった．というよりも，複数行にまたがるような対応付けられたデリミタそのものを使用することが出来ない．この点はsplit 環境と同様である．
breqn 環境ではこのようなことはなく，対応付けられたデリミタは複数行にまたがる場合でも使用可能となっている．

個別の式番号の消去に関しては，いずれの場合であってもこれまで通りに適用されたが，mathtools の`showonlyrefs` は適用されなかった．これは由々しき事態である．[^anothermethod]
この点に関しては，breqn パッケージを使用するには少々ハードルがあるかもしれない．

[^anothermethod]: autonum パッケージとcleveref パッケージを併用する方法を採ると解決するかもしれない．「[amsmathの数式環境まとめ #-showonlyrefstrueとcleverefstyとの共存 - Qiita](https://qiita.com/t_kemmochi/items/a4c390b4967b13f3afb7#showonlyrefstrueとcleverefstyとの共存)」(あくまで可能性であり，解決方法は分からない)

以下，不勉強による発言のため，取り消し線および折りたたみにしておきます．

---

~~split 環境は，align 環境に依存して導入されるため，複数行中の数式の改行が可能である．しかし，autobreak 環境はalign 環境に依存しながらも，複数行中の数式の改行は出来ない．また，dmath 環境では，複数行の数式を書くことは出来ない．~~
~~本来，equation 環境で書きたい長い数式を自動改行させるのであれば，dmath 環境が良いように思うが，複数行に渡って書くような数式は，どちらのパッケージも対応していない．~~
~~このことから，非常に用途が限られてくるパッケージのように感じる．（CTAN の取扱説明書を読んでいないので，実は解決法があるのかも知れない．あったら教えてほしい．）~~



<details><summary>旧 さいごに(折りたたみ)</summary>
<div>


# ○ さいごに

以上，自動的に数式を改行することが出来るパッケージを紹介した．せっかく紹介したのに水を差すような話を挙げておく．

これらのパッケージを用いて自動改行を行うと，編集段階でのプレーンテキストではどこで改行されるのか分からない．このことを問題視する人は少ないように思うが，プレーンテキスト上でどこで改行させるのか明らかにさせ，コンパイルの結果が一意に決まるように書いた方が良いと思う人もいるようである．

また，これらのパッケージの挙動を人為的に制御するのが素人には難しいこともある．楽に改行できる分，不具合が生じると解消しづらい．split 環境でやってしまった方が楽な気もするわけだ．上の実験でもあったように，複数行でのコンパイルも不可能になるし．

正直，プレーンテキストを見るのは編集者だけで，コンパイルの結果のPDF が欲しいだけなので，利用しようがしまいがどちらでも良いように思う．それは，読者に任せる．しかし，コンパイルできなくなったときに，わざわざautobreak 環境やdmath 環境を利用した部分を書き換えるというのも馬鹿馬鹿しいように思える．

## ■ Future work（できたらいいな）

複数行の数式中であっても自動改行されるようなパッケージができるといいなぁ．また，それと同時に，自動改行される数式がsplit 環境に還元されるようなプログラムもあるといいなぁ．


</div>
</details>


# 参考

- [QA: 長い数式の自動？改行について](https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2584)
- split 環境 を用いた方法 
  - [LaTeXのsplitで数式モード内の長い数式を折り返す - Irohabook](https://www.irohabook.com/latex-split)
- `autobreak.sty`を用いた方法 
  - [[LaTeX] autobreak --- 長い数式を自動改行する - 天地有情](http://konoyonohana.blog.fc2.com/blog-entry-322.html?sp)
- `breqn.sty` を用いた方法 
  - [【LaTeX】長い数式の折り返し - 空飛ぶセロ弾き](http://kane-please.hatenablog.com/entry/2018/11/07/182304)
  - [天地有情 [LaTeX] breqn --- 表示された方程式の自動改行](https://konoyonohana.blog.fc2.com/blog-entry-546.html)


# 余談

autobreak, breqn パッケージともに非常に利便性の高い自動改行のパッケージとなっている．

- **split に関して**
    手動で長い数式を自動改行させる手段としてはオーソドックスであるが，やはりどこで数式を改行させるべきなのかが編集段階で明らかでないのは，非常にストレスである．快適な$\rm\LaTeX$ 数式ライフを送るなら，自動改行させたいという気持ちは拭えないだろう．
    また，最終的にはsplit 環境に置き換えるというような利用法をするならば，autobreak 環境を用いる方が良いだろう．
- **autobreak に関して**
    split 環境にそのまま自動改行の機能が付与されたようなパッケージ．これまでのsplit 環境にしていたものを置き換えてしまえば，それほど気にせずに使用することが出来る．これまで$\rm\LaTeX$ で数式を打ってきた人なら，こちらの方が簡単に導入できるパッケージになると思われる．
- **breqn に関して**
    非常に発展的に数式環境をサポートしているパッケージ．amsmath に依存していながら，まったく新しい数式環境を提供することで，自動改行を実現している．まったく新しい環境を定義しているために，autobreak とは異なり覚えることがちょっとある．その割に，breqn を解説するような日本語ページは少なく，パッケージユーザガイドは長い．
    アルファ版に関しては，予期せぬ不具合がある可能性があるらしい．

以上のことから，(個人的に) 自動改行にはautobreak を利用することをお勧めする．とても挑戦的な人はbreqn パッケージを利用するのも良いかもしれない．

ちなみに，breqn パッケージに関する記事を作成しようと思いパッケージガイドを少し読んでいたが，パッケージガイドそのものが非常に長く記事にするには時間がない．したがって，当面の間breqn パッケージの記事は作成しないものと思われる．
参考でも挙げている次の記事にはbreqn に関して分かりやすく紹介されているので，ぜひ参考にすると良いだろう．

- [天地有情 [LaTeX] breqn --- 表示された方程式の自動改行](https://konoyonohana.blog.fc2.com/blog-entry-546.html)



# 追記

- 2020/08/04 : [ 数式 改行 latex ] でググるとこの記事が上の方に出てくるまでになってきているな......（とくに有用な方法を示せていない記事が検索上位に出てしまっていることに畏れをなしている図）
- 2020/08/20 : 誤解していた部分等があったので大幅改訂しました．この記事を読んでautobreak やbreqn を利用された方には間違った情報を伝達してしまい申し訳ございませんでした．上の追記の段階で，パッケージガイドまともに読んでなかったことを反省して読みました．