`\bm{の作り方}` は `\usepackage[libertine]{newtxmath}` および pdflatex で動作しますか?

`\bm{の作り方}` は `\usepackage[libertine]{newtxmath}` および pdflatex で動作しますか?

0lualatex で次のコードをコンパイルすると、期待どおりに太字になります。ただし、 0pdflatex では通常の (太字ではない) 文字になります。pdflatex で太字にするための回避策はありますか0?

\documentclass{article}
\usepackage[libertine]{newtxmath} 
\usepackage{bm}

\begin{document}
0$0\bm{0}$ % OK with lualatex, but not with pdflatex
\end{document}

私の環境は

pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
LuaTeX, Version 0.95.0 (TeX Live 2016)
bm: 2017/01/16
newtx: 1.515 2017-01-22

答え1

libertineオプションとして渡すとnewtxmath、太字の文字に数学のセミボールド ウェイトが使用されます。ただし、テキスト フォントが読み込まれていないため、数学の数字などにデフォルトの Computer Modern フォントが使用されていますが、Computer Modern フォントのセミボールド ウェイト バージョンはありません。回避策としては、フォント置換命令を追加することです。

\DeclareFontShape{OT1}{cmr}{sb}{n}{<->ssub * cmr/b/n}{}

sb下記の文書が示すように、重量を重量で置き換えることで、望ましい結果が得られますb。しかし、実際には、数学に一致する適切なテキストフォントをロードする必要があります。たとえば、次のようにします。

\usepackage{libertine}

代わりにロードする前にnewtxmath

サンプル出力

\documentclass{article}

\usepackage[libertine]{newtxmath}
\usepackage{bm}
\DeclareFontShape{OT1}{cmr}{sb}{n}{<->ssub * cmr/b/n}{}

\begin{document}

Testing some mathematics \( x = y^2 = \int_0^1 2y\,dy \).

Testing some bold symbols \( \bm{v} = (0,0,0) = \bm{0} \).

\end{document}

\showoutputちなみに、ファイル内で発行すると、どの文字が印刷されているかを正確に確認できます。

関連情報