我有几个表格,每个表格都有 3 列。所有表格的第一列和第三列大小相同,但第二列不同。
由于第二行的行长不同,有些表格的字体较小且第二列比其他表格宽。
我希望所有表格中的第二列具有相同的内容并且具有相同的字体大小。
这是我制作所有表格的方式:
\begin{table}[]
\centering
\caption{tile X}
\resizebox{.8\textwidth}{!}{
\label{my-label}
\begin{tabular}{|l|l|l|}
\hline
term ID & description & log10 p-value \\ \hline
GO:0000502 & proteasome complex & -1.5144 \\ \hline
GO:0005575 & cellular\_component & -0.9977 \\ \hline
GO:0005739 & mitochondrion & -1.1136 \\ \hline
GO:0034515 & proteasome storage granule & -1.3222 \\ \hline
\end{tabular}}
\end{table}
答案1
如果您希望所有表格都具有相同的字体大小,同时仍占用相同的宽度(0.8\textwidth
),请不要使用该\resizebox
方法。相反,加载tabularx
包,将每个环境的宽度指定tabularx
为0.8\textwidth
,并使用X
(或适当修改的版本X
)作为第二列的类型。(“适当修改”是指将其材料排版为右侧不规则但仍然允许连字符的版本X
。)
您可能还需要考虑从tabular
(或tabularx
) 环境中删除所有垂直线,删除大多数\hline
指令,并分别\hline
用\toprule
、\midrule
和\bottomrule
(该包提供的三个宏booktabs
)替换剩余的几个实例。比较下面两个表格的外观:您认为哪一个看起来更“开放”,从而吸引读者停留并真正“阅读”表格的内容?
\documentclass{article}
\usepackage{siunitx,tabularx,ragged2e,booktabs,caption}
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{T}[1]{S[table-format=#1]}
\begin{document}
\begin{table}
\centering
\caption{tile X} \label{my-label-X}
\begin{tabularx}{0.8\textwidth}{|l|Y|T{-1.4}|}
\hline
term ID & description & {log10 p-value} \\ \hline
GO:0000502 & proteasome complex & -1.5144 \\ \hline
GO:0005575 & cellular\_component & -0.9977 \\ \hline
GO:0005739 & mitochondrion & -1.1136 \\ \hline
GO:0034515 & proteasome storage granule & -1.3222 \\ \hline
\end{tabularx}
\end{table}
\begin{table}[h!]
\centering
\caption{tile XX} \label{my-label-XX}
\begin{tabularx}{0.8\textwidth}{@{}lYT{-1.4}@{}}
\toprule
term ID & description & {log10 p-value} \\ \midrule
GO:0000502 & proteasome complex & -1.5144 \\
GO:0005575 & cellular\_component & -0.9977 \\
GO:0005739 & mitochondrion & -1.1136 \\
GO:0034515 & proteasome storage granule & -1.3222 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}