Как заставить siunitx правильно центрировать столбцы целых чисел

Как заставить siunitx правильно центрировать столбцы целых чисел

Я только что обнаружил siunitx, который, кажется, делает то, что мне нужно с таблицами, то есть центрирует столбец, но сохраняет выравнивание чисел по десятичной дроби. Я обнаружил, что это не работает для столбца целых чисел (скажем, 99, 9, 99, 99). Числа правильно выровнены между собой, но не центрированы правильно внутри столбца, будучи смещенными на одну или две позиции влево от того места, где они должны быть. Я использую siunitxбез изменения параметров и просто {S} в качестве типа столбца. Это отлично работает для столбцов чисел с десятичными точками, но неправильно распознает столбцы целых чисел.

решение1

Вы можете использовать table-formatопцию , чтобы указать, сколько места отвести для каждой части чисел в таблице. Если у вас есть целые числа длиной, скажем, до 3 цифр, вы можете использовать , table-format=3чтобы отвести место для 3 целых цифр и без десятичных знаков.

Как указано в комментариях, эту опцию также можно задать для каждого столбца отдельно, передав параметры в определение столбца при его использовании.

Вот пример:

\documentclass{article}
\usepackage{siunitx}

\begin{document}

\begin{table}
  \sisetup{
    table-format = 2,
  }
  \begin{tabular}{SSS}
    A  & B  & C  \\
    15 &  3 &  2 \\ 
    20 &  2 & 19 \\ 
    25 & 24 &  4 \\ 
  \end{tabular}
\end{table}

\begin{table}
  \begin{tabular}{
      S[table-format=2.3] % with space for integers and decimals
      S[table-format=2]   % with space for integers only
      S                   % as the default
    }
    A  & B  & C  \\
    15 &  3 &  2 \\ 
    20 &  2 & 19 \\ 
    25 & 24 &  4 \\ 
  \end{tabular}
\end{table}

\end{document}

Вот как выглядят выровненные целые числа:

введите описание изображения здесь

Связанный контент