普通和无衬线数学模式下的希腊字符

普通和无衬线数学模式下的希腊字符

这是一个简单的演示程序:

\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}

相关内容