Open frankrolf opened 5 months ago
To reproduce the problem, you may use the attached source files and run the following commands:
makeinstancesufo -ac -d 1_extrapolation.designspace
buildmasterotfs -d 2_Exercise2.designspace
buildcff2vf -d 2_Exercise2.designspace
This happens because of generalizeCFF
in buildmasterotfs
. I'm not sure what the reason was for adding that, but maybe we should have a flag to skip it for situations like this. For CJK production I don't use buildmasterotfs
because it's not needed at all. I just run makeotf
.
This scenario has been coming up in FDK workshops periodically. I explain that VFs by themselves do not support extrapolation, but it is possible to “fake” an extrapolating VF, by extrapolating static UFOs, and assigning those as new sources.
The problem is that sometimes those new sources are no longer compatible – in this specific scenario, an implied closepath (contour 0 point 0) is extrapolated into non-existence:
Since the
buildmasterotfs
tool is basically just runningmakeotf
, there is no reason for the tool to insert a closepath when start- and endpoint of the contour are equal (as in this example). The result is a set of incompatible OTFs.When the
buildcff2vf
step is taken, this is the output:using the
-c
option:While this particular scenario may not be all too common, the fact that
buildmasterotfs
is unaware of point compatibility concerns is a problem.