我需要找到一种方法将 Tikz 节点放入反应方案的标签内,这样我就可以表示从试剂到催化剂的电子运动,例如在这种情况下:
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[version=4, arrows=pgf-filled]{mhchem}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{*6(----(-[2]\charge{65:1pt=\:, -15:1pt=\:}{O}-[3,0.7]H)--)}
\arrow{<=>[$\ce{H+}$]}
\chemfig{*6(----(-[2]\charge{90:2pt=+}{O}(-[3,0.7]H)(-[1,0.7]H))--)}
\schemestop
\end{document}
到目前为止,我在 chemfig 文档中没有找到任何内容,但我可能错过了一些东西。我想要的是从第一个分子的氧原子到反应箭头上方的质子的箭头。我该怎么做?
答案1
\documentclass[12pt,paper=a4]{scrartcl}
%\usepackage[version=4, arrows=pgf-filled]{mhchem}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{*6(----(-[2]@{ep}\charge{65:1pt=\:, -15:1pt=\:}{O}-[3,0.7]H)--)}
\arrow{<=>[\chemfig{@{hy}H|^+}]}
\chemfig{*6(----(-[2]\charge{90:2pt=+}{O}(-[3,0.7]H)(-[1,0.7]H))--)}
\schemestop
\chemmove{\draw[red,shorten <=5pt,shorten >=2pt] (ep) .. controls +(65:1) and +(90:2) .. (hy);}
\end{document}
答案2
你可以用语法来记住 chemfig 的元素@{<name>}{<element>}
-- 在答案中,@{H} 已为此目的添加到 {H} 前缀,然后使用 calc 库绘制箭头
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[version=4, arrows=pgf-filled]{mhchem}
\usepackage{chemfig}
\usepackage{tikz}
%\usepackage{tikzpagenodes}
%\usetikzlibrary{matrix,chains,positioning,decorations.pathreplacing,arrows}
\usetikzlibrary{calc,tikzmark}
\begin{document}
\schemestart
\chemfig{*6(----(-[2]\charge{65:1pt=\:, -15:1pt=\:}{O}-[3,0.7]@{H}{H})--)}
\arrow{<=>[$\ce{H+}$]}
\chemfig{*6(----(-[2]\charge{90:2pt=+}{O}(-[3,0.7]H)(-[1,0.7]H))--)}
\schemestop
\begin{tikzpicture}[overlay,remember picture,]
\draw[->,red,ultra thick] ($(H)+(1,-0.5)$) to[out=45,in=90,looseness=1.2]+(1.6,-1);
\end{tikzpicture}
\end{document}
编辑
\documentclass[12pt,paper=a4]{scrartcl}
\usepackage[version=4, arrows=pgf-filled]{mhchem}
\usepackage{chemfig}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\schemestart
\chemfig{*6(----(-[2]\charge{65:1pt=\:, -15:1pt=\:}{O}-[3,0.7]@{H}{H})--)}
\arrow{<=>[$\ce{H+}$]}
\chemfig{*6(----(-[2]\charge{90:2pt=+}{O}(-[3,0.7]H)(-[1,0.7]H))--)}
\schemestop
\begin{tikzpicture}[overlay,remember picture,]
\draw[->,red,thick,>=stealth] ($(H)+(0.8,-0.3)$) to[out=45,in=90,looseness=1.2]+(1.75,-1.3);
\end{tikzpicture}
\end{document}