答案1
您可以限制活动角色因环境而发生的变化 otherlanguage
,将其包含在以下范围内{}
:
\documentclass{standalone}
\usepackage{icomma}
\usepackage[english,french]{babel}
\begin{document}
$0,123$
{\begin{otherlanguage}{english}
It's a Wonderful Life
\end{otherlanguage}}
$0,123$
\end{document}
如果你经常使用这个环境,你可以使用宏来简化你的生活:
\documentclass{standalone}
\usepackage[english,french]{babel}
\newcommand\Eng[1]{{\begin{otherlanguage}{english}#1\end{otherlanguage}}}
\usepackage{icomma}
\begin{document}
$0,123$
\Eng{It's a Wonderful Life}
$0,123$
\end{document}
答案2
更改语言后的“重置”代码会故意更改设置。要撤消该设置,我们可以使用\extrasfrench
:
\documentclass{standalone}
\usepackage{icomma}
\usepackage[english,french]{babel}
\addto\extrasfrench{\mathcode`\,="8000 }
\addto\noextrasfrench{\mathcode`\,="8000 }
\begin{document}
$0,123$
\begin{otherlanguage}{english}
\end{otherlanguage}
$0,123$
\end{document}
(该软件包icomma
通过使‘数学活跃’起作用,
,因此我们需要保持其处于打开状态。)
更新
随着版本 v3.2f(2017/01/15)的发布babel-french
,该问题似乎已得到解决。
\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{icomma}
\begin{document}
$0,123$
\begin{otherlanguage}{english}
$0,123$
\end{otherlanguage}
$0,123$
\end{document}