Babel 和 MinionPro/MinionMath 的数学逗号问题:排版为倒 E

Babel 和 MinionPro/MinionMath 的数学逗号问题:排版为倒 E

以下代码在我的系统上排版为倒置的 E 而不是数学逗号(texlive 2014,OSX)

\documentclass{book} 

\usepackage[T1]{fontenc}
\usepackage[onlytext]{MinionPro}
\usepackage{minionmath}
\usepackage[italian,british]{babel} 

\begin{document}     
Hallo. $(a,b)$. $(c, d)$.    
\end{document}

所有提到的命令似乎都是必要的;没有“italian”,就没有问题;如果去掉“minionmath”,也不会有问题。(虽然可以去掉“british”,但问题仍然存在。)有人能帮忙吗?

PS 似乎\usepackage{icomma}在 babel 命令后添加“sort of”可以解决问题;但这样我就必须检查文件中的数千个逗号,并检查它们后面是否有空格。这是不可行的……

答案1

中的代码错误italian.ldf:这样的代码是错误的,因为它依赖于逗号的数学代码与标准设置中的相同,而minionmath使用 时情况并非如此。事实上,逗号的标准数学代码是"613B,而 则"622C变为minionmath

结果是\virgola\virgoladecimale指向一个随机字符。

您应该能够使用 hack 来修复该问题:定义\virgola为指向正确的 mathchar(加载后minionmath)并且\virgoladecimale为相同的字符,但是用括号括起来变成普通原子。

\documentclass{book} 

\usepackage[T1]{fontenc}
\usepackage[italian,british]{babel} 

\usepackage[onlytext]{MinionPro}
\usepackage{minionmath}

\mathchardef\virgola=\mathcode`,
\def\virgoladecimale{{\virgola}}

\begin{document}     
Hallo. $(a,b)$. $(c, d)$.    
\end{document}

相关内容