siunitx 与 i-fonts-otf 不可混合

siunitx 与 i-fonts-otf 不可混合

如果您使用sisetup{mode=text}withsiunitxkpfonts-otf失败\num{2.23e-23}

梅威瑟:

\documentclass[]{scrbook}
\usepackage[spanish,es-tabla]{babel}
\usepackage{siunitx}
\usepackage[]{kpfonts-otf}

\setmathfont{KpMath-Sans.otf}[]

\sisetup{
mode = text % falla y pone puntos en vez de commas
}

\vbadness=10000
\begin{document}

Fuera: \num{2,23e-3} y como números: 2,23 o 2.23

\[
      \theta=\sec\alpha\,(\num{2,20e-4} h + \num{2,23e-3})
\]
\[
      \theta=\sec\alpha\,(\num{2.20e-4} h + \num{2.23e-3})
\]
\end{document}

在此处输入图片描述

这为什么不起作用?

答案1

感谢 Joseph Wright 指出这个问题的根源!

软件包的文本字体kpfonts-otf缺少减号的上级和下级替换。此问题现已在 0.53 版中修复,该版本正在向 CTAN 迈进,应该会在明天或后天在 TeX 发行版中提供。

对于这个新版本,我建议放弃 Joseph 建议的补丁,因为“真实”上标肯定比伪造的上标看起来更好。代码

1\textsuperscript{(+)(\textminus)(=)}

现在打印:

在此处输入图片描述

答案2

此处的字体设置使用的是realscripts,如果没有可用的上标字形,则无法正常工作。例如,尝试

\documentclass{article}
\usepackage{kpfonts-otf}
\begin{document}
1\textsuperscript{\textminus}
\end{document}

您可以保存并恢复定义来\textsuperscript对此进行排序:

\NewCommandCopy\savedsuperscript\textsuperscript
\usepackage{kpfonts-otf}
\RenewCommandCopy\textsuperscript\savedsuperscript

相关内容