top of page

Что такое EPUB

Владимир Харитонов

EPUB — формат файлов электронных книг (сокращение от Electronic PUBlication), который пятнадцать лет назад разработал International Digital Publishing Forum, объединивший крупнейшие мировые издательства, цифровые платформы дистрибуции и IT-компании. В те времена IDPF — на фоне зоопарка разнообразных форматов электронных книг — был озабочен созданием общего для всей книжной индустрии формата производства и распространения электронных книг. Так и появился EPUB, универсальный формат электронных книг, который так или иначе «понимают» все букридеры и большинство программ для чтения электронных книг. В настоящее время разработкой EPUB и развитием этого формата занимается World Wide Web Consortium, ответственный за разработку ключевых протоколов и форматов для веба. Так что сейчас EPUB — один из ключевых форматов интернета.

 

Для того, чтобы грамотно и с пониманием того, чем вы занимаетесь, когда конвертируете макет InDesign в EPUB, нужно понимать, что такое EPUB, как он устроен и для чего нужны его отдельные элементы.

Самое простое определение EPUB

Если поискать самое простое описание EPUB, то им будет «заархивированный вебсайт», а программа для чтения EPUB — своего рода веб-браузер. И такое определение довольно точное.

Основная структура файла EPUB

Во-первых, EPUB — это и правда архив. Если вы поменяете расширение .epub на .zip, то вы можете легко распаковать файл EPUB и посмотреть, что у него внутри. Внутри этого архива вы обнаружите:

  • файл mimetype;

  • папку META-INF;

  • папку OEBPS.

 

Файл mimetype — служебный файл, который инструктирует программу для чтения, что перед нею архивный контейнер, в котором содержится электронная книга [1].

В папке META-INF хранятся служебные файлы. В частности, в ней всегда есть файл container.xml, который обязательно содержит инструкцию для программы чтения о том, как добраться до ключевого файла EPUB — content.opf. Кроме того, в META-INF могут находиться и другие файлы — служебные файлы для специфических читалок, файл, обеспечивающий работу сервиса по защите от копирования и т. д.

 

Папка OEBPS — это, собственно, папка со всем содержимым книги и её оглавлением. Содержимое внутри OEBPS обычно отсортировано по видам и разложено по папкам. В папке Text хранятся файлы с содержимым книги в формате XHTML, в папке Styles — файлы стилей форматирования текста в формате CSS, в папке Images — файлы иллюстраций, Fonts — шрифтов, Audio — аудиозаписей и т. д., и обязательные вспомогательные файлы, которые стандарт EPUB требует для описания книги. 

 

Поскольку основное содержимое EPUB требует формата XHTML, то EPUB — это действительно своего рода веб-сайт, с некоторыми ограничениями и созданный по особым правилам. Но основные языки EPUB те же, что и у веба — HTML (точнее, XHTML, то есть требует более строгой расстановки тегов) и CSS. Поэтому, если вы хотя бы немного представляете, что такое HTML и CSS, то принципы дизайна электронной книги в формате EPUB будут вам уже знакомы.

 

Главное, чем EPUB отличается от обычного веб-сайта, — обязательное наличие файлов, которые описывают структуру EPUB. Обычный веб-сайт, конечно, тоже обладает каким-то меню или файлом с картой сайта, но в отличие от веба, где меню может быть каким угодно, файлы EPUB, описывающие его структуру, всегда должны соответствовать определенным правилам.

 

Файлов, отвечающих за структуру, два: content.opf и toc.ncx. Файл toc.ncx — это техническое оглавление EPUB, которое отображается пользователю читалки, когда он хочет посмотреть оглавление книги, воспользовавшись соответствующей кнопкой в интерфейсе. Читалка извлекает информацию из toc.ncx («читать» его напрямую тяжело, поскольку это файл в формате XML, но этого и не требуется — все читалки умеют показывать оглавления вполне понятно [2]) и позволяет пользователю использовать оглавление как путеводитель (или список навигации) по книге. При конвертации из InDesign файл toc.ncx возникает автоматически, если выбрана опция генерации оглавления.

[1] Файл mimetype хранится в файле в несжатом виде, поэтому, если вы попробуете просто заархивировать получившиеся файлы обратно и поменять расширение на .epub, то EPUB у вас не получится: EPUB заархивирован особым образом. Для того, чтобы из распакованных файлов получился EPUB обратно, вам понадобится выполнить последовательно две команды в командной строке: zip -0Xq book.epub mimetype zip -Xr9Dq book.epub

