Most math symbols (in classic TeX) come from fixed fonts (one of 16 font families assigned to the math formula). Some characters (but typically just upper and lower case latin letters and digits) can be assigned a variable family in which case they pick up the current math group (\fam
primitive).
\boldsymbol
is more or less \mbox{\boldmath$#1$}}
so makes a nested math expression in which the entire font assignment is changed.
\bm
is typically more efficient and gives better spacing as (if there is a slot available) it uses a free slot in the existing version.
unicode-math
package for xetex/luatex changes things.
It's up to the font designer to decide how a particular glyph should be rendered in their font.
You can decide to borrow a particular symbol from another font, though. It seems that your preference goes for the symbol in Times, so the simplest strategy is to do
\newcommand{\myfavoriteat}{{\fontfamily{ptm}\selectfont @}}
and to use \myfavoriteat
(or whatever name you prefer).
You might also decide to make @
active so to be able to simply type @
.
\documentclass{article}
\protected\def\myfavoriteat{%
{\fontfamily{ptm}\selectfont @}%
}
\begingroup\lccode`~=`@ \lowercase{\endgroup\let~}\myfavoriteat
\catcode`@=\active
\begin{document}
This is @.
This is \symbol{`@} (original in the font)
\end{document}
If you go with the active character approach, don't blame me if something goes wrong. I did warn you.
Best Answer
Your symbol is not
\mathfrak{B}
. It's a\mathfrak{P}
Here's the complete list of the uppercase Fraktur letters