R 如何控制bookdown书本的起始页

R 如何控制bookdown书本的起始页,r,pandoc,epub,bookdown,R,Pandoc,Epub,Bookdown,我的电子书里有章节。第1节有一个概述页,然后是第1章。当我从亚马逊下载我的书时,它从第一章的开头开始,所以用户错过了序言和章节文本 亚马逊Kindle出版指南第5.3节() 它说“指南项目是EPUB格式的可选功能,但强烈推荐。Kindle支持封面、TOC和开始阅读位置(“转到开始”)指南项目 我想指定“开始读取”位置,但找不到如何执行该操作的示例 如何做到这一点?一本EPUB书只是一个ZIP文件,因此您可以将其解压缩并查看其中的文件。我使用bookdown创建的示例EPUB包含一个文件conte

我的电子书里有章节。第1节有一个概述页,然后是第1章。当我从亚马逊下载我的书时,它从第一章的开头开始,所以用户错过了序言和章节文本

亚马逊Kindle出版指南第5.3节()

它说“指南项目是EPUB格式的可选功能,但强烈推荐。Kindle支持封面、TOC和开始阅读位置(“转到开始”)指南项目

我想指定“开始读取”位置,但找不到如何执行该操作的示例


如何做到这一点?

一本EPUB书只是一个ZIP文件,因此您可以将其解压缩并查看其中的文件。我使用
bookdown
创建的示例EPUB包含一个文件
content.opf
,其中包含以下
元素:

  <guide>
    <reference type="toc" title="A Minimal Book Example" href="nav.xhtml" />
  </guide>
当然,显式的
href
必须根据EPUB中的内容进行调整

或者,您可以使用EPUB3规则并将
landmark
项添加到
nav.xhtml
,c.f.。这里可能需要
bodymatter
。这可能更合适,因为
bookdown
默认情况下使用EPUB3。在我的示例中,使用pandoc 2.2.1生成的EPUB再次获得toc,但没有其他内容:

<nav epub:type="landmarks" hidden="hidden">
  <ol>
    <li>
      <a href="#toc" epub:type="toc">Table of contents</a>
    </li>
  </ol>
</nav>
pandoc
>=2.3支持更好地指定电子书的不同部分

我不确定这与kindle的制作有多大关系,但是,考虑到上面链接的出版指南中的这句话:

出版商不需要定义开始阅读的位置,因为亚马逊在上传过程中会这样做


根据,潘多克应该制作一个
landmark
项目…你们使用的是什么版本?@mb21好问题!我使用的是潘多克2.2.1。查看更新的答案。顺便说一句,根据引用的问题,
landmark
项目不应该是空的。而是一个“开始阅读位置”“也不是预期的,对吗?@mb21谢谢,
--toc
在某种程度上有帮助。我会更新我的答案。至于“开始阅读位置”,我认为应该是
bodymatter
。我可以在
EPUB.hs
中找到该字符串,但我无法解释在何种条件下使用该字符串。该条件基本上是“如果您不使用属性向标题添加特殊键”;)例如,
echo'#hi'| pandoc--toc-o测试.epub
放入
ch001.xhtml
中,这只出现在pandoc2.3中,很明显,参见?
<nav epub:type="landmarks" hidden="hidden">
  <ol>
    <li>
      <a href="#toc" epub:type="toc">Table of contents</a>
    </li>
  </ol>
</nav>
bookdown::epub_book:
  toc: yes