数式モードで大文字だけデフォルトでboldにするには

Re: 数式モードで大文字だけデフォルトでboldにするには

- 匿 名 の投稿
返信数: 0
要点は次のことではないでしょうか.

LaTeX2e では,\DeclareMathAlphabet で定義された数式用書体変更コマンド
(\mathbf,\mathsf など)に対応する family 番号は,
(数式のバージョンごとに)「オンデマンド」で設定されます.
したがって,\mathbf などと family 番号の対応は事前にはわかりませんし,
1 回も \mathbf を用いていない状態では \mathbf に対応する family 番号は
「未設定」です.
# \mathbf や \mathsf などの使用順によって変わる可能性がありますし,
# その他の要因(「disablejfam クラスオプションの適用の有無」「bm などの
# パッケージの読み込みの有無」など)によっても変わることがあります.

# なお,\DeclareSymbolFontAlphabet で定義された数式用書体変更コマンド
# (\mathrm など)の場合は,それらに対応する family 番号は定義の時点で
# わかります.

-----
件の \EXP のようなマクロを定義するには,単純には「\mathbf をあらかじめ
使って family 番号を確定させてからそれを読みとる」という方法が考えられます.
e.g.
\def\EXP#1{%
  {\mathbf{\xdef\@famno@for@mathbf{\hexnumber@\mathgroup}}%
  \change@uppercase@math #1}}
% \change@uppercase@math の定義では,
% "7600 の 6 を \@famno@for@mathbf に変更