我目前正在 LuaTeX 上使用拉丁现代数学字体来获得一套完整的数学字体。特别考虑的是能够使用粗体希腊\mathbfup{\lambda}
字体和粗体书法字体\mathbfcal{F}
。我想知道是否有其他字体支持所有此类符号?
答案1
以下是 11 种不同的 unicode 数学字体如何显示\mathcal{F}
、、和以及 XITS-Stylistic Set 1 和 Asana Math Alternate 的概述。(之所以选择这 11 种数学字体\symbfcal{F}
,主要是因为它们恰好在我的系统上可用。您的系统可能有更多或更少的 unicode 数学字体。)请随意调整宏的内容以显示您真正感兴趣的符号。\lambda
\symbfup{\lambda}
\blurb
在屏幕截图中,您会注意到Neo Euler
没有直立加粗的 lambda 符号。这并不奇怪,因为欧拉数学字体本来就是直立的(而不是“倾斜的”或“有坡度的”)字体。
除了根据符号集的完整性来判断数学字体之外(当然,没有字体的符号集合可以真正“完整”),你还应该考虑外貌, 或者看,符号(包括和、乘积和积分符号)满足您的排版需求。例如,如果出于某种原因您需要使用 Times Roman文本字体,如果您需要使数学字体与文本字体很好地融合,从视觉上讲,您应该将搜索限制为、、Stix Math
和,因为这些是基于/衍生自 Times Roman 的数学字体。Stix Two Math
XITS Math
Termes Math
% !TEX TS-program = lualatex
\documentclass{article}
\newcommand\blurb{%
$\mathcal{F}\symbfcal{F}\quad
\lambda \symbfup{\lambda}\quad
\sum\prod\int\quad
\displaystyle\sum\prod\int$}
\usepackage{unicode-math}
%% Load 10 math fonts, plus two alternate/stylistic set variants
\setmathfont{Latin Modern Math}[version=LM]
\setmathfont{Stix Math}[version=Stix]
\setmathfont{XITS Math}[version=XITS]
\setmathfont{XITS Math}[StylisticSet=1,version=XITS1]
\setmathfont{Stix Two Math}[version=Stix2] % see http://stixfonts.org/
\setmathfont{Cambria Math}[version=Cambria]
\setmathfont{Asana Math}[version=Asana]
\setmathfont{Asana Math}[Alternate,version=AsanaAlt]
\setmathfont{TeX Gyre Pagella Math}[version=Pagella]
\setmathfont{TeX Gyre Termes Math}[version=Termes]
\setmathfont{TeX Gyre DejaVu Math}[version=DejaVu]
\setmathfont{Neo Euler}[version=Euler]
\setmathfont{Libertinus Math}[version=Libertinus]
\begin{document}
\renewcommand\arraystretch{1.8}
\begin{tabular}{@{}ll@{}}
Latin Modern & \mathversion{LM} \blurb \\
Stix & \mathversion{Stix} \blurb \\
XITS & \mathversion{XITS} \blurb \\
XITS, StySet1& \mathversion{XITS1} \blurb \\
Stix Two & \mathversion{Stix2} \blurb \\
Cambria & \mathversion{Cambria} \blurb \\
Asana & \mathversion{Asana} \blurb \\
Asana Alt & \mathversion{AsanaAlt}\blurb \\
Pagella & \mathversion{Pagella} \blurb \\
Termes & \mathversion{Termes} \blurb \\
DejaVu & \mathversion{DejaVu} \blurb \\[0.5ex]
Neo Euler & \mathversion{Euler} \blurb \\[0.5ex]
Libertinus Math& \mathversion{Libertinus} \blurb
\end{tabular}
\end{document}
答案2
由于 Mico 慷慨地建议我应该将我的评论扩展为答案,我想补充一下,还有另一大类可用的数学符号。
许多数学字体使用 OpenType 风格集或替代字体功能来添加变体。STIX Two 尤其擅长使用它们:它带有十七除了默认字体外,还有多种风格集!这些不是完整的替代字体,而是每种字体的一些变体的分组。
我在我的评论中给出了一个例子,Mico 在他的回答中补充道,你可以\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1,Scale=MatchUppercase]{XITS Math}
在 中unicode-math
使用 XITS Math 的替代脚本字体来表示\mathcal
和\mathbfcal
。一些字体使用不同的 OpenType 功能,如 所示\setmathfont[range={\mathcal,\mathbfcal},Alternate,Scale=MatchUppercase]{Asana Math}
。(这将保留默认值,如\mathscr
和\mathbfscr
:Unicode 将书法和脚本字母映射到相同的代码点,但unicode-math
如果你出于某种原因希望将它们设置为不同的字体。)STIX Two Math 有这个和 XITS Math 的其他风格集,还有相当多的其他风格集,包括风格集 7 中 ∑ 和 ∏ 的较小变体、风格集 8 中更直立的 ∫,以及变体数学字母G,你,五,瓦和是在风格集 2 中。
您可以将样式集设置为默认值,或像上例一样将字符范围设置为一个,或替换单个代码点。例如,我喜欢使用 Paul Halmos 的黑色“墓碑”作为量子电动力学符号,就像 DEK 那样(有时,包括 1997 年版的计算机编程艺术),而 XITS Math 在 U+220E 处有一个有吸引力的版本:
\renewcommand{\qedsymbol}{\ensuremath{\char"220E}}
\setmathfont[range="220E]{XITS Math}
您可以类似地使用 测试 STIX Two 中较小的 ∑ 和 ∏ \setmathfont[range={"2211,"220F},StylisticSet=7]{STIX Two Math}
。
还可以选择将字体重新映射到特定的数学字母,例如 Fraktur 或 blackboard bold。
STIX 两种风格集的完整文档记录docs/STIX_2.0.0_stylistic_sets.pdf
在 STIX 发行版中名为 的文件中。您还可以在 FontForge 中打开任何数学字体并检查风格集和替代集:风格集的名称为 ,ss01
而替代集(例如 Asana Math 的风格集)的名称为salt
。