Math in table of contents, bookmarks and heading

Two suggestions:

  • Use the "long title" -- the stuff inside curly braces -- to typeset the material in the way you want it to appear in the sectioning header itself; in particular, use \bm (or an equivalent macro) to create bold math symbols.

  • Use the \texorpdfstring macro (provided by the hyperref package) inside the "short title" -- the stuff inside square brackets -- to instruct LaTeX what to show (a) in the table of contents (e.g., ordinary, non-bold math symbols) and (b) in the pdf bookmarks (e.g., no math symbols at all).

Note that the following screenshot shows only the ToC entry (resulting from the first argument of \texorpdfstring) and the header line (the "long title"), but not the pdf bookmark (which results from the second argument of \texorpdfstring):

enter image description here

\documentclass{article}  
\usepackage{bm} % for bold math
\usepackage[colorlinks=true]{hyperref}%%%%%%
\begin{document}  
\tableofcontents
\section[\texorpdfstring{Math symbols $\sum, \int$}%
                        {Math symbols sum, integral}]% % choose text-only material here
        {Math symbols $\bm{\sum, \int}$}  % note use of \bm ("bold math")
\end{document}

Both symbols \sum and \int are also available in Unicode and are supported with Unicode bookmarks. Example of Mico extended accordingly:

\documentclass{article}
\usepackage{bm} % for bold math
\usepackage[
  colorlinks=true,
  pdfencoding=auto, % or unicode
  psdextra,
]{hyperref}[2012/08/13]
\usepackage{bookmark}% recommended
\begin{document}
\tableofcontents
\section[\texorpdfstring{Math symbols $\sum, \int$}%
                        {Math symbols \sum, \int}]%
        {Math symbols $\bm{\sum, \int}$}  % note use of \bm ("bold math")
\end{document}

Result AR9/Linux


I like Heiko Oberdiek's solution. The question remains what one can do if one wants to add Unicode characters that don't have predefined commands like \int and \sum.

One option is to \usepackage[utf8]{inputenc} and \hypersetup{pdfencoding=unicode} (if it is not already set as an option to hyperref), and to include literal UTF-8 encoded characters in the source file.

This works fine, but personally I don't like using non-ASCII encodings in source files. One reason is that my preferred text editor does not always have the fonts to display every Unicode character. Another is that I like to be able to copy and paste source code into places (like here) where Unicode may or may not show up correctly at the other end.

Here is another option, using TeX's ^^ input syntax to "armor" the Unicode as ASCII. This requires first determining the byte-per-byte UTF-8 encoding of each character. They can then be written like this:

\documentclass{article}

\usepackage[pdfencoding=unicode]{hyperref}
\usepackage[utf8]{inputenc}

\usepackage{amsfonts}

\begin{document}

\section{The group \texorpdfstring
                   {$U_n(\mathbb{D}[\omega])$}
                   {U^^e2^^82^^99(^^e2^^85^^85[^^cf^^89])}}

\end{document}

example output
(source: mathstat.dal.ca)