METAFONT

維基百科,自由的百科全書
(重新導向自MetaFont
跳至導覽 跳至搜尋
METAFONT
File:METAFONT logo.svg
開發者高德納
目前版本2.7182818(2014年1月,​12年前​(2014-01
原始碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    作業系統跨平台
    類型程式語言
    許可協定自由軟件

    Metafont是一種用於定義向量字體的程式語言。這也是Metafont直譯器的名稱,其生成的點陣字體,可嵌入到PostScript中。Metafont由高德納發明,與也是他發明的TeX排版軟件相輔相成。 Metafont的特點之一是所有的字體都是用幾何方程定義的,例如,可以用線段及貝茲曲線的相交處來定義點。

    歷史[編輯]

    美國電腦科學家高德納(Donald Knuth)於1977年着手字體製作軟件,並於1979年發佈的第一個版本METAFONT。由於原來語言的缺陷,高德納於1984年開發一個全新的METAFONT系統。METAFONT有一個與TeX的相似點 ,就是每一個更新版本都愈接近一個數學常數(每一個更新版本增加一個小數碼,METAFONT趨近於eTeX趨近於π)。

    特點[編輯]

    與很多常見的輪廓字體格式如TrueTypePostScript Type 1不同,METAFONT字體主要由一定寬度的「筆劃」和一些封閉填色區域構成。因此,METAFONT字體檔案並不描述字形的輪廓,而是描述「筆劃」的路徑。

    METAFONT的曲線描述採用三次樣條函數,而不是二次的。

    使用[編輯]

    雖然一些著名的字體設計師如Hermann Zapf已經與高德納合作用METAFONT設計新字體(二者曾合作設計了AMS Euler數學字體),但這個系統並未在業界被廣泛使用。高德納認為這是由於「讓一個藝術家變成一個能夠理解如何通過60多個參數設計字體的數學家實在太困難」[1]

    例子[編輯]

    下列例子為字母B定義一個類似豆子的字型。

    %file name: beta.mf
    %mode_setup;
    % Define a beanlike shape for the character B
    beginchar("B",11pt#,11pt#,0);
      % Setup coordinates as an equation system
      y1=y2=y3=0;
      y4=y5=y6=h;
      x1=x4=0;
      x2=x5=w;
      x3=x6=2*w;
    
      % Define pen
      pickup pencircle xscaled 0.2w yscaled 0.04w rotated 45;
    
      % Draw the character curve
      draw z1..z3..z6{z2-z6}..z5..{z4-z2}z4..cycle;
    endchar;
    
    end
    

    這會產生下列字型圖樣:

    File:Metafont-example-output.svg

    上述例子可由命令列指令來處理 [2]

    mf '\mode=ljfour; mode_setup; input beta.mf'; gftopk beta.600gf beta.600pk

    處理後可用於LaTeX檔案[2](所有檔案應存放在相同目錄下,或是使用適當的方法提示TeX系統相關的資訊):

    \documentclass{article}
    
    \newfont{\letterbeta}{beta}
    \newcommand{\otherbeta}{{\letterbeta B}}
    
    \begin{document}
    Let’s try having a strange \otherbeta\ here.
    \end{document}
    

    最後的PDF檔應如下所示: File:Tex mf beta.pdf

    參考[編輯]

    1. ^ Karel Horák. Questions and Answers with Prof. Donald E. Knuth [與高德納教授的問答] (PDF). TUGBoat (布拉格). 1996年3月, 17 (4): 361 [2012-10-25]. (原始內容存檔 (PDF)於2020-09-20) (English). 
    2. ^ 2.0 2.1 Christophe Grandsir. METAFONT Tutorial. [2009-06-28]. (原始內容存檔於2020-05-30). 

    外部連結[編輯]