我需要创建一个反应方案,其中一个分子被光击中产生两个状态,每个状态演变为一个状态(参见图片)因为合并不能反向工作(将一个分子连接到两个)
\documentclass[12pt]{article}
\usepackage[italian]{babel}
\usepackage{floatrow}
\usepackage{wrapfig}
\usepackage{hyperref}
\usepackage{etoolbox}
\usepackage{cmbright}
\usepackage{geometry}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{chemfig}
\usepackage{graphicx}
\usepackage{imakeidx}
\makeindex
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\usepackage{pict2e}
\usepackage{float}
\usetikzlibrary{positioning, calc, arrows.meta}
\begin{document}
\begin{figure}
\schemestart
\chemfig{R_1-[:40](=[:90]O)-[:-40]R_2}
\arrow[->]{$h\nu$}
\chemleft[\chemfig{R_1-[:40](=[:90]O)-[:-40]R_2}\chemright{]^{S_1}}\arrow{->[ISC]}[-90] \chemleft[\chemfig{R_1-[:40](=[:90]O)-[:-40]R_2}\chemright{]^{T_1}} \merge(c1)(c2)--()\chemfig{R_1-[:40]\Charge{[.radius=1.5pt,.style={draw=gray}] 0 =\.[{.style={draw=none,fill=black}}]}{C} =[:90]O} \+ \Charge{[.radius=1.5pt,.style={draw=gray}]
180 =\.[{.style={draw=none,fill=black}}]}{R_2}
\schemestop
\caption{ My Caption}
\end{figure}
\end{document}
答案1
经过反复尝试,我得出了以下解决方案:
\documentclass[a4paper,12pt]{article}
\usepackage{chemfig}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\setchemfig{bond style={line width=1pt},atom sep=2.1em}
\usepackage[body={17.0cm,26cm},top=2.0cm,left=2.0cm]{geometry}
\usetikzlibrary{matrix}
\begin{document}
\newsavebox\keto
\sbox\keto{\chemfig{C(=[:90]O) (-[:-140]R_1) (-[:-40]R_2)}} % needed to save inner box from outer box parameters in TikZ
\centering
\schemestart
\chemleft[\chemfig{R_1-[:40](=[:90]O)-[:-40]R_2}\chemright{]^{S_1}}
\arrow{->[ISC]}[-90]
\chemleft[\chemfig{R_1-[:40](=[:90]O)-[:-40]R_2}\chemright{]^{T_1}}
\merge(c1)(c2)--()
\chemfig{\charge{[circle,.radius=1.5pt,.style={draw=gray,fill=gray}] 0 =\.}{C}(-[:-140]R_1) =[:90]O}
\+
\charge{[circle,.radius=1.5pt,.style={draw=gray,fill=gray}]180 =\.}{R_2}
\chemmove{
\node[] at (-10.8,-0.15) {\usebox\keto};
\draw[thick,red,-{stealth},shorten >= 2pt] (-9.5,0) -- node[above,rotate=50,yshift=2mm] {$h\nu$} (c1.west);
\draw[thick,red,-{stealth},shorten >= 2pt] (-9.5,0) -- node[below,rotate=-50,yshift=-2mm] {$h\nu$} (c2.west);
}
\schemestop
\end{document}
由于chemfig
依赖于,TikZ
您可以在环境中使用 tikz 命令\chemmove
。在这种情况下,我必须从两种状态和反应方案的最后一部分开始。第一部分必须使用 输入。在 TikZ 节点中\chemmove
放置分子时必须特别小心。请参阅\chemfig
正确嵌套 tikzpicture 环境:将所有 PGF 值重置为其默认值。
\chemmove
您可能需要对该方案部分的参数进行一些调整。笔记:因为第一个条目的原点\chemfig{}
在右侧,所以需要在 x 坐标中使用负值,这会导致页面掉落。因此命令如下\centering
。
编辑
改变\chemmove
部分
\chemmove{
\node[] at (-10.8,0) {\usebox\keto};
\draw[-{stealth},shorten >= 2pt] (-8.5,0) |- (c1.west);
\draw[-{stealth},shorten >= 2pt] (-8.5,0) |- (c2.west);
\draw[-] (-9.5,0.2) -- node[above, yshift=2mm] {$h\nu$} (-8.5,0.2);
}
将在左侧给出与右侧合并相同的箭头,正如 ChocoDuck 所建议的那样。
答案2
箭头也可以向后移动,使用 \arrow{<-}
答案3
您可以使用“chemfig”和“arrow”命令模拟反向箭头合并。只需调整参数即可获得所需的“反向合并”。
\documentclass[margin={2mm 2mm}]{standalone}
\usepackage[utf8x]{inputenc}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{-[0,1,,,red,thick](-[2,1,,,red,thick]@{z})(-[6,1,,,red,thick]@{x})}
\arrow(@{z}--){->[$h\nu$]}[00,1,shorten <=-10pt,red,thick]
\arrow(@{x}--){->[$h\nu$]}[00,1,shorten <=-10pt,red,thick]
\schemestop
\end{document}
答案4
\documentclass[border=5mm]{standalone}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{(-[:210]R_2)(-[:330]R_1)=[2]O}
\arrow(a--)[,1.5,,,draw=none]
\subscheme{
\charge{30:4pt=$\mathrm{S}_1$}{\chemleft{[}\chemfig{(-[:210]R_2)(-[:330]R_1)=[2]O}\chemright{]}}
\arrow(b--c){->[*{0}ISC]}[-90,1.5]
\charge{30:4pt=$\mathrm{T}_1$}{\chemleft[\chemfig{(-[:210]R_2)(-[:330]R_1)=[2]O}\chemright{]}}
}
\arrow(--d)[,1.5,,,draw=none]
\chemfig{(-[:210]R_2)(-[:330,0.1,,,draw=none]\charge{330:-1pt=\.\,}{})=[2]O}
\+
\chemfig{\charge{90:1pt=\.\,}{R}_1}
\schemestop
\chemmove{
\draw[thick,shorten >=10pt] (a.east) -- ++(1,0) |- (b.west);
\draw[thick,shorten >=10pt] (a.east) -- ++(1,0) |- (c.west);
\draw[-,thick,shorten >=15pt,shorten <=8pt] (b.east) -- ++(1.3,0) |- (d.west);
\draw[thick,shorten >=10pt,shorten <=8pt] (c.east) -- ++(1.3,0) |- (d.west);
}
\end{document}