以下所有代码均在xelatex
Windows 10、TeX Live 2022 上运行,并且已通过 更新所有软件包tlmgr update --all --self
。
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{XITSMath-Regular.otf}
\setmathfont{XITSMath-Bold.otf}[version=bold]
\begin{document}
$\symbfit{x}$
$x$
\boldmath $x$
\end{document}
XITS Math 可以工作。但是 Erewhon Math、XCharter Math 和 KpMath 不工作。
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Erewhon-Math.otf}
\setmathfont{Erewhon-Math-Bold.otf}[version=bold]
% \setmathfont{XCharter-Math.otf}
% \setmathfont{XCharter-Math-Bold.otf}[version=bold]
% \setmathfont{KpMath-Regular.otf}
% \setmathfont{KpMath-Bold.otf}[version=bold]
\begin{document}
$\symbfit{x}$
$x$
\boldmath $x$
\end{document}
$\symbfit{x}$
version=bold
设置时不加粗。但设置BoldFont=
可以工作。我在 tex.se 上找到了 的用法BoldFont
,但 unicode-math 的文档没有提到BoldFont
。
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Erewhon-Math.otf}[BoldFont=Erewhon-Math-Bold.otf]
% \setmathfont{XCharter-Math.otf}[BoldFont=XCharter-Math-Bold.otf]
% \setmathfont{KpMath-Regular.otf}[BoldFont=KpMath-Bold.otf]
\begin{document}
$\symbfit{x}$
$x$
\boldmath $x$
\end{document}
这是什么原因呢?
问题:
- 当
\setmathfont{Erewhon-Math-Bold.otf}[version=bold]
或设置为 时,\setmathfont{XCharter-Math-Bold.otf}[version=bold]
不为粗体。但设置为 时为粗体。为什么 XITSMath 可以工作,而 Erewhon Math、XCharter Math 和 KpMath 却不工作。\setmathfont{KpMath-Bold.otf}[version=bold]
$\symbfit{x}$
$\symbfit{x}$
\setmathfont{XITSMath-Bold.otf}[version=bold]
\setmathfont{Erewhon-Math.otf}[BoldFont=Erewhon-Math-Bold.otf]
和有什么不同\setmathfont{Erewhon-Math.otf}\setmathfont{Erewhon-Math-Bold.otf}[version=bold]
?- 用法
BoldFont
是 fromfontspec
还是 other?我找不到确切的解释。
更新
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}
\setmathfont{KpMath-Regular.otf}[version=xxx] % case 1
% \setmathfont{XITSMath-Bold.otf}[version=xxx] % case 2
% \setmathfont{KpMath-Bold.otf}[version=xxx] % case 3
\begin{document}
$\symbfit{x}$
\mathversion{xxx}
$x$
\end{document}
上面三个case的demo中,第一个x
都是latinmodern,只有case 3中第一个x
不是bold italic,也就是说case 3有些地方不对,目前三个case的区别就是case 3中部分slots是空的,不知道是不是这个原因导致的,按理来说,version
如果不使用\mathversion{}
启用版本的话,设置应该不会影响任何数学字体,也就是说默认的版本normal version
和手动设置的其他版本是独立的,不清楚这个问题是否是实现上的缺陷导致的unicode-math
。
答案1
已报告类似问题这里四年前关于 Fira-Math 字体,unicode-math
好像有点冻结了……
您的帖子中有趣的是,该\symbfit
命令适用于 XITSMath 系列,而不适用于您提到的其他三个系列。由于我维护这三个系列,因此我试图了解 XITSMath 与 Erewhon-Math 的不同之处。看来在 XITSMath-Bold 中,为正常和粗体定义了两次相同的字形:
- U+0041-U+005A(AZ 直立)和 U+1D400-1D419(粗体)包含相同的字形;小写拉丁字母也一样;
- U+1D434-U+1D44D(AZ 斜体)和 U+1D434-U+1D44D(粗体斜体)包含相同的字形;
- 等等…
在 Erewhon-Math-Bold 上做同样的事情确实解决了 Erewhon-Math 的问题,但这个修复对我来说看起来很奇怪:我希望更大胆U+0041-U+005A 版本(已经加粗)为 U+1D400-1D419,但不是相同的字形,如果我没有更粗的版本,我宁愿将这些位置留空。我错了吗?
关于您的第二和第三个问题,我的理解是,这是BoldFont=
用于文本字体,而不是数学字体,我很惊讶它在这里有效。