由于某种原因,我的文本没有正确居中,而是在垂直方向上偏移了一点点。
这是该表的代码:
\documentclass{article}
\usepackage{makecell}
\usepackage{textcomp,gensymb}
\usepackage{siunitx}
\usepackage{multirow}
\usepackage{chemfig}
\usepackage{geometry}
\geometry{margin=120pt}
\begin{document}
\begin{center}
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c | c |}
\hline
\multirow{3}{*}{\thead{Temperature \\ (\degree\si{C} $\pm$ 0.1 \degree\si{C})}} & \multicolumn{10}{ c |}{\thead{Volume of \chemfig{MgCl_2} solution added \\ (\si{cm^3} $\pm$ 0.05 \si{cm^3})}} \\ \cline{2-11}
& \multicolumn{2}{ c |}{\thead{Trial 1}} & \multicolumn{2}{ c |}{\thead{Trial 2}} & \multicolumn{2}{ c |}{\thead{Trial 3}} & \multicolumn{2}{ c |}{\thead{Trial 4}} & \multicolumn{2}{ c |}{\thead{Trial 5}} \\ \cline{2-11}
& \thead{Start} & \thead{End} & \thead{Start} & \thead{End} & \thead{Start} & \thead{End} & \thead{Start} & \thead{End} & \thead{Start} & \thead{End} \\ \hline
\thead{20} & & & & & & & & & & \\ \hline
\thead{35} & & & & & & & & & & \\ \hline
\thead{50} & & & & & & & & & & \\ \hline
\thead{65} & & & & & & & & & & \\ \hline
\thead{80} & & & & & & & & & & \\ \hline
\end{tabular}
\end{center}
\end{document}
如您所见,第一个单元格(温度(°C ± 0.1 °C))在垂直方向上略微偏离中心。我正在利用该makecell
包来格式化文本。我应该如何更改它以使其正确居中?
答案1
您需要将multirow
单元格稍微向下移动,例如使用跨行中的十进制文本行数:
\multirow{4.4}{*}{\thead{Temperature\\ ($\si{\celsius} \pm\SI{0.1}{\celsius}$)}}
完成 MWE:
\documentclass{article}
\usepackage{geometry}
\geometry{margin=120pt}
%\usepackage{textcomp,gensymb}
\usepackage{siunitx}
\usepackage{makecell, multirow}
\usepackage{chemfig}
\usepackage{xparse}
\NewExpandableDocumentCommand\mcc{O{1}m}
{\multicolumn{#1}{c |}{#2}}
\begin{document}
\begin{center}
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c | c |}
\hline
\multirow{4.4}{*}{\thead{Temperature\\ ($\si{\celsius} \pm\SI{0.1}{\celsius}$)}}
& \mcc[10]{%
\thead{Volume of \chemfig{MgCl_2} solution added \\
($\si{\per\centi\metre\cubed} \pm\SI{0.05}{\per\centi\metre\cubed}$)}} \\
\cline{2-11}
& \mcc[2]{\thead{Trial 1}}
& \mcc[2]{\thead{Trial 2}}
& \mcc[2]{\thead{Trial 3}}
& \mcc[2]{\thead{Trial 4}}
& \mcc[2]{\thead{Trial 5}} \\
\cline{2-11}
& \thead{Start} & \thead{End} & \thead{Start} & \thead{End} & \thead{Start} & \thead{End}
& \thead{Start} & \thead{End} & \thead{Start} & \thead{End} \\
\hline
\thead{20} & & & & & & & & & & \\ \hline
\thead{35} & & & & & & & & & & \\ \hline
\thead{50} & & & & & & & & & & \\ \hline
\thead{65} & & & & & & & & & & \\ \hline
\thead{80} & & & & & & & & & & \\ \hline
\end{tabular}
\end{center}
\end{document}
完成 MWE,更正确地使用siunitx
单位并添加新的单元格命令\multicolumn
(当然,机器人是离题的 :-) )
答案2
使用时\multirow
,您必须提供文本的行数(这并不完全是表格的行数)。
你{NiceTabular}
有nicematrix
一个命令\Block
,对于这个命令,你给出的参数是行表格和内容以数学方式绘制在合并单元格矩形的中心(\Block
可用于垂直合并单元格,也可用于水平合并单元格)。
就您而言,使用{NiceTabular}
还有一个好处,那就是提供一个密钥hvlines
,该密钥可以绘制块(由 创建的)中排除的所有规则\Block
。这就是您想要的。
\documentclass{article}
\usepackage{textcomp,gensymb}
\usepackage{siunitx}
\usepackage{chemfig}
\usepackage{geometry}
\usepackage{nicematrix}
\geometry{margin=120pt}
\begin{document}
\begin{center}
\NiceMatrixOptions{cell-space-top-limit=3pt}
\begin{NiceTabular}{*{11}{c}}[hvlines]
\Block{3-1}{Temperature \\ (\degree\si{C} $\pm$ 0.1 \degree\si{C})} & \Block{1-10}{Volume of \chemfig{MgCl_2} solution added \\ (\si{cm^3} $\pm$ 0.05 \si{cm^3})} \\
& \Block{1-2}{Trial 1}& & \Block{1-2}{Trial 2}& & \Block{1-2}{Trial 3}& & \Block{1-2}{Trial 4}& & \Block{1-2}{Trial 5} \\
& Start & End & Start & End & Start & End & Start & End & Start & End \\
20 \\
35 \\
50 \\
65 \\
80 \\
\end{NiceTabular}
\end{center}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。