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