问题
我正在尝试将该包siunitx
与 Opensans Light 字体结合使用。为了siunitx
检测字体粗细,我传递了\sisetup{detect-weight}
。但是,文档编译失败。有人能重现这种行为吗?有解决方法吗?
谢谢你!
最小示例
\documentclass{minimal}
\usepackage[default]{opensans}
\usepackage{siunitx}
\sisetup{detect-weight}
\begin{document}
\fontseries{l}\selectfont This is quite light: \SI{1}{\milli\gram}
\end{document}
编辑1
澄清一下:\fontseries{l}
用\fontseries{m}
或替换可以\fontseries{b}
按预期工作
答案1
问题在于,siunitx
假设对于提供“浅色”字体的包,命令的\lseries
定义方式与 相同\mdseries
。但事实并非如此。适用于文本模式打印的补丁是
\documentclass{minimal}
\usepackage[default]{opensans}
\usepackage{siunitx}
\usepackage{xpatch}
\ExplSyntaxOn
\xpatchcmd{\__siunitx_detect_font_weight_text:}
{ \lseries }
{ \fontseries{l} \selectfont }
{}{}
\ExplSyntaxOff
\begin{document}
\sisetup{detect-weight, mode = text}
\fontseries{l}\selectfont This is quite light: \SI{1}{\milli\gram}
\end{document}