字体设置指南
电子书的字体选择是一个很大的命题,讲深了涉及字体设计,不过不扯那么远,主要是从电子书观感的角度来列举各种字体在阅读器中的特性。另外推荐一下此处的电子书推荐使用的字体以及设置方法。(不想看字体常识的可以迅速跳到底部去看最后一节)
一些基础概念
不论是什么软件,要显示文字,需要先读取文字的unicode码,然后在字体文件里面找到这个unicode对应的字形,再把字形打印在屏幕上。如果字体文件没有这个字的unicode码,则软件就会请求操作系统提供一个默认的字库,再在这个字库里面去找unicode。一般来说,操作系统都会设定一个较全的字体文件或几个字体文件(对应不同语言)作为字库,避免软件显示不了字形。我们把这种软件找不到自带字体的unicode而请求系统默认字库的行为叫做fallback(android以前的字体名就叫sans fallback)。
自从视网膜屏幕流行以来,字体显示可以说是开启了一个新时代,以前pc显示屏上都是一个像素点显示一个字形像素,但视网膜上则是四个像素点来显示一个字形像素,因此许多必须大字号才好看的字体焕发了新生,由于可以用更多的像素来显示字体,小号字体也可以显示得很平滑。
在视网膜之前,屏幕上打印的字体和打印机打出的字体有着很大的不同,屏幕上因为像素有限,显示的小号字体只能显示笔画的骨干,锯齿很严重;而印刷出来的字体由于墨水颗粒极其微小,没有像素的限制,所以小号字体也可以显示得很平滑。简而言之,视网膜的显示效果基本上就跟印刷体是一样的(严格来说当然不一样,但是人眼分辨不了那么细,看起来就差不多了)。
另外与字体显示相关的就是渲染引擎。目前字体渲染主要是两个流派,windows的cleartype和adobe的pdf标准。windows主要是为了低分辨率屏幕下锐利的显示效果,字体的笔画都是顺着像素点来的,只做了纵向的平滑处理,所以显得非常锐利。而pdf主要是为了与印刷效果完全一致,所以双向都有平滑处理。后来mac采用了pdf的渲染标准,linux又搞了个freetype来模仿mac的渲染。安卓的字体显示也是一样的。从最终效果来看,在低分屏上windows显示字体更清晰,在高分屏上pdf标准显示更舒服。
大的字体分类
按西方标准来分的话,字体基本上就是衬线(serif)和非衬线(sans serif)两类。所谓衬线就是在笔画起止位置上加上类似笔势的装饰。这一点中西文其实都是一样的。
衬线的出现有其历史原因,但从显示效果来看,同样的字号,衬线字体由于有这些小装饰,所以显示的字形都会比无衬线字体要小一些,在大段文字铺排的情况下,衬线体更容易识别,小字号的情况下,单个无衬线字体更容易识别。
西文字体的选择非常多,这里简单举几个例子,主要说一下中文字体的特性。
1
宋体/仿宋
中易宋体是windows xp以前的默认衬线字体,由于windows做过特殊处理(小字号嵌入了点阵),在低分屏下只有它能够非常锐利清晰的显示出来,windows自带的别的中文字体都