前言

在这个数字化时代,拥有一个完美的私人书库是许多书虫梦寐以求的。无论是为了管理电子书籍收藏,还是为了方便地获取书籍信息和阅读体验,建立一个优秀的私人书库都是至关重要的。

calibre 是一款跨平台,免费开源的电子书本地管理软件,旨在帮助用户管理他们的电子书籍收藏。它具有丰富的功能,包括电子书格式转换、元数据编辑、电子书阅读器和书库管理等。用户可以使用calibre轻松地组织、转换和阅读各种电子书格式,使阅读体验更加便捷愉悦。在电子书方面,只有它做到了一站式的服务。

效果图

在本文中,主要根据我个人的使用经验,分享一些关键步骤和常用插件,助你轻松打造一个符合个人喜好和需求的理想书库。

基本使用

安装软件

看下图,就是这位印度大神——Kovid Goyal,创造了 Calibre 这个大名鼎鼎的电子书管理软件,在此膜拜。

大神

  1. calibre电子书管理软件:https://calibre-ebook.com/download

  2. calibre官方文档:图形用户界面 — calibre 7.8.0 文档 (calibre-ebook.com)

calibre 的安装和基本使用都特别简单,而且官方教程写的很详细,建议选择自己感兴趣的模块进行详读。

书库管理

下载后,根据新手指南一路操作下去,就建立了第一个书库「calibre Library」。

何为书库?

每一个书库可以简单理解为一个文件夹。文件夹里按作者名拼音分类,每本书又是一个文件夹。里面会有书籍信息、封面和电子书文件。

calibre 的书库是和电子书的存储位置相关的,在书库下导入的书籍,都会以 书库名-作者-书名 这样的目录结构进行保存。

目前 calibre 支持多个书库,你可以创建任意多个书库,每一个书库中的书彼此独立。比如我就建了5个书库,之后可以随便进行切换。同一本书尽管可以存放于多个书库中,但是在书库内搜索时只能搜索到存在于这个书库内部的那个版本。

参考自少数派@一柳繁-阅读批注样样通,我的 calibre 书籍库管理方法论

书库分类

虚拟书库

calibre 的「虚拟书库」功能允许用户基于特定标准(如作者、标签)创建书籍的子集,这样你可以更有组织地浏览或管理电子书,而无需移动或改变实际文件。这相当于在你的电子书库中设置过滤器,只显示符合特定条件的书籍。

在主窗口左上角点击「虚拟书库 - 创建虚拟书库」

虚拟书库

如果不想要了可以随时删除虚拟书库,删除 calibre 的虚拟书库不会删除书库中的实际书籍。

导入书籍

在导入自己的书籍之前,首先需要根据自己需要新建书库,不然书籍都会保存在默认的书库「calibre Library」里。

calibre 可以导入几乎市面上所有的电子书格式。

除了把书籍文件直接拖进去之外,点击左上角的「添加书籍」,就能看到许多导入选项。

导入书籍

Tip:导入的书籍都会保存在书库目录下,如果原来的文件不删除,将会在原导入目录和calibre书库目录下分别有一份拷贝。

书籍删除与恢复

当你在 calibre 中删除一个电子书时,这个电子书并不会立即真正删除,而是被移动到 .caltrash 文件夹中。

.caltrash 是一种隐藏文件夹,它是 calibre 电子书管理软件的一个辅助功能,用于存储已经被删除的电子书和它们可能产生的其他文件(例如封面、元数据、索引等)。

删除备份

如果你需要恢复删除的电子书,在calibre中点击菜单中的“删除书籍”->“恢复最近删除的书籍”,就可以找到已经删除的电子书,并且可以将它们恢复到原来的位置。

需要注意的是,如果你将 .caltrash 文件夹删除或清空,那么其中存储的被删除电子书和相关文件也会被永久删除,无法再恢复。

自定义元数据

在 calibre 中,默认的元数据包含了:书名、作者、丛书、封面、打分(星级)、标签、识别码(Ids)、导入日期、出版日期、出版商、语言、注释。

当然,在管理图书时,需要的各类数据、标签可不止这些。因此,我们可以利用 calibre 的「管理栏目」功能,给书籍增加一些自定义的元数据,方便未来检索。

在 calibre 设置中点选「管理栏目」,就可以开始自定义。添加的栏目可以在检索,也会作为「自定义元数据」存在于书籍信息中

在第一栏中选中相应的栏目 ☑️,它就会在 calibre 书库的主界面出现。移动栏目在书库页面的位置则是通过左侧的 🔼 和 🔽 两个图标来实现的。

点击下方的「添加自定义栏目」,就会进入到创建页面:

