如何修复 $\mathbb{R}$?

如何修复 $\mathbb{R}$?

我正在使用 XeLaTeX 编译器在 overleaf 中编写代码。这是代码:

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{graphicx} % Required for inserting images
\usepackage{extarrows}
\usepackage{unicode-math}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage{tikz}
\usepackage{bidi}
\setmainfont{Times New Roman}
\begin{document}
\begin{RTL}
$\mathbb{R}$
\end{RTL}
\end{document}

我知道我“应该”编写代码的最小版本,但我需要在工作中使用所有这些包,因此我想要一个不会与其他包冲突的解决方案。
当我编译代码时,我得到:
在此处输入图片描述

但我想得到常规的:
在此处输入图片描述

感谢大家的帮助。

答案1

在此处输入图片描述

您显示的 R 不是问题,它是拉丁现代数学的设计,一旦您选择 unicode-math,它就是默认字体,在这里我使用 Stix Two,它与 Times Roman 文本字体兼容性更高。

我删除了 ams 包,因为它们不兼容unicode-math并且会出现错误。

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{graphicx} % Required for inserting images
\usepackage{extarrows}
\usepackage{unicode-math}
%\usepackage{amsmath, amsfonts, amssymb}
\usepackage{tikz}
\usepackage{bidi}
\setmainfont{Times New Roman}
\setmathfont{STIX Two Math}
\begin{document}
\showoutput
\begin{RTL}
$\mathbb{R}$
\end{RTL}
\end{document}

另一种与 Times 兼容的数学字体具有黑板粗体,可能更接近您的要求,那就是 TeX Gyre Termes,它能产生

在此处输入图片描述

\setmathfont{TeX Gyre Termes Math}

答案2

这不是唯一的问题:如果你尝试

$\mathbb{R}+x+y+z$ \textit{xyz} $x$\textit{x}

您不仅会得到不喜欢的黑板粗体字母,而且文本和数学之间的字体也会发生冲突:

在此处输入图片描述

为了获得与 Times New Roman 兼容的数学字体,您可以选择 STIX Two Math,但黑板粗体可能再次不符合您的喜好。不过,您可以将黑板粗体块替换为具有您喜欢的字形的其他字体。

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{graphicx} % Required for inserting images
\usepackage{extarrows}
\usepackage{unicode-math}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{bidi}

\setmainfont{Times New Roman}
\setmathfont{STIX Two Math}[Scale=MatchLowercase]
\setmathfont{TeX Gyre Termes Math}[range=\mathbb,Scale=MatchLowercase]
\setmathfont{STIX Two Math}[Scale=MatchLowercase,range=]

\begin{document}

$\mathbb{R}+x+y+z$ \textit{xyz} $x$\textit{x}

\end{document}

最后一个指令range=用于恢复 STIX Two Math 的字体参数。您可能只使用 TeX Gyre Termes Math 来处理所有事情,但它的完整性远不如其他字体。

在此处输入图片描述

请注意amssymbamsfonts不应与 一起加载unicode-math

相关内容