bm package versus \boldsymbol

The \bm command from package bm has both advantages and drawbacks over the \boldsymbol command from package amsbsy (loaded by amsmath). The first advantage of \bm is that it keeps the italic correction, so that something like \bm{T}_1^2 will look better than \boldsymbol{T}_1^2 (if you want to compare the two in a document, you must be careful that bm redefines \boldsymbol):

bm vs. boldsymbol: italic correction

The second advantage is that \bm does not disrupt the spacing, whereas \boldsymbol does, even though it works correctly for binary operations (like +) and for relations (like =). As an example, here's the comparison between \boldsymbol{[}-1;1] and \bm{[}-1;1]:

bm vs. boldsymbol: spacing

However, \bm sometimes requires the user to add braces to avoid problems. For example, \bm{\dots} will provoke an error with amsmath, the solution being to type \bm{{\dots}}. Double accents also need to be enclosed in braces to work properly:

\documentclass{article}
\usepackage{amsmath,bm}
\begin{document}
%$\bm{\dots}$% causes an error
$\bm{\mathinner{\dots}}$% works
$\bm{\hat{\dot{\phi}}}$% does not work correctly
$\bm{{\hat{\dot{\phi}}}}$% works correctly
\end{document}

bm double accents: with and without braces

Finally, math alphabet nesting works better with \boldsymbol than with \bm. For example, here's the result of \mathrm{g\boldsymbol{g}} and \mathrm{g\bm{g}}:

bm vs. boldsymbol: font nesting


If you take a look at the documentation for bm, it says that if the bold fonts are not allocated, it will use the correct symbol—if it exists—by using \boldmath, but that this is slower. If there is not a bold version of the symbol, it uses poor man's bold.

I think that in most cases, you want to use \bm.