下载并安装使用超大字库的具体步骤

一直有不少人进群询问下载安装超大字库的相关方法,以下将这些步骤汇总以便统一回复。本文不定期更新。

下载

市面上所见大字库(如方正宋一 71912+122、方正楷体 71640+11616、中易 97843+154、全字库 86865+20478 等)收字情况均不理想,且字形错误极多,因而以下推荐目前已公开的字形错误最少不附「之一」的天珩全字库 139948+28721 (制作者@Sim-CH),下载链接见此

该字库的优势在于收录字符多且全,包含几乎所有 Unicode 10.0 所收字形,其下 9 套字体(Tshyn,Feon,Khaai-T,Khaai-P,Sung-T,Sung-P,Sy,Hak,Ming)收集整理中易、华康、华文、GlyphWiki、Iwata、Besta、方正所制字体字形,极大方便用户使用。

另外,该字库属于非盈利的学习研究型字库,不制作或出售任何商业作品,字形版权属于上述公司。

Android 5.0 以上用户的字体安装

此处推荐使用天珩全字库 V2.1.0 (TH-Tshyn)。由于版本号 5.0 以上的 Android 系统中包含新增的字体配置文件 /system/etc/fonts.xml 和原有的 /system/etc/fallback_fonts.xml,且在回复过程中,安装天珩全字库的用户居多,因而我们以此为例详述具体操作步骤如下:

一、基本字体安装

(一)获取 root 权限。(若不获取 root 权限则需要下载专用应用)

(二)下载安装 Root Explorer(或其他类似应用)将所需添加的字体复制入 /system/fonts/ 下,并将权限设定成 rw-r--r--(即仅保留「所有者 - 读」、「所有者 - 写」、「用户组 - 读」、「其他 - 读」四个勾)。

(三)修改 fallback。以文本方式编辑 /system/etc/fallback_fonts.xml,观察代码发现相当有规律,于是仿照所谓循环节在

all others.
-->
<familyset>

之后直接添加新增字体之信息:

<family>
        <fileset>
            <file>TH-Tshyn-P0.ttf</file>
        </fileset>
    </family>
   <family>
        <fileset>
            <file>TH-Tshyn-P1.ttf</file>
        </fileset>
    </family>
 <family>
        <fileset>
            <file>TH-Tshyn-P2.ttf</file>
        </fileset>
    </family>

需要注意的是,这里 <file></file> 中的字体名称为文件名。下步骤中 <font></font> 之间的字体名称也是文件名。若为 otf 字体则需更改扩展名。

(四)以文本方式编辑 /system/etc/fonts.xml,观察代码发现更加有规律,于是仿照所谓循环节在

<!-- fallback fonts -->

之后直接添加新增字体的信息:

<family>
        <font weight="400" style="normal">TH-Tshyn-P0.ttf</font>
    </family>
    <family>
        <font weight="400" style="normal">TH-Tshyn-P1.ttf</font>
    </family>
    <family>
        <font weight="400" style="normal">TH-Tshyn-P2.ttf</font>
    </family>

(五)重启手机。修改完成。

二、扩展字体安装

由于并未添加其他字体,在手机显示时「加粗」和「倾斜」均由手机自行完成。然而众所周知在拉丁文中「Normal」之于「Italic」并非中文中「正常」之于「斜体」,且在显示过程中中文在倾斜后显得极为不堪入目。同时在字重方面亦易出现因自行加粗导致的笔划重叠等现象。此时我们可以通过添加扩展字体加以优化。

(一)添加字体。作为多多益善的示例,我们同时将楷体、黑体、明体、书宋一并导入。

(二)将这些字体的权限设定成 rw-r--r--。

(三)修改 fallback。我们将上(三)中示例扩充为:

<family>
        <fileset>
            <file>TH-Tshyn-P0.ttf</file>
            <file>TH-Khaai-PP0.ttf</file>
            <file>TH-Hak-P0.ttf</file>
            <file>TH-Ming-P0.ttf</file>
            <file>TH-Sy-P0.ttf</file>
        </fileset>
    </family>
   <family>
        <fileset>
            <file>TH-Tshyn-P1.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file>TH-Tshyn-P2.ttf</file>
            <file>TH-Khaai-PP2.ttf</file>
            <file>TH-Hak-P2.ttf</file>
            <file>TH-Ming-P2.ttf</file>
            <file>TH-Sy-P2.ttf</file>
        </fileset>
    </family>

其中的「PP」可换作「TP」。

