Frecce di reazone con Chemfig

  • Questo topic ha 4 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 3 mesi fa da Anna.
  • Creatore
    Topic
  • #118018
    Up
    0
    Down
    ::


    Ciao a tutti. E’ la prima volta che uso un forum, spero di riuscire a essere chiara. Sto disegnano un meccanismo di reazione. Ho scritto varie reazioni dove i codici che ho prodotto mi hanno fornito il risultato che mi aspettavo. Però in alcuni casi anche se applico le strategie che ho già utilizzato l’output contiene delle frecce che non seguono il percorso che mi aspetto. Vi riporto un esempio:
    `\documentclass[a4paper,11pt]{book}
    \usepackage{epsfig}
    \usepackage{amsmath,amssymb,mhchem}
    \usepackage{tikz}
    \usetikzlibrary{decorations.pathmorphing}
    \usetikzlibrary{calc}
    \usepackage{chemfig}
    \usepackage{float}
    \begin{document}
    \schemestart
    \chemfig{*6(-=-@{ay}(-[@{ak}:30](=[2]\lewis{13,O})(-[@{ap,0.5}:-30]@{ar}\Lewis{7.15,O}))=-=)}
    \arrow{->}
    \arrow{0}[,0]\arrow{0}[,0]
    \chemfig{*6(-=-(-[,.1,,,draw=none]\Lewis{0.,})=-=)}
    \arrow{0}[,0]\+ \chemfig{\lewis{35,O}=C=\lewis{17,O}}
    \schemestop
    \chemmove[->]{ \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ar) .. controls +(-30:10mm) and +(90:10mm) .. (ap);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls +(-30:5mm) and +(-90:5mm) .. (ap);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls (-120:5mm) and +(-90:5mm) .. (ay);}
    \end{document}`
    Sulla prima molecola devo disegnare tre frecce e non capisco perché la prima feccia che si incontra da sinistra segua quella traiettoria. Cercando l’errore mi sono accorta che scrivendo questo codice:
    `\documentclass[a4paper,11pt]{book}
    \usepackage{epsfig}
    \usepackage{amsmath,amssymb,mhchem}
    \usepackage{tikz}
    \usetikzlibrary{decorations.pathmorphing}
    \usetikzlibrary{calc}
    \usepackage{chemfig}
    \usepackage{float}
    \begin{document}
    \schemestart
    \chemfig{*6(-=-@{ay}(-[@{ak}:30](=[2]\lewis{13,O})(-[@{ap,0.5}:-30]@{ar}\Lewis{7.15,O}))=-=)}
    \schemestop
    \chemmove[->]{ \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ar) .. controls +(-30:10mm) and +(90:10mm) .. (ap);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls +(-30:5mm) and +(-90:5mm) .. (ap);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls (-120:5mm) and +(-90:5mm) .. (ay);}
    \end{document}`
    le frecce seguono la traiettoria che mi aspetto.
    Perché se metto insieme la reazione il mio codice produce un risultato diverso?
    Spero possiate aiutarmi.
    Anna

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #118019
      GKT
      Partecipante
        Up
        0
        Down
        ::


        Ciao e benvenuta nel forum!.

        Sospetto che il problema dipenda dai punti di controllo delle curve. Compila questo codice`\documentclass[a4paper,11pt]{book}

        \usepackage{chemfig}

        \setchemfig{remember picture}

        \begin{document}
        \schemestart
        \chemfig{*6(-=-@{ay}(-[@{ak}:30](=[2]\lewis{13,O})(-[@{ap,0.5}:-30]@{ar}\Lewis{7.15,O}))=-=)}
        \arrow{->}
        \arrow{0}[,0]\arrow{0}[,0]
        \chemfig{*6(-=-(-[,.1,,,draw=none]\Lewis{0.,})=-=)}
        \arrow{0}[,0]\+ \chemfig{\lewis{35,O}=C=\lewis{17,O}}
        \schemestop
        \chemmove[->]{ \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ar) .. controls +(-30:10mm) and +(90:10mm) .. (ap);
        \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls +(-30:5mm) and +(-90:5mm) .. (ap);
        \draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls +(-90:5mm) and +(-120:5mm) .. (ay);}
        \end{document}`

        Scrivi anche questa impostazione nel preambolo del tuo documento:`\setchemfig{remember picture}`
        L’impostazione è necessaria in caso di rappresentazione di meccanismi di reazione (come indicato alla sezione 13.2 del manuale di chemfig). Non è indispensabile per risolvere il problema presentato qui, ma è opportuno.

        Ciao
        Lorenzo

      • #118020
        Up
        0
        Down
        ::


        Caio Lorenzo grazie per la pronta risposta.
        Ho provato a compilare il tuo codice e mi dà errore perché l’argomento di \setchemfig non è definito.
        Togliendo il comando \setchemfig{remember pitcure} effettivamente ottengo quello che volevo.
        Sono riuscita a sistemare anche le altre reazioni dove le frecce impazzivano, ma ad essere sincera non capito i miei errori.
        Spero di riuscire a risolvere il problema del comando \setchemfig{remember pitcure} leggendo più attentamente il manuale di chemfig.
        Ancora grazie.
        Anna

      • #118021
        GKT
        Partecipante
          Up
          0
          Down
          ::

          aNNa96″ post=118459Caio Lorenzo grazie per la pronta risposta.
          Ho provato a compilare il tuo codice e mi dà errore perché l’argomento di \setchemfig non è definito.
          Togliendo il comando \setchemfig{remember pitcure} effettivamente ottengo quello che volevo.
          Sono riuscita a sistemare anche le altre reazioni dove le frecce impazzivano, ma ad essere sincera non capito i miei errori.
          Spero di riuscire a risolvere il problema del comando \setchemfig{remember pitcure} leggendo più attentamente il manuale di chemfig.
          Ancora grazie.
          Anna

          Mi sono accorto di aver trascritto male un comando:`\setchemfig{remember picture}`. Ho corretto anche nei messaggi precedenti, chiedo scusa per la disattenzione.
          Venendo alla tua richiesta, nel codice che ho proposto ho specificato le coordinata come coordinate relative (rispetto alla posizione precedente):`\draw[arrows = {-Stealth[harpoon]}, shorten <=3pt, shorten >=1pt](ak) .. controls +(-90:5mm) and +(-120:5mm) .. (ay);`. Come puoi trovare spiegato nella sezione 2.15 del manuale di TikZ, mettendo un singolo [tt]+[/tt] davanti alla specifica delle coordinate (cartesiane o polari non ha importanza), si dice al programma di prendere come riferimento la posizione precedente.

          Ciao
          Lorenzo

        • #118022
          Up
          0
          Down
          ::


          Ho capito dove ho sbagliato.
          Grazie per la pazienza e per i riferimenti ai manuali.
          Anna

      Visualizzazione 3 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top