解决英文版Windows中中文字体难看的问题

在英文版Windows中默认字体一般都是Segoe UI、Tahoma、Microsoft Sans Serif之类,这些字体都是没有中文字库的,所以当需要显示中文字体的时候,就会出现各种难看的文字效果,例如:

解决方法是使用“字体链接(FontLink)”技术:就是在使用英文字体时,如果遇到这种字体中没有的字符,就会到注册表相应的位置去找它链接的字体。

Continue reading “解决英文版Windows中中文字体难看的问题”

Ubuntu 安裝思源字體

打自 Google 推出 思源 CJK 字體 (noto) 之後,我第一天就裝起來玩了。用了一陣子之後覺得真是不錯,即使字體設小,也是相當清析。不過我看不慣它的英文字型,太寬了點。最好的解決方案是英文和中文可以指定不同字型,別的系統可能做不到,但 Linux 就是什麼都能客製,難不倒它。

Continue reading “Ubuntu 安裝思源字體”

无心之失:解决LinuxMint/Ubuntu中文字体发虚的根本之道

作为从RedHat 8时代走过来的Linuxer,还魂草也与很多朋友一样,对当年的桌面Linux有点“恨铁不成钢”。印象最深刻的就是中文字体模糊、发虚,“不忍直视”。如果要手动配置出好看的中文字体效果,需要较多的知识、技巧和耐心。

作为从RedHat 8时代走过来的Linuxer,还魂草也与很多朋友一样,对当年的桌面Linux有点“恨铁不成钢”。印象最深刻的就是中文字体模糊、发虚,“不忍直视”。如果要手动配置出好看的中文字体效果,需要较多的知识、技巧和耐心。

Continue reading “无心之失:解决LinuxMint/Ubuntu中文字体发虚的根本之道”

寻找最美的字:一次关于“字体”的太空漫游

by 令狐磊
0被认为是人类第一部真正意义的太空电影的《2001太空慢游》在1968年开拍的时候,大导演库布里克已经为此准备了五年时间,为了让电影里面出现的内容都看上去都像是“未来的2001年”里的风格,电影的小说作者克拉克曾说“这电影的设计精妙到会让整整一代航空工程师按照影片的设计风格来设计航天飞机”。

 

库布里克其中一个看上去并不那么重要的项目,就是去找寻影片以及宣传海报物料所使用的字体,这部太空科幻片的时间要设定在21世纪的第一年,在1960年代看来,这是未来的想象力,事实上,那年代的未来主义设计方兴未艾,库布里克可以选择无限。或者是1960年代的时装杂志最爱的Firmin Didot。

 

Continue reading “寻找最美的字:一次关于“字体”的太空漫游”

隆重介绍 思源黑体:一款Pan-CJK 开源字体

Adobe 与合作伙伴 Google 很高兴地宣布推出 思源黑体,这是一款新的供桌面使用的开源 Pan-CJK 字体家族,现已在 Typekit 上推出。如果您没有 Typekit 帐户,可以轻松设置一个,然后就能够通过我们提供的免费订阅立即使用该字体了。如果您想要使用原始源文件,可以通过我们 SourceForge上的下载页面获取。

思源黑体 这一字体家族有七种字体粗细,完全支持日文、韩文、繁体中文和简体中文,这些全部都包含在一种字体中。它还包括来自我们颇受欢迎的 Source Sans字体家族的拉丁文、希腊文和西里尔文字形。总的来说,字体家族里的每种字体粗细总共有 65,535个字形(OpenType 格式支持的最大上限),而整个字体家族的字形个数接近50万。这个字体家族是通过开源方式提供的,,数量、开发规模和价值之大堪称史上之最,这使它成为需要支持多种语言的字体的设计人员、开发人员和普通用户的零成本解决方案。Adobe 正在通过数字体验改变世界,而通过社区分发 思源黑体 是我们推进这一愿景的另一途径。

Continue reading “隆重介绍 思源黑体:一款Pan-CJK 开源字体”

调整 Thunderbird 邮件主题和正文的字体、字号,修正中文显示乱码

