惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
O
OpenAI News
S
Securelist
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
H
Heimdal Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
Webroot Blog
Webroot Blog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
D
Docker
D
DataBreaches.Net
A
About on SuperTechFans
T
Tor Project blog
V
V2EX
G
Google Developers Blog
博客园 - Franky
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
I
InfoQ
H
Help Net Security
V2EX - 技术
V2EX - 技术
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security Affairs
SecWiki News
SecWiki News
The Register - Security
The Register - Security
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
小众软件
小众软件
B
Blog
T
Threatpost
P
Palo Alto Networks Blog
博客园 - 【当耐特】
L
LangChain Blog
AWS News Blog
AWS News Blog
月光博客
月光博客
宝玉的分享
宝玉的分享

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
无需越狱,中英混排的 Kindle 电子书也能拥有好看的排版 - 少数派
2018-04-03 · via 少数派

需求分析与解决思路

排版问题一直是 Kindle 的顽疾,而其在字体选用方面的不作为又特为尤甚。因此,更换字体一直是 Kindle 用户折腾的主要动力之一。早先,这一需求经常通过越狱并替换系统字体来实现。但随着 Kindle 越狱难度的加大,加上替换文件容易导致的诸多故障,尝试这种方法的成本已经越来越高了。

另外一种更为方便和安全的方式,则是利用 Calibre 这一强大的管理、编辑工具对电子书进行处理,在其中嵌入自定义字体。但直接应用这种方法得到的排版效果其实也并不完善,因为 Calibre 一次只能嵌入一个字体文件,在显示粗体和西文部分时,就会出现字体缺失或效果不佳的问题(很多中文字体附带的西文质量是十分平庸的)。

实际上,对于常见的中西文混排电子书,想要实现最好的排版效果,需要给中英文分别设置不同的字体

下图是原电子书的显示效果、使用 Calibre 直接嵌入字体的效果、以及嵌入多种字体效果的对比。请特别注意西文和粗体、斜体的显示效果。

null

本文的目的,即在于说明如何利用 Calibre 的命令行支持,通过在电子书中嵌入自定义的 CSS 和字体文件,以实现更完善的排版效果。

本文方法原理图示
本文方法原理图示

前期准备和字体选择

要使用本文方法修改电子书文件,需要提前准备的条件有:

  1. 安装 Calibre
  2. 待修改的电子书文件(如果该电子书是从商店购买,则需要先行移除其 DRM 保护);
  3. 将需要嵌入的中西文字体文件(.ttf.otf,不支持 .ttc)放在同一文件夹中(例如 ~/Documents/KindleFonts)。

字体的推荐并非本文重点,且中文互联网上已有不少较为完善的讨论(例如 这篇这篇)。至于免费字体的推荐和获取,则可参看我 之前的文章。这里只提出几点建议供读者参考:

  • 衬线体/宋体总体上更适合长文阅读(前提是分辨率足够高,但这对较新的 Kindle 不是问题);
  • 中文和西文字体在风格和粗细程度上应当尽量接近;
  • 电子墨水屏的显示效果看起来偏淡,因此尽量选择略粗的字体;
  • 嵌入的字体以够用为原则,不要数量过多或体积过大,否则容易导致 Kindle 无法打开或死机;
  • 从尊重版权角度出发,请始终注意电子书和字体的正规来源,并且不要传播修改后的文件。

例如,如果从获取和使用最为便利的开源字体中选择,IBM 推出的 IBM Plex Serif 和 Adobe/Google 制作的思源宋体就是一组较为协调的搭配。但考虑到电子书屏幕的上述显示特点以及两种字体的字重差异,比起直接选用思源宋体常规体和粗体,更好的做法是以其 Medium 字重(比 Regular 稍粗一些)作为常规体、以 Heavy 字重作为粗体。下文也将以这一组合为例进行演示。

🔗 你可以 下载 我准备好的这两种字体进行尝试。

IBM Plex Serif 搭配思源宋体
IBM Plex Serif 搭配思源宋体

CSS 的编写

Kindle 等阅读器读取和显示电子书的原理和浏览器显示网页几乎是一样的,都是以 html 文件为内容载体,而通过 CSS 来决定颜色、字体、排版等显示特性。为了让 Kindle 在显示时能正确调用嵌入的字体,就要同时嵌入相对应的 CSS,用于说明使用了哪些字体、分别应当在什么地方使用。

例如,如果准备嵌入上文提及的 IBM Plex Serif 配思源宋体的组合,并让中文字体加粗一档,所用到的 CSS 应如下图所示(已经放在上文提供字体压缩包中的 KindleFonts.css 内):

请输入图片标题

可以看到,这段 CSS 主要分为两大部分:

首先,用 @font-face 来声明将要嵌入的字体文件的各项属性(上图第 1—36 行)。这本不是必须的(因为字体文件本身已经记载了这些信息),但当需要改变字体原有的属性时(如将较粗字体当作常规体来用),就要借助 @font-face 来进行修改。这里拿出上面代码中涉及中文粗体的部分来具体说明:

