问题:

问题:

以下所有代码均在xelatexWindows 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}

在此处输入图片描述

这是什么原因呢?

问题:

  1. \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]
  2. \setmathfont{Erewhon-Math.otf}[BoldFont=Erewhon-Math-Bold.otf]和有什么不同\setmathfont{Erewhon-Math.otf}\setmathfont{Erewhon-Math-Bold.otf}[version=bold]
  3. 用法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=用于文本字体,而不是数学字体,我很惊讶它在这里有效。

相关内容