Bold Math

From Wiki
Jump to navigation Jump to search

< Math | Bold Typewriter | Fonts >

see MyWay No.5 about "Mixed Normal and Bold Math" by Pragma

Wrapping in a \hbox

If the solution presented in that MyWay does not suit your needs, you can always use a \hbox wrapper, by defining something like this:

\definetypeface [boldmath] [mm] [boldmath] [latin-modern] [default]
\setupformulae[method=bold]
\unprotect
\def\boldsymbol@normal#1{\hbox{\formula[boldmath]{#1}}}
\def\boldsymbol@inline{\boldsymbol@normal}
\def\boldsymbol@script#1{\hbox{\formula[boldmath,script]{#1}}}
\def\boldsymbol@scriptscript#1{\hbox{\formula[boldmath,scriptscript]{#1}}}
\def\boldsymbol#1{%
  \mathchoice
    {\boldsymbol@normal{#1}}%
    {\boldsymbol@normal{#1}}%
    {\boldsymbol@script{#1}}%
    {\boldsymbol@scriptscript{#1}}}
\protect

Then you can get bold vectors:

\define\grad{\boldsymbol{\nabla}}
%\define\vec{\boldsymbol} % Raise a warning because \vec
\def\vec{\boldsymbol}     % is already defined in ConTeXt.
\define[1]\unitvec{{\hat{\vec{#1}}}}

and formulas like this typeset perfectly:

\formula{\grad \eta = e^{\vec k \cdot \vec x} \unitvec{n}}

An Alternate Definition

An alternate way to define \boldsymbol is

\def\boldsymbol#1%
  {\mathchoice
   {\hbox{\switchtoformulabodyfont             [boldmath]$#1$}}
   {\hbox{\switchtoformulabodyfont             [boldmath]$#1$}}
   {\hbox{\switchtoformulabodyfont      [boldmath,script]$#1$}}
   {\hbox{\switchtoformulabodyfont[boldmath,scriptscript]$#1$}}}

This is slightly more efficient than the first version.


Mixing Math Fonts

This should be better documented and should go into a separate document, but until then I just leave it here before it gets lost. Perhaps the example above could be typeset in a similar way as well.


Someone thinks this entry needs some more explanation. (See: Needs Explanation?, To-Do List.)


Background: If you use

\setupbodyfont[ant] % Antykwa Torunska

the math will be typeset with Antykwa as well. (Perhaps this is a deprecated way of selecting fonts, I don't know. It works on my distribution, but not on the garden. Please use at your own risk.)

So far so good. You get pretty mathematical symbols mathcing the document style. The problem arises when you want to try something like

$\Longrightarrow$

Solution: Taco provided the following code and comments:

\starttypescript [math] [antykwa-torunska] [name]
  \definefontsynonym [MathRoman]        [ComputerModernMath-Roman]
  \definefontsynonym [MathExtension]    [ComputerModernMath-Extension]
  %definefontsynonym [MathItalic]       [ComputerModernMath-Italic]
  \definefontsynonym [MathSymbol]       [ComputerModernMath-Symbol]
\stoptypescript

Since there is more in the MathItalic fonts than just letters, it may produce un-even effects.

If you want more detailed control, you have to load extra math font families and redefine selected bits of the math collection (see also font-unk.tex, math-tex.tex and type-syn.tex)