《FontForge常见问题FAQ》 字王翻译版
翻译: 字王·中国 blog: http://blog.sina.com.cn/zbrow
===============================
FontForge常见问题FAQ
Sir Toby: Thy most exquisite reason,
dear knight?
dear knight?
Sir Andrew: I have no exquisite
reason for’t, but I have reason good enough.
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
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编写扩展功能。
Python(而不是相反)。现在我认识到,没有理由,我不能定义一套内置c语言模块,使人们可以使用c语言,为FontForge编写扩展功能。
每一个阶段意味着,我能看到一点点的未来,然后再去完善一点点,然后再看一点点的未来。
而且,想法经常会来自用户,有人会问我没有想到的功能。我发现我写的东西有一半是没有发生过的,大部分时间我都懒得去更新页面。我会忘记它。那是无聊的。我最好是简单地去做,我不喜欢推测。
所以,不要问我:接下来会发生什么,因为我不知道。这是一次冒险。我们只能等着看。
?你开发FontForge,是不是类似烤面包的工作?
::
(这个问题,源自一个开源媒体的采访,LGM2007)
我喜欢做事,我喜欢做一些特别的、美丽的事情。我不知道与烤面包有什么关联,但我觉得我做了漂亮的锅。我真的喜欢装了玻璃窗口。
很难说字体编辑器是美丽的。但我认为,这背后的想法是美丽的,在我的脑海中,在某种意义上,我发现用户界面美观。我不知道世界上还有谁会做,因为这是我想要的,而且我认为它是美丽的。
在做些什么,做些什么,是很有满足感的。
在制作一些我需要的东西时,也有一种满足感(如面包)。我吃我自己做的面包,这就是我吃的面包。
所以我只是喜欢做些漂亮的事情。
?FontForge可以修改字体吗?这是否合乎道德?
::
许多现行的字体,都是以伟大的设计师的作品为基础的,从几百年的历史中来的,因此,利用他人的设计,有着悠久的历史。
另一方面,不管是什么法律,剽窃,对于任何一个设计师,它显然都是不道德的。
法律问题因国家不同而不同(也许是在国家)。你真的应该向律师咨询一个明确的答复。
以下是一些指南:
看看你使用的字体的的许可协议,
TrueType(OpenType字体)有个OS/2表,限制哪些字体可以修改。
TrueType(OpenType字体)有个OS/2表,限制哪些字体可以修改。
我对美国法律的理解是这样的:字体设计的法律保护是最小的。以前,法学家称“字母是公开的”,这意味着一种类型的设计不能受版权保护。
然而,(我告诉)一个设计师可以注册(与*)的设计专利,保护设计14年(如果授予)。我不相信它可以更新,但我可能是错误的。
注册专利是一项昂贵且耗时的过程,往往是超出小型设计公司的能力。据我所知,相关法律从未在美国进行过测试,所以这可能是值得怀疑的。
字体的程序(如PostScript或TrueType字体文件,但不是一个位图字体文件)可能是受版权保护的。这就意味着设计本身没有被保护,但它的机制是创造它。
字体的名称可能是商标,在英国:有一些所谓的“设计权”,有点像版权,对设计作品提供5年的保护。设计师可以注册的多达5次,以延长这种保护到25年(在整个欧盟)。我不知道这些具体的细节,也不知道如何与国家具体的法律(如英国的设计权)。
在加拿大:字体设计可以被注册为一个有限的时间(15年)的“工业设计”,我欢迎任何补充或更正,以及在其他国家的法律法规的信息。
?什么是12点(point尺寸)字体?(如何测量的字体的点?)
::
字体尺寸(pointsize),不是基于任何的字体大小。
12点字体,是指,字体相邻两行文本的基线之间的距离是12点。
过去,字体都是由金属制成,该字体的尺寸,是指用于字体的金属模块的高度。在某种意义上,这是不是一个很好的字体尺寸标准(有些字体可以上升或下降更多的空间,实际的符号高度更小)。
还有一个基于象形文字的高度的测量方案。,在英国和美国,历来是
1/72.27英寸,而在欧洲其他国家,是1/67.54英寸。欧洲版本的尺寸稍大一点,但英国和欧洲的字体符号,实际大小是相同的。因为,英语不使用重音(除了在极罕见的情况下),而大多数欧洲语言有音调符号,所以字体的点尺寸大小略有增加,以允许更多的口音的空间。
1/72.27英寸,而在欧洲其他国家,是1/67.54英寸。欧洲版本的尺寸稍大一点,但英国和欧洲的字体符号,实际大小是相同的。因为,英语不使用重音(除了在极罕见的情况下),而大多数欧洲语言有音调符号,所以字体的点尺寸大小略有增加,以允许更多的口音的空间。
(当然,现在大多数欧洲人,可能所以的是桌面软件,多数电脑字体现在包含重音符号,这些区别可能已经消失了)。
? 如何设置字体的行间距?
::
这取决于你设计的字体,你正在运行的操作系统,和运气。
Type1字体无法设置行间距。应用程序通常会使用字体的边界框中指定的值,并使用那些设置的行间距。这是一个非常坏的想法,但这是一个普遍的做法。
对于True/Open Type字体的答案是复杂的。
在MAC系统,行距设置的上升和下降值虽然有”hhea”表,用于设置字体的边框值。另外一个不太好的选择,您可以通过以下菜单进行调整:Element->Font
Info->OS/2->Metrics
Info->OS/2->Metrics
在Windows中,行间距应该设置在OS/2表,不幸的是,大多数Windows应用程序不遵循这个规则,同样,您可以通过以下菜单进行调整:Element->Font
Info->OS/2->Metrics
Info->OS/2->Metrics
对于Linux系统,我不知道有一个普遍的共识,一个应用程序可能会使用上述方法之一。
现代字体往往有几种不同的风格,可能有不同的行间距要求。即使在同一种风格,也可能有差异,例如,英国不使用(或极少数)重音符号的字母,而其他大多数欧洲语言有音调符号。
字体的行间距,不是一个全局指标,OpenType允许你,根据脚本,语言和特征,指定范围。
?我的符号是多大?
::
不幸的是,这个看似简单的问题,无法简单地回答。
你可以是任何大小的。轮廓字形可以缩放,而位图字形,将取决于屏幕分辨率大小不同。
假设你有一个轮廓字体,你画为12点。然后我们就可以回答这个问题,假设你有一个500个单位长的划线符号,字体大小为1000个单位。然后你的字形将是500/1000
* 12 = 6点。在72 dpi的屏幕,这将意味着6像素长。
* 12 = 6点。在72 dpi的屏幕,这将意味着6像素长。
?什么是em单位?(内部单位?)
::
当您创建字体时,您可以使用:lement->Font
Info->General,设置字体大小。
Info->General,设置字体大小。
对于金属字体,这是排版基线到基线的距离。
一般的em单位,大小是1000或2048。用:内部单位数(也叫EM单元)来表示他们。
?对于开源字体上,什么授权方式更好一些?
::
在开源授权模式下,许多字体已经被发布,但这些都不能满足字体设计师的特定需求。我知道有专门为字*作的授权模式。
我推荐源自SIL的开源字体授权模式许可,这些授权,虽然没有法律约束力,但可以帮助阐述非英语用户的授权意图。
Vera字体字体采用Bitstream授权模式
GNU授权模式,也经常使用。
?使用FontForge软件的最低要求
::
这很大程度上取决于你想做什么。FontForge主要受限于内存(虽然屏幕尺寸也可能是一个问题)
如果你使用脚本模式,字库不超过几百个简单的符号(如拉丁字母),192MB内存,就绰绰有余。
如果你是做编辑CJK、UNICODE中文、日文字体,最低内存要求是
512MB。
512MB。
FontForge需要彩色(或灰度)显示器,黑与白是不够的。
?FontForge ,为什么用这么多的内存?
::
字体一般都存储在一个非常紧凑的文件中,字体设计成容易光栅化的格式,它们不是用于被编辑的。
当加载一个字体文件时,FontForge需要把它,扩展成一个更直观的格式,编辑起来更容易。但要大得多。
也许应该改写FontForge,使用更高效的存储表示。但这是一项巨大的工作,对我来说,并不感兴趣。
SFD文件非常大。因为他们是采用ASCII表示同样的扩展格式。他们不是设计得紧凑而清晰可辨。
?如何安装字体?
::
好吧,这取决于你在做什么系统,以及你有什么类型的字体
* UNIX和X 系统 ,
轮廓字体和fontconfig
,很多程序现在使用fontconfig找到字体(包括FontForge)。安装fontconfig字体,简单的复制文件到你的字体目录:~/.fonts,即可。
,很多程序现在使用fontconfig找到字体(包括FontForge)。安装fontconfig字体,简单的复制文件到你的字体目录:~/.fonts,即可。
位图字体,和X11系统的字体安装,建议你看看Linux 字体
HOWTO文件。
HOWTO文件。
基本上,你将一个(或几个)目录指定为“字体目录”。您将您的字体复制到该目录,你需要在你的字体路径中包含这个目录。
可悲的是不同版本的系统,和不同格式的字体,使用略有不同,你可能需要修改这些程序。
** KDE ** ,
(我不知道KDE很好,所以的经验和浅薄)
KDE有个工具叫kfontinst,可以用于安装、配置字体。
** TeX **
TeX有自己的(跨平台)安装字体系统。
* Windows **
你安装的TrueType字体文件,一般保存在:\Windows\Fonts
目录。
目录。
在安装之前,您可能需要在字体上设置“执行”权限位。
不要直接复制字体文件到 \Windows\Fonts
目录,这似乎没有作用(至少在我的XP下)。
目录,这似乎没有作用(至少在我的XP下)。
如果你想使用Type1字体,你需要安装Adobe Type
Manager。如果你想安装OpenType字体,在旧的windows系统(在Windows
2000之前,我认为)你需要安装ATM。
Manager。如果你想安装OpenType字体,在旧的windows系统(在Windows
2000之前,我认为)你需要安装ATM。
* * Macintosh OS 9 * *
哦亲爱的。苹果把字体贴在资源叉上,把它们用在自己的头上。
MAC字体不与其他的兼容,具体请参看系统帮助。
** Macintosh OS X **
在OS X,字体应放在顶层:/Mac OS
X/Library/Fonts/ 目录,或用户指定的目录:~/Library/Fonts
X/Library/Fonts/ 目录,或用户指定的目录:~/Library/Fonts
?
为什么一些Windows电脑上,无法安装FontForge设计的字体?
为什么一些Windows电脑上,无法安装FontForge设计的字体?
::
通常都是字体安装时,出现的操作错误,例如直接复制字体文件,而不是安装字体。
另外,(2009)Windows安全补丁决定:字体的“名字”表大于5K是不安全的,拒绝安装。这是由于在字体中包含的许可证的全文而引起的。
某些老版本FontForge设计的字体,无法安装于Windows
2000(和XP)系统。如果你有一个旧版本,请升级吧。
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)。
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”图标,为什么?
我有一个表格的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字体文件)
一个存在的字体文件(ttf字体文件)
2.Element->Font Info->Layers
菜单,选择 <*> All layers cubic选取框
菜单,选择 <*> All layers cubic选取框
3.Edit->Select->Select
All
All
4.Element->Simplify->Simplify,优化样条曲线
5.Hints->Auto Hint,自动调整间距
6.Element->Generate
Fonts,生成另外一种格式的字体文件
Fonts,生成另外一种格式的字体文件
从
PostScript(otf、pfb)格式字库,转化为ttf字库,步骤如下:
PostScript(otf、pfb)格式字库,转化为ttf字库,步骤如下:
1 .File->Open
一个存在的字体文件(otf、pfb字体文件)
一个存在的字体文件(otf、pfb字体文件)
2.Element->Font Info->Layers
菜单,选择 <*> All layers quadratic选取框
菜单,选择 <*> All layers quadratic选取框
3.Edit->Select->Select
All,
All,
4.Hints->AutoInstr, 自动调整间距
5.Element->Generate
Fonts,生成另外一种格式的字体文件
Fonts,生成另外一种格式的字体文件
?如何从一个位图格式转换为另一个?<</div>
::
这很容易,打开一个位图字体,然后使用:Element->Generate,生成所需的输出字体。
? 如何从轮廓格式转换为位图格式?
::
加载轮廓字体。然后使用:Element->Bitmaps
Available,即可。
Available,即可。
这个过程被称为光栅化,电脑做小像素尺寸,很困难,你或许需要对结果,进行修正:
1,Window->Open Bitmap Window
2,修正字体符号
3,Element->Generate
Fonts,生成字体文件,注意关闭轮廓字体生成,并选择所需的位图格式。
Fonts,生成字体文件,注意关闭轮廓字体生成,并选择所需的位图格式。
? 如何将位图格式转换为轮廓格式?<</div>
::
除非你有一个非常大的位图字体(如TeX字体),下面的过程不会产生好的结果。
1,在你做其他事情之前,确保你的系统已经安装了potrace,或AUTOTRAC矢量化程序
2,创建一个新字体
3,使用File->Importcommand菜单,导入位图字体到新的字体,一定要取消[Background](背景)复选框,
4,菜单 Edit->Select->Select
All,
All,
5,菜单
Element->Autotrace,自动矢量化
Element->Autotrace,自动矢量化
6,菜单 Element->>Add
Extrem,
Extrem,
7,菜单 Element->Simplify,优化曲线,
8,人工审核、修整各个字体曲线河节点
9,Element->Generate
Fonts,生成新的字体文件
Fonts,生成新的字体文件
?如何从苹果的Typography字体转换为OpenType?
::
这些字体格式,有许多相似之处,但重叠不全,大多数转换会丢失一些信息。简单的答案是,这是非常自动的。
你读入苹果的字体,选择等效的[*]
OpenType字体复选框选中的选项对话框。
OpenType字体复选框选中的选项对话框。
FontForge自动匹配的OpenType特征。
? 如何从OpenType字体转换为AAT格式?
::
这主要是自动的。
读入OpenType字体,并产生一个等效的字体与[*]苹果的复选框选中的选项对话框。
FontForge能够自动转换为AAT格式。
?FontForge如何调整Hints间距?
::
它是自动设置的。
你可以通过选择一个点和选择元素来控制,菜单为:Element->Get Info->Hint Mask.,
?我怎么能让FontForge使用Flex Hints间距?
::
基本上是自动的。FontForge将在适当的时候,自动生成相关的Flex
Hints间距。你不需要做任何事。
Hints间距。你不需要做任何事。
? 我如何才能告诉你,需要使用UpdateFlex
Hints间距?
Hints间距?
::
如果你想看看FontForge要使用Flex的提示,打开UpdateFlex菜单和字形。
FontForge会显示一个绿色的光环,围绕一个Flex暗示的中心点。
?
我的符号是所有完美的暗示,为什么有的宽度不同(或出现?蛲耆В?
我的符号是所有完美的暗示,为什么有的宽度不同(或出现?蛲耆В?
::
PostScript和TrueType字形绘制要求,以顺时针的方式。一些光栅化程序不在乎。但是其他的光栅化会有困难与逆时针路径产生不同宽度的茎时,他们应该是相同的,或?木ィ蚋久挥小?
解决的方法是,选取菜单:Element->Correct
Direction,调整 所有你之前生成的字体。
Direction,调整 所有你之前生成的字体。
但有时,穷人就不能做正确的事……
?
我装一个TTF字体,做了一些改变,产生了一个新的字体。新字形看上去远不如原件,为什么?
我装一个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格式。
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:
base:
1,菜单 Element->Font Info
2,选择“编码”选项卡
3,从下拉列表选择TeX Base。
?
为什么FontForg不让我e编辑“.MF”格式的字体文件?
为什么FontForg不让我e编辑“.MF”格式的字体文件?
::
如Knuth说:“(与WSYWYG问题是……),你所看到的就是你得到的。”
? 使用非整数坐标是安全的吗?
::
FontForge允许你非整数坐标编辑。许多字体编辑软件,有些怀疑非整数坐标的使用,光栅化时,它将扭曲自己的字体。
答案取决于字体格式和如何保存字体,
TrueType字体只能表示整数坐标。
TrueType字体只能表示整数坐标。
当FontForge创建TrueType字体,将所有坐标转换为整数,这一点在曲线中会有轻微的变形。
PostScript(type1,type2,OpenType字体等),可以使用非整数坐标,但占用更多的空间。
type1字体往往需要更多的空间,来表达type2型(OpenType字体)字体。
默认情况下,FontForge使用整数坐标,但你可以改变,在生成选项对话框。
如果你的字体是圆形的,那么会有一些失真。如果不是圆形的话,应该就没有失真。
PostScript字体,应使用安全的非整数坐标,当您生成字体,字体文件将更大,但更准确。
如果你觉得需要更准确的TrueType字体,可以改变他们的大小为8096。,你可以在后记Type1字体太大,然而,也有一些应用,假设所有的OpenType
PostScript字体有一个EM大小为1000,所以最好不作为 OpenType输出。
PostScript字体有一个EM大小为1000,所以最好不作为 OpenType输出。
?为什么是我的Open Type 字体文件很大?
::
这可能是因为,保存字体之前,你没有将坐标整数化。
FontForge将使用浮点数,保存字体,这会数占用大量空间。
?
当我读入OTF或type1字体,我的大部分的引用被内联副本替换。我如何得到我的资料?
当我读入OTF或type1字体,我的大部分的引用被内联副本替换。我如何得到我的资料?
::
加载PostScript字体时,找出老引用非常困难。
相反FontForge有一个特殊的命令,参考
Edit->Replace ,可以搜索字体中的潜在候选。
Edit->Replace ,可以搜索字体中的潜在候选。
? FontForge使用旧的 ‘kern’字距调整信息吗?
::
这个问题需要分解为:
** TrueType和OpenType字体**。
字距调整信息是存储在 ‘kern’”或‘GPOS’
这些字体表中,FontForge可以调用。
这些字体表中,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).,
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:
All:
2,菜单
Element->Transform->Transform
Element->Transform->Transform
3,Scale Uniformly: 1000%
4,OK
5,Simplify,曲线优化
6,Scale Uniformly: 10%,
7,OK,
这将用一个样条,来替换一组与原来不同的样条,1个单位。
?
如何将一个cubic三次样条,转换为quadratic二次样条?
如何将一个cubic三次样条,转换为quadratic二次样条?
::
这可能会有些精度损失。否则FontForge,将原始样条分成更小的部分,并试图找到一套二次样条不同于立方不超过一个单位的任何地方。
(一旦你选择了2个端点,并且在这些端点处了解该斜率,两者之间可能只有一次二次样条)。
?
如何将一个quadratic二次样条,转换为cubic三次样条?
如何将一个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 默认的)
1000,单击“确定”,或如果你的字体有不同的数,他们使用单位,但1000是FontForge 默认的)
4,设置水平导线在200px
5,设计一个glyph,最难的部分!
6,保存的图纸为SVG文件
7,打开FontForge
8,菜单 File -->
Import,选择SVG,找到你的图,点击OK
Import,选择SVG,找到你的图,点击OK
9,菜单 Element -->
Transform,
Transform,
10,将Y设置为200,单击“确定”
? FontForge的灰色背景让我苦恼。我如何改变它?
::
在×资源网页上,有相关的讨论。
?FontForge
,字体使用其界面太小(太大了)。我如何改变他们?
,字体使用其界面太小(太大了)。我如何改变他们?
::
X服务器无法调整屏幕分辨率,当FontForge调整它时,往往会出错。(新版本,已经基本解决了此问题)
? 我如何标记为等宽字体?,
::
你只需确保字体有相同的宽度,然后FontForge会自动标记为等宽。
(如果你标记为等宽,一些光栅化会给奇怪的结果)。
如果你想设置,菜单:Element->Font
Info->OS/2->Panose
Info->OS/2->Panose
然后设置比例场等宽,这是必要的但不足以标记字体作为一个整体等宽。
如果你不确定是否所有的符号,你的字体有相同的宽度,使用菜单:Element->Find
Problems->Random->Check Advance
Problems->Random->Check Advance
当我说“all
glyphs“,我真的是说所有字符,甚至符号中的Unicode表示应我0宽度的,都必须有相同的宽度。
glyphs“,我真的是说所有字符,甚至符号中的Unicode表示应我0宽度的,都必须有相同的宽度。
?我怎么告诉FontForge新的编码?
::
先问问你自己是否真的需要一个新的编码?
如果你正在使用OpenType字体或字体通常可以得到标准的Unicode编码。
但是,如果你真的需要一个新的,在这里是一个粗略的想法:
弄清楚你的编码是什么样子。通常,这将包括在网络上寻找一个编码的例子。例如,如果你想要一个梵文字母编码,你可以看看网站说明ISCII编码
这些编码只显示前96个字符,大概也像我们一样的ASCII。看图片,找出它们如何映射到Unicode(或者更确切地说,那些人物适当的后记的名字是什么)。
创建一个文件(称之为“梵文。PS”在这种情况下)。它应该从一条线:,
\/梵文{ ,这告诉FontForge,编码被称为“天城”,然后按照这个名单的所有角色的名字(之前有一个斜线)。
\/梵文{ ,这告诉FontForge,编码被称为“天城”,然后按照这个名单的所有角色的名字(之前有一个斜线)。
现在加载此文件为FontForge的编码,菜单Encoding->Load Encoding
?如何添加一个新的名字符号?
::
让我们说你想添加一个“dotlessi”字形的字体(ISO-8859-1编码不包括dotlessi)。
解决这个问题的方法有:
1,菜单 Encoding->Add Encoding
Slots,找到你要的号码类型(大概1)
Slots,找到你要的号码类型(大概1)
2,按OK键向下滚动到结束的字体,和找到新的符号,菜单:Element->Glyph,键入你的新名字为Unicode名称字段
3,菜单
Encoding->Reencode->ISO-10646-1
Encoding->Reencode->ISO-10646-1
4,菜单 View->Goto Type
5,现在开始设计符号
6,菜单
Encoding->Reencode,再次改变编码
Encoding->Reencode,再次改变编码
? 为什么FontForge给我的一些符号名字错误?
::
FontForge的命名约定是在Adobe的字形的命名约定,指定,不幸的是,有一些问题(一般为旧编码兼容)。
?在我生成的字体和退出,为什么FontForge问我是否要保存的字体?我什么也没变。
::
有两个原因可能发生:
1,即使你没有在这个会议上改变什么,FontForge可能需要(重新)产生暗示在一个或几个符号信息(如,例如那些符号已经改变(在以前的会话)但没有提示已生成他们自)。这些新提示将标志着字体的改变。
2,如果你的字体在字体信息的XUID区,然后FontForge会增值的最终数量在xuid每次PostScript字体生成–,这也算是一个改变。FontForge(为什么这样做?因为它应该说。一个小的烦恼,但它避免了一些问题与字体缓存时,你改变了一个旧版本的字体为一个新的一个)。
? 为什么我的窗口图标化的时候,我想得到缩小视图?
::
一些窗口管理器(gnome)键盘冲突,您必须使用“视图”菜单->缩小相反。
? 为什么在希腊字体里没有一个叫字符“mu”?
::
Adobe想得更多的是,向后兼容,当他们在Unicode编码,分配希腊字母时。因此得名“mu”指的是微信号(U +
00b5),而不是字符“mu”。
00b5),而不是字符“mu”。
?为什么Edit->Copy,不能复制符号名称以及字形信息?
::
首先是因为我相信,任何复制一个字形的名称的尝试,都可以通过定义一个自定义编码来更好地进行。
其次,因为大多数时候你不想被复制的名字。
再次,因为它是审美的,应该只有更好的数据和元数据的工作。
不过……
有足够多的人问这个问题,我已经启用了一种模式,在编辑-复制从-
>字符的名称,允许您改变默认的行为。
>字符的名称,允许您改变默认的行为。
? 为什么Edit->Paste,名称重复?
::
因为你有:Edit->Copy From->Copy
Metadata, 复制元数据检查。选中它。
Metadata, 复制元数据检查。选中它。
? 如何设置字体的默认字体?
::
如果字形命名”。notdef”,包含了一些样条(但没有引用),它将作为默认的符号(即字形时使用非编码符号)。
如果字形命名”。notdef”,包含了一些样条(但没有引用),它将作为默认的符号(即字形时使用非编码符号)。
除了在OpenType字体(即
PostScript,OpenType字体),的".notdef"字形不用于默认字形,而是“空”字形。(别看我,我没有写规格)
PostScript,OpenType字体),的".notdef"字形不用于默认字形,而是“空”字形。(别看我,我没有写规格)
?我看着华文楷体或mingliu.ttf和轮廓看起来像正确的符号。怎么了?
::
有些TrueType字体(如华文楷体或mingliu)不存储正确的轮廓。
相反,他们依靠使用指令移动,产生轮廓。这个轮廓看起来不是很适合网格的,只是位置。
FontForge不会说明,因为它读取字体。在大多数字体中,这将是错误的事情,我不知道:我怎么能告诉什么时候需要做……
?当我使用:Element->Build->Build
Accented Glyph ,建立重音符号,来建立一个扩展的希腊铭文(U + 1f00-u +
1FFF),FontForge挑选错误的口音。为什么?
Accented Glyph ,建立重音符号,来建立一个扩展的希腊铭文(U + 1f00-u +
1FFF),FontForge挑选错误的口音。为什么?
::
因为Unicode统一了希腊语和拉丁语口音,即使他们不一样。
当FontForge遵循简单的Unicode定义,它可能会选择一个希腊符号拉丁口音。
幸运的是Unicode也包含希腊口音大约从U +
1fbd代码点,如果你把这些代码点与适当的口音,然后FontForge将使用这些而不是拉丁口音。
1fbd代码点,如果你把这些代码点与适当的口音,然后FontForge将使用这些而不是拉丁口音。
?当我使用: Element->Build->Build
Accented Glyph,建立重音字形,“U”或“Y”我的口音不在字形中部。为什么?
Accented Glyph,建立重音字形,“U”或“Y”我的口音不在字形中部。为什么?
::
你的一个笔画比另一个高一点。FontForge口音中心在字形的最高点。如果有几点相同的高度,那么平均使用。
如果你的所有的笔画是相同的高度,那么重音应该是适当的集中。
?我做了所有的字母,但字体仍然是缺失字符言,乱码?
::
一些字体软件(如默认的Ubuntu字体查看器),要求所有的A–Z字母,加上所有的数字和标点符号如“,否则他们就吐出的胡言乱语。
?如何设置空格字符?
::
在感叹号之前,空格字符被找到。
这是用一个黑色菱形标记在里面的问题。你设置的空间宽度,通过拖动预先宽度与任何其他符号。
?欧元符号在哪里?
::
默认情况下,FontForge始于Latin-1编码一个新的项目(ISO
8859-1)。
8859-1)。
这套全英文字母,西欧口音,和一些北欧的象形文字,再加上各种符号和分数。欧元符号是在ISO
8859-1被发明,所以他们把它一路下跌在8364位置以及一些其他的货币符号。欧元符号也发现与其他符号正确表示如果你设置的编码模式的latin-0(ISO
8859-15)。
8859-1被发明,所以他们把它一路下跌在8364位置以及一些其他的货币符号。欧元符号也发现与其他符号正确表示如果你设置的编码模式的latin-0(ISO
8859-15)。
?为什么是字形表这么长时间,当我打开Unicode
BMP/Full?
BMP/Full?
::
因为Unicode长,它包含了超过十万字形。他们中的大多数是中国和日本的文字,还有块希腊,斯拉夫(俄罗斯),切诺基,甚至埃及象形文字。这并不意味着你可以忽略一切后的字符虽然。许多英语标点符号像-,-,?,引号,和数学运算符,如减符号被发现“下方的褶皱”。访问一个简单的方法是设置你的编码方式,像Adobe的标准或Macintosh拉丁。
::为什么ttf2afm会出错,在处理FontForge生成的TTF文件时?
::
我不知道。我的ttf2afm程序,在RedHat 7.3
Linux确实崩溃。当我下载了源从CTAN pdfTeX面积和建造它(调试)生成的程序没有崩溃。因此,我相信这是ttf2afm
bug,bug已经修复。
Linux确实崩溃。当我下载了源从CTAN pdfTeX面积和建造它(调试)生成的程序没有崩溃。因此,我相信这是ttf2afm
bug,bug已经修复。
通过ttf2afm产生的AFM文件,不符合Adobe的规格。,
?为什么许多不同的字体名称相同意思吗?
::
菜单:Element->Font
Info,显示字体名称窗格与几个不同的领域
Info,显示字体名称窗格与几个不同的领域
为什么会有这么多的人,他们都是什么意思?
名称窗格包含用于PostScript字体名称。还有一个名字窗格包含TTF相似的一套用于sfnts名称(一个sfnt是字体文件的格式,包括字体,字体,和一些比较?淖痔甯袷剑?
字体可以包装在一个sfnt后记。在这种情况下,它可以有一套后记的名字,和一套sfnt(TTF)名称。这些名字可能是不同的(通常不是一个好主意,但他们可能是)。
“人类的名字”是传统与字体关联的名称。它可能是“新世纪教材斜体#
4”。这是一个字符串,应用程序可以用来显示当他们想让人类知道什么是字体。
4”。这是一个字符串,应用程序可以用来显示当他们想让人类知道什么是字体。
该字体的存在是因为PostScript是一种编程语言,这是用来确定在PostScript字体名称。它对可能在名称中的字符有限制(没有空格是最大的。但它也不能像一个数字,没有圆括号等)和长度的名称。它可能看起来像“itcnewcenturyschoolbook斜体”。
姓是一个家族的名字。在上面的例子中,“新世纪教材”可能是姓。,”库文件名”是不是一个真正的名字与字体本身相关。它只不过是让你的生活更容易在使用FontForge。当你产生一个字体,FF会为你选择一个默认的文件名(你可以改变它,当然,如果你想使用默认名称是一个很方便的)。
通常情况下,默认名称将只与一个扩展的字体添加。但有时人们想要一个不同的名称为默认,也许只是newcentschlbk-ital.ttf。
因此,控制包含字体文件的默认文件名,并没有直接涉及到字体本身的东西。修饰字符串是“粗”,“黑”,“细”,等,不包括其他文体的变化(你不会把斜体或凝聚在这里)。
版权字符串应该是自解释的。,除了字体信息的“名”窗格中,还有一个TTF名称窗格。
在许多方面,这是一个重复的名称窗格,但有一些差异。它是用来指定名称的sfnts。,这里
更复杂的事情,有例如:WWWS Family, ?WWS
SubFamily,我真的不明白为什么这是必要的,但微软认为他们是。据我所能告诉他们应该(在大多数情况下)一样,因此应省略。
SubFamily,我真的不明白为什么这是必要的,但微软认为他们是。据我所能告诉他们应该(在大多数情况下)一样,因此应省略。
CID字体应该是除非你正在建设一个CID键字体忽视(这通常意味着你正在一个CJK字体,)。
这是兼容的另一个名字。我想应该是姓名相同,并应略。,
TTF名称可在多个指定语言和书写系统。翻译最频繁的条目是亚族。因此,斜体字体,你会有一个英语入门“斜体”,也许
TTF名称可在多个指定语言和书写系统。翻译最频繁的条目是亚族。因此,斜体字体,你会有一个英语入门“斜体”,也许
?我的FontForge不断崩溃,因为保持内存超出。我能做些什么呢?
::
买更多的内存,如果你编辑大字体,FontForge可能耗尽内存。
往往当FF耗尽内存,内核会崩溃而不是错误情况的报告。FontForge不分配失败和尝试释放一些记忆块当系统返回一个错误–我从未见过这个代码激活,虽然检查n次。
FontForge的确提供了一种机制,可以帮助你避免这种。FontForge通常浪费很多记忆保存的撤消左右。
你可以明确的撤销与字形与编辑->删除撤消命令。你也可以限制一些撤消,:File->Preferences->Editing->UndoDepth
?为什么FontForge如此不稳定?<</div>
::
做质量保证,太麻烦。我不喜欢这样做,也没有人付钱让我去做,所以很少有人做。
如果你愿意做质量保证,让我知道(这是一个公共邮件列表)。这是一个吃力不讨好的工作,但很重要!<</div>
?为什么FontForge
在Xgl/Compiz下难看?<</div>
在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