管理栏目
  • 第一栏的「检索名」就是在检索时需要用到的定义值。推荐使用英文,但是亲测用中文并不影响使用(但是输入搜索信息的时候不断切换全角/半角会很折磨人);
  • 第二栏的「栏目标题」就是在主工具栏里会出现的名字,通常也会将其设置为新数据的名称。
  • 第三栏的「栏目类型」就是这个数据的类型。类似于 MS Excel 里的「设置单元格格式」,可以选日期、标签、文字等各种选项。如果希望设定一个默认值,就需要去最后一栏「默认值」中设置。
  • 第四栏的「描述」是用来描述新建的这个栏目的,据我的经验大部分时候不会被用到。

我添加的自定义栏目有:进度、评论、页码。

「进度」是用来区分一本书的阅读状态。除了「未读」「在读」和「已读」之外,还加上了我怨念已久但是各大网站似乎都没有引入的「搁置」和「放弃」两个状态。在搜索时输入 #progress: "=未读"or"=搁置",就能很快筛选出可以阅读的书籍。

「评论」是希望能在本地存放我在看书后的感想。虽然现在大部分堆在了 Goodreads,按理说不会突然封号、删评,但是留一个复制一份到本地总是有备无患。

「页码」则是借助了 Count Pages 插件,用来估算书籍长度。

除此之外,在 mobileread 论坛的 帖子 里,还见到了其他这些自定义的栏目。

标签和检索

calibre 中的常用的搜索语法大致如下,更详细的介绍可以在 官方说明文件中 找到:

特定标签tag:"=XX"
模糊标签tag:"~XX"
多个标签tag:"=AA"(and)"~BB"
多个标签之一tag:"=AA"or"=BB"
特定数量的标签tags:#=10
标签+特定文段tag:"=XX" text
标签+无评分tag:"=XX" rating:false
某个特定评分(X星)rating:X
在某日之后出版pubdate:>yyyy-m-d
在某月前加入到书库date:<=yyyy-m

Tip:这里的标点符号和日期中用到的数字都需要是半角。

如果有哪几个搜索字段经常会用到,更方便的操作是「保存搜索」。在搜索栏最右端找到「保存搜索」的图标,设置名称后点击「确定」,就能在书库页面的左侧栏找到已保存的所有搜索结果。

常用插件

安装 calibre 插件是玩 calibre 必不可少的一环。第三方插件可以为 calibre 增加新功能,如自动元数据获取、格式转换、批量处理文件等,大幅提升实用性和便利性。同时,它们还能帮助用户更方便地管理电子书籍,提高工作效率和阅读体验。

插件安装

以下是我目前安装的一些 calibre 插件:

序号插件介绍
1New Douban Books豆瓣元数据下载插件
2GoodreadsGoodreads 元数据下载插件
3TradSimpChinese简繁转换插件
4Ebook Translator电子书翻译插件
5Power Search全文搜索插件,默认快捷键是 Ctrl+Shift+S
6EpubMerge合并书籍
7EpubSplit拆分书籍
8Highlights to Obsidian将 calibre 中的高亮和笔记同步到 Obsidian 中

书库拼音路径改中文

部署完个人书库后,就会发现书库的每个书籍文件夹都是以作者的姓名拼音命名的,看起来很不爽。正好,有大佬在 Github 上开源了 calibre-do-not-translate-my-path 项目解决了这个问题,翻译过来就是“calibre 不要翻译我的文件路径”。

处理之前的书库

项目地址:【点击进入

文件说明

  • backend.zip:只实现了路径不翻译。
  • backend+update.zip:在 backend 的基础上还 patch 了更新检查链接和新版本下载链接。使用这个补丁,calibre 检查更新时会以本项目的版本为准,版本下载链接也被替换成了本项目 latest releases 地址。
  • .msi/.txz:将 backend+update 补丁重新打包后的完整安装包

版本选择

使用方法

Windows & Linux V1

根据平台和 calibre 版本下载 Release,下载解压好之后有一个文件名叫:python-lib.bypy.frozen,覆盖软件根目录 bin 文件夹原本的 calibre 文件即可。

之后导入的书籍,书籍目录都会变成中文的。

macOS V1 & V2

  1. 解压下载的包,得到 python-lib.bypy.frozen 文件。
  2. 打开 Finder,进入“应用程序” (/Applications),右键点“calibre—显示包内容”,进入 Contents/Frameworks/plugins ,将第 1 步下载的 python-lib.bypy.frozen,拷贝覆盖过来、关闭 Finder 窗口,重启打开 calibre 即可。

附加信息

如果你和我一样已经创建了书库,希望将已有的书库改成非英文路径,可以按照下面官方给的教程来处理。

