我在 Linux 上使用 XeLaTeX。我知道 Latin Modern Roman 是 XeLaTeX 的默认字体,但是如果我在序言中写
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}
我收到类似这样的错误
The font "Latin Modern Roman" cannot be found \setmainfont{Latin Modern Roman}.
我真的不明白这个默认字符的名字是什么。然后,我使用unicode-math包:我的序言是
\documentclass{article}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
%\setmainfont{Latin Modern Roman}
%\setsansfont{Latin Modern Sans}
%\setmonofont{Latin Modern Mono}
% \setmathfont{Latin Modern Math}
\usepackage{unicode-math}
我不喜欢 XeLaTeX 的默认 \mathbb 和 \mathcal 字体。我注意到,如果我删除 unicode-math,我会得到正确的符号。如何继续使用 unicode-math 并让 \mathbb 和 \mathcal 字体为 AMS?
答案1
我不知道为什么拉丁现代罗马字体无法被识别,也许它没有正确安装为系统字体。
为了获得“传统”书法和黑板字体,您可以使用标准设置。
\documentclass{article}
\usepackage{amsmath} % should go before unicode-math
%\usepackage{fontspec} % already loaded by unicode-math
\usepackage{unicode-math}
\usepackage{amsthm}
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\let\mathbb\relax % remove the definition by unicode-math
\DeclareMathAlphabet{\mathbb}{U}{msb}{m}{n}
\begin{document}
abc \textsf{def} \texttt{ghi}
$a+b\in\mathbb{R}\setminus\mathcal{ABC}$
\end{document}