(四)修改 fonts.xml。我们假设字重从小到大排序为 Ming < Sy < Tshyn = Khaai < Hak,并假设 Khaai 为 Tshyn 的变体,我们便可将上(四)中示例扩充为:

<family>
        <font weight="100" style="normal">TH-Ming-P0.ttf</font>
        <font weight="300" style="normal">TH-Sy-P0.ttf</font>
        <font weight="400" style="normal">TH-Tshyn-P0.ttf</font>
        <font weight="400" style="italic">TH-Khaai-PP0.ttf</font>
        <font weight="700" style="normal">TH-Hak-P0.ttf</font>
    </family>
    <family>
        <font weight="400" style="normal">TH-Tshyn-P1.ttf</font>
    </family>
    <family>
        <font weight="100" style="normal">TH-Ming-P2.ttf</font>
        <font weight="300" style="normal">TH-Sy-P2.ttf</font>
        <font weight="400" style="normal">TH-Tshyn-P2.ttf</font>
        <font weight="400" style="italic">TH-Khaai-PP2.ttf</font>
        <font weight="700" style="normal">TH-Hak-P2.ttf</font>
    </family>

其中的「PP」可换作「TP」。

三、闲着没事做且手机内存足够大之扩展

手机内存太大想装点东西进去,又闲着没事做,又有想把全部字体装进去的冲动。我们便可以充分发展字库,添入更多内容。

(一)同族字体扩展。我们将一对 <family></family> 内包含的字体称为一个字体族。我们可以继续添入不同字重和不同类型的字体。根据字重我们可添入 ExtraLight (100) < Light (300) < Regular (400) < Medium (500) < Bold (700) < Black (900) 等字重的字体,当然括号内的数字可以自行更改。根据类型我们可以给每个字重的字体都补齐 normal 和 italic 两种字体。

(二)不同族字体扩展。我们知道不同地区的汉字,在字形上存在些许差异。为了支持不同地区的字形,我们可以调整字体族的属性。比如将 <family>(或 <file>)改为 <family lang="zh-Hans">(或 <file lang="zh-Hans">),我们便限定了该族字体用来显示简体中文下的文字。同理 zh-Hant 为繁体中文,ja 为日文,ko 为韩文。

当我们将全字库全部补入时(除 Android 5.0 之下所用 Feon),fallback_fonts.xml 便被修改为:

<family>
        <fileset>
            <file lang="zh-Hans">TH-Tshyn-P0.ttf</file>
            <file lang="zh-Hant">TH-Sung-PP0.ttf</file>
            <file lang="zh-Hans">TH-Khaai-PP0.ttf</file>
            <file>TH-Hak-P0.ttf</file>
            <file lang="ja">TH-Ming-P0.ttf</file>
            <file>TH-Sy-P0.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file lang="ko">TH-Ming-H.ttf</file>
        </fileset>
    <family>
        <fileset>
            <file>TH-Tshyn-P1.ttf</file>
        </fileset>
    </family>
    <family>
        <fileset>
            <file lang="zh-Hans">TH-Tshyn-P2.ttf</file>
            <file lang="zh-Hant">TH-Sung-PP2.ttf</file>
            <file lang="zh-Hans">TH-Khaai-PP2.ttf</file>
            <file>TH-Hak-P2.ttf</file>
            <file lang="ja">TH-Ming-P2.ttf</file>
            <file>TH-Sy-P2.ttf</file>
        </fileset>
    </family>

其中的「PP」可换作「TP」。

fonts.xml 便被修改为:

<family lang="zh-Hans">
        <font weight="300" style="normal">TH-Sy-P0.ttf</font>
        <font weight="400" style="normal">TH-Tshyn-P0.ttf</font>
        <font weight="400" style="italic">TH-Khaai-PP0.ttf</font>
        <font weight="700" style="normal">TH-Hak-P0.ttf</font>
    </family>
    <family lang="zh-Hant">
        <font weight="100" style="normal">TH-Sung-PP0.ttf</font>
        <font weight="400" style="italic">TH-Khaai-TP0.ttf</font>
    </family>
    <family lang="ko">
        <font weight="400" style="normal">TH-Ming-H.ttf</font>
    </family>
    <family lang="ja">
        <font weight="400" style="normal">TH-Ming-P0.ttf</font>
    </family>
    <family>
        <font weight="400" style="normal">TH-Tshyn-P1.ttf</font>
    </family>
    <family lang="zh-Hans">
        <font weight="300" style="normal">TH-Sy-P2.ttf</font>
        <font weight="400" style="normal">TH-Tshyn-P2.ttf</font>
        <font weight="400" style="italic">TH-Khaai-PP2.ttf</font>
        <font weight="700" style="normal">TH-Hak-P2.ttf</font>
    </family>
    <family lang="zh-Hant">
        <font weight="100" style="normal">TH-Sung-PP2.ttf</font>
        <font weight="400" style="italic">TH-Khaai-TP2.ttf</font>
    </family>