[2] В этом обзоре речь идёт только о формате EPUB2, уже устаревшем, но до сих пор самым актуальным для российской цифровой инфраструктуры книжной индустрии. В версии EPUB3 на смену toc.ncx пришел файл nav.xhtml, который ничем не отличается от прочих файлов с текстовым содержимым книги. Теперь отображение оглавления можно не только вызывать специальной кнопкой в интерфейсе, но и разместить его в нужном издателю месте книги — наряду с остальными частями книги.

Файл content.opf — ключевой для EPUB файл. Содержимое этого файла недоступно пользователям напрямую, зато в нём содержится информация, нужная читалке для последовательного отображения книг, а также метаинформация о книге, которая в печатных книгах обычно размещается на обороте титульного листа — об авторе, названии, издателе, всех, кто работал над книгой, языке книги и т. д. и т. п. Всего в content.opf четыре части — metadata, manifest, spine и guide.

 

Метаинформация о книге, которая размещается в первом части файла в теге <metadata>, используется читалкой, в частности, для отображения «карточки» книги в интерфейсе программы для чтения — её обложки, аннотации, автора и названия и т. д.

 

Во второй части content.opf<manifest> — размещается список всех файлов, составляющих содержимое книги с указанием его специфики (что это? это шрифт, а это — иллюстрация, а вот это вот — обложка).

 

В разделе <spine> (то есть «корешок») файлы текстового содержимого EPUB перечисляются в том порядке, в котором оно должно обрабатываться читалкой — глава за главой от начала до конца.


В последней части <guide> описываются отдельные файлы книги с указанием их функционального назначения. Как правило, в этом разделе описываются файл с обложкой и файл с оглавлением [3].

[3] И ещё раз о EPUB3. В новой версии EPUB раздел guide не нужен, ему на смену пришёл раздел landmarks, который размещается не в content.opf, а в файле оглавления nav.xhtml.

Основная структура файла EPUB

Половину работы по созданию EPUB из макета берёт на себя сам InDesign. Половину — потому что для корректной конвертации и, тем более, для получения эстетически приемлемого дизайна потребуется дополнительная работа. Выбрав экспорт в меню File → Export → EPUB (Reflowable), вы, конечно, получите EPUB, но вряд ли он получится хорошим. Хотя InDesign старается. О чем же он старается? Что он делает в процессе конвертации макета в EPUB?

 

Во-первых, он обрабатывает фрейм за фреймом в том порядке, в котором они расположены в макете: слева направо и сверху вниз. При этом связанные фреймы считаются одним, и содержимое каждого фрейма помещается в тег <div>. Поэтому, если какой-то фрейм (например, иллюстрация) просто располагается на полосе рядом с текстовым фреймом, который чередой связанных фреймов тянется через всю книгу, то иллюстрация будет обработана программой только после того, как она обработает весь текст. И такая иллюстрация окажется в EPUB не внутри текста, как на полосе макета, а после него. Чтобы избежать такой неприятности, каждый свободный фрейм с иллюстрацией необходимо привязать к тексту. Если якорь свободного фрейма размещён в самом начале абзаца, то содержимое фрейма в EPUB окажется перед этим абзацем, а если якорь разместить внутри абзаца или после него, то, соответственно, после абзаца. Стоит заметить, что графика, размещенная внутри текста без фрейма (инлайновая графика), будет обработана обычным порядком внутри текстового фрейма [4].

Итак, каждый фрейм в процессе конвертации помещается в тег блока <div>. Иллюстрации обрабатываются программой в соответствии с настройками конвертации иллюстраций [5], попадают в отдельную папку внутри EPUB, а в XHTML-коде книги помещается в тег <img> со ссылкой на файл иллюстрации.

[4] Если ваш макет состоит не из одного треда текста, а из нескольких не связанных друг с другом фреймов, размещенных в макете друг за другом, то вы можете избавить себя от необходимости следовать порядку обработки фреймов по умолчанию «слева — направо, сверху — вниз» и следить за привязкой фреймов с картинками к тексту. Но тогда вам придётся выстроить свой порядок обработки фреймов, используя панель Articles из меню Window. Настраивая конвертацию, на первой вкладке в опции Content выберите вариант Same as Articles Panel, — и InDesign послушно сгенерирует EPUB в том порядке, который вы определили.

