如何以开源方式创建电子书

还没有读者喜欢这个。
Publishing the open source way

Opensource.com

细心的读者会注意到,我们已经开始以 ePub 格式发布我们的“Open Voices”电子书。现在,我们最好的文章和访谈都以轻量级和便携式文件的形式提供,可以在任何支持此开放标准的电子阅读设备上阅读。

还有谁比我们友好的 opensource.com 实习生更适合承担转换我们图书馆的任务呢?今年夏天,我完善了一种我认为简单可靠的以开源方式创建电子书的方法。今天,我想分享它。

我们的任务

本指南解释了一种使用大多数流行的计算平台上可用的开源工具创建电子书(“电子书”)的方法,格式为 ePub 格式。ePub 是 国际数字出版论坛 的数字图书出版开放标准,大多数主要的电子阅读设备都支持它(Kindle 除外——对不起,亚马逊粉丝!)。但更重要的是,将电子书格式化为 ePub 可以保证许多在线电子书市场将托管和分发该作品。

我在此处概述的方法反映了两种愿望:使用开放工具开放格式创建开放电子书,并通过尽可能少地使用这些工具来避免不必要的复杂性。因此,本指南描述了一个相当具体的程序——一个用于收集和编辑 OpenDocument 格式的内容,并将该内容转换为 ePub 电子书的程序。

您将需要

在我们开始之前,还有一个额外的说明:如果没有 Scott Nesbitt 的帮助,我不可能如此快速或轻松地完成这项工作,Scott Nesbitt 是奥克兰的作家和编辑,他是 opensource.com 的支柱。当我开始想象如何完成这个项目时,我阅读(多次)了 Scott 的优秀电子书教程 中的许多内容,这些内容非常有帮助。任何值得称道的开源项目都必须承认其债务;Scott 让我非常感激。

好了。让我们开始吧。

准备内容

首先:您的电子书需要内容。

您可能正在为您的电子书项目编写新鲜内容。或者您可能正在重新利用您已经在博客上发布的内容。在任何一种情况下,LibreOffice 都是理想的工具。

无论您如何将内容导入 LibreOffice,请记住一个关键点:您必须使用样式来格式化您的文档。“样式”不仅仅是字体选择和行高偏好;它们是对您的文档的逻辑和有意义的结构的陈述(有关更多信息,请阅读有关“语义标记”的内容)。

有些人可能认为使用文字处理器来创建电子书有点疯狂,但事实是:快速有效地格式化文本是文字处理器的设计目的。不幸的是,大多数用户从未学会正确使用文字处理软件,而是随意地将文本格式(如字体大小或文本颜色)应用于各个元素。如果您是这些人之一(我曾经是!),那么您应该帮自己一个大忙,并学习 Ahuka 的 LibreOffice 教程,该教程可在 Hacker Public Radio 上找到。

应用样式

在 LibreOffice 中,按 F11 键切换“样式和格式”窗格。当此窗格可见时,它将显示当前在您的文档中使用的样式。要制作 ePub 文件,您至少需要指定以下元素

  • 标题。书名及其主要章节应设置为“标题 1”。所有章节部分应设置为“标题 2”。对于小节,请选择“标题 3”。虽然 LibreOffice 允许作者指定最多九种标题样式,但您不应超出前三种。大多数 ePub 制作器将无法识别除这些之外的任何内容。
  • 正文文本。您的书的文本应在 LibreOffice 中接收“正文文本”样式。
  • 等宽文本。某些文本(最值得注意的是计算机代码)需要特殊格式才能保持其间距。它应指定为“预格式化文本”。
  • 扩展引文。某些类型的写作以块引用为特色。这些应设置为“引文”样式。

您的 OpenDocument 中不应有任何元素是非结构化的。确保每个标题、每个引文和每个段落都已正确指定。奖励:如果您从已进行语义标记的来源复制文本(例如,网页),那么 LibreOffice 应该能够识别源文档中的样式并在目标文档中应用它们。

忘记字体

不要担心文档元素的外观。您可以花一下午的时间为您的章节标题找到完美的字体,但您将是在浪费时间。ePub 文件包含 以 CSS 编写的样式规范;它们旨在允许电子阅读设备将自己的首选项应用于书籍,从而允许读者指定其字体样式和大小。

简而言之,事物看起来如何不如事物如何被指定重要。确保您的 OpenDocument 中的每个元素都已标记,但不要担心边距之类的东西。

