如何使用自定义字体来输入 \mathfrak?

如何使用自定义字体来输入 \mathfrak?

我正在尝试不同的数学字体,目前我正在使用: \usepackage[amsthm, libertine, varbb]{newtxmath}它为我提供了一些不错的数学字体、\mathcal\mathbb\mathscr我唯一不喜欢的是的结果\mathfrak。我想我在网上找到了一些不错的字体文件,我们称之为MyFrakFont.otf,但我不知道如何加载这种字体。我正在使用babelfontspec,它们似乎都无法加载字体\mathfrak(我猜这些包不处理数学字体),所以我陷入困境。我如何在命令中使用自定义字体文件\mathfrak

答案1

定义字体样式并重新定义\mathfrak以使用该字体\text

将仅作为示例的 Lucida Blackletter OT 替换为您喜欢的 Fraktur 字体。

\documentclass{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage[amsthm, libertine, varbb]{newtxmath}

\setmainfont{Libertinus Serif}

\newfontface{\preferredfraktur}{Lucida Blackletter OT}[Scale=MatchUppercase]

\AtBeginDocument{%
  \RenewDocumentCommand{\mathfrak}{m}{\text{\normalfont\preferredfraktur#1}}%
}

\begin{document}

$a+\mathcal{B}+\mathbb{C}+\mathscr{D}+\mathfrak{x}+\mathfrak{Z}$

\end{document}

在此处输入图片描述

答案2

您可以将 OpenType 字体与 一起使用unicode-math,但您需要将其替换\usepackage[libertine]{newtxmath}为 OpenType 数学字体,例如 Libertinus Math:

\documentclass{article}
\usepackage{amsmath, amsthm}
\usepackage{unicode-math}

\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
% Unifraktur Maguntia is available at https://unifraktur.sourceforge.net/maguntia.html#comparison
% Stylistic Set 1 has the modern forms.
\setmathfont{Unifraktur Maguntia}[range=frak, StylisticSet=1, Scale=MatchUppercase]
\setmathfont{Euler Math}[range={cal, bfcal}, Scale=MatchUppercase]

\begin{document}

$a+\mathcal{B}+\mathbb{C}+\mathscr{D}+\mathfrak{x}+\mathfrak{Z}$

\end{document}

由于 Unicode 仅定义了一种脚本字母表,因此您需要使用range=cal或加载字母表range=scr才能同时获得\mathcal\mathscr

![Libertinus Math + Unifraktur Maguntia 字体样本

相关内容