CINXE.COM

Metafont - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Metafont - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"97892da0-3bfe-4e80-956e-8ae873529530","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Metafont","wgTitle":"Metafont","wgCurRevisionId":1255466797,"wgRevisionId":1255466797,"wgArticleId":44263,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles needing additional references from November 2024","All articles needing additional references","Articles with short description","Short description is different from Wikidata","All articles lacking reliable references","Articles lacking reliable references from September 2022","Articles containing Polish-language text","Free TeX software","Font formats","Donald Knuth","Cross-platform software","Declarative programming languages","Computer-related introductions in 1977"], "wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Metafont","wgRelevantArticleId":44263,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q1457000", "wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.math.styles":"ready","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","ext.scribunto.logs","site","mediawiki.page.ready", "jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Metafont - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Metafont"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Metafont&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Metafont"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Metafont rootpage-Metafont skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Metafont" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Metafont" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Metafont" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Metafont" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Modes_of_operation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Modes_of_operation"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Modes of operation</span> </div> </a> <button aria-controls="toc-Modes_of_operation-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Modes of operation subsection</span> </button> <ul id="toc-Modes_of_operation-sublist" class="vector-toc-list"> <li id="toc-Output_files" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Output_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Output files</span> </div> </a> <ul id="toc-Output_files-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Language" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Language"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Language</span> </div> </a> <button aria-controls="toc-Language-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Language subsection</span> </button> <ul id="toc-Language-sublist" class="vector-toc-list"> <li id="toc-Variables_and_equations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Variables_and_equations"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Variables and equations</span> </div> </a> <ul id="toc-Variables_and_equations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Syntax" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Syntax"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Syntax</span> </div> </a> <ul id="toc-Syntax-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Graphics" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Graphics"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Graphics</span> </div> </a> <ul id="toc-Graphics-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Use" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Use"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Use</span> </div> </a> <ul id="toc-Use-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Example"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Example</span> </div> </a> <ul id="toc-Example-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Producing_PostScript_Type_1_fonts" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Producing_PostScript_Type_1_fonts"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Producing PostScript Type 1 fonts</span> </div> </a> <ul id="toc-Producing_PostScript_Type_1_fonts-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Notes" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Notes"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Notes</span> </div> </a> <ul id="toc-Notes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <button aria-controls="toc-References-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle References subsection</span> </button> <ul id="toc-References-sublist" class="vector-toc-list"> <li id="toc-Sources" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Sources"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.1</span> <span>Sources</span> </div> </a> <ul id="toc-Sources-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Metafont</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 16 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-16" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">16 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Metafont" title="Metafont – Catalan" lang="ca" hreflang="ca" data-title="Metafont" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Metafont" title="Metafont – Czech" lang="cs" hreflang="cs" data-title="Metafont" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Metafont" title="Metafont – German" lang="de" hreflang="de" data-title="Metafont" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/METAFONT" title="METAFONT – Spanish" lang="es" hreflang="es" data-title="METAFONT" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%81%D8%B1%D8%A7%D9%82%D9%84%D9%85" title="فراقلم – Persian" lang="fa" hreflang="fa" data-title="فراقلم" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Metafont" title="Metafont – French" lang="fr" hreflang="fr" data-title="Metafont" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%A9%94%ED%83%80%ED%8F%B0%ED%8A%B8" title="메타폰트 – Korean" lang="ko" hreflang="ko" data-title="메타폰트" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/METAFONT" title="METAFONT – Italian" lang="it" hreflang="it" data-title="METAFONT" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/METAFONT" title="METAFONT – Japanese" lang="ja" hreflang="ja" data-title="METAFONT" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/METAFONT" title="METAFONT – Polish" lang="pl" hreflang="pl" data-title="METAFONT" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/METAFONT" title="METAFONT – Portuguese" lang="pt" hreflang="pt" data-title="METAFONT" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/METAFONT" title="METAFONT – Romanian" lang="ro" hreflang="ro" data-title="METAFONT" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/METAFONT" title="METAFONT – Russian" lang="ru" hreflang="ru" data-title="METAFONT" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Metafont" title="Metafont – Swedish" lang="sv" hreflang="sv" data-title="Metafont" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Metafont" title="Metafont – Ukrainian" lang="uk" hreflang="uk" data-title="Metafont" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/METAFONT" title="METAFONT – Chinese" lang="zh" hreflang="zh" data-title="METAFONT" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1457000#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Metafont" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Metafont" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Metafont"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Metafont&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Metafont&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Metafont"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Metafont&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Metafont&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Metafont" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Metafont" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Metafont&amp;oldid=1255466797" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Metafont&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Metafont&amp;id=1255466797&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMetafont"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMetafont"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Metafont&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Metafont&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:METAFONT" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1457000" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Metafont" title="Special:EditPage/Metafont">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i>&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&amp;q=%22Metafont%22">"Metafont"</a>&#160;–&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?tbm=nws&amp;q=%22Metafont%22+-wikipedia&amp;tbs=ar:1">news</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?&amp;q=%22Metafont%22&amp;tbs=bkt:s&amp;tbm=bks">newspapers</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?tbs=bks:1&amp;q=%22Metafont%22+-wikipedia">books</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?q=%22Metafont%22">scholar</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Metafont%22&amp;acc=on&amp;wc=on">JSTOR</a></span></small></span> <span class="date-container"><i>(<span class="date">November 2024</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Description language used to define rastertype fonts</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Metafont</caption><tbody><tr><td colspan="2" class="infobox-image logo"><span typeof="mw:File"><a href="/wiki/File:METAFONT_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f1/METAFONT_logo.svg/220px-METAFONT_logo.svg.png" decoding="async" width="220" height="35" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f1/METAFONT_logo.svg/330px-METAFONT_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f1/METAFONT_logo.svg/440px-METAFONT_logo.svg.png 2x" data-file-width="250" data-file-height="40" /></a></span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;"><a href="/wiki/E_(mathematical_constant)" title="E (mathematical constant)">2.71828182</a> / January&#160;2021<span class="noprint">&#59;&#32;3&#160;years ago</span><span style="display:none">&#160;(<span class="bday dtstart published updated">2021-01</span>)</span></div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="/wiki/Cross-platform" class="mw-redirect" title="Cross-platform">Cross-platform</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="/wiki/Computer_language" title="Computer language">Computer language</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/Permissive_free_software_license" class="mw-redirect" title="Permissive free software license">Permissive</a></td></tr></tbody></table> <p><b>Metafont</b> is a <a href="/wiki/Page_description_language" title="Page description language">description language</a> used to define <a href="/wiki/Raster_fonts" class="mw-redirect" title="Raster fonts">raster fonts</a>. It is also the name of the <a href="/wiki/Interpreter_(computer_software)" class="mw-redirect" title="Interpreter (computer software)">interpreter</a> that executes Metafont code, generating the bitmap fonts that can be embedded into e.g. <a href="/wiki/PostScript" title="PostScript">PostScript</a>. Metafont was devised by <a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a> as a companion to his <a href="/wiki/TeX" title="TeX">TeX</a> typesetting system. </p><p>One of the characteristics of Metafont is that the points defining the shapes of the <a href="/wiki/Glyph" title="Glyph">glyphs</a>—for example top of a <a href="/wiki/Stem_(typography)" class="mw-redirect" title="Stem (typography)">stem</a>, 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 <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x_{2}-x_{1}=x_{3}-x_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> <mo>&#x2212;<!-- − --></mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msub> <mo>&#x2212;<!-- − --></mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle x_{2}-x_{1}=x_{3}-x_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/2e73d8e88424cc5d3c82396ea624c0fde89b3de9" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:18.315ex; height:2.343ex;" alt="{\displaystyle x_{2}-x_{1}=x_{3}-x_{2}}"></span> 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 <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle y_{1}=y_{2}=y_{3}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>y</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>y</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>y</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle y_{1}=y_{2}=y_{3}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/852ec89e02542a8900f3bf1acb1836483546b3b8" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:12.777ex; height:2.009ex;" alt="{\displaystyle y_{1}=y_{2}=y_{3}}"></span>. </p><p>Metafont is a <a href="/wiki/Macro_(computer_science)" title="Macro (computer science)">macro</a> 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 <a href="/wiki/B%C3%A9zier_cubic" class="mw-redirect" title="Bézier cubic">path</a> construction operations that mostly relieves the user of having to calculate control points. </p><p>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 (<a href="/wiki/X-height" title="X-height">x-height</a>, 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 <a href="/wiki/Meta_(prefix)" title="Meta (prefix)">meta</a> aspect of the system. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Modes_of_operation">Modes of operation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=1" title="Edit section: Modes of operation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 <i>mode</i> in Metafont) and <a href="/wiki/Dots_per_inch" title="Dots per inch">resolution</a> (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 "<i>somefont</i>.mf not found" error message. </p><p>Equally important, but not as common, is running Metafont to generate a font metric (TFM) file; a TFM file is only generated if the <i>fontmaking</i> 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. </p><p>A third way of operating Metafont is <i>proof mode</i>: if the <i>proofing</i> variable is positive then the bitmap font file also contains additional information provided via <code>special</code> commands, in particular the positions and names of points the font designer considered important for the design. If using the separate <code>gftodvi</code> utility to generate enlarged images of the font glyphs, this information from specials is included; point positions are not limited to pixel resolution. </p><p>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. </p><p>Metafont can render any kind of graphical output, not just glyphs. However, <a href="/wiki/MetaPost" title="MetaPost">MetaPost</a> and <a href="/wiki/Asymptote_(vector_graphics_language)" title="Asymptote (vector graphics language)">Asymptote</a> are preferred for mathematical illustrations. Metafont is most commonly invoked without a direct request from the user. <a href="/wiki/DVI_file_format" class="mw-redirect" title="DVI file format">DVI files</a> 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. </p> <div class="mw-heading mw-heading3"><h3 id="Output_files">Output files</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=2" title="Edit section: Output files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Metafont outputs several kinds of files: for a file called NAME.mf, it can output: </p> <ul><li>NAME.NNNNgf – File with raster output at resolution NNNN (2602 by default).</li> <li>NAME.tfm – File with <a href="/wiki/TeX_font_metric" title="TeX font metric">TeX font metric</a> information, which is the information TeX needs. Usually metafont has to be told to generate this file.</li> <li>NAME.log – Log file output from processing</li></ul> <p>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 <a href="/wiki/Input/output" title="Input/output">input/output</a>. The GF and PK formats both employ <a href="/wiki/Run-length_encoding" title="Run-length encoding">run-length encoding</a> 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.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> </p><p>In the <i>TeX Directory Structure</i> standard, filenames are limited to 8+3 characters, so GF and PK files would only have extensions <code>.gf</code> and <code>.pk</code>. Files for different resolutions are kept apart by placing them in separate directories, named <code>dpi</code>NNNN, e.g. <code>dpi300/cmr10.pk</code>. </p> <div class="mw-heading mw-heading2"><h2 id="Language">Language</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=3" title="Edit section: Language"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Metafont language is an <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> language for programs that are <i>essentially <a href="/wiki/Declarative_programming" title="Declarative programming">declarative</a> rather than <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a></i>.<sup id="cite_ref-METAFONTbook_2-0" class="reference"><a href="#cite_note-METAFONTbook-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Variables_and_equations">Variables and equations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=4" title="Edit section: Variables and equations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Variables in Metafont can be of eight different types: </p> <ul><li>Numeric: <a href="/wiki/Fixed-point_arithmetic" title="Fixed-point arithmetic">fixed-point</a> signed numbers with an <a href="/wiki/Machine_epsilon" title="Machine epsilon">epsilon</a> of <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 2^{-16}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mn>2</mn> <mrow class="MJX-TeXAtom-ORD"> <mo>&#x2212;<!-- − --></mo> <mn>16</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 2^{-16}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/382ca217daae8c7e3ab934502a5e758cd390c782" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:4.317ex; height:2.676ex;" alt="{\displaystyle 2^{-16}}"></span>, capped to be less than 4096 (<a href="/wiki/Q_(number_format)" title="Q (number format)">Q12.16</a>). This is the default for variables not declared to be of another type.</li> <li>Pair: a pair of numerics, used primarily for representing points in the plane.</li> <li>Path: as in <a href="/wiki/PostScript" title="PostScript">PostScript</a>/<a href="/wiki/PDF" title="PDF">PDF</a>/<a href="/wiki/Scalable_Vector_Graphics" class="mw-redirect" title="Scalable Vector Graphics">SVG</a>, a <a href="/wiki/Parametric_curve" class="mw-redirect" title="Parametric curve">parametric curve</a> in the plane whose coordinate functions are <a href="/wiki/Piecewise" class="mw-redirect" title="Piecewise">piecewise</a> cubic polynomials. As in those other systems, path segments are encoded as <a href="/wiki/B%C3%A9zier_curve" title="Bézier curve">Bézier curves</a> in terms of knots and control points.</li> <li>Transform: an <a href="/wiki/Affine_transformation" title="Affine transformation">affine transformation</a> of the plane, equivalent to a "(transformation) matrix" in PostScript/PDF.</li> <li>Pen: a convex polygon, representing the shape of a "pen" used for drawing.</li> <li>Picture: a <a href="/wiki/Raster_graphics" title="Raster graphics">raster image</a> with a signed integer value for each pixel.</li> <li><a href="/wiki/Boolean_data_type" title="Boolean data type">Boolean</a></li> <li>String (of 8-bit characters)</li></ul> <p><a href="/wiki/Metapost" class="mw-redirect" title="Metapost">Metapost</a> 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 of variable, although macros do not exist as <a href="/wiki/First-class_citizen" title="First-class citizen">first-class</a> values in Metafont. </p><p>Unusually, the names of variables are not simple tokens, but sequences of symbolic tokens and numeric indices; the variable name <code>x2r</code> is thus not one <a href="/wiki/Alphanumeric" class="mw-redirect" title="Alphanumeric">alphanumeric</a> token, but a sequence of the three tokens <code>x</code> (symbolic), <code>2</code> (numeric), and <code>r</code> (symbolic). <a href="/wiki/Record_(computer_science)" title="Record (computer science)">Record</a> and <a href="/wiki/Array_data_type" class="mw-redirect" title="Array data type">array</a> 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 symbolic token separate (as expected for records). </p><p>A very distinctive feature of Metafont is the use of <a href="/wiki/Equation" title="Equation">equations</a> to define variables. A numeric variable (or component of a pair or transformation variable) may be in the three states <i>known</i> (set), <i>unknown independent</i> (not set), and <i>unknown dependent</i> (not set, but given by a <a href="/wiki/Linear_function_(calculus)" title="Linear function (calculus)">linear expression</a> 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 known. Solving <a href="/wiki/System_of_linear_equations" title="System of linear equations"><i>linear</i> equation systems</a> 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) equations. </p><p>An exception to the above is the class of <i>internal quantity</i> 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. </p> <div class="mw-heading mw-heading3"><h3 id="Syntax">Syntax</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=5" title="Edit section: Syntax"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Metafont has numeric and string constant tokens with mainstream syntaxes; strings are delimited by <code>"</code> quotes, numeric constants can have decimals but not an <a href="/wiki/Scientific_notation" title="Scientific notation">exponent part</a>. All other tokens are classified as <i>symbolic</i>, 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 <i>capsule</i> tokens, which are effectively constant value tokens of arbitrary type; in the source code those appear as symbolic tokens. </p><p>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 <a href="/wiki/TeX" title="TeX">TeX</a>, Metafont has fixed character classes. The characters <code>,</code>, <code>;</code>, <code>(</code>, and <code>)</code> are "loners" and only form single character tokens. For the character classes <code>&lt;=&gt;:|</code>, <code>‘’</code> (single quotes), <code>+-</code>, <code>/*\</code>, <code>!?</code>, <code>#&amp;@$</code>, <code>^~</code>, <code>[</code>, <code>]</code>, <code>{}</code>, and <code>.</code>, 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. <code>%</code> starts a comment lasting until end of line. </p><p>A notable application of these rules is that <code>#</code> is frequently appearing as part of variable names in Metafont code, e.g. <code>em#</code> and <code>pt#</code>. </p><p>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 around certain kinds of macro arguments. </p> <div class="mw-heading mw-heading3"><h3 id="Graphics">Graphics</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=6" title="Edit section: Graphics"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Curves in Metafont are defined as <a href="/wiki/Cubic_spline" class="mw-redirect" title="Cubic spline">cubic splines</a>, rather than quadratic, for greater versatility at the cost of more complex arithmetic.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> </p><p>Unlike more common outline font formats (such as <a href="/wiki/TrueType" title="TrueType">TrueType</a> or <a href="/wiki/PostScript#Font_handling" title="PostScript">PostScript Type 1</a>), 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 <a href="/wiki/Computer_Modern" title="Computer Modern">Computer Modern</a> 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 <a href="/wiki/Roman_type" title="Roman type">Roman</a> 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. </p><p>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, <a href="/wiki/Serif" title="Serif">serif</a> size, and so forth as input parameters in each glyph definition (which then define not a single font, but a <a href="/wiki/Meta_(prefix)" title="Meta (prefix)">meta</a>-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 <a href="/wiki/Pitch_(typewriter)" title="Pitch (typewriter)">pitches</a> 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 <a href="/wiki/Sans-serif" title="Sans-serif">sans-serif</a> fonts are defined using essentially the same Metafont file as the Roman font, but with different global parameters. </p> <div class="mw-heading mw-heading2"><h2 id="Use">Use</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=7" title="Edit section: Use"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>While well-known type designers, such as <a href="/wiki/Hermann_Zapf" title="Hermann Zapf">Hermann Zapf</a>, 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."<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> <a href="/wiki/Jonathan_Hoefler" title="Jonathan Hoefler">Jonathan Hoefler</a> 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."<sup id="cite_ref-skeletal_forms_5-0" class="reference"><a href="#cite_note-skeletal_forms-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup><sup class="noprint Inline-Template noprint noexcerpt Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:NOTRS" class="mw-redirect" title="Wikipedia:NOTRS"><span title="This is literally just a tweet. (September 2022)">better&#160;source&#160;needed</span></a></i>&#93;</sup> </p><p>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 <a href="/wiki/Serif" title="Serif">serif</a> font slowly transitioning into a <a href="/wiki/Sans-serif" title="Sans-serif">sans-serif</a> design over the course of a text.<sup id="cite_ref-The_Concept_of_a_Meta-Font_6-0" class="reference"><a href="#cite_note-The_Concept_of_a_Meta-Font-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=8" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a> 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 similar to that of <a href="/wiki/TeX" title="TeX">TeX</a>, where the number <a href="/wiki/Asymptotically" class="mw-redirect" title="Asymptotically">asymptotically</a> approaches <i><a href="/wiki/E_(mathematical_constant)" title="E (mathematical constant)">e</a></i> with each revision.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Example">Example</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=9" title="Edit section: Example"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The following example creates a closed beanlike shape for the character "B" of a font: </p> <div class="mw-highlight mw-highlight-lang-matlab mw-content-ltr" dir="ltr"><pre><span></span><span class="c">%file name: beta.mf</span> <span class="c">%mode_setup;</span> <span class="c">% Define a beanlike shape for the character B</span> <span class="n">beginchar</span><span class="p">(</span><span class="s">&quot;B&quot;</span><span class="p">,</span>11<span class="n">pt</span>#<span class="p">,</span>11<span class="n">pt</span>#<span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="w"> </span><span class="c">% Setup coordinates as an equation system</span> <span class="w"> </span><span class="n">y1</span><span class="p">=</span><span class="n">y2</span><span class="p">=</span><span class="n">y3</span><span class="p">=</span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">y4</span><span class="p">=</span><span class="n">y5</span><span class="p">=</span><span class="n">y6</span><span class="p">=</span><span class="n">h</span><span class="p">;</span> <span class="w"> </span><span class="n">x1</span><span class="p">=</span><span class="n">x4</span><span class="p">=</span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">x2</span><span class="p">=</span><span class="n">x5</span><span class="p">=</span><span class="n">w</span><span class="p">;</span> <span class="w"> </span><span class="n">x3</span><span class="p">=</span><span class="n">x6</span><span class="p">=</span><span class="mi">2</span><span class="o">*</span><span class="n">w</span><span class="p">;</span> <span class="w"> </span><span class="c">% Define pen</span> <span class="w"> </span><span class="n">pickup</span><span class="w"> </span><span class="n">pencircle</span><span class="w"> </span><span class="n">xscaled</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span>2<span class="n">w</span><span class="w"> </span><span class="n">yscaled</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span>04<span class="n">w</span><span class="w"> </span><span class="n">rotated</span><span class="w"> </span><span class="mi">45</span><span class="p">;</span> <span class="w"> </span><span class="c">% Draw the character curve</span> <span class="w"> </span><span class="c">% z1 is the same as (x1, y1)</span> <span class="w"> </span><span class="n">draw</span><span class="w"> </span><span class="n">z1</span><span class="p">..</span><span class="n">z3</span><span class="p">..</span><span class="n">z6</span><span class="p">{</span><span class="n">z2</span><span class="o">-</span><span class="n">z6</span><span class="p">}..</span><span class="n">z5</span><span class="p">..{</span><span class="n">z4</span><span class="o">-</span><span class="n">z2</span><span class="p">}</span><span class="n">z4</span><span class="p">..</span><span class="n">cycle</span><span class="p">;</span> <span class="n">endchar</span><span class="p">;</span> <span class="k">end</span> </pre></div> <p>This yields the following glyph: </p><p><span typeof="mw:File"><a href="/wiki/File:Metafont-example-output.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Metafont-example-output.svg/284px-Metafont-example-output.svg.png" decoding="async" width="284" height="124" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Metafont-example-output.svg/426px-Metafont-example-output.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Metafont-example-output.svg/568px-Metafont-example-output.svg.png 2x" data-file-width="568" data-file-height="247" /></a></span> </p><p>The above example will be processed with a command line such as:<sup id="cite_ref-grandsir_8-0" class="reference"><a href="#cite_note-grandsir-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span></span>mf<span class="w"> </span><span class="s1">&#39;\mode=ljfour; mode_setup; input beta.mf&#39;</span><span class="p">;</span> gftopk<span class="w"> </span>beta.600gf<span class="w"> </span>beta.600pk </pre></div> <p>Then it can be used in a LaTeX file such as the following<sup id="cite_ref-grandsir_8-1" class="reference"><a href="#cite_note-grandsir-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> (all files should dwell in the same directory, or the TeX system should be informed about them using appropriate methods): </p> <div class="mw-highlight mw-highlight-lang-latex mw-content-ltr" dir="ltr"><pre><span></span><span class="k">\documentclass</span><span class="nb">{</span>article<span class="nb">}</span> <span class="k">\newfont</span><span class="nb">{</span><span class="k">\letterbeta</span><span class="nb">}{</span>beta<span class="nb">}</span> <span class="k">\newcommand</span><span class="nb">{</span><span class="k">\otherbeta</span><span class="nb">}{{</span><span class="k">\letterbeta</span> B<span class="nb">}}</span> <span class="k">\begin</span><span class="nb">{</span>document<span class="nb">}</span> Let&#39;s try having a strange <span class="k">\otherbeta\ </span>here. <span class="k">\end</span><span class="nb">{</span>document<span class="nb">}</span> </pre></div> <p>The resulting PDF file should look like this: <span typeof="mw:File"><a href="/wiki/File:Tex_mf_beta.pdf" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/Tex_mf_beta.pdf/page1-187px-Tex_mf_beta.pdf.jpg" decoding="async" width="187" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/Tex_mf_beta.pdf/page1-281px-Tex_mf_beta.pdf.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/66/Tex_mf_beta.pdf/page1-374px-Tex_mf_beta.pdf.jpg 2x" data-file-width="372" data-file-height="29" /></a></span> </p> <div class="mw-heading mw-heading2"><h2 id="Producing_PostScript_Type_1_fonts">Producing PostScript Type 1 fonts</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=10" title="Edit section: Producing PostScript Type 1 fonts"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are several tools for converting Metafont programs to <a href="/wiki/PostScript_Type_1" class="mw-redirect" title="PostScript Type 1">PostScript Type 1</a> fonts. Most make use of <a href="/wiki/MetaPost" title="MetaPost">MetaPost</a>'s ability to convert a subset of Metafont's language into <a href="/wiki/Encapsulated_PostScript" title="Encapsulated PostScript">EPS</a> 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 <a href="/wiki/B%C3%A9zier_curve" title="Bézier curve">Bézier curves</a>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>note 1<span class="cite-bracket">&#93;</span></a></sup> </p> <ul><li>The Polish <a href="/w/index.php?title=JNS_team&amp;action=edit&amp;redlink=1" class="new" title="JNS team (page does not exist)">JNS team</a> developed <a href="/wiki/METATYPE1" class="mw-redirect" title="METATYPE1">METATYPE1</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> (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 <a href="/wiki/TeX" title="TeX">GUST</a> typeface foundry to produce a modernized and extended variant of <a href="/wiki/Computer_Modern" title="Computer Modern">Computer Modern</a>, called <a href="/wiki/Latin_Modern" class="mw-redirect" title="Latin Modern">Latin Modern</a>.</li> <li><a href="/w/index.php?title=Mf2pt1&amp;action=edit&amp;redlink=1" class="new" title="Mf2pt1 (page does not exist)">mf2pt1</a>,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> which is also based on Metapost, was developed by Scott Pakin with some contributions from <a href="/w/index.php?title=Werner_Lemberg&amp;action=edit&amp;redlink=1" class="new" title="Werner Lemberg (page does not exist)">Werner Lemberg</a>. 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 <a href="/wiki/FontForge" title="FontForge">FontForge</a>, 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 <a href="/w/index.php?title=MnSymbol&amp;action=edit&amp;redlink=1" class="new" title="MnSymbol (page does not exist)">MnSymbol</a> mathematical font developed by Achim Blumensath; MnSymbol was designed as a companion to <a href="/wiki/Minion_(typeface)" title="Minion (typeface)">Minion Pro</a>.</li> <li><a href="/w/index.php?title=MetaFog&amp;action=edit&amp;redlink=1" class="new" title="MetaFog (page does not exist)">MetaFog</a><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup> 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 output.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup></li></ul> <p>The common approach to generate Type 1 fonts with pen strokes remains to generate a high-resolution bitmap and then use an <a href="/wiki/Autotracer" class="mw-redirect" title="Autotracer">autotracer</a>, implemented by packages such as <a href="/w/index.php?title=Mftrace&amp;action=edit&amp;redlink=1" class="new" title="Mftrace (page does not exist)">mftrace</a><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> and <a href="/w/index.php?title=TeXtrace&amp;action=edit&amp;redlink=1" class="new" title="TeXtrace (page does not exist)">TeXtrace</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=11" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Ikarus_(typography_software)" title="Ikarus (typography software)">Ikarus (typography software)</a></li> <li><a href="/wiki/MetaPost" title="MetaPost">MetaPost</a>, a vector drawing language derived from Metafont</li></ul> <div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=12" title="Edit section: Notes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text">Technically, Metafont <i>does</i> 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 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.</span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=13" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239543626"><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFRokicki1985" class="citation journal cs1">Rokicki, Tomas (1985). <a rel="nofollow" class="external text" href="https://www.tug.org/TUGboat/tb06-3/tb13pk.pdf">"Packed (PK) Font File Format"</a> <span class="cs1-format">(PDF)</span>. <i>TUGboat</i>. <b>6</b> (3): 115–120. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111106100403/http://tug.org/TUGboat/tb06-3/tb13pk.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2011-11-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-08-09</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=TUGboat&amp;rft.atitle=Packed+%28PK%29+Font+File+Format&amp;rft.volume=6&amp;rft.issue=3&amp;rft.pages=115-120&amp;rft.date=1985&amp;rft.aulast=Rokicki&amp;rft.aufirst=Tomas&amp;rft_id=https%3A%2F%2Fwww.tug.org%2FTUGboat%2Ftb06-3%2Ftb13pk.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-METAFONTbook-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-METAFONTbook_2-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKnuth1986" class="citation book cs1">Knuth, Donald (1986). <i>The METAFONTbook</i>. Addison Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-201-13445-4" title="Special:BookSources/0-201-13445-4"><bdi>0-201-13445-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=The+METAFONTbook&amp;rft.pub=Addison+Wesley&amp;rft.date=1986&amp;rft.isbn=0-201-13445-4&amp;rft.aulast=Knuth&amp;rft.aufirst=Donald&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKnuth2000" class="citation interview cs1"><a href="/wiki/Donald_Knuth" title="Donald Knuth">Knuth, Donald</a> (January 25, 2000). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090122043044/http://www.advogato.org/article/28.html">"Interview: Donald E. Knuth"</a> (Interview). Interviewed by Advogato. Archived from <a rel="nofollow" class="external text" href="http://www.advogato.org/article/28.html">the original</a> on January 22, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">January 13,</span> 2016</span>. <q>...the mathematics is really simple for a quadratic. The corresponding thing for a cubic is six times as complicated...</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Interview%3A+Donald+E.+Knuth&amp;rft.date=2000-01-25&amp;rft.aulast=Knuth&amp;rft.aufirst=Donald&amp;rft_id=http%3A%2F%2Fwww.advogato.org%2Farticle%2F28.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">CSTUG, Charles University, Prague, March 1996, Questions and Answers with Prof. Donald E. Knuth, reproduced in TUGboat <b>17 (4)</b> (1996), 355–67. Citation is from page 361. Available online at <a rel="nofollow" class="external autonumber" href="http://www.tug.org/TUGboat/Articles/tb17-4/tb53knuc.pdf">[1]</a><i></i></span> </li> <li id="cite_note-skeletal_forms-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-skeletal_forms_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHoefler" class="citation web cs1">Hoefler, Jonathan. <a rel="nofollow" class="external text" href="https://twitter.com/HoeflerCo/status/655557339987226624">"Knuth's idea that letters start with skeletal forms is flawed. But his work is important and had lasting impact"</a>. Twitter<span class="reference-accessdate">. Retrieved <span class="nowrap">18 August</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Knuth%27s+idea+that+letters+start+with+skeletal+forms+is+flawed.+But+his+work+is+important+and+had+lasting+impact.&amp;rft.pub=Twitter&amp;rft.aulast=Hoefler&amp;rft.aufirst=Jonathan&amp;rft_id=https%3A%2F%2Ftwitter.com%2FHoeflerCo%2Fstatus%2F655557339987226624&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-The_Concept_of_a_Meta-Font-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-The_Concept_of_a_Meta-Font_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKnuth1982" class="citation journal cs1">Knuth, Donald (1982). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200707233644/https://s3-us-west-2.amazonaws.com/visiblelanguage/pdf/16.1/the-concept-of-a-meta-font.pdf">"The Concept of a Meta-Font"</a> <span class="cs1-format">(PDF)</span>. <i>Visible Language</i>. <b>16</b> (1): 3–27. Archived from <a rel="nofollow" class="external text" href="https://s3-us-west-2.amazonaws.com/visiblelanguage/pdf/16.1/the-concept-of-a-meta-font.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2020-07-07.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Visible+Language&amp;rft.atitle=The+Concept+of+a+Meta-Font&amp;rft.volume=16&amp;rft.issue=1&amp;rft.pages=3-27&amp;rft.date=1982&amp;rft.aulast=Knuth&amp;rft.aufirst=Donald&amp;rft_id=https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fvisiblelanguage%2Fpdf%2F16.1%2Fthe-concept-of-a-meta-font.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www-cs-faculty.stanford.edu/~uno/abcde.html#bugs">"Knuth: Computers and Typesetting"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Knuth%3A+Computers+and+Typesetting&amp;rft_id=http%3A%2F%2Fwww-cs-faculty.stanford.edu%2F~uno%2Fabcde.html%23bugs&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-grandsir-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-grandsir_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-grandsir_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChristophe_Grandsir" class="citation web cs1">Christophe Grandsir. <a rel="nofollow" class="external text" href="http://metafont.tutorial.free.fr/">"METAFONT Tutorial"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=METAFONT+Tutorial&amp;rft.au=Christophe+Grandsir&amp;rft_id=http%3A%2F%2Fmetafont.tutorial.free.fr%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ctan.org/tex-archive/fonts/utilities/metatype1/">"CTAN: tex-archive/fonts/utilities/metatype1"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=CTAN%3A+tex-archive%2Ffonts%2Futilities%2Fmetatype1&amp;rft_id=http%3A%2F%2Fwww.ctan.org%2Ftex-archive%2Ffonts%2Futilities%2Fmetatype1%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ctan.org/tex-archive/support/mf2pt1/">"CTAN: tex-archive/support/mf2pt1"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=CTAN%3A+tex-archive%2Fsupport%2Fmf2pt1&amp;rft_id=http%3A%2F%2Fwww.ctan.org%2Ftex-archive%2Fsupport%2Fmf2pt1%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.tug.org/TUGboat/Articles/tb16-3/tb48kinc.pdf">"R. J. Kinch, "MetaFog: converting Metafont shapes to contours", <i>TUGboat</i> <b>16(3)</b>, 233–43 (1995)"</a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20001005030023/http://www.tug.org/TUGboat/Articles/tb16-3/tb48kinc.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2000-10-05.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=R.+J.+Kinch%2C+%22MetaFog%3A+converting+Metafont+shapes+to+contours%22%2C+TUGboat+16%283%29%2C+233%E2%80%9343+%281995%29&amp;rft_id=http%3A%2F%2Fwww.tug.org%2FTUGboat%2FArticles%2Ftb16-3%2Ftb48kinc.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMetafont" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">K. Píška, 2004</span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://lilypond.org/mftrace/">mftrace</a> – 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'.</span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://pts.szit.bme.hu/textrace/">TeXtrace</a> – 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.</span> </li> </ol></div></div> <div class="mw-heading mw-heading3"><h3 id="Sources">Sources</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=14" title="Edit section: Sources"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a>: <i>Metafont: The Program</i>, Addison-Wesley 1986. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-201-13438-1" title="Special:BookSources/0-201-13438-1">0-201-13438-1</a></li> <li>Donald Knuth: <i>The Metafontbook</i>, Addison-Wesley 1986. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-201-13444-6" title="Special:BookSources/0-201-13444-6">0-201-13444-6</a> . The <a rel="nofollow" class="external text" href="http://www.ctan.org/tex-archive/systems/knuth/dist/mf/mfbook.tex">source code of the book in TeX</a> (and a <a rel="nofollow" class="external text" href="http://www.ctan.org/tex-archive/systems/knuth/dist/lib/manmac.tex">needed macro</a>) is available online on <a href="/wiki/CTAN" title="CTAN">CTAN</a>.</li> <li>Donald Knuth: The <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110927042453/http://www.tex.ac.uk/ctan/systems/knuth/dist/mf/mf.web">Metafont source code</a> is written in the <a href="/wiki/WEB" class="mw-redirect" title="WEB">WEB</a> programming language, and includes very extensive documentation about the algorithms used in Metafont.</li> <li>Yannis Haralambous, "Fonts and Encodings", O'Reilly 2007, <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-596-10242-9" title="Special:BookSources/0-596-10242-9">0-596-10242-9</a>, Appendix F: "METAFONT and its derivatives"</li> <li>K. Píška, "Creating Type 1 fonts from Metafont sources: comparison of tools, techniques and results", in <i>TeX, XML, and Digital Typography</i> (Springer-Verlag, Berlin, 2004), Lect. Notes Comput. Sci., Vol. 3130, pp.&#160;240–56. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170721213643/http://www-hep2.fzu.cz/~piska/TUG2004/piskatb2.pdf">preprint</a></li> <li>Hofstadter, Douglas R., <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200707233646/https://s3-us-west-2.amazonaws.com/visiblelanguage/pdf/V16N4_1982_E.pdf">"Metafont, Metamathematics, and Metaphysics: Comments on Donald Knuth's Article 'The Concept of a Meta-Font'"</a> <i>Visible Language</i>, Vol. XVI no. 4, pp.&#160;309–338 (republished in Hofstadter's book <i>Metamagical Themas</i>, NY: Basic Books, 1985)</li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Metafont&amp;action=edit&amp;section=15" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://metafont.tutorial.free.fr/downloads/mftut.pdf">The Metafont Tutorial</a> (PDF). Christophe Grandsire, 2004.</li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Free_and_open-source_typography" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Free_and_open-source_typography" title="Template:Free and open-source typography"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Free_and_open-source_typography" title="Template talk:Free and open-source typography"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Free_and_open-source_typography" title="Special:EditPage/Template:Free and open-source typography"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Free_and_open-source_typography" style="font-size:114%;margin:0 4em"><a href="/wiki/Free_and_open-source_software" title="Free and open-source software">Free and open-source</a> <a href="/wiki/Typography" title="Typography">typography</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software<br />and libraries</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/FontForge" title="FontForge">FontForge</a></li> <li><a href="/wiki/Fontmatrix" title="Fontmatrix">Fontmatrix</a></li> <li><a href="/wiki/FreeType" title="FreeType">FreeType</a></li> <li><a href="/wiki/Ghostscript" title="Ghostscript">Ghostscript</a></li> <li><a href="/wiki/HarfBuzz" title="HarfBuzz">HarfBuzz</a></li> <li><a class="mw-selflink selflink">Metafont</a></li> <li><a href="/wiki/MetaPost" title="MetaPost">MetaPost</a></li> <li><a href="/wiki/MetaType1" title="MetaType1">MetaType1</a></li> <li><a href="/wiki/Pango" title="Pango">Pango</a></li> <li><a href="/wiki/TeX" title="TeX">TeX</a></li> <li><a href="/wiki/Graphite_(smart_font_technology)" title="Graphite (smart font technology)">Graphite</a></li> <li><a href="/wiki/International_Components_for_Unicode" title="International Components for Unicode">ICU</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Licenses</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apache_License" title="Apache License">Apache License</a></li> <li><a href="/wiki/BSD_licenses" title="BSD licenses">BSD licenses</a></li> <li><a href="/wiki/Creative_Commons_license" title="Creative Commons license">Creative Commons licenses</a></li> <li><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a> + <a href="/wiki/GPL_font_exception" title="GPL font exception">GPL font exception</a></li> <li><a href="/wiki/GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">GNU Lesser General Public License</a></li> <li><a href="/wiki/LaTeX_Project_Public_License" title="LaTeX Project Public License">LaTeX Project Public License</a></li> <li><a href="/wiki/MIT_License" title="MIT License">MIT License</a></li> <li><a href="/wiki/SIL_Open_Font_License" title="SIL Open Font License">SIL Open Font License</a></li> <li><a href="/wiki/Ubuntu_(typeface)#Ubuntu_Font_Licence" title="Ubuntu (typeface)">Ubuntu Font Licence</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Operating_system" title="Operating system">Operating system</a>,<br />corporate and<br />professional</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Andika_(typeface)" title="Andika (typeface)">Andika</a></li> <li><a href="/wiki/Bitstream_Charter" title="Bitstream Charter">Bitstream Charter</a></li> <li><a href="/wiki/Bitstream_Vera" title="Bitstream Vera">Bitstream Vera</a> <ul><li><a href="/wiki/DejaVu_fonts" title="DejaVu fonts">DejaVu</a></li></ul></li> <li><a href="/wiki/Breeze_Sans" title="Breeze Sans">Breeze Sans</a></li> <li><a href="/wiki/Cascadia_Code" title="Cascadia Code">Cascadia Code</a></li> <li><a href="/wiki/Cantarell_(typeface)" title="Cantarell (typeface)">Cantarell</a></li> <li><a href="/wiki/Charis_SIL" title="Charis SIL">Charis SIL</a></li> <li><a href="/wiki/Computer_Modern" title="Computer Modern">Computer Modern</a> <ul><li><a href="/wiki/Concrete_Roman" title="Concrete Roman">Concrete Roman</a></li></ul></li> <li><a href="/wiki/Courier_Prime" class="mw-redirect" title="Courier Prime">Courier Prime</a></li> <li><a href="/wiki/Doulos_SIL" title="Doulos SIL">Doulos SIL</a></li> <li><a href="/wiki/Droid_(typeface)" title="Droid (typeface)">Droid</a> <ul><li><a href="/wiki/Noto_fonts" title="Noto fonts">Noto</a></li> <li><a href="/wiki/Open_Sans" title="Open Sans">Open Sans</a></li> <li><a href="/wiki/Roboto" title="Roboto">Roboto</a></li></ul></li> <li><a href="/wiki/Fira_(typeface)" title="Fira (typeface)">Fira</a></li> <li><a href="/wiki/Gentium" title="Gentium">Gentium</a></li> <li><a href="/wiki/Ghostscript#Free_fonts" title="Ghostscript">Ghostscript fonts</a></li> <li><a href="/wiki/GNU_FreeFont" title="GNU FreeFont">GNU FreeFont</a></li> <li><a href="/wiki/GNU_Unifont" title="GNU Unifont">GNU Unifont</a></li> <li><a href="/wiki/Go_(programming_language)#History" title="Go (programming language)">Go and Go Mono</a></li> <li><a href="/wiki/Hershey_fonts" title="Hershey fonts">Hershey fonts</a></li> <li><a href="/wiki/IBM_Plex" title="IBM Plex">IBM Plex</a></li> <li><a href="/wiki/Liberation_fonts" title="Liberation fonts">Liberation</a> <ul><li><a href="/wiki/Croscore_fonts" title="Croscore fonts">Croscore</a></li></ul></li> <li><a href="/wiki/Literata" title="Literata">Literata</a></li> <li><a href="/wiki/Lohit_fonts" title="Lohit fonts">Lohit</a></li> <li><a href="/wiki/Luxi_fonts" title="Luxi fonts">Luxi</a></li> <li><a href="/wiki/Nanum_fonts" title="Nanum fonts">Nanum fonts</a></li> <li><a href="/wiki/Nimbus_Mono_L" title="Nimbus Mono L">Nimbus Mono</a> <ul><li><a href="/wiki/Nimbus_Sans" title="Nimbus Sans">Sans</a></li> <li><a href="/wiki/Nimbus_Roman_No._9_L" title="Nimbus Roman No. 9 L">Roman</a></li></ul></li> <li><a href="/wiki/OCR-A" title="OCR-A">OCR-A</a> <ul><li><a href="/wiki/OCR-B" title="OCR-B">OCR-B</a></li></ul></li> <li><a href="/wiki/Overpass_(typeface)" title="Overpass (typeface)">Overpass</a></li> <li><a href="/wiki/Segoe#Selawik" title="Segoe">Selawik</a></li> <li><a href="/wiki/Source_Code_Pro" title="Source Code Pro">Source Code</a> <ul><li><a href="/wiki/Source_Han_Sans" title="Source Han Sans">Source Han Sans</a></li> <li><a href="/wiki/Source_Han_Serif" title="Source Han Serif">Source Han Serif</a></li> <li><a href="/wiki/Source_Sans" title="Source Sans">Source Sans</a></li> <li><a href="/wiki/Source_Serif" title="Source Serif">Source Serif</a></li></ul></li> <li><a href="/wiki/STIX_Fonts_project" title="STIX Fonts project">STIX fonts</a></li> <li><a href="/wiki/Tiresias_(typeface)" title="Tiresias (typeface)">Tiresias</a></li> <li><a href="/wiki/Ubuntu_(typeface)" title="Ubuntu (typeface)">Ubuntu</a>, <a href="/wiki/Ubuntu_Titling" title="Ubuntu Titling">Ubuntu Titling</a></li> <li><a href="/wiki/Utopia_(typeface)" title="Utopia (typeface)">Utopia</a></li> <li><a href="/wiki/Zilla_Slab" title="Zilla Slab">Zilla Slab</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Government<br />typefaces</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/National_Fonts" title="National Fonts">National Fonts</a></li> <li><a href="/wiki/PT_Fonts" title="PT Fonts">PT Fonts</a></li> <li><a href="/wiki/Johnston_(typeface)#Railway_Sans" title="Johnston (typeface)">Railway Sans</a></li> <li><a href="/wiki/E-Ukraine" title="E-Ukraine">e-Ukraine</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other<br />typefaces</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Amiri_(typeface)" title="Amiri (typeface)">Amiri</a></li> <li><span title="Polish-language text"><i lang="pl"><a href="/wiki/Antykwa_P%C3%B3%C5%82tawskiego" title="Antykwa Półtawskiego">Antykwa Półtawskiego</a></i></span></li> <li><a href="/wiki/Asana-Math" title="Asana-Math">Asana-Math</a></li> <li><a href="/wiki/Atkinson_Hyperlegible" title="Atkinson Hyperlegible">Atkinson Hyperlegible</a></li> <li><a href="/wiki/Bembo#Digitisations_and_derivatives" title="Bembo">Cardo</a></li> <li><a href="/wiki/Chandas_(typeface)" title="Chandas (typeface)">Chandas</a></li> <li><a href="/wiki/Comic_Neue" title="Comic Neue">Comic Neue</a></li> <li><a href="/wiki/Garamond#Cormorant" title="Garamond">Cormorant</a></li> <li><a href="/wiki/EB_Garamond" title="EB Garamond">EB Garamond</a></li> <li><a href="/wiki/Gentium" title="Gentium">Gentium</a></li> <li><a href="/wiki/History_of_Western_typography#Fell_types" title="History of Western typography">IM Fell</a></li> <li><a href="/wiki/Inconsolata" title="Inconsolata">Inconsolata</a></li> <li><a href="/wiki/Iosevka" title="Iosevka">Iosevka</a></li> <li><a href="/wiki/Jomolhari_(typeface)" title="Jomolhari (typeface)">Jomolhari</a></li> <li><a href="/wiki/Junicode" title="Junicode">Junicode</a></li> <li><a href="/wiki/Kochi_(font)" title="Kochi (font)">Kochi</a></li> <li><a href="/wiki/Lato_(typeface)" title="Lato (typeface)">Lato</a></li> <li><a href="/wiki/Linux_Libertine" title="Linux Libertine">Linux Libertine</a></li> <li><a href="/wiki/Montserrat_(typeface)" title="Montserrat (typeface)">Montserrat</a></li> <li><a href="/wiki/M%2B_FONTS" title="M+ FONTS">M<sup>+</sup></a></li> <li><a href="/wiki/News_Gothic" title="News Gothic">News Cycle</a></li> <li><a href="/wiki/Baskerville" title="Baskerville">Open Baskerville</a></li> <li><a href="/wiki/OpenDyslexic" title="OpenDyslexic">OpenDyslexic</a></li> <li><a href="/wiki/Bank_Gothic" title="Bank Gothic">Squarish Sans CT</a></li> <li><a href="/wiki/Theano_Didot" title="Theano Didot">Theano Didot</a></li> <li><a href="/wiki/WenQuanYi" title="WenQuanYi">WenQuanYi</a></li> <li><a href="/wiki/XITS_font_project" title="XITS font project">XITS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Groups and<br />people</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Donald_Knuth" title="Donald Knuth">Donald Knuth</a></li> <li><a href="/wiki/Ray_Larabie" title="Ray Larabie">Ray Larabie</a></li> <li><a href="/wiki/Raph_Levien" title="Raph Levien">Raph Levien</a></li> <li><a href="/wiki/Behdad_Esfahbod" title="Behdad Esfahbod">Behdad Esfahbod</a></li> <li><a href="/wiki/Font_Awesome" title="Font Awesome">Font Awesome</a></li> <li><a href="/wiki/Greek_Font_Society" title="Greek Font Society">Greek Font Society</a></li> <li><a href="/wiki/Font_Library" title="Font Library">Font Library</a></li> <li><a href="/wiki/Google_Fonts" title="Google Fonts">Google Fonts</a></li> <li><a href="/wiki/SIL_International" title="SIL International">SIL International</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div><span class="nowrap"><span class="noviewer" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/28px-Free_and_open-source_software_logo_%282009%29.svg.png" decoding="async" width="28" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/42px-Free_and_open-source_software_logo_%282009%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/56px-Free_and_open-source_software_logo_%282009%29.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span> </span><a href="/wiki/Portal:Free_and_open-source_software" title="Portal:Free and open-source software">Free and open-source software&#32;portal</a> <ul><li><a href="/wiki/Open-source_Unicode_typefaces" title="Open-source Unicode typefaces">Open-source Unicode typefaces</a></li> <li><a href="/wiki/Category:Open-source_typefaces" title="Category:Open-source typefaces">List of open source typefaces</a></li> <li><a href="/wiki/Category:Free_software_Unicode_typefaces" title="Category:Free software Unicode typefaces">List of free software Unicode typefaces</a></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐5c59558b9d‐rddl4 Cached time: 20241130124739 Cache expiry: 40351 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.686 seconds Real time usage: 0.955 seconds Preprocessor visited node count: 2606/1000000 Post‐expand include size: 54840/2097152 bytes Template argument size: 3499/2097152 bytes Highest expansion depth: 26/100 Expensive parser function count: 9/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 61785/5000000 bytes Lua time usage: 0.446/10.000 seconds Lua memory usage: 15314018/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 808.515 1 -total 34.21% 276.564 1 Template:Free_and_open-source_typography 33.86% 273.774 1 Template:Navbox 23.68% 191.488 2 Template:Infobox 19.91% 160.988 2 Template:Reflist 19.68% 159.100 1 Template:Lang 17.92% 144.898 1 Template:Infobox_software 12.65% 102.310 2 Template:Cite_journal 12.50% 101.060 1 Template:More_citations_needed 10.01% 80.966 1 Template:Ambox --> <!-- Saved in parser cache with key enwiki:pcache:idhash:44263-0!canonical and timestamp 20241130124739 and revision id 1255466797. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&amp;useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Metafont&amp;oldid=1255466797">https://en.wikipedia.org/w/index.php?title=Metafont&amp;oldid=1255466797</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Free_TeX_software" title="Category:Free TeX software">Free TeX software</a></li><li><a href="/wiki/Category:Font_formats" title="Category:Font formats">Font formats</a></li><li><a href="/wiki/Category:Donald_Knuth" title="Category:Donald Knuth">Donald Knuth</a></li><li><a href="/wiki/Category:Cross-platform_software" title="Category:Cross-platform software">Cross-platform software</a></li><li><a href="/wiki/Category:Declarative_programming_languages" title="Category:Declarative programming languages">Declarative programming languages</a></li><li><a href="/wiki/Category:Computer-related_introductions_in_1977" title="Category:Computer-related introductions in 1977">Computer-related introductions in 1977</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_needing_additional_references_from_November_2024" title="Category:Articles needing additional references from November 2024">Articles needing additional references from November 2024</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:All_articles_lacking_reliable_references" title="Category:All articles lacking reliable references">All articles lacking reliable references</a></li><li><a href="/wiki/Category:Articles_lacking_reliable_references_from_September_2022" title="Category:Articles lacking reliable references from September 2022">Articles lacking reliable references from September 2022</a></li><li><a href="/wiki/Category:Articles_containing_Polish-language_text" title="Category:Articles containing Polish-language text">Articles containing Polish-language text</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 5 November 2024, at 02:38<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Metafont&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5c59558b9d-j9wx6","wgBackendResponseTime":135,"wgPageParseReport":{"limitreport":{"cputime":"0.686","walltime":"0.955","ppvisitednodes":{"value":2606,"limit":1000000},"postexpandincludesize":{"value":54840,"limit":2097152},"templateargumentsize":{"value":3499,"limit":2097152},"expansiondepth":{"value":26,"limit":100},"expensivefunctioncount":{"value":9,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":61785,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 808.515 1 -total"," 34.21% 276.564 1 Template:Free_and_open-source_typography"," 33.86% 273.774 1 Template:Navbox"," 23.68% 191.488 2 Template:Infobox"," 19.91% 160.988 2 Template:Reflist"," 19.68% 159.100 1 Template:Lang"," 17.92% 144.898 1 Template:Infobox_software"," 12.65% 102.310 2 Template:Cite_journal"," 12.50% 101.060 1 Template:More_citations_needed"," 10.01% 80.966 1 Template:Ambox"]},"scribunto":{"limitreport-timeusage":{"value":"0.446","limit":"10.000"},"limitreport-memusage":{"value":15314018,"limit":52428800},"limitreport-logs":"table#1 {\n}\n"},"cachereport":{"origin":"mw-web.codfw.main-5c59558b9d-rddl4","timestamp":"20241130124739","ttl":40351,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Metafont","url":"https:\/\/en.wikipedia.org\/wiki\/Metafont","sameAs":"http:\/\/www.wikidata.org\/entity\/Q1457000","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q1457000","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-03-14T04:44:32Z","dateModified":"2024-11-05T02:38:57Z","headline":"description language used to define rastertype fonts"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10