我的表格中有 5 列。因此,我想减少两列之间的距离以使其看起来更美观。在下图中,我想减少第 1 列和第 2 列之间的距离。
我试过了\setlength{\tabcolsep}{5pt}
,但效果不太好。我希望顶行只占两行,而不是三行。我该怎么做?
\usepackage{tabularx,booktabs}
\usepackage{array}
\newcolumntype{Z}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}
\newcolumntype{C}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p}
\begin{table}[t]
\caption{Case studies}
\centering
\begin{tabularx}{\textwidth}{C{3cm}*5{Z}}
\toprule
Nature of unreliability & Sender SST & Receiver SST & Implementation SST & Retransmission Bound \\
\midrule
Noisy (Single fixed error message) & DSST & DSST & DSST & Unbounded \\
\bottomrule
\end{tabularx}
\label{case-studies}
\end{table}
答案1
要将任意两列之间(例如,第 1 列和第 2 列之间)的列间空白量设置为0
,您可以在环境@{}
的第二个参数中的相应位置插入tabularx
。
请注意,由于第 2 列的列类型为“Z”(反过来,它基于“X”列类型),并且第一列具有固定宽度,因此示例代码中第 1 列和第 2 列之间的总列间空白仍然不为零。发生这种情况的原因是 (i) 环境tabularx
会扩展相关列的宽度以填充分配的宽度,并且 (ii) 第一列的宽度可能比将其内容排版在一行上绝对必要的宽度更宽。
以下修改后的 MWE 形式实现了这个想法,并且还应用了一些进一步的改进。例如,我将删除第一列之前和最后一列之后不必要的空格,并且我还会将第一\raggedright
列左对齐(使用)而不是居中设置,以使其在视觉上与数据列更加不同。
\documentclass[a4paper]{article} % change if you're not using A4 paper size
\usepackage[margin=1in]{geometry} % change margin settings to desired values
\usepackage{tabularx,booktabs}
\newcolumntype{Z}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p}
\begin{document}\pagestyle{empty}
\begin{table}[t]
\caption{Case studies} \label{case-studies}
\smallskip
\begin{tabularx}{\textwidth}{@{} L{4.5cm} @{} *4{Z} @{}}
\toprule
Nature of unreliability & Sender SST & Receiver SST & Implementation SST & Retransmission Bound \\
\midrule
Noisy (Single fixed error message) &
DSST & DSST & DSST & Unbounded \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
答案2
小修改米科回答:
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{tabularx,booktabs}
\newcolumntype{C}{>{\centering\let\newline\\\arraybackslash}X}% renamed
\begin{document}\pagestyle{empty}
\begin{table}[t]
\caption{Case studies} \label{case-studies}
\smallskip
\begin{tabularx}{\textwidth}{l
*2{>{\hsize=0.9\hsize}C}
*2{>{\hsize=1.1\hsize}C}
}
\toprule
Nature of unreliability & Sender SST & Receiver SST & Implementation SST & Retransmission Bound \\
\midrule
Noisy (Single fixed error message) &
DSST & DSST & DSST & Unbounded \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}