当您完成将所有内容放入 LibreOffice 后,保存您的工作。

编辑内容

在生成电子书之前,您需要对其进行编辑。当然,您的读者会欣赏彻底的副本编辑,但您的软件会奖励您花时间整理标记。

注意看不见的东西

在 LibreOffice 中,按 Ctrl+F10 使“非打印字符”可见。非打印字符只是文字处理器用于跟踪文本格式的那些不可见指示符。通过切换此功能,您可以窥探可能已悄悄进入您的文档的每个错误空格、换行符和回车符。

删除任何不必要的字符,例如段落末尾的空格或文本块之间的空白段落。您希望您的 ePub 文件尽可能干净,不仅是为了使其看起来很棒,而且还为了使 OpenDocument 到 ePub 的转换过程顺利进行。

此时,请务必保存您的工作。

生成您的 ePub

我们现在准备好从 OpenDocument 源生成 ePub 文件了。感谢 LibreOffice 的方便的 Writer2ePub 扩展,执行此操作非常容易。

通过单击项目页面上的相应下载链接下载并安装 Writer2ePub。如果扩展程序保存到您的计算机,请双击下载包,Writer 应该会为您完成设置插件的工作。

如果您已正确安装 Writer2ePub,则 LibreOffice 现在应具有新的 ePub 工具栏。只有三个按钮,很容易错过——所以仔细看。

首先,单击蓝色按钮以设置电子书的元数据。这不仅重要而且至关重要,因为 Writer2ePub 不会让您在不这样做的情况下继续操作。您至少必须指定

  • 作者姓名
  • 书名
  • 书籍语言

此外,您可以为您的书指定封面图像。默认情况下,Writer2ePub 会在您的文档中搜索图像,并从找到的第一个图像创建封面。如果您要求它在您的书中没有图像的情况下执行此操作,它会变得相当暴躁,因此请务必选择“无封面”以避免在这种情况下出现问题。

当您对设置的参数感到满意时,单击“确定”,然后保存您的 OpenDocument。

最后,按下 Writer2ePub 工具栏上的绿色按钮,观看这个出色的插件完成它的工作。

检查您的 ePub

Writer2ePub 将控制 LibreOffice 并开始将您的 OpenDocument 转换为 ePub 文件。当然,完成此操作所需的时间取决于您的书的长度以及其中包含的图像数量。

完成后,找到包含您的 OpenDocument 源文件的文件夹。旁边应该是一个全新的 ePub,文件名相同。

使用您选择的 ePub 阅读器打开该文件。大多数人喜欢 FBReader,它在 Windows、OS X、Linux 和 Android 上可用。您还可以考虑将您的 ePub 阅读器安装为浏览器扩展程序(就像您可能对 Firefox 中恰如其名的 EPUBReader 所做的那样)。这样做可以让您在网络上打开 ePub 文件的链接,而无需切换应用程序。

您现在需要仔细检查您的电子书。务必检查其

  • 目录(是否完整?所有标题是否正确排序?)
  • 章节和小节标题 (它们是否保持正确的层次结构?它们的大小写是否一致?)
  • 超链接 (它们是否指向预期位置并正常运行?)

我注意到,当遇到过长的超链接或指向 HTML 文件以外的其他内容的链接(如 PDF)时,Writer2ePub 偶尔会产生错误。我还注意到,当章节或小节以编号或项目符号列表结尾时,该插件的反应不佳。在这些情况下,在有问题的列表末尾输入一个空白段落以避免出现问题。

最后,使用 IDPF 的 验证工具 验证您的 ePub 文件。

后续步骤

您现在拥有了以开源方式制作的电子书——使用开放工具,以开放格式。接下来,您可以考虑

Bryan Behrenshausen
Bryan 曾管理 Opensource.com 的开放组织版块,该版块以开放价值观和原则如何改变我们对组织文化和设计的思考方式为主题。他自 2011 年以来一直在 Opensource.com 工作。在网上查找他:semioticrobotic。

43 条评论

“ePub 文件不携带太多格式信息。它们的设计方式是这样的,以便电子阅读设备可以将自己的首选项应用于书籍”

抱歉,这根本不是真的。如果是真的,我们可以直接从 ePUB 规范中删除 CSS——但事实并非如此。格式化也与内容相关。

