电子书外挂生僻字教程 #2

2018-05-18  本文已影响159人  hyx108

中文字符编码区域

上一节举了一个相对简单的例子,主要是解决多看中中西文混搭的显示问题,本节着重讲一下中文古籍生僻字的嵌入。
这里先介绍一下中文字符编码的一些常识。所有的字符都有一个unicode码表,电脑实际上处理的是这个unicode码,然后再从字库里调取对应的字形显示出来,unicode码的数量决定了ttf文件的容量。这里仅介绍中文字符。

GBK

GBK编码,是在GB2312-80标准基础上的扩展规范,使用了双字节编码方案。
目前多看的自带中文字体都是GBK的,支持的范围(u开头表示unicode):

GB18010

有两个版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统一汉字扩充A的汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。目前多数超大字符集都是2000的格式,也就是支持GBK+扩充A区。
来看看扩充A区的范围:

字库最大的几个字体

大部分的字体都只支持到扩充B区,只有少数几个支持到扩充F区甚至之后,罗列如下:

中文外挂字库的配置

以杨宽著作集为例,由于涉及上古的一些文献,所以有大量扩充区,甚至不在F区的生僻字。当然大多数生僻字可能可以靠超大字符集来显示,不过对于一本电子书来说,正文完全使用一个超大字符集来显示并不划算。我们看看方正现有的一些超大字符集的体积:

@font-face {
    font-family:"rkai";
    src:
    local("楷体扩展"),
    url(../Fonts/rkai.ttf);
}

@font-face {
    font-family:"rsong";
    src:
    local("宋体扩展"),
    url(../Fonts/rsong.ttf);
}

然后将两个扩展字库分别放在正文标签和引文标签字体族的最后,就完成了扩展字库的配置。
但需要注意的是,方正超大字符集的宋体和楷体字重都比较小,笔画比较细,而多看自带的书宋和新楷都相对粗一些,设备上看起来更舒服,所以,在直接挪用字形之后必须进行相应的加工。

上一篇 下一篇

猜你喜欢

热点阅读