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). 

    外部链接[编辑]