问题

如果你在使用 Thunderbird 遇到了如下问题之一,则本文对你或有帮助。

(1)收件箱等邮件列表栏,邮件标题字体太小(默认8磅);

(2)中文显示效果不好。如“路径”在主题和正文中都被显示为,还有很多邮件主题中的中文字符显示为乱码。

Continue reading “调整 Thunderbird 邮件主题和正文的字体、字号,修正中文显示乱码”

汉字中的“斜体”

在西文语境下,我们要在一句话中突出表示一个词,或者一句引语,按惯例往往采用斜体1。比如:I love you。随着计算机时代的到来,几乎所有文字处理软件,都内建了“斜体”这个功能。然而,崛起于西方世界的计算机科学,似乎从未考虑过东亚地区文字(CJK)的书写风格和历史习惯。在我们的的书写历史上,从未正式出现过使用意大利体来强调某个词语或者某句引语。由于汉字中并没有斜体,我们的文字处理软件中的“斜体”汉字,都是对正体字作倾斜变换后得到的伪斜体2

作为一个广为人知的误解,人们常常认为「斜体」就是「基准线向右倾斜的字体」,其实不然3。「斜体」特指为了加快书写速度而字母略微向右倾斜的一种手写书法风格,而「基准线向右倾斜的字体」,即上面提到的「伪斜体」,仅仅是对罗马体西文字母做向右倾斜变换。

Donald Knuth在他的著作The TeXbook中写道:

Slanted type is essentially the same as roman, but the letters are slightly skewed, while the letters in italic type are drawn in a different style. (p. 13) [My emphasis]

那么根据这个定义,中文字体中是否有对应于西文斜体的风格?在我看来,答案是肯定的。我们定义一个西文字体是不是斜体,最主要看是不是有手写风格在里面。换句话说,我们要寻找的是一种用不同风格书写的书法字体。在中文语境中,一个最为广泛使用,且满足上述条件的候选字就是:楷体

现代浏览器对于<em>标签的默认样式仍然使用西文斜体,这显然没有考虑到东亚地区的文化传统。由于汉字字体没有斜体风格,浏览器对汉字做倾斜变换。这种汉字“伪斜体”即没有意义,也不具有任何观赏性可言。借助CSS,我们可以在中文语境下使用楷体表强调,而在西文语境下仍然使用斜体:

1
2
3
4
5
6
7
@font-face {
  font-family: "Emphasis";
  src: local("HoeflerText-Italic"),
       local("Georgia Italic");
  font-style: normal;
  font-weight: normal;
}

上述片段使用@font-face指定访问者本地的Hoefler Text Italic或备用方案Georgia Italic(Web安全字体)为Emphasis罗马体,这样我们在其他CSS规则的font-family中引用Emphasis这个名称,将斜体当做罗马正体来使用。

<em>标签指定CSS规则如下:

1
2
3
4
em {
  font-family: "Emphasis", STKaiti, Kai, Kaiti, serif;
  font-style: normal;
}

效果:

ibdEYz1iVJvhZS

参考

  1. CJK characters
  2. Roman与Italic的故事
  3. What are Italics?

注释

  1. 即italic体,准确的翻译应该是“意大利体”。
  2. 即slanted体或oblique体。
  3. “斜体”不一定是斜的:关于Italic的补充

识图查字体,再也不用担心找不到好看的字体了

经常看见别人海报上的字体超漂亮,自己也想拿来用用,却又不知道该字体的名字。问别人吧,别人也不一定知道。。。

急民众之所急,有位高手开发了一个在线工具,可以识别图片上的字体!

求字体网操作手法
1.上传图片(文件大小不超过1兆,格式仅限于jpg、png和bmp)
求字体网
2.图片被扫描后,输入最清晰的几个字(至少输入一个字),最后点击搜索字体
求字体网
3.字体出来了,效果很不错吧,以后求字体,再也不用求人了
求字体网

求字体网还可以识别中、英、日韩、俄、书法等多种类字体,还可以实时预览和下载字体

相关网址
官方网站:求字体网 | 来自猫头帮常任理事会

