如何将表格标题分成两行?

如何将表格标题分成两行?

我想将表格的标题放在两行上。例如,我希望反应缓冲液位于上方(150mM 醋酸钠),等等,但我不知道该怎么做。

另外,表格对于我的文档来说太宽了,有人知道如何压缩(缩小)整个表格吗?

\footnotesize
\begin{table}[h]
\centering
\small
\footnotesize
\tabcolsep=0.11cm
\begin{tabular}{@{}ll@{}@{}ll@{}@{}ll@{}ll@{}}
\toprule
Tube & MilliQ Water $(\mu L)$ \, &  100 mM MgCl\_2 $(\mu L)$, & Reaction Buffer (150 mM sodium acetate) $(\mu L)$  \,  & 500 mM NaOH $(\mu L)$, & 4 mM pNPP $(\mu L)$\\ 
\midrule
    1 & 60 & 15 & 30. (pH 4.0)& {} & 600. & 30. \\
    2 & 60 & 15 & 30. (pH 5.0) & {} & 600. & 30.\\
    3 & 60 & 15 & 30. (pH 6.0) & {} & 600. & 30.\\
    4 & 60 & 15 & {} & 30. (pH 7.0) & 600. & 30. \\
    5 & 60 & 15 & {} & 30. (pH 8.0) & 600. & 30. \\
    6 & 60 & 15 & {} & 30. (pH 9.0) & 600. & 30. \\ 
\bottomrule
\end{tabular}
\end{table}

\end{homeworkProblem}

答案1

使用makecell它,以及它的\thead命令。此外,我还加载了mhchemsiunitx包。

\documentclass{article}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage{array, booktabs, makecell}
\usepackage{siunitx, mhchem}
\newcommand\muL{\si{\micro\liter}}
\begin{document}

\begin{table}[h]
\centering
\small
\tabcolsep=0.11cm
\begin{tabular}{@{}*{7}{c}@{}}
\toprule
Tube & \thead{Milli-Q\\ Water \\ \muL} & \thead{100\,mM\\ \ce{MgCl2} \\ \muL} & \thead{Reaction Buffer \\ (150\,mM sodium\\ acetate) \muL} & \thead{500\,mM \\\ce{NaOH} \\ \muL} & \thead{4\,mM\\ pNPP \\\muL}\\
\midrule
    1 & 60 & 15 & 30. (pH 4.0)& {} & 600. & 30. \\
    2 & 60 & 15 & 30. (pH 5.0) & {} & 600. & 30.\\
    3 & 60 & 15 & 30. (pH 6.0) & {} & 600. & 30.\\
    4 & 60 & 15 & {} & 30. (pH 7.0) & 600. & 30. \\
    5 & 60 & 15 & {} & 30. (pH 8.0) & 600. & 30. \\
    6 & 60 & 15 & {} & 30. (pH 9.0) & 600. & 30. \\
\bottomrule
\end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

答案2

在包的帮助下makecellsiunitx我重新设计了您的表格,这应该是您进一步格式化的起点:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,makecell}
    \renewcommand\theadfont{\normalfont}
\usepackage{siunitx}

\usepackage[margin=30mm,showframe]{geometry}

    \begin{document}
\begin{table}[h]
    \centering
\caption{My important chemistry table}
    \label{tab:table-1}
\begin{tabular}{@{}*{8}{c}@{}}
    \toprule
\thead{Tube}   
    &   \thead{MilliQ\\ Water (\si{\micro L})} 
        &  \thead{\SI{100}{mM}\\ MgCl\textsubscript{2} (\si{\mu L})} 
            &   \thead{Reaction Buffer\\ 
                      (\SI{150}{mM} sodium\\
                       acetate) (\si{\micro L})}
                &   \thead{\SI{500}{mM}\\ NaOH (\si{\micro L})}
                    &   \thead{\SI{4}{mM}\\ pNPP (\si{\micro L})}  \\
    \midrule
1 & 60 & 15 & 30. (pH 4.0) & {} & 600. & 30. \\
2 & 60 & 15 & 30. (pH 5.0) & {} & 600. & 30. \\
3 & 60 & 15 & 30. (pH 6.0) & {} & 600. & 30. \\
4 & 60 & 15 & {} & 30. (pH 7.0) & 600. & 30. \\
5 & 60 & 15 & {} & 30. (pH 8.0) & 600. & 30. \\
6 & 60 & 15 & {} & 30. (pH 9.0) & 600. & 30. \\
    \bottomrule
\end{tabular}
\end{table}
    \end{document}    

showframe包选项geometry仅用于显示页面布局。如您所见,我手动打破了长列标题。这theadmakecell包中启用了宏。

注意,这只是一个相对简单的解决方案。还有其他方法,例如使用列类型p{<width>}或使用tabularx等。

相关内容