感谢 Marcio 澄清这一点。我本应在此处提供更细致的解释。IDPF 确实将 CSS 规范作为 ePub 辅助功能指南的一部分(此处可用)。CSS 在这种情况下很有价值,因为它允许用户或其他代理(即 ePub 阅读器)根据样式表中概述的类应用他们自己的格式。但这并不是说样式(或样式表)是 ePub 出版不重要的方面——只是 ePub 创建者应该意识到他们选择的样式可能不是读者最终会遇到的样式。这是一个重要的观点;我很高兴您提出这一点,并且我更新了指南以反映这一点。

抱歉,除了像 FBReader 这样极少数的应用程序(它在“成为你的电子书的排版师”方面有一个有趣的方法,但由于它不尊重 CSS 支持而惨败,这使其成为有史以来最糟糕的 EPUB 阅读器)之外,应用程序和设备在遵守 CSS 样式表方面相当成功,同时允许读者修改一些细节(行高、字体、字体大小等)。

事实是,您必须深入了解应用程序和设备,这样您才不会搞砸读者的覆盖,但是您不能创建一些没有高级样式的电子书,否则您将提供次等质量的阅读体验。

这就是为什么 writer2epub 允许用户通过以 w2e_ 为前缀他们的 LO/OO 样式来创建他们自己的样式,以及为什么版本 2 将获得 CSS 编辑器并允许字体嵌入(顺便说一句,这已经是您可以通过 calibre 以 EPUB 格式导出 writer2epub 导出的 EPUB 文件来完成的事情,即使生成的文件在 HTML 标记 + CSS 方面不是一流的)。

样式的问题在于,自从旧的 kindle mobi7 格式受到疯狂的限制以来,每个人都声称电子书的样式几乎毫无用处。当然,EPUB 遭受了(在供应商方面)令人恼火的覆盖,因为规范中没有处理覆盖,但是说“样式不重要”只会使电子书成为纸质书的廉价兄弟(排版不良,甚至更糟糕的布局不利于理解某些段落等)。

另请注意,知名品牌的平板电脑或电子阅读器无法接受 ePub 格式,但几乎所有平板电脑或电子阅读器都接受 PDF(其中一些也接受 DejaVu 格式,特别是对于高分辨率质量扫描,特别是当内容也非常图形化时,例如漫画书)。

本操作指南完全忘记说明 ePub 格式不是通用的,并且电子书应至少以辅助格式提供(PDF 是第二种格式,对于 PDF 格式,它现在是开放的,也有许多生产工具,比生产 ePub 文档的工具多得多)。

抱歉,Phillippe,但我认为您夸大了事实。根据维基百科,在硬件方面,只有亚马逊的 Kindle 系列、索尼 Librie(2004 年发布,现已停产)和三星 Papyrus(2009 年在 .epubs 真正开始流行之前发布)无法读取 .epub 格式。来源

http://en.wikipedia.org/wiki/Comparison_of_e-book_readers#File_format_support

维基百科没有提供类似的软件比较,但确实有一个可用的应用程序和小程序的简短列表,这些应用程序和小程序支持该格式

http://en.wikipedia.org/wiki/EPUB#Software

在同一篇文章中有一个更长的编辑应用程序列表。

这是一个有点笼统的说法。

您可以将 EPUB 导入到 Kobo Reader 中。至于平板电脑,如果您有像 FBReaderAldiko 这样的阅读器,那么您应该可以毫无问题地阅读 EPUB。

我在哪里谈到 Kobo Reader 了?

我只是说并非所有电子书阅读器都接受 ePub 格式。

您通过引用支持 ePub 的特定型号来回复...

当您批评我在回复中绝对没有写过的东西时,您的回复只是一个笼统的说法。

在这里有点吹毛求疵了。我的书《Green Comet》有 ePub 格式,但我也提供 PDF 和 ODT,以及 OGG,供那些喜欢听的人使用。唯一报告问题的人是使用 Kindle 的人。有些人技术足够熟练,可以将文件转换为正确的格式,但对于其他人,亚马逊提供自动转换服务。会员将文件发送到他们的 Kindle 电子邮件,它会为他们进行转换。这并没有那么可怕。

如果您想试用一下,这是再次提供的链接。
http://greencomet.org

rjb