Kindle 中文阅读终极优化指南

由于 Amazon Kindle 目前只在美国和英国等少数以英语为主要语言的国家发售,它的键盘甚至无法原生输入俄语、挪威语等字母语言,更别提中文了。自然,它对中文的默认支持也不怎么样。但是作为一个母语为中文的 Kindle 用户,阅读中文书籍是经常发生的事,用中文作笔记也是会遇到的。而是一个完美主义者,面对网上那些数量稀少且并不完美的 Kindle 中文阅读教程,我决定自己动手,探索、整理出一份“完美”的Amazon Kindle 中文阅读优化指南

一、Kindle 基本介绍

Amazon Kindle 是 Amazon 公司(或者叫 Amazon 帝国更贴切……)推出的一系列电子书阅读器。目前主要有以下设备:

  • 第一代:Kindle
    最早的版本,只有白色版,屏幕就四阶灰度,可用存储空间只有 180MiB……
  • 第二代:Kindle 2 和 Kindle DX(包括 Kindle DXG)
    Kindle 2 开始有十六阶灰度屏了。Kindle DX 是 Kindle 2 的“放大版”,固件和 Kindle 2 是一样的。DXG 是灰色版的 DX,不过性能上也有一些改进。
  • 第三代:Kindle Keyboard →我用的
    最流行的版本,很好很强大,3G 版更可全球漫游上网。
  • 第四代:Kindle 和 Kindle Touch
    第四代就叫 Kindle……民间也叫 Kindle 4,它有一个非触屏和一个触屏版,是 Kindle Keyboard 的“缩水版”,但是比较便宜,只要 $79。
  • Kindle Fire(基于 Android 的平板电脑)
    我觉得这个不能算在前面的系列里,因为它不再是用 E-Ink 屏幕了。
  • Kindle Reading Apps(运行于 iOS 和 Android 设备,以及网页上)
    这个只能算一套软件了……而不是硬件设备,放在这里只是因为名字里有“Kindle”。

本文所指的 Kindle,主要是指 Amazon 推出的各代以 E-Ink 作为显示屏幕的设备,不包括 Kindle Fire 和 Kindle Reading Apps 在内。

本文用作教程的 Kindle,即我有拥有的 Kindle,是 Kindle 的第三代,官方名称为 Kindle Keyboard,本教程所介绍的方法理论上也可用于其他代的 Kindle(不包括 Kindle Fire)。 Kindle Touch 用户可以参考这个帖子

本文所提到的 update-*.zip 文件均出自 MobileRead 论坛,可在此链接找到。

二、现状与我们的目的

正如上文所说,Kindle 未在使用 CJK/CJKV中日韩(越)统一表意文字) 的国家和地区发售,所以默认对 CJK 的支持是比较差的,在目录界面下,一些中文字会变成□□□□,在网页里,中文字的大小也是很不整齐的,并且有不少是用的日本字型,笔画看着很奇怪。

以上提到的问题虽然可以通过 changeLocale 的 debug 代码来解决,但是阅读中文时的字体依然是丑陋的无衬线字体。这种无衬线字体在 CRT 和 LCD 上用用还勉强能接受,但是在接近印刷品的 E-Ink 屏幕上用,就显得太不搭调了,长时间阅读会造成眼睛非常疲劳,丧失了 E-Ink 的优点。并且,默认的中文字体是没有标准、粗体、斜体、粗斜体的区分的,无论是标题还是正文还是注释,一律是同样的样式。对比拉丁字符的不同样式,实在是令人不爽。

首先声明一点:电脑上各种字处理软件里中文字体的“粗体”实质是“仿粗体”,“斜体”实质是“仿斜体”,是软件模拟出来的,只有少量中文字体(如微软雅黑)的粗体、斜体才是独立的字体。

