Antworten auf die FrageZurückschalten auf Computer Modern innerhalb von XeLaTeXbietet eine Möglichkeit, in XeLaTex zur Standardschriftart zurückzukehren. Die dortige Lösung funktioniert jedoch nicht, wenn ich \mathrm
in einer Formel Folgendes verwende:
\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}
Sie können sehen, dass die Buchstaben e und i immer noch nicht in der Standardschriftart sind. Die Verwendung anderer Schriftarten, wie z. B. Consolas, lässt die Formeln noch schlechter aussehen.
Was soll ich tun, um das Problem zu lösen?
Antwort1
Wenn Sie Latin Modern als Standardschriftart für Text und Mathematik beibehalten möchten, führen Sie keine \setmainfont
Anweisungen aus. Wenn Sie hingegen die Hauptschriftart für Text auf Linux Libertine O umstellen möchten, sollten Sie das unicode-math
Paket laden und ausführen \setmathfont{Libertinus Math}
. Wenn Sie andererseits Libertine für Material im Textmodus, aber Latin Modern für Material im Mathematikmodus möchten, sollten Sie es \setmathfont{Libertinus Math}
durch ersetzen \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}
Nachtrag: Wie @cabohah in einem Kommentar anmerkt, \setmainfont{Linux Libertine O}
funktioniert es möglicherweise nicht mit einigen Kombinationen aus TeX-Distribution und Betriebssystem. Wenn das für Sie ein Problem darstellt, ist es möglicherweise besser, die Pakete libertine
, libertinus
, oder zu laden libertinus-otf
, anstatt \setmainfont
und \setmathfont
Anweisungen auszuführen.