# 前言

很早的时候就想着把一些中国的古籍进行电子化的尝试,原因主要有二:一是一些中国古籍实在是部头很大,携带阅读都不方便,尤其是历史方面的书籍,往往有多册,没有太多的空间能够容纳。二是现有的电子化文本中往往会存在一些错误,这让强迫症的我多少有些心痒,若能够自己动手就能够在阅读时对于发现的错误顺手改正。此外,现有的电子版往往也没有专名号,在阅读上会有一定的困难,因此,参照古籍的 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*/
}

  1. 中华书局宋体字体文件下载后包含三个字体文件,分别以 000002021515 结尾,其中 0000 平面包含 Unicode 汉字基础区和 A 扩展区的汉字,0202 平面则包含 BCDEF 等扩展区的汉字,1515 平面则主要为古联自造字。 ↩︎

总访问量:正在加载...更新于

请我喝[茶]~( ̄▽ ̄)~*

Linn 微信支付

微信支付

Linn 支付宝

支付宝