[5] Настройки позволяют выбрать формат экспортируемого файла, его разрешение и др. параметры. Стоить иметь в виду, что EPUB поддерживает графические файлы форматов JPG, PNG и GIF, но не поддерживает более привычные для вёрстки печатных книг форматы EPS, TIFF и др.

Текст абзацев (внутри соответствующего блока) по умолчанию помещается в тег абзаца <p>. К тегу абзаца при этом добавляется класс с именем, соответствующим имени абзацного стиля. Был абзац с присвоенным ему абзацным стилем "Paragraph" — стал тег абзаца <p class="Paragraph"> [6]. Оговорка «по умолчанию» — важная. В настройках абзацного стиля во вкладке Export можно настроить альтернативный экспорт стиля абзаца — не в тег <p>, а, например, в тег заголовка <h1>, <h2> и т. д.

[6] Для такого хода конвертации в настройках конвертации должна быть включена опция "Include classes in HTML".

Именно это необходимо сделать, чтобы EPUB корректно отображался в тех читалках, которые не поддерживают CSS. При вёрстке макета для печати заголовки, конечно, отличаются от текста своим форматированием (размером кегля, другой гарнитурой, отступами и т. д.), но его параметры передаются в процессе конвертации макета в EPUB не через теги HTML, а через генерацию таблицы стилей CSS. Если читалка не обрабатывает CSS (так работают все российские сервисы электронных книг), то форматирование текста и заголовка не будет отличаться никак, что, конечно, будет значительно мешать восприятию текста читателем.

 

Примерно такая же трансформация происходит со стилями символов: текст, которому присвоен определенный стиль символов, по умолчанию помещается в тег <span>. Если, например, тексту был присвоен стиль "Italic" или "Bold", то в EPUB этот текст будет помещён в тег <span class="Italic"> или <span class="Bold">. Если читалка не обрабатывает CSS, то, как и в случае с абзацем, форматирование текста потеряется. Чтобы курсивное или полужирное оформление текста сохранилось, на вкладке Export в настройках стиля вместо варианта span нужно выбрать, соответственно, em или strong. И тогда в EPUB текст будет размещен, соответственно в теги <em class="Italic"> или <strong class="Bold">.

 

Старые верстальщики, которые ещё помнят, как делать печатные книги, считают, что текст в книге обычно состоит из глав или частей, каждая из которых начинается с новой полосы. В EPUB никаких полос или страниц на самом деле нет. Даже если ваша читалка показывает вам отдельные страницы, то это не более, чем условность. Стоит вам изменить параметры чтения, например, увеличив размер кегля, и «страницы» станут совсем другими. Для того, чтобы очередная глава начиналась на новом экране, в EPUB эта глава должна быть отдельным XHTML-файлом. Каждый отдельный XHTML-файл начинается с нового экрана [7]. Разделить текст всей книги на отдельные XHTML-файлы можно как во время экспорта макета InDesign в EPUB, так и после получения файла EPUB, отредактировав его в специализированном редакторе EPUB. В первой же вкладке окна настроек экспорта в EPUB вы найдете опции разделения (split) на отдельные части — на основе созданного вами оглавления, определённого стиля абзаца или исходя из индивидуальных настроек стилей абзаца. В любом случае — при экспорте или уже после экспорта — разделить книгу на части вам всё равно, скорее всего, придётся.

[7] Если, конечно, у вас не настроено чтение в режиме scroll. Тогда текст будет отображаться в виде свитка. Отображение следующей главы будет зависеть возможностей и настроек читалки: вы будете читать или весь EPUB как свиток или новый «свиток» будет начинаться с нового экрана.

Обо всех прочих деталях экспорта макета InDesign в EPUB вы можете прочитать в инструкциях по настройке этого экспорта.

Статья была впервые опубликована на сайте digital-books.ru.

Владимир Харитонов

Владимир Харитонов

ИСПОЛНИТЕЛЬНЫЙ ДИРЕКТОР АССОЦИАЦИИ ИНТЕРНЕТ-ИЗДАТЕЛЕЙ, КОНСУЛЬТАНТ КНИЖНОГО СЕРВИСА БУКМЕЙТ

bottom of page