Plusieurs crochets dans Chemfig Polymer - Impossible d'éliminer les erreurs
J'ai du mal à obtenir une Reaktion montrant un processus de polymérisation en utilisant le chemfig
droit.
Voici le code que j'utilise:
\begin{figure}[htb!]
\centering
\schemestart
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\+
\chemfig{[@{left,0.5}]C(-[2])(-[6])=C(-[2])(-[6])[@{right,0.5}]}
%\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}
\arrow
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-[@{left,0.5}]C(-[2])(-[6])-C(-[2])(-[6])-[@{right,0.5}]C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}
\schemestop
\caption{}
\label{}
\end{figure}
Voici le résultat actuel:

Pour une raison quelconque, le deuxième support est ce que je veux, mais le premier ne l'est pas. Il semble qu'il n'obtient pas les spécifications faites par \polymerdelim
, alors j'ai pensé que je devrais peut-être ajouter la ligne également à ce qui \chemfig
précède.
Si j'active la ligne
%\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}
Je reçois ce message d'erreur:
! Package pgf Error: No shape named left is known.See the pgf package documentation for explanation.Type H <return> for immediate help.... \chemfig
Est-ce que quelqu'un peut m'aider?
Je vous remercie!
Réponses
D'après la documentation de chemfig
, Section 13, la syntaxe @{<name>, <coeff>}
ne peut être utilisée qu'au début de l'argument optionnel d'une liaison. Dans le second \chemfig
de votre exemple
\chemfig{[@{left,0.5}]C(-[2])(-[6])=C(-[2])(-[6])[@{right,0.5}]}
arguments optionnels [@{left,0.5}]
et [@{right,0.5}]
n'a pas de liaisons correspondantes, donc les nœuds left
et right
ne sont jamais créés.
Option 1
Si vous êtes d'accord avec les liaisons de début et de fin, utilisez
\chemfig{C(-[2])(-[6])(-[@{left,0.5}4])=C(-[2])(-[6])-[@{right,0.5}]}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}

Option 2
Si vous souhaitez conserver le style sans liaison, vous pouvez utiliser @{<name>}<atom>
pour ajouter un nœud à un atome, utiliser des \polymerdelim
options open xshift
et close xshift
ajuster la position des délimiteurs. Notez que dans ce cas, les espaces gauche et droit ne sont pas réglés automatiquement.
\chemfig{@{left}C(-[2])(-[6])=@{right}C(-[2])(-[6])}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n,
open xshift=-8pt, close xshift=]{left}{right}

Option 3
Il s'agit d'une variante de l'option 1, dans laquelle les obligations de début et de fin sont spécifiées mais non tirées (par option d'obligation [,,,draw=none]
). Pour obtenir un meilleur espacement horizontal, ces deux liaisons sont également raccourcies (par l'option de liaison [,0.5,,,]) and the position of nodes are adjusted (from
@ {left, 0.5} to
@ {left, 1} `).
\chemfig{C(-[2])(-[6])(-[@{left,1}4,.5,,,draw=none])=C(-[2])(-[6])-[@{right,1},.5,,,draw=none]}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}

Exemple complet:
\documentclass[margin=20pt]{standalone}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\+
%% option 1
% \chemfig{C(-[2])(-[6])(-[@{left,0.5}4])=C(-[2])(-[6])-[@{right,0.5}]}
% \polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}
%
%% option 2
% \chemfig{@{left}C(-[2])(-[6])=@{right}C(-[2])(-[6])}
% \polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n,
% open xshift=-8pt, close xshift=]{left}{right}
%% option 3
\chemfig{C(-[2])(-[6])(-[@{left,1}4,.5,,,draw=none])=C(-[2])(-[6])-[@{right,1},.5,,,draw=none]}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}
\arrow
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-[@{left,0.5}]C(-[2])(-[6])-C(-[2])(-[6])-[@{right,0.5}]C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\polymerdelim[delimiters ={[]}, height=40pt, depth=, indice=n]{left}{right}
\schemestop
\end{document}
