我有一个简单的表格:
\begin{table}[]
\begin{tabular}{c|c|c|c|c|c|c|c|}
\cline{2-7} &
\multicolumn{1}{p{2.7cm}|}{RIGHT} &
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT} \\ \hline
\multicolumn{1}{|c|}{test1} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\multicolumn{1}{|c|}{test2} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\multicolumn{1}{|c|}{test2} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\end{tabular}
\end{table}
看起来像这样:
我试图使该表适合页面,并在文本太长时增加行大小,但我没能做到这一点。
有人帮助我使用这个调整表格大小:
\newcommand*{\ResizeTableIfTooBig}[1]{%
%% #1 = table
\savebox{\MyTable}{#1}%
\ifdim\wd\MyTable<\linewidth
\usebox{\MyTable}%
\else
\resizebox{\textwidth}{!}{\usebox{\MyTable}}%
\fi
}%
问题是此快照只是缩放表格,并且当单元格中的文本太长时,字体就会变得非常小。
答案1
您可以使用 tabularx
以使表格适合线宽:
\documentclass{article}
\usepackage{tabularx, lipsum}
\setlength{\extrarowheight}{2pt}
\begin{document}
\lipsum[11]
\begin{table}[!htb]
\begin{tabularx}{\linewidth}{|c|>{\centering}p{2.7cm}|*{5}{>{\centering\arraybackslash}X|}}
\cline{2-7}
\multicolumn{1}{c|}{} & RIGHT & LEFT & LEFT & LEFT & LEFT & LEFT \\
\hline
test1 & 1 & 1 &1 & 1 & 1 & I vel II vel III vel \&c. \\ \hline
test2 & 1 & 1 &1 & 1 & 1 &1 \\ \hline
test2 & 1 & 1 &1 & 1 & 1 &1 \\ \hline
\end{tabularx}
\end{table}
\end{document}
答案2
那样可以吗?
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{c|c|c|c|c|c|c|c|}
\cline{2-7} &
\multicolumn{1}{p{2.7cm}|}{RIGHT} &
\multicolumn{1}{ >{\raggedright}p{2.5cm}<{} | }{LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT }&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT}&
\multicolumn{1}{c|}{LEFT} \\ \hline
\multicolumn{1}{|c|}{test1} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\multicolumn{1}{|c|}{test2} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\multicolumn{1}{|c|}{test2} & 1 & 1 &1 & 1 & 1 &1\\ \hline
\end{tabular}
\end{document}
编辑:看起来您希望表格的每个单元格都具有相同的行为,而不仅仅是在某些标题单元格中,就像我最初想的那样。在这种情况下,以下方法可能更方便:
\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>{\raggedright\arraybackslash}p{1.5cm}<{}}
\begin{document}
\begin{tabular}{C|C|C|C|C|C|C}
1 & 2 & 3 & 4 & 5 & 6 & 7 \\ \hline
1 & 2 & LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT & 4 & 5 & 6 & 7 test test test tes tt test \\
\end{tabular}
\end{document}