
非常類似這問題 我想在文件的(小)部分使用不同的無襯線數學字體。正如建議的這回答上述問題,這可以使用\DeclareMathAlphabet
電腦現代字體來實現,如下所示。
\documentclass{article}
\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{cmbr}{m}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}
\begin{document}
1234 CQ $1234 CQ$
\sffamily\mathversion{sans}
1234 CQ $1234 CQ$
\end{document}
但是,在我的文件中,我想使用 Roboto 作為無襯線字體。這樣做會導致文件和數學字體之間存在明顯差異。
\documentclass{article}
\usepackage[light,medium]{roboto}
\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{cmbr}{m}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}
\begin{document}
1234 CQ $1234 CQ$
\sffamily\mathversion{sans}
1234 CQ $1234 CQ$
\end{document}
例如,請注意數字 1 或字母 Q 的不同形狀。對於特殊符號來說,這當然不會(容易)起作用,但是從 Roboto 字體中獲取數字、字母和理想的希臘字母就已經很棒了。
改變第一個\SetSymbolFont
,我已經可以更近了。
\documentclass{article}
\usepackage[light,medium]{roboto}
\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{Roboto-LF}{l}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}
\begin{document}
1234 CQ $1234 CQ$
\sffamily\mathversion{sans}
1234 CQ $1234 CQ$
\end{document}
現在數位來自正確的字體!然而,對第二個嘗試同樣的方法\SetSymbolFont
卻失敗了。
\SetSymbolFont{letters}{sans}{OML}{Roboto-LF}{l}{it}
結果是
LaTeX Font Warning: Font shape `OML/Roboto-LF/l/it' undefined
(Font) using `OML/cmm/m/it' instead on input line 19.
從輸出中可以明顯看出缺少的字體。
有什麼方法可以讓我也能以正確的字體獲得字母(和希臘字母)?
如果同時存在pdflatex
和xelatex
/ 的方法lualatex
,我主要對 感興趣pdflatex
,因為我也在使用該microtype
包,眾所周知,該包與xelatex
/不完全兼容lualatex
。如果後者可以做到這一點,但pdflatex
不能,我仍然可能會考慮放棄microtype
。