如何将表格序言中已经集中的列集中起来?

如何将表格序言中已经集中的列集中起来?

我正在制作一个包含 6 列和 2 行标题的表格。其中有 3 个主标题和 6 个副标题。所有列都是c类型,但是第 3 列和第 4 列未正确集中。有什么帮助吗?

\documentclass[12pt,a4paper]{article}
\usepackage{multirow} 
\usepackage{multicol}
\usepackage{booktabs}
\usepackage[
    font=footnotesize,
    justification=centering,
    figurewithin=section,
    tablewithin=section
]{caption}
\usepackage{siunitx}
\usepackage{chemformula}

\begin{document}

\begin{table}[h]
\centering
\footnotesize
\caption{My caption}
\label{my-label}
\begin{tabular}{cccccc}
\toprule
\multicolumn{2}{c}{\textbf{Time (\si{min})}} &%
\multicolumn{2}{c}{\textbf{Water + \ch{CH3COOH} \SI[inter-unit-product=~]{0,15}{\%~v/v}}} &%
\multicolumn{2}{c}{\textbf{Oil}} \\
\midrule
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} \\
\midrule
0,00    & 0,00  & 100   & 90    & 0     & 10 \\
0,50    & 0,50  & 90    & 70    & 10    & 30 \\
8,50    & 8,00  & 100   & 0     & 0     & 100 \\
13,50   & 8,10  & 100   & 90    & 0     & 10 \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

答案1

基于makecell和 的变体cmidrule

\documentclass[12pt,a4paper]{article}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{makecell}
\renewcommand{\theadfont}{\bfseries}
\usepackage[
    font=footnotesize,
    justification=centering,
    figurewithin=section,
    tablewithin=section,
    skip=6pt
]{caption}
\usepackage{siunitx}
\usepackage{chemformula}

\begin{document}

\begin{table}[h]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{cccccc}
\toprule
\multicolumn{2}{c}{\thead{Time \\(\si{min})}} &%
\multicolumn{2}{@{}c@{}}{\thead{Water\,$+$\,\ch{CH3COOH}\\ \SI[inter-unit-product=~]{0,15}{\%~v/v}}} &%
\multicolumn{2}{c}{\thead{Oil}} \\
\cmidrule(lr){1-2}\cmidrule(lr){3-4}\cmidrule(lr){5-6}
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} \\
\cmidrule(lr){1-2}\cmidrule(lr){3-4}\cmidrule(lr){5-6}
0,00 & 0,00 & 100 & 90 & 0 & 10 \\
0,50 & 0,50 & 90 & 70 & 10 & 30 \\
8,50 & 8,00 & 100 & 0 & 0 & 100 \\
13,50 & 8,10 & 100 & 90 & 0 & 10 \\
\bottomrule
\end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

答案2

一种使用方式tabularx

姆韦

\documentclass[12pt,a4paper]{article}
\usepackage{tabularx} 
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{chemformula}

\begin{document}

\tabcolsep.5em\small
\begin{tabularx}{\linewidth}{cc>{\hfil}X>{\hfil}Xcc}\toprule
\multicolumn{2}{c}{\textbf{Time (\si{min})}} &%
\multicolumn{2}{c}{\textbf{Water + \ch{CH3COOH} \SI[inter-unit-product=~]{0,15}{\%~v/v}}}&%
\multicolumn{2}{c}{\textbf{Oil}} \\
\cmidrule(rl){1-2}\cmidrule(rl){3-4}\cmidrule(rl){5-6}
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} \\
\cmidrule(rl){1-1}\cmidrule(rl){2-2}\cmidrule(rl){3-3}
\cmidrule(rl){4-4}\cmidrule(rl){5-5}\cmidrule(rl){6-6}
0,00    & 0,00  & 100   & 90    & 0     & 10 \\
0,50    & 0,50  & 90    & 70    & 10    & 30 \\
8,50    & 8,00  & 100   & 0     & 0     & 100 \\
13,50   & 8,10  & 100   & 90    & 0     & 10 \\\bottomrule
\end{tabularx}

\end{document}

但就我个人而言,我只会更改为较短的标题,Acetic acid \SI{0,15}{\percent}并保留标准表格和c列:

姆韦

答案3

这是一个带有列标题的版本,该标题分为两行,并且较大\tabcolsep

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage{multirow} 
\usepackage{multicol}
\usepackage{booktabs}
\usepackage[
    font=footnotesize,
    justification=centering,
    figurewithin=section,
    tablewithin=section
]{caption}
\usepackage{siunitx}
\usepackage{chemformula}
\usepackage{makecell}

\begin{document}

\begin{table}[h]
\centering
\footnotesize
\setlength{\tabcolsep}{15pt}
\caption{My caption}
\label{my-label}
\begin{tabular}{@{\hspace{7pt}}cccccc@{\hspace{7pt}}}
\toprule
\multicolumn{2}{c}{\textbf{Time (\si{min})}} &%
\multicolumn{2}{c}{\textbf{\makecell[cc]{Water  + \ch{CH3COOH} \\ \SI[inter-unit-product=~]{0,15}{\%~v/v}}}} &%
\multicolumn{2}{c}{\textbf{Oil}} \\
\cmidrule(r){1-2} \cmidrule(lr){3-4} \cmidrule(l){5-6}
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} &%
\textbf{Point 1} & \textbf{Point 2} \\
\midrule
0,00    & 0,00  & 100   & 90    & 0     & 10 \\
0,50    & 0,50  & 90    & 70    & 10    & 30 \\
8,50    & 8,00  & 100   & 0     & 0     & 100 \\
13,50   & 8,10  & 100   & 90    & 0     & 10 \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

相关内容