假设我想缩小下表。它实际上要大得多,但这是一个最小示例。我见过许多使用的解决方案resizebox
,但在这种情况下不太管用,因为我不仅需要缩小环境tabular
,还需要缩小子标题。
\begin{table}[htb]
\caption{Study 2: Summary of the answers to the demographics questionnaire.}\label{tab:study-2:demographics}
\centering
\subcaptionbox{A1: Have you studied music?}{
\begin{tabular}{@{}rccc}
\toprule
& {\bf\small no}
& {\bf\small informally}
& {\bf\small formally} \\ \midrule
{\bf\small beginners} & {\bf 7} & 5 & 2 \\
{\bf\small non-beginners} & 0 & 1 & {\bf 9} \\
{\bf\small total} & 7 & 6 & {\bf 11} \\ \bottomrule
\end{tabular}
}\quad
\subcaptionbox{A2: Do you play a musical instrument?}{
\begin{tabular}{ccc}
\toprule
{\bf\small no}
& {\bf\small one}
& {\bf\small more} \\ \midrule
{\bf 10} & 3 & 1 \\
0 & 2 & {\bf 8} \\
{\bf 10} & 5 & 9 \\ \bottomrule
\end{tabular}
}
\end{table}
这能做到吗?我是否应该将表格导出为 PDF,然后将其重新导入为图形?
答案1
使用类似\resizebox
指令的方式来缩放表格材料几乎总是一个糟糕的解决方案。
无论如何,一定要确定使用\small
或\footnotesize
是否能够成功排版表格材料而不超出文本块的宽度。但是,除非您公开蔑视读者——或者您不在乎读者是否认为您蔑视他们——否则不要尝试\scriptsize
,更不用说 了\tiny
。
正如 Christian He-Who-Causes-Excitement [!] Hupfer 在评论中指出的那样,\bf
已被严重弃用。事实上,它不再在 LaTeX 内核中定义。某些文档类(例如 KOMA-Script 类和)如果遇到、、等,memoir
就会崩溃。相反,请使用、、等。\bf
\it
\tt
\bfseries
\itshape
\ttfamily
尤其是当您的表格环境包含相当多的列时,经常减少(默认值:6pt)的值就足以使表格材料适合文本块。通过插入指令\tabcolsep
来抑制材料左右边缘的空白填充也很有用。tabular
@{}
如果每个子标题框中的材料足够庞大或复杂,以至于无法将两个(或更多)这样的框放在一起,即使在尝试\small
和\footnotesize
并降低了 的值之后也是\tabcolsep
如此。开始将子标题一个接一个地放置,而不是并排放置。
请研究以下修改后的代码形式,并确定它是否可以作为满足您的格式需求的模板。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs,subcaption,ragged2e}
\begin{document}
\begin{table}[p]
\caption*{Study 2: Summary of answers to demographics questionnaire.}
\label{tab:study-2:demographics}
\small % or \footnotesize, if necessary
\setlength\tabcolsep{4pt} % default value: 6pt
\subcaptionbox{A1: Have you studied music?}{%
\begin{tabular}{@{}rccc@{}}
\toprule
& \bfseries no & \bfseries informally & \bfseries formally \\
\midrule
\bfseries beginners & \bfseries 7 & 5 & 2 \\
\bfseries non-beginners & 0 & 1 & \bfseries 9 \\
\bfseries total & 7 & 6 & \bfseries 11 \\ \bottomrule
\end{tabular}%
}\hfill % maximize the distance between the subcaptionboxes
\subcaptionbox{\Centering A2: Do you play a musical instrument?}{%
\begin{tabular}{@{}ccc@{}}
\toprule
\bfseries no & \bfseries one & \bfseries more \\
\midrule
\bfseries 10 & 3 & 1 \\
0 & 2 & \bfseries 8 \\
\bfseries 10 & 5 & 9 \\
\bottomrule
\end{tabular}%
}
\end{table}
\end{document}