Flechas bifurcadas con chemfig y tikzpicture

Flechas bifurcadas con chemfig y tikzpicture

esta pregunta se ha hecho en este enlace:Flechas bifurcadas con chemfig. Es muy útil para mi. Quisiera agradecer a Gonzalo Medina por su solución. Sin embargo, tengo dos dudas que no encuentro solución por ningún lado.

1) ¿Cómo hacer que \chemfig funcione correctamente dentro de tikzpicture? Quiero tener una estructura química (que dibuja chemfig) encima y debajo de la flecha. Sin embargo, cuando uso \chemfig{...}todos los enlaces, aparece la flecha. Creo que es porque este comando permanece dentro del \drawcomando.

2) ¿Cómo puedo cambiar la longitud solo de la parte de la flecha (la línea sigue siendo la misma) para que se ajuste al contenido del nodo encima/debajo de la flecha?

Aquí está el esquema que quiero hacer:ingrese la descripción de la imagen aquí

¡Gracias una tonelada!

Aquí está mi archivo tex:

\documentclass[class=minimal,border=0pt,10pt]{standalone}%[a4paper]
\usepackage{chemfig,chemmacros}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,calc}
\begin{document}
\begin{tikzpicture}[node distance=0cm and 2cm]
    %\tikzset{myarrow/.style={->, >=latex', shorten >=1pt, thick},mylabel/.style={text width=7em, text centered} }  
\setcrambond{4pt}{}{}
%\setarrowoffset{10pt}
\node (A)
{\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]HO)-[:15,,,,line width = 4pt](-[:-60,0.6]OH)>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off  2pt])-[:120]O-[:-165]?[A]}};
%===================================
\node [above right= of A](B)
{\hspace{2cm}\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-90,0.5]-[:-130,0.5](-[:-80,0.6]\chemabove{O}{\hspace{4mm}\scriptstyle\ominus})=[:160,0.6]O))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}};
%===================================
\node[below=of B, align=left](B1){R=H or \ch{CH2COONa} \\depending on DS}; %align=left to use \\ inside node
%===================================
\node[below=0.5 of B1](C)
{\hspace{2cm}\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-120,0.5]-[:-60,0.5](-[,0.4]OR)-[:-120,0.5]-[:-60,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{4mm}\scriptstyle\ominus}))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}}; %{(} or {)} for sth like N(CH3)3Cl inside chemfig 
%===================================
\node[below=of C, align=left](C1)
{\hspace{1cm} R=H, \chemfig{-[:30,0.5](-[:90,0.4]OR)-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}\\ \hspace{1.1cm}depending on MS};
%===================================
\node[below=0.5 of C1](D)
{\hspace{2cm}\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-30,0.6]SO_3Na))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off    2pt])-[:120]O-[:-165]?[A]}};
%===================================
\node[below=of D](D1)
{R=H, \ch{SO3Na}};
%===================================
\node[below=0.5 of D1](E)
{\hspace{3cm}\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.5]-[:-30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}};
%===================================
\node[below=of E](E1)
{R=H, \chemfig{(=[:90,0.4]O)-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}};
%\draw[myarrow] (A.east) -- ++(0.5,0) -- ++(0,1) |-(B.west);    
%===================================
\draw[-stealth](A) --($(A.0)!0.5!(B.west|-A.0)$) |- (B.west) node[above]{\ch{ClCH2COONa}}node[below,align=left]{aq. \ch{NaOH}\\slurry medium};
%===================================
\draw[-stealth](A) -- ($(A.0)!0.5!(C.west|-A.0)$) |- (C.west) node[above]{\chemfig{?-[:90,0.5]O-[:-30,0.5]?-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}} node[below,align=left]{aq. \ch{NaOH}\\slurry medium};
%===================================
\draw[-stealth](A) -- ($(A.0)!0.5!(D.west|-A.0)$) |- (D.west) node[above,align=left]{(i) \ch{SO3}.DMF or \ch{SO3}.pyridine\\(DMF/LiCl) 50 \si{\degreeCelsius})}node[below,align=left]{(ii) \ch{NaOH}};
%===================================
\draw[-stealth](A) -- ($(A.0)!0.5!(E.west|-A.0)$) |- (E.west) node[above,align=left]{\chemfig{HO-[:30,0.5](=[:90,0.4]O)-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}}node[below,align=left]{DMSO, CDI \\ 20 h, 70 \si{\degreeCelsius}}; 

\end{tikzpicture}
\end{document}

Respuesta1

A 1) Aquí simplemente necesita agregar el argumento opcional [-]al \chemfigcomando para "eliminar" las puntas de flecha del comando "dibujar línea".

A 2) Aquí sugiero hacerlo "manualmente". Primero coloque el nodo más alto usando la =<number>cm and <number>cm of <node>función, luego decida con la variable creada \splitdónde se debe "dividir" la ruta a este nodo y decida con la \xshiftvariable creada el desplazamiento de los nodos colocados encima y debajo de la flecha. Mientras dibuja el esquema de reacción, puede simplemente ajustar las posiciones de los nodos a la derecha y/o ajustar la \splitproporción para que se ajuste a sus necesidades.

Aquí hay un esquema de reacción simplificado como demostración de lo dicho anteriormente.

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usepackage{chemfig}
\usepackage{chemformula}
    \usetikzlibrary{arrows,positioning,calc}
