Siunitx не распознает цифры старого стиля, несмотря на detect-all
настройки. Можете ли вы мне помочь?
МНВЭ:
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}
\usepackage[detect-all]{siunitx}
\begin{document}
\oldstyle\num{123}123
\end{document}
Это приводит к:
решение1
Просто убедиsiunitxиспользовать только что созданное семейство шрифтов можно следующим образом:
\sisetup{text-rm=\oldstyle}
полный пример:
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}
\usepackage[detect-all]{siunitx}
\AtBeginDocument{
\sisetup{text-rm=\oldstyle}
}
\begin{document}
\oldstyle\num{123}123
\end{document}
Вас заставят это сделать, как сказано в руководстве:
Пакет siunitx управляет шрифтом, используемым для печати вывода, независимо от окружающего материала. Стандартный метод — полностью игнорировать окружение и использовать текущие шрифты тела.
Чтобы этому противостоять, есть несколько возможностей:
detect-all
объединяет следующие четыре отдельные команды
detect-weight
detect-family
detect-shape
detect-mode
Так что он не обнаруживаетвсе- поэтому название немного вводит в заблуждение.
Стиль чисел — это довольно специфическая настройка шрифта, которая не включена в detect-all
.
Какsiunitxпредназначен для использования в научных обозначениях чисел и единиц измерения, вполне понятно, что стиль чисел не может быть изменен так легко, поскольку это не будет выглядеть"научный"больше нет. Я также использую номера старого стиля в своей диссертации для нумерации глав и т. д., и на самом деле я siunitx
сначала ожидал адаптировать эту настройку, но с радостью приветствую, что этого не произошло.