正是因为这种软件模拟的存在,我们才能在电脑上看到各种中文字符“变粗”(仿粗体)和“变斜”(仿斜体),哪怕这个字体本身没有对应的粗体和斜体。而手持设备上一般没有这种软件模拟,所以只能显示字体本身的样子。但是,既然有“仿粗体”和“仿斜体”,就有真正的粗体和斜体,比如微软雅黑和粗体的微软雅黑是两个独立的字体,前者是 msyh.ttf,后者是 msyhbd.ttf我们只要使用独立的粗体、斜体字体便可在 Kindle 上实现中文字符的不同样式。

能“解决”上面所有的问题方法的是把所有的书全部弄成 PDF。但是要在 Kindle 上看 PDF,最好得是特制的六寸 PDF。每本书都转换并且方便,并且 PDF 相比 mobi 格式丧失了不少功能,因此该方法被枪毙。

所以,作为一个完美主义者,我要实现以下目的:(递进)

  1. 完美显示中文(告别□□□□!)
  2. 使用优质的衬线中文字体来代替无衬线中文字体(让 E-Ink 像印刷品一样!)
  3. 实现中文字体的普通、粗体斜体粗斜体的不同样式(标题就该突出!)
  4. 目录界面和状态栏中的中文也要使用自定义字体并显示出样式(光阅读界面是好看的怎么能叫完美呢?)
    除此以外,由于我还需要用 Kindle 阅读英语和德语的书籍,所以还有一个附加要求:
  5. 拉丁字符要保持原有的专业与美观,不能变丑(中文字体里嵌的拉丁字符实在不敢恭维)

三、两种不完美的解决方案

calibre 法

这种方法不需要越狱,几乎接近完美。但是很遗憾,它有 bug,不完美。这里简略介绍一下步骤,完整的图文教程可见《Kindle 3 不越狱换字体》

  1. 安装 calibre 这个强大到变态的专业、开源、自由的跨平台(基于 Python)电子书管理软件。
  2. 安装 Kindle Collections 这个 calibre 插件。
  3. 连接 Kindle,把优质衬线中文字体(如方正雅宋系列)按照特定的命名规则(CJK-Regular.ttf, CJK-Bold.ttf...)复制到 fonts 目录下。
  4. 连接 Kindle,在 Kindle Collections 里选择 Modify Kindle Settings,勾选 Allow user fonts,并在列表中选择 CJK
  5. 在提示成功后,拔掉并重启 Kindle,在阅读的时候按 Aa键,便可看到 Typeface 一项中多了一个 alt,那个就是自定义字体了。

这种方法接近完美,可以实现中文字体的不同样式显示,但是该方案的三个问题,这是我在使用的过程中发现的:

  • 虽然在阅读界面下,已经是自定义字体了,但是目录界面和状态栏的标题仍然调用的是简陋的原生字体,不爽。
  • 在阅读中英混合的书籍时,如果选择了自定义的衬线中文字体,那么书中的拉丁字符也会用自定义字体来渲染,而中文字体中的拉丁字符一般都比较丑陋,远没有纯拉丁字体中的字符好看,不爽。而如果选择原生字体,那么中文字符也会变成自带的衬线字体,依然不爽。
    也就是说,该方法能实现到上面的“目的列表”里的第 3 条,而第 4、5 条无法实现。
  • 更大的 bug:看起来Aa中的几种 Typeface 是可以自由切换的,但是实际上是有 bug 的,即切换成非 alt 之后,想再切换回来就会发现……alt 选项消失了!这意味着你就算不在乎上面那个 bug,在需要看英文书籍的时候切换到原生字体后,再看中文书籍时,根本无法切换成自定义字体(alt)!这个奇葩的 bug 只能通过连接电脑,在 calibre 的 Kindle Collections 里再次设置并重启 Kindle 解决,非常麻烦。

Fonts Hack 法

