From: Po Lu Date: Wed, 16 Aug 2023 14:05:47 +0000 (+0800) Subject: * etc/PROBLEMS: Document a problem with the Anonymous Pro font. X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d6c473a91da3ce8decae03ed32b91affbb040890;p=emacs.git * etc/PROBLEMS: Document a problem with the Anonymous Pro font. --- diff --git a/etc/PROBLEMS b/etc/PROBLEMS index e4bbfc8d286..6a4c8cdb34c 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -3398,6 +3398,56 @@ you are not seeing problems with character display, as the automatically generated instructions result in superior display results that are easier to read. +** The "Anonymous Pro" font displays incorrectly. + +Glyphs instruction code within the Anonymous Pro font relies on +undocumented features of the Microsoft TrueType font scaler, namely +that the scaler always resets the "projection" and "freedom" vector +interpreter control registers after the execution of the font +pre-program, which sets them to a value that is perpendicular to the +horizontal plane of movement. + +Since Emacs does not provide this "feature", various points within +glyphs are moved vertically rather than horizontally when a glyph +program later executes an "MIRP" (Move Indirect Relative Point) +instruction. + +This can be remedied in two ways; the first (and the easiest) is to +replace its instruction code with that supplied by "ttfautohint", as +depicted above. The second is to patch the instruction code within +the font itself, using the "ttx" utility: + + https://fonttools.readthedocs.io/en/latest/ttx.html + +First, convert the font to its XML representation: + + $ ttx Anonymous_Pro.ttf + +then, find the end of the section labeled 'prep': + + + + [...] + ROUND[01] /* Round */ + RTG[ ] /* RoundToGrid */ + WCVTP[ ] /* WriteCVTInPixels */ + + + +and insert the following instruction immediately before the closing +'/assembly' tag: + + SVTCA[1] + +(which stands for "Set Vector registers to Control Axis X") + +Then, reassemble the font from the modified XML: + + $ ttx Anonymous_Pro.ttx + +which should produce a modified font by the name of +Anonymous_Pro#1.ttf. + * Build-time problems ** Configuration