Why does this minimal example code:
\documentclass{article}
\usepackage[francais]{babel}
\begin{document}
\def\names{Toto,Titi,Tete,Tutu}
\makeatletter
\@for\next:=\names\do{\textbf{\next} }
\makeatother
\end{document}
lead to this error message:
Runaway argument?
\next :=\names \do {\textbf {\next } } \makeatother \par \end {docume\ETC.
! File ended while scanning use of \@for.
but the same code works perfectly if I delete the line
\usepackage[francais]{babel}
and of course, is there any solution that preserves the use of the [french] option?
\@forat a document level, you're probably doing something wrong. It should presumably be wrapped inside macros with a better semantic. Then just define that macro before\usepackage[francais]{babel}. – Bruno Le Floch Jul 18 '12 at 19:12