Como fazer com que o siunitx centralize colunas de números inteiros corretamente

Como fazer com que o siunitx centralize colunas de números inteiros corretamente

Acabei de descobrir siunitx, que parece fazer o que quero com tabelas, que é centralizar uma coluna, mas manter os números decimais alinhados. Acho que não funciona para uma coluna de números inteiros (digamos 99, 9, 99, 99). Os números estão corretamente alinhados entre si, mas não estão centralizados corretamente dentro da coluna, sendo deslocados uma ou duas posições para a esquerda de onde deveriam estar. Estou usando siunitxsem alteração de opções e apenas um {S} simples como tipo de coluna. Funciona bem para colunas de números com casas decimais, mas erra colunas de números inteiros.

Responder1

Você pode usar a table-formatopção para especificar quanto espaço reservar para cada parte dos números na tabela. Se você tiver números inteiros de até, digamos, 3 dígitos, poderá usar table-format=3para reservar espaço para 3 dígitos inteiros e nenhum decimal.

Conforme declarado nos comentários, esta opção também pode ser definida por coluna, passando as opções para a definição da coluna quando for usada.

Aqui está um exemplo:

\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}

Esta é a aparência dos números inteiros alinhados:

insira a descrição da imagem aqui

informação relacionada