bmパッケージでImproper alphabetic or KANJI constant.

bmパッケージでImproper alphabetic or KANJI constant.

- 清水 の投稿
返信数: 1

こんにちは

下記のサンプルでコンパイルすると「Improper alphabetic or KANJI constant.」エラーが出ます

\documentclass[dvipdfmx]{jsarticle}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\begin{document}
$\bm{A\hspace{5pt}A}$
\end{document}

しかし

\documentclass[dvipdfmx]{jsarticle}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\begin{document}
$\bm{{A\hspace{5pt}A}}$
\end{document}

bmコマンド部分を括弧で括るとエラーは解消されます。

これはなぜ起こるのでしょうか。
ご教授願えると幸いです。

清水 への返信

Re: bmパッケージでImproper alphabetic or KANJI constant.

- しっぽ 愛好家 の投稿
(現行の(?))\bm はその引数を(適宜展開しつつ)1文字・1コマンドずつチェックして「太字版」に差し替えていきますが,その処理がうまくいかないケースがある,という話です
(TeX Live2018 ではエラーなく処理できましたので,内部処理はどこかで変更された模様).
 
お気づきのように,うまくいかないコマンドとその引数を {,} で囲めはいくぶん安全に処理されるようですね.
もちろん,\bm{A}\hspace{5pt}\bm{A} のごとく,\bm を適用したところで意味のないものは \bm の引数から出すのもよいでしょう.