处理之前建议备份一下自己的书库数据,防止后面出错恢复用。

  1. 打开书库,按下 Ctrl+A 选中所有书籍

  2. 右键 - 编辑元数据 - 批量编辑元数据 - “查找替换”页

  3. 查找模式:正则表达式,查找的字段:title,搜索:$,替换为:__DELME__

  4. 点击“应用”,等待 calibre 完成(点击前注意看一下下面的替换预阅,新书名应当是原书名+__DELME__

    正则表达式
  5. 查找模式:字符匹配,查找的字段:title,搜索:__DELME__,替换为保持为空

    字符匹配

  6. 点击“确定”,等待 calibre 完成(点击前注意看一下下面的替换预阅,此时的新书名应当是原本的书名)

书籍处理

电子书获取途径众多,但质量参差不齐,常见问题包括信息不全、排版差、缺少目录等。calibre 提供了一种解决方案,可为低质量、排版不佳的电子书补充信息并重新排版,提升阅读体验。

书籍刮削

抓取电子书信息是 calibre 的基本功能之一。默认情况下,它可以从 Amazon.com、Big Book Search、Edelweiss、Google、Open Library 等数据源中获取信息,包括作者、出版社、评分等,从而完善图书信息。

编辑元数据

默认的数据源对中文书籍不是很友好,为了提升中文书籍的检索质量,我们可以通过插件再添加一个豆瓣源。

插件详情介绍可以参考:calibre桌面版豆瓣插件calibre桌面版豆瓣插件升级 讲的很详细。

在下载书籍元数据之前,建议取消用不到的数据源,这样可以大大加快搜索的速度。

编辑元数据详情页

Tip:calibre更新元信息只是更新了软件中记录的元信息,正常情况下并不会去改动原文件。要真正更新原文件的元信息,只能用“保存到磁盘”的功能或进行同格式的转换。

对于那些无法直接添加的少数图书,我们可以利用它们的ISBN码(国际标准书号)在豆瓣上搜索,以获取更准确的书籍信息。

小知识:ISBN 码是什么?

凡是 2007 年之后出版的书,你都可以在实体书条形码位置上方看到一个 13 位的数字(之前的是 10 位),这就是 ISBN 码。参考自少数派@沨沄极客-借助 calibre 处理电子书的流程和技巧

ISBN

国际标准书号(英语:International Standard Book Number,缩写为 ISBN),是国际通用的图书、独立出版物的代码。一本书每发行一版,都能申请到一个新的国际标准书号(即使是平装版和精装版也不同)。你可以把 ISBN 码看作是每本书在全球范围内的身份证。

书籍转换

格式转化

calibre 提供了强大的格式转换的功能,选中要转换书籍,可以选择多本(支持批量转换),然后点击菜单栏的「转化书籍」进入转换界面,在右上角的输出格式中,选择你希望输出的格式。

转换书籍

结构检测和CSS样式

结构检测和CSS样式分享

//*[re:test(., "^\s*[第卷][0123456789一二三四五六七八九十零〇百千两]*[章回幕部节集卷].*", "i")] 
/* Sspai Web Theme A theme to [sspai](ssp.ai) default theme. Developed by Codegass(wchweichenhao@gmial.com) & Yves(yves@sspai.com) Download Cuto on the App Store and Google Play! */
body {
font-size: 15px;
color: #333;
background: #fff;
font-family: Helvetica, Arial, "PingFang SC", "Microsoft YaHei", "WenQuanYi Micro Hei", "tohoma,sans-serif";
margin: 0;
padding: 10%;
}
h1 {
font-size: 2.2em;
font-weight: 700;
line-height: 1.1;
padding-top: 16px;
margin-bottom: 4px;
}
h2,
h3,
h4,
h5,
h6 {
line-height: 1.5em;
margin-top: 2.2em;
margin-bottom: 4px;
}
h2 {
font-size: 1.4em;
margin: 40px 10px 20px 0;
padding-left: 9px;
border-left: 6px solid #ff7e79;
font-weight: 700;
line-height: 1.4;
}
h3 {
font-weight: 700;
font-size: 1.2em;
line-height: 1.4;
margin: 10px 0 5px;
padding-top: 10px;
}
h4 {
font-weight: 700;
text-transform: uppercase;
font-size: 1.1em;
line-height: 1.4;
margin: 10px 0 5px;
padding-top: 10px
}
h5,
h6 {
font-size: .9em;
}
h5 {
font-weight: bold;
text-transform: uppercase;
}
h6 {
font-weight: normal;
color: #AAA;
}
img {
width: 100%;
border-radius: 5px;
display: block;
margin-bottom: 15px;
height: auto;
}
dl,
ol,
ul {
margin-top: 12px;
margin-bottom: 20px;
padding-left: 5%;
line-height: 1.8;
}
p {
margin: 0 0 20px;
padding: 0;
line-height: 1.8;
}
a {
color: #f22f27;
text-decoration: none;
}
a:hover {
color: #f55852;
text-decoration: underline;
}
a:focus {
outline-offset: -2px;
}
blockquote {
font-size: 1em;
font-style: normal;
padding: 30px 38px;
margin: 0 0 15px;
position: relative;
line-height: 1.8;
text-indent: 0;
border: none;
color: #888;
}
blockquote:before {
content: "“";
left: 12px;
top: 0;
color: #E0E0E0;
font-size: 4em;
font-family: Arial, serif;
line-height: 1em;
font-weight: 700;
position: absolute;
}
blockquote:after {
content: "”";
right: 12px;
bottom: -26px;
color: #E0E0E0;
font-size: 4em;
font-family: Arial, serif;
line-height: 1em;
font-weight: 700;
position: absolute;
bottom: -31px;
}
strong,
dfn {
font-weight: 700;
}
em,
dfn {
font-style: italic;
font-weight: 400;
}
del {
text-decoration: line-through;
}
/*code {font-size:90%;}*/
/*pre {text-align:left; overflow-x: scroll; color: #257fa0; background: #f6f6f6; padding: 10pt 15pt; border-radius: 3px; border: solid 1px #e2e2e2;}*/
pre {
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857;
word-break: break-all;
word-wrap: break-word;
border-radius: 4px;
white-space: pre-wrap;
display: block;
background: #f8f8f8;
padding: 10px 20px;
border: none;
margin-bottom: 25px;
color: #666;
font-family: Courier, sans-serif;
}
code {
color: #c7254e;
background-color: #f9f2f4;
border-radius: 4px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
padding: 2px 4px;
font-size: 90%;
}
p>code {
color: #c7264e;
background-color: #f9f2f4;
font-size: .95em;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
}
figure {
margin: 1em 0;
}
figcaption {
font-size: 0.75em;
padding: 0.5em 2em;
margin-bottom: 2em;
}
figure img {
margin-bottom: 0px;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #eee;
}
ol p,
ul p {
margin-bottom: 0px;
}
li {
margin-bottom: 0.75em;
margin-top: 0.75em;
}
ol#footnotes {
font-size: 0.95em;
padding-top: 1em;
margin-top: 1em;
margin-left: 0;
border-top: 1px solid #eaeaea;
counter-reset: footer-counter;
list-style: none;
color: #555;
padding-left: 5%;
margin: 20px 0;
}
ol#footnotes li {
margin-bottom: 10px;
margin-left: 16px;
font-weight: 400;
line-height: 2;
list-style-type: none;
}
ol#footnotes li:before {
content: counter(footer-counter) ". ";
counter-increment: footer-counter;
font-weight: 800;
font-size: .95em;
}
@keyframes highfade {
0% {
background-color: none;
}
20% {
background-color: yellow;
}
100% {
background-color: none;
}
}
@-webkit-keyframes highfade {
0% {
background-color: none;
}
20% {
background-color: yellow;
}
100% {
background-color: none;
}
}
a:target,
ol#footnotes li:target,
sup a:target {
animation-name: highfade;
animation-duration: 2s;
animation-iteration-count: 1;
animation-timing-function: ease-in-out;
-webkit-animation-name: highfade;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function: ease-in-out;
}
a:target {
border: 0;
outline: 0;
}
animation-iteration-count: 1;
-webkit-animation-timing-function: ease-in-out;
}
a:target {
border: 0;
outline: 0;
}
tion-iteration-count: 1;
-webkit-animation-timing-function: ease-in-out;
}
a:target {
border: 0;
outline: 0;
}

