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}
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}
...