LaTeX：多項式の除算をarray環境で泥臭く組版する

#やりたいこと

多項式の除算をarray環境で組版する。同類項が縦に並ぶようにしたい。
安直にコードを組もうとすると，すぐに思いつくのは次のようなもの。

```latex
\begin{math}
\begin{array}{rcrrrr}
         &   & x   & +5    &      &     \\ \cline{2-6}
x^2-3x+2 & ) & x^3 & +2x^2 & -11x & + 7 \\
         &   & x^3 & -3x^2 & + 2x &     \\ \cline{3-6}
         &   &     &  5x^2 & -13x & + 7 \\
         &   &     &  5x^2 & -15x & +10 \\ \cline{4-6}
         &   &     &       &   2x & - 3 \\
\end{array}
\end{math}
```
![安直に組んでみた](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/b8c890e6-8a6d-a356-4510-3ade2d5e25ab.png)

この出力には気に食わないところが多々あるので，以下，泥臭く改良を進める。


#除式と被除式の区切り，横棒

除式 $x^2-3x+2$ と被除式 $x^3+2x^2-11x+7$ の区切りに安直に閉じ丸括弧`)`を用いた。
もう少し大きくすると見映えがよくなるのではないか。

```latex
\begin{math}
\begin{array}{rcrrrr}
         &       & x   & +5    &      &     \\ \cline{2-6}
x^2-3x+2 & \Big) & x^3 & +2x^2 & -11x & + 7 \\
         &       & x^3 & -3x^2 & + 2x &     \\ \cline{3-6}
         &       &     &  5x^2 & -13x & + 7 \\
         &       &     &  5x^2 & -15x & +10 \\ \cline{4-6}
         &       &     &       &   2x & - 3 \\
\end{array}
\end{math}
```
![括弧を大きくしてみた](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/ed01977a-549f-b9da-2dda-c25174856b2b.png)

（大きくした）括弧の直上の横棒について，左に飛び出ているのが気に食わない。
array環境のオプションに `@{}` を加えてみる。

```latex
\begin{math}
\begin{array}{r@{}crrrr}
         &       & x   & +5    &      &     \\ \cline{2-6}
x^2-3x+2 & \Big) & x^3 & +2x^2 & -11x & + 7 \\
         &       & x^3 & -3x^2 & + 2x &     \\ \cline{3-6}
         &       &     &  5x^2 & -13x & + 7 \\
         &       &     &  5x^2 & -15x & +10 \\ \cline{4-6}
         &       &     &       &   2x & - 3 \\
\end{array}
\end{math}
```
![飛び出しをなくしたかった](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/acb43c5b-7520-65ed-4cea-88dc7ccad7e1.png)

飛び出しをなくすことはできたが，除式と区切りの間が詰まってしまった。
空白を入れるべく，`@{}`を`@{~}`にかえる。

```latex
\begin{math}
\begin{array}{r@{~}crrrr}
         &       & x   & +5    &      &     \\ \cline{2-6}
x^2-3x+2 & \Big) & x^3 & +2x^2 & -11x & + 7 \\
         &       & x^3 & -3x^2 & + 2x &     \\ \cline{3-6}
         &       &     &  5x^2 & -13x & + 7 \\
         &       &     &  5x^2 & -15x & +10 \\ \cline{4-6}
         &       &     &       &   2x & - 3 \\
\end{array}
\end{math}
```
![除式と区切りの間を空けた](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/feae9f11-bd91-47af-f2ae-e443a68d0695.png)

横棒とべき指数が重なっているところがある。このような縦の詰まりを避けたい。
区切り括弧のダミー`\phantom{\Big)}`を入れると，それなりに揃っているように見えるようになる。

```latex
\begin{math}
\begin{array}{r@{~}crrrr}
         &       & x   & +5    &      &     \\ \cline{2-6}
x^2-3x+2 & \Big) & x^3 & +2x^2 & -11x & + 7 \\
         &       & x^3 & -3x^2 & + 2x &     \\ \cline{3-6}
 & \phantom{\Big)} &   &  5x^2 & -13x & + 7 \\
         &       &     &  5x^2 & -15x & +10 \\ \cline{4-6}
 & \phantom{\Big)} &   &       &   2x & - 3 \\
\end{array}
\end{math}
```
![縦方向の改善案](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/5475e339-2f99-a12b-3488-0fbd9b1e4bf2.png)


