如何制作 Kindle 期刊杂志格式排版的电子书

如果喜欢使用 Kindle 阅读推送的 RSS(如开源软件 KindleEar、RedKindle 或收费服务狗耳朵、ReadCola 等都可以实现这种 RSS 推送服务),应该对 Kindle 期刊的样式很熟悉。如果你没用过 RSS 推送,也可以点击这里下载制作好的 MOBI 文件拷贝到你的 Kindle 中体验一下。可以看出,和普通的电子书不一样是,Kindle 如果检测到你打开的电子书是期刊杂志,会用以下两种不同的方式显示。

kindle-periodical-grid-stylekindle-periodical-list-style

上图所示的这两种显示方式分别为“网格”和“列表”,可以通过 Kindle 控制条上的两个功能按钮切换(下图所示的第 4 个和第 5 个按钮)。如果点击第四个按钮,目录会显示成左图所示的网格显示样式,如同杂志。如果点击第五个按钮,目录则会显示成右图所示的列表显示样式,有着更清晰的调理。

kindle-periodical-style-switch

Kindle 期刊杂志形式的电子书比较精美,目录显示得很有秩序,所以有很多小伙伴希望能够自己制作这种期刊格式的电子书。终于完美实现了。不过,如果你试图使用 Calibre、KindleUnpack 之类的软件分析期刊的源代码,恐怕是徒劳的,因为转换后会丢失很多关键的信息。不过幸运的是,国外的很多小伙伴对此也有很多讨论,并提供了一些有用的信息,Kindle 伴侣根据这些信息花了一整天的时间分析和测试,终于完美实现了。如果你也正想要这种期刊形式的电子书,那就跟我一起来制作吧!

目录

一、准备工作
二、文件结构
三、代码解释
1、Kindle 伴侣期刊(模板).opf
2、nav-contents.ncx
3、contents.html
4、HTML 文件
四、生成文件

一、准备工作

下载下面的软件和期刊杂志电子书模板源文件备用。

注意,一定要下载 KindleGen 1.1 这个版本,因为更高版本的 KindleGen 不能正常生成期刊杂志形式的 mobi 格式电子书。这里提供了适用于 Windows 和 Mac OS X 系统下的版本,请根据自己的系统下载相应的版本。其中 Windows 版本需要使用命令行,如果不知道怎么使用可以点击这里查看具体步骤。Mac OS X 版本是带界面的版本,双击打开即可使用。期刊模板是 Kindle 伴侣已经精修过的纯净代码,代码中关键部分均添加了注释,下文中也会对这些代码进行更详细的解释。

二、文件结构

解压缩下载到的期刊模板,会得到以下文件结构:

├──── html
    ├──── 001.html
    ├──── ...
    ├──── 001.html
    ├──── contents.html
├──── image
    ├──── 001-thumb.jpg
    ├──── ...
    ├──── 009-thumb.jpg
    ├──── cover.jpg
    ├──── masthead.gif
├──── Kindle 伴侣期刊(模板).opf
├──── misc
    ├──── nav-contents.ncx

文件结构很简单,其中 html 文件夹中的 HTML 文件是所有电子书内容,每个 .html 文件是一篇文章。 image 中是所有电子书中所引用的图片,其中 cover.jpg 是封面图片,masthead.gif 是网格显示样式下显示的标题图片。Kindle 伴侣期刊(模板).opf 是期刊格式的电子书配置文件,和其他电子书的 opf 配置文件差不多。misc 文件夹中的 nav-contents.ncx 是生成期刊格式电子书最重要的一个配置文件。

三、代码解释

下面我们对上面所列出的几个重要的文件中重要的部分进行简单解释,以及相应的提示。当然在你下载到的模板文件中也可以看到在响应的代码段有些注释,可以在你修改模板文件时起到提示作用。

1、Kindle 伴侣期刊(模板).opf

