Declaresymbolfont 将点替换为分号

Declaresymbolfont 将点替换为分号

使用此代码时:\DeclareSymbolFont{letters}{OT1}{cmss}{m}{n} %当我的点位于美元标记内时,它们会变成分号$...$

我怎样才能解决这个问题?

参考:方程式中的非斜体文本

答案1

letters(来自)的标准定义fontmath.ltx

\DeclareSymbolFont{letters}{OML}{cmm}{m}{it}

在同一文件中后面几行中,句号定义为

\DeclareMathSymbol{.}{\mathord}{letters}{"3A}

这意味着,当您在数学模式中输入句点时,将使用来自的插槽(即十进制数).中的符号。在编码中,这确实是句点,如以下字体表中所示"3A58lettersOML

在此处输入图片描述

使用你的命令(我猜,其目的是让无衬线数学直立(?))

\DeclareSymbolFont{letters}{OT1}{cmss}{m}{n}

你说的是letters必须从编码的 Computer Modern sans-serif 字体中获取OT1;在这种情况下,字体表是

在此处输入图片描述

比较这两个表格可以发现,大写希腊字母和拉丁字母确实在两种情况下占据相同的位置,但大多数其他符号则不然。特别是,打字.仍然会寻找位置"3A,但现在那里有一个冒号。

长话短说:如果您想要无衬线数学,最好不要使用低级命令(除非您知道它们),而是使用专用包,例如sansmathsansmathfonts

相关内容