![mathptmx 给出的逗号字体错误](https://linux22.com/image/248255/mathptmx%20%E7%BB%99%E5%87%BA%E7%9A%84%E9%80%97%E5%8F%B7%E5%AD%97%E4%BD%93%E9%94%99%E8%AF%AF.png)
当我使用 时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}