参考自:B站@浪迹天涯的咖啡-可能是全网最全的calibre操作说明书

繁简互转

有时候,一本最新的英文著作可能已经被翻译成繁体中文,但尚未有简体中文版本。在这种情况下,可以利用转换工具将其转换为简体中文,以便更方便地阅读。少数派@沨沄极客-借助 calibre 处理电子书的流程和技巧

方法一书伴提供了一种方法,可以将一本繁体书通过查找和替换的方法转换为简体书:《电子书繁体字转简体字》,其中采用的方法是通过词库规则(查找和替换)来实现新字词、繁简对换、修改规则、重排、全词库去重。

方法二:这里要介绍的是另一种较新的方法,即通过繁简转换插件 TradSimpChinese 来实现。

繁简转换

安装完毕后,「右键图书 - 编辑书籍」,进入编辑图书的界面。界面上方的最右侧会出现一个「文」的图标,点击图标就会显示这一插件的界面。

转换

插件的选项分别对应繁体转简体简体转繁体繁体转繁体等。

针对香港、台湾的繁体还有特定的优化,还能将所有的引号 “ ” 转换为直角引号「」。最后一项要选择 Entire eBook 来转换整本书,转换完成后关闭窗口即可。

添加 RSS 订阅

添加订阅源

准备好 RSS 订阅源后,就可以在 calibre 中添加这些订阅源了。打开 calibre 在主界面上方的功能图标中找到「抓取新闻」,点击右侧的向下箭头,在弹出的菜单中点「添加自定义新闻源」。

添加订阅

最旧文章”可以设置抓取文章的时效性,默认情况下,只会抓取最近 7 天的文章,如果想要抓取更多,可以自自定义。“每个源的最多文章数”可以设置抓取文章的数量上限。需要注意的是,这两项设置都受限于网站 RSS 的输出方式。参考自@书伴calibre 使用教程之抓取 RSS 制成电子书

