
Я хотел бы отформатировать столбец с числами с десятичной точкой. В моем основном тексте я использую цифры старого стиля для чисел и линейные цифры в уравнениях. Если я использую dcolumn
свои таблицы, используйте линейные цифры вместо цифр старого стиля.
Я уже повозился с определениями dcolumn.sty
, но, похоже, он полагается на математический режим, чтобы получить точку «правильно», поэтому удаление всех -символов $
приводит к поломке. Временное изменение шрифта математики для использования цифр старого стиля также кажется довольно сложной задачей, все это настраивается во время загрузки пакета шрифтов...
Использование siunitx
с\sisetup{mode=text}
Iделатьполучить цифры в старом стиле, но затем \figureversion{tab}
, который я использую для переключения на табличные цифры, игнорируется, и цифры также не выстраиваются в ряд должным образом.
Есть ли у кого-нибудь хорошее предложение по использованию dcolumn
не в математическом режиме или по siunitx
использованию табличных данных старого образца?
Минимальный пример с использованием siunitx:
\documentclass{standalone}
\usepackage[mathlf]{MinionPro}
\usepackage{siunitx}
\sisetup{mode=text}
\begin{document}
{\figureversion{tab}
\begin{tabular}{SSS[table-format=4.1]}
{A wide heading} & $x$ & {more data} \\
14.1 & 14.1 & 1111.1 \\
1.674 & 1.671 & 4882.8 \\
\end{tabular}}
\end{document}
решение1
\documentclass[12pt]{standalone}
\usepackage{dcolumn}
\makeatletter
\newcolumntype{O}[3]{>{\everymath{\mathgroup\symletters}\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{cO..{-1}D..{-1}}
zzzz & 1.1 & 1.1\\
zzzz & 1.12 & 1.12\\
zzzz & 2341.1 & 2341.1\\
zzzz & 1.1043 & 1.1043
\end{tabular}
\end{document}
решение2
В комментарии к предыдущему ответу Дэвида вы выражаете интерес к решению, которое использует siunitx
пакет и его S
тип столбца. Ключевым моментом является указание опции detect-mode
, которая заставляет использовать числовой стильшрифт текстаа не математического шрифта.
В ответе ниже используется kpfonts
пакет с oldstylenums
возможностью использования чисел старого стиля в текстовом режиме; тело среды tabular
такое же, как в ответе Дэвида.
\documentclass[12pt]{standalone}
\usepackage[oldstylenums]{kpfonts} % oldstyle tabular numbers in text mode, but not in math mode
\usepackage[table-format=4.4]{siunitx}
\begin{document}
\begin{tabular}{cS[detect-mode]S}
zzzz & 1.1 & 1.1\\
zzzz & 1.12 & 1.12\\
zzzz & 2341.1 & 2341.1\\
zzzz & 1.1043 & 1.1043
\end{tabular}
\end{document}