mathptmx 给出的逗号字体错误

mathptmx 给出的逗号字体错误

当我使用 时mathptmx,逗号显示为现代计算机字体,而不是罗马字体。有人知道如何修复此异常吗?

编译它来查看区别:

\documentclass{article}
\usepackage{mathptmx}
\begin{document}
\textit{a}$a$ (the \textit{a}'s are the same, hurray)
,$,$ (the commas are different, grumble)
\end{document}

答案1

mathptmx 使用的字体是一种虚拟字体,由来自其他字体的乘号字母和各种符号组成。设计师选择从 cm 字体中取出逗号,而不是从用于字母的字体中取出逗号。

因此,如果你想要不同的选择正确的更改的地方是在设置虚拟字体的 fontinst 文件中。但这有点像黑魔法,所以另一种方法是,在 TeX 中给出一个定义来拾取文本模式逗号。如果您需要让下标变得更小,amsmath也可以加载它将重新定义\textrm

\documentclass{article}
\usepackage{mathptmx}
\mathcode`,"8000

\begingroup
\lccode`\~`\,\lowercase{\endgroup
\def~{\mathpunct{\textrm{,}}}}
\begin{document}
\showoutput
\textit{a}$a$ (the \textit{a}'s are the same, hurray)
,$,$ (the commas are different, grumble)
\end{document}

相关内容