我正在制作一个包含 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}