Unfortunately, when using the Unicode engines (XeLaTeX,
LuaLaTeX), neither \boldmath
nor bm
usually work
well, because the OpenType math fonts normally used with those engines
rarely come with a bold companion, and both \boldmath
and
bm
require this. (The implementation of bm
relies
on \boldmath
, so the requirements are the same.) If you do have
a bold math font, though, then \boldmath
and bm
work
fine.
If no such font is available, one alternative is to construct fake
bold fonts with the fontspec
package’s FakeBold=1
parameter (see its documentation,
https://ctan.org/pkg/fontspec). This may be acceptable for
drafting or informal distribution, but the results are far from a true
bold font.
Another alternative to handling bold for OpenType math fonts is to use
the \symbf
(bold), \symbfit
(bold italic), and related
commands from the unicode-math
package. These do not change
the current font, but rather change the (Unicode) “alphabet” used,
which in practice is more widely supported than a separate bold font.
Many variations are possible, and so there are subtleties to getting the
desired output. As usual, see the package documentation
(https://ctan.org/pkg/unicode-math).