Используйте пользовательский математический шрифт только в некоторых частях документа.

Используйте пользовательский математический шрифт только в некоторых частях документа.

Очень похоже наэтотвопрос Я хотел бы иметь другой шрифт без засечек для математических символов в (небольших) частях моего документа. Как предложилэтотОтвет на поставленный вопрос: этого можно добиться, используя \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}

Пример робота 1

Обратите внимание, например, на разные формы цифры 1 или буквы Q. Очевидно, я хотел бы, чтобы математика и шрифт документа sans serif были максимально похожи. Это, конечно, не сработает (легко) для специальных символов, но получить цифры, буквы и в идеале греческие буквы из шрифта 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}

Пример робота 2

Сейчасчислаиз правильного шрифта! \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.

и отсутствие шрифта очевидно из вывода.

Пример робота 3

Есть ли способ получить буквы (в том числе греческие) в правильном шрифте?


В случае, если есть подходы как с , так pdflatexи с xelatex/ lualatex, меня в основном интересует pdflatex, так как я также использую microtypeпакет, который, как известно, не полностью совместим с xelatex/ lualatex. Если последний может это сделать, но pdflatexне может, я все равно могу рассмотреть возможность отказа microtypeот .

Связанный контент