Como fazer `\bm{}` funciona com `\usepackage[libertine]{newtxmath}` e pdflatex?

Como fazer `\bm{}` funciona com `\usepackage[libertine]{newtxmath}` e pdflatex?

Fico em negrito 0quando executado quando compilo o código a seguir com lualatex. No entanto, fico normal (sem negrito) 0com o pdflatex. Existe alguma solução alternativa para ousar 0com o pdflatex?

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

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

Meu ambiente é

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

Responder1

Quando você passa libertinecomo opção para newtxmathele então usa o peso semi-negrito em matemática para caracteres em negrito. No entanto, você não carregou uma fonte de texto, então as fontes padrão Computer Modern estão sendo usadas para números, etc. em matemática, mas não existe uma versão semi-negrito das fontes Computer Modern. Uma solução alternativa é adicionar uma instrução de substituição de fonte

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

o que dá o resultado desejado, como demonstra o documento abaixo, substituindo o sbpeso pelo bpeso. Mas na verdade você deveria carregar uma fonte de texto apropriada para corresponder à matemática, por exemplo, apenas emitir

\usepackage{libertine}

antes de carregar newtxmath.

Exemplo de saída

\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}

Aliás você pode ver exatamente quais caracteres estão sendo impressos emitindo \showoutputem seu arquivo.

informação relacionada