Knowledge

Metafont

Source 📝

312:(visible in the name of the output file, see below). These bitmaps are typically stored for later reuse, so that Metafont does not have to be run every time a document is displayed, but on the other hand TeX distributions with a Metafont component have typically not included any prebuilt bitmap fonts, since they would be rather large in comparison to the sources from which they could be generated. Since Metafont fonts were traditionally the TeX default from which other font formats were exceptions, an incomplete installation of a non-Metafont font can sometimes result in Metafont being called and emitting a confusing " 2496: 1147: 1247: 27: 1312:, which is capable of interpreting complex PostScript paths generated by Metapost from Metafont's elliptic pens, and also capable of removing contour overlaps. Since FontForge supports scripting, this post-processing step can also be automated. This approach was used to produce Type 1 outlines for the 746:
Delimiters (such as parentheses) do not have built-in meanings, instead there is a command that turns two symbolic tokens into a pair of matching delimiters, but normally Metafont programs use only the ordinary parentheses. Besides to override priorities in expressions, delimiters are also required
561:
adds color (a triple of numerics) as a ninth type and has a completely different (non-raster) model for pictures; the latter is the main point of divergence between the two programs. Metafont vardef macros also live in the same namespace as variables and may in some ways be regarded as a ninth type
810:, have collaborated with Knuth to create new fonts using Metafont, the system has not been widely adopted by professional type designers. Knuth attributes this to the fact that "asking an artist to become enough of a mathematician to understand how to write a font with 60 parameters is too much." 790:-font). Thus, by changing the value of one of these parameters at one location in the Metafont file, one can produce a consistent change throughout the entire font. Computer Modern Roman illustrates many uses of this feature; a typical TeX installation includes a number of versions of the font in 597:
types may be simulated through collections of variables that share a common name prefix, an idiom supported by the type declaration system giving all variables whose names which differ only in numeric indices the same type (as expected for arrays) while keeping variables whole name differ in some
621:
of one or several independents). When Metafont executes an equation statement, it turns one of the independents involved into a dependent and eliminates it from the expressions for all other dependents; when no independents remain in the expression for a dependent variable, that variable becomes
1380:
generate vector outlines as an intermediate step of rasterising a stroke, but those intermediate outlines are tailored to the current raster resolution and non-simple as curves, so they are very far from being usable as Type 1 outlines. An effect of the non-simplicity is spurious pixels on the
836:
started work on font creation software in 1977, and produced the first version of Metafont in 1979. Due to shortcomings in the original Metafont language, Knuth developed an entirely new Metafont system in 1984, and it is this revised system that is used today; Metafont has a versioning system
629:
thus is a built-in feature of the Metafont language, and the recommended method of assigning most variables (especially those whose values have geometric significance) is to state equations determining their values. Equation systems frequently mix numeric (scalar) equations with pair (vector)
770:), a Metafont font is primarily made up of strokes with finite-width "pens", along with filled regions. Thus, rather than describing the outline of the glyph directly, a Metafont file describes the pen paths. Some simpler Metafont fonts, such as the calligraphic mathematics fonts in the 637:
variables. These have names consisting of just one symbolic token, are always numeric, and are always known. They have a more direct internal representation than ordinary variables, making it convenient for primitive operations in Metafont (or extensions thereof) to use them implicitly.
389:
After running Metafont, typically one uses the gftopk program to convert the NNNNgf files to pk (packed) format (.NNNNpk). The pk format was primarily introduced to reduce file size (to about half), but expected to also speed up processing since less data would have to be
346:
Metafont can also be run interactively, and has commands for displaying on the screen the images it produces. Knuth has said that he uses Metafont as a kind of desk calculator for solving complicated equations, though he now uses MetaPost for mathematical illustrations.
1308:. It also has several limitations detailed in its manual, the most significant one being the restriction that each glyph must be drawn entirely from closed paths. In order to overcome the limitations of mf2pt1, the EPS output by Metapost can be post-processed with 362:
can only contain references to typefaces, rather than the sets of raster or vector glyphs that other formats like PostScript allow. Consequently, the glyphs in the typefaces need to be accessed whenever a request is made to view, print or convert a DVI file.
1675:– a small Python program that lets you trace a TeX bitmap font into a PFA or PFB font (A PostScript Type1 Scalable Font) or TTF (TrueType) font. It is licensed under the GNU GPL. Created by Han-Wen Nienhuys. Versions prior to 1.0.5 were called 'pktrace'. 323:
variable is positive. Traditionally TeX distributions have often come with all TFM files pregenerated (since they are pretty small), but someone installing a Metafont font from sources will have to generate its TFM file before TeX can use it.
1269:
outlines, which can subsequently be converted to PostScript Type 1 fonts. Generating vector outlines of Metafont pen strokes is nontrivial, as the Metafont model of a glyph is a raster image and the exact outlines of most strokes are not
778:
text fonts in the Computer Modern family use a small pen to trace around the outline of the visual "strokes", which are then filled; the result is much like an outline font, but with slightly softened corners defined by the pen shape.
280:
language, where operations such as "draw a lower case top of stem serif at point 4" might appear as one macro instruction (with the point as argument) in the program for a letter. For describing shapes, Metafont has a rich set of
398:
of bitmaps, but make different binary encodings of the run-lengths. The PK format also does some preprocessing of the bitmaps (bounding box, eliding repeated rows) and encodes all rows of a character as one long bit-sequence.
724:, as well as the class of underscore together with upper and lower case A–Z, the token consists of the longest consecutive sequence of characters from the same class. Whitespace characters don't contribute tokens. 1687:– a collection of scripts for UNIX that convert any TeX font into a Type1 .pfb outline font immediately suitable for use with dvips, pdftex, acroread (and any many other programs). Created by Peter Szabo. 1286:(based on MetaPost) for creating PostScript Type 1 fonts. Its big disadvantage is that no pens may be used which highly reduces the power of Metafont language. Initially, tool has been used by the Polish 1326:
is a proprietary converter that can analytically convert pen strokes, but it requires manual post processing to eliminate degenerate cases, and it is not publicly available. It can process only Metapost
1381:
concave side of a stroke that get a value of 2 rather than 1, however the automatic culling of pictures being shipped out as glyphs in a font normally prevents this from showing up in the final bitmap.
304:
Metafont is most often run as a helper to output device (printer, screen) drivers; in those cases, its job is to generate bitmaps for a font for a specific combination of output device (called a
665:
Except where characters are involved in numeric or string constants, the extent of the token containing a particular character depends on to which class the character belongs; unlike
658:, and can be redefined arbitrarily; there is no restriction that tokens with certain meanings must have names consisting of certain characters. At runtime, there can additionally be 218: 1167:
Then it can be used in a LaTeX file such as the following (all files should dwell in the same directory, or the TeX system should be informed about them using appropriate methods):
154:, or intersection of a stem and crossbar—are defined with geometrical equations; the intent that the three stems of an ‘m’ are equally spaced horizontally might be expressed as 271: 292:, em width, slant, vertical stroke width, etc.), then calling a separate source file common for a whole range of fonts to actually draw the individual glyphs; this is the 814:
commented that the Metafont system ultimately became "a technology behind zero of your favourite fonts...Knuth's idea that letters start with skeletal forms is flawed."
1541: 782:
Since the font shapes are defined by equations rather than directly coded numbers, it is possible to treat parameters such as aspect ratio, font slant, stroke width,
493: 1825: 794:
from 5 to 17 cpi, with the stroke widths the same in all sizes (rather than increasing as the font is scaled up). In addition, the Computer Modern typewriter and
343:
utility to generate enlarged images of the font glyphs, this information from specials is included; point positions are not limited to pixel resolution.
1777: 1305: 2561: 1818: 220:
if points 1, 2, and 3 are at the bottom ends of the three stems, whereas the intent that they all end on the same vertical position would be
774:
family, use a single pen stroke with a relatively large pen to define each visual "stroke" of the glyphs. More complex fonts such as the
2556: 1340: 1313: 1279: 339:
commands, in particular the positions and names of points the font designer considered important for the design. If using the separate
1647: 1336: 1323: 288:
Many families of Metafont fonts are set up so that the main source file for a font only defines a small number of design parameters (
1745: 817:
The Metafont system allows fonts to be processed in unusual ways; in 1982, Knuth showed how it could be used to morph fonts, with a
319:
Equally important, but not as common, is running Metafont to generate a font metric (TFM) file; a TFM file is only generated if the
2515: 1811: 1301: 569:
Unusually, the names of variables are not simple tokens, but sequences of symbolic tokens and numeric indices; the variable name
1771: 1556: 2500: 1908: 1331:
The common approach to generate Type 1 fonts with pen strokes remains to generate a high-resolution bitmap and then use an
662:
tokens, which are effectively constant value tokens of arbitrary type; in the source code those appear as symbolic tokens.
355: 2344: 358:
are preferred for mathematical illustrations. Metafont is most commonly invoked without a direct request from the user.
1499:
CSTUG, Charles University, Prague, March 1996, Questions and Answers with Prof. Donald E. Knuth, reproduced in TUGboat
1488:...the mathematics is really simple for a quadratic. The corresponding thing for a cubic is six times as complicated... 605:
to define variables. A numeric variable (or component of a pair or transformation variable) may be in the three states
1418: 1948: 1760: 1726: 1712: 1471: 1451: 798:
fonts are defined using essentially the same Metafont file as the Roman font, but with different global parameters.
2551: 1903: 108: 91: 1519:"Knuth's idea that letters start with skeletal forms is flawed. But his work is important and had lasting impact" 128: 2510: 2505: 2102: 1834: 1778:"Metafont, Metamathematics, and Metaphysics: Comments on Donald Knuth's Article 'The Concept of a Meta-Font'" 157: 786:
size, and so forth as input parameters in each glyph definition (which then define not a single font, but a
1953: 1351: 1968: 1766:
K. Píška, "Creating Type 1 fonts from Metafont sources: comparison of tools, techniques and results", in
50: 2536: 1939: 623: 618: 382:
information, which is the information TeX needs. Usually metafont has to be told to generate this file.
223: 2267: 1752:
programming language, and includes very extensive documentation about the algorithms used in Metafont.
2297: 847: 590: 120: 56: 1734: 1934: 1730: 646:
Metafont has numeric and string constant tokens with mainstream syntaxes; strings are delimited by
514: 277: 1266: 437: 431: 406:
standard, filenames are limited to 8+3 characters, so GF and PK files would only have extensions
335:
variable is positive then the bitmap font file also contains additional information provided via
414:. Files for different resolutions are kept apart by placing them in separate directories, named 458: 441: 2546: 2541: 2384: 2309: 1963: 1605: 1304:, which is also based on Metapost, was developed by Scott Pakin with some contributions from 533: 468: 285:
construction operations that mostly relieves the user of having to calculate control points.
2359: 2314: 2159: 2023: 1633: 1573: 1518: 1504: 8: 2220: 2178: 1316:
mathematical font developed by Achim Blumensath; MnSymbol was designed as a companion to
759:, rather than quadratic, for greater versatility at the cost of more complex arithmetic. 651: 563: 395: 131:
that executes Metafont code, generating the bitmap fonts that can be embedded into e.g.
2467: 2319: 2215: 1943: 1797: 1770:(Springer-Verlag, Berlin, 2004), Lect. Notes Comput. Sci., Vol. 3130, pp. 240–56. 859:
The following example creates a closed beanlike shape for the character "B" of a font:
791: 2482: 2424: 2234: 2225: 1996: 1991: 1756: 1722: 1708: 1447: 1317: 1258: 767: 549: 496: 151: 146:
One of the characteristics of Metafont is that the points defining the shapes of the
96: 2087: 2290: 2198: 2117: 2055: 1978: 811: 518: 371:
Metafont outputs several kinds of files: for a file called NAME.mf, it can output:
103: 79: 1803: 1619: 2457: 2379: 2374: 2193: 2188: 2077: 2033: 1291: 771: 594: 543: 462: 379: 359: 1403: 1271: 526: 282: 2257: 2229: 2122: 2038: 2001: 1924: 842: 84: 685:
are "loners" and only form single character tokens. For the character classes
502:
Pair: a pair of numerics, used primarily for representing points in the plane.
2530: 2329: 2149: 2107: 2045: 2018: 787: 309: 293: 350:
Metafont can render any kind of graphical output, not just glyphs. However,
2477: 2472: 2462: 2442: 2414: 2404: 2369: 2208: 2092: 2006: 1929: 1700: 1467: 1295: 833: 807: 756: 574: 525:
cubic polynomials. As in those other systems, path segments are encoded as
391: 375:
NAME.NNNNgf – File with raster output at resolution NNNN (2602 by default).
136: 124: 39: 1475: 1146: 539:
Pen: a convex polygon, representing the shape of a "pen" used for drawing.
536:
of the plane, equivalent to a "(transformation) matrix" in PostScript/PDF.
2452: 2447: 2409: 2399: 2394: 2349: 2334: 2203: 2154: 2144: 2134: 2097: 2013: 1958: 1868: 735:
is frequently appearing as part of variable names in Metafont code, e.g.
499:). This is the default for variables not declared to be of another type. 2324: 2304: 2239: 2139: 2060: 2050: 2028: 1858: 1837: 1332: 822: 795: 775: 506: 132: 34: 2419: 2389: 2272: 2183: 2065: 1888: 1853: 1783:, Vol. XVI no. 4, pp. 309–338 (republished in Hofstadter's book 1309: 1283: 522: 1591: 2364: 2262: 2129: 2112: 1883: 1873: 1863: 1684: 1356: 1262: 763: 602: 558: 351: 289: 2354: 2339: 2082: 1634:"R. J. Kinch, "MetaFog: converting Metafont shapes to contours", 1290:
typeface foundry to produce a modernized and extended variant of
1152:
The above example will be processed with a command line such as:
26: 2070: 1672: 1503:(1996), 355–67. Citation is from page 361. Available online at 1246: 2171: 2166: 1893: 818: 783: 147: 1257:
There are several tools for converting Metafont programs to
1738: 1265:'s ability to convert a subset of Metafont's language into 1755:
Yannis Haralambous, "Fonts and Encodings", O'Reilly 2007,
1898: 1749: 1533: 1287: 838: 666: 510: 140: 669:, Metafont has fixed character classes. The characters 650:
quotes, numeric constants can have decimals but not an
453:
Variables in Metafont can be of eight different types:
601:
A very distinctive feature of Metafont is the use of
471: 226: 160: 16:
Description language used to define rastertype fonts
1474:(Interview). Interviewed by Advogato. Archived from 1252: 1833: 598:symbolic token separate (as expected for records). 487: 265: 212: 1359:, a vector drawing language derived from Metafont 1158:'\mode=ljfour; mode_setup; input beta.mf' 762:Unlike more common outline font formats (such as 2528: 1589: 1244:The resulting PDF file should look like this: 1819: 1606:"CTAN: tex-archive/fonts/utilities/metatype1" 1510: 870:% Define a beanlike shape for the character B 731:A notable application of these rules is that 562:of variable, although macros do not exist as 2295: 1763:, Appendix F: "METAFONT and its derivatives" 728:starts a comment lasting until end of line. 521:in the plane whose coordinate functions are 1435: 546:with a signed integer value for each pixel. 1826: 1812: 1585: 1583: 633:An exception to the above is the class of 577:token, but a sequence of the three tokens 448: 385:NAME.log – Log file output from processing 907:% Setup coordinates as an equation system 806:While well-known type designers, such as 747:around certain kinds of macro arguments. 2501:Free and open-source software portal 2516:List of free software Unicode typefaces 1580: 1401: 213:{\displaystyle x_{2}-x_{1}=x_{3}-x_{2}} 2562:Computer-related introductions in 1977 2529: 1807: 1539: 1466: 1441: 654:. All other tokens are classified as 529:in terms of knots and control points. 327:A third way of operating Metafont is 299: 394:. The GF and PK formats both employ 1516: 13: 1800:(PDF). Christophe Grandsire, 2004. 1620:"CTAN: tex-archive/support/mf2pt1" 1574:"Knuth: Computers and Typesetting" 1335:, implemented by packages such as 825:design over the course of a text. 755:Curves in Metafont are defined as 14: 2573: 2557:Declarative programming languages 1949:GNU Lesser General Public License 1791: 1253:Producing PostScript Type 1 fonts 1142:This yields the following glyph: 821:font slowly transitioning into a 266:{\displaystyle y_{1}=y_{2}=y_{3}} 2494: 1768:TeX, XML, and Digital Typography 1653:from the original on 2000-10-05. 1245: 1145: 25: 1678: 1666: 1657: 1626: 1612: 1598: 1424:from the original on 2011-11-06 1226:Let's try having a strange 495:, capped to be less than 4096 ( 434:language for programs that are 366: 1731:source code of the book in TeX 1566: 1493: 1460: 1404:"Packed (PK) Font File Format" 1395: 1370: 316:.mf not found" error message. 1: 2511:List of open source typefaces 2506:Open-source Unicode typefaces 1388: 127:. It is also the name of the 1954:LaTeX Project Public License 1542:"The Concept of a Meta-Font" 1472:"Interview: Donald E. Knuth" 1352:Ikarus (typography software) 1065:% z1 is the same as (x1, y1) 554:String (of 8-bit characters) 430:The Metafont language is an 7: 1345: 1163:gftopkbeta.600gfbeta.600pk 750: 425: 10: 2578: 1940:GNU General Public License 1694: 1062:% Draw the character curve 854: 828: 135:. Metafont was devised by 61:; 3 years ago 2491: 2433: 2281: 2248: 1977: 1935:Creative Commons licenses 1917: 1844: 1737:) is available online on 1555:(1): 3–27. Archived from 641: 617:(not set, but given by a 102: 90: 78: 74: 49: 45: 33: 24: 1787:, NY: Basic Books, 1985) 1776:Hofstadter, Douglas R., 1363: 1261:fonts. Most make use of 1169: 1154: 861: 2552:Cross-platform software 1721:, Addison-Wesley 1986. 1707:, Addison-Wesley 1986. 1402:Rokicki, Tomas (1985). 488:{\displaystyle 2^{-16}} 461:signed numbers with an 449:Variables and equations 404:TeX Directory Structure 2296: 1540:Knuth, Donald (1982). 1442:Knuth, Donald (1986). 1376:Technically, Metafont 801: 489: 296:aspect of the system. 267: 214: 150:—for example top of a 139:as a companion to his 59:/ January 2021 2310:Atkinson Hyperlegible 1964:SIL Open Font License 1798:The Metafont Tutorial 1705:Metafont: The Program 1590:Christophe Grandsir. 534:affine transformation 490: 378:NAME.tfm – File with 268: 215: 2298:Antykwa Półtawskiego 1835:Free and open-source 1746:Metafont source code 1470:(January 25, 2000). 851:with each revision. 566:values in Metafont. 469: 224: 158: 143:typesetting system. 121:description language 1969:Ubuntu Font Licence 1592:"METAFONT Tutorial" 1517:Hoefler, Jonathan. 1478:on January 22, 2009 864:%file name: beta.mf 841:, where the number 837:similar to that of 611:unknown independent 396:run-length encoding 21: 2468:Greek Font Society 1944:GPL font exception 1785:Metamagical Themas 1748:is written in the 1744:Donald Knuth: The 1446:. Addison Wesley. 485: 300:Modes of operation 263: 210: 19: 2537:Free TeX software 2524: 2523: 2483:SIL International 2088:Ghostscript fonts 1997:Bitstream Charter 1259:PostScript Type 1 768:PostScript Type 1 693:(single quotes), 635:internal quantity 619:linear expression 615:unknown dependent 308:in Metafont) and 114: 113: 97:Computer language 2569: 2499: 2498: 2497: 2410:Squarish Sans CT 2400:Open Baskerville 2301: 2199:Source Han Serif 1979:Operating system 1828: 1821: 1814: 1805: 1804: 1781:Visible Language 1719:The Metafontbook 1688: 1682: 1676: 1670: 1664: 1661: 1655: 1654: 1652: 1645: 1641:, 233–43 (1995)" 1630: 1624: 1623: 1616: 1610: 1609: 1602: 1596: 1595: 1587: 1578: 1577: 1570: 1564: 1563: 1561: 1549:Visible Language 1546: 1537: 1531: 1530: 1528: 1526: 1514: 1508: 1497: 1491: 1490: 1485: 1483: 1464: 1458: 1457: 1444:The METAFONTbook 1439: 1433: 1432: 1430: 1429: 1423: 1408: 1399: 1382: 1374: 1249: 1240: 1236: 1233: 1229: 1225: 1221: 1218: 1215: 1211: 1208: 1205: 1202: 1199: 1196: 1192: 1189: 1186: 1183: 1180: 1176: 1173: 1162: 1159: 1149: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1096: 1093: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1047: 1044: 1041: 1038: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 895: 891: 887: 883: 880: 877: 874: 871: 868: 865: 812:Jonathan Hoefler 742: 738: 734: 727: 723: 719: 715: 712: 708: 704: 700: 696: 692: 688: 684: 680: 676: 672: 649: 627:equation systems 588: 584: 580: 573:is thus not one 572: 519:parametric curve 494: 492: 491: 486: 484: 483: 421: 417: 413: 409: 342: 338: 272: 270: 269: 264: 262: 261: 249: 248: 236: 235: 219: 217: 216: 211: 209: 208: 196: 195: 183: 182: 170: 169: 80:Operating system 69: 67: 62: 29: 22: 18: 2577: 2576: 2572: 2571: 2570: 2568: 2567: 2566: 2527: 2526: 2525: 2520: 2495: 2493: 2487: 2458:Behdad Esfahbod 2435: 2429: 2380:Linux Libertine 2283: 2277: 2250: 2244: 2194:Source Han Sans 2034:Computer Modern 1984: 1982: 1973: 1913: 1846: 1840: 1832: 1794: 1697: 1692: 1691: 1683: 1679: 1671: 1667: 1662: 1658: 1650: 1643: 1632: 1631: 1627: 1618: 1617: 1613: 1604: 1603: 1599: 1588: 1581: 1572: 1571: 1567: 1559: 1544: 1538: 1534: 1524: 1522: 1515: 1511: 1498: 1494: 1481: 1479: 1465: 1461: 1454: 1440: 1436: 1427: 1425: 1421: 1406: 1400: 1396: 1391: 1386: 1385: 1375: 1371: 1366: 1348: 1292:Computer Modern 1255: 1242: 1241: 1238: 1234: 1231: 1227: 1223: 1219: 1216: 1213: 1209: 1206: 1203: 1200: 1197: 1194: 1190: 1187: 1184: 1181: 1178: 1174: 1171: 1165: 1164: 1160: 1157: 1140: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1045: 1042: 1039: 1036: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 893: 889: 885: 881: 878: 875: 872: 869: 866: 863: 857: 831: 804: 772:Computer Modern 753: 740: 736: 732: 725: 721: 717: 714: 710: 706: 702: 698: 694: 690: 686: 682: 678: 674: 670: 647: 644: 622:known. Solving 613:(not set), and 586: 585:(numeric), and 582: 578: 570: 476: 472: 470: 467: 466: 451: 428: 420:dpi300/cmr10.pk 419: 415: 411: 407: 380:TeX font metric 369: 340: 336: 302: 257: 253: 244: 240: 231: 227: 225: 222: 221: 204: 200: 191: 187: 178: 174: 165: 161: 159: 156: 155: 123:used to define 70: 65: 63: 60: 17: 12: 11: 5: 2575: 2565: 2564: 2559: 2554: 2549: 2544: 2539: 2522: 2521: 2519: 2518: 2513: 2508: 2492: 2489: 2488: 2486: 2485: 2480: 2475: 2470: 2465: 2460: 2455: 2450: 2445: 2439: 2437: 2431: 2430: 2428: 2427: 2422: 2417: 2412: 2407: 2402: 2397: 2392: 2387: 2382: 2377: 2372: 2367: 2362: 2357: 2352: 2347: 2342: 2337: 2332: 2327: 2322: 2317: 2312: 2307: 2302: 2293: 2287: 2285: 2279: 2278: 2276: 2275: 2270: 2265: 2260: 2258:National Fonts 2254: 2252: 2246: 2245: 2243: 2242: 2237: 2232: 2230:Ubuntu Titling 2223: 2218: 2213: 2212: 2211: 2206: 2201: 2196: 2186: 2181: 2176: 2175: 2174: 2164: 2163: 2162: 2157: 2147: 2142: 2137: 2132: 2127: 2126: 2125: 2115: 2110: 2105: 2103:Go and Go Mono 2100: 2095: 2090: 2085: 2080: 2075: 2074: 2073: 2068: 2063: 2053: 2048: 2043: 2042: 2041: 2039:Concrete Roman 2031: 2026: 2021: 2016: 2011: 2010: 2009: 2002:Bitstream Vera 1999: 1994: 1988: 1986: 1975: 1974: 1972: 1971: 1966: 1961: 1956: 1951: 1946: 1937: 1932: 1927: 1925:Apache License 1921: 1919: 1915: 1914: 1912: 1911: 1906: 1901: 1896: 1891: 1886: 1881: 1876: 1871: 1866: 1861: 1856: 1850: 1848: 1842: 1841: 1831: 1830: 1823: 1816: 1808: 1802: 1801: 1793: 1792:External links 1790: 1789: 1788: 1774: 1764: 1753: 1742: 1717:Donald Knuth: 1715: 1696: 1693: 1690: 1689: 1677: 1665: 1663:K. Píška, 2004 1656: 1625: 1611: 1597: 1579: 1565: 1562:on 2020-07-07. 1532: 1509: 1492: 1459: 1452: 1434: 1417:(3): 115–120. 1393: 1392: 1390: 1387: 1384: 1383: 1368: 1367: 1365: 1362: 1361: 1360: 1354: 1347: 1344: 1329: 1328: 1321: 1306:Werner Lemberg 1299: 1254: 1251: 1172:\documentclass 1170: 1155: 862: 856: 853: 843:asymptotically 830: 827: 803: 800: 752: 749: 643: 640: 556: 555: 552: 547: 540: 537: 532:Transform: an 530: 503: 500: 482: 479: 475: 450: 447: 427: 424: 387: 386: 383: 376: 368: 365: 301: 298: 276:Metafont is a 260: 256: 252: 247: 243: 239: 234: 230: 207: 203: 199: 194: 190: 186: 181: 177: 173: 168: 164: 112: 111: 106: 100: 99: 94: 88: 87: 85:Cross-platform 82: 76: 75: 72: 71: 55: 53: 51:Stable release 47: 46: 43: 42: 37: 31: 30: 15: 9: 6: 4: 3: 2: 2574: 2563: 2560: 2558: 2555: 2553: 2550: 2548: 2545: 2543: 2540: 2538: 2535: 2534: 2532: 2517: 2514: 2512: 2509: 2507: 2504: 2503: 2502: 2490: 2484: 2481: 2479: 2476: 2474: 2471: 2469: 2466: 2464: 2461: 2459: 2456: 2454: 2451: 2449: 2446: 2444: 2441: 2440: 2438: 2432: 2426: 2423: 2421: 2418: 2416: 2413: 2411: 2408: 2406: 2403: 2401: 2398: 2396: 2393: 2391: 2388: 2386: 2383: 2381: 2378: 2376: 2373: 2371: 2368: 2366: 2363: 2361: 2358: 2356: 2353: 2351: 2348: 2346: 2343: 2341: 2338: 2336: 2333: 2331: 2328: 2326: 2323: 2321: 2318: 2316: 2313: 2311: 2308: 2306: 2303: 2300: 2299: 2294: 2292: 2289: 2288: 2286: 2280: 2274: 2271: 2269: 2266: 2264: 2261: 2259: 2256: 2255: 2253: 2247: 2241: 2238: 2236: 2233: 2231: 2227: 2224: 2222: 2219: 2217: 2214: 2210: 2207: 2205: 2202: 2200: 2197: 2195: 2192: 2191: 2190: 2187: 2185: 2182: 2180: 2177: 2173: 2170: 2169: 2168: 2165: 2161: 2158: 2156: 2153: 2152: 2151: 2148: 2146: 2143: 2141: 2138: 2136: 2133: 2131: 2128: 2124: 2121: 2120: 2119: 2116: 2114: 2111: 2109: 2108:Hershey fonts 2106: 2104: 2101: 2099: 2096: 2094: 2091: 2089: 2086: 2084: 2081: 2079: 2076: 2072: 2069: 2067: 2064: 2062: 2059: 2058: 2057: 2054: 2052: 2049: 2047: 2046:Courier Prime 2044: 2040: 2037: 2036: 2035: 2032: 2030: 2027: 2025: 2022: 2020: 2019:Cascadia Code 2017: 2015: 2012: 2008: 2005: 2004: 2003: 2000: 1998: 1995: 1993: 1990: 1989: 1987: 1983:corporate and 1980: 1976: 1970: 1967: 1965: 1962: 1960: 1957: 1955: 1952: 1950: 1947: 1945: 1941: 1938: 1936: 1933: 1931: 1928: 1926: 1923: 1922: 1920: 1916: 1910: 1907: 1905: 1902: 1900: 1897: 1895: 1892: 1890: 1887: 1885: 1882: 1880: 1877: 1875: 1872: 1870: 1867: 1865: 1862: 1860: 1857: 1855: 1852: 1851: 1849: 1847:and libraries 1843: 1839: 1836: 1829: 1824: 1822: 1817: 1815: 1810: 1809: 1806: 1799: 1796: 1795: 1786: 1782: 1779: 1775: 1773: 1769: 1765: 1762: 1761:0-596-10242-9 1758: 1754: 1751: 1747: 1743: 1740: 1736: 1732: 1728: 1727:0-201-13444-6 1724: 1720: 1716: 1714: 1713:0-201-13438-1 1710: 1706: 1702: 1699: 1698: 1686: 1681: 1674: 1669: 1660: 1649: 1642: 1640: 1637: 1629: 1621: 1615: 1607: 1601: 1593: 1586: 1584: 1575: 1569: 1558: 1554: 1550: 1543: 1536: 1520: 1513: 1507: 1505: 1502: 1496: 1489: 1477: 1473: 1469: 1468:Knuth, Donald 1463: 1455: 1453:0-201-13445-4 1449: 1445: 1438: 1420: 1416: 1412: 1405: 1398: 1394: 1379: 1373: 1369: 1358: 1355: 1353: 1350: 1349: 1343: 1342: 1338: 1334: 1325: 1322: 1319: 1315: 1311: 1307: 1303: 1300: 1297: 1293: 1289: 1285: 1281: 1277: 1276: 1275: 1273: 1272:Bézier curves 1268: 1264: 1260: 1250: 1248: 1168: 1153: 1150: 1148: 1143: 879:"B" 860: 852: 850: 849: 844: 840: 835: 826: 824: 820: 815: 813: 809: 799: 797: 793: 789: 785: 780: 777: 773: 769: 765: 760: 758: 757:cubic splines 748: 744: 729: 668: 663: 661: 657: 653: 652:exponent part 639: 636: 631: 628: 626: 620: 616: 612: 608: 604: 599: 596: 592: 576: 567: 565: 560: 553: 551: 548: 545: 541: 538: 535: 531: 528: 527:Bézier curves 524: 520: 516: 512: 508: 504: 501: 498: 480: 477: 473: 464: 460: 456: 455: 454: 446: 444: 443: 439: 433: 423: 405: 400: 397: 393: 384: 381: 377: 374: 373: 372: 364: 361: 357: 353: 348: 344: 334: 330: 325: 322: 317: 315: 311: 307: 297: 295: 291: 286: 284: 279: 274: 258: 254: 250: 245: 241: 237: 232: 228: 205: 201: 197: 192: 188: 184: 179: 175: 171: 166: 162: 153: 149: 144: 142: 138: 134: 130: 126: 122: 118: 110: 107: 105: 101: 98: 95: 93: 89: 86: 83: 81: 77: 73: 58: 54: 52: 48: 44: 41: 38: 36: 32: 28: 23: 2547:Donald Knuth 2542:Font formats 2478:Google Fonts 2473:Font Library 2463:Font Awesome 2443:Donald Knuth 2415:Theano Didot 2405:OpenDyslexic 2268:Railway Sans 2209:Source Serif 2093:GNU FreeFont 1985:professional 1930:BSD licenses 1878: 1784: 1780: 1767: 1735:needed macro 1718: 1704: 1701:Donald Knuth 1680: 1668: 1659: 1638: 1635: 1628: 1614: 1600: 1568: 1557:the original 1552: 1548: 1535: 1523:. Retrieved 1512: 1506: 1500: 1495: 1487: 1480:. Retrieved 1476:the original 1462: 1443: 1437: 1426:. Retrieved 1414: 1410: 1397: 1377: 1372: 1330: 1296:Latin Modern 1256: 1243: 1228:\otherbeta\ 1166: 1151: 1144: 1141: 1018:% Define pen 867:%mode_setup; 858: 846: 834:Donald Knuth 832: 816: 808:Hermann Zapf 805: 781: 761: 754: 745: 730: 664: 659: 655: 645: 634: 632: 624: 614: 610: 606: 600: 589:(symbolic). 581:(symbolic), 575:alphanumeric 568: 557: 544:raster image 505:Path: as in 452: 440:rather than 436:essentially 435: 429: 403: 401: 392:input/output 388: 370: 367:Output files 349: 345: 332: 328: 326: 320: 318: 313: 305: 303: 287: 275: 145: 137:Donald Knuth 125:raster fonts 116: 115: 40:Donald Knuth 35:Developer(s) 2453:Raph Levien 2448:Ray Larabie 2350:Inconsolata 2335:EB Garamond 2204:Source Sans 2189:Source Code 2150:Nimbus Mono 2145:Nanum fonts 2098:GNU Unifont 2014:Breeze Sans 1959:MIT License 1869:Ghostscript 1482:January 13, 1278:The Polish 1210:\letterbeta 1198:\newcommand 1188:\letterbeta 845:approaches 687:<=>:| 630:equations. 564:first-class 542:Picture: a 459:fixed-point 438:declarative 432:interpreted 418:NNNN, e.g. 129:interpreter 2531:Categories 2434:Groups and 2395:News Cycle 2385:Montserrat 2325:Comic Neue 2305:Asana-Math 2249:Government 2240:Zilla Slab 2216:STIX fonts 2118:Liberation 2051:Doulos SIL 2029:Charis SIL 1859:Fontmatrix 1838:typography 1428:2019-08-09 1389:References 1333:autotracer 1318:Minion Pro 1282:developed 1204:\otherbeta 823:sans-serif 796:sans-serif 507:PostScript 442:imperative 329:proof mode 321:fontmaking 310:resolution 133:PostScript 109:Permissive 57:2.71828182 2420:WenQuanYi 2360:Jomolhari 2330:Cormorant 2284:typefaces 2273:e-Ukraine 2251:typefaces 2066:Open Sans 2024:Cantarell 1889:MetaType1 1854:FontForge 1525:18 August 1521:. Twitter 1310:FontForge 1294:, called 1284:METATYPE1 1024:pencircle 873:beginchar 707:#&@$ 603:equations 523:piecewise 478:− 457:Numeric: 360:DVI files 356:Asymptote 331:: if the 198:− 172:− 2365:Junicode 2263:PT Fonts 2221:Tiresias 2179:Overpass 2130:Literata 2123:Croscore 2113:IBM Plex 1918:Licenses 1904:Graphite 1884:MetaPost 1879:Metafont 1874:HarfBuzz 1864:FreeType 1845:Software 1772:preprint 1685:TeXtrace 1648:Archived 1419:Archived 1357:MetaPost 1346:See also 1341:TeXtrace 1314:MnSymbol 1280:JNS team 1263:MetaPost 1237:document 1222:document 1182:\newfont 764:TrueType 751:Graphics 656:symbolic 559:Metapost 426:Language 352:MetaPost 333:proofing 314:somefont 290:x-height 117:Metafont 20:Metafont 2355:Iosevka 2345:IM Fell 2340:Gentium 2320:Chandas 2184:Selawik 2083:Gentium 1733:(and a 1695:Sources 1673:mftrace 1636:TUGboat 1411:TUGboat 1337:mftrace 1327:output. 1324:MetaFog 1177:article 1131:endchar 1053:rotated 1040:yscaled 1027:xscaled 855:Example 829:History 792:pitches 660:capsule 609:(set), 550:Boolean 463:epsilon 402:In the 341:gftodvi 337:special 104:License 66:2021-01 64: ( 2436:people 2235:Utopia 2226:Ubuntu 2071:Roboto 2007:DejaVu 1992:Andika 1759:  1729:. The 1725:  1711:  1501:17 (4) 1450:  1302:mf2pt1 1230:here. 1217:\begin 1021:pickup 720:, and 681:, and 642:Syntax 625:linear 591:Record 497:Q12.16 148:glyphs 2370:Kochi 2315:Cardo 2291:Amiri 2282:Other 2172:OCR-B 2167:OCR-A 2160:Roman 2135:Lohit 2056:Droid 1894:Pango 1651:(PDF) 1644:(PDF) 1639:16(3) 1560:(PDF) 1545:(PDF) 1422:(PDF) 1407:(PDF) 1364:Notes 1125:cycle 819:serif 784:serif 776:Roman 607:known 595:array 278:macro 119:is a 2425:XITS 2375:Lato 2155:Sans 2140:Luxi 2078:Fira 2061:Noto 1757:ISBN 1739:CTAN 1723:ISBN 1709:ISBN 1527:2018 1484:2016 1448:ISBN 1378:does 1339:and 1288:GUST 1232:\end 1193:beta 1068:draw 788:meta 739:and 593:and 517:, a 410:and 354:and 306:mode 294:meta 283:path 152:stem 92:Type 1909:ICU 1899:TeX 1750:WEB 1267:EPS 1207:}{{ 1137:end 1104:..{ 1098:}.. 839:TeX 802:Use 766:or 741:pt# 737:em# 699:/*\ 667:TeX 571:x2r 515:SVG 511:PDF 465:of 416:dpi 412:.pk 408:.gf 141:TeX 2533:: 2228:, 1942:+ 1703:: 1646:. 1582:^ 1553:16 1551:. 1547:. 1486:. 1413:. 1409:. 1274:. 1214:}} 1191:}{ 1156:mf 1122:.. 1119:z4 1113:z2 1107:z4 1101:z5 1095:z6 1089:z2 1083:z6 1080:.. 1077:z3 1074:.. 1071:z1 1056:45 1048:04 1000:x6 994:x3 982:x5 976:x2 964:x4 958:x1 946:y6 940:y5 934:y4 922:y3 916:y2 910:y1 904:); 894:pt 892:11 886:pt 884:11 743:. 718:{} 716:, 713:, 711:^~ 709:, 705:, 703:!? 701:, 697:, 695:+- 691:‘’ 689:, 677:, 673:, 481:16 445:. 422:. 273:. 2390:M 1981:, 1827:e 1820:t 1813:v 1741:. 1622:. 1608:. 1594:. 1576:. 1529:. 1456:. 1431:. 1415:6 1320:. 1298:. 1239:} 1235:{ 1224:} 1220:{ 1212:B 1201:{ 1195:} 1185:{ 1179:} 1175:{ 1161:; 1134:; 1128:; 1116:} 1110:- 1092:- 1086:{ 1059:; 1050:w 1046:. 1043:0 1037:w 1035:2 1033:. 1030:0 1015:; 1012:w 1009:* 1006:2 1003:= 997:= 991:; 988:w 985:= 979:= 973:; 970:0 967:= 961:= 955:; 952:h 949:= 943:= 937:= 931:; 928:0 925:= 919:= 913:= 901:0 898:, 896:# 890:, 888:# 882:, 876:( 848:e 733:# 726:% 722:. 683:) 679:( 675:; 671:, 648:" 587:r 583:2 579:x 513:/ 509:/ 474:2 259:3 255:y 251:= 246:2 242:y 238:= 233:1 229:y 206:2 202:x 193:3 189:x 185:= 180:1 176:x 167:2 163:x 68:)

Index


Developer(s)
Donald Knuth
Stable release
2.71828182
Operating system
Cross-platform
Type
Computer language
License
Permissive
description language
raster fonts
interpreter
PostScript
Donald Knuth
TeX
glyphs
stem
macro
path
x-height
meta
resolution
MetaPost
Asymptote
DVI files
TeX font metric
input/output
run-length encoding

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.