同一文档中的两个数学家族

同一文档中的两个数学家族

是否可以在同一个文档中使用书法系列中的两种数学字体?例如$\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

这是有可能的。这就是mathrsfsoreucal包的作用。我们来看看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}}

它的工作方式与数学字体不同,但如果您必须使用许多不同类型的数学字母字体,它可能会很有用。

相关内容