|
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