<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="KindleFere_2010-10-15">
<!-- 元数据 -->
<metadata>
	<dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
		<dc:title>Kindle 伴侣期刊(模板)</dc:title> <!-- 名称 -->
		<dc:language>zh-cn</dc:language> <!-- 语言 -->
		<dc:Identifier id="uid">02FFA518EB</dc:Identifier> <!-- 字典标识符 -->
		<dc:creator>Kindle伴侣</dc:creator> <!-- 创建人 -->
		<dc:publisher>kindlefere.com</dc:publisher> <!-- 发布商 -->
		<dc:subject>杂志</dc:subject> <!-- 类型标签 -->
		<dc:date>2015-10-22</dc:date> <!-- 发布日期 -->
		<dc:description>Kindle伴侣(KindleFere.com)的建立是为解决和 Kindle 相关的问题,帮助您更便捷、深入地使用你手中的 kindle 阅读器,让读书成为生命的一部分,让灵魂永远行走在路上。</dc:description> <!-- 描述 -->
	</dc-metadata>
	<x-metadata>
		<output content-type="application/x-mobipocket-subscription-magazine" encoding="utf-8"/>
		<EmbeddedCover>image/cover.jpg</EmbeddedCover><!-- 封面图片 -->
	</x-metadata>
</metadata>
<!-- 资源列表 -->
<manifest>
	<!-- 文章页面 -->
	<item href="html/001.html" media-type="application/xhtml+xml" id="001"/>
	<item href="html/002.html" media-type="application/xhtml+xml" id="002"/>
	<item href="html/003.html" media-type="application/xhtml+xml" id="003"/>
	<item href="html/004.html" media-type="application/xhtml+xml" id="004"/>
	<item href="html/005.html" media-type="application/xhtml+xml" id="005"/>
	<item href="html/006.html" media-type="application/xhtml+xml" id="006"/>
	<item href="html/007.html" media-type="application/xhtml+xml" id="007"/>
	<item href="html/008.html" media-type="application/xhtml+xml" id="008"/>
	<!-- 图片资源 -->
	<item href="image/001-thumb.jpg" media-type="image/jpeg" id="001-thumb"/>
	<item href="image/002-thumb.jpg" media-type="image/jpeg" id="002-thumb"/>
	<item href="image/003-thumb.jpg" media-type="image/jpeg" id="003-thumb"/>
	<item href="image/004-thumb.jpg" media-type="image/jpeg" id="004-thumb"/>
	<item href="image/005-thumb.jpg" media-type="image/jpeg" id="005-thumb"/>
	<item href="image/006-thumb.jpg" media-type="image/jpeg" id="006-thumb"/>
	<item href="image/007-thumb.jpg" media-type="image/jpeg" id="007-thumb"/>
	<item href="image/008-thumb.png" media-type="image/png" id="008-thumb"/>
	<item href="image/009-thumb.png" media-type="image/png" id="009-thumb"/>
	<!-- 其他资源 -->
	<item href="html/contents.html" media-type="application/xhtml+xml" id="contents"/> <!-- 目录 -->
	<item href="misc/nav-contents.ncx" media-type="application/x-dtbncx+xml" id="nav-contents"/> <!-- 目录 -->
	<item href="image/cover.jpg" media-type="image/jpeg" id="cover_img" /> <!-- 封面 -->
	<item href="image/masthead.gif" media-type="image/gif" id="masthead"/> <!-- 标题图片 -->
</manifest>
<!-- 文件骨架 -->
<spine toc="nav-contents">
	<itemref idref="contents"/>
	<itemref idref="001"/>
	<itemref idref="002"/>
	<itemref idref="003"/>
	<itemref idref="004"/>
	<itemref idref="005"/>
	<itemref idref="006"/>
	<itemref idref="007"/>
	<itemref idref="008"/>
</spine>
<!-- 页面指引 -->
<guide>
	<reference href="html/contents.html" type="toc" title="Table of Contents" />
	<reference href="html/001.html" type="text" title="《自由选择》地球人不可不读的书"/>
