如何使用“unicode-math”来提供书法数字?

如何使用“unicode-math”来提供书法数字?

我将 xits-math.otfunicode-math与 XeLaTeX 一起使用。

它定义了书法大写字母,但我也需要书法小写字母,尤其是数字。

我尝试过这个:

\documentclass{minimal}
\usepackage[math-style=TeX, bold-style=TeX]{unicode-math}
\usepackage{fontspec}

\setmathfont[StylisticSet=0]{xits-math.otf}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{xits-math.otf}

\newfontfamily\mathc[Path=/usr/share/texlive/texmf-dist/fonts/type1/public/mathabx-type1/]{mathc10.pfb}

\begin{document}
    $\mathcal{mathcal ABC 123}$ \\
    $\mathbfcal{mathbfcal ABC 123}$ \\
    \mathc{mathc10.pbf abc ABC 123 !@\$\%\&}
\end{document}

在此处输入图片描述

这给了我大写字母\mathcal\mathbfcal字母,但正如您所见,小写字母和数字分别只是标准斜体和直立符号。

在该示例中,我使用 创建了一个额外的字体定义,fontspec以便访问所使用的书法字体mathabx。这样,我访问符号,但不能使用\mathcal,这很不方便,但这种解决方法最不方便的地方是它在数学模式下不起作用。我必须使用\text{\mathc{3}}才能得到一个书法“3”,这实际上不是一个选项。此外,没有粗体书法符号,我并不真正需要它,但感觉好像缺少了一些东西。

不久前我在这里问过如何在使用时获取“mathc10”字体MnSymbol。我不再使用MnSymbol,但我还是尝试了解决方案:

\documentclass{minimal}

\usepackage[math-style=TeX, bold-style=TeX]{unicode-math}
\usepackage{fontspec}

\setmathfont[StylisticSet=0]{xits-math.otf}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{xits-math.otf}

\DeclareFontFamily{OT1}{mathc}{}
\DeclareFontShape{OT1}{mathc}{m}{n}{ <-> mathc10 }{}
\DeclareMathAlphabet\mathcal{OT1}{mathc}{m}{n}

\newfontfamily\mathc[Path=/usr/share/texlive/texmf-dist/fonts/type1/public/mathabx-type1/]{mathc10.pfb}

\begin{document}
    $\mathcal{mathcal ABC 123}$ \\
    $\mathbfcal{mathbfcal ABC 123}$ \\
    \mathc{mathc10.pbf abc ABC 123 !@\$\%\&}
\end{document}

在此处输入图片描述

这在解决另一个问题的同时也产生了一个新问题:我现在可以使用书法数字\mathcal- 虽然没有粗体版本 - 但现在字母不见了。

我在想我可能需要一个不同的 OTF 字体用于\mathcal\mathbfcal范围,但我不知道哪一个,而且我不知道这是否真的是最好的解决方案。

再次强调,我需要的是:

  • 书法字母
  • 书法数字
  • 使用以下方式访问它们\mathcal

很高兴有:

  • 书法粗体字母和数字

答案1

您不需要用 加载mathc10字体fontspec;但是它没有粗体字体,正如其他地方所说的那样。

\documentclass{article}
\usepackage{amsmath}
\usepackage[math-style=TeX, bold-style=TeX]{unicode-math}

\setmathfont[]{xits-math.otf}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{xits-math.otf}

\DeclareFontFamily{OT1}{mathc}{}
\DeclareFontShape{OT1}{mathc}{m}{n}{ <-> mathc10 }{}
\DeclareRobustCommand\xmcal[1]{\text{\usefont{OT1}{mathc}{m}{n}#1}}

\begin{document}
$\mathcal{mathcal ABC 123}$

$\mathbfcal{mathbfcal ABC 123}$ \\

$\xmcal{ABC abc 123}$

\end{document}

在此处输入图片描述

答案2

改用\mathscr

\documentclass{article}
\usepackage[math-style=TeX, bold-style=TeX]{unicode-math}
\setmathfont{XITS Math}
\setmathfont[range={\mathscr,\mathbfscr,\mathcal,\mathbfcal}]{Cambria Math}
\def\Lcs#1{\texttt{\textbackslash#1}}

\begin{document}\noindent
\Lcs{mathscr}: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Lcs{mathscr}: $\mathscr{abcdefghijklmnopqrstuvwxyz}$\\
\Lcs{mathbfscr}: $\mathbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Lcs{mathbfscr}: $\mathbfscr{abcdefghijklmnopqrstuvwxyz}$

\noindent
\Lcs{mathcal}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Lcs{mathcal}: $\mathcal{abcdefghijklmnopqrstuvwxyz}$\\
\Lcs{mathbfcal}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Lcs{mathbfcal}: $\mathbfcal{abcdefghijklmnopqrstuvwxyz}$

\end{document}

在此处输入图片描述

相关内容