我正在制作一个分子结构表及其相关信息。最小工作示例如下所示:
\documentclass{article}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\begin{document}
\begin{tabular}{|c|c|p{2.5cm}|}
\hline
Compound & Structure & Hazard Protection \\ \hline
Cyclopentadiene & \chemfig{*5(-=-=-)} & Irritant: Avoid skin contact, ingestion, inhalation, use under hood. Flammable: avoid sources of ignition \\ \hline
\end{tabular}
\end{document}
看起来像这样(添加点来标记感兴趣的区域):
我想知道如何删除结构列在非结构列上创建的空格(用红点标记)。删除结构将执行此操作,导致:
但这当然会导致我没有分子。有没有办法让单元格彼此独立,这样无论其行中是否存在较大的物体,它们始终与最顶部的边界对齐?
答案1
实际上,你想将图片对齐到表格顶部。关于这一点已经有很多讨论,A,乙,C, 和德只是其中的一小部分。
无论如何,实际上,您创建的图片\chemfig
的基线设置在图片的底部。这使得它们以不想要的方式放置。
您可以使用\smash
命令将盒子的高度和深度设为零。但这会产生不利影响。
另一个选择是使用调整框包。但这意味着要安装(并学习使用)一个新的包。
我认为你最好的选择是使用\vtop
命令。
\vtop{%
\null
\hbox{%
<figure>%
}%
}
因此,您需要将\chemfig
命令括在里面\vtop{\null\hbox{}}
。
您甚至可以创建一个宏\topchemfig
来获得所需的效果并将其用于所有结构图形。
(与当前的问题有些无关,但也许您希望\raggedright
在最右边的单元格中使用以使文本格式更好。)
因此,你的 MWE 将会变成这样,
\documentclass{article}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\def\topchemfig#1{\vtop{\null\hbox{\chemfig{#1}}}}
\begin{document}
\begin{tabular}{|c|c|p{2.5cm}|}
\hline
Compound & Structure & Hazard Protection \\ \hline
Cyclopentadiene & \topchemfig{*5(-=-=-)} & \raggedright Irritant: Avoid skin contact, ingestion, inhalation, use under hood. Flammable: avoid sources of ignition \\ \hline
\end{tabular}
\end{document}
您的结构就会变得完美对齐。
答案2
这是一项工作adjustbox
,其valign=t
特点是使盒子的高度与正常线一样高。
我还添加了使用命令且没有垂直规则的版本booktabs
。无论如何,第一列应该左对齐,最后一列最好设置为右对齐,因为它非常窄。您也可以尝试使用\RaggedRight
(\raggedright
需要ragged2e
包),它允许连字符,也许可以更好地填充线条。
\documentclass{article}
\usepackage{adjustbox,array,booktabs}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\begin{document}
\begin{tabular}{|l|c|>{\raggedright\arraybackslash}p{2.5cm}|}
\hline
Compound & Structure & Hazard Protection \\
\hline
Cyclopentadiene &
\adjustbox{valign=t}{\chemfig{*5(-=-=-)}} &
Irritant: Avoid skin contact, ingestion, inhalation, use
under hood. Flammable: avoid sources of ignition \\
\hline
\end{tabular}
\bigskip
\begin{tabular}{lc>{\raggedright\arraybackslash}p{2.5cm}}
\toprule
Compound & Structure & Hazard Protection \\
\midrule
Cyclopentadiene &
\adjustbox{valign=t}{\chemfig{*5(-=-=-)}} &
Irritant: Avoid skin contact, ingestion, inhalation, use
under hood. Flammable: avoid sources of ignition \\
\bottomrule
\end{tabular}
\end{document}