\bm のとき積分記号と下付文字が離れてしまう

\bm のとき積分記号と下付文字が離れてしまう

- gbb 60166 の投稿
返信数: 2
ご無沙汰しています。gbb60166です。

\bm パッケージを使っていて不思議なことに気づいたので質問です。

\documentclass{jsarticle}
\usepackage{bm}
\begin{document}
\( \displaystyle V=2\pi\int_0^r \left(\sqrt{r^2-x^2}\right)^2 dx \)

\( \bm{\displaystyle V=2\pi\int_0^r \left(\sqrt{r^2-x^2}\right)^2 dx} \)
\end{document}

をコンパイルしたとき \bm を指定した方は積分記号と下付文字の0が離れてしまいます。Windows7上でW32TeX 64bitでコンパイルしています。

これはなぜなのでしょうか?。ご存じの方教えて下さい。
gbb 60166 への返信

Re: \bm のとき積分記号と下付文字が離れてしまう

- 本田 知亮 の投稿
いくつかの原因がからんんでますが
まず,通常の\boldmathでは積分記号などの大型演算子(omxエンコーディング)のものは太くなりません.
それはもともと大型演算子の太いバージがデザインされていないからです.
しかし,bmパッケージは,デザインされていないそのようなものの太いものが要求されて場合に,すこしずらし重ね書きをする,いわゆるpoor man's boldで太いものを作ります.

一方,TeXの数式添え字で右につくものは,その親文字の右端の上下に縦揃えでつくのが本来の位置です.しかしそれでは綺麗ではないことが多々あります.そこで,親文字ごとに添え字をずらすためのパラメータを持っています.したがって,この親文字の補正パラメータが存在しない,そもそも0である,もしくは取得できないの場合,補正が0,つまり「縦に揃う」状態になります.

ということで,bmパッケージで太字が用意されていない記号を太くしようとすると重ね書きが行われ,重ね書きの過程で記号がボックスに入り,それによってその文字の補正がないことになり,添え字が位置の補正が消え,「縦に揃う」というわけです.

単純なサンプルをつけます.
\SetSymbolFontをコメントアウトしたりしなかったりすれば動きがわかりますが,
解決策としては太字の大型演算子フォントそのものを用意するということが考えられます.

\documentclass{jsarticle}
\SetSymbolFont{largesymbols}{bold}{OMX}{txex}{m}{n}
\usepackage{bm}
\begin{document}
$$
\int_0^1
$$


$$
\bm{\int}_0^1
$$


\Huge
$$
\mathit{f}^{a}_{b} \mathit{I}^{a}_{b}
\mbox{$\mathit{f}$}^{a}_{b} \mbox{$\mathit{I}$}^{a}_{b}
$$

\end{document}


本田 知亮 への返信

Re: \bm のとき積分記号と下付文字が離れてしまう

- gbb 60166 の投稿
ありがとうございます。見やすくしようと数式を太くしたらえらく積分記号と離れてしまうのに気づきました。

ソースを見たのですが私には理解できませんでした。仕組みが何となく分かってすっきりしました。