уменьшение ширины столбца siunitx

уменьшение ширины столбца siunitx

Я пытаюсь создать таблицу с помощью siunitxпакета. Однако каждый столбец заполнен большим количеством пробелов. Изменяя tabcolsep, я могу уменьшить количество пробелов справа от каждого столбца, но не могу изменить количество пробелов слева. Изменение table-column-widthприводит только к переполнению hbox, сохраняя при этом избыточное количество пробелов.

Вот 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}

А вот версия с table-column-widthявной настройкой:

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

Пожалуйста, посоветуйте, как убрать пробел слева от каждой цифры, чтобы таблица уместилась на одной странице. Спасибо.

решение1

Далее я использовал один и тот же формат для всех столбцов, что означает, что вокруг более коротких чисел, таких как , нет ничего лишнего 3. Если вы хотите, чтобы они были еще ближе, настройте формат для каждого столбца по отдельности.

Текущий формат 1.2e-1означает

  • 1цифра перед десятичным знаком
  • 2цифры после десятичного знака
  • eнужно пространство
  • -нужно пространство
  • 1цифра в показателе степени

КакМико предложилв комментариях: Чтобы получить еще более узкий интервал, вы можете использовать tight-spacing=trueлибо как опцию пакета siunitx, либо в Sколонке.

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

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

решение2

Мы также можем поиграть с различным форматом чисел: некоторые имеют отрицательную экспоненту, другие — нет. Если содержимое каждой ячейки представляет свой столбец, это приводит ко второй табличной форме:

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

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

решение3

Вот еще одно предложение: (a) используйте tabular*среду (с целевой шириной \textwidth), (b) задайте параметры tight-spacingи exponent-product={\mkern1mu\cdot}(для экономии места), (c) избавьтесь от всех вертикальных линий (все еще для экономии места) и (d) используйте параметр table-formatдля указания форматирования минимальной ширины для каждого столбца.

При такой настройке может не потребоваться переключение в альбомный режим для набора таблицы.

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

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

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