这种方法主要是指安装 Fonts Hack,这个升级包也可在上文提到的 MobileRead 里的那个帖子中下载到所需文件。下面简单说一下步骤和不足:

  1. 安装 Fonts Hack。即把对应你的 Kindle 版本型号的 update-fonts-*.bin 放到 Kindle 根目录并在 Kindle 中选择 Update your Kindle
  2. 再次连接 Kindle,能够看到根目录多了一个 linkfonts 目录,在 fonts 子目录中即可看到一堆字体,其中 Sans-*.ttf 和 Serif-*.ttf 是阅读书籍时用到的拉字字符字体文件,而 CJK.ttf是中日韩统一表意文字用到的字体,中文字体自然也在里面了,这就是平时看到的简陋的无衬线中文字体。
  3. 把 CJK.ttf 替换成优质衬线中文字体如方正准雅宋
  4. 在 linkfonts 目录中新建一个名为 reboot 的空文件并拔掉 Kindle 可以实现 Framework 重启或者直接从 Kindle 中选择 Restart your Kindle 以应用新字体。

这样操作之后,所有的中文字体(阅读界面、目录界面、状态栏)都已经是调用了自定义字体了,但是,这些字体是没有任何样式可言的,全部只有 Regular。而如果把原生字体如 Sans-Regular.ttfSerif-Regular.ttf 等换成对应样式的衬线中文字体,又会面临拉丁字符非常丑陋的问题(即上文“目的列表”中第 5 条无法实现)

四、选好你的字体

在正式开工之前,还是再讲一下字体吧。我向来对字体比较挑剔的,原来用 Windows 的时候 GDI++ 是必不可少的东西,不渲染浑身不爽;后来用 Linux 了,则与 /etc/fonts/local.conf 搏斗了好久……现在用了 Kindle 了,面对着与 LCD 完全不同的 E-Ink 屏幕,对字体的挑剔就又上升了一个台阶……

非常幸运的是,在以中文为母语的 Kindle 用户中,对字体很挑剔的不只我一个,这位博主的博文《Kindle 3的字体、行距、边距》便是一篇很好的关于 Kindle 选字体的文章,讲得头头是道,且配图清晰动人,强烈建议大家去围观。这里简要地归纳总结一下我对字体(尤其是简体中文字体)的几点看法:

  • 总原则是:CRT、LCD 等低 ppi 屏幕上阅读大量文字请使用无衬线字体;在印刷品上阅读大量文字请使用衬线字体。
  • Windows Vista 之前的 Windows 一直用的中易宋体(衬线字体),实在是不该。好在 Vista 之后改成微软雅黑(无衬线字体)了。长时间在 CRT、LCD 上阅读衬线字体非常容易疲劳,不信你找篇长文章用五号字的“华文楷体”阅读试试……
  • 印刷品上衬线字体比无衬线字体看着不易疲劳,所以大部分报纸上正文都是小五号报宋体(衬线字体),只有标题为了题目才会用无衬线字体。
  • Kindle 由于采用了 167 ppi 的高 ppi 的 E-Ink 屏幕,比电脑屏幕的 72 ppi 90-120 dpi 高出一倍多了,比报纸的 100-150 dpi 也高出一些,所以完全可以当作印刷品对待,所以应该使用衬线字体。
所以这样选字体:
  • 在低 ppi 的电脑屏幕上,推荐使用无衬线中文字体,比如微软的商业字体“微软雅黑”,自由开源的“文泉驿徽米黑”、“文泉驿正黑”也是不错的选择。
  • 在高 ppi 的 Kindle 的 E-Ink 屏幕上,推荐使用衬线中文字体,比如方正雅宋系列里的“方正准雅宋”。如果你习惯在 Kindle 上看小字体的话,你甚至可以选择“方正报宋”“汉仪报宋”这样的适合小字号的笔画很细的衬线字体。(报纸上用的就是这样的字体)

再恶毒地“抨击”一下几个字体:

  • 华文楷体对于大量文字来说是个失败的字体……不解释……很难理解为什么有人会拿它做成 PDF 电子书。上次看到舍友在 Tablet S 上看华文楷体的 PDF 《盗墓笔记》,震惊了……那个字密密麻麻的,非常恶心。
  • 中易宋体是一个非常落后的字体,它太古旧了,没有 hinting 信息,bug 多多,只是由于微软和 Windows 的关系,横行霸道了许多年,至今仍可在一些老顽固的 XP 电脑上看到。
  • 微软雅黑和苹果丽黑,在电脑屏幕上算是比较成功的字体,但这只是因为它们为低 ppi 优化过!用在 Kindle 上是很不合适的,可是有些电子书制作者在做 PDF 电子书时候依然选择微软雅黑作为字体……实在是不该。

