更改字体大小以适合列宽中的文本

更改字体大小以适合列宽中的文本

我正在尝试创建一个所有列宽度相等的表格,但是如果某个单词需要更多空间,列宽就会改变。是否可以通过减小字体大小来自动调整“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
    & \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}

相关内容