</guide>
</package>

和普通的电子书的 opf 唯一不同的也是比较重要的就是下面这段代码:

<output content-type="application/x-mobipocket-subscription-magazine" encoding="utf-8"/>

其他的代码就和普通电子书的 opf 配置文件差不多了,每添加一个 HTML 文件、图片,就相应的往该文件中添加一条记录就可以了,注意不要把文件名不要写错了。另外,就是 <manifest> 中的图片的媒体类型的指定也不要写错了,如果你添加的是 .jpg 文件,那媒体类型就是 media-type="image/jpeg",如果是 .png 就是 media-type="image/png",如果是 .gif 则是 media-type="image/gif",不要搞错。

封面图片存放在 image 文件夹下,名为 cover.jpg,规格为 600 * 800 像素,可以自行修改。

2、nav-contents.ncx

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx xmlns:mbp="http://mobipocket.com/ns/mbp" xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1" xml:lang="en-GB">
	<head>
		<meta content="KindleFere_2015-10-22" name="dtb:uid" />
		<meta content="2" name="dtb:depth" />
		<meta content="0" name="dtb:totalPageCount" />
		<meta content="0" name="dtb:maxPageNumber" />
	</head>
	<!-- 标题 -->
	<docTitle>
		<text>Kindle伴侣期刊(模板)</text>
	</docTitle>
	<!-- 作者 -->
	<docAuthor>
		<text>Kindle伴侣</text>
	</docAuthor>
	<!-- 导航 -->
	<navMap>
		<navPoint playOrder="0" class="periodical" id="periodical">

			<!-- 网格模式头部 LOGO 图片 -->
			<mbp:meta-img src="../image/masthead.gif" name="mastheadImage" />

			<!-- 目录 -->
			<navLabel>
				<text>目录</text>
			</navLabel>
			<content src="../html/contents.html" />

			<!-- 分类 1 -->
			<navPoint playOrder="1" class="section" id="Weekly">
				<!-- 分类标题 -->
				<navLabel>
					<text>每周一书</text>
				</navLabel>
				<!-- 网格模式第一篇文章链接页面 -->
				<content src="../html/001.html" />
				<!-- 文章 1 -->
				<navPoint playOrder="2" class="article" id="item-001">
					<!-- 文章标题 -->
					<navLabel>
						<text>《自由选择》地球人不可不读的书</text>
					</navLabel>
					<!-- 文章摘要 -->
					<content src="../html/001.html" />
					<!-- 文章摘要 -->
					<mbp:meta name="description">活在世上,我们经常在抱怨好人没好报,坏人没坏下场,也许真正应该检讨的是我们,我们有没有珍惜好人?认出坏人!在这方面,《自由选择》可以给我们很大的帮助。</mbp:meta>
					<!-- 文章作者 -->
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
				<!-- 文章 2 -->
				<navPoint playOrder="3" class="article" id="item-002">
					<navLabel>
						<text>《无后为大》不只是生与不生的问题</text>
					</navLabel>
					<content src="../html/002.html" />
					<mbp:meta name="description">这本书在豆瓣读书中遭到删除。你可能会认为这是一本探讨关于生不生孩子的话题,其实不然,作者的主要着墨之处在于隐藏在生育背后的那些我们不可能用“难得糊涂”就能搪塞过去的问题。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
				<!-- 文章 3 -->
				<navPoint playOrder="4" class="article" id="item-003">
					<navLabel>
						<text>创新是什么?创新就是《从 0 到 1》</text>
					</navLabel>
					<content src="../html/003.html" />
					<mbp:meta name="description">这是一本畅销书。如果你是朝着“商业与未来的秘密”读这本书,可能会让你小有失望,但如果只是把它看作“Notes on Starups”,那这本书的一些另类观点一定能给你带去很多启发。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
			</navPoint>

			<!-- 分类 2 -->
			<navPoint playOrder="5" class="section" id="News">
				<navLabel>
					<text>新闻速递</text>
				</navLabel>
				<content src="../html/004.html" />
				<navPoint playOrder="6" class="article" id="item-004">
					<navLabel>
						<text>亚马逊已经成为美国电子书大战的赢家?</text>
					</navLabel>
					<content src="../html/004.html" />
					<mbp:meta name="description">亚马逊的市场份额的占有率可能比以前所认为的要高得多,全美 74% 的电子书都是通过 Kindle 商店销售的。其余的电子书竞争对手持有的市场份额如此之小,很难给 Kindle 商店带来什么真正的竞争。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
				<navPoint playOrder="7" class="article" id="item-005">
					<navLabel>
						<text>沟通新渠道,亚马逊 Kindle 客服入驻微信</text>
					</navLabel>
					<content src="../html/005.html" />
					<!-- 无摘要或作者可省略 -->
				</navPoint>
				<navPoint playOrder="8" class="article" id="item-006">
					<navLabel>
						<text>给 Kindle 一个家?亚马逊或将开设一家实体书店</text>
					</navLabel>
					<content src="../html/006.html" />
					<mbp:meta name="description">电商巨头亚马逊正计划在美国西雅图 University Village 购物中心开设一家实体书店。如果该消息属实,那将意味着这家一直在线上生存并达到繁荣的互联网巨头终于将触角伸到了线下。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
			</navPoint>

			<!-- 分类 3 -->
			<navPoint playOrder="9" class="section" id="Skill">
				<navLabel>
					<text>使用技巧</text>
				</navLabel>
				<content src="../html/007.html" />
				<navPoint playOrder="10" class="article" id="item-007">
					<navLabel>
						<text>为什么 AZW3 电子书查字典取词时会选中一整句</text>
					</navLabel>
					<content src="../html/007.html" />
					<mbp:meta name="description">使用 Calibre 把一本中文电子书转换成 AZW3 格式并拷贝到 Kindle 中,查询字典时想要选取某个字词,却只能选中一整句。这是怎么回事儿?请看本文的研究分析,以及最后提供的解决方法。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
				<navPoint playOrder="11" class="article" id="item-008">
					<navLabel>
						<text>小技巧之横屏阅读 PDF 文档</text>
					</navLabel>
					<content src="../html/008.html" />
					<mbp:meta name="description">虽然让一个 6 吋屏幕显示大出其尺寸一倍多的 PDF 页面有些强人所难,但 Kindle 还是尽可能结合自身的硬性限制给出了一个比较不错的解决方案——横屏阅读。</mbp:meta>
					<mbp:meta name="author">Kindle伴侣</mbp:meta>
				</navPoint>
				
			</navPoint>
		</navPoint>
	</navMap>