说了这么多,你现在可以在本节开头的图片中选择合适的字体了吧?非衬线字体直接不考虑了……我的选择是:

如果你习惯看报纸并且想在正文看更小的字体的话,主字体可以选择“汉仪报宋”或者“方正报宋”。

大部分字体在网上搜索一下名字即可找到下载地址,但是“华文中宋斜”和“华文中宋粗斜”这两个字体并不好找,因此我把它们打包了一下,可以点此下载

五、开始优化字体

前面的准备工作做了那么多,实际上真正的优化过程步骤却并不多,像是前面介绍的两种不完美方法的结合。

更改 Locale

这个步骤是为了让目录界面不出现□□□□。方法就是在目录界面,按 Enter 键,然后输入下面三行 debug 代码,每行按 Enter 结束,然后再按 Enter 再打开新的输入框。

;debugOn				#打开 debug 模式
~changeLocale zh-CN.utf8		#更改 Local 为 zh-CN.utf8
;debugOff				#关闭 debug 模式,可以不输入

这个命令是大小写不敏感的,我区分大小写只是为了好看……另外,在 debug 模式开启的时候输入

~help

可以查看有哪些 debug 命令哦。

执行完这三行命令之后,是需要重启才能应用的,不过先别急着重启,越狱的时候一起重启吧。

越狱

这个不用说了吧,是装软件的前提。从上文那个 MobileRead 链接中下载 update-jailbreak-*.zip,并解压出对应你的机器的版本的 update_jailbreak_*_install.bin 文件,放到 Kindle 的根目录中,然后在 Kindle 的 Settings 页面中,按 Menu,选择 Update your Kindle,等待两分钟左右,即可完成越狱,并且由于已经重启了,上一步的 Locale 也就生效了。这时 Kindle 的根目录中应该已经多出了linkjail 这个目录了。在 Kindle 的内部文件系统中,相应的目录已经被换成了符号链接,目标就是这个linkjail,我们可以通过修改 linkjail 中的文件来达到修改 Kindle 内部文件系统文件的目的。

安装 Fonts Hack

依然是在那个链接中,下载 update-fonts-*.zip,解压出对应版本的update_fonts_*_install.bin 文件,放到 Kindle 的根目录中,在 Kindle 的 Settings 页面中,按Menu,选择 Update your Kindle,等待两分钟左右,即可完成安装。

复制自定义字体

这时再连接 Kindle,便可发现根目录下多了 linkfonts 目录,同样,这也是 Kindle 内部文件系统中某些符号链接的目标,在 linkfonts/fonts 目录下,可以看到一堆字体。请把你准备好的四个中文字体文件(普通、粗体、斜体、粗斜体)复制到 linkfonts/fonts 目录下,保持字体原来的文件名也是这样的,不过为了方便下文引用,最好把它们命名成下面这样,另外,不要用中文名……

  • CJK_Regular.ttf → 普通字体,用于正文的显示
  • CJK_Bold.ttf → 粗体字体,用于粗体的显示
  • CJK_Italic.ttf → 斜体字体,用于斜体的显示
  • CJK_BoldItalic.ttf →粗斜字体,用于粗斜体的显示

注意:这个目录中还有一个 CJK.ttf,它是 Droid Sans Fallback,即 Android 中默认的中文字体(无衬线!),是 Fonts hack 用来代替原生的中文字体的,理论上删除它,然后引用别的字体也是没有关系的,但是由于 Fonts hack 的一些保险装置,删除它之后会导致 Fonts hack 自动失效,所以还是留着它吧,不引用它就好了。

更改配置文件

上一步已经把所需要用到的四个字体复制到 linkfonts/fonts 目录了,但是它们是不会被自动使用的,需要更改配置文件让 Kindle 去使用它们。