接下来,需要在“将新闻加入订阅”中添加我们准保好的 RSS 地址,点击【添加源】按钮,最后点击右下角的【保存】按钮保存即可。在一个订阅清单中可以抓取多个 RSS 源,所以可以重复操作输入多个 RSS 源名称和源网址并多次添加。

抓取并推送

设置好订阅源后就可以抓取新闻了。同样,在 calibre 主界面上方的功能图标中找到「抓取新闻」,点击它,会弹出一个“定期新闻下载”的对话框。在左侧列表中找到「自定义」分类,点击就可以找到刚添加的订阅清单,选中后点界面下方的【立即下载】按钮,calibre 便会开始抓取 RSS 内容。

定期下载新闻

抓取成功后,calibre 会生成一本期刊格式的电子书并自动存放到书库中。

成功抓取的豆瓣最受欢迎的书评和影评阅读界面如下图所示。

抓取的订阅

导出及备份

备份书目和书库

calibre 支持「导出书目」清单和「备份书库」这两种方式来整理和备份。

「导出书目」即可导出同一书库下所有书籍的元数据,包含了默认及自定的所有元数据类型。

点选工具栏中的「转换书籍 – 为你的 calibre 书库中的书籍编制书目」,设定导出文件的名称,在「CSV/XML 选项」中选择想要加入的字段,点击「确定后」就可以导出一个相应格式的文件。

如果想要拿来统计,最推荐 CSV 这个表格形式。无论是拿来统计每年阅读的页数,还是将文件导入其他软件都十分方便。

生成书目

calibre 除了支持创建、切换、重命名或移除书库,还支持书库数据的导出导入。

如果想要导出所有 calibre 的数据用来备份,就需要点击当前书库的图标,选中「导出/导入所有 calibre 数据 – 导出所有 calibre 数据」,选中需要备份的书库,点击确定即可保存。

导出导入

想要在新电脑中读取之前的备份,那就需要选择「导入先前导出的数据」,再选择备份所在的文件夹读取即可(这个功能相当实用)。

Tip:导出数据很简单,导入时,如果进行了书库分类,需要在自己的书库文件夹新建各个分类子文件夹,这样可以保证恢复回来也是分类好的。

保存至硬盘

当我们将自己的书籍整理完毕后,就可以选择将书籍导出到本地硬盘,便于长久保存,或者分享给别人。

正好 calibre 具有这样的功能,我们只需要选择相应的书籍,点击按钮即可。

保存至硬盘

保存到硬盘:将每本书籍保存为一个单独的文件夹,通常是在指定的文件夹中创建一个包含所有书籍的目录结构。

保存到硬盘

保存到硬盘的单个文件夹:将所有书籍保存到一个单独的文件夹中,而不是为每本书籍创建一个单独的文件夹。

保存到硬盘的单个文件夹

后面的命令都好理解,不加赘述。

