【LaTeX】数式中の大文字を常に立体にする方法



# 方法

プレアンブルでこうします。

```tex
\DeclareMathSymbol{A}{\mathalpha}{operators}{`A}
\DeclareMathSymbol{B}{\mathalpha}{operators}{`B}
\DeclareMathSymbol{C}{\mathalpha}{operators}{`C}
\DeclareMathSymbol{D}{\mathalpha}{operators}{`D}
\DeclareMathSymbol{E}{\mathalpha}{operators}{`E}
\DeclareMathSymbol{F}{\mathalpha}{operators}{`F}
\DeclareMathSymbol{G}{\mathalpha}{operators}{`G}
\DeclareMathSymbol{H}{\mathalpha}{operators}{`H}
\DeclareMathSymbol{I}{\mathalpha}{operators}{`I}
\DeclareMathSymbol{J}{\mathalpha}{operators}{`J}
\DeclareMathSymbol{K}{\mathalpha}{operators}{`K}
\DeclareMathSymbol{L}{\mathalpha}{operators}{`L}
\DeclareMathSymbol{M}{\mathalpha}{operators}{`M}
\DeclareMathSymbol{N}{\mathalpha}{operators}{`N}
\DeclareMathSymbol{O}{\mathalpha}{operators}{`O}
\DeclareMathSymbol{P}{\mathalpha}{operators}{`P}
\DeclareMathSymbol{Q}{\mathalpha}{operators}{`Q}
\DeclareMathSymbol{R}{\mathalpha}{operators}{`R}
\DeclareMathSymbol{S}{\mathalpha}{operators}{`S}
\DeclareMathSymbol{T}{\mathalpha}{operators}{`T}
\DeclareMathSymbol{U}{\mathalpha}{operators}{`U}
\DeclareMathSymbol{V}{\mathalpha}{operators}{`V}
\DeclareMathSymbol{W}{\mathalpha}{operators}{`W}
\DeclareMathSymbol{X}{\mathalpha}{operators}{`X}
\DeclareMathSymbol{Y}{\mathalpha}{operators}{`Y}
\DeclareMathSymbol{Z}{\mathalpha}{operators}{`Z}
```
# （一応）立体にしたい動機

証明図を書いているときになんとなく立体にしないと気が済まなかったのですがいちいち`\mathrm`の中に入れる、ということをしたくなかったからです。今回試しに

```latex
\DeclareMathSymbol{A}{\mathalpha}{operators}{`A}
```

としてみたらうまくいったようだったので全アルファベットで定義し直してみました。


# これでうまくいく理由

[The LATEX2ε Sources](https://ftp.kddilabs.jp/CTAN/macros/latex/base/source2e.pdf)という説明書に書かれている数式記号としてのA-Zの定義は

```latex
\DeclareMathSymbol{A}{\mathalpha}{letters}{`A}
\DeclareMathSymbol{B}{\mathalpha}{letters}{`B}
\DeclareMathSymbol{C}{\mathalpha}{letters}{`C}
\DeclareMathSymbol{D}{\mathalpha}{letters}{`D}
\DeclareMathSymbol{E}{\mathalpha}{letters}{`E}
\DeclareMathSymbol{F}{\mathalpha}{letters}{`F}
\DeclareMathSymbol{G}{\mathalpha}{letters}{`G}
\DeclareMathSymbol{H}{\mathalpha}{letters}{`H}
\DeclareMathSymbol{I}{\mathalpha}{letters}{`I}
\DeclareMathSymbol{J}{\mathalpha}{letters}{`J}
\DeclareMathSymbol{K}{\mathalpha}{letters}{`K}
\DeclareMathSymbol{L}{\mathalpha}{letters}{`L}
\DeclareMathSymbol{M}{\mathalpha}{letters}{`M}
\DeclareMathSymbol{N}{\mathalpha}{letters}{`N}
\DeclareMathSymbol{O}{\mathalpha}{letters}{`O}
\DeclareMathSymbol{P}{\mathalpha}{letters}{`P}
\DeclareMathSymbol{Q}{\mathalpha}{letters}{`Q}
\DeclareMathSymbol{R}{\mathalpha}{letters}{`R}
\DeclareMathSymbol{S}{\mathalpha}{letters}{`S}
\DeclareMathSymbol{T}{\mathalpha}{letters}{`T}
\DeclareMathSymbol{U}{\mathalpha}{letters}{`U}
\DeclareMathSymbol{V}{\mathalpha}{letters}{`V}
\DeclareMathSymbol{W}{\mathalpha}{letters}{`W}
\DeclareMathSymbol{X}{\mathalpha}{letters}{`X}
\DeclareMathSymbol{Y}{\mathalpha}{letters}{`Y}
\DeclareMathSymbol{Z}{\mathalpha}{letters}{`Z}
```

になっています。lettersの部分をoperatorsに変えることによってA-Zを再定義し直しました。実質的に`\mathrm`に入れられた状態と等価になっています。元の形で出力したければ例えば`\mathnormal{A}`としてください。ちなみに`\mathit`の中に入れると一部のアルファベット（例えばC）が細くなってしまいます。

`\mathnormal`の出力
![C-nt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823185/385c75d1-752e-0d6e-3941-afb35ff71bf3.png)
`\mathit`の出力
![C-nt-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823185/b8f38cb7-0e64-19de-1bc8-c03e30bd3e72.png)



# さらに補足

この記事を書くにあたってZR-TeXnobabblerさんの[チョット数式フォントしてみる話(1)](https://zrbabbler.hatenablog.com/entry/20160604/1465051124)という記事を参考にさせていただきました。

その記事によると、数式英字フォント\mathrmも数式記号フォント“operators”も同じ`OT1/cmr/m/n`というフォントが使われているそうです。ちなみに数式英字フォント\mathitは`OT1/cmr/m/it`で数式記号フォント“letters”は`OML/cmm/m/it`になっていて、出力がちょっと違っているのはどうやらこのためのようです。


# 参考文献
[チョット数式フォントしてみる話(1)](https://zrbabbler.hatenablog.com/entry/20160604/1465051124)
[The LATEX2ε Sources](https://ftp.kddilabs.jp/CTAN/macros/latex/base/source2e.pdf)