Metafont是一種用於定義向量字體的程式語言。這也是Metafont直譯器的名稱,其生成的點陣字體,可嵌入到PostScript中。Metafont由高德納發明,與也是他發明的TeX排版軟件相輔相成。 Metafont的特點之一是所有的字型都是用幾何方程定義的,例如,可以用線段及貝茲曲線的相交處來定義點。
歷史
美國電腦科學家高德納(Donald Knuth)於1977年着手字體製作軟件,並於1979年發佈的第一個版本METAFONT
。由於原來語言的缺陷,高德納於1984年開發一個全新的METAFONT
系統。METAFONT
有一個與TeX的相似點 ,就是每一個更新版本都愈接近一個數學常數(每一個更新版本增加一個小數碼,METAFONT
趨近於e,TeX趨近於π)。
特點
與很多常見的輪廓字型格式如TrueType和PostScript Type 1不同,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
這會產生下列字型圖樣:
上述例子可由命令列指令來處理 [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}
參考
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.