Bug using breqn and babel

The babel-french module does \std@math@comma upon entering and also exiting French language blocks.

This resets the mathcode for the comma to the standard, but breqn wants that the mathcode stays "8000.

Simply make \std@math@comma to do nothing.

\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{breqn}

\makeatletter
\let\std@math@comma\relax
\makeatother

\begin{document}

\[\{A, B, C\}\]

\selectlanguage{french}
\[\{A, B, C\}\]

\selectlanguage{english}
\[\{A, B, C\}\]

\end{document}

enter image description here

You should be aware that breqn is not really compatible with several package and is better not used in serious typesetting tasks.


For lualatex use

\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{breqn}
\usepackage{unicode-math}
...

Tags:

Luatex

Breqn