josephwright/siunitx

mode = text not working. Oldstyle numbers are not applied.

dflvunoooooo opened this issue · 5 comments

The option mode = text does not work. In the below example you can see, that the oldstyle numbers don't get applied to the numbers in \num[mode = text]{…} nor in \num[mode = match]{…}. On the other hand the depreciated option \num[detect-all]{…} does work.

\documentclass{scrreport}

\usepackage{fontspec}
\usepackage{siunitx}

\setmainfont{Libertinus Serif}	

\begin{document}
Normal
1234567890

\num[mode = text]{1234567890}

Oldstyle
\addfontfeature{Numbers=OldStyle}

1234567890

\num[mode = text]{1234567890}

\num[mode = match]{1234567890}

\num[detect-all]{1234567890}

\end{document}

Screenshot_20231221_161625

\addfontfeature doesn't reset \rmdefault to apply old-style numbers, so siunitx doesn't either - you can set reset-text-family = false to leave the current family alone.

Thank you for your answer. So mode = text does not apply the text settings? The option reset-text-family = false does unfortunately not work.

You need both mode = text and reset-text-family = false, as the latter only applies in text mode.

Thank you for your answer. So mode = text does not apply the text settings?

It does - as standard the default roman text - \addfontfeature doesn't change the defaults, only the current font.

I see. Thank you for explaining.