这是一个简单的演示程序:
\documentclass[12pt]{article}
\usepackage[utf8x]{inputenc}
\DeclareMathVersion{sans}
\SetSymbolFont{letters}{sans}{OT1}{cmss}{m}{sl}
\begin{document}
\[
x + \alpha \beta
\]
\mathversion{sans}
\[
x + \alpha \beta
\]
\end{document}
它工作正常,但无衬线数学没有正确的希腊字符。添加以下几行几乎可以解决问题:
\usepackage[LGR]{fontenc}
\DeclareSymbolFont{grekletters}{LGR}{cmr}{m}{sl}
\DeclareMathSymbol{\alpha}{\mathord}{grekletters}{`a}
\DeclareMathSymbol{\beta}{\mathord}{grekletters}{`b}
%...
\SetSymbolFont{grekletters}{sans}{LGR}{cmss}{m}{n}
但是现在数学模式里的希腊字母已经不是原来的了,原来的希腊字母在哪呢?
有类似的问题: 在数学模式中替换希腊字母。不过,这是关于 luatex 的。
另外,我无法使用该sansmath
包,因为它不支持我的字体编码。
答案1
字体letters
应为编码为 的字体OML
,而不是OT1
;您可以使用 CMBright 来处理这些字体和该OMS
系列字体;Iwona 可以很好地替代大符号:
\SetSymbolFont{operators} {sans}{OT1}{cmss} {m}{n}
\SetSymbolFont{letters} {sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols} {sans}{OMS}{cmbrs}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}