【LaTeX】長い数式の折り返し

長い数式を打ちたかった

数値計算の式を打ち込んでいると,どうしても差分形式の式を書かねばならず,そんな時に式が長くなりがちでした. すると必然的に式が長くなって紙からはみ出してしまう.それを解消.

最初にヒットした方法

例えばこの方法 www.irohabook.com

どうやらsplitコマンドなるものを使えば解決することができそうだ.ということで試したのはこちら.

\begin{equation}
\begin{split}
   u^*_{i,j} = &u^n_{i,j} - \Delta t \left\{u^n_{i,j}\frac{u^n_{i+1,j} - u^n_{i-1,j}}{2\Delta x} + v^n_{i,j}\frac{u^n_{i,j+1} - u^n_{i,j-1}}{2\Delta y} + \\
   &\frac{1}{Re}\left(\frac{u^n_{i+1,j} - 2u^n_{i,j} + u^n_{i-1,j}}{(\Delta x)^2} + \frac{u^n_{i,j+1} - 2u^n_{i,j} + u^n_{i,j-1}}{(\Delta y)^2}\right) \right\}
\end{split}
\end{equation}

だがエラーがでた

なにやらエラーが,それがこれ.

Extra }, or forgotten \right. [\end{split}]

考えてみるに,途中で強制改行\\をしているせいで,大きい一つの括弧が二つの数式に分けて考えられ,その結果left\{\right\}の対応が取れなくなってしまったらしい.

解決

でどうしようかと思っていたら英語で検索したらいいパッケージを見つけることができた.

tex.stackexchange.com

これに基づいて再度書きなおしたのがこれ

\documentclass{article}
\usepackage{breqn}
\begin{document}
\begin{dmath}
    v^*_{i,j} = v^n_{i,j} - \Delta t \left\{u^n_{i,j}\frac{v^n_{i+1,j} - v^n_{i-1,j}}{2\Delta x} + v^n_{i,j}\frac{v^n_{i,j+1} - v^n_{i,j-1}}{2\Delta y} + \frac{1}{Re}\left(\frac{v^n_{i+1,j} - 2v^n_{i,j} + v^n_{i-1,j}}{(\Delta x)^2} + \frac{v^n_{i,j+1} - 2v^n_{i,j} + v^n_{i,j-1}}{(\Delta y)^2}\right) \right\}
\end{dmath}
\end{document}

するとこんな感じになる. f:id:kane-please:20181107181616p:plain

うん,まぁいい感じ.