我将 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}