数学では「a が b を割り切る」(a が b の約数である・ b が a の倍数である・整除関係)という場合に縦棒を使って a | b と書く。これを LaTeX で書くときにどうしたら良いか。
(結論だけ知りたい方は「まとめ」へ)
目次
「割り切る」記号
ASCII 文字の縦棒 | (U+007C VERTICAL LINE) をそのまま使うのはどうか。残念ながら、縦棒 | は数式クラスが通常の文字 (ordinary, \mathord) であり、関係演算子 (relation, \mathrel) ではない。
では縦棒を \mathrel で囲ってやればいいのではないか。つまり、 a\mathrel{|}b とする。
実は TeX には「\mathrel 版の縦棒」が既に用意されている。そう、 \mid だ。というわけで、「割り切る」記号として \mid を使えば良い。
名前が “mid” では味気ない、「割り切る」感じが欲しい、と思うのであれば、マクロで \newcommand{\divides}{\mid} とでもしてやれば良いだろう。
「割り切らない」記号
「割り切る」の否定、割り切らない記号はどう書くか。数学の慣習では、関係演算子を否定するには、斜めに線(スラッシュ)を引くことが多い。例えば、イコール = の否定は斜めの線を引いた ≠ となる。「割り切る」記号も例に漏れない。
TeX で斜めに線を引いて「打ち消す」には、 \notコマンドを使う。しかし、既に述べたように、単純に \not| とするわけにはいかない。かといって \not\mid とすると、縦棒とスラッシュの位置がずれてしまう。\mathrel{\not|} ならば縦棒とスラッシュが重なってそれっぽく見えるが、左右の間隔が不均等だ。
実は、 amssymb パッケージには \nmid という、まさに「縦棒にスラッシュを引いた」記号が用意されている。スラッシュの長さが若干短い気がするが、自分で色々やるよりは、既製品を使った方が良いだろう。
その他
MnSymbol パッケージでは \divides, \ndivides という、そのまんまなコマンドが用意されている。amssymb を使わずに MnSymbol を使うという場合は、これらを使えば良いだろう。(amssymb と MnSymbols は両立しない)
Unicode にも
∣U+2223 DIVIDES∤U+2224 DOES NOT DIVIDE⫮U+2AEE DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
という、そのまんまな記号がある。
LaTeX で Unicode 記号といえば unicode-math だが、これらの記号と LaTeX コマンドの対応は
- U+2223:
\mid - U+2224:
\nmid - U+2AEE:
\revnmid
となっている。
まとめ
「割り切る」記号には \mid、「割り切らない」記号には(amssymb 等のパッケージで提供される) \nmid を使うのが適切である。
コマンド名から「割り切る」感じを出したい場合は、
\providecommand{\divides}{\mid}
\providecommand{\ndivides}{\nmid}
とでも定義しておけば良いだろう。
(この記事を読んだ方がわざわざ参照する必要はないが、一応)Stack Exchange の関連トピック:

