Trouble with hooks in chemfig

Clash Royale CLAN TAG#URR8PPP
up vote
4
down vote
favorite
I am trying to construct this EDTA molecule coordinated to a metal:

and this is what I have so far:

With this code:
chemfig
 O=[2,,]C
 (-[3,2,,1]CH_2-[1,,1]N
 (-[7,,,2]H_2C-[0,,]C
 (=[7,,]O)
 (-[1,,]O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]N
 (-[1,,,2]H_2C-[0,,2]C
 (=[1,,]O)
 (-[7,,]O^-))
 (-[3,,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]O^-))))
 (-[1,,]O^-)
What I can't figure out how to do is include the metal in the center. I know I have to use hooks somehow but I don't know where to start. Would I have to start over and begin the figure at the metal?
Bonus question: how do I change the color of the bonds to the metal?
chemfig
add a comment |Â
up vote
4
down vote
favorite
I am trying to construct this EDTA molecule coordinated to a metal:

and this is what I have so far:

With this code:
chemfig
 O=[2,,]C
 (-[3,2,,1]CH_2-[1,,1]N
 (-[7,,,2]H_2C-[0,,]C
 (=[7,,]O)
 (-[1,,]O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]N
 (-[1,,,2]H_2C-[0,,2]C
 (=[1,,]O)
 (-[7,,]O^-))
 (-[3,,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]O^-))))
 (-[1,,]O^-)
What I can't figure out how to do is include the metal in the center. I know I have to use hooks somehow but I don't know where to start. Would I have to start over and begin the figure at the metal?
Bonus question: how do I change the color of the bonds to the metal?
chemfig
add a comment |Â
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I am trying to construct this EDTA molecule coordinated to a metal:

and this is what I have so far:

With this code:
chemfig
 O=[2,,]C
 (-[3,2,,1]CH_2-[1,,1]N
 (-[7,,,2]H_2C-[0,,]C
 (=[7,,]O)
 (-[1,,]O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]N
 (-[1,,,2]H_2C-[0,,2]C
 (=[1,,]O)
 (-[7,,]O^-))
 (-[3,,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]O^-))))
 (-[1,,]O^-)
What I can't figure out how to do is include the metal in the center. I know I have to use hooks somehow but I don't know where to start. Would I have to start over and begin the figure at the metal?
Bonus question: how do I change the color of the bonds to the metal?
chemfig
I am trying to construct this EDTA molecule coordinated to a metal:

and this is what I have so far:

With this code:
chemfig
 O=[2,,]C
 (-[3,2,,1]CH_2-[1,,1]N
 (-[7,,,2]H_2C-[0,,]C
 (=[7,,]O)
 (-[1,,]O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]N
 (-[1,,,2]H_2C-[0,,2]C
 (=[1,,]O)
 (-[7,,]O^-))
 (-[3,,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]O^-))))
 (-[1,,]O^-)
What I can't figure out how to do is include the metal in the center. I know I have to use hooks somehow but I don't know where to start. Would I have to start over and begin the figure at the metal?
Bonus question: how do I change the color of the bonds to the metal?
chemfig
chemfig
asked 2 hours ago
Antidisestablishmentarianism
807
807
add a comment |Â
add a comment |Â
 1 Answer
 1
 
active
oldest
votes
up vote
3
down vote
accepted
Placing the M is rather straightforward: use chemmove, which produces an overlay tikzpicture and then e.g. the calc syntax. What I find more difficult is to reproduce the bond styles. I ended up looking up the definitions and then to repeat what I think they do. (EDIT: Minor fine-tuning, big thanks to AndréC for pushing me.)
documentclassarticle
usepackagechemfig
usetikzlibrarycalc
begindocument
chemfig
 O=[2,,]C
 (-[3,1.8,,1]CH_2-[1,,1]@N1N
 (-[7,,,2]H_2C-[0,,]@C1C
 (=[7,,]O)
 (-[1,,]@OM1O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]@N2N
 (-[1,,,2]H_2C-[0,,2]@C2C
 (=[1,,]O)
 (-[7,,]@OM2O^-))
 (-[3,1.2,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]@OM3O^-))))
 (-[1,,]@OM4O^-)
