在法语文档中写数学时,应使用分号而不是逗号来分隔矢量或点的坐标(例如)。问题是,在数学模式下,即使使用\usepackage[french]{babel}
,分号周围的间距也是错误的(它前面没有空格),您必须添加~
或\,
。
如何使分号在数学模式下正常工作?
答案1
如果在这些上下文中总是在数学中使用分号,则可能需要将分号变成二元运算符。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\AtBeginDocument{\mathcode`\;=\numexpr\mathcode`\;-\string"4000\relax}
\begin{document}
Point-virgule; une formule $(a;b)$.
\end{document}
另一种方法(可能是向的维护者提出的功能请求babel-french
)是修改在数学模式下分号的工作方式。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\makeatletter
\declare@shorthand{french}{;}{%
\ifhmode
\ifdim\lastskip>\z@
\unskip\penalty\@M\FBthinspace
\else
\FDP@thinspace
\fi
\else
\ifmmode
\mskip\thinmuskip
\fi
\fi
\string;}
\makeatother
\begin{document}
Point-virgule; une formule $(a;b)$.
\end{document}