如何放大字体和行高,同时保持表格的文本宽度不变

如何放大字体和行高,同时保持表格的文本宽度不变

我正在使用 overleaf。我的表格很宽。我使用 \resizebox 来保持行宽。但是,字体变得非常小。我怎样才能放大字体和每行的高度,以便宽度和高度都得到适当调整。

\begin{table}[t]
%\LARGE
\caption{names}
\label{tab: table 1}
\resizebox{\textwidth}{!}{
\begin{tabular}{cccccccc}

\toprule
Modularity Class & 0                   & 1             & 2                & 3                & 4                  & 5              & 6                    \\
\midrule
\hline
1                & CANADA              & COVID         & SOCIALDISTANCING & PANDEMIC         & TRUMP              & UK             & COVID19              \\ \hline
2                & AUSPOL              & CHINA         & QUARANTINE       & NEWS             & USA                & COVID19UK      & CORONAVIRUS          \\ \hline
3                & CDNPOLI             & VACCINE       & MASKS            & HEALTHCARE       & WEARAMASK          & LONDON         & COVID\_19            \\ \hline
4                & COVID19AUS          & HEALTH        & MASK             & ECONOMY          & COVIDIOTS          & CORONAVIRUSUK  & LOCKDOWN   
\end{tabular}
}
\end{table}

答案1

没有好的格式化方法可以让设计很差的表格更好地适应可用空间。这些情况的一般解决方案只能是 (a) 为表格获得更多空间(例如,横向页面)或 (b) 重新设计表格。

然后,如果需要的话,再考虑使用任何其他编码方法来调整单元格大小,如水平填充、减小字体大小(\resizebox当然没有)等,这些方法只有从合理的设计开始才有效。

选项 (a) 不仅有颈部锻炼的缺点,在这种情况下,表格对于横向页面来说也太短了,所以如果页面的剩余空间不能用另一个表格之类的东西填充,页面布局就会很糟糕。因此,我最好选择选项 (b)。

最明显的变换是转置行和列。由于这还不够,我还将字体缩小到\scriptsize通常太多的程度,但对于大写字符来说仍然是可以接受的。我还将使用tabularyotabularx来获得不相等的列大小,这样可以减少用连字符连接一些变量名称的不便:


姆韦


\documentclass{article}
\usepackage{booktabs,tabulary,lipsum}
\begin{document}
\begin{table}
\centering\scriptsize
\caption{Modularity classes} 
\begin{tabulary}{\linewidth}{@{}cLLLL@{}}\toprule 
Names & \centering 1 & 
        \centering 2 & 
        \centering 3 &
        \centering\arraybackslash 4 \\
\cmidrule(r){1-1} 
\cmidrule(rl){2-2} 
\cmidrule(rl){3-3} 
\cmidrule(rl){4-4} 
\cmidrule(l){5-5} 
   0 &  CANADA &  AUSPOL &  CDNPOLI &  COVID19AUS \\ 
   1 &  COVID &  CHINA &  VACCINE &  HEALTH \\ 
   2 &  SOCIALDISTANCING &  QUARANTINE &  MASKS &  MASK \\ 
   3 &  PANDEMIC &  NEWS &  HEALTHCARE &  ECONOMY \\ 
   4 &  TRUMP &  USA &  WEARAMASK &  COVIDIOTS \\ 
   5 &  UK &  COVID19UK &  LONDON &  CORONAVIRUSUK \\ 
   6 &  COVID19 &  CORONAVIRUS &  COVID\_19 &  LOCKDOWN \\ 
   \bottomrule 
\end{tabulary} 
\end{table}
\noindent\lipsum[1][1-4] % dummy texto to see the fit the margins
\end{document}

答案2

通过对表格宽度施加全局约束,您是在倒着解决问题。问题的原因是,除非您允许换行,否则单个单元格太宽。这可以借助包tabularx和同名环境来实现。请注意,为了获得表格中某些单词的满意连字点,您必须自己提供可接受的连字点列表。另一个好主意是使用“压缩”字体(例如 Calibri)来显示表格内容。

在此处输入图片描述

\documentclass{article}
\usepackage{iftex}
\ifluatex
  \usepackage{fontspec}
  \setmainfont{Calibri} % or some other condensed font
\else
  \usepackage[T1]{fontenc}
  \usepackage{lmodern}
\fi

\usepackage{booktabs,tabularx,ragged2e}
\newcolumntype{C}{>{\Centering\hspace{0pt}}X}
\newcolumntype{L}{>{\RaggedRight\hspace{0pt}}X}

% provide hyphenation patterns for uncommon words:
\hyphenation{can-ada so-cial-dis-tan-cing wear-a-mask cdn-poli 
     co-ro-na-vi-rus co-ro-na-vi-rus-uk}

\begin{document}
\setlength\tabcolsep{3pt} % default: 6pt
\begin{table}[t]
\caption{names\strut}
\label{tab:table1}
\begin{tabularx}{\textwidth}{@{} L *{7}{C} @{}}
\toprule
Modularity Class & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
\midrule
1 & CANADA  & COVID & SOCIALDISTANCING & PANDEMIC & TRUMP & UK & COVID\-19   
\\ \addlinespace
2 & AUSPOL  & CHINA & QUARANTINE & NEWS & USA & COVID\-19\-UK & CORONAVIRUS 
\\ \addlinespace
3 & CDNPOLI & VACCINE & MASKS & HEALTHCARE & WEARAMASK & LONDON & COVID\-\_19 
\\ \addlinespace
4 & COVID\-19\-AUS & HEALTH & MASK & ECONOMY & CO\-VID\-IOTS & CORONAVIRUSUK  & LOCKDOWN    
\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

相关内容