有趣的是你提到了转换为 Kindle 格式。我发现有时亚马逊的 Kindlegen 实用程序(无论是在我的计算机上还是在 Amazon.com 上运行)对 EPUB 有点挑剔。我尝试转换我的电子书之一,Kindlegen 卡住了,因为它不喜欢我的 CSS 中的一个元素。那是在检查显示它是有效且格式良好的之后

最后,我不得不编辑样式表才能使其工作。

它如何处理像 ODT 或 DOC 这样的“纯”文本?

我不确定它如何处理像 .odt 或 .doc/.docx 这样的格式。我通常在 Sigil(用于 EPUB)或 LyX(用于 PDF 版本)中编写我的电子书,然后从那里开始。

老实说,我只遇到过两次我描述的问题——一次是新电子书,一次是先前已发布到亚马逊的另一本电子书的更新。而且,以我的无限智慧,我没有记下 1) 错误消息,以及 2) 我是如何修复它的。我知道...

啧!^_^

当我在亚马逊出版中添加我的书时,我能够上传我的 ePub 文件,Kindle Direct Publishing Services 会自动将我的书转换为 .mobi 格式。

Jason

通常对我来说也有效。但是,正如我在上面的评论(下面?)中提到的那样,我在 KDP 转换器中遇到过几次失败。最糟糕的是,它没有任何明显的理由。

您写了知名品牌的平板电脑或电子阅读器,上次我检查时,Kobo Reader 是一个知名的电子阅读器品牌。至少有一种 Barnes & Noble Nook 支持 EPUB。

至于平板电脑,总有一个应用程序可以做到这一点——正如我指出的 FBReader 和 Aldiko,以及我不知道有多少 iPad 应用程序。

