我正在尝试使用该包绘制一个大分子chemfig
。在这种情况下,我制作了钴胺素变体的图形。我花了几个小时编写了这段代码,但发现后续管理是一场噩梦。
尊敬的使用 TeX 的化学家们,请看一下我的代码并告诉我如何编写得更好。我尝试了某些缩进样式,但似乎没有出现合适的样式。
\documentclass{standalone}
% More defined colors
\usepackage{chemfig}
\begin{document}
\chemname{
\chemfig{
*6(N-[,0.1,,,-latex] Co^{2+}(-[:90]\textbf{X})-[,0.1,,,latex-]
N*5(=(-[:-60,,,,shorten >=14.25pt])-(<:[:20]-[:50]-[:-10](=[:-70]O)-[:50]N)-
(<:[:90])(-[:45]-[:90](=[:-210]O)-[:35]N)
-)
-=(-)-*5(-(<:-[:160]-[:110](=[:50]O)-[:160]N)
-(<:[:210])(-[:120]-[:170](=[:-120]O)-[:140]N)-
(<:[:220])*5(-*5(-(-[::-45]-[::30](=[:-210]O)-[::35]N)-
(<:[:180])(-[:260]-[::-60]-[::60](=[::70]O)-[::-60]N-[::60]-[::60](<[::45])-[:-90]O-[:-45]P(-[::-110]O^{-})(=[::-45]O)-[:-30]O-[::60]
*5(-(<:-[::30]OH)-O-(-\textbf{Y}(-[:94,,,,shorten >=-145pt]))-(<HO)-))
-*6(=(-)-*5(-(<:[::-40]-[::50]-[::-50](=[::-70]O)-[::50]N)-(-[:30])(-[:-30])-(=[:70,,,,shorten >=11.5pt])-)
=
(N-[:130]))-)-N-[,0.1,,,-latex])
-[,,,,shorten >=5pt])
=)}}{Basic structure}
\end{document}
相应的输出如下所示,其中键似乎再次溢出到 N 原子中。我希望有一种方法可以将 SMILES 或其他类似格式转换为 chemfig 公式。
答案1
从中心钴原子开始并添加五角环。使用 \charge 命令将 2+ 电荷添加到钴。
使用长距离链接(?[a] 等)添加五角环之间的链接
围绕该中心环添加分支
在分子底部添加大分支
添加 X 和 Co---Y 键 (?[z]---?[z])
\documentclass[border=2mm]{standalone}
\usepackage{chemfig}
\begin{document}
\chemfig{\charge{30=${\scriptstyle 2+}$}{Co}?[z](-[2]X)(-[:135,,,,,dashed]N*5(-(=^[,.65]?[a](-[2]))-(<:[:90]-[:150]-[:90](=[:150]O)-[:30]NH_2)-(<[:150]-[:210](=[6]O)-[:150]H_2N)(<:[:210])-(?[d](<:[:210]))-))(-[:45,,,,,dashed,shorten <=4pt]N*5(-(=^[,.65]?[b](-[:350]))-(<:[:30]-[:330]-[:30](=[2]O)-[:330]NH_2)-(<[:30]-[2](=[:150]O)-[:30]NH_2)(<:[:120])-(?[a])=))(-[:315,,,,,dashed]N*5(-(=^[,.65]?[c](-[6]))-(<:[6]-[:330]-[:30](-[:60]NH_2)=[:330]O)-(<[:330])(<:[:30])-(?[b])=))(-[:225,,,,,dashed]N*5(-(?[d](<[4]H))-(<[:210]-[:150](=[2]O)-[:210]H_2N)-(<:[:240]-[6]-[:210](=[:150]O)-[6]NH-[:210,,1]-[6](<:[:210])-[:330]O-[6]P(<:[:150]\charge{150:2pt=$-$}{O})(=[:240]O)-[:330]O-[:30]*5((<:[6]H)-(<:[6]-[:330]OH)(<[:330]H)-O-(<:[:30]H)(<[:120]Y?[z,,,,,dashed])-(<:[2]H)(<[:150]HO)))(<[:300])-(?[c])=))}
\end{document}