aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPo Lu2023-08-16 22:05:47 +0800
committerPo Lu2023-08-16 22:06:10 +0800
commitd6c473a91da3ce8decae03ed32b91affbb040890 (patch)
treeb2484541aedabf4a79d4fd3c3f38694e0e201362
parentdfe68f2a420e4d85ba2d1723bbdbf7f4bf1d71a6 (diff)
downloademacs-d6c473a91da3ce8decae03ed32b91affbb040890.tar.gz
emacs-d6c473a91da3ce8decae03ed32b91affbb040890.zip
* etc/PROBLEMS: Document a problem with the Anonymous Pro font.
-rw-r--r--etc/PROBLEMS50
1 files changed, 50 insertions, 0 deletions
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
3398automatically generated instructions result in superior display 3398automatically generated instructions result in superior display
3399results that are easier to read. 3399results that are easier to read.
3400 3400
3401** The "Anonymous Pro" font displays incorrectly.
3402
3403Glyphs instruction code within the Anonymous Pro font relies on
3404undocumented features of the Microsoft TrueType font scaler, namely
3405that the scaler always resets the "projection" and "freedom" vector
3406interpreter control registers after the execution of the font
3407pre-program, which sets them to a value that is perpendicular to the
3408horizontal plane of movement.
3409
3410Since Emacs does not provide this "feature", various points within
3411glyphs are moved vertically rather than horizontally when a glyph
3412program later executes an "MIRP" (Move Indirect Relative Point)
3413instruction.
3414
3415This can be remedied in two ways; the first (and the easiest) is to
3416replace its instruction code with that supplied by "ttfautohint", as
3417depicted above. The second is to patch the instruction code within
3418the font itself, using the "ttx" utility:
3419
3420 https://fonttools.readthedocs.io/en/latest/ttx.html
3421
3422First, convert the font to its XML representation:
3423
3424 $ ttx Anonymous_Pro.ttf
3425
3426then, find the end of the section labeled 'prep':
3427
3428 <prep>
3429 <assembly>
3430 [...]
3431 ROUND[01] /* Round */
3432 RTG[ ] /* RoundToGrid */
3433 WCVTP[ ] /* WriteCVTInPixels */
3434 </assembly>
3435 </prep>
3436
3437and insert the following instruction immediately before the closing
3438'/assembly' tag:
3439
3440 SVTCA[1]
3441
3442(which stands for "Set Vector registers to Control Axis X")
3443
3444Then, reassemble the font from the modified XML:
3445
3446 $ ttx Anonymous_Pro.ttx
3447
3448which should produce a modified font by the name of
3449Anonymous_Pro#1.ttf.
3450
3401* Build-time problems 3451* Build-time problems
3402 3452
3403** Configuration 3453** Configuration