重新定义数学字体

重新定义数学字体

我正在寻找一种方法来重新定义数学模式中使用的字体\mathcal。我希望使用该\mathcal{}函数的任何字符都以 Asana Math 字体等格式书写,而所有其他数学文本都以默认文本格式书写。到目前为止,我已经:

\documentclass[11pt]{report}

%%%Packages%%%

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
%\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}

%\setmathfont{Asana Math}
\let\mathcal=\mathscr

\begin{document}

\begin{equation}
\mathcal{p} = U(x,t)
\end{equation}

\end{document}

作为我的 MWE。

答案1

使用 设置数学字体时,只要您定义了主数学字体,\setmathfont就可以使用选项指定要更改的数学字母。这适用于字体,但正如评论中其他人所说,在大多数情况下,该软件包确实非常适合更改、和字体。rangeunicode-mathmathalphamathcalmathscrmathbbmathfrak

下面的示例使用 (Latin Modern Math) 使用的默认字母unicode-math,然后将\mathscr字体设置为 Asana Math。

\documentclass[11pt]{report}

\usepackage{amssymb, amsmath, amsthm}
\usepackage{unicode-math}
\setmathfont{LatinModern-Math.otf}
\setmathfont{Asana-Math.otf}[range=scr]

\begin{document}

\begin{gather*}
ABCDEFGHIJKLMNOPQRSTUVWXYZ \\
abcdefghijklmnopqrstuvwxyz \\
\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \\
\mathcal{abcdefghijklmnopqrstuvwxyz} \\
\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \\
\mathscr{abcdefghijklmnopqrstuvwxyz} \\
\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \\
\mathfrak{abcdefghijklmnopqrstuvwxyz}
\end{gather*}

\end{document}

答案2

尝试一下\usepackage{eucal},这会使\mathcal字符采用不同的字体......

相关内容