\documentclass[12pt,border=0pt,crop,multi=false,tikz,class=scrartcl]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{chemfig,chemmacros}
\usepackage{lmodern}
\usepackage{gensymb}
%\chemsetup[chemformula]{font-shape=sf,format=\sffamily}
\renewcommand*{\familydefault}{\sfdefault}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\setatomsep{2em}
\setdoublesep{.6ex}
\setarrowdefault{,.9, thick}
\setbondstyle{thick}
\makeatother
\begin{document}
\definesubmol\nobond{-[,0.25,,,draw=none]}
\schemedebug{false}
\begin{tikzpicture}
\node {
\schemestart
\chemfig{@{o1}\lewis{1:3:,O}=[6]-[:-30]-[6]R}
\arrow{<=>[\chemfig{@{h1}H|{}^+}]}
\chemfig{@{o2}\lewis{2:,O}|{}^+(-[:150]H)=[@{b1}6]-[@{b2}:-30]-[6]R}
\arrow{<=>}[,1.5]
\chemfig{@{o4}\lewis{4:,O}|{}^+(-[@{b5}:150]H)=[6]-[:-30](-[6]R)-[:30](-[::-60]-[::-60]R)-[2]\lewis{2:4:,O}H}
\arrow{<=>[-\chemfig{H^+}]}
\chemname{\chemfig{\lewis{0:4:,O}=[6]-[:-30](-[6]R)-[:30](-[::-60]-[::-60]R)-[2]\lewis{2:4:,O}H}}{aldol}
\arrow(@c1--){<=>[(\chemfig{H})]}[-45,1.1]
\chemfig{H|@{o3}\lewis{0:2:,O}-[@{b3}:-60]=^[@{b4}0]-[:-60]R}
\chemmove[-stealth,shorten <=3pt, shorten >=2pt, red]{
\draw (o1.north east) .. controls ++(north:1em) and ++(north:3em) .. (h1.north);
\draw (b1.east) .. controls ++(east:4mm) and ++(south east:2mm) .. (o2.east);
\draw [draw=none] (o2.north east) -- ++(4.5em,-1em) node {\parbox{7em}{\textcolor{black}{\scriptsize protonated carbonyl\\[-5pt](electrophilic)}}};
\draw (o3.east) .. controls ++(east:4mm) and ++(north east:3mm) .. (b3.north east);
\draw (b4.north) .. controls ++(north:1cm) and ++(south west:2cm) .. (b2.south west);
\draw [draw=none] (b4) -- ++(-1em,-1.5em) node {\parbox{7em}{\textcolor{black}{\scriptsize enol\\[-5pt](nucleophilic)}}};
\draw (b5) .. controls ++(north east:1em) and ++(north:2em) .. (o4);
}
\schemestop
};
\end{tikzpicture}
\end{document}