# 前言
很早的时候就想着把一些中国的古籍进行电子化的尝试,原因主要有二:一是一些中国古籍实在是部头很大,携带阅读都不方便,尤其是历史方面的书籍,往往有多册,没有太多的空间能够容纳。二是现有的电子化文本中往往会存在一些错误,这让强迫症的我多少有些心痒,若能够自己动手就能够在阅读时对于发现的错误顺手改正。此外,现有的电子版往往也没有专名号,在阅读上会有一定的困难,因此,参照古籍的 PDF 版本进行校对,添加专名号之后在阅读上也能够起到一定的帮助。
话虽如此,进行电子化存在着许多的挑战,最主要的便是字体的问题。我国汉字历史悠久,数千年来大概有数万汉字的数量。由于 Unicode 编码和字体数量上限的问题,在古籍中往往存在一些无法显示的汉字,这种情况可以采用具有更大字库的字体。但终究还是存在一些漏网之鱼无法输入,这时候只能靠自己进行造字了。
机缘巧合之下,最近总算对以上各个问题有了一定的解决方案,至少对于我个人而言已经令人满意了。下文记录解决上述问题的方法,聊以备忘。
# 古籍文本来源
如今网络上已经有非常多的古籍的电子文本了,但是其质量也是参差不齐,经过一定时间的寻找,目前发现的质量较好的版本是漢川草廬的版本。对于无法输入的汉字,其采用的是图片的形式,而不是某些网站那样的错字,且版本较新。《史记》粗看应该是对应中华书局 2013 年的新版本。 经过重新确认是商务印书馆的百衲本。古籍索引也提供了古籍的 ePub 电子书,这个是之后制作电子书的基础版本。
# 字体
字体选择上,目前的打算是选择 “方正辞源宋体”。其收字较多,且字形比较符合古代的情形。
目前网络上可以找到的较大的字体库可以参考这个链接。经过考虑最后还是选择了中华书局宋体[1],不仅包含的字体数量较多,而且是方正转为中华数据设计的,和古籍的风格比较匹配,在绝大部分的场景下能够满足要求。对于极少数情况,字库中未包含的汉字可以通过现有收录的汉字的部件进行创造。通过 FontCreator 这一软件可以比较好的完成以上任务,使用现有的汉字的部件来拼凑出字库中未包含的汉字。尽管其他民间制作的超大型字库可能包含更多的汉字,但是由于版权原因,只能使用多个免费的字体进行组合来扩展字库,字体的风格并不统一,因此还是选择了自己动手,丰衣足食,需要自己造字的场景还是极少的,有需要的时候再动手也不用花费太多功夫。
对于网上的字库,需要注意版权问题。大多数字库是能被个人非商业使用的,因此如果有自己修改了字库的内容,最好不要和他人分享以免带来不必要的麻烦。
# 专名号
关于专名号,由于 ePub 的实质内容是网页,因此利用 CSS 中的 text-decoration
属性可以比较轻松的实现。但是对于直线专名号,当两个专有名词连续时,直线在视觉上是连在一起的,可能造成误解,因此需要采用一种绕圈子的办法,利用 image 属性来完成,具体参考如下:
u { | |
text-decoration: none; | |
border: 0; | |
/* 横排使用以下属性 */ | |
border-bottom: 1px solid; | |
border-image: linear-gradient(currentcolor, currentcolor) 1 0 / 1 0.1em; | |
/* 竖排使用以下属性 */ | |
border-left: 1px solid; | |
border-image: linear-gradient(currentcolor, currentcolor) 0 1 / 0.1em 1; | |
} |
而对于波浪线形式的书名号,则没有以上问题,采用 CSS
默认的 wavy
属性风格即可:
w { | |
text-decoration-line: underline; | |
text-decoration-style: wavy; | |
text-underline-position: left; /* 用于调整横线和文本的间距,竖排设置成 left,横排可以设置成 under*/ | |
} |
中华书局宋体字体文件下载后包含三个字体文件,分别以 ,, 结尾,其中 平面包含
Unicode
汉字基础区和A
扩展区的汉字, 平面则包含B
、C
、D
、E
、F
等扩展区的汉字, 平面则主要为古联自造字。 ↩︎