> Am 13.05.2021 um 20:02 schrieb Henning Hraban Ramm : > > Thank you, that is what I was asking for! > > Unfortunately, the deviation of edge points is too big – try my attached test file. Hi Aditya et al., coming back to this: I found "fill" was not working, since do_sketchfill didn’t use sketchrandomized. That was an easy fix. But I couldn’t fix the edge points issue: the less segments I use, the more some of the edge points deviate (see attachment with 10 segments; I used the setup from your theorems article). Lower left and upper right are good, what happens with the others? I just can’t understand the loop that splits the original path segments: for t = 0 step 1/sketch_segments until 1-1/sketch_segments : ((point (t*arclength(p)) on p) randomshifted s) .. controls ((postcontrol (t*arclength(p)) on p) randomshifted s) and ((precontrol ((t+1/sketch_segments)*arclength(p)) on p) randomshifted s) .. endfor Would it make sense to check if a point is an edge point (without curve controls)? Next question: Can I apply this to \framed and TABLE lines? (Probably only via backgrounds?) Hraban