reduzindo a largura da coluna siunitx

reduzindo a largura da coluna siunitx

Estou tentando fazer uma tabela usando o siunitxpacote. No entanto, cada coluna é preenchida com uma grande quantidade de espaços em branco. Ao alterar tabcolsep, posso reduzir a quantidade de espaços em branco à direita de cada coluna, mas não posso alterar a quantidade de espaços em branco à esquerda. A alteração table-column-widthapenas causa estouro de hbox, preservando o excesso de espaço em branco.

Aqui está um MWE:

\documentclass{article}
\usepackage{siunitx}
\usepackage{lscape}

\begin{document}
  \setlength{\tabcolsep}{0.2em}
  \begin{landscape}
    \centerline{
      \begin{tabular}{
          S |
          S |
          S |
          S |
          S |
          S |
          S |
          S |
          S |
          S |
          S
        }
3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
      \end{tabular}
    }%//centerline
  \end{landscape}
\end{document}

E aqui está a versão table-column-widthdefinida explicitamente:

\documentclass{article}
\usepackage{siunitx}
\usepackage{lscape}

\begin{document}
  \setlength{\tabcolsep}{0.2em}
  \begin{landscape}
    \centerline{
      \begin{tabular}{
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em] |
          S[table-column-width=8em]
        }
3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
      \end{tabular}
    }%//centerline
  \end{landscape}
\end{document}

Por favor, informe como remover o espaço em branco à esquerda de cada número para que a tabela caiba em uma única página. Obrigado.

Responder1

A seguir usei o mesmo formato para todas as colunas, o que significa que há supérfluos em torno de números mais curtos como o 3. Se quiser ainda mais próximos, ajuste o formato de cada coluna individualmente.

O formato atual 1.2e-1significa

  • 1dígito na frente do sinal decimal
  • 2dígitos atrás do sinal decimal
  • eprecisa de espaço
  • -precisa de espaço
  • 1dígito no expoente

ComoMico sugeriunos comentários: Para obter um espaçamento ainda menor você pode usar tight-spacing=truecomo opção da siunitxembalagem ou na Scoluna.

\documentclass{article}
\usepackage[tight-spacing=true]{siunitx}
\usepackage{lscape}

\begin{document}
  \setlength{\tabcolsep}{0.2em}
  \begin{landscape}
    \centering
      \begin{tabular}{
            c|
          *{10}{S[table-format=1.2e-1]|}
        }
3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
      \end{tabular}
  \end{landscape}
\end{document}

insira a descrição da imagem aqui

Responder2

Também podemos brincar com diferentes formatos de números: alguns têm expoente negativo, outros não. Se o conteúdo de cada célula for representativo de sua coluna, isso leva à segunda tabela:

\documentclass{article}

\usepackage{siunitx}
\usepackage{lscape}

\begin{document}

\begin{landscape}
  \centering
  \setlength{\tabcolsep}{4pt}
  \sisetup{table-format=1.2e-1,table-number-alignment=center}
  \begin{tabular}{|l |*{10}{S|}}
    3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
  \end{tabular}
  \vspace*{1cm}

  \begin{tabular}{|l|S[table-format =1.2e1]|*{2}{S|}*{3}{S[table-format =1.2e1]|}*{2}{S|}*{2}{S[table-format =1.2e1]|}}
    3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
  \end{tabular}
\end{landscape}

\end{document} 

insira a descrição da imagem aqui

Responder3

Aqui vai mais uma sugestão: (a) Empregue um tabular*ambiente (com largura alvo de \textwidth), (b) defina as opções tight-spacinge exponent-product={\mkern1mu\cdot}(para economizar espaço), (c) livre-se de todas as regras verticais (ainda para economizar espaço), e (d) usar a table-formatopção para especificar a formatação de largura mínima para cada coluna.

Com esta configuração, pode não ser necessário alternar para o modo paisagem para compor a tabela.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage[margin=2.5cm]{geometry}
\usepackage{array,siunitx}
\newcolumntype{T}[1]{S[tight-spacing,
                       exponent-product={\mkern1mu\cdot},
                       table-format=1.2e#1]}
\begin{document}
  \begingroup % localize the scope of the next instruction
  \setlength{\tabcolsep}{0pt}
  \noindent
  \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} 
          l T{1} *{2}{T{-1}} *{3}{T{1}} *{2}{T{-1}} *{2}{T{1}} }
    3 & 3.20E+01 & 3.13E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 
      & 1.50E+01 & 6.67E-02 & 1.25E-01 & 3.75E+08 & 5.07E+05 \\
  \end{tabular*}
  \endgroup
\end{document}

informação relacionada