chemmove[brown!70!black]M.center);
beginscope
clip let p1=($(M)-(OM2)$),n1=atan2(y1,x1) in 
($(OM2.n1)!1mm!(M)$) coordinate (aux3) (M) -- 
($ (aux3)!1mm!90:(M) $) -- ($ (aux3)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux3);
endscope
beginscope
clip let p1=($(M)-(N2)$),n1=atan2(y1,x1) in 
($(N2.n1)!1mm!(M)$) coordinate (aux4) (M) -- 
($ (aux4)!1mm!90:(M) $) -- ($ (aux4)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux4);
endscope
enddocument

The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
 |Â
show 1 more comment
 1 Answer
 1
 
active
oldest
votes
 1 Answer
 1
 
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
accepted
Placing the M is rather straightforward: use chemmove, which produces an overlay tikzpicture and then e.g. the calc syntax. What I find more difficult is to reproduce the bond styles. I ended up looking up the definitions and then to repeat what I think they do. (EDIT: Minor fine-tuning, big thanks to AndréC for pushing me.)
documentclassarticle
usepackagechemfig
usetikzlibrarycalc
begindocument
chemfig
 O=[2,,]C
 (-[3,1.8,,1]CH_2-[1,,1]@N1N
 (-[7,,,2]H_2C-[0,,]@C1C
 (=[7,,]O)
 (-[1,,]@OM1O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]@N2N
 (-[1,,,2]H_2C-[0,,2]@C2C
 (=[1,,]O)
 (-[7,,]@OM2O^-))
 (-[3,1.2,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]@OM3O^-))))
 (-[1,,]@OM4O^-)
chemmove[brown!70!black]M.center);
beginscope
clip let p1=($(M)-(OM2)$),n1=atan2(y1,x1) in 
($(OM2.n1)!1mm!(M)$) coordinate (aux3) (M) -- 
($ (aux3)!1mm!90:(M) $) -- ($ (aux3)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux3);
endscope
beginscope
clip let p1=($(M)-(N2)$),n1=atan2(y1,x1) in 
($(N2.n1)!1mm!(M)$) coordinate (aux4) (M) -- 
($ (aux4)!1mm!90:(M) $) -- ($ (aux4)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux4);
endscope
enddocument

The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
 |Â
show 1 more comment
up vote
3
down vote
accepted
Placing the M is rather straightforward: use chemmove, which produces an overlay tikzpicture and then e.g. the calc syntax. What I find more difficult is to reproduce the bond styles. I ended up looking up the definitions and then to repeat what I think they do. (EDIT: Minor fine-tuning, big thanks to AndréC for pushing me.)
documentclassarticle
usepackagechemfig
usetikzlibrarycalc
begindocument
chemfig
 O=[2,,]C
 (-[3,1.8,,1]CH_2-[1,,1]@N1N
 (-[7,,,2]H_2C-[0,,]@C1C
 (=[7,,]O)
 (-[1,,]@OM1O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]@N2N
 (-[1,,,2]H_2C-[0,,2]@C2C
 (=[1,,]O)
 (-[7,,]@OM2O^-))
 (-[3,1.2,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]@OM3O^-))))
 (-[1,,]@OM4O^-)
chemmove[brown!70!black]M.center);
beginscope
clip let p1=($(M)-(OM2)$),n1=atan2(y1,x1) in 
($(OM2.n1)!1mm!(M)$) coordinate (aux3) (M) -- 
($ (aux3)!1mm!90:(M) $) -- ($ (aux3)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux3);
endscope
beginscope
clip let p1=($(M)-(N2)$),n1=atan2(y1,x1) in 
($(N2.n1)!1mm!(M)$) coordinate (aux4) (M) -- 
($ (aux4)!1mm!90:(M) $) -- ($ (aux4)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux4);
endscope
enddocument

The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
 |Â
