LinuxGem
此处为老的 LinuxGem,新版 LinuxGem 请移步 www.linuxgem.org

用 fontforge 调整字体不尽人意之处

galeki posted @ 2009年11月25日 04:48 in 文档编辑与排版 with tags fontforge OpenType , 12805 阅读

以调整 AdobeSongStd-Light.otf 字体中的中文逗号的微小瑕疵为例,展示 fontforge 的基本用法。

这两年,估计 XeTeX 或者 LuaTeX 的用户对 OpenType 字体不会陌生,因为这两个 TeX 引擎都以直接支持系统本地 TrueType 和 OpenType 字体而著称。目前免费的中文 OpenType 字体仅有 Adobe 公司伴随 Adobe Reader 发放的宋体(AdobeSongStd-Light.otf) 和黑体(AdobeHeitiStd-Regular.otf),它们都可以在你所安装的 Adobe Reader 目录中找到。

Adobe 宋体在设计上算是中规中矩,但是也是略微有些瑕疵,比如中文逗号。下面我采用 LuaTeX 对 Adobe 宋体与大家所熟知的 SimSun 字体的中文逗号做一下比较:

Adobe 宋体

SimSun 宋体

稍微细心观察应该可以看出 Adobe 宋体的中文逗号的位置有些过于靠下了,甚至超过了底线。如果只是用 Adobe 宋体做做字处理的话,这个瑕疵可以视而不见。不过,要是想调整一下,用 fontforge 可以很容易做到。

首先,用 fontforge 打开 Adobe 宋体:

$ fontforge AdobeSongStd-Light.otf

在 fontforge 的“CID" 菜单中选中 "AdobeSongStd-Light-Hanzi" 以打开 Adobe 宋体的汉字部分,然后在 "View" 菜单中选中 "Goto" 打开 fontforge 字符定位对话框,在其中输入中文的逗号字符(输入的字符可能显示的不正确,但是不影响使用),确定之后,就可以将 fontforge 窗口中的字符位置定位到 “,”:

鼠标左键双击上图所示的“,”位置,即可打开该符号的编辑界面:

摁住鼠标左键并拖动,框选字符轮廓:

然后用键盘的 Up 键将选中的字符轮廓向上平移,直到自己感觉舒适为止,譬如:

这样调整完毕后,在 "File" 菜单中选择 "Generate Fonts" 来生成字体,对打开的字体生成对话框,设置如下:

最后 "Save" 即可生成新的 Adobe 宋体。

再使用这个 hack 过的 Adobe 宋体,中文逗号的效果如下:

个人认为要比 hack 之前的顺眼多了。

当然,这只是用以演示 fontforge 的小示例。事实上,我们可以用 fontforge 对字体来进行更复杂的修改,也可以设计字体。

  • 无匹配
  • 无匹配
艺风 说:
2010年8月18日 03:50

楼主是专业搞字体设计开发的?真的很细心哦,我从来没关注过这些细节呢……

cyh7900 说:
2014年5月29日 16:20

觉得上移了才别扭啊...

Design Iron On Patch 说:
2020年7月13日 15:03

you could have a fantastic weblog here! would you wish to make some invite posts on my weblog?

youtube converter mp 说:
2020年7月18日 20:12

Wow! This can be one particular of the most useful blogs We have ever arrive across on this subject. Actually Great. I’m also an expert in this topic so I can understand your hard work.

YouTube Viral Promot 说:
2020年7月19日 20:44

F*ckin’ awesome issues here. I’m very satisfied to peer your post. Thanks a lot and i am having a look forward to touch you. Will you kindly drop me a e-mail?

judi ceme online ter 说:
2020年7月19日 20:56

you employ a fantastic weblog here! do you want to have invite posts on my own blog?

cbd store fort worth 说:
2020年7月24日 23:06

I conceive you have noted some very interesting details , regards for the post.

Read More Here 说:
2020年7月29日 16:24

I conceive you have noted some very interesting details , regards for the post.

123movies 说:
2020年8月06日 16:30

I’m curious to find out what blog system you’re utilizing? I’m having some small security problems with my latest website and I would like to find something more risk-free. Do you have any recommendations?

SM카지노먹튀 说:
2020年8月17日 22:28

I precisely needed to appreciate you once again. I am not sure the things that I would’ve gone through without these tips shown by you about that subject. It actually was an absolute frustrating dilemma in my circumstances, however , taking note of the professional technique you solved it took me to weep over contentment. Now i am grateful for your assistance as well as believe you find out what a powerful job that you are providing training many people using your website. Most likely you have never got to know all of us. [Reply]

navarre rental manag 说:
2020年8月20日 20:55

The article posted was very informative and useful. You people are doing a great job. Keep going.

먹튀검증사이트 说:
2020年9月05日 21:39

I truly appreciated this gorgeous blog. Make sure you keep up the good work. Best Regards .

abouttechinfo 说:
2020年9月12日 15:05

Superb post but I was wanting to know if you could write a litte more on this subject? I’d be very thankful if you could elaborate a little bit more. Thanks!

ترفند بازی انفجار 说:
2020年9月14日 13:31

stuffed animals are very cute and lovely, i bet that most kids and even women loves them“

آموزش بازی انفجار 说:
2020年9月15日 19:26

stuffed animals are very cute and lovely, i bet that most kids and even women loves them“

مدل لباس مردانه 说:
2020年9月16日 15:30

This is really interesting, You’re a very skilled blogger. I’ve joined your rss feed and look forward to seeking more of your magnificent post. Also, I’ve shared your web site in my social networks!


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter