以下示例中,如何将所有字母(原子)对齐到一行上
\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
分配命令,以阻止将 分配到组之后的右侧。然后它将再次正确对齐,如下所示:\chemskipalign
chemfig
vphantom
C
(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
。无需将其包含在您的实际代码中。