In the first section of this draft, I describe a formula to make two G¹–continuous cubic Bézier curves G³–continuous. Though the formula actually works for two G¹–continuous cubic Bézier segments only, it seems to work for more segments as well, if being iterated.
The formula (and its iteration) is implemented in the Curvatura script for FontForge. Feel free to try it.
Is this algorithm already known?
(As far as I can see, the RMX tools have an algorithm to make curves G³–continuous as well (called supersmooth), but my algorithm is probably different: "supersmooth" seems to move the node perpendicular to its handles, my algorithm scales the handles.)