![chemfig 中分子之间的位置](https://linux22.com/image/352935/chemfig%20%E4%B8%AD%E5%88%86%E5%AD%90%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我试图说明两个核苷酸之间的氢键。但是,chemfig 将一个核苷酸置于另一个核苷酸之下。我怎样才能将它们水平相邻放置?
\documentclass[11pt,letterpaper]{article}
\usepackage{chemfig}
\begin{document}
\chemfig{N*6([:270](-sugar)-=(-)-(=O@{d})-NH@{b}-(=O)-)}{Thymine}
\chemfig[shift={(3,2)}]{[:90]N*6(-*5(-N(-sugar)-=N-)=-(-NH_2@{a})=N@{c}-=)}{Adenine}
\chemmove{ \draw[,,,,,dash pattern=on 2pt off 2pt] (a)--(b); \draw[,,,,,dash pattern=on 2pt off 2pt] (c)--(d); }
\end{document}
答案1
将分子并排放置的一种方法是使用命令\chemname{<molecule>}{<name>}
,这还有将分子名称放置在分子本身下方的附加效果。
除此之外,我对你的绘图做了一些小改动,使其看起来更美观:
- 用于
[shift={(0,-2.5)}]
使两个分子正确地垂直排列。 - 将节点放置位置移至前原子本身,而不是像代码中那样在原子之后。请注意
chemfig
包文档中的此语法:a node on an atom using the syntax “@{<name>}” immediately before the relevant atom
。这将确保您的箭头在正确的位置开始和结束。 - 改为
NH2
,H2N
因为我推测环上的键是与 N 原子相连的,而不是 H 原子。(我的化学知识有点生疏。。:p
)
\documentclass[11pt,letterpaper]{article}
\usepackage{chemfig}
\begin{document}
\chemname{%
\chemfig{N*6([:270](-sugar)-=(-)-(=@{d}O)-N(-@{b}H)-(=O)-)}
}{Thymine}
\qquad
\chemname{%
\chemfig[shift={(0,-2.5)}]{[:90]N*6(-*5(-N(-sugar)-=N-)=-(-@{a}H_2 N)=@{c}N-=)}
}{Adenine}
\chemmove{%
\draw[dash pattern=on 2pt off 2pt] (a)--(b);
\draw[dash pattern=on 2pt off 2pt] (c)--(d);
}
\end{document}
附言:我不太确定对于 H 键,哪个箭头应该放在哪里,请根据你的需要进行修改。
答案2
谢谢 Troy。这招奏效了。实际上,我意识到 H 键指向了错误的位置(相互交叉)。以下是更新。
\documentclass[11pt,letterpaper]{article}
\usepackage{chemfig}
\begin{document}
\chemname{%
\chemfig{
N*6([:0](-sugar)-(=O)-N(-@{b}H)-(=@{d}O)-(-)=-)
}
}{Thymine}
\qquad
\chemname{%
\chemfig[shift={(-0.5,-1.25)}]{
[:90]N*6(-*5(-N(-sugar)-=N-)=-(-@{a}H_2 N)=@{c}N-=)
}
}{Adenine}
\chemmove{%
\draw[-,dash pattern=on 2pt off 2pt] (a)--(d);
\draw[-,dash pattern=on 2pt off 2pt] (c)--(b);
}
\end{document}