
У меня есть таблица, в которой мне нужно автоматически отформатировать все числа до двух знаков после запятой. Возможно ли это? Или мне нужно форматировать весь документ?
РЕДАКТИРОВАТЬ:
Я применил код, предложенный в ответе, но, к сожалению, он не работает для моей конкретной таблицы! Есть ли у кого-нибудь идеи, как адаптировать его соответствующим образом?
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\sisetup{
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 2
}
\begin{table}[thb]
\caption{\label{labelname}Table Caption}
\scriptsize
{\centering \begin{tabular
{lr@{\hspace{0cm}}c@{\hspace{0cm}}rr@{\hspace{0cm}}c@{\hspace{0cm}}r@{\hspace{0.1cm}}cr@{ space{0cm}}c@{\hspace{0cm}}r@{\hspace{0.1cm}}cr@{\hspace{0cm}}c@{\hspace{0cm}}r@{\hspace{0
1cm}}cr@{\hspace{0cm}}c@{\hspace{0cm}}r@{\hspace{0.1cm}}cr@{\hspace{0cm}}c@{\hspace{0cm}}r
{\hspace{0.1cm}}cr@{\hspace{0cm}}c@{\hspace{0cm}}r@{\hspace{0.1cm}}cr@{\hspace{0cm}}c@{\hs
ace{0cm}}r@{\hspace{0.1cm}}c}
\\
\hline
Dataset & \multicolumn{3}{c}{ConjunctiveRule }& \multicolumn{4}{c}{DecisionTable } &
\multicolumn{4}{c}{DTNB } & \multicolumn{4}{c}{JRip} & \multicolumn{4}{c}{NNge} &
\multicolumn{4}{c}{OneR} & \multicolumn{4}{c}{PART} & \multicolumn{4}{c}{Ridor} \\
\hline
Number correct & 9.5900 & $\pm$ & 1.16 & 9.5600 & $\pm$ & 1.22 & & 9.5600 & $\pm$ &
1.22 & & 9.5000 & $\pm$ & 1.24 & & 8.9500 & $\pm$ & 1.34 & & 9.6000
& $\pm$ & 1.16 & & 9.3000 & $\pm$ & 1.34 & & 9.1700 & $\pm$ & 1.42 & \
\end{tabular} \scriptsize \par}
\end{table}
\end{document}
решение1
Вам необходимо определить каждый столбец с десятичными цифрами как S
-столбцы.
У вас в таблице 31 столбец, некоторые с десятичной дробью, некоторые с математическим знаком, а некоторые пустые. В пустом я поставил emdash
(чтобы отслеживать).
Вот MWE (минимальный рабочий пример). Я использовал его scrartcl
с высоким DIV-фактором и ландшафтным режимом, чтобы втиснуть таблицу между полями страницы. Вы можете добиться того же, используя -package geometry
с правильным параметром:
\documentclass[a4paper,landscape,DIV=20]{scrartcl}
\usepackage{siunitx}
\begin{document}
\sisetup{
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 2
}
\begin{table}[thb]
\caption{\label{labelname}Table Caption}
\centering\tiny
\begin{tabular}{
l
S[table-auto-round]
c
S[table-auto-round]
S[table-auto-round]
c
S[table-auto-round]
l
S[table-auto-round]
c
S[table-auto-round]
l
S[table-auto-round]
c
S[table-auto-round]
l
S[table-auto-round]
c
S[table-auto-round]
l
S[table-auto-round]
c
S[table-auto-round]
c
S[table-auto-round]
c
S[table-auto-round]
c
S[table-auto-round]
c
S[table-auto-round]
l}
Dataset & \multicolumn{3}{c}{ConjunctiveRule }& \multicolumn{4}{c}{DecisionTable } &
\multicolumn{4}{c}{DTNB } & \multicolumn{4}{c}{JRip} & \multicolumn{4}{c}{NNge} &
\multicolumn{4}{c}{OneR} & \multicolumn{4}{c}{PART} & \multicolumn{4}{c}{Ridor} \\
Number correct &
9.5900 &
$\pm$ &
1.16 &
9.5600 &
$\pm$ &
1.22 &
--- &
9.5600 &
$\pm$ &
1.22 &
--- &
9.5000 &
$\pm$ &
1.24 &
--- &
8.9500 &
$\pm$ &
1.34 &
--- &
9.6000 &
$\pm$ &
1.16 &
--- &
9.3000 &
$\pm$
& 1.34 &
--- &
9.1700 &
$\pm$ &
1.42 &
--- \\
\end{tabular}
\end{table}
\end{document}
решение2
См. страницу 57siunitx
документация.
Небольшой пример:
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\sisetup{
table-number-alignment = center,
table-figures-integer = 1,
table-figures-decimal = 2
}
\begin{tabular}{
S[table-auto-round]
}
2.\\
2.3\\
2.34\\
2.345
\end{tabular}
\end{document}