siunitx:缩写不会使用 mathtools、fontspec 和 unicode-math 打印

siunitx:缩写不会使用 mathtools、fontspec 和 unicode-math 打印

此代码可以打印\si{\us}

\RequirePackage{luatex85}
\documentclass[border=1cm]{standalone}
\usepackage{siunitx}

\begin{document}
Time \si{\us}
\end{document}

在此处输入图片描述

虽然这个没有打印所需的输出

\RequirePackage{luatex85}
\documentclass[border=1cm]{standalone}
\usepackage{mathtools}
\usepackage[tuenc,no-math]{fontspec}
\usepackage{unicode-math}
\usepackage{siunitx}

\begin{document}
Time \si{\us}
\end{document}

在此处输入图片描述

那么,哪些软件包导致了这样的缺陷?此外,我应该按照什么顺序加载它们?

答案1

我认为这是 unicode-math 中的问题,\mathrm{\upmu}它尝试使用文本字体输出符号,因此您会收到缺少字符的消息。这会影响 siunitx,因为它内部使用 \mathrm。我提交了一个错误报告:https://github.com/wspr/unicode-math/issues/438

解决方法是使用 mu 的文本版本,或者使用框:

\RequirePackage{luatex85}
\documentclass[border=1cm]{standalone}

\usepackage{unicode-math}
\usepackage{siunitx}
%\sisetup{math-micro=\hbox{$\upmu$},text-micro=µ} %works too
\sisetup{math-micro=\text{µ},text-micro=µ}
\begin{document}

$\mathrm{\upmu} %missing
 \mathrm{\hbox{$\upmu$}}$

\si{\us} \si[mode=text]{\us}
\end{document}

相关内容