我需要做什么来定义一个\mathscr
可以处理大写和小写字母的和它可以处理大写和小写,并且后者尽可能\mathcal
接近默认值?\mathcal
\usepackage
最好使用简单的方法,只使用一行并提供一些选项。我遇到的所有其他解决方案都涉及\newcommand
、makeatletter
、\newenvironment
、\setmathfont
等,但都失败了。
下面boondox
是我能得到的最接近现有的\mathcal
。请注意,由于某种原因,我的定义scr
不支持小写。
XeLaTeX/PdfLaTeX 在这里没有区别。
我浏览了许多与此主题相关的帖子,但没有一篇对我有用。我可能遇到了无法正确安装字体包的问题?这很神秘。
\documentclass{article}
\usepackage{mathrsfs}
\usepackage[scr=rsfs,cal=boondox]{mathalfa}
\begin{document}
$$\mathscr{abcdefghijklmnopqrstuvwxyz}$$
$$\mathscr{ABCDEFGHIJKLMNOPQRST}$$
$$\mathcal{abcdefghijklmnopqrstuvwxyz}$$
$$\mathcal{ABCDEFGHIJKLMNOPQRST}$$
\end{document}
更新:这可能只是字体的问题rsfs
。将usepackage
上面的代码替换为
\usepackage[scr=esstix,cal=boondox]{mathalfa}
为所有四行生成结果。我更喜欢rsfs
字体 ,esstix
也更喜欢 默认\mathcal
字体boondox
。但如果没有人有其他解决方案,那么我可能只需要采用这个。
答案1
该unicode-math
软件包支持 OpenType 数学字体,所有字体都有小写脚本字母(以及粗体)。
\mathcal
默认情况下,该包会加载与和相同的字体\mathscr
,但您可以使用\setmathfont[range={cal,bfcal}, Scale=MatchUppercase]{...}
或覆盖它\setmathfont[range={scr,bfscr}, Scale=MatchUppercase]{...}
。
\documentclass{article}
\usepackage{unicode-math}
% So that the output fits the allowed width on TeX.SX:
\usepackage[paperwidth=10cm]{geometry}
\setmathfont{STIX Two Math}
% Unicode uses the same range for `\mathcal` and `\mathscr` letters, but the
% STIX Two font provides a separate script alphabet as Stylistic Set 01.
\setmathfont[range={scr,bfscr}, StylisticSet=1]{STIX Two Math}
\begin{document}
\[\mathscr{abcdefghijklmnopqrstuvwxyz}\]
\[\mathscr{ABCDEFGHIJKLMNOPQRST}\]
\[\mathcal{abcdefghijklmnopqrstuvwxyz}\]
\[\mathcal{ABCDEFGHIJKLMNOPQRST}\]
\end{document}
其他一些 OpenType 数学字体带有单独的\mathcal
字母\mathscr
,包括 XITS Math 和 Asana Math。不过,您可以随意混合搭配。例如,您可以添加
\setmathfont[range={cal,bfcal},
Scale=MatchUppercase
]{STIX Two Math}
或者
\setmathfont[range={scr,bfscr},
Scale=MatchUppercase,
StylisticSet=1
]{STIX Two Math}
在另一个文档中使用上述脚本或书法字母。
有一些传统的 NFSS 数学脚本字体带有小写字母。例如,stix2-mathscr
有,但stix2-mathcal
没有。mathalfa
如果存在小写字母,该包应该能够加载它;您不需要同时加载mathalfa
和诸如 之类的包mathrsfs
。