This question is motivated by a question asked me by a friend who is working on his thesis in mathematics. His section headings occasionally contain math, which:
- he would like to be in boldface to match the rest of the section title; but
- he would like to be medium-weight when it occurs in the table of contents, as with the rest of the section title.
He was using \mathbf
to make the math boldface in his section headings; this of course also made them bold in the table of contents. I gave him a simple solution which inserted code at the beginning of the table of contents, which would make \mathbf
pass its arguments unchanged. Of course, \mathbf
also makes its arguments upright rather than math-italics, which I would also consider less than desirable; and it has no effect on e.g. greek characters, for which you would have to use something like the \bm
command of bm.sty
instead. (You could play the same trick with \bm
as with \mathbf
in the table of contents, but having to repeatedly use different math macros for all math in section headings to me seems inelegant.)
What would be the most elegant way to automatically render all math (including non-latin characters) in bold-face for section headings, but the normal medium-weight everywhere else (including the entries of the table of contents)?
Best Answer
The simplest thing is to patch
\@startsection
and\@chapter
(assumingbook
orreport
class):#8
is the argument to\@sect
that contains the title; but\boldmath
will not leak to the table of contents nor to the headers (for headers it's sufficient to usefancyhdr
and issue\boldmath
, if bold headers are desired).It doesn't work with
\paragraph
and\subparagraph
, nor with\chapter*
. It shouldn't be a problem to issue\boldmath
in the argument of an occasional\chapter*
.