ドキュメントの一部にのみカスタム数式フォントを使用する

ドキュメントの一部にのみカスタム数式フォントを使用する

非常に似ているこれ質問:私は文書の(小さな)部分に異なるサンセリフの数式フォントを使いたいと思っています。これ上記の質問に対する答えは、\DeclareMathAlphabet次のように Computer Modern フォントを使用して得ることができます。

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

Robotoの例1

たとえば、数字 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}

Robotoの例2

さて、数字正しいフォントからのものです。\SetSymbolFontただし、2 番目に同じアプローチを試しても失敗します。

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

出力からフォントが欠落していることがわかります。

Robotoの例3

文字(およびギリシャ文字)を正しいフォントで表示する方法はありますか?


pdflatexxelatex/の両方を使用したアプローチがある場合lualatex、私は主に に興味があります。なぜなら、 /と完全に互換性がないことがよく知られている パッケージpdflatexも使用しているからです。 後者ではできることが、できないのであれば、 を捨てることを検討するかもしれません。microtypexelatexlualatexpdflatexmicrotype

関連情報