canvas设置字体粗细用数字没效果_字体设置指南

本文介绍了电子书字体的选择和显示原理,探讨了不同字体在不同设备上的显示效果,包括衬线字体、非衬线字体的特性,并推荐了几款适合阅读的字体,如方正书宋、方正兰亭黑等。同时提到了字体渲染引擎的差异,以及如何在不同平台上优化字体显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字体设置指南

6e2b25a54fbafbc8749d375699bfb93e.png

电子书的字体选择是一个很大的命题,讲深了涉及字体设计,不过不扯那么远,主要是从电子书观感的角度来列举各种字体在阅读器中的特性。另外推荐一下此处的电子书推荐使用的字体以及设置方法。(不想看字体常识的可以迅速跳到底部去看最后一节)

一些基础概念

不论是什么软件,要显示文字,需要先读取文字的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自带的别的中文字体都不行。但是把它放到mac或linux下就现出原形了(linux可以修改配置来调出点阵)。中易宋体在当时是最适合阅读的正文字体。

另外值得一提的是宋体的字库是最多的,对于那些非常生僻的字来说,可能只有宋体有相关字形。

与其同类的还有仿宋体。仿宋的字形介于宋体和楷体之间,它的衬线也在笔画首尾,笔画本身也是等宽,但笔画大部分是斜着走的,所以更适合高分屏。

2

黑体

中易黑体也是windows默认的黑体,没什么太多特色,就是典型非衬线字体,字形字重等都没有什么优势。

另外非衬线字体也可以分为等宽和非等宽两类,不过这个区分标准对于拉丁字母系颇有意义,但对于中文区分并不明显,因为中文本身就是方块字。等宽字体主要是用于编程,所以衬线字体没有等宽字体之分。

与其同类的还有等线、幼圆体等等。

3

楷体

楷体严格来说属于手写字体的演化(宋体和黑体都是印刷体),楷体与宋体的区别主要是宋体的衬线在笔画首尾,笔画本身是等宽的;而楷体从书法演变过来,笔画本身就是有粗细的。同样的字号情况下,楷体字形都会比别的字体小一圈。

与其同类的书法演变字体还有隶书、行楷等等。

关于多看自带字体

多看默认的字体包有下面几个:

方正书宋

09a5ebafeb6ac92f8fbfe7530db397cb.png

多看出版物默认的正文字体,字形比中易宋体的笔画要粗一些,从视觉效果来看是非常适于长时间阅读的字体。而中易宋体由于太细,看起来发虚。

书宋在任何类型的书中都可以用,当然编程语言不适合用书宋来呈现。但是书宋主要还是用于正文字体,用于标题或者装饰都不太好看。在多看中所有内置字体的字库都是GBK的,也就是说扩展B区的生僻字是没有的。

方正兰亭黑

4d6a216f9a0d16b4ff8a3ce0f1df9622.png

多看网文默认的正文字体。兰亭黑是微软雅黑的调整升级,比起中易黑体来,笔画更均衡,中宫更宽。因此也很适合于长时间阅读。中易黑体看久了就感觉缩肩驼背的看着不舒服。

兰亭黑在任何类型的书中都可以用,不过古籍类一般不用。兰亭黑作为正文字体或者作为标题装饰都很适合。虽然兰亭黑也是GBK的字库,但miui系统字体也是小米兰亭黑,这个字库包含了扩展B区的字库。所以书内如果存在B区的生僻字,多看会fallback到系统的小米兰亭黑。如果正文就是兰亭黑,fallback你看不出什么区别。

方正仿宋

f53fd9dd3fb0e9eee5435d3a4a971033.png

这个仿宋体与中易的比起来,整体字形略微瘦长,尤其是英文部分。仿宋的字形笔画比较细,有人也很喜欢用它作为正文字体来阅读。不过超细字体在阳光直射的情况下会降低辨识度,即使是阳光屏也是一样。

由于仿宋体偏细的特性,主要适合于序言、后记这种相对独立的小篇幅章节上,正文则用书宋等粗细适中的字体。另外,仿宋不光是字形看起来小,同字号的情况下比其它字体都会小一点(大概0.9倍的样子),因此用仿宋排版大段文字,整体会紧凑一些(每页能显示更多行字)。

方正兰亭刊黑

799eeecf407dfe3dc7806170c129b129.png

正如仿宋是宋体的细体(其实还有斜体变化)版本,刊黑就是兰亭黑的细黑版本,同样适合于长时间正文阅读,当然细体的缺点也是一样的。

刊黑类似仿宋的适用范围,但由于无衬线字体的小字号可识别性高,使用范围更广泛一些。

方正新楷体

a1812a3b30eaaba571846af21ba07c84.png

这个楷体与中易的楷体区别不大,从字形上来看,比同字号的其它字体显示都要小一些。新楷体采用的英文衬线字体比中易字体好看得多,不过在显示特殊符号方面可能不如书宋等正文字体。一般楷体用于显示书信、引文内容,作为标题的情况较少,主要是因为字形太小又中规中矩,作为标题的表现力乏善可陈。新楷体与仿宋一样,字号大概是0.9倍显示。

方正小标宋

143b288aa04fa2dab453436c5aecbfcd.png

