diff options
| author | Po Lu | 2023-08-16 22:05:47 +0800 |
|---|---|---|
| committer | Po Lu | 2023-08-16 22:06:10 +0800 |
| commit | d6c473a91da3ce8decae03ed32b91affbb040890 (patch) | |
| tree | b2484541aedabf4a79d4fd3c3f38694e0e201362 | |
| parent | dfe68f2a420e4d85ba2d1723bbdbf7f4bf1d71a6 (diff) | |
| download | emacs-d6c473a91da3ce8decae03ed32b91affbb040890.tar.gz emacs-d6c473a91da3ce8decae03ed32b91affbb040890.zip | |
* etc/PROBLEMS: Document a problem with the Anonymous Pro font.
| -rw-r--r-- | etc/PROBLEMS | 50 |
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 | |||
| 3398 | automatically generated instructions result in superior display | 3398 | automatically generated instructions result in superior display |
| 3399 | results that are easier to read. | 3399 | results that are easier to read. |
| 3400 | 3400 | ||
| 3401 | ** The "Anonymous Pro" font displays incorrectly. | ||
| 3402 | |||
| 3403 | Glyphs instruction code within the Anonymous Pro font relies on | ||
| 3404 | undocumented features of the Microsoft TrueType font scaler, namely | ||
| 3405 | that the scaler always resets the "projection" and "freedom" vector | ||
| 3406 | interpreter control registers after the execution of the font | ||
| 3407 | pre-program, which sets them to a value that is perpendicular to the | ||
| 3408 | horizontal plane of movement. | ||
| 3409 | |||
| 3410 | Since Emacs does not provide this "feature", various points within | ||
| 3411 | glyphs are moved vertically rather than horizontally when a glyph | ||
| 3412 | program later executes an "MIRP" (Move Indirect Relative Point) | ||
| 3413 | instruction. | ||
| 3414 | |||
| 3415 | This can be remedied in two ways; the first (and the easiest) is to | ||
| 3416 | replace its instruction code with that supplied by "ttfautohint", as | ||
| 3417 | depicted above. The second is to patch the instruction code within | ||
| 3418 | the font itself, using the "ttx" utility: | ||
| 3419 | |||
| 3420 | https://fonttools.readthedocs.io/en/latest/ttx.html | ||
| 3421 | |||
| 3422 | First, convert the font to its XML representation: | ||
| 3423 | |||
| 3424 | $ ttx Anonymous_Pro.ttf | ||
| 3425 | |||
| 3426 | then, 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 | |||
| 3437 | and 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 | |||
| 3444 | Then, reassemble the font from the modified XML: | ||
| 3445 | |||
| 3446 | $ ttx Anonymous_Pro.ttx | ||
| 3447 | |||
| 3448 | which should produce a modified font by the name of | ||
| 3449 | Anonymous_Pro#1.ttf. | ||
| 3450 | |||
| 3401 | * Build-time problems | 3451 | * Build-time problems |
| 3402 | 3452 | ||
| 3403 | ** Configuration | 3453 | ** Configuration |