![使用 chemfig 连接具有旋转对称性的分子结构的重复片段](https://linux22.com/image/386497/%E4%BD%BF%E7%94%A8%20chemfig%20%E8%BF%9E%E6%8E%A5%E5%85%B7%E6%9C%89%E6%97%8B%E8%BD%AC%E5%AF%B9%E7%A7%B0%E6%80%A7%E7%9A%84%E5%88%86%E5%AD%90%E7%BB%93%E6%9E%84%E7%9A%84%E9%87%8D%E5%A4%8D%E7%89%87%E6%AE%B5.png)
在绘制六苯并蔻衍生物,我决定从中心苯环开始,然后通过定义重复片段\definesubmol
并连接桥接碳原子一次,以便在构建结构时看起来片段实际上是连接的(用红线表示)。
由于 6 重对称性,这种方法效果很好,但我不知道如何在 C5 环周围构建类似的结构,因为在这种情况下相邻的碳原子显然不会重叠。
尝试使用标签(?[c1]
),结果却一团糟——我不确定这是否是对称结构的正确方法。
那么,连接这种对称结构块的正确方法是什么?
\documentclass{standalone}
\usepackage{chemfig}
\setchemfig{
atom sep = 1.5em,
}
\begin{document}
\chemname{
\definesubmol{ph1}{-*6(-(-[,,,,red])=-(-(-)(-[::60])(-[::-60]))=-=)}
\chemfig{
*6((!{ph1})-(!{ph1})=(!{ph1})-(!{ph1})=(!{ph1})-(!{ph1})=(!{ph1}))
}
}
{hexa-\textit{tert}-butyl-hexabenzocoronene \\ six-fold symmetry}
% Using the same approach for another symmetry:
\chemname{
\definesubmol{ph1}{-*6(-(-[,,,,red])=-(-(-)(-[::60])(-[::-60]))=-=)}
\chemfig{
*5((!{ph1})-(!{ph1})-(!{ph1})-(!{ph1})-(!{ph1})-(!{ph1}))
}
}
{hypothetical structure 1 \\ five-fold symmetry}
% Using labels for linking departure and arrival carbon atoms:
\chemname{
\definesubmol{ph1}{-*6(-(-[,,,,red]?[c1])=-(-(-)(-[::60])(-[::-60]))=-?[c1]=)}
\chemfig{
*5((!{ph1})-(!{ph1})-(!{ph1})-(!{ph1})-(!{ph1})-(!{ph1}))
}
}
{hypothetical structure 2 \\ five-fold symmetry}
\end{document}
答案1
问题是,您需要将第一个环与第二个环连接起来,依此类推。因此,您需要对要连接的所有钩子(标签/节点)使用不同的 ID。从 1.33 版开始,您可以使用附加可选参数\definesubmol
(请参阅这个答案使用此功能,您可以先绘制结构并放入所需的挂钩,然后再将环连接到这些挂钩(您可能需要编译两次):
\documentclass[border=5mm]{standalone}
\usepackage{chemfig}
\setchemfig{
atom sep = 1.5em,
}
\begin{document}
\chemname{
\definesubmol{ph1}{-*6(-(-[,,,,red])=-(-(-)(-[::60])(-[::-60]))=-=)}
\chemfig{
*6((!{ph1})-(!{ph1})=(!{ph1})-(!{ph1})=(!{ph1})-(!{ph1})=(!{ph1}))
}
}
{hexa-\textit{tert}-butyl-hexabenzocoronene \\ six-fold symmetry}
% Using labels for linking departure and arrival carbon atoms:
\chemname{
\definesubmol{ph1}1{-*6(-@{a#1}=-(-(-)(-[::60])(-[::-60]))=-@{b#1}=)}
\chemfig{
*5((!{ph1}{a})-(!{ph1}{b})-(!{ph1}{c})-(!{ph1}{d})-(!{ph1}{e})-(!{ph1}{f}))
}
\chemmove{
\foreach \x\y in {a/e,e/d,d/c,c/b,b/a}
\draw[red,-] (a\x) -- (b\y);
}
}
{hypothetical structure 2 \\ five-fold symmetry}
\end{document}