标宋有多个字号,这个小标宋可以看作是书宋的笔画加粗版。不光是单纯的笔画粗细,连衬线装饰也是加强了的。因此本字体不适合用于正文,看久了会累。

相反,本字体非常适合作为章节或分卷的大标题,即使放大几倍,字形也是非常饱满的。

方正中等线

9621f3a31eb04fe13fc44d4395f9e70d.png

多看最初自带字体包没有包含这个字体,从4.x版开始加入(office2016也开始用作默认字体,之前都是中易宋体),但实际上本字体使用的情况不多,一来它与黑体构造差不多,二来与兰亭黑相比中宫太局促(也就是之前说的缩肩驼背感),所以基本上没啥用。

Gentium Book Basic(Palatino)

65e4b2a318aa192d38c9d856df71a270.png

这个是多看字体包中默认的衬线英文字体,用来搭配书宋体其实是天作之合。为什么这样说?因为书宋的英文部分并不完善,上图中可以看到书宋默认的英文排列所占宽度是不均匀的,尤其是有辅音的拉丁字母,宽度比英文字母要宽得多。我们再来看看其它字体的显示情况。

7bedf76d5b16ead94cc168992f7bf0ad.png

全方正兰亭黑

b4a3784d8a949fa0979d1911d12ea772.png

全方正兰亭刊黑

a9b61f74762598b2ef076bcc2a12ece5.png

全方正仿宋

7d42be7beaa4f3a794322418fd3c6000.png

全方正小标宋

1bf085169ab50f245a839005c66eff50.png

全方正新楷体

3ef09f033a8437b75d16c46e67c1ca55.png

全方正中等线

可以看到全中文时,辅音拉丁字母基本上都是宽度不均或fallback到默认的书宋英文字体,只有Palatino能完美呈现。但是这个字体的缺点在于人名连字符非常窄,比起书宋的全宽连字符来,简直是要逼死强迫症。

abd9f0f77b41018b8aac506bae53cc52.png

书宋+Palatino

0489ff1a3db0bc4403336b5291c1499f.png

书宋+Iconsolata

多看官方的解决办法就是遇到这种拉丁字母用span方式统一设置Palatino字体,维护起来其实很麻烦。

另外,多看有个bug,本字体实际上是包含西里尔字母(俄文字母)的,但是多看调用不了,只有times newroman这种字体可以调用,如果系统没有这个字体,多看只能调用DK-CODE专用符号等宽字体来显示西里尔字母。

Iconsolata

这个是多看字体包中默认的无衬线英文字体,本来它也是一款很有名的编程用等宽字体,一般拿它配合兰亭黑或刊黑小字号来显示编程语言或者版权声明等文本。它不含西里尔字母。

新的悠宋字体

悠宋字体是方正字体的悠系列字体之一(之前出来的是悠黑字体),悠系列严格来说是方正的新一代主推字体(传承从方正宋体/黑体,到方正书宋/兰亭黑,再到方正悠宋/悠黑),其特点是融合了黑体的特色,将衬线装饰尽可能地缩小了,但是在小字号的情况下又能保留识别度,在PC上看跟书宋区别不是很大,但是在视网膜上面看,区别很明显:

2a8282aae594fbc2bc165411361ea7f9.png

9d58f29d898e839ac97625522b581701.png

上面的是书宋,下面的是悠宋。我个人感觉悠宋看起来会舒服很多,而且辨识度也保持的不错。

多看从5.7之后(不同平台版本推送不一样),就推送了这个悠宋字体,悠宋有很多字号,像上图中,就是多看默认推的悠宋507R字号,比书宋细一些,另外还有个悠宋509R字号(多看并没有提供),这个字号粗细就跟上图书宋字体的粗细差不多了。

多看提供下载的悠宋507R字体,大小大概只有5M左右,很多稍微生僻一点,但是在GBK范围中的字都没有。也就是说这个字体是非常不全的。我们的王萌萌在方正官网专门购买了这两个字体,字库是全的,大小为9M左右,GBK字库全部都有,推荐各位读者使用,我以后的书,可能也会逐渐设置默认字体为悠宋体,但是为了能正常显示字体,还是推荐大家按下面的方法设置一下:

在下面的原文中下载两个字体的打包,解压后,将字体放到多看的字体文件夹下面。

安卓平台,就是SD/Resource/Font下面,如图:

446fa4333c8ee8677456d0e133b431ec.png

将507R的ttf文件命名为同名文件,将原来多看下载的悠宋字体覆盖即可。

iOS平台,因为没有开放字体目录的访问,可以在多看中打开一本书,打开选项,选择字体,右上角就可以WiFI传字体:

b3460a53f761df6c3d1038e510998f56.png

6b9df8d0a3760c7a5ba1c8e81161ec55.png

传完之后选择悠宋字体就行了,我后期的书默认会设置正文为悠宋字体,那么传完字体后,选择默认字体也可以。(默认字体的选择会影响中西文混排)

经过试验,在iPad上,多看默认的悠宋和我提供的悠宋在行高上会有一点点区别,我提供的悠宋可能会多显示一行文字,有时候遇到排版比较乱的时候,可以试试设置我提供的悠宋字体,说不定问题可以解决。

7d733c68a72d4f4d2e475816dc893af4.png

7d733c68a72d4f4d2e475816dc893af4.png

i46g46b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值