#  don't work with TOC?

If I write this line of code

\subsection{Ranger $$n$$ boules distinguables dans $$M$$ boîtes}


I obtain an error over the second \)

(./Probabilité.toc

./Probabilité.toc:8: LaTeX Error: Bad math environment delimiter.


while if I write

\subsection{Ranger $n$ boules distinguables dans $M$ boîtes}


everything is ok.

Why?  has problems with TOC?

$$ and $$ are not robust, you need to \protect them. Or load package fixltx2e that makes them robust.

(Update:) Package fixltx2e defines the command \MakeRobust that redefines a macro in the same way, as the macro would has been defined by using \DeclareRobustCommand in the first place.

"Robust" means, that the macro can be used inside moving arguments (entries for the table of contents, header lines, …) without breaking and the need to add \protect in front of them.

• – Werner Sep 25 '12 at 21:28
• Package fixltx2e made it, thanks for your explanations. – Clément Nov 14 '14 at 14:03

A short 'aftermath': Since fixltx2e content has entered the LaTeX Kernel as of 2015/01/01 the fixltx2e amendments are available without loading the package.

This means: $$...$$ is robust now without much further ado!

Heiko Oberdiek's answer is valid anyway for older distributions of course!

\documentclass{article}

\usepackage[utf8]{inputenc}
\begin{document}
\tableofcontents
\section{Ranger $$n$$ boules distinguables dans $$M$$ boîtes}
\end{document}