我想重现这个形象,
我使用了chemfig
包,需要帮助才能从一个分子中获取多个箭头。谢谢
\documentclass[french,12pt,oneside,openright]{memoir}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel} %langue francaise
\usepackage{chemfig}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\usepackage{tikz}
\usepackage{chemmacros}
\usepackage{chemformula}
\chapterstyle{tandh}
\usepackage{hyperref}
\begin{document}
\setarrowdefault{315,1.5,thick}
\schemestart
\chemname{\fbox{{\tiny\chemfig{O=[:-30]
*6(-(-(-[::275])(-[::95])-)=N-N=(-S(-[::-30]))-N(-{NH_2})-)}}}}{Metribuzin}
\arrow
\small\chemfig{O=[:-30]*6(-(-C(-[::275])(-[::95])-)=N-N=(-S(-[::-30]{CH_3}))-N(-{NH_2})-)}
\schemestop\\
\end{document}
答案1
您需要研究以下语法\arrow
:
\arrow[<angle>]
:指定箭头的角度(默认0
)\arrow(<node name>--)
:为箭头开始处的化合物命名\arrow(--<node name>)
:给箭头末端的化合物命名\arrow(<node name>--<node name>)
:为箭头开始处的化合物和箭头结束处的化合物命名\arrow(@<node name>--)
:让箭头从给定名称的化合物开始\arrow(--@<node name>)
:让箭头终止于给定名称的化合物\arrow(@<node name>--@<node name>)
:连接两个给定的化合物;该@<node name>
语法允许从复合词或复合词中添加多个箭头,因此它是你问题的关键。\arrow(<node name>--)[<angle>]
:可选参数的可能组合\arrow(<node name>[<tikz style>]--)
:添加<tikz style>
到复合词中<node name>
。<node name>
此处是可选的:\arrow([<tikz style>]--)
- 实际上,即使您没有指定任何名称,化合物也有名称:它们被称为
c1
,,c2
...如果您想查看哪种化合物有哪种名称,请\schemedebug{true}
在之前添加\schemestart
。
还有更多细节,这些细节都在 chemfig 手册的第四部分中进行了解释。第六部分(包含大量示例的图库)也值得研究。
这是给定方案的一种可能性(为了使方案代码简短,我为每个化合物定义了 submol)。我添加了一些注释,希望能够解释代码存在的原因以及它的作用。
\documentclass{article}
\usepackage{chemfig}
% \usepackage{showframe} % shows page dimensions
\definesubmol{Metribuzin}{O=[:30]*6(-N(-NH_2)-(-S-[::60])=N-N=(-(-[::-60])(-[::60])-)-)}
\definesubmol{I1}{O=[:30]*6(-N(-NH_2)-(-S(=[::-60]O)-[::60])=N-N=(-(-[::-60])(-[::60])-)-)}
\definesubmol{DK}{O=[:30]*6(-N(-NH_2)-(=O)=N-N=(-(-[::-60])(-[::60])-)-)}
\definesubmol{DADK}{O=[:30]*6(-N(-H)-(=O)=N-N=(-(-[::-60])(-[::60])-)-)}
\definesubmol{DA}{O=[:30]*6(-N(-H)-(-S-[::60])=N-N=(-(-[::-60])(-[::60])-)-)}
\definesubmol{I2}{O=[:30]*6(-N(-H)-(-S(=[::-60]O)-[::60])=N-N=(-(-[::-60])(-[::60])-)-)}
\begin{document}
\begin{center}
% adjustments so the scheme fits within \textwidth:
\small
\setatomsep{1.5em}
% a TikZ style for drawing a box around a compound:
\tikzset{boxcompound/.style={draw,inner sep=2pt}}
\schemestart
\chemname
{\chemfig{!{Metribuzin}}}
{Metribuzin}
\arrow(Metribuzin[boxcompound]--)[-20] % give the starting compound the name `Metribuzin' and draw a box around it
\chemname{\chemfig{!{I1}}}{}
\arrow(--DK[boxcompound])[-90] % give the arriving compound the name `DK' and draw a box around it
\chemname{\chemfig{!{DK}}}{DK}
\arrow(--DADK[boxcompound])[180] % give the arriving compound the name `DADK' and draw a box around it
\chemname{\chemfig{!{DADK}}}{DADK}
\arrow[-90]
Mineralisation
\arrow(@Metribuzin--DA[boxcompound])[-160] % start from `Metribuzin', give the arriving compound the name `DA' and draw a box around it
\chemname{\chemfig{!{DA}}}{DA}
\arrow[-90]
\chemname{\chemfig{!{I2}}}{}
\arrow(--@DADK) % draw an arrow to `DADK'
\arrow(@Metribuzin--@DK) % connect `Metribuzin' with `DK'
\schemestop
\end{center}
\end{document}