![Latex:表格:相对定义列宽](https://linux22.com/image/408331/Latex%EF%BC%9A%E8%A1%A8%E6%A0%BC%EF%BC%9A%E7%9B%B8%E5%AF%B9%E5%AE%9A%E4%B9%89%E5%88%97%E5%AE%BD.png)
通过此代码,我可以将所有 4 列均等划分。
{@{}*{4}{p{.25\textwidth}@{}}}
我该怎么说(例如):
column 1: 20 %
column 2: 30 %
column 3: 25 %
column 4: 25 %
请提供一个完整可编译的代码。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\begin{document}
\begin{table}[b!] %Label
\centering
\caption[Caption]{Caption.}
\label{tab:Label}
\begin{tabular}{@{}*{4}{p{.25\textwidth}@{}}}
\toprule
A & B & C & D \\ \midrule
A1 & B1 & C1 & D1 \\
A2 & B2 & C2 & D2 \\
A3 & B3 & C3 & D3 \\
A4 & B4 & C4 & D4 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
请不要对 A、B、C、D 感到惊讶——我已经将数据匿名化了。
提前致谢!
答案1
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}[hb] %Label
\centering
\caption[Caption]{Caption.}
\label{tab:Label}
\begin{tabular}{@{}*{4}{p{.25\textwidth}@{}}}
\toprule
A & B & C & D \\ \midrule
A1 & B1 & C1 & D1 \\
A2 & B2 & C2 & D2 \\
A3 & B3 & C3 & D3 \\
A4 & B4 & C4 & D4 \\ \bottomrule
\end{tabular}
\end{table}
\begin{table}[b!hb] %Label
\centering
\caption[Caption]{Caption.}
\label{tab:Label}
\begin{tabular}{@{}p{\dimexpr0.20\textwidth-\tabcolsep}
p{\dimexpr0.30\textwidth-2\tabcolsep}
p{\dimexpr0.25\textwidth-2\tabcolsep}
p{\dimexpr0.25\textwidth-\tabcolsep}
@{}}
\toprule
A & B & C & D \\ \midrule
A1 & B1 & C1 & D1 \\
A2 & B2 & C2 & D2 \\
A3 & B3 & C3 & D3 \\
A4 & B4 & C4 & D4 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
第一个表格是您的原始表格,第二个表格包含所需的解决方案(如果我正确理解了您的问题)。注意:在计算所需宽度(作为方程宽度的分数)时,您需要考虑,即单元格内容与列边框之间的距离。在第一列和最后一列中,此距离分别通过列的开头和结尾\tabcolsep
移除。@{}
(红线表示文字边框)
答案2
我建议使用 来实现tabularx
,使用语法>{\hsize=coeff\hsize}X
,其中系数分别与 20、30、25 和 25 成比例,约束是系数之和等于列数X
(4):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage[showframe]{geometry}
\begin{document}
\begin{table}[h!] %Label
\centering
\caption[Caption]{Caption.}
\label{tab:Label}
\begin{tabularx}{\textwidth}{>{\hsize=0.8\hsize}X >{\hsize=1.2\hsize}XXX}
\toprule
A & B & C & D \\ \midrule
A1 & B1 & C1 & D1 \\
A2 & B2 & C2 & D2 \\
A3 & B3 & C3 & D3 \\
A4 & B4 & C4 & D4 \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}