我有一张表格,我想调整其列宽,使其稍微小一点。我习惯\renewcommand{\tabcolsep}{.00001pt}
这样做。但是,有一列似乎对这种调整没有反应。
下表:
\documentclass[11pt. oneside]{article}
\usepackage{geometry}
\geometry{landscape}
\geometry{letterpaper}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{array}
\usepackage{changepage}
\usepackage[
singlelinecheck=false
]{caption}
\usepackage[
singlelinecheck=false
]{caption}
\newcommand{\boldentry}[2]{%
\multicolumn{1}{S[table-format=#1,
mode=text,
text-rm=\fontseries{b}\selectfont
]}{#2}}
\begin{document}
\thispagestyle{empty} %Removes page number
\begin{table}[h]
\renewcommand{\tabcolsep}{.00001pt}
\begin{adjustwidth}{-3cm}{} %Adjusts table to the left, so all can be seen
\caption{This is the caption}
\begin{tabular}{lSSSSSSSSSSl} \toprule
{Header 1} & {\shortstack{Header (\textit{2})}} & {\shortstack{Header\\number 3}} & {\shortstack{Header\\ number 4}} &{ \shortstack{Header\\ 5}} & {\shortstack{Header\\number 6}} & {\shortstack{Header\\number 7}} & {Header number (8)} & {\shortstack{Header\\number (9)}} & {Header number 10} & {Header number 11} & {\shortstack{Header \textit{Number 12}}} \\
\midrule
{TLR1234} & {Total (10)} & {100 mm} & 100 & 200 & 300 & 400 & 500 & 600 {(700)} & & & \\
& {ST (10)} & & 100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
& {FG (10)} & & 100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & {900 (1000)} \\
& {SN (10)} & & 100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
\\ \bottomrule
\end{tabular}
\end{adjustwidth}
\end{table}
\end{document}
我发现是该条目600 {(700)}
导致了问题。如果我删除{}
,列会按照宽度调整,但这会导致 600 和 (700) 之间没有空格的问题。如果我删除{600 (700)}
,列仍会调整宽度,但条目不会居中对齐。你能给我解决这个问题的办法吗?表中另一个也包含括号的条目{900 (1000)}
似乎不会造成问题。
- - 编辑 - -
有了 Zarko 提供的解决方案,我仍然遇到一些问题。
\documentclass[11pt,oneside]{article}
\usepackage{geometry}
\geometry{landscape,letterpaper}
\usepackage{array,booktabs,makecell}
\usepackage{changepage}
\usepackage[singlelinecheck=false]{caption}
\usepackage{siunitx}
\sisetup{table-number-alignment=center,
table-format=3.0}
\begin{document}
\thispagestyle{empty} %Removes page number
\begin{table}[h]
% \renewcommand{\tabcolsep}{.00001pt}
\begin{adjustwidth}{-1.5cm}{} %Adjusts table to the left, so all can be seen
\caption{This is the caption}
\begin{tabular}{lcc*{9}{S}}
\toprule
\thead{Header\\ 1}
& \thead{Header\\ 2}
& {\thead{Header\\number 3}}
& {\thead{Header\\ number 4}}
& {\thead{Header\\ 5}}
& {\thead{Header\\number 6}}
& {\thead{Header\\ number 7}}
& {\thead{Header\\ number (8)}}
& {\thead{Header\\number (9)}}
& {\thead{Header\\ number 10}}
& {\thead{Header\\ number 11}}
& {\thead{Header\\ Number 12}} \\
\midrule
TLR1234 & Total (10) & {100 mm} & 100 & 200 & 300 & 400 & 500
& {600 (700)} %<---
&&& \\
& ST (10) & & 100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
& {FG (10)} & & 100 & 200 & 300 & 400 & 500 & 600 & 700 & 800
& {900 (1000)} % <--- (this row was not considered in my answer) \\
\bottomrule
\end{tabular}
\end{adjustwidth}
\end{table}
\end{document}
这给了我这个结果:
和我最初的问题一样,我仍然遇到值和括号中的值之间没有空格的问题。此外,我现在遇到的问题在于第 12 列中的条目现在延伸到了表格之外。
编辑: 由于您使用了我的部分答案,因此我擅自将其更正为与我(现已删除)答案的最后一个版本一致。在第二次编辑中描述了如何解决单元格中的居中问题,其中包含两个数字,即(更正了拼写错误):
在包含 600(700)的单元格中,最好将其括在花括号中,如 {600(700)},并使用此格式排除 S 格式:
TLR1234 & Total (10) & {100 mm} & 100 & 200 & 300 & 400 & 500 & {600 (700)} &&& \\
由于(此处每个答案的意图)是展示如何做(而不是为我做这件事),我期望您将在所有其他单元格中使用此解决方案,而由于问题相同,因此我没有考虑到这些单元格。
我的所有更正均以 表示% <---
。我的回答得到以下结果:
所以,对我来说真正的问题是:我的回答没有满足您原始问题的哪一部分?