分子团

分子团

我想重现这个形象,在此处输入图片描述

我使用了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}

相关内容