show 1 more comment
up vote
3
down vote
accepted
up vote
3
down vote
accepted
Placing the M is rather straightforward: use chemmove, which produces an overlay tikzpicture and then e.g. the calc syntax. What I find more difficult is to reproduce the bond styles. I ended up looking up the definitions and then to repeat what I think they do. (EDIT: Minor fine-tuning, big thanks to AndréC for pushing me.)
documentclassarticle
usepackagechemfig
usetikzlibrarycalc
begindocument
chemfig
 O=[2,,]C
 (-[3,1.8,,1]CH_2-[1,,1]@N1N
 (-[7,,,2]H_2C-[0,,]@C1C
 (=[7,,]O)
 (-[1,,]@OM1O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]@N2N
 (-[1,,,2]H_2C-[0,,2]@C2C
 (=[1,,]O)
 (-[7,,]@OM2O^-))
 (-[3,1.2,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]@OM3O^-))))
 (-[1,,]@OM4O^-)
chemmove[brown!70!black]M.center);
beginscope
clip let p1=($(M)-(OM2)$),n1=atan2(y1,x1) in 
($(OM2.n1)!1mm!(M)$) coordinate (aux3) (M) -- 
($ (aux3)!1mm!90:(M) $) -- ($ (aux3)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux3);
endscope
beginscope
clip let p1=($(M)-(N2)$),n1=atan2(y1,x1) in 
($(N2.n1)!1mm!(M)$) coordinate (aux4) (M) -- 
($ (aux4)!1mm!90:(M) $) -- ($ (aux4)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux4);
endscope
enddocument

Placing the M is rather straightforward: use chemmove, which produces an overlay tikzpicture and then e.g. the calc syntax. What I find more difficult is to reproduce the bond styles. I ended up looking up the definitions and then to repeat what I think they do. (EDIT: Minor fine-tuning, big thanks to AndréC for pushing me.)
documentclassarticle
usepackagechemfig
usetikzlibrarycalc
begindocument
chemfig
 O=[2,,]C
 (-[3,1.8,,1]CH_2-[1,,1]@N1N
 (-[7,,,2]H_2C-[0,,]@C1C
 (=[7,,]O)
 (-[1,,]@OM1O^-))
 (-[4,,,2]H_2C-[2,,2,2]H_2C-[0,,]@N2N
 (-[1,,,2]H_2C-[0,,2]@C2C
 (=[1,,]O)
 (-[7,,]@OM2O^-))
 (-[3,1.2,,2]H_2C-[1,2,2]C
 (=[2,,]O)
 (-[7,,]@OM3O^-))))
 (-[1,,]@OM4O^-)
chemmove[brown!70!black]M.center);
beginscope
clip let p1=($(M)-(OM2)$),n1=atan2(y1,x1) in 
($(OM2.n1)!1mm!(M)$) coordinate (aux3) (M) -- 
($ (aux3)!1mm!90:(M) $) -- ($ (aux3)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux3);
endscope
beginscope
clip let p1=($(M)-(N2)$),n1=atan2(y1,x1) in 
($(N2.n1)!1mm!(M)$) coordinate (aux4) (M) -- 
($ (aux4)!1mm!90:(M) $) -- ($ (aux4)!1mm!-90:(M) $)
-- cycle;
draw[-,line width=2mm, dash pattern=on 1pt off 2pt,line cap=butt] (M) --(aux4);
endscope
enddocument

edited 32 mins ago
answered 47 mins ago
marmot
68.2k475147
68.2k475147
The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
 |Â
show 1 more comment
The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
The vertical line from one O- to the other is not well centered, it is slightly too far to the left.
â AndréC
42 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
@AndréC One can either have a vertical line or a centered line in the OP's setup. If one makes the C--H_2C lines a bit longer, it is better centered.
â marmot
40 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
Unfortunately I can't get this to work properly. Can this be used in a figure environment?
â Antidisestablishmentarianism
29 mins ago
+1, perfect now!
â AndréC
28 mins ago
+1, perfect now!
â AndréC
28 mins ago
1
1
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
@Antidisestablishmentarianism You have to compile twice to get the right placement!
â AndréC
27 mins ago
 |Â
show 1 more comment
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f456672%2ftrouble-with-hooks-in-chemfig%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password