Babel settings might contain @ characters. Check for this and wrap the settings into \makeatletter ... \makeatother switches if necessary (see discussion at #8265).
if (!params_.language->babel_presettings().empty())
tmp << params_.language->babel_presettings() << '\n';
- return tmp.str();
+ if (!contains(tmp.str(), '@'))
+ return tmp.str();
+
+ return "\\makeatletter\n" + tmp.str() + "\\makeatother\n";
}
if (!params_.language->babel_postsettings().empty())
tmp << params_.language->babel_postsettings() << '\n';
- return tmp.str();
+ if (!contains(tmp.str(), '@'))
+ return tmp.str();
+
+ return "\\makeatletter\n" + tmp.str() + "\\makeatother\n";
}