Congratulations to Bhikkhu Pesala for solving the problem and to everyone involved in producing such an interesting thread.
I have found an interesting piece of spin-off from this thread.
An interesting aspect of using the quadratic Bézier curves which are used to produce the contour or contours of a glyph is that if one draws a contour by hand using the mouse and one puts only off-curve points in the contour, then a smooth shape results. The points can be moved and the smooth-shapeness of the contour remains: once one has reached a shape which one likes, then an on-curve point can be added after each off-curve point using the a command: adding those on-curve points does not change the shape of the contour as the rule for interpreting two off-curve points in sequence is as if there were an on-curve point half-way between them, and half-way between them is where the a command puts the additional point.
Up until reading this thread I had thought that the first point of a contour had to be an on-curve point. It seems that I was wrong in thinking that in terms of the specification and in what FontCreator can do, though perhaps it was useful to have thought that in practical terms in view of what some packages might do when interpreting such a contour!
However, I have now found, having tried a test font, that the first point of a contour can indeed be an off-curve point, though I have thus far only be able to make it off-curve by changing it after the contour is closed. I tried to draw the contour starting with a right-click but an on-curve point was drawn.
Until reading the post by Bhikkhu Pesala I had not realized that one can change which is the first point of the contour.
So it seems that making a contour have all off-curve points is a useful feature for being able to produce glyph designs with smooth contours, yet it seems a good idea that, once the design is finalized, all of the implied on-curve points are added into the contour and that one of those on-curve points is then made the first point of the contour as a practical precaution even though it might not need to be so made according to the letter of the specification.
I have wondered why it is not possible to insert a contour by starting with an off-curve point as it is drawn and realize that if it were possible then the first part of the displayed contour could not be drawn in the correct place as the position of the neither-yet drawn nor-yet implied preceding on-curve point is not known. However, having completed the contour and then changing the on-curve starting point to become an off-curve point, the jump in the shape of the contour is over a greater part of the contour than if the first point had been inserted as an off-curve point, so maybe there could be a small advantage in allowing a contour to be inserted starting with an off-curve point and just drawing a straight line from that starting point to the implied on-curve point following it, though maybe that could produce problems about closing the contour when it is first drawn.
So, whilst adding a notification in the validation report that a contour starts with an off-curve point would be a good thing, I feel that retaining an ability to have a contour with all off-curve points within development would be a good idea: I appreciate that it has not been suggested that that ability should be removed.
William Overington
29 March 2007