保存到硬盘的书籍文件夹一般都包含三个文件,一个封面jpg文件,一个书籍文件(和一个是XML格式的书籍元数据文件。

其中,电子书文件(主流格式)已经内嵌了部分或全部的元数据(如标题、作者、系列、封面等)。

连接和共享

局域网

完成了内容的处理和格式的转换,接下来就应该将电子书发送到各种设备上了。

将电子书推送到 Kindle

Kindle 是专用的阅读设备,calibre 提供了两种方法将图书发送到 Kindle。

方法一:通过邮件

calibre 提供利用邮件发送图书的功能,在上方选择「连接/共享」。我们需要对其进行一些设置,上方填写 Kindle 的接收邮箱,下方填写用于发送图书的邮箱。邮件服务器的配置信息各不相同,你需要在各大邮件服务商的说明中寻找。

方法二:通过数据线

数据线传输更是方便,在将 Kindle 连接到电脑后,calibre 上方会出现一个「发送到设备」的按钮,点击即可将电子书发送到 Kindle。

Tip:Kindle 不支持 epub 格式的图书。因此在发送之前要注意将图书转换为 mobi 格式。

局域网内共享

在 Kindle 之外,iPhone、iPad、Android 等设备对网页、局域网支持良好,不必通过邮件、数据线等方式实现。除了使用方法一样的数据线法以外,calibre 还可以用内容服务器的方法,在移动设备上获取电子书。

在 calibre 中「链接/共享 - 启用内容服务器」,会得到一个 IP 地址和端口,比如 192.168.124.48:8080

在移动设备上打开浏览器,在浏览器中输入192.168.124.48:8080,就可以看到由 calibre 创建的分享页面。参考自少数派@sainho-最强大的本地电子书管理工具:calibre 使用指南

局域网展示

同时可以在「首选项」-->「通过网络共享」中可以设置自己的账号和密码加强保密性。

首选项添加账户

阅读器的妙用

calibre内嵌阅读器是calibre电子书管理软件内置的功能,为用户提供了一个便捷而多功能的阅读体验。内嵌阅读器支持个性化设置,如字体大小、字体样式、页面边距等,让用户根据自己的喜好调整阅读界面。此外,它还具有标注和书签功能,方便用户在阅读过程中做笔记和标记重要内容。

总体而言,calibre内嵌阅读器为用户提供了一种方便、集成和个性化的阅读电子书籍的方式,使阅读体验更加高效。

添加搜索源

在 calibre 内嵌阅读器中我最喜欢的功能莫过于侧边栏的查找功能,在阅读的时候,对于不懂的名词可以直接鼠标滑动选中,右侧查找栏就会出现相应的解释。

在这里,用户可以天马行空的自定义添加各个搜索源,甚至可以添加大模型进行搜索问答,个人感觉非常帮。

添加搜索源

下面是我常用的一些搜索源,仅供参考。

名称:百度搜索
URL:https://www.baidu.com/s?wd={word}

名称:必应搜索
URL:https://www.baidu.com/s?wd={word}

名称:豆瓣读书
URL:https://search.douban.com/book/subject_search?search_text={word}&cat=1001

名称:Zlibrary
URL:https://zh.z-library.se/s/{word}?
目前只能搜索,不能直接在阅读器里进行下载图书

名称:文心一言
URL:https://yiyan.baidu.com/search?q={word}

名称:维基百科
URL:https://zh.wikipedia.org/wiki/{word}

名称:Google dictionary
URL:https://www.google.com/search?q=define:{word}

参考自:B站@浪迹天涯的咖啡-可能是全网最奇葩的calibre阅读器用法

修改配色和字体

首先,让我们考虑颜色。这个似乎是一个必须修改的部分。可以尝试使用浅绿、浅黄或浅棕等更舒适的颜色。其中 #dae5d0 是个不错的选择。另外,你也可以访问 这个配色网站 来找到自己喜欢的配色方案,或者直接去找那种终端配色抄现成的。

首选项

其次,进行修改字体,推荐霞鹜文楷这个字体。可以在Github下载到这个字体及其衍生版本,我用的就是这里的一个衍生版本,字重更重,看起来线条更粗。

如果您使用 macOS,已经安装过 Homebrew,可以在终端输入命令,来安装本字体。

brew tap homebrew/cask-fonts && brew install font-lxgw-wenkai

如果您使用 Windows,已经安装过 Scoop,可以在终端输入命令,来安装本字体。亦可查看微软官方教程:如何在 Windows 中安装或删除字体

scoop bucket add nerd-fonts && scoop install LXGWWenKai

或者

scoop bucket add nerd-fonts && scoop install LXGWWenKaiMono

阅读器 CSS 定制

调整行高、段落间距

在阅读器界面,进入“首选项”,选择“样式”页,输入下段代码:

body 
{
   line-height:1.5em;
   padding:0 0 1.5em 0;
}

/* 若要强制使用阅读器设定,可在语句后加上“!important” */
body 
{
   line-height:1.5em !important;
   padding:0 0 1.5em 0 !important;
}

解释:设置1.5倍行高;段落之间1.5倍行高的段顶部间距。

模仿 kindle 的主题

字体都设置为 “STSong”,包括非衬线字体、衬线字体和等宽字体;

在阅读器界面,进入“首选项”,选择“样式”页,输入下段代码:

/*-- 背景色 --*/
body {
    background-color: rgb(241, 229, 201);
}

/*-- 各级别标题颜色,不同标题可以指定不同的颜色 --*/
h1 {
    color: #d33682;
}

h2,
h3,
h4,
h5,
h6 {
    color: #d33682;
}

/*-- html文本中字体和行间距 --*/
html {
    font-family: 'STSong';
    line-height: 150%;
}

/*-- 代码文本的字体,jetbrain软件的默认字体是这个 --*/
code {
    font-family: 'Menlo';
}

Leo_Franklin 样式

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden] {
  display: none;
}
html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
body {
  margin: 0;
}
a:focus {
  outline: thin dotted;
}
a:active,
a:hover {
  outline: 0;
}
h1 {
  font-size: 2em;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
mark {
  background: #ff0;
  color: #000;
}
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em;
}
pre {
  white-space: pre-wrap;
  word-wrap: break-word;
}
q {
  quotes: "\201C" "\201D" "\2018" "\2019";
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 0;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0;
}
button,
input {
  line-height: normal;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
input[disabled] {
  cursor: default;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="search"] {
  -webkit-appearance: textfield;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
  vertical-align: top;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
html {
  font-family: 'PT Sans', sans-serif;
}
pre,
code {
  font-family: 'Inconsolata', sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'PT Sans Narrow', sans-serif;
  font-weight: 700;
}
html {
  background-color: #073642;
  color: #839496;
}
body {
  background-color: #002b36;
  margin: 0 auto;
  min-width: 23cm;    /*calibre 滚动式 这里建议不要用max-width */
  border: 1pt solid #586e75;
  padding: 1em;
}
code {
  background-color: #CCFFFF; /*calibre 这里改成亮色更好*/
  padding: 2px;
}
a {
  color: #b58900;
}
a:visited {
  color: #cb4b16;
}
a:hover {
  color: #cb4b16;
}
h1 {
  color: #d33682;
}
h2,
h3,
h4,
h5,
h6 {
  color: #859900;
}
pre {
  background-color: #002b36;
  color: #839496;
  border: 1pt solid #586e75;
  padding: 1em;
  box-shadow: 5pt 5pt 8pt #073642;
}
pre code {
  background-color: #002b36;
}
h1 {
  font-size: 2.8em;
}
h2 {
  font-size: 2.4em;
}
h3 {
  font-size: 1.8em;
}
h4 {
  font-size: 1.4em;
}
h5 {
  font-size: 1.3em;
}
h6 {
  font-size: 1.15em;
}
.tag {
  background-color: #073642;
  color: #d33682;
  padding: 0 0.2em;
}
.todo,
.next,
.done {
  color: #002b36;
  background-color: #dc322f;
  padding: 0 0.2em;
}
.tag {
  -webkit-border-radius: 0.35em;
  -moz-border-radius: 0.35em;
  border-radius: 0.35em;
}
.TODO {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #2aa198;
}
.NEXT {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #268bd2;
}
.ACTIVE {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #268bd2;
}
.DONE {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #859900;
}
.WAITING {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #cb4b16;
}
.HOLD {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #d33682;
}
.NOTE {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #d33682;
}
.CANCELLED {
  -webkit-border-radius: 0.2em;
  -moz-border-radius: 0.2em;
  border-radius: 0.2em;
  background-color: #859900;
}

样式效果

参考自calibre ebook viewer 自定义样式_calibre样式&&calibre 电子书库/电子书管理软件--相关配置_calibre设置

MobileRead 论坛

点击进入Custom CSS Stylesheets for Calibre's Viewer

样式一

body {
    color: rgb(0, 0, 0);
    background-color: rgb(174, 174, 174);
    /* background-color: rgb(228, 226, 224); */
    text-align: justify;
    line-spacing: 1.8;
    margin-top: 0px;
    margin-bottom: 4px;
    margin-right: 50px;
    margin-left: 50px;
    text-indent: 3em;
    /* text-indent:2em; */
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: black;
    text-align: center;
    font-style: italic;
    font-weight: bold;
}

样式二

body {
    color: rgb(255, 255, 255);
    background-color: rgb(0, 0, 255);
    text-align: justify;
    line-spacing: 1.8;
    margin-top: 0px;
    margin-bottom: 4px;
    margin-right: 50px;
    margin-left: 50px;
    text-indent: 2em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: white;
    text-align: center;
    font-style: italic;
    font-weight: bold;
}

样式三:灰底灰(深色),使用的字体是 Cambria

body {
    background: rgb(230, 230, 230);
    background-size: 100% 100%;

    margin-left: 1.2em !important;
    margin-right: 1.2em !important;
    margin-top: 1.4em;
    margin-bottom: 1.4em;

    color: rgb(60, 60, 60);
}

::selection {
    background: rgb(190, 190, 190);
}

p {
    text-indent: 3em;
    padding-top: 5px;
}

/* 将链接的文字颜色设置为米黄色 */
a:link {
    text-decoration: none;
    color: beige;
}

灰色文本的棕褐色:

body {
background-color: #EFEBD6;
padding: 20px 30px 20px 30px;
color: #555555;
}

还有很多其他的主题见【theKAKAN/calibreCSS:calibre 阅读器主题集合

科普知识

常见电子书格式

EPUB⭐⭐⭐

EPUB(Electronic Publication的缩写,意为:电子出版)是一种电子图书标准,由国际数字出版论坛(IDPF)提出,常见的电子书格式之一,市面上大部分的阅读设备和软件都支持 epub 格式 (除了 Kindle)。EPub 是一个自由的开源标准,是一种富文本格式,可以自动重新排版,也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示。

我把 .epub 格式作为第一选择,目前正取代 mobi 被 kindle 采用。

PDF⭐⭐

PDF(英语:Portable Document Format,便携式文档格式)是一种用独立于应用程序、硬件、操作系统的方式呈现文档的文件格式。是一种富文本格式。独立特性使得 PDF 成为最通用的电子书格式,可以在大屏设备上很方便地阅读而不用担心信息遗失或遭修改。但这也意味着不可重排,所以不太适合小屏设备阅读。

PDF格式可以插入图表,图片,嵌入字体等,甚至具有多种复杂的排版功能,它还可以保持纸质书的原始外观,这使PDF成为更主流的电子书格式。所以我们把 .pdf 格式作为第二选择。

MOBI, AZW、AZW3

MOBI、AZW、AZW3 格式都是亚马逊(Amazon)的专有格式,是富文本格式,只有在 Kindle 及 其他各平台上的 Kindle 软件应用上能够使用;

MOBI 格式电子书可以分为两类,也就是 MOBI 格式的两种标准,一个是旧标准:KF7(也称为 MOBI 7),一个是新标准:KF8(也称为 MOBI 8);

MOBI 7 和 MOBI 8格式电子书的后缀都是 .MOBI,但两者毕竟是不同的:

  • MOBI 7不支持在Kindle中更换字体、加粗等比较丰富的排版格式,MOBI 8则支持这些丰富的排版格式。

  • 而将MOBI 8格式电子书通过邮箱传输的方式同步到 Kindle 的话,电子书在 Kindle 上将无法显示封面;

这三种电子书格式的发展很大程度上依靠Amazon这个巨大的内容提供商及其电子书阅读器Kindle的流行普及。它们同属亚马逊的私有格式,没有本质的区别,可以简单的这样理解,MOBI是比较老的一种格式,AZW、AZW3 格式比 MOBI 格式多了一层“壳”,亚马逊利用它对电子书做DRM版权保护

目前市面上的 MOBI 文件大部分是来自两种途径:

  • 一种是 EPUB、pdf 或者 txt 转换成的 MOBI;
  • 一种是从 Amazon 商店流出来的 MOBI。

MOBI 与 AZW、AZW3 格式的关系你可以这么理解:

  • KF7(也称为MOBI 7)加上一层用于DRM 版权保护的“壳”,就成了AZW格式;
  • KF8(也称为MOBI 8)加上一层用于DRM 版权保护的“壳”,就成了AZW3格式;

大部分已经是 AZW3 格式了,而以前主流的 MOBI 格式则越来越少,它正逐渐取代 MOBI 和 AZW 成为 Kindle 电子书的主流格式。AZW3 格式的本质是 KF8

其他格式转MOBI技巧:使用 calibre 将电子书转换为混合 MOBI 7 和 MOBI 8的 Kindle 电子书

mobi

IBA

IBA是另一种常见的电子书格式。它用于在Apple的iBooks Author应用程序中创建的书籍的格式。此格式与EPUB格式非常相似。但是,它只能依靠Apple Books应用程序中的自定义小部件代码来工作,因此不能在所有电子阅读器上普遍读取。

如果要使用IBA格式的电子书,则需要通过iBooks Author编写。 IBA格式不仅可以支持视频,还可以支持声音,图像和交互式元素。同时,IBA格式适用于电子书,公司产品展示,公司手册等。不同之处在于,IBA创建的内容将在iBooks商店中发布,而不是在各种类别的Apps中发布

优点:更好的排版、支持视频,图像和音乐

缺点:不能在所有电子阅读器上通用阅读、更少的模板

其他格式

exe:不需要安装专门的阅读器,下载后就可以直接打开,单击目录就可以看到选取的内容。

hlp:帮助文件格式,可直接在Windows上打开,一般在程序中按F1可以打开。

chm:帮助文件,支持多种视音频格式,让电子书看起来更加生动美观。

lit:微软的文件格式,需要下载Microsoft Reader软件来阅读。

wdl:北京华康公司的文件格式,在市面上使用也比较普遍,用万能文件管理阅读器就能打开wdl格式的电子书。

ceb:在转换文档的过程中采用了“高保真”技术,可最大限度地保持电子书原来的样式。

abm:新型数码出版物格式,可将文字内容和图片、视音频、动画结合成一个整体,在阅读的同时感受视觉和听觉的全方位体验。

pdg:超星公司出品,将书籍扫描后存储为 pdg 数字格式,存放在超星数字图书馆中。想要阅读这些图书就必须使用超星阅览器(Superstar Reader),安装程序后点击“资源”,能看到按照科目划分的图书分类,展开分类,呈现在你面前的就是每一本具体的书籍。

结语

毫无疑问,calibre 是一个非常强大的书籍管理软件。

它的基本功能包括可以分类存储各种类型和格式的书籍,并支持书籍格式的转换。它的内置阅读器和批注功能,连同一键连接到主要书评网站和在线小说站点的能力,以及多端同步功能,都大大提高了用户的阅读效率。

此外,calibre 提供了丰富的自定义选项,允许用户自行添加、定制所需的元数据,并将其与内置多种语法的搜索引擎相结合,有效地筛选、整理书库内的条目。尽管 calibre 在社交互动方面还有待提升,但它作为电子书管理的工具,已经非常接近完美。它不仅提升了个人的阅读效率,也通过其编辑和美化电子书的功能,为电子书籍提供了强有力的支持。

目前掌握的功能已基本满足我的需求,calibre 的功能还有很多,需要后续挖掘探索。

参考链接