如何在 XeLaTeX 中的公式中切换回 Computer Modern?

如何在 XeLaTeX 中的公式中切换回 Computer Modern?

问题的答案在 XeLaTeX 中切换回 Computer Modern\mathrm提供了一种在 XeLaTex 中切换回默认字体的方法。但是,如果我在公式中使用以下方法,则那里的解决方案不起作用:

\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 发行版/操作系统组合配合使用。如果这对您来说是个问题,最好加载libertinelibertinuslibertinus-otf包,而不是执行\setmainfont\setmathfont指令。

相关内容