|
36 | 36 | | introduced by Adobe | terms of introduction | used commonly today, | |
37 | 37 | | | | introduced by Apple | |
38 | 38 | +--------------------------+----------------------------+----------------------------+ |
39 | | - | Restricted subset of | Full PostScript language, | Includes a virtual machine | |
| 39 | + | Restricted subset of | Full PostScript language, | Includes a virtual machine | |
40 | 40 | | PostScript, charstrings | allows embedding arbitrary | that can execute code! | |
41 | 41 | | are in bytecode | code (in theory, even | | |
42 | 42 | | | render fractals when | | |
|
88 | 88 | files, particularly with fonts with many glyphs such as those that support CJK |
89 | 89 | (Chinese/Japanese/Korean). |
90 | 90 |
|
91 | | -The solution to this problem is to subset the fonts used in the document and |
92 | | -only embed the glyphs actually used. This gets both vector text and small |
93 | | -files sizes. Computing the font subset and writing the new |
94 | | -(reduced) font are both complex problems and thus Matplotlib relies in most cases |
95 | | -on `fontTools <https://fonttools.readthedocs.io/en/latest/>`__. |
| 91 | +To keep the output size reasonable while using vector fonts, |
| 92 | +Matplotlib embeds only the glyphs that are actually used in the document. |
| 93 | +This is known as font subsetting. |
| 94 | +Computing the font subset and writing the reduced font are both complex problems, |
| 95 | +which Matplotlib solves in most cases by using the |
| 96 | +`fontTools <https://fonttools.readthedocs.io/en/latest/>`__ library. |
96 | 97 |
|
97 | 98 | Core Fonts |
98 | 99 | ^^^^^^^^^^ |
|
0 commit comments