据推测,所有这些都可以使用同样开源的 Apache 软件基金会的 Open Office (http://www.openoffice.org/) 轻松完成。例如,Writer2ePub 插件的下载链接指向 Apache Open Office 站点。

据推测,是的。但我没有测试过,所以我不能肯定地说。

它确实适用于 Apache OpenOffice,但是,根据 Writer2ePub 插件项目的站点(主要以意大利语显示),Apache OpenOffice 4.X 有单独的下载。(标记为 1.1.25A 的那个)。1.1.25 版本与 LibreOffice 3.X-4.X、OpenOffice.org 3.X、Apache OpenOffice 3.X 和 NeoOffice 兼容。我没有过多测试它,但它确实有效。

很棒的文章,Bryan。感谢您分享您开发的工作流程。

当我访问 FBReader 站点并看到版本号现在已升至 0.99.4 时,我感到很兴奋(我使用的最后一个版本是 0.12)。但当我看到现在只支持 Qt4 界面时,我有点失望(它曾经有 Qt 和 GTK 界面;对我来说没什么大不了的,但有些人关心这种事情)。非常失望的是 Fedora 19 中的 FBReader 版本是 0.12。我将尝试从源代码安装 FBReader 和 pPub(基于 python/gtk3/webkit 的电子书阅读器)。

非常欢迎您,Joshua。祝您出版愉快!

请不要使用术语“开源”。这一切的重点是建设、促进和保护自由。要使用的正确术语是自由软件

https://gnu.ac.cn/philosophy/open-source-misses-the-point.html

您好 windowsrefund,

感谢您参与 opensource.com 上的对话。网络上有许多很棒的地方提倡自由软件。虽然我们尊重这些观点和热情,但关于使用开源工具创建 ePub 的这个主题可能不是进行这种哲学讨论的合适论坛。再次感谢您的参与。

Jason

谢谢,不,我会在需要时使用开源或自由软件。

像插件一样简单?感谢您的文章,我将尝试转换客户报告,因为在 iPad 上随时可用可能非常有用...

另一个用于创建电子书的非常好的工具是 Calligra Author → http://www.calligra.org/news/calligra-announces-author/

此软件已发布吗?Calligra 自去年以来一直没有真正谈论过它。

是的,Calligra 的版本已更新至 2.7,该版本在几天前刚刚发布。我刚刚有机会玩了一下。非常有前途。在世界一流的办公套件的某些更“专业”方面,还达不到 LibreOffice 的“标准”。然而,非常有趣的是各种模块界面的统一性。此外,他们还有一个“婴儿模块”,它是文字处理器“Words”的分支“Calligra Author”,它更适合电子出版。

Calligra 的主要门户网站在这里
http://www.calligra.org/
有关 Calligra Author 的信息在这里
http://www.calligra.org/news/calligra-announces-author/

哦...顺便说一句...感谢您的文章....非常有帮助。

非常欢迎您。感谢您的 Calligra 更新!

很棒的文章(不仅仅是因为我被提到了!)。其中有一些我还没有看过的资源,但肯定会看看。

我发现使用 Writer2ePub,我经常需要或想要稍微调整一下 CSS。生成的书的外观和感觉并不总是我想要的那样。

还有另外两个用于创建 EPUB 书籍的工具,我发现它们很有用。一个是 AsciiDoc,它由轻量级标记语言和用于将该语言转换为 HTML、PDF 和 EPUB 等格式的工具组成。另一个是 Pandoc,它几乎是用于在标记格式之间进行转换的瑞士军刀——例如,Markdown 到 EPUB。

啊!这个人自己就在帖子里!

Scott,我假设您使用像 Sigil 这样的工具来编辑您的 ePub CSS。是这样吗?

在大多数情况下,我使用 Sigil。如果没有,我使用 Calibre 中的一个很棒的功能,称为 Explode Book(我在 这篇文章 中描述了它),并在文本编辑器中修改 CSS 文件。

好文章。它很好地反映了我自己的经验,因为我使用 LibreOffice 和 Writer2ePub 制作了自己的免费电子书:《Green Comet》。如果您想看看它的样子,您可以在 http://greencomet.org 下载它。它是在知识共享许可下发布的,因此鼓励您享用。

Writer2ePub 确实使这项工作比原本可能的情况容易得多,而且我不介意必须解决一些小问题和解决方法。我学到了很多东西,我感谢它的作者。我总是确保在最终产品中对其进行致谢。

rjb

好文章。但不要忘记 LaTeX 作为高质量的排版工具,以及工具链 TEX4ht、XSLT 和 ANT,用于将 .tex 转换为 ePub。

Rishi T. 的一篇论文“LATEX to ePub”介绍了如何使用这些工具将 LaTeX 转换为 ePub。

最好的祝愿。

我想建议使用免费软件 Alkinea 将您的图书从 OpenOffice 或 LibreOffice 转换为 Kindle 和/或 ePub。
它导出了 OO 样式中指定的许多内容,如边距(所有边)、缩进、带标题和环绕的图片、首字下沉等。
它还提供了将标题转换为图片的选项,允许为章节标题使用漂亮的字体。这有助于使电子书阅读体验像真正的书一样愉快。
您可以在这里获取它
http://soft.alkinea.net
它对商业和个人项目都是免费的。

这个工具看起来很有趣,但它是开源的吗?我在网站上搜索了许可信息,但一无所获。

我也是,我只找到一个“免费软件”的参考,这可能只是免费软件。

rjb

鉴于 Linux 版本和便携式 Windows 版本的下载甚至没有许可证文件(或自述文件,或任何真正的东西),我认为它不是开源的。linux zip 文件仅包含一个可执行文件,Windows 便携式版本有一个 exe 和一些 dll。可以肯定地说它是免费/免费的,或者更准确地说是捐赠软件,但不是免费开源的。

坦率地说,我厌倦了听到关于免费软件与开源软件的胡说八道。它是哪个并不重要。

最终重要的是它是否对您有效。无论有些人如何选择对特定软件进行分类,如果它有效,就使用它。

诉诸实用主义。也许这对您来说并不重要,如果真的不重要,那就去做吧。但您的偏好并不是最终唯一重要的。地球上还有其他人,这对我们中的一些人来说很重要。如果我们的原则惹恼了您,您只需要学会原谅我们。

rjb

感谢您的关注!
该软件目前不是开源的,但将来可能会是。目前它是免费的,即:免费使用它,用于您的商业或个人项目。
结果没有任何保证,但开发人员(我自己)很乐意修复任何问题,所以请随时与他(我)联系。
虽然它处于 beta 版,但该软件已在许多书籍中使用。
如果我感觉到社区有兴趣,我将使其开源。

还有另一个插件可以将 ODT 转换为 ePub:http://elaix.org/

我用德语写了一个操作指南:http://literatur.hasecke.com/news/e-books-mit-libreoffice-produzieren

另一种制作电子书以及可打印 PDF 和网站的选择是 Sphinx:sphinx.pocoo.org。

我用英语写了一些关于这方面的内容:http://www.hasecke.eu/Members/juh/sphinx-a-tool-for-self-publisher

© . All rights reserved.