\usepackage{siunitx}
\begin{document}
    \begin{tikzpicture}
            \setcrambond{4pt}{}{}
            \pgfmathsetlengthmacro{\xshift}{1cm}
            \pgfmathsetmacro{\split}{0.1}

        \node (A) {A};
        \node [above right=2cm and 5cm of A](B) {B};

        \draw[-stealth](A) --($(A.0)!\split!(B.west|-A.0)$) |- (B.west)
                % just to show the alignment point for the following nodes
                coordinate [pos=0.5,xshift=\xshift] (test)
            node [pos=0.5,xshift=\xshift,above,anchor=south west]
                {\ch{ClCH2COONa}}
            node [pos=0.5,xshift=\xshift,below,anchor=north west]
                {\chemfig[-]{?-[:90,0.5]O-[:-30,0.5]?-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}};
                % show the alignment points
                \fill [red] (test) circle (2pt) -- +(-1cm,0) circle (2pt);
    \end{tikzpicture}
\end{document}

imagen que muestra el resultado del código del esquema de reacción simplificado


Y aquí puede encontrar su esquema de reacción completo, donde además limpié algunos \hspacemensajes no necesarios y establecí alineaciones adecuadas de los nodos.

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usepackage{chemfig}
\usepackage{chemformula}
    \usetikzlibrary{arrows,positioning,calc}
\usepackage{siunitx}
\begin{document}
    \begin{tikzpicture}[
        >=stealth,
        shorten >=1mm,
        component node/.style={
            % keys for `\chemfig'
            -,
            shorten >=0pt,
%            % fill the nodes (useful for debugging)
%            fill=red!50,
        },
        arrow node/.style={
            pos=0.5,
            xshift=\xshift,
            align=left,
            % keys for `\chemfig'
            -,
            shorten >=0pt,
        },
    ]
            \setcrambond{4pt}{}{}
            \pgfmathsetlengthmacro{\xshift}{1mm}
            \pgfmathsetmacro{\split}{0.1}

    % left side of reaction scheme
        \node [component node] (A)
            {\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]HO)-[:15,,,,line width = 4pt](-[:-60,0.6]OH)>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off  2pt])-[:120]O-[:-165]?[A]}};

    % right side of reaction scheme
        \node [component node,above right=2cm and 6cm of A] (B)
            {\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-90,0.5]-[:-130,0.5](-[:-80,0.6]\chemabove{O}{\hspace{4mm}\scriptstyle\ominus})=[:160,0.6]O))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}};
        \node [component node,below=0 of B.south west,anchor=north west,align=left] (B1)
            {R=H or \ch{CH2COONa} \\ depending on DS}; %align=left to use \\ inside node

        \node [component node,below=0.5 of B1.south west,anchor=north west] (C)
            {\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-120,0.5]-[:-60,0.5](-[,0.4]OR)-[:-120,0.5]-[:-60,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{4mm}\scriptstyle\ominus}))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}}; %{(} or {)} for sth like N(CH3)3Cl inside chemfig
        \node [component node,below=0 of C.south west,anchor=north west, align=left](C1)
            {R=H, \chemfig{-[:30,0.5](-[:90,0.4]OR)-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}\\ \hspace{1.1cm}depending on MS};

        \node [component node,below=0.5 of C1.south west,anchor=north west](D)
            {\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-30,0.6]SO_3Na))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off    2pt])-[:120]O-[:-165]?[A]}};
        \node [component node,below=0 of D.south west,anchor=north west] (D1)
            {R=H, \ch{SO3Na}};

        \node [component node,below=0.5 of D1.south west,anchor=north west] (E)
            {\chemfig{-[:-15,0.5,,,dash pattern = on 2pt off 2pt]O-[:15,0.5]?[A]<[:-60](-[:165,0.6]RO)-[:15,,,,line width = 4pt](-[:-60,0.6]O(-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.5]-[:-30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}))>[:-15](-[:15,0.5]O-[:-15,0.5,,,dash pattern=on 2pt off 2pt])-[:120]O-[:-165]?[A]}};
        \node [component node,below=0 of E.south west,anchor=north west](E1)
            {R=H, \chemfig{(=[:90,0.4]O)-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}};

    % draw reaction arrows + nodes
        %\draw[myarrow] (A.east) -- ++(0.5,0) -- ++(0,1) |-(B.west);
        \draw [->] (A) -- ($(A.east)!\split!(B.west|-A.east)$) |- (B.west)
            node [arrow node,above right]
                {\ch{ClCH2COONa}}
            node [arrow node,below right]
                {aq. \ch{NaOH}\\slurry medium};
        \draw [->] (A) -- ($(A.east)!\split!(C.west|-A.east)$) |- (C.west)
            node [arrow node,above right]
                {\chemfig[-]{?-[:90,0.5]O-[:-30,0.5]?-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}}
            node [arrow node,below right]
                {aq. \ch{NaOH} \\ slurry medium};
        \draw [->] (A) -- ($(A.east)!\split!(D.west|-A.east)$) |- (D.west)
            node [arrow node,above right]
                {(i) \ch{SO3}.DMF or \ch{SO3}.pyridine\\(DMF/LiCl) \SI{50}{\degreeCelsius})}
            node [arrow node,below right]
                {(ii) \ch{NaOH}};
        \draw [->] (A) -- ($(A.east)!\split!(E.west|-A.east)$) |- (E.west)
            node [arrow node,above right]
                {\chemfig[-]{HO-[:30,0.5](=[:90,0.4]O)-[:-30,0.5]-[:30,0.5]-[:-30,0.5]-[:30,0.6]\chemabove{N}{\hspace{-5mm}\scriptstyle\oplus}{(}CH_3{)}_3\chemabove{Cl}{\hspace{5mm}\scriptstyle\ominus}}}
            node [arrow node,below right]
                {DMSO, CDI \\ \SI{20}{\hour}, \SI{70}{\degreeCelsius}};
    \end{tikzpicture}
\end{document}

imagen que muestra el resultado del esquema de reacción completo

información relacionada