使表格单元格彼此独立

使表格单元格彼此独立

我正在制作一个分子结构表及其相关信息。最小工作示例如下所示:

\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}

看起来像这样(添加点来标记感兴趣的区域):

with molecule

我想知道如何删除结构列在非结构列上创建的空格(用红点标记)。删除结构将执行此操作,导致: without molecule

但这当然会导致我没有分子。有没有办法让单元格彼此独立,这样无论其行中是否存在较大的物体,它们始终与最顶部的边界对齐?

答案1

实际上,你想将图片对齐到表格顶部。关于这一点已经有很多讨论,AC, 和只是其中的一小部分。

无论如何,实际上,您创建的图片\chemfig 的基线设置在图片的底部。这使得它们以不想要的方式放置。

您可以使用\smash命令将盒子的高度和深度设为零。但这会产生不利影响。

enter image description here

另一个选择是使用调整框包。但这意味着要安装(并学习使用)一个新的包。

我认为你最好的选择是使用\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}

您的结构就会变得完美对齐。

enter image description here

答案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}

enter image description here

相关内容