</ncx>

虽然看上去代码很多,其实只是相同代码段的重复,只需要改变代码中的内容即可。上面所示代码中共有三个分类,也就是用 Kindle 打开期刊电子书,网格显示样式下首屏显示的标题列表,列表显示样式下左侧显示的条目。分类下的每个 <navPoint> 标签包裹的就是打开期刊电子书,网格显示样式下的第二屏显示的标题列表,列表显示样式下右侧显示的标题列表。

需要特别注意的是,“分类标题”的所在的 <navPoint> 标签中的 class="section",以及“文章标题”所在的 <navPoint> 标签中的 class="article" 必须要有,不能省略,否则无法正常显示列表。

网格显示模式头部 LOGO 图片存放在 image 文件夹下,名为 masthead.gif(也可以是其它格式),可以自行修改。

3、contents.html

<html>
	<head>
		<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
		<title>目录</title>
	</head>
	<body>
		<h1>目录</h1>
		<h4 height="1em">每周一书</h4>
		<ul>
			<li><a href="001.html">《自由选择》地球人不可不读的书</a></li>
			<li><a href="002.html">《无后为大》不只是生与不生的问题</a></li>
			<li><a href="003.html">创新是什么?创新就是《从 0 到 1》</a></li>
		</ul>
		<h4 height="1em">新闻速递</h4>
		<ul>
			<li><a href="004.html">亚马逊已经成为美国电子书大战的赢家?</a></li>
			<li><a href="005.html">沟通新渠道,亚马逊 Kindle 客服入驻微信</a></li>
			<li><a href="006.html">给 Kindle 一个家?亚马逊或将开设一家实体书店</a></li>
		</ul>
		<h4 height="1em">使用技巧</h4>
		<ul>
			<li><a href="007.html">为什么 AZW3 电子书查字典取词时会选中一整句</a></li>
			<li><a href="008.html">小技巧之横屏阅读 PDF 文档</a></li>
		</ul>
	</body>
