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}

관련 정보