使用此代码时:\DeclareSymbolFont{letters}{OT1}{cmss}{m}{n} %
当我的点位于美元标记内时,它们会变成分号$...$
。
我怎样才能解决这个问题?
参考:方程式中的非斜体文本
答案1
letters
(来自)的标准定义fontmath.ltx
是
\DeclareSymbolFont{letters}{OML}{cmm}{m}{it}
在同一文件中后面几行中,句号定义为
\DeclareMathSymbol{.}{\mathord}{letters}{"3A}
这意味着,当您在数学模式中输入句点时,将使用来自的插槽(即十进制数).
中的符号。在编码中,这确实是句点,如以下字体表中所示"3A
58
letters
OML
使用你的命令(我猜,其目的是让无衬线数学直立(?))
\DeclareSymbolFont{letters}{OT1}{cmss}{m}{n}
你说的是letters
必须从编码的 Computer Modern sans-serif 字体中获取OT1
;在这种情况下,字体表是
比较这两个表格可以发现,大写希腊字母和拉丁字母确实在两种情况下占据相同的位置,但大多数其他符号则不然。特别是,打字.
仍然会寻找位置"3A
,但现在那里有一个冒号。
长话短说:如果您想要无衬线数学,最好不要使用低级命令(除非您知道它们),而是使用专用包,例如sansmath
或sansmathfonts
。