</html>

这是放在内文的目录内容,可以在非 Kindle 设备中使用。同样,每添加一个文件就增加一条记录即可。

4、HTML 文件

每一个 HTML 文件代表一篇文章,注意因为期刊杂志形式的电子书使用的是 mobi7 格式,所以不支持外部链接 CSS 文件,仅支持有限的内联 CSS 样式。下面只列出其中一个 HTML 文件,在添加内容时,可以参照模板文件中的 HTML 文件中的那些标签。

<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
	<meta content="http://www.w3.org/1999/xhtml; charset=utf-8" http-equiv="Content-Type" />
	<title>亚马逊已经成为美国电子书大战的赢家?</title>
	<meta content="Kindle伴侣" name="author" />
	<meta content="亚马逊的市场份额的占有率可能比以前所认为的要高得多,全美 74% 的电子书都是通过 Kindle 商店销售的。其余的电子书竞争对手持有的市场份额如此之小,很难给 Kindle 商店带来什么真正的竞争。" name="description" />
</head>

<body>
	<h1 height="1em"><font size="7"><b>亚马逊已经成为美国电子书大战的赢家?</b></font></h1>
	<p height="1em" width="0"><font size="2">编辑:Kindle伴侣</p>
	<p height="1em" width="0">上周 Author Earnings 撰写了一篇很有意思的文章,对当前美国电子书市场进行了分析。</p>
	<p height="1em" width="0">亚马逊的市场份额的占有率可能比以前所认为的要高得多,全美 74% 的电子书都是通过 Kindle 商店销售的。早在 2014 年的报道中亚马逊就占有了 65%,但是那还不包括独立出版电子书的销售。伴随着独立出版书籍纳入统计,亚马逊占有美国所有电子书购买量的 74%,以及在电子书上花费美元总数的 71%。</p>
	<p height="1em" width="0"><img src="../image/008-thumb.png"/></p>
	<p height="1em" width="0">▲ 美国总市场占有率中每家零售商所持有的电子书单位销售量</p>
	<p height="1em" width="0"><img src="../image/009-thumb.png"/></p>
	<p height="1em" width="0">▲ 美国总市场占有率中每家零售商所持有的购买电子书消费总额</p>
	<p height="1em" width="0">统计显示,独立出版书籍在电子书市场中的比重比之前想象的还要大。 虽然大型出版商抱怨电子书的销售在下降,独立销售在上升(对于入门消费者,或许大型出版商应该重新考虑他们 $10~$15 的高价)。</p>
	<p height="1em" width="0">根据这份报告可知,比所有传统出版商,独立作家和 Amazon-imprint 作者每天卖出更多的电子书。</p>
	<p height="1em" width="0">在美国,亚马逊的电子书战略显然是把他们的出路推到了电子书之战前线。其余的电子书竞争对手持有的市场份额如此之小,很难看出他们中谁能给不断向前推进的 Kindle 商店带来什么真正的竞争。</p>
	<p height="1em" width="0">你能看到为什么 Kobo 在内国不再做任何市场营销,甚至困扰到了任何一个销售他们的电子书阅读器的美国零售商。仅有的 3% 的市场占有率,几乎不值得花费成本和精力。</p>
	<p height="1em" width="0">Barnes 和 Noble 有着 8% 的市场份额,当你这样去分析可能会吃惊:Nook 有着至少 4 倍于 Google Play 图书的市场份额,在当前电子书市场却只拼凑出 1~2% 的占有率(真正可怜的是,Google 多么强大,但事实上他们的电子书 APP 只是预装在每一部 Android 平板和智能手机上而已 )</p>
	<p height="1em" width="0">苹果排名第二,在美国电子书市场中有着 10~12% 的占有率。考虑到 iBooks 仅仅运行在 i 系列设备和 Mac 机上,这已经是相当高了。可以想象如果 iBook 允许运行在其他系统平台上,以及 Apple 提供专门的相当于 Kindle 的电子书阅读器,那占有率该会有多高。</p>
	<p height="1em" width="0">除非苹果决定为 iBooks 开拓更多系统平台,或者某个更小的公司做出一些远远胜过电子书的事情,亚马逊几乎可以独占美国电子书市场,从现在到未来 5~10 年,可能只剩下 Kindle 这一种电子书形式。 </p>
	<p height="1em" width="0">查看 Author Earnings 的分析报告可以看到更多相关信息。</p>
	<p height="1em" width="0">————————</p>
	<p height="1em" width="0">来源:Has Amazon Already Won the eBook War in the US?</p>
