To make Latin-letter variables bold I can use e.g. \mathbf{a}, but while putting Greek letters or symbols such as \nabla inside \mathbf doesn't cause any errors or warnings, it also doesn't do anything else.

What is the best way to make bold math symbols, in particular Greek letters and \nabla?

warning: if the default computer modern fonts are used, the weight of bold lowercase greek will not appear as bold as that of bold lowercase roman, and it isn't. default bold math (\mathbf} with computer modern fonts uses the font cmbx* which is an extended font. \boldsymbol or bm use the only cm font that is usually available in bold, cmmib10, which is not an extended font. thus the bold greek letters are indeed not as "bold" as the roman.
–
barbara beetonAug 26 '12 at 21:45

ehm bm ehm. Can you underline "experience" with facts about problems of bm?
–
yo'Feb 21 '13 at 17:32

1

@tohecz No, unfortunately not. I don't have the particular example anymore. I just happened to stumble on this old question and I thought I'd add this list since I did encounter tricky cases where it was helpful to be able to try different approaches. bm should surely be the first package to try though. I will add examples where it doesn't work when it ever happens again.
–
ChristianFeb 21 '13 at 17:48

You can always use \boldsymbol{}, but this will only work if there exists a bold version of the symbol in the current font.
–
sinbagJan 15 at 4:44

In my personal experience, \pmb (the faked bold) is the most universal
–
SzczypawkaMay 11 at 16:57

@Szczypawka Most universal ... probably. But also a measure of last resort.
–
ChristianMay 11 at 18:06

While \bm and \boldmath are some good options in LaTeX, modern packages for XeLaTex can give a lot more control over the fonts from the very beginning, without the need to use commands different from the standard \mathbf that every one expects naively to work the first time one tries to write bold italic characters.

In XeLaTeX (part of TeXLive), the package fontspec gives a lot of freedom when dealing with fonts. If you want even more flexibility for mathematical input, you can try using the package unicode-math (that is built on fontspec). Nevertheless you will find the \bm and \boldsymbol traditional commands don't work. You can nonetheless specify how you want it to deal with your bold math symbols using an option while loading the unicode-math package. \usepackage[bold-style=ISO]{unicode-math} will give the recommended italic bold math symbols for both greek and latin characters, while \usepackage[bold-style=TEX]{unicode-math} will give upright latin characters. This is explained in the unicode-math documentation .

This minimal working example:

%run this with XeLaTeX!!
\documentclass{article}
\usepackage[bold-style=ISO]{unicode-math}
%\usepackage[bold-style=TEX]{unicode-math}
\setmainfont{XITS}
\setmathfont{XITS Math}
\begin{document}
This is common math $O(\log n)+O(\lambda,\,\epsilon)$
This is bold and italic $\mathbf{O(\log n)}+\mathbf{O(\lambda,\,\epsilon)}$ where it must :)
\end{document}

In order to have just one command for both bold text and bold math, one can use the solution suggested on LaTeX Community (/forum/viewtopic.php?t=10866&f=44#p42084, link not allowed). Editing this solution slightly in order to incorporate the bm package, one could use the following.