I would like to write the following picture. I am using the package chemfig
but I am not sure how to write curved arrows and type over it.
-
4Welcome to TeX.SX! Please help us (and also you) and add a minimal working example (MWE). This isn't a "Please do my work for me" site! What do you have so far? Try to create first one single figure.– BobyandbobAug 8, 2017 at 21:31
-
Related: tex.stackexchange.com/q/125508/124842, tex.stackexchange.com/a/318447/124842 and tex.stackexchange.com/a/209969/124842– BobyandbobAug 8, 2017 at 21:32
-
...and tex.stackexchange.com/questions/196958/…– user30471Aug 9, 2017 at 0:11
2 Answers
For example with tikz-cd
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[every cell/.style={shape=circle,inner sep=0.5ex,font=\large}]
A \rar{a} \ar[r,bend right=60,looseness=1.8]& B \rar{b} & C \rar{c}\ar[dr,"e"'] & D \ar[d,bend right] \\
& F \ar[u]\ar[rr,"f",pos=0.4] & & E
\end{tikzcd}
\end{document}
A chemfig
solution:
\documentclass{article}
\usepackage{chemfig}
% from documentation:
%http://mirror.kku.ac.th/CTAN/macros/generic/chemfig/chemfig-en.pdf
\makeatletter
\definearrow1{s>}{%
\ifx\@empty#1\@empty
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF](\CF@arrow@start@node)--(\CF@arrow@end@node);%
\else
\def\curvedarrow@style{shorten <=\CF@arrow@offset,shorten >=\CF@arrow@offset,}%
\CF@expadd@tocs\curvedarrow@style\CF@arrow@current@style
\expandafter\draw\expandafter[\curvedarrow@style,-CF](\CF@arrow@start@name)..controls#1..(\CF@arrow@end@name);
\fi
}
\makeatother
\begin{document}
% \schemedebug{true} % for debugging only
\schemestart
A \arrow(aa--bb){->[a]} B \arrow(--cc){->[b]} C \arrow(--dd){->[c]} D
\arrow(@bb--ff){<-}[-90] F \arrow(--ee){->[f]}[,2.15] E
\arrow(@cc--@ee){->[][*{0}e]}
\arrow(@aa--@bb){s>[+(-45:1.5cm)]}
\arrow(@dd--@ee){s>[+(210:1cm)and+(120:1cm)]}
\schemestop
\end{document}
I obtained the code for the curved arrow (s>
) from the documentation, IV Reaction schemes 10 Arrows customization, and its use is very well documented there as well.
An alternative (instead of s>
) would probably be using \chemmove
and the controls..
etc. from TikZ
, but I didn't try that.