我正在尝试不同的数学字体,目前我正在使用:
\usepackage[amsthm, libertine, varbb]{newtxmath}
它为我提供了一些不错的数学字体、\mathcal
和\mathbb
。\mathscr
我唯一不喜欢的是的结果\mathfrak
。我想我在网上找到了一些不错的字体文件,我们称之为MyFrakFont.otf
,但我不知道如何加载这种字体。我正在使用babel
和fontspec
,它们似乎都无法加载字体\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
。