パッケージを使用してテーブルを作成しようとしています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 ページに収まるように、各数字の左側の空白を削除する方法を教えてください。 ありがとうございます。
答え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
さまざまな数値形式を試すこともできます。負の指数を持つものもあれば、そうでないものもあります。各セルの内容がその列を表す場合、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}