重新定義數學字體

重新定義數學字體

\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就可以使用該選項指定要變更的數學字母。range這對於unicode-math字體效果很好,但正如其他人在評論中所說,在大多數情況下,該套件mathalpha非常適合更改、mathcal和字體。mathscrmathbbmathfrak

以下範例使用 (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字元採用不同的字體...

相關內容