我有一张包含三行化学结构的表格。第二行的结构与第一行和第三行不对齐。我尝试使用 来\vspace
将结构向下移动,但没有用。如何更改表格中结构的位置?任何帮助都将不胜感激!
我的示例代码:
\documentclass[12pt,doublespacing,letterpaper]{report}
\usepackage{etex}
\usepackage[usenames,dvipsnames]{color}
\usepackage{lscape}
\usepackage{morehelp}
\usepackage{setspace}
\usepackage{easytable}
\usepackage{chemfig}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{dcolumn}
\usepackage{bm}
\usepackage{geometry}
\usepackage{multirow}
\usepackage{caption}
\begin{document}
\setatomsep{2em}
\setbondoffset{1pt}
\setdoublesep{4pt}
\setbondstyle{line width=0.8 pt}
\renewcommand{\printatom}[1]{\fontsize{14pt}{14pt}\selectfont{\ensuremath{\mathrm{#1}}}}
\begin{table}[t]
\centering \caption{Test}
\begin{footnotesize}
\begin{tabular}{>{\centering\arraybackslash}p{20pt}> {\centering\arraybackslash}p{160pt}
>{\centering\arraybackslash}p{60pt}>{\centering\arraybackslash}p{160pt}> {\centering\arraybackslash}p{20pt}}
\hline\hline
\\[-5pt] %controls the spacing between line and text
\vfill Entry & \vfill RBF$_3$K &\vfill Ar-Br &\vfill R-R & Yield (\%)\\
\\[-5pt]\hline
\\[-7pt]
1 & \chemfig[][scale=0.6]{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]BF_3K} & \chemfig[][scale=0.6]{[:30]NC-*6(-=-(-[,1.3]Br)=-=)} & \chemfig[][scale=0.6]{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]*6(-=-(-CN)=-=-)}&75\\
2 & \chemfig[][scale=0.6]{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]BF_3K} & \chemfig[][scale=0.6]{[:30]Cl-*6(-=-(-[,1.3]Br)=-=)} & \chemfig[][scale=0.6]{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]*6(-=-(-Cl)=-=-)}&65\\
\hline\hline
&\\
\end{tabular}
\end{footnotesize}
\\
\end{table}
\end{document}
答案1
我通常不做广告tabu
包(参见这篇文章的原因) 但在这种情况下它非常方便。如果您使用其类型列,它会默认将表格水平缩放到文本宽度X
。这些列有一个可选参数,用于指定一列与另一列的比例:X[1]X[2]
意味着第二列的宽度是第一列的两倍。在可选参数中,您还可以指定您想要的传统列类型。我曾经X[<num>c,m]
让所有单元格垂直和水平居中。
我没有缩放每个分子,而是重新定义了环境\printatom
内的 atom-sep 和命令table
。由于这是在环境内,因此重新定义的效果将保持局部。
在下面的代码中,我删除了所有不必要的包。相反,我引入了mhchem
(我也可以使用chemformula
) 用于内联化学式,以及booktabs
更好的表格规则:
\documentclass[12pt,letterpaper]{report}
\usepackage{chemfig}
\usepackage[version=4]{mhchem}
\usepackage{tabu}
\usepackage{booktabs}
\setatomsep{2em}
\setbondoffset{1pt}
\setdoublesep{4pt}
\setbondstyle{line width=0.8 pt}
\renewcommand{\printatom}[1]{\fontsize{14pt}{14pt}\selectfont{\ensuremath{\mathrm{#1}}}}
\begin{document}
\begin{table}[t]
\centering
% locally change the molecule layout
\setatomsep{.8em}
% the following is necessary because you have defined \printatom with
% a fixed fontsize:
\renewcommand*\printatom[1]{\scriptsize\ensuremath{\mathrm{#1}}}
\caption{Test}
\begin{tabu}{X[3c,m]X[8c,m]X[5,cm]X[9c,m]X[3c,m]}
\toprule\rowfont\bfseries
Entry & \ce{RBF3K} & \ce{Ar-Br} & \ce{R-R} & Yield (\%) \\
\midrule
1 & \chemfig{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]BF_3K}
& \chemfig{[:30]NC-*6(-=-(-[,1.3]Br)=-=)}
& \chemfig{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]*6(-=-(-CN)=-=-)}
& 75 \\
2 & \chemfig{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]BF_3K}
& \chemfig{[:30]Cl-*6(-=-(-[,1.3]Br)=-=)}
& \chemfig{[:30]--[::-60]--[::-60]-[:30]-[:-30]~[:0]-[:0]*6(-=-(-Cl)=-=-)}
& 65 \\
\bottomrule
\end{tabu}
\end{table}
\end{document}