以小數點分隔符號為中心,圖形字型選擇

以小數點分隔符號為中心,圖形字型選擇

我想格式化一列包含帶有小數點的數字。在我的正文中,我使用舊式數字表示數字,並在方程式中使用襯線數字。如果我使用dcolumn表格,則使用襯裡數字,而不是舊式數字。

我已經擺弄了定義dcolumn.sty,但它似乎依賴數學模式來使點“正確”,因此刪除所有$- 字元會導致損壞。暫時更改數學字體以使用舊式數字似乎也是相當困難的事情,這都是在加載字體包期間設置的...

siunitx\sisetup{mode=text}我一起使用取得舊式數字,但是隨後\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

在對 David 先前的回答的評論中,您表示有興趣查看使用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} 

相關內容