打开 linkfonts/etc 目录,可以看到一堆字体的配置文件。Linux 桌面版用户对这些文件应该很熟悉了……我们要动刀的是 fonts.properties, fonts.properties-3, fonts,properties-3-nocondensed 这三个文件。

注意:这三个文件都是 Unix/Linux/OS X 的 LF 换行格式,千万别用 Windows 自带的“记事本”去编辑保存它!否则会变成 CR+LF 的换行格式!Windows 用户请使用 Notepad++ 去编辑,或者下载我编辑好的文件。

这三个文件的内容大同小异,是在不同的阅读模式下的字体渲染设置。主要是改 # international font support 这一行后面的一些内容。默认是这个样子的:

# international font support
code2000.0=I18N.ttf
code2000.plain=I18N.ttf

jpan.0=CJK.ttf
jpan.plain=CJK.ttf
jpan.1=CJK.ttf
jpan.bold=CJK.ttf

kore.0=CJK.ttf
kore.plain=CJK.ttf
kore.1=CJK.ttf
kore.bold=CJK.ttf

hant.0=CJK.ttf
hant.plain=CJK.ttf
hant.1=CJK.ttf
hant.bold=CJK.ttf

hans.0=CJK.ttf
hans.plain=CJK.ttf
hans.1=CJK.ttf
hans.bold=CJK.ttf

可以看出,最上面一段是对符号字体(这是最后一个 Fallback,关于 Fallback 的顺序,请参见这个帖子)进行设置,不用修改,后面四段内容分别对日文、谚文、正体中文和简体中文进行了设置,格式如下:

[字符集].[样式]=[字体文件名]

“字符集”无非 CJK (目前还没有支持 V ——喃文哦),而样式则是有八种的,比如系统原生 Serif 的设置:

# Serif font definition
#
serif.0=Serif_Regular.ttf
serif.1=Serif_Bold.ttf
serif.2=Serif_Italic.ttf
serif.3=Serif_BoldItalic.ttf
serif.plain=Serif_Regular.ttf
serif.bold=Serif_Bold.ttf
serif.italic=Serif_Italic.ttf
serif.bolditalic=Serif_BoldItalic.ttf

可以看出有 0, 1, 2, 3, plain, bold, italic, bolditalic 八种,并且应该是两两对应的。明白了这一点,就很容易了,把刚才那四段定义 CJK 字体的内容改成这模样就行了:

# international font support
code2000.0=I18N.ttf
code2000.plain=I18N.ttf

jpan.0=CJK_Regular.ttf
jpan.1=CJK_Bold.ttf
jpan.2=CJK_Italic.ttf
jpan.3=CJK_BoldItalic.ttf
jpan.plain=CJK_Regular.ttf
jpan.bold=CJK_Bold.ttf
jpan.italic=CJK_Italic.ttf
jpan.bolditalic=CJK_BoldItalic.ttf

kore.0=CJK_Regular.ttf
kore.1=CJK_Bold.ttf
kore.2=CJK_Italic.ttf
kore.3=CJK_BoldItalic.ttf
kore.plain=CJK_Regular.ttf
kore.bold=CJK_Bold.ttf
kore.italic=CJK_Italic.ttf
kore.bolditalic=CJK_BoldItalic.ttf

hant.0=CJK_Regular.ttf
hant.1=CJK_Bold.ttf
hant.2=CJK_Italic.ttf
hant.3=CJK_BoldItalic.ttf
hant.plain=CJK_Regular.ttf
hant.bold=CJK_Bold.ttf
hant.italic=CJK_Italic.ttf
hant.bolditalic=CJK_BoldItalic.ttf

hans.0=CJK_Regular.ttf
hans.1=CJK_Bold.ttf
hans.2=CJK_Italic.ttf
hans.3=CJK_BoldItalic.ttf
hans.plain=CJK_Regular.ttf
hans.bold=CJK_Bold.ttf
hans.italic=CJK_Italic.ttf
hans.bolditalic=CJK_BoldItalic.ttf

注意:这后面的字体名是可以改的,由于我在上一步的时候已经把自定义的字体名改成这模样了,所以是这样填的,如果你用的是其他的文件名的话,请对应修改

