自动调整单列以适合文本

自动调整单列以适合文本

我有以下表格,想缩小第一列(仅)以便整个表格与文本宽度相同。我不想使用,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。但是前两行现在需要\multicolumns 来摆脱不需要的垂直线。

最后\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}

相关内容