我正在尝试创建一个所有列宽度相等的表格,但是如果某个单词需要更多空间,列宽就会改变。是否可以通过减小字体大小来自动调整“biiggwwoorrdd”?
谢谢
\centering
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{ |*{7}{Y|} }
\cline{1-7}
\multicolumn{1}{|c|}{Ano/Mes}
& \multicolumn{3}{c|}{Fantastical aardvarks}
& \multicolumn{3}{c|}{Spelunking elephants}\\
\hline
Foo bar & A & B & C & A & B & C\\
\hline
5 & 87 & 5 & 2 & 82 & 18 & 48\\
6 & 5 & 43 & 4 & 7 & 47 & 4\\
7 & 7 & 18 & 63 & 2 & 9 & 99\\
\hline
2º
& \multicolumn{1}{Y|}{\cellcolor[HTML]{EFEFEF}long test small words}
& \multicolumn{1}{c|}{\cellcolor[HTML]{EFEFEF}biiggwwoorrdd}
& \multicolumn{4}{c|}{\cellcolor[HTML]{EFEFEF}teste?} \\
\hline
\end{tabularx}
答案1
您可以使用包\resizebox*
提供的指令graphicx
来强制单词\hsize
的宽度与列的默认宽度一样宽X
。
我不得不说,这个练习的结果看起来很糟糕。如果我遇到一个有同样糟糕的字体大小变化的表格,我可能会开始大笑,或者更可能哭泣。当然,我会停止阅读这篇论文……
\documentclass{article}
\usepackage{tabularx,graphicx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\setlength\tabcolsep{3pt}
\setlength\extrarowheight{2pt} % optional
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ |*{7}{Y|} }
\hline % NOT "\cline{1-7}"
Ano\slash Mes
& \multicolumn{3}{c|}{Fantastical aardvarks}
& \multicolumn{3}{c|}{Spelunking elephants}\\
\hline
Foo bar & A & B & C & A & B & C\\
\hline
5 & 87 & 5 & 2 & 82 & 18 & 48\\
6 & 5 & 43 & 4 & 7 & 47 & 4\\
7 & 7 & 18 & 63 & 2 & 9 & 99\\
\hline
2º & longer test smaller words
& \resizebox*{\hsize}{!}{biiggwwoorrdd} % <-- new
& \multicolumn{4}{c|}{teste?} \\
\hline
\end{tabularx}
\end{document}