是否可以在同一个文档中使用书法系列中的两种数学字体?例如$\mathcal{P}$
Zapfino 和$\mathcal{T}$
XITS math 中的字体?
答案1
使用unicode-math
(我假设您正在使用),您可以将一系列字符重新映射到不同的字体:
\setmathfont[range="1D4AB]{Zapfino}
("1D4AB
需要重新映射的字符的 unicode 槽在哪里(unicode-math
当您想要重新映射多个字符时,请参阅手册了解语法))。
问题是 Zapfino 可能不包含该U+1D4AB MATHEMATICAL SCRIPT CAPITAL P
字符。因此,您必须U+0050 LATIN CAPITAL LETTER P
先重新映射该字符。我不知道 unicode-math 是否有一个接口可以手动执行此操作(Will 应该能够分辨)。但如果您重新映射整个字符范围,它会自动执行此操作,例如
\setmathfont[range=\mathscr]{Zapfino}
(请注意,即使默认情况下两者都显示相同的字符,重新映射也\mathscr
不会改变。)\mathcal
Zapfino 的高度可能与 XITS Math 的高度不匹配。因此您必须重新缩放它:
\setmathfont[range=\mathscr,Scale=MatchUppercase]{Zapfino}
答案2
这是有可能的。这就是mathrsfs
oreucal
包的作用。我们来看看mathrsfs
这个包:
\DeclareSymbolFont{rsfs}{U}{rsfs}{m}{n}
\DeclareSymbolFontAlphabet{\mathscr}{rsfs}
这显示了如何声明数学符号字体和字体命令。第一行声明数学字体系列rsfs
属于{U}{rsfs}{m}{n}
NFSS。第二行给它一个命令 \mathscr。如果我们使用除以下之外的其他数学系列名称,可能会更清楚一些rsfs
:
\DeclareSymbolFont{mathscript}{U}{rsfs}{m}{n}
\DeclareSymbolFontAlphabet{\mathscr}{mathscript}
甚至更简单(我认为应该如此):
\DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
请参阅fntguide
详情。
警告:TeX 只允许在一个文档中使用 16 种数学字体系列。(太糟糕了……)如果您需要更多,则必须使用文本模式来模拟假数学字体系列。例如:
\newcommand*\mathscr[1]{\text{\usefont{U}{rsfs}{m}{n}#1}}
它的工作方式与数学字体不同,但如果您必须使用许多不同类型的数学字母字体,它可能会很有用。