Android 5.0 之下用户的字体安装

由于版本号 5.0 之下的 Android 系统有 65535 的字形上限,因而无论字体数多寡显然无法完全显示全字库内所有字形。因而只能通过多次改动字体方能使显示完备。如在查看中文内容时将字体换成 SurSong,查看日文内容时换成 IPAmjMincho,查看越南文内容时换成 Nôm Na Tống,等等。此处推荐使用天珩字库 - 手机 V2.0.2(TH-Feon)。具体操作步骤如下:

(一)同上(一)。

(二)同上(二)。

(三)同上(三),示例如下:

<family>
        <fileset>
            <file>TH-Feon-A.ttf</file>
        </fileset>
    </family>
   <family>
        <fileset>
            <file>TH-Feon-B.ttf</file>
        </fileset>
    </family>
  <family>
        <fileset>
            <file>TH-Feon-C.ttf</file>
        </fileset>
    </family>
  <family>
        <fileset>
            <file>TH-Feon-D.ttf</file>
        </fileset>
    </family>

(四)同上(五)。

另外,当只需替换中文字体时,还可将所需更换的字体文件改为 DroidSansFallback.ttf,替换原有文件重启便可(虽然本人不推荐)。特别地,小米的 MIUI 系统字体路径为 /sdcard/MIUI/theme/.data/content/fonts/,亦可通过替换字体实现更改。

当手机无法 root 时,推荐使用天珩手机字库,下载应用爱字体,并使用其打开字体文件。点击下方的「应用」,根据手机不同型号会自动有不同的安装方法。满足条件的机型安装本字库后即可支持 Unicode 中所有汉字。

iOS 未越狱用户的字体安装

一、付费软件 FondFont

FondFont 售价为 $0.99,购买安装后进入主界面。

(一)通过 iTunes 传输字体文件(该软件支持 .ttf、.otf 和 .ttc 格式的字体文件),完成后字体将出现于列表中。

(二)选择字体,进入安装。

二、Apple Configurator 2.0

(一)新建 profile。然后在 general / name 中命名(此名会显示于 iOS 的 profile 列表中)。例如以字体名命名为「Tshyn Fonts」。

(二)左侧边栏末段选中 Fonts,添入所有字体。保存 profile 于任意位置。

(三)回到 Apple Configurator 2 主界面 All device。将设备 iPhone / iPad 接上数据线,并保持在不锁屏状态。在工具栏上选 add profiles。

(四)选择添加之前新建的 profile,此时设备跳出安装界面。忽视警告直接安装。

iOS 已越狱用户的字体安装

示例中使用 PP 助手

(一)进入 iPhone / 文件 / 文件系统 (越狱) / System / Library / Fonts / Cache。

(二)将此时文件夹内字体全部导出,存于一个文件夹备用。将事先下载好的字体存于另一文件夹内。

(三)注意更换字体有风险。

(四)将事先下载好的字体中,带「P0」的字体重命名为「STHeiti-Medium.ttc」。将这些字体添加覆盖入 Cache 文件夹。

(五)重启手机,完成。

【参考资料】

[1] eisoch.「中日韩统一表意文字扩展区的示范用的字体是什么?」下回答. 知乎。

[2] 王成. 怎样科学地给 Android(4.x)换字体. 知乎专栏。

[3] 卫之以陌、. 不需要root,无需购买字体,修改手机字体. MIUI 论坛。

[4] wcshds. 在Android5.0下安装扩展区字体. MIUI 论坛。

[5] Sim-CH.「天珩手机字库F_V2.1.0」安装使用说明. 天珩字库。

[6] 王崇旭. 如何在 iPhone 里用上微软雅黑? – FondFont #iOS. ifanr 爱范儿。

[7] teinking. 6s/ios9不越狱安装字体. 威锋网。

[8] Rj199307260026. 【iOS8.1完美越狱字体】方正喵呜字体 亲测 可使用. PP 助手论坛。

编辑于 2018-03-04

文章被以下专栏收录