答案1
与 texboy 的想法相同,但略有不同:
\documentclass[border=1mm]{standalone}
\usepackage{chemfig}
\setatomsep{40pt}
\begin{document}
\chemfig{
Histidine
-[:90]@{iron}Fe
(-[:30]@{topright}N)
(-[:150]@{topleft}N-[:180,0.2,,,white]) % the 'white' bond only
(-[:210]@{bottomleft}N) % serves to expand the
(-[:330]@{bottomright}N) % bounding box
-[:90,,,,draw=none]@{oxygen}O_2
}
\chemmove{\draw[shorten <=2pt,shorten >=2pt]
(topleft.30) to [bend left=25] (topright.150);}
\chemmove{\draw[shorten <=2pt,shorten >=2pt]
(topright.300) to [bend left=40] (bottomright.60);}
\chemmove{\draw[shorten <=2pt,shorten >=2pt,preaction={draw=white,very thick}]
(bottomright.210) to [bend left=25] (bottomleft.330);}
\chemmove{\draw[shorten <=2pt,shorten >=2pt]
(bottomleft.120) to [bend left=40] (topleft.240);}
\chemmove{\draw[shorten <=2pt,shorten >=2pt,preaction={draw=white,very thick}](iron) -- (oxygen);}
\end{document}
总的来说,最好不要将其用于chemfig
这项特定任务;简单的tikzpicture
环境可能更适合。
答案2
使用 TikZ 包
\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{arrows,calc}
\begin{document}
\begin{tikzpicture}
\tikzset{
arc_of_ellipse/.style args={#1:#2:#3}{
insert path={+ (#1:#3) arc (#1:#2:#3)}
}
}
\def \n {4}
\def \aM {3cm }
\def \ac {2.5cm }
\def \am {2cm }
\node (Fe) at ($(0,0)$) {Fe};
\foreach \i in {1,...,\n}
{
\pgfmathtruncatemacro{\j}{45+(\i - 1 )*360/\n}
\pgfmathtruncatemacro{\k}{45+\i*360/\n}
\draw[thick, red] (0,0) [arc_of_ellipse=\j + 5: \k-5 :\aM and \am];
\node (N) at ($(\j:\aM and \am)$) {N};
\draw[thick, blue] (Fe) -- (N);
}
\node (O2) at ($(0,\ac)$) {$\text{O}_2$};
\draw[thick, blue] (Fe) -- (O2);
\node[label={[xshift=0.55cm, yshift=-0.5cm]Histidine}] (Histidine) at ($(0,-\ac)$) {};
\draw[thick, blue] (Fe) -- (Histidine);
\draw [green] (Histidine) to [bend left=35] (250:\aM and \am);
\end{tikzpicture}
\end{document}
答案3
在 的帮助下\chemmove
,弯曲键是可能的,但它需要 2 次编译:
\documentclass{article}
\usepackage{chemfig,amsmath}
\begin{document}
\chemfig{Fe(-[:90,1.25]O_2)(-[:-90,1.25]\text{H}|\text{istidine})(-[:30]@aN)(-[:150]@bN)(-[:210]@cN)(-[:-30]@dN)}
\chemmove[-,shorten <=1pt,shorten >=1pt]{%
\draw(a)..controls +(165:5ex)and+(15:5ex)..(b)
..controls+(205:5ex)and+(155:5ex)..(c)
..controls+(-15:5ex)and+(-165:5ex)..(d)
..controls+(25:5ex)and+(-25:5ex)..(a);}
\end{document}