原因

原因

以下示例中,如何将所有字母(原子)对齐到一行上

 \documentclass{standalone}
 \usepackage{chemfig}
 \begin{document}
 \chemfig{\lewis{35,O}=C=\lewis{2,N}-[,1.5]{{(CH_2)}_2}-[,1.5]C-\lewis{2,N}=C=\lewis{17,O}}
 \end{document}

CH2 的 C 原子和后面的 C“太高”。

答案1

原因

手册中对这个问题的描述很详细chemfig,在高级用法部分,第 4 节(垂直对齐)。这种对齐问题是由于每组中的原子对齐,使得它们的基线与前一组的基线对齐(注意:单数)而产生的。

假设我们有一个基线较低的组(由下标产生,例如 的情况CH2_2)。下一个组C将获得vphantom命令,因此高于所有其他组。但不会高于后续组(N=C=O右侧的 )。

没有

如何

要修复此问题,您可以将 添加vphantom到其他未“提升”的原子的四周。但是对于你的情况,由于只有一个组导致问题(即 组),你可以在有问题的组之前(CH2)_2分配命令,以阻止将 分配到组之后的右侧。然后它将再次正确对齐,如下所示:\chemskipalignchemfigvphantomC(CH2)_2

和

\documentclass{article}
\usepackage{chemfig}
\begin{document}
    \fboxsep=0pt    
    \renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm#1}}}   % Show bounding boxes to see the \vphantom at work; 

    Without \verb!\chemskipalign!:\par\medskip
    \chemfig{\lewis{35,O}=C=\lewis{2,N}-[,1.5]{(CH_2)_2}-[,1.5]C-\lewis{2,N}=C=\lewis{17,O}}

    \bigskip

    With \verb!\chemskipalign!:\par\medskip
    \chemfig{\lewis{35,O}=C=\lewis{2,N}-[,1.5]{\chemskipalign(CH_2)_2}-[,1.5]C-\lewis{2,N}=C=\lewis{17,O}}
\end{document}

代码注释:

  • 我添加了边界框\fbox(来自chemfig文档),以便您可以看到它的\vphantom工作原理以及命令对其产生的影响\chemskipalign。无需将其包含在您的实际代码中。

最终输出:

最终的

相关内容