% Chlorophyll \documentclass{article} \pagestyle{empty} \usepackage{ochem} \usepackage{german} \begin{document} \begin{chemspecial} include(`utils.inc') include(`natur.inc') require("bicyclib") \end{chemspecial} \begin{chemistry} formula(L,R) { saveXY(#0) atom("Mg") restoreXY(#0) saveXY(#cur,={N,N}) ring(,0,H1=3=,,5,-135){ 0: N_ bond(#0); 1: saveXY(#1); 4: saveXY(#2); 2: bond(r) atom("R'"); 3: bond(r; r+); } restoreXY(#0) saveXY(#cur,={N,0}-{0,N}) ring(,0,H2=4=,,5,135){ 0: N_ bond(=0.5*(#0-#cur),->); 1: saveXY(#3); 4: saveXY(#4); 2: bond(r); 3: saveXY(#9); } restoreXY(#0) saveXY(#cur,={0,0}-{N,N}) ring(,0,H4=,,5,45){ 0: N_ bond(#0); 1: saveXY(#5); 4: saveXY(#6); 3: bond(r); 2: bond(r; -150; 150) branch { bond(90,=C) atom("O"); } bond(-150) atom("R"); } restoreXY(#0) saveXY(#cur,={0,N}-{N,0}) ring(,0,H2=,,5,-45){ 0: N_ bond(=0.5*(#0-#cur),->); 1: saveXY(#7); 4: saveXY(#8); 2: bond(r); 3: bond(r; r-,=); } restoreXY(#1) bond(=0.5*(#8-#1)+{0,n}; #8,=U) restoreXY(#3) bond(=0.5*(#2-#3)+{n,0},=U; #2) restoreXY(#5) bond(=0.5*(#4-#5)-{0,n},=U) saveXY(#10) bond(#4) restoreXY(#7) bond(=0.5*(#6-#7)-{n,0},=U; #6) restoreXY(#9) bond(-110) branch { bond(-60,=C) atom("O"); } bond(180) branch { bond(-120,,L) atom("H$_3$COOC",R); } bond(#10) } \end{chemistry} \end{document}