我有以下表格,想缩小第一列(仅)以便整个表格与文本宽度相同。我不想使用,p{...cm}
因为我希望表格自动适应文本。但是,我还是尝试使用它,但发现如果我将它放在begin{tabular}{p{1cm}l|l|l|l|l|l}
。
\documentclass{article}
\usepackage{multirow,blindtext}
\begin{document}
\blindtext
\begin{tabular}{ll|l|l|l|l|l|}
\cline{3-7}
& & \multicolumn{5}{|c|}{Going to ... dice matching}\\ \cline{3-7}
& & 1 & 2 & 3 & 4 & 5\\ \hline
\multicolumn{1}{|c|}{\multirow{5}{*}{From ... dice matching}} & 1 & 720/7776
& 5400/7776 & 1500/7776 & 150/7776 & 6/7776\\ \cline{2-7}
\multicolumn{1}{|c|}{} & 2 & & 120/216 & 80/216 & 15/216 & 1/216\\ \cline{2-7}
\multicolumn{1}{|c|}{} & 3 & & & 25/36 & 10/36 & 1/36\\ \cline{2-7}
\multicolumn{1}{|c|}{} & 4 & & & & 5/6 & 1/6\\ \cline{2-7}
\multicolumn{1}{|c|}{} & 5 & & & & & 1\\
\hline
\end{tabular}
\end{document}
我应该把它放在哪里p{...cm}
才能工作?如何让第一列的宽度自动调整,以使表格适合文本?
感谢您的帮助!
答案1
首先,通过使用tabularx
您可以设置表格的宽度并插入X
列。后者基本上类似于p
,但其宽度会自动设置为获得具有给定宽度的表格所需的宽度。这里 ist 用于第一列。
通过改变列声明,使所有列之间都有垂直线,\multicolumn
可以删除最后五行的 s。但是前两行现在需要\multicolumn
s 来摆脱不需要的垂直线。
最后\multirow{5}{*}...
必须将其更改为\multirow{5}{=}...
占据列的宽度。
\documentclass{article}
\usepackage{multirow,blindtext}
\usepackage{tabularx}
\begin{document}
\blindtext
\noindent
\begin{tabularx}{\textwidth}{|X|l|l|l|l|l|l|}
\cline{3-7}
\multicolumn{2}{c|}{} & \multicolumn{5}{c|}{Going to ... dice matching}\\ \cline{3-7}
\multicolumn{2}{c|}{} & 1 & 2 & 3 & 4 & 5\\ \hline
\multirow{5}{=}{From ... dice matching} & 1 & 720/7776 & 5400/7776 & 1500/7776 & 150/7776 & 6/7776\\ \cline{2-7}
& 2 & & 120/216 & 80/216 & 15/216 & 1/216\\ \cline{2-7}
& 3 & & & 25/36 & 10/36 & 1/36\\ \cline{2-7}
& 4 & & & & 5/6 & 1/6\\ \cline{2-7}
& 5 & & & & & 1\\
\hline
\end{tabularx}
\end{document}