Ответы на вопросВозвращаемся к Computer Modern в XeLaTeXпредоставляет способ переключиться обратно на шрифт по умолчанию в XeLaTex. Однако решение там не работает, если я использую \mathrm
в формуле:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
%\newfontfamily\lmodern{Latin Modern Roman} % If font exists on your system
% Optical sizes need to be set up manually using the [SizeFeatures] option
% or select the font using the regular font selection methods
\newcommand{\lmr}{\fontfamily{lmr}\selectfont} % Latin Modern Roman
\newcommand{\lmss}{\fontfamily{lmss}\selectfont} % Latin Modern Sans
\newcommand{\lmtt}{\fontfamily{lmtt}\selectfont} % Latin Modern Mono
\begin{document}
\[\mathrm{e}^{\mathrm{i}\pi}+1=0\]
{\lmr\[\mathrm{e}^{\mathrm{i}\pi}+1=0\]}
\end{document}
Вы можете видеть, что буквы e и i по-прежнему отсутствуют в шрифте по умолчанию. Использование некоторых других шрифтов сделает формулы еще хуже, например, Consolas.
Что мне следует сделать, чтобы решить эту проблему?
решение1
Если вы хотите сохранить Latin Modern в качестве шрифта текста и математики по умолчанию, не выполняйте \setmainfont
инструкции. И наоборот, если вы хотите переключить основной шрифт текста на Linux Libertine O, вам, вероятно, следует загрузить пакет unicode-math
и выполнить \setmathfont{Libertinus Math}
. С другой стороны, если вы хотите Libertine для текстового материала, но Latin Modern для математического материала, вы можете заменить \setmathfont{Libertinus Math}
на \setmathfont{Latin Modern Math}[Scale=MatchLowercase]
.
%% execute this test file under XeLaTeX or LuaLaTeX
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\begin{document}
\setmathfont{Libertinus Math}
$\mathrm{e}^{\mathrm{i}\pi}+1=0$
\setmathfont{Latin Modern Math}[Scale=MatchLowercase] % or Scale=MatchUppercase
$\mathrm{e}^{\mathrm{i}\pi}+1=0$
\end{document}
Приложение: Как @cabohah указывает в комментарии, \setmainfont{Linux Libertine O}
может не работать с некоторыми комбинациями дистрибутивов TeX/операционных систем. Если для вас это проблема, может быть предпочтительнее загрузить пакеты libertine
, libertinus
, или libertinus-otf
вместо выполнения инструкций \setmainfont
и .\setmathfont