@font-face {
    font-family: "Source Han Serif";
    font-style: normal;
    font-weight: normal;
    src: url(SourceHanSerifCN-Medium.otf);
}

上面这段代码的作用是将名为 SourceHanSerifSC-Medium.otf 的字体文件重新定义为「Source Han Serif」家族中的常规体。其中:

  • font-family:字体家族名称,可以任意填写,易于识别即可;
  • font-style:字体样式,取值为 normal(常规体)或 italic(斜体);
  • font-weight:字重,取值为 normal(常规体)或 bold(粗体);
  • src:字体文件的路径,此处填写字体文件名即可。

每有一个要嵌入的字体文件,都要配以对应的一段 @font-face 代码。

接着,用 CSS 选择器「告诉」Kindle 在哪些地方使用嵌入的字体(上图第 36 行以下)。在 font-family 属性中列举字体时要注意顺序,把西文字体放在中文字体之前;否则,Kindle 在显示时就会调用中文字体自带的西文,这不符合我们的目的。

最后,将写好的代码保存为一个 .css 文件(例如 ~/Documents/KindleFonts/KindleFonts.css),记下其路径备用。

命令的构建

完成上述准备后,就可以着手构建用来嵌入字体的终端命令了。该命令的结构如下:

$ /Applications/calibre.app/Contents/MacOS/ebook-convert 原始电子书文件路径 ~/Desktop/temp.htmlz --extra-css "$(cat 自定义CSS文件路径 | tr '\n','\t' ' ')" \
&& zip -urj0 ~/Desktop/temp.htmlz 字体所在文件夹路径 \
&& /Applications/calibre.app/Contents/MacOS/ebook-convert ~/Desktop/output.htmlz ~/Desktop/output.azw3 --language zh-Hans \
&& rm ~/Desktop/temp.htmlz

其中,原始电子书文件路径自定义 CSS 文件路径字体所在文件夹路径在上面的步骤中都已经准备好,填入对应位置即可。

注:如果你不确定文件路径的写法,可以将其拖入终端窗口来显示(macOS),或点击右键选择「属性」(Windows)来查看。

一个填写完整的命令如下图所示(🔗 下载):

null

对该命令中其余部分的解释如下:

  • /Applications/calibre.app/Contents/MacOS/ebook-convert:Calibre 格式转换模块的路径。在 macOS 上,该可执行文件位于 Calibre 的 .app 包中。在 Windows 和 Linux 上,该文件可在 Calibre 的安装目录中找到。此命令的基本用法为 ebook-convert 原始文件 目标文件.目标格式 [-参数]
  • --extra-css "$(cat 自定义CSS文件路径 | tr '\n','\t' ' ')":去除 CSS 文件中的换行和 tab(为了符合终端命令的语法要求)并嵌入到电子书中。
  • temp.htmlz:上述思路中用于「中转」的电子书文件。htmlz 格式本质上就是一个 zip 压缩包,内容是电子书中的资源文件。
  • zip -urj0:将自定义字体文件夹中的文件(-rj)更新到(-u)用于中转的 htmlz 格式电子书中,且不压缩其大小(-0);
  • output.azw3:最终生成的 Kindle 电子书文件,本命令中将其放在桌面。如果你使用非 Kindle 阅读器,也可以将其后缀名改为 .epub 以生成 ePub 格式的电子书。
  • --language zh-Hans:指定电子书语言,这影响到 Kindle 中字体菜单中提供的选项。如果你是用本文方法转换英文电子书,不要使用该参数。
  • rm ~/Desktop/temp.htmlz:删除用于中转的htmlz 格式电子书。

执行命令并稍等片刻,即可在桌面看到输出的 output.azw3 文件。这就是嵌入了字体的电子书。将其拷贝到 Kindle 设备上后,在字体菜单中选择新出现的「出版方字体」选项,即可看到效果。

在 Kindle 字体菜单中选择「出版方字体」
在 Kindle 字体菜单中选择「出版方字体」

延伸应用

在实际使用中,如果每次都要根据上述步骤重新编写一次命令,未免显得麻烦。其实,由于想要嵌入的字体一般相对固定,每次操作中需要改变的只有电子书文件的路径而已。为此,只需将原命令中的电子书路径改为变量 "$1",就可以将其当作一段 shell 脚本,放在各类效率工具中反复利用。

例如,你可以用 Automator 将其变为一个服务项,从而通过在电子书上点击右键直接调用:

null

🔗 Automator 服务下载

或者,可以将其制作成 LaunchBar 动作,通过快捷键调用:

null

🔗 LaunchBar 动作下载

顺带提及,本方法的幕后主角 ebook-convert 是一个极其强大的命令,可以实现 Calibre 图形界面的一切格式转换选项。你可以参阅其 文档来进一步定制出适合自己需求的命令。

> 了解更多 Kindle 使用技巧,就在专题 别让你的 Kindle 吃灰 📖

> 下载 少数派 iOS 客户端、关注 少数派公众号,让智能设备更好用 ⚡️