XeLaTeX、拉丁现代、\mathbb 和 \mathcal

XeLaTeX、拉丁现代、\mathbb 和 \mathcal

我在 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}

在此处输入图片描述

相关内容