#符号の位置を揃えたい

符号の位置を揃えたい。array環境のオプションをより細かく指定しよう。

```latex
\begin{math}
\begin{array}{r@{~}crcrcrcr}
         &       & x   &+& 5    & &     & &    \\ \cline{2-9}
x^2-3x+2 & \Big) & x^3 &+& 2x^2 &-& 11x &+&  7 \\
         &       & x^3 &-& 3x^2 &+&  2x &      \\ \cline{3-9}
 & \phantom{\Big)} &   & & 5x^2 &-& 13x &+&  7 \\
         &       &     & & 5x^2 &-& 15x &+& 10 \\ \cline{4-9}
 & \phantom{\Big)} &   & &      & &  2x &-&  3 \\
\end{array}
\end{math}
```
![符号の位置を揃えてみた](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/96be8e36-3849-128e-c690-3dc28902340e.png)

符号の位置は揃った。しかし，符号の前後が空き過ぎた。
この間隔を制御するべく，array環境のオプションに `@{\:}` を指定する。
`\:` は数式モードにおいて二項演算子の直前直後に挿入される空白（`\medmuskip`）。

```latex
\begin{math}
\begin{array}{r@{~}cr@{\:}c@{\:}r@{\:}c@{\:}r@{\:}c@{\:}r}
         &       & x   &+& 5    & &     & &    \\ \cline{2-9}
x^2-3x+2 & \Big) & x^3 &+& 2x^2 &-& 11x &+&  7 \\
         &       & x^3 &-& 3x^2 &+&  2x &      \\ \cline{3-9}
 & \phantom{\Big)} &   & & 5x^2 &-& 13x &+&  7 \\
         &       &     & & 5x^2 &-& 15x &+& 10 \\ \cline{4-9}
 & \phantom{\Big)} &   & &      & &  2x &-&  3 \\
\end{array}
\end{math}
```
![符号の前後の間隔を調整](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/2fb5629e-65ab-b41f-ddf1-8a7d3f919b90.png)

array環境のオプションが長くなって見難くなってしまった。
繰り返しを`*{}{}`でまとめてコンパクトにしよう。

```latex
\begin{math}
\begin{array}{r@{~}cr*{3}{@{\:}c@{\:}r}}
         &       & x   &+& 5    & &     & &    \\ \cline{2-9}
x^2-3x+2 & \Big) & x^3 &+& 2x^2 &-& 11x &+&  7 \\
         &       & x^3 &-& 3x^2 &+&  2x &      \\ \cline{3-9}
 & \phantom{\Big)} &   & & 5x^2 &-& 13x &+&  7 \\
         &       &     & & 5x^2 &-& 15x &+& 10 \\ \cline{4-9}
 & \phantom{\Big)} &   & &      & &  2x &-&  3 \\
\end{array}
\end{math}
```
![オプションは本質的には変わっていない](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/f3f9c592-e304-d4f2-22b6-e6b59ec9fc5c.png)

商の項 $x+5$ と被除式 $x^3+2x^2-11x+7$ が縦に揃っていないのが気に入らない。ダミーを入れて揃えよう。

```latex
\begin{math}
\begin{array}{r@{~}cr*{3}{@{\:}c@{\:}r}}
 & & x^{\phantom{1}} &+& 5\phantom{x^0} & & & & \\ \cline{2-9}
x^2-3x+2 & \Big) & x^3 &+& 2x^2 &-& 11x &+&  7 \\
         &       & x^3 &-& 3x^2 &+&  2x &      \\ \cline{3-9}
 & \phantom{\Big)} &   & & 5x^2 &-& 13x &+&  7 \\
         &       &     & & 5x^2 &-& 15x &+& 10 \\ \cline{4-9}
 & \phantom{\Big)} &   & &      & &  2x &-&  3 \\
\end{array}
\end{math}
```
![商の項を揃えた](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108155/6726774c-6d21-6f0b-a90c-f9ad661fdfc1.png)

#他の方法はないのか

他の方法がありそう。後日書くことにしたい。

#Beamerと組み合わせてプレゼン用資料を作れる？

試してみて，後日記事にしよう。＞自分

Beamer使うなら，tikzpicture 環境での組版がもしかすると賢い？＞自分

* * *
おしまい