zoukankan      html  css  js  c++  java
  • 《FontForge常见问题FAQ》字王翻译版

    《FontForge常见问题FAQ》 字王翻译版
    翻译: 字王·中国   blog: http://blog.sina.com.cn/zbrow
    《FontForge常见问题FAQ》字王翻译版
     
    ===============================
    FontForge常见问题FAQ
     
    Sir Toby: Thy most exquisite reason, dear knight?
    Sir Andrew: I have no exquisite reason for’t, but I have reason good enough.
    –Twelfth Night, Shakespeare
     
    托比: 最重要的原因,亲爱的骑士?
    安得烈:我没有什么很好的理由,但我有足够的理由。
     
    –《第十二夜》,莎士比亚,
     
    ?为什么需要字体编辑软件,现在不是已经有足够多的的字体了吗?
    ::
    但是,Eeyore对自己说,“写作这回事,再多的铅笔什么的,如果你问我。愚蠢的家伙,这些,对于写作,什么用也没有。”
    –《****》,A.A.米尔恩
     
    好了……,否则我不会编写这个(FontForge软件),而且,更重要的是,不会每个月有几千人下载。
    经常有人问我这个错误的问题,你不会去问一位画家,他是不是已经有足够的水彩。
    字体是一种艺术作品,代表着创造者的个人天赋,它不再是一种多余的色彩。
    然而,这里是我试图解答,隐含再这个问题背后,字体设计,更深层次的价值,
    1、的确,目前已经有很多种(超过十万)拉丁字体,但其他类型的字体却很少:希腊、斯拉夫、印度、泰语、中文、日文、韩文,Unicode字库……
    2、目前依然缺乏足够多的、优秀的免费字体。
    3、许多传统、现代的书写系统,经常需要设计自己的字体。(ps,例如苹果的手机、手表字体,adobe、谷歌、hack的开源编程字体)
    4。即使是拉丁文,传统上,每一种新的艺术风格,都需要一种关联的字体。(ps,目前微软、苹果主导的扁平设计风格)。新字体总是被创造出来,反映时代的美学。
    5、计算机字体技术不断变化,10年前有用的字体风格,现在也许已经不适合时代。
    6、即使你对现存的字体感到满意,它们可能也不完整?例如,却失踪的连字、重音符号;没有匹配的斯拉夫语或希腊符号。。。。。。
    7、每个人都想要:一种个人笔迹的字体。
    8、玩字体很有趣。
    FontForge,已经超越了简单的创建和修改字体。
    它可以将字体,从一种格式转换为另一种格式。
    它可以从字体文件中提取信息。
    或者,它可以轻松显示你尚未安装的字体。
     
     
    ?我为什么要开发FontForge软件呢?
    ::
    为什么不呢?
    –《幻象天堂》,加斯特
    因为它是有趣的
    因为Macromedia公司,已经停止开发fontoGrapher软件,
    而且fontoGrapher软件,缺乏很多功能。
    因为我喜欢开源、免费的软件日剧,希望提供良好的产品,这将鼓励人们不再使用专有系统。
    因为编程比市场营销更有趣,并且把比销售更容易。
    因为如果FontForge作为商品软件销售,我要花更多的时间做QA问答(QA非常无趣)。
     
    ?FontForge为什么不使用原生的Windows或MAC操作系统?
    ::
    FontForge不是一个商业软件,不受市场约束。
    我对这样做不感兴趣。
    我没有时间,也没有能力承担那项任务。
    我想鼓励人们使用Linux、UNIX
    当然,如果我使用GTK、QT的移植困难就会消失。但不幸的是,我不喜欢这些工具集。
    现在……如果你想做移植,那将是美好的。我鼓励你这样做。
     
    ?为什么FontForge是基于非标准窗口模式?
    ::
    我希望这些窗口部件,可以友好处理Unicode编码。
    我特别关注的是,希伯来语和阿拉伯语排版。
    由于我不知道有任何类似的窗口软件包,我只能自己开发。
    我也想要一个软件工具库,可以找出合适的复选框,在很多情况下,人眼无法解决
    目前,有两种免费的软件库:Qt和GTK,对于Unicode支持更加友好。
    不过,目前我还没采用,因为:
    从一种底层软件库平台移植到另外一种,时间周期很长,期间的bug会分散我的注意力。
    如果我花时间做的移植,我没有精力让FontForge增加更多的新功能。
    Qt是用C++开发的,我不喜欢C++,所以QT出局。
    越看GTK,我越不喜欢它:
    对图像的支持很糟糕(这真奇怪,因为它源自著名的图像软件GIMP);
    不支持客户端位图(我希望支持位图字体)
    还在使用RGB索引颜色系统,而BGR格式才使用24bit颜色系统,而且透明图像模块有缺陷
    图像格式不完整,不能通过图像本身,知道它的位图,索引或颜色系统。
    这些功能都是必须的能的,但这涉及到一些非常底层的开发工作,我只知道,如何做在X窗口系统进行开发这些。
    我找到文件选择对话框真丑,它是如此复杂,以致我不知道如何修改它,使它看起来更加友好很好(按我的标准,即。。。)
    我也不知道如何修改文件选择器,目前,FontForge的文件选择器,其行为方式,的确有些古怪。
    GTK+2并不运行于MAC OS,目前唯一移植到MAC的GTK模块,似乎还是gtk-1
    许多我想要使用的模块库已经过时,我不知道,用什么代替了它们,有时我不得不用一个更复杂的部件来代替。
    所以,我倾向于与它进行一段时间的搏斗,然后再决定,采用更加友好的软件库平台。
    我目前使用的是一套限制版本的GTK,开开发FontForge,如果有人提供援助,增加更多的权限,我们会非常感谢。
     
    为什么不采用C++开发FontForge?(或,C++为什么不是我最喜欢的编程语言)?
    ::
    对于这个问题,我有点吃惊,我没有意识到,自己还需要选择开发语言。
    我这样做,是因为,我无法找到面向对象的编程模式。
    在大多数情况下,我发现,面向对象是一种非常复杂的设计模式,我无法轻松地调试软件。
    我曾经几年使用Smalltalk,面向对象的方法,虽然似乎很自然,但在大多数情况下,它似乎只是对问题,增加了不必要的复杂性。
    C++不能指定一个编译器模板,而C语言,完全没有问题的,而且,在C++中模板、构造函数和析构函数,有无数的副作用。我觉得这非常可怕。
    外部构造函数的执行顺序是未指定的。会产生许多令人费解的错误。
    我发现很难调试,往往涉及许多意想不到的过程调用。
    最后,我发现,c++太复杂,它把各种不同的概念,强行堆砌在一起,每种c++编译器,做的事情似乎都有点不同。
    我第一次接触c++,是在1981年的c语言教材上。从1987到1994,我使用的是C++编译器,是绿山软件开发的。每一个版本,都增加了大量新的功能,并没有完善的与旧的。每个版本都不友好,有大量的错误、混乱。
    以上是我的个人意见和经验,解释为什么我不使用c++,你的意见可能不同,不过,很少有人,花了5年时间使用“c++编译器”。
     
    ?为什么FontForge使用BSD授权模式而不是GPL?
    ::
    我只是不喜欢GPL。部分是偏见,部分是真实的。
    我不喜欢强迫限制人,我赠送FontForge,所以我采用(更加宽松的BSD授权模式)
    BSD授权模式说,“无需告知告我,无需包含我的版权声明,即使你使用了我的代码”,那是我所关心的全部。
    也许我是天真的,但是我不相信任何人会销售FontForge。
    为什么会这样?
    没有任何意义,尝试出售我免费发布的软件。
    如果有人为FontForge添加功能,那么,这是一个不同的问题,或者,他们在自己开发的软件中,添加一些FontForge的代码河模块,如果有人那样做,我的看法是:这样做眼睛,也许有些粗鲁,但我不会说“不”。
    我知道,现在一些OpenType代码,已经陷入僵局,例如一些TeX 软件模块。
    我很喜欢帮助别人,也有很多人帮助过我。
     
    为什么FontForge在运行时加载库?
    ::
    我不喜欢依赖。我讨厌:当你下载一个软件包,发现它不工作,除非再下载了半打其他软件包。
    我想只提供一个软件包,它就可以工作,所以我试着写尽可能多的代码,不强迫人们到处漫游,寻找不同的部分。
    必须时,我会使用一个外部的模块库:
    如果用户不会看一个SVG字形就不需要安装libxml2。如果用户将不会导入JPEG图像(真的不想这样做),他们不需要安装libjpeg。
    这也将加快启动FontForge。
     
    ?FontForge有未来的路线图吗?
    ::
    泰森:我不会感到迷惑,我向你保证我不会感到迷惑。事实上,在这一刻,计划几乎会在我的脑海中成形。它甚至可能是足够的。
    -《这女人不是为了燃烧》,克里斯托弗弗莱
     
    主要是因为我不认可这种话模式。我不做计划。
    例如,我决定为FontForge,添加Python支持。我发现,这意味着它变得更容易设计字体,用户可以创建自己的脚本,添加导入/导出文件格式。可以让用户定义自己的菜单项。然后我想通了:如何添加FontForge Python(而不是相反)。现在我认识到,没有理由,我不能定义一套内置c语言模块,使人们可以使用c语言,为FontForge编写扩展功能。
    每一个阶段意味着,我能看到一点点的未来,然后再去完善一点点,然后再看一点点的未来。
    而且,想法经常会来自用户,有人会问我没有想到的功能。我发现我写的东西有一半是没有发生过的,大部分时间我都懒得去更新页面。我会忘记它。那是无聊的。我最好是简单地去做,我不喜欢推测。
    所以,不要问我:接下来会发生什么,因为我不知道。这是一次冒险。我们只能等着看。
     
    ?你开发FontForge,是不是类似烤面包的工作?
    ::
    (这个问题,源自一个开源媒体的采访,LGM2007)
    我喜欢做事,我喜欢做一些特别的、美丽的事情。我不知道与烤面包有什么关联,但我觉得我做了漂亮的锅。我真的喜欢装了玻璃窗口。
    很难说字体编辑器是美丽的。但我认为,这背后的想法是美丽的,在我的脑海中,在某种意义上,我发现用户界面美观。我不知道世界上还有谁会做,因为这是我想要的,而且我认为它是美丽的。
    在做些什么,做些什么,是很有满足感的。
    在制作一些我需要的东西时,也有一种满足感(如面包)。我吃我自己做的面包,这就是我吃的面包。
    所以我只是喜欢做些漂亮的事情。
     
    ?FontForge可以修改字体吗?这是否合乎道德?
    ::
    许多现行的字体,都是以伟大的设计师的作品为基础的,从几百年的历史中来的,因此,利用他人的设计,有着悠久的历史。
    另一方面,不管是什么法律,剽窃,对于任何一个设计师,它显然都是不道德的。
    法律问题因国家不同而不同(也许是在国家)。你真的应该向律师咨询一个明确的答复。
    以下是一些指南:
    看看你使用的字体的的许可协议, TrueType(OpenType字体)有个OS/2表,限制哪些字体可以修改。
    我对美国法律的理解是这样的:字体设计的法律保护是最*的。以前,法学家称“字母是公开的”,这意味着一种类型的设计不能受版权保护。
    然而,(我告诉)一个设计师可以注册(与政府)的设计专利,保护设计14年(如果授予)。我不相信它可以更新,但我可能是错误的。
    注册专利是一项昂贵且耗时的过程,往往是超出*型设计公司的能力。据我所知,相关法律从未在美国进行过测试,所以这可能是值得怀疑的。
    字体的程序(如PostScript或TrueType字体文件,但不是一个位图字体文件)可能是受版权保护的。这就意味着设计本身没有被保护,但它的机制是创造它。
    字体的名称可能是商标,在英国:有一些所谓的“设计权”,有点像版权,对设计作品提供5年的保护。设计师可以注册的多达5次,以延长这种保护到25年(在整个欧盟)。我不知道这些具体的细节,也不知道如何与国家具体的法律(如英国的设计权)。
    在加拿大:字体设计可以被注册为一个有限的时间(15年)的“工业设计”,我欢迎任何补充或更正,以及在其他国家的法律法规的信息。
     
    ?什么是12点(point尺寸)字体?(如何测量的字体的点?)
    ::
    字体尺寸(pointsize),不是基于任何的字体大*。
    12点字体,是指,字体相邻两行文本的基线之间的距离是12点。
    过去,字体都是由金属制成,该字体的尺寸,是指用于字体的金属模块的高度。在某种意义上,这是不是一个很好的字体尺寸标准(有些字体可以上升或下降更多的空间,实际的符号高度更*)。
    还有一个基于象形文字的高度的测量方案。,在英国和美国,历来是 1/72.27英寸,而在欧洲其他国家,是1/67.54英寸。欧洲版本的尺寸稍大一点,但英国和欧洲的字体符号,实际大*是相同的。因为,英语不使用重音(除了在极罕见的情况下),而大多数欧洲语言有音调符号,所以字体的点尺寸大*略有增加,以允许更多的口音的空间。
    (当然,现在大多数欧洲人,可能所以的是桌面软件,多数电脑字体现在包含重音符号,这些区别可能已经消失了)。
     
    ? 如何设置字体的行间距?
    ::
    这取决于你设计的字体,你正在运行的操作系统,和运气。
    Type1字体无法设置行间距。应用程序通常会使用字体的边界框中指定的值,并使用那些设置的行间距。这是一个非常坏的想法,但这是一个普遍的做法。
    对于True/Open Type字体的答案是复杂的。
    在MAC系统,行距设置的上升和下降值虽然有”hhea”表,用于设置字体的边框值。另外一个不太好的选择,您可以通过以下菜单进行调整:Element->Font Info->OS/2->Metrics
    在Windows中,行间距应该设置在OS/2表,不幸的是,大多数Windows应用程序不遵循这个规则,同样,您可以通过以下菜单进行调整:Element->Font Info->OS/2->Metrics
    对于Linux系统,我不知道有一个普遍的共识,一个应用程序可能会使用上述方法之一。
     
    现代字体往往有几种不同的风格,可能有不同的行间距要求。即使在同一种风格,也可能有差异,例如,英国不使用(或极少数)重音符号的字母,而其他大多数欧洲语言有音调符号。
     
    字体的行间距,不是一个全局指标,OpenType允许你,根据脚本,语言和特征,指定范围。
     
    ?我的符号是多大?
    ::
    不幸的是,这个看似简单的问题,无法简单地回答。
    你可以是任何大*的。轮廓字形可以缩放,而位图字形,将取决于屏幕分辨率大*不同。
    假设你有一个轮廓字体,你画为12点。然后我们就可以回答这个问题,假设你有一个500个单位长的划线符号,字体大*为1000个单位。然后你的字形将是500/1000 * 12 = 6点。在72 dpi的屏幕,这将意味着6像素长。
     
    ?什么是em单位?(内部单位?)
    ::
    当您创建字体时,您可以使用:lement->Font Info->General,设置字体大*。
    对于金属字体,这是排版基线到基线的距离。
    一般的em单位,大*是1000或2048。用:内部单位数(也叫EM单元)来表示他们。
     
    ?对于开源字体上,什么授权方式更好一些?
    ::
    在开源授权模式下,许多字体已经被发布,但这些都不能满足字体设计师的特定需求。我知道有专门为字体制作的授权模式。
    我推荐源自SIL的开源字体授权模式许可,这些授权,虽然没有法律约束力,但可以帮助阐述非英语用户的授权意图。
    Vera字体字体采用Bitstream授权模式
    GNU授权模式,也经常使用。
     
     
    ?使用FontForge软件的最低要求
    ::
    这很大程度上取决于你想做什么。FontForge主要受限于内存(虽然屏幕尺寸也可能是一个问题)
    如果你使用脚本模式,字库不超过几百个简单的符号(如拉丁字母),192MB内存,就绰绰有余。
    如果你是做编辑CJK、UNICODE中文、日文字体,最低内存要求是 512MB。
    FontForge需要彩色(或灰度)显示器,黑与白是不够的。
     
    ?FontForge ,为什么用这么多的内存?
    ::
    字体一般都存储在一个非常紧凑的文件中,字体设计成容易光栅化的格式,它们不是用于被编辑的。
    当加载一个字体文件时,FontForge需要把它,扩展成一个更直观的格式,编辑起来更容易。但要大得多。
    也许应该改写FontForge,使用更高效的存储表示。但这是一项巨大的工作,对我来说,并不感兴趣。
    SFD文件非常大。因为他们是采用ASCII表示同样的扩展格式。他们不是设计得紧凑而清晰可辨。
     
     
    ?如何安装字体?
    ::
    好吧,这取决于你在做什么系统,以及你有什么类型的字体
    * UNIX和X 系统 ,
    轮廓字体和fontconfig ,很多程序现在使用fontconfig找到字体(包括FontForge)。安装fontconfig字体,简单的复制文件到你的字体目录:~/.fonts,即可。
    位图字体,和X11系统的字体安装,建议你看看Linux 字体 HOWTO文件。
    基本上,你将一个(或几个)目录指定为“字体目录”。您将您的字体复制到该目录,你需要在你的字体路径中包含这个目录。
    可悲的是不同版本的系统,和不同格式的字体,使用略有不同,你可能需要修改这些程序。
     
    ** KDE ** ,
    (我不知道KDE很好,所以的经验和浅薄)
    KDE有个工具叫kfontinst,可以用于安装、配置字体。
     
     
    ** TeX **
    TeX有自己的(跨平台)安装字体系统。
     
    * Windows **
     
    你安装的TrueType字体文件,一般保存在:WindowsFonts  目录。
    在安装之前,您可能需要在字体上设置“执行”权限位。
    不要直接复制字体文件到 WindowsFonts  目录,这似乎没有作用(至少在我的XP下)。
    如果你想使用Type1字体,你需要安装Adobe Type Manager。如果你想安装OpenType字体,在旧的windows系统(在Windows 2000之前,我认为)你需要安装ATM。
     
    * * Macintosh OS 9 * *
    哦亲爱的。苹果把字体贴在资源叉上,把它们用在自己的头上。
    MAC字体不与其他的兼容,具体请参看系统帮助。
     
    ** Macintosh OS X **
    在OS X,字体应放在顶层:/Mac OS X/Library/Fonts/ 目录,或用户指定的目录:~/Library/Fonts
     
    ? 为什么一些Windows电脑上,无法安装FontForge设计的字体?
    ::
    通常都是字体安装时,出现的操作错误,例如直接复制字体文件,而不是安装字体。
    另外,(2009)Windows安全补丁决定:字体的“名字”表大于5K是不安全的,拒绝安装。这是由于在字体中包含的许可证的全文而引起的。
    某些老版本FontForge设计的字体,无法安装于Windows 2000(和XP)系统。如果你有一个旧版本,请升级吧。
     
    ?如何从我电脑开始编辑字体?
    ::
    ** MAC OS / 9(或更低版本)**
    传统Macintosh存储字体资源文件,也支持TTF文件。
    FontForge知道如何读取这些字体文件,可以从中提取一个PostScript或TrueType字体。
    所以,在苹果上编辑字体,步骤如下:
    1、在系统文件夹中查找文件:字体文件夹
    2、将文件复制到您的电脑吗?使用指定的格式?或使用一些工具如binhex。
    3、运行FontForge软件
    4、打开字体文件,开始编辑,
    5、按系统支持的格式,保存字体文件
    6、把字体文件复制到你的电脑上?一般可以自动安装,用其他软件,使用字体。
     
     
    * MAC OS X *
     
    在MAC OS X系统,可以直接运行FontForge(如果你已经安装X11)。
     
    ?如何创建一个苹果字体家族?
    ::
    苹果10.6版本,首选的方法是使用TTC分组字体文件,10.6之前,不支持TTC格式的字体文件,首选的方法是产生MAC字体家族。
    ** 10.6版本后**,
    首先,打开所有的字体,在FontForge设计家族字体,然后选择文件->生成TTC文件。
     
    ** 10.5版本前**,
    你必须创建一个字体家族。
    一个字体家族,所有的字体必须具有相同的开头名称(见字体信息对话框)。
     
    字体家族,它反映了80年代初的电脑字体技术,现代的电脑字体,往往有一系列无法表达的变体,包含以下任何组合:
    粗体、斜体、延长、下划线、阴影、轮廓
     
     
     
    ? 为什么ATM软件,在我的苹果电脑字体上工作?
    ::
    编辑字体时,确保字体编码采用的是Macintosh拉丁格式。
     
     
     
    ?我生成的OpenType字体无法在Windows安装。为什么?
    ::
    不幸的是,苹果、微软、Adobe不再开放TrueType字体文件格式。
    FontForge有一个复选框在生成字体选项对话框标记[苹果]。当你为苹果的字体生成一个字体时,请确保选中此。
    我无意中发现的主要区别是:
    在NAME表中的名字不同。(这实际上是苹果的版本的规格错误)。
    包含位图字体的表格的名称
    缩放引用的方式存储
    包含的印刷特征表是完全不同的
     
    ? 我有一个表格的OpenType/TrueType字体,但Windows显示“TT”(TrueType)图标并不是“O”图标,为什么?
    ::
    据我分析,字体文件,如果包含一个“DSIG”(数字签名)表,Windows将显示“O”图标。FontForge不产生,数字签名(我认为他们是负效用,反正我不知道如何创建它们)。
     
    然而,FontForge可以创建空白的“DSIG”表,这似乎足以使窗户高兴,(而显示“O”图标)。
     
    ?如何从一种轮廓格式转换为另外一种格式吗?
    ::
    如果你想快速的话,那简单的回答是:
    1.File->Open,打开一个存在的字体文件
    2.Element->Generate,生成另外一种格式的字体文件
     
    如果你是从PostScript格式转换到其他格式(例如PFB、OTF),所需做的就是这些。
     
    如果你是在PostScript和TrueType格式间转换,你可以做一点额外的工作,对于样条曲线,进行优化。
    1.File->Open 一个存在的字体文件(ttf字体文件)
    2.Element->Font Info->Layers 菜单,选择 <*> All layers cubic选取框
    3.Edit->Select->Select All
    4.Element->Simplify->Simplify,优化样条曲线
    5.Hints->Auto Hint,自动调整间距
    6.Element->Generate Fonts,生成另外一种格式的字体文件
     
    从 PostScript(otf、pfb)格式字库,转化为ttf字库,步骤如下:
    1 .File->Open 一个存在的字体文件(otf、pfb字体文件)
    2.Element->Font Info->Layers  菜单,选择 <*> All layers quadratic选取框
    3.Edit->Select->Select All,
    4.Hints->AutoInstr, 自动调整间距
    5.Element->Generate Fonts,生成另外一种格式的字体文件
     
     
    ?如何从一个位图格式转换为另一个?<</div>
    ::
    这很容易,打开一个位图字体,然后使用:Element->Generate,生成所需的输出字体。
     
     
    ? 如何从轮廓格式转换为位图格式?
    ::
    加载轮廓字体。然后使用:Element->Bitmaps Available,即可。
    这个过程被称为光栅化,电脑做*像素尺寸,很困难,你或许需要对结果,进行修正:
    1,Window->Open Bitmap Window
    2,修正字体符号
    3,Element->Generate Fonts,生成字体文件,注意关闭轮廓字体生成,并选择所需的位图格式。
     
    ? 如何将位图格式转换为轮廓格式?<</div>
    ::
    除非你有一个非常大的位图字体(如TeX字体),下面的过程不会产生好的结果。
    1,在你做其他事情之前,确保你的系统已经安装了potrace,或AUTOTRAC矢量化程序
    2,创建一个新字体
    3,使用File->Importcommand菜单,导入位图字体到新的字体,一定要取消[Background](背景)复选框,
    4,菜单 Edit->Select->Select All,
    5,菜单 Element->Autotrace,自动矢量化
    6,菜单 Element->>Add Extrem,
    7,菜单 Element->Simplify,优化曲线,
    8,人工审核、修整各个字体曲线河节点
    9,Element->Generate Fonts,生成新的字体文件
     
     
    ?如何从苹果的Typography字体转换为OpenType?
    ::
    这些字体格式,有许多相似之处,但重叠不全,大多数转换会丢失一些信息。简单的答案是,这是非常自动的。
    你读入苹果的字体,选择等效的[*] OpenType字体复选框选中的选项对话框。
    FontForge自动匹配的OpenType特征。
     
    ? 如何从OpenType字体转换为AAT格式?
    ::
    这主要是自动的。
    读入OpenType字体,并产生一个等效的字体与[*]苹果的复选框选中的选项对话框。
    FontForge能够自动转换为AAT格式。
     
    ?FontForge如何调整Hints间距?
    ::
    它是自动设置的。
    你可以通过选择一个点和选择元素来控制,菜单为:Element->Get Info->Hint Mask.,
     
    ?我怎么能让FontForge使用Flex Hints间距?
    ::
    基本上是自动的。FontForge将在适当的时候,自动生成相关的Flex Hints间距。你不需要做任何事。
     
     
    ? 我如何才能告诉你,需要使用UpdateFlex Hints间距?
    ::
    如果你想看看FontForge要使用Flex的提示,打开UpdateFlex菜单和字形。
    FontForge会显示一个绿色的光环,围绕一个Flex暗示的中心点。
     
    ? 我的符号是所有完美的暗示,为什么有的宽度不同(或出现?��蛲耆��В�?
    ::
    PostScript和TrueType字形绘制要求,以顺时针的方式。一些光栅化程序不在乎。但是其他的光栅化会有困难与逆时针路径产生不同宽度的茎时,他们应该是相同的,或?�木ィ�蚋�久挥*?
    解决的方法是,选取菜单:Element->Correct Direction,调整 所有你之前生成的字体。
    但有时,穷人就不能做正确的事……
     
     
     
    ? 我装一个TTF字体,做了一些改变,产生了一个新的字体。新字形看上去远不如原件,为什么?
    ::
    FontForge读取TrueType字体时,它使用的hinting间距(指令),都是原来的字体。但是如果你改变一个字形主体,那些指令不再有效(他们依赖紧密的轮廓细节),所以,需要用FontForge移除它们。结果表明,FontForge改变字形,会降低很多TrueType字体外观(不是全部,有些没有提示)。
    FontForge可以生成你自己的TrueType指令,但你必须要这样做,菜单:Hints->AutoInstr
     
    ?OpenType和PostScript(TrueType)字体之间有什么差异?
    ::
    PostScript和TrueType字体,使用PostScript式,TrueType使用TrueType,(实际上,OpenType包括TrueType字形格式)。
    OpenType字体文件后缀名,略有不同,一般为PFA、PFB文件,一般为Type 1格式,而 OpenType字体使用Type 2格式。
    Type 2格式,几乎是一个超集,有一些*的变化和许多扩展型。
    OpenType字体还可以包括附加的信息,允许复杂脚本的布局(阿拉伯语,印度,等等)的时候,字形变体和精细排版等方面的支持。
     
     
    ?cidmap文件究竟是什么?我应该关心他们吗?
    ::
    背景材料:
    原来,字库中每个符号被赋予一个名称和编码,这些编码是由一个256个元素的数组映射。
    回来,然后他们开始字库进行扩展,例如中文GB吗。日文CJK吗,以及Unicode,这些字库有着10000字形、庞大的字符集,
    于是,Adobe创建CID系统,每个符号有一个索引(CID),这只是一个数字,这是作为一个名字。然后外部的字体,额外资源(CMAP)为字体的编码序列的输入字节,映射到一个CID。
    cidmap文件,在设计GB中文字库、CJK日文字体才有用,通常,欧洲人/美国人不需要他们。
     
    ?为什么TeX不能调用我的字体?
    ::
    ,我是一个TeX新手,也许是TeX的编码–有时被称为“Adobe标准的TeX文档编码。
    所以,如果你有打印问题,失踪的符号,等尝试改变编码字体为TeX base:
    1,菜单 Element->Font Info
    2,选择“编码”选项卡
    3,从下拉列表选择TeX Base。
     
    ? 为什么FontForg不让我e编辑“.MF”格式的字体文件?
    ::
    如Knuth说:“(与WSYWYG问题是……),你所看到的就是你得到的。”
     
    ? 使用非整数坐标是安全的吗?
    ::
    FontForge允许你非整数坐标编辑。许多字体编辑软件,有些怀疑非整数坐标的使用,光栅化时,它将扭曲自己的字体。
    答案取决于字体格式和如何保存字体, TrueType字体只能表示整数坐标。
    当FontForge创建TrueType字体,将所有坐标转换为整数,这一点在曲线中会有轻微的变形。
    PostScript(type1,type2,OpenType字体等),可以使用非整数坐标,但占用更多的空间。
    type1字体往往需要更多的空间,来表达type2型(OpenType字体)字体。
    默认情况下,FontForge使用整数坐标,但你可以改变,在生成选项对话框。
    如果你的字体是圆形的,那么会有一些失真。如果不是圆形的话,应该就没有失真。
    PostScript字体,应使用安全的非整数坐标,当您生成字体,字体文件将更大,但更准确。
    如果你觉得需要更准确的TrueType字体,可以改变他们的大*为8096。,你可以在后记Type1字体太大,然而,也有一些应用,假设所有的OpenType PostScript字体有一个EM大*为1000,所以最好不作为 OpenType输出。
     
    ?为什么是我的Open Type 字体文件很大?
    ::
    这可能是因为,保存字体之前,你没有将坐标整数化。
    FontForge将使用浮点数,保存字体,这会数占用大量空间。
     
    ? 当我读入OTF或type1字体,我的大部分的引用被内联副本替换。我如何得到我的资料?
    ::
    加载PostScript字体时,找出老引用非常困难。
    相反FontForge有一个特殊的命令,参考 Edit->Replace ,可以搜索字体中的潜在候选。
     
    ? FontForge使用旧的 ‘kern’字距调整信息吗?
    ::
    这个问题需要分解为:
    ** TrueType和OpenType字体**。
    字距调整信息是存储在 ‘kern’”或‘GPOS’ 这些字体表中,FontForge可以调用。
     
    ** TrueType and OpenType fonts **, Yes. The kerning information is stored in either the ‘kern’ or ‘GPOS’ tables of these fonts and FontForge can read them (Apple has made a number of extensions beyond the original truetype spec, FontForge can read these too).,
     
     
    ? 如何在OS/2 表(或任何其他)设置一个特殊的位元?
    ::
    FontForge无法这样做,但我已经写了一个工具软件,可以编辑相关表单。
     
     
    ? sfd文件是什么?
    ::
    sfd文件是FontForge的数据文件格式,它是一个文本文件,只使用ASCII字符,这意味着它是大的,但可读性强。
     
     
    ?simplify曲线优化命令是否会丢失精度?
    ::
    是的,是的。但不多。它被设计来替换一组与另一个不同的样条曲线。
    如果这个效果不够好(在轮廓视图):
    1,菜单 Edit->Select->Select All:
    2,菜单 Element->Transform->Transform
    3,Scale Uniformly: 1000%
    4,OK
    5,Simplify,曲线优化
    6,Scale Uniformly: 10%,
    7,OK,
    这将用一个样条,来替换一组与原来不同的样条,1个单位。
     
    ? 如何将一个cubic三次样条,转换为quadratic二次样条?
    ::
    这可能会有些精度损失。否则FontForge,将原始样条分成更*的部分,并试图找到一套二次样条不同于立方不超过一个单位的任何地方。
    (一旦你选择了2个端点,并且在这些端点处了解该斜率,两者之间可能只有一次二次样条)。
     
     
    ? 如何将一个quadratic二次样条,转换为cubic三次样条?
    ::
    这很容易,因为任何二次样条,都可以表示为一个立方体。
    控制点会有变化,将有一些精度损失。
     
    ?当试图导入图像文件,为什么说“错误加载动态库”?
    ::
    FontForge加载图像,需要使用一些外部的动态模块库,它不检查这些模块库的存在,直到你真的去加载图像。如果你的系统没有安装库,它会给上面的错误(并不能加载图像)。
     
     
    ?为什么FontForge说“EPS文件太复杂无法理解”?<</div>
    ::
    (因为它是一个错误的莎士比亚,我怎么能放弃呢?《无事生非》,V.1.217)
    大多数程序,把EPS文件视为黑盒子。他们会读文件到内存,并输出到PostScript打印机,不变。
    不幸的是FontForge不能这样做,FontForge需要理解,然后转换成一个简单的EPS文件格式(可以使用更少的操作)。
    所以,不像大多数程序,FontForge必须解释每个EPS文件–但解释所有后记是一个巨大的工作,如果是在它所了解的有限。有时它会发现它不能处理的文件。
     
    ?如何从Inkscape ,输入符号?
    ::
    用Inkscape设计一个文字,它可以很容易地导入到FontForge。
    1,打开Inkscape
    2,从“文件”菜单中选择“文档属性”
    3,设定单位为像素(PX)和文件尺寸为1000 x 1000,单击“确定”,或如果你的字体有不同的数,他们使用单位,但1000是FontForge 默认的)
    4,设置水平导线在200px
    5,设计一个glyph,最难的部分!
    6,保存的图纸为SVG文件
    7,打开FontForge
    8,菜单 File --> Import,选择SVG,找到你的图,点击OK
    9,菜单 Element -->  Transform,
    10,将Y设置为200,单击“确定”
     
     
    ? FontForge的灰色背景让我苦恼。我如何改变它?
    ::
    在×资源网页上,有相关的讨论。
     
     
    ?FontForge ,字体使用其界面太*(太大了)。我如何改变他们?
    ::
    X服务器无法调整屏幕分辨率,当FontForge调整它时,往往会出错。(新版本,已经基本解决了此问题)
     
    ? 我如何标记为等宽字体?,
    ::
    你只需确保字体有相同的宽度,然后FontForge会自动标记为等宽。
    (如果你标记为等宽,一些光栅化会给奇怪的结果)。
    如果你想设置,菜单:Element->Font Info->OS/2->Panose
    然后设置比例场等宽,这是必要的但不足以标记字体作为一个整体等宽。
    如果你不确定是否所有的符号,你的字体有相同的宽度,使用菜单:Element->Find Problems->Random->Check Advance
    当我说“all glyphs“,我真的是说所有字符,甚至符号中的Unicode表示应我0宽度的,都必须有相同的宽度。
     
    ?我怎么告诉FontForge新的编码?
    ::
    先问问你自己是否真的需要一个新的编码?
    如果你正在使用OpenType字体或字体通常可以得到标准的Unicode编码。
    但是,如果你真的需要一个新的,在这里是一个粗略的想法:
    弄清楚你的编码是什么样子。通常,这将包括在网络上寻找一个编码的例子。例如,如果你想要一个梵文字母编码,你可以看看网站说明ISCII编码
    这些编码只显示前96个字符,大概也像我们一样的ASCII。看图片,找出它们如何映射到Unicode(或者更确切地说,那些人物适当的后记的名字是什么)。
    创建一个文件(称之为“梵文。PS”在这种情况下)。它应该从一条线:, /梵文{ ,这告诉FontForge,编码被称为“天城”,然后按照这个名单的所有角色的名字(之前有一个斜线)。
    现在加载此文件为FontForge的编码,菜单Encoding->Load Encoding
     
     
    ?如何添加一个新的名字符号?
    ::
    让我们说你想添加一个“dotlessi”字形的字体(ISO-8859-1编码不包括dotlessi)。
    解决这个问题的方法有:
    1,菜单 Encoding->Add Encoding Slots,找到你要的号码类型(大概1)
    2,按OK键向下滚动到结束的字体,和找到新的符号,菜单:Element->Glyph,键入你的新名字为Unicode名称字段
    3,菜单 Encoding->Reencode->ISO-10646-1
    4,菜单 View->Goto Type
    5,现在开始设计符号
    6,菜单 Encoding->Reencode,再次改变编码
     
    ? 为什么FontForge给我的一些符号名字错误?
    ::
    FontForge的命名约定是在Adobe的字形的命名约定,指定,不幸的是,有一些问题(一般为旧编码兼容)。
     
     
    ?在我生成的字体和退出,为什么FontForge问我是否要保存的字体?我什么也没变。
    ::
    有两个原因可能发生:
    1,即使你没有在这个会议上改变什么,FontForge可能需要(重新)产生暗示在一个或几个符号信息(如,例如那些符号已经改变(在以前的会话)但没有提示已生成他们自)。这些新提示将标志着字体的改变。
    2,如果你的字体在字体信息的XUID区,然后FontForge会增值的最终数量在xuid每次PostScript字体生成–,这也算是一个改变。FontForge(为什么这样做?因为它应该说。一个*的烦恼,但它避免了一些问题与字体缓存时,你改变了一个旧版本的字体为一个新的一个)。
     
    ? 为什么我的窗口图标化的时候,我想得到缩*视图?
    ::
    一些窗口管理器(gnome)键盘冲突,您必须使用“视图”菜单->缩*相反。
     
     
    ? 为什么在希腊字体里没有一个叫字符“mu”?
    ::
    Adobe想得更多的是,向后兼容,当他们在Unicode编码,分配希腊字母时。因此得名“mu”指的是微信号(U + 00b5),而不是字符“mu”。
     
    ?为什么Edit->Copy,不能复制符号名称以及字形信息?
    ::
    首先是因为我相信,任何复制一个字形的名称的尝试,都可以通过定义一个自定义编码来更好地进行。
    其次,因为大多数时候你不想被复制的名字。
    再次,因为它是审美的,应该只有更好的数据和元数据的工作。
    不过……
    有足够多的人问这个问题,我已经启用了一种模式,在编辑-复制从- >字符的名称,允许您改变默认的行为。
     
     
    ? 为什么Edit->Paste,名称重复?
    ::
    因为你有:Edit->Copy From->Copy Metadata, 复制元数据检查。选中它。
     
    ? 如何设置字体的默认字体?
    :: 如果字形命名”。notdef”,包含了一些样条(但没有引用),它将作为默认的符号(即字形时使用非编码符号)。
    除了在OpenType字体(即 PostScript,OpenType字体),的".notdef"字形不用于默认字形,而是“空”字形。(别看我,我没有写规格)
     
    ?我看着华文楷体或mingliu.ttf和轮廓看起来像正确的符号。怎么了?
    ::
    有些TrueType字体(如华文楷体或mingliu)不存储正确的轮廓。
    相反,他们依靠使用指令移动,产生轮廓。这个轮廓看起来不是很适合网格的,只是位置。
    FontForge不会说明,因为它读取字体。在大多数字体中,这将是错误的事情,我不知道:我怎么能告诉什么时候需要做……
     
    ?当我使用:Element->Build->Build Accented Glyph ,建立重音符号,来建立一个扩展的希腊铭文(U + 1f00-u + 1FFF),FontForge挑选错误的口音。为什么?
    ::
    因为Unicode统一了希腊语和拉丁语口音,即使他们不一样。
    当FontForge遵循简单的Unicode定义,它可能会选择一个希腊符号拉丁口音。
    幸运的是Unicode也包含希腊口音大约从U + 1fbd代码点,如果你把这些代码点与适当的口音,然后FontForge将使用这些而不是拉丁口音。
     
    ?当我使用: Element->Build->Build Accented Glyph,建立重音字形,“U”或“Y”我的口音不在字形中部。为什么?
    ::
    你的一个笔画比另一个高一点。FontForge口音中心在字形的最高点。如果有几点相同的高度,那么平均使用。
    如果你的所有的笔画是相同的高度,那么重音应该是适当的集中。
     
    ?我做了所有的字母,但字体仍然是缺失字符言,乱码?
    ::
    一些字体软件(如默认的Ubuntu字体查看器),要求所有的A–Z字母,加上所有的数字和标点符号如“,否则他们就吐出的胡言乱语。
     
    ?如何设置空格字符?
    ::
    在感叹号之前,空格字符被找到。
    这是用一个黑色菱形标记在里面的问题。你设置的空间宽度,通过拖动预先宽度与任何其他符号。
     
     
    ?欧元符号在哪里?
    ::
    默认情况下,FontForge始于Latin-1编码一个新的项目(ISO 8859-1)。
    这套全英文字母,西欧口音,和一些北欧的象形文字,再加上各种符号和分数。欧元符号是在ISO 8859-1被发明,所以他们把它一路下跌在8364位置以及一些其他的货币符号。欧元符号也发现与其他符号正确表示如果你设置的编码模式的latin-0(ISO 8859-15)。
     
     
    ?为什么是字形表这么长时间,当我打开Unicode BMP/Full?
    ::
    因为Unicode长,它包含了超过十万字形。他们中的大多数是中国和日本的文字,还有块希腊,斯拉夫(俄罗斯),切诺基,甚至埃及象形文字。这并不意味着你可以忽略一切后的字符虽然。许多英语标点符号像-,-,?,引号,和数学运算符,如减符号被发现“下方的褶皱”。访问一个简单的方法是设置你的编码方式,像Adobe的标准或Macintosh拉丁。
     
     
    ::为什么ttf2afm会出错,在处理FontForge生成的TTF文件时?
    ::
    我不知道。我的ttf2afm程序,在RedHat 7.3 Linux确实崩溃。当我下载了源从CTAN pdfTeX面积和建造它(调试)生成的程序没有崩溃。因此,我相信这是ttf2afm bug,bug已经修复。
    通过ttf2afm产生的AFM文件,不符合Adobe的规格。,
     
    ?为什么许多不同的字体名称相同意思吗?
    ::
    菜单:Element->Font Info,显示字体名称窗格与几个不同的领域
    为什么会有这么多的人,他们都是什么意思?
    名称窗格包含用于PostScript字体名称。还有一个名字窗格包含TTF相似的一套用于sfnts名称(一个sfnt是字体文件的格式,包括字体,字体,和一些比较?�淖痔甯袷剑�?
    字体可以包装在一个sfnt后记。在这种情况下,它可以有一套后记的名字,和一套sfnt(TTF)名称。这些名字可能是不同的(通常不是一个好主意,但他们可能是)。
    “人类的名字”是传统与字体关联的名称。它可能是“新世纪教材斜体# 4”。这是一个字符串,应用程序可以用来显示当他们想让人类知道什么是字体。
    该字体的存在是因为PostScript是一种编程语言,这是用来确定在PostScript字体名称。它对可能在名称中的字符有限制(没有空格是最大的。但它也不能像一个数字,没有圆括号等)和长度的名称。它可能看起来像“itcnewcenturyschoolbook斜体”。
    姓是一个家族的名字。在上面的例子中,“新世纪教材”可能是姓。,”库文件名”是不是一个真正的名字与字体本身相关。它只不过是让你的生活更容易在使用FontForge。当你产生一个字体,FF会为你选择一个默认的文件名(你可以改变它,当然,如果你想使用默认名称是一个很方便的)。
    通常情况下,默认名称将只与一个扩展的字体添加。但有时人们想要一个不同的名称为默认,也许只是newcentschlbk-ital.ttf。
    因此,控制包含字体文件的默认文件名,并没有直接涉及到字体本身的东西。修饰字符串是“粗”,“黑”,“细”,等,不包括其他文体的变化(你不会把斜体或凝聚在这里)。
    版权字符串应该是自解释的。,除了字体信息的“名”窗格中,还有一个TTF名称窗格。
    在许多方面,这是一个重复的名称窗格,但有一些差异。它是用来指定名称的sfnts。,这里
    更复杂的事情,有例如:WWWS Family, ?WWS SubFamily,我真的不明白为什么这是必要的,但微软认为他们是。据我所能告诉他们应该(在大多数情况下)一样,因此应省略。
    CID字体应该是除非你正在建设一个CID键字体忽视(这通常意味着你正在一个CJK字体,)。
    这是兼容的另一个名字。我想应该是姓名相同,并应略。, TTF名称可在多个指定语言和书写系统。翻译最频繁的条目是亚族。因此,斜体字体,你会有一个英语入门“斜体”,也许
     
    ?我的FontForge不断崩溃,因为保持内存超出。我能做些什么呢?
    ::
    买更多的内存,如果你编辑大字体,FontForge可能耗尽内存。
    往往当FF耗尽内存,内核会崩溃而不是错误情况的报告。FontForge不分配失败和尝试释放一些记忆块当系统返回一个错误–我从未见过这个代码激活,虽然检查n次。
    FontForge的确提供了一种机制,可以帮助你避免这种。FontForge通常浪费很多记忆保存的撤消左右。
    你可以明确的撤销与字形与编辑->删除撤消命令。你也可以限制一些撤消,:File->Preferences->Editing->UndoDepth
     
     
    ?为什么FontForge如此不稳定?<</div>
    ::
    做质量保证,太麻烦。我不喜欢这样做,也没有人付钱让我去做,所以很少有人做。
    如果你愿意做质量保证,让我知道(这是一个公共邮件列表)。这是一个吃力不讨好的工作,但很重要!<</div>
     
     
    ?为什么FontForge 在Xgl/Compiz下难看?<</div>
    ::
    我还不知道,但是我告诉你可以把它设置:xlib_skip_argb_visuals = 1
     
    ?我为什么不说在会议吗?
    ::
    因为我没有什么话要说,
     
     
    泰森:我不被发现。我完全占领了其他地方。如果你想找到我,我将在我的书房里。你可以敲门,但我会给你答复的。我希望能和我的信念独处。晚上好。
    -《这女人不是为了燃烧》,克里斯托弗弗莱,
     
    对伟大的问题的答案…?
    是的…!是……是的…!是……是的…!!!……?
    “四零二,”深沉的思想与无限的威严和平静。
    “四零二!“
    loonquawl喊道,“你得给七个百万年的工作?
    “我很彻底地检查了一下,”计算机说,“这很肯定是答案。我认为这个问题,对你很诚实,是你从来没有真正知道的问题是什么。
    –《漫游指南银河》,道格拉斯亚当斯,
    这都是柏拉图,在柏拉图:保佑我,他们怎么教他们这些学校的?<</div>
    –《最后的战役》,路易斯
     
    ”我已经回答了三个问题,这就够了,”
    父亲说,“别摆架子!你认为我能整天听这些东西吗?下车,否则我就把你踢下楼梯。”
    –《你老了,威廉爸爸》,卡罗尔刘易斯
     
    原文:《FontForge常见问题FAQ》
    http://fontforge.github.io/en-US/faq/
    翻译:字王·中国
    blog:http://blog.sina.com.cn/zbrow
     
    ================
    ps:有趣的是,这个FAQ的第一个问题就是,为什么需要新字体
    经常有人问我这个错误的问题,你不会去问一位画家,他是不是已经有足够的水彩。
     
    英文毕竟十万种了,设计简单,面临的压力,是创新困难。
    与字王blog《没的选择时,存在就是合理的》遥想呼应
    http://blog.sina.com.cn/s/blog_7100d4220102vqqx.html
     
    QQ群 247994767(delphi与halcon) 【zw版《delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/ 】 QQ:2592439395(zw) , delphi+halcon,图像分析神级配置, 分分钟秒杀 c+opencv,python+opencv,c+matlab, 以及其他各种组合
  • 相关阅读:
    win10安装Redis
    imemode属性解释
    DataTable导出到Excel
    Oracle中wm_concat函数报错解决方法
    GridView中生成复合表头
    WinXP下无法打开ACCESS解决办法
    提醒功能
    网页常用Javascript
    ASP.NET记录错误日志
    GridView中Js的应用
  • 原文地址:https://www.cnblogs.com/ziwang/p/9500394.html
Copyright © 2011-2022 走看看