</body>

</html>

四、生成文件

全部编辑完毕后,使用 KindleGen 通过 opf 配置文件把所有文件打包成 MOBI 格式电子书文件。

如果是 Windows 系统,线打开“命令提示符”,然后把 KindleGen 文件拖放到窗口上,再把 Kindle 伴侣期刊(模板).opf 拖进去,回车,生成最终的 MOBI 文件(如果你还不会在命令行下使用 KindleGen 请点击这里学习详细用法)。如果是 Mac OS X,就很简单了,只需要打开带 GUI 界面的 KindleGen,直接把 Kindle 伴侣期刊(模板).opf 拖到窗口上即可生成 MOBI 文件。

现在你已经制作成功期刊杂志形式的电子书了,可以通过 USB 拷贝到 Kindle 中,也可以通过邮件推送到 Kindle 中。如果你在阅读本文的过程中遇到问题,可以在底部留言求助。

———————

参考资料:

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的 Email 将会被保密。如果是在本站首次留言,审核后才能显示。

小伙伴们发表了 21 条评论

  1. 想知道修改模板的时候用的那个软件是什么啊?
    就是文章里黑色的界面彩色的代码那个。
    以及如何保存,可以解答下么?谢谢!

        • 本文没有添加截图,文中的代码块是 CSS 样式。如果喜欢这种风格,可以使用 Sublime Text,比较接近。

              • 谢谢,用了一下午感觉很好使用,但现在有一个问题是:修改nav-contents.ncx文件时想加入第四个分类,另外两个文件(Kindle 伴侣期刊模板.opf和contents.html)修改也应该没有问题,但是ncx文件里无论怎样,只要在第四个分类的位置多写一句代码就无法生成mobi,不知道是不是模板的限制?

                • 无法生成 mobi 文件时 KindleGen 会给出错误提示,可以按照那个提示分析所编辑的文件错在哪里。

  2. 如果用官方的转换工具V2.9版本转换出来,网格模式下,文章的摘要不会显示了。用教程里面的1.1版本就可以显示。

  3. 你好,折騰了一番,終於製作出來,放進KINDLE內也會轉成POBI格式,但是發現文章樣式(網格和列表)那兩個按鈕是暗的,無法像一般雜誌那樣顯示

    • PO 您好。按照本文步骤制作的期刊型电子书,正常情况下网格和列表按钮应该是可点的。请您将制作的电子书源文件发送到我们的邮箱,帮您看一下。

  4. kindle的书籍特殊格式一共有三种,报刊,漫画,还有儿童读物“children”。

    如果有空,希望站长可以整理“children”这一种格式的制作方法。