正如上文所说,有 fonts.properties, fonts.properties-3, fonts,properties-3-nocondensed 这样三个文件,都要做类似的修改。修改完了之后用 Unix 的 LF 换行格式保存。

对于不想装 Notepad++ 的 Windows 用户或是懒人,这里有一份我已经改好的配置文件,解压后覆盖即可……不过前提是你的自定义字体文件名和我的命名方式一样。点此下载:fonts-conf-wzyboy.tar.gz

重启 Kindle 的 Framework

这时候算是基本大功告成了,重启 Kindle 即可应用新字体。不过 Kindle 的完全重启(Settings - Restart your Kindle)时间有点长,所以 Fonts hack 中提供了只重启 Framework 的方法,即在拔掉 Kindle 之前,在 linkfonts 目录下面新建一个名为 reboot 的空文件。如果 Windows 用户不方便新建无扩展名的空文件的话,可以原地复制粘贴一下 autorebooot 这个文件然后再重命名为 reboot,它就是一个空文件……

这个文件建立之后,再拔掉 Kindle,就会看到屏幕左下角有一行字 Restarting framework... 过会儿就会重启完成,应用新字体了。这样比完全重启方便一些,也更快一些。

换回拉丁字体

上文说了,由于我不仅要在 Kindle 上阅读中文书籍,还会阅读英语和德语的书籍,所以对拉丁字体的要求也比较高。而 Fonts hack 把原生的拉丁字体给换掉了!Serif(衬线)字体由 PMN Caecilia 换成了 Droid Serif,而 Sans Serif(无衬线)字体则由经典的 Helvetica 换成了 Droid Sans。后者的替换我没意见,反正我不用无衬线字体的,而前者的替换……令人发指。Droid Serif 实在是太丑了,跟中易宋体中的拉丁字符有得一拼……绝对不如原生的 PMN Caecilia 好看,所以我要换回去。有与我类似需要的同学可以继续读下去,不看英文书的可以跳过……

换回去的方法挺简单,在 linkfonts/backups 下面那些 Caecilia 开头的文件就是原生的 Serif 字体了。这里我被弄糊涂过,经过一些试验,我确认那八个字体中只有四个是原来的拉丁字体,另外四个带Cond 字样的是紧密版的(即在 Aa 中选择 condensed 之后调用的字体)。对应关系如下:

Caecilia_LT_75_Bold.ttf → Serif_Bold.ttf
Caecilia_LT_76_Bold_Italic.ttf → Serif_BoldItalic.ttf
Caecilia_LT_66_Medium_Italic.ttf → Serif_Italic.ttf
Caecilia_LT_65_Medium.ttf → Serif_Regular.ttf

按照这样的对应关系把它们复制、替换掉 linkfonts/fonts 里的字体,然后再用上一节“重启 Kindle 的 Framework”中的方法,即可应用新字体。

六、成果

于是,就这样,搞定了。

再一张:

如截图所示,连目录中也是中文衬线字体(状态栏里的标题也是),也有各种样式的区别。为此我特意做了一个 mobi 文件,用来检验成果:Lorem ipsum – wzyboy.mobi.tar.gz

如果你在完成上面的所有步骤之后,也能显示出这样的画面,那么,你成功了:

但是始终觉得截图不能显示出 Kindle 真正的美丽,照片才行……为此我拍了好多张像本章章首图那样的照片……真的是像纸一样清晰可读。

七、尾声

我花了近一个月去折腾,又花了三天时间写成本文,算是符合“用心写作”的概念了吧。这是博客搬家到 VPS之后的第一篇文章,会是对 VPS 的一次压力测试吗?希望是的。

希望这篇文章对越来越多的 Kindle 中文用户有用。

补充:如想在 Kindle Keyboard 上输入中文,可参考《Kindle 3 安装中文输入法》。目前只能用拼音……不能用五笔。

欢迎转载,转载请注明出自:http://wzyboy.im/post/736.html。谢谢合作。

 

[http://wzyboy.im/post/736.html]