我有下表,但似乎无法将其均匀分布到各列。最简单的方法是什么?
其他问题似乎表明p{( 1/# of cols )\linewidth}
,但这似乎对我不起作用
\begin{table}[t]
\begin{tabular}{p{0.14\linewidth}|p{0.14\linewidth}p{0.14\linewidth}|p{0.14\linewidth}p{0.14\linewidth}|p{0.14\linewidth}p{0.14\linewidth}}
% some data that's very long
\end{tabular}
\end{table}
由于某种原因,.14(大约为 1/7)太短了,而 .15 也太短了。有没有自动缩放的方法?
这是 CVPR 2022 论文模板,供参考。
答案1
和tabularx
:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{table}[ht]
\begin{tabularx}{\linewidth}{X|
XX|
XX|
XX}
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\hline
\end{tabularx}
\end{table}
\end{document}
(红线表示页面布局)
或使用tblr
以下tabularray
包:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\begin{tblr}{hlines,
colspec = {X|XX|XX|XX}
}
1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\end{tblr}
\end{table}
\end{document}
结果几乎相同。不同之处在于单元格内容周围的垂直空间。
答案2
您还需要考虑列之间的填充。
\documentclass{article}
\usepackage{array}% recommended
\usepackage{tabularx}% for the second realization
\usepackage{showframe}% for showing the page boundaries
\newlength{\mycolwd}
\begin{document}
\begin{table}[htp]
% we want 7 columns, so we subtract twelve \tabcolsep
% and 3 rule widths from the column width
% and divide by seven
\setlength{\mycolwd}{%
\dimexpr(\columnwidth-12\tabcolsep-3\arrayrulewidth)/7\relax
}
\begin{tabular}{
@{}% no padding at the left
p{\mycolwd}|p{\mycolwd}
p{\mycolwd}|p{\mycolwd}
p{\mycolwd}|p{\mycolwd}
p{\mycolwd}
@{}% no padding at the right
}
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f \\
\end{tabular}
\caption{First way}
\end{table}
\begin{table}[htp]
\begin{tabularx}{\columnwidth}{
@{}% no padding at the left
X|X
X|X
X|X
X
@{}% no padding at the right
}
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f &
aa b c dd eee f \\
\end{tabularx}
\caption{Second way}
\end{table}
\end{document}
您会发现第二种方法不需要计算。