Как контролировать стартовую страницу книги с ограниченным запасом хода

В моей электронной книге есть разделы и главы. В разделе 1 есть обзорная страница, а затем следует глава 1. Когда я загружаю свою книгу с Amazon, она начинается с начала главы 1, поэтому пользователь пропускает предисловие и текст раздела.

В разделе 5.3 Руководства по публикации Amazon Kindle (https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf)

в нем говорится, что «Элементы руководства являются необязательной функцией в формате EPUB, но настоятельно рекомендуются. Kindle обеспечивает поддержку элементов руководства, обложки, оглавления и места начала чтения (« Перейти к началу »).

Я хотел бы указать место для начала чтения, но не могу найти примера, как это сделать.

Как это сделать?


person sliptonic    schedule 13.09.2018    source источник
comment
видимо, это сложно?   -  person mb21    schedule 14.09.2018


Ответы (1)


Книга в формате EPUB - это просто ZIP-файл, поэтому вы можете распаковать его и просмотреть файлы внутри. Образец EPUB, который я создал с помощью bookdown, содержал файл content.opf с этим элементом <guide>:

  <guide>
    <reference type="toc" title="A Minimal Book Example" href="nav.xhtml" />
  </guide>

Согласно https://ebookflightdeck.com/handbook/guide руководства cover и text будут выглядеть примерно так это, где text соответствует "месту начала чтения":

<guide>
    <reference type="cover" title="Cover Image" href="cover.xhtml"></reference>
    <reference type="toc" title="Table of Contents" href="toc.xhtml"></reference>
    <reference type="text" title="Startup Page" href="chapter1.xhtml"></reference>
</guide>

Конечно, явное href должно быть адаптировано к тому, что находится в EPUB.

В качестве альтернативы вы можете использовать правила EPUB3 и добавить landmark элементов в nav.xhtml, c.f. https://ebookflightdeck.com/handbook/landmarks. Вот, наверное, bodymatter то, что нужно. Это может подойти лучше, поскольку bookdown по умолчанию использует EPUB3. В моем примере EPUB, созданный с помощью pandoc 2.2.1, я снова получаю toc, но больше ничего:

<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

pandoc> = 2.3 поддерживает лучшую поддержку для указания различных разделов электронной книги с помощью атрибута epub:type < / а>.

Я не уверен, насколько это актуально для производства Kindle, учитывая эту цитату из приведенных выше рекомендаций по публикации:

Издателям не нужно определять место начала чтения, потому что Amazon делает это во время процесса загрузки.

person Ralf Stubner    schedule 14.09.2018
comment
Согласно github.com/jgm/pandoc/issues/1757, pandoc должен создавать landmark item ... какую версию вы используете? - person mb21; 14.09.2018
comment
@ mb21 Хороший вопрос! Я использую pandoc 2.2.1. см. обновленный ответ. Кстати, согласно указанной проблеме, элемент landmark не должен быть пустым. Но место начала чтения тоже не ожидается, верно? - person Ralf Stubner; 14.09.2018
comment
Я думаю, вам нужно передать pandoc параметр --toc. - person mb21; 14.09.2018
comment
Как будет выглядеть в коде место начала чтения? Если pandoc это делает, вы должны найти его в этом файле (Ctrl-F): github.com/jgm/pandoc/blob/master/src/Text/Pandoc/Writers/ - person mb21; 14.09.2018
comment
@ mb21 Спасибо, --toc в какой-то мере помогает. Я обновлю свой ответ. Что касается места начала чтения, я думаю, это должно быть bodymatter. Я могу найти эту строку в EPUB.hs, но не могу понять, при каких условиях она используется. - person Ralf Stubner; 14.09.2018
comment
Условие в основном заключается в том, что вы не добавляете специальные ключи в свои заголовки с атрибутами;), например, echo '# hi' | pandoc --toc -o test.epub поместит <body epub:type="bodymatter"> в ch001.xhtml - person mb21; 14.09.2018
comment
@ mb21 Не для меня. unzip test.epub && grep bodymatter -r . ничего не дает. - person Ralf Stubner; 14.09.2018
comment
это было только добавлено в pandoc 2.3, см. pandoc.org/MANUAL.html#the-epubtype-attribute - person mb21; 17.09.2018