Литрес: отличия ePub и iOS.ePub
Кто много пользуется сайтом «Литрес», мог видеть, что порой электронные книги они предлагают в двух форматах ePub: просто ePub и iOS.ePub. И многие, вероятно, задавались вопросом, в чём же разница? Мне тоже это было интересно, поэтому как известный зад… исследователь, я решил произвести свои изыскания.
Кроме того что Литрес предлагает два формата, иногда они книги в формате iOS.ePub продают отдельно от обычного электронного издания, да ещё и по значительно более высокой цене. Раньше такое они с книгами Бориса Акунина частенько проделывали.

Поскольку в душе я всё ещё немного программист, то я примерно знаю, что такое формат ePub (не вдаваясь в детали, внутри это просто гипертекст). И поэтому мне было очень интересно, что за подформат изобрели Литрес, за который они ещё и денег отдельно срубают.
Если попытаться поискать в интернете, то поиск даёт скудные сведения. Примерно то же, что стандартно отвечает техподдержка самого Литреса на этот вопрос: «iOS.ePub — адаптирован для просмотра на iOS устройствах». Ну вроде как пользы от такого ответа мало. Спасибо, Капитан Очевидность, так сказать. И даже на повторный вопрос Капитан Очевидность не унывал:
Мы получили ответ от редакторского отдела по вашему вопросу.
.epub — активно продвигаемый фирмой Adobe формат, основанный на HTML. Поддерживается практически во всех современных программах и устройствах;
.ios.epub — документы в формате ePub, адаптированные для просмотра на iOS устройствах;
Однако порой на меня нападает внутренняя въедливость, и я начинаю играть в дурачка и выяснять подробности. Решил выяснить, насколько техподдержка Литреса может работать не по бумажке.
В результате нескольких итераций «вопрос-ответ» я сумел добиться от них чуть более детального ответа, с привлечением их технической команды.
Алексей, уточнила в тех.отделе. Текст в формате ios.epub лучше адаптирован под размеры экрана. Базовый Epub прогоняется через форматирование, рекомендованное Apple (на выходе, в теории, оно может и не отличаться вовсе, это зависит от базового Epub).
Есть разница в отображении сносок. В обычном Epub, при нажатии на сноску, появляется список всех сносок в книге, в ios.epub только эта конкретная сноска.
Вот это уже лучше. Кстати, девушка из техподдержки молодец, порой техподдержка не выходит за рамки инструкций и отделывается лишь общими словами, ожидая, когда клиенту надоест и он просто плюнет на общение.
Зацепившись за указания, я решил произвести проверки, взяв за основу несколько книжек из личной библиотеки на Литресе, а в качестве тестовых «читалок» использовал родное приложение Литреса «Читай!», родное приложение iOS «Книги», а также две читалки, поддерживающие ePub — приложение Pocketbook и KyBook 3 (хотел ещё специлизировавшийся на ePub Marvin взять, но авторы этой читалки явно забили на её поддержку, и теперь она даже ранее загруженные в неё книги не открывает).
Кроме этого, я вооружился рекомендациями от Apple по созданию книг в формате ePub под их платформу iOS: Apple Books Asset Guide 5.2.12.
Родная читалка «Книги» в iOS на данный момент поддерживает формат ePub версий 2.0 и 3.0. Литрес свои книги делает в формате 2.0 (во всяком случае я беглым просмотром нашёл файлы только в таком формате).
Примеры я буду сопровождать скриншотами, а также выжимками кода из файлов ePub (кому это не нужно, просто пропускайте).
Адаптация под размер экрана
Хотя в ответе и указано, что в iOS-версии текст лучше адаптирован под размер экрана, я даже не представляю, что тут имеется в виду, если файл во всех вариантах представляет из себя float-вёрстку, то есть когда для отображения текста можно менять шрифт, размер, параметры выравнивания и так далее. Что тут можно адаптировать — не знаю. Разве иллюстрации, для которых рекомендации iOS указывают минимальные и максимальные размеры. Но очень сомнительный пункт, который даже не проверял. Спишем на «маркетинговую» шнягу, когда просто надо продать ничто.
Буквицы
В типографике есть такое понятие — «буквица«. Это «крупная, отличная от прочих, первая буква главы, раздела или целой книги». В печатных книгах её ещё часто делают красиво отрисованной.
Многие читалки имеют настройки для буквиц, но если на входе только текст, максимум тут выходит либо как-то выделить размером и цветом первую букву, ну или рисовать её картинкой (но для этого у приложения должны быть заранее готовы картинки для всех букв алфавита).
Разумеется, гипертекстовый формат позволяет создателю книги делать и полноценные буквицы, вставляя в документ вместо первой буквы её изображение в виде картинки — и тут уж как фантазия позволит. В варианте книги Бориса Акунина «Чёрный город» с иллюстрациями и вёрсткой для iOS такие буквицы как раз сделали, но не для первой буквы главы, а для первой буквы названия главы, что скорее редкость:

Не скажу, что мне это нравится, но как минимум корректно отображается.
В файле это вполне ожидаемо задаётся — вместо первой буквы картинка, а затем текст заголовка без этой буквы:
<div class="ilustr spec_o1"><img alt="" src="../Images/o.png" /></div>
<h1 class="jleft" id="mh_toc_34">хота на Одиссея</h1>
Одновременно с этим именно стиль ilustr задаёт, что картинка должна показываться слева от текста, а spec_o1 задаёт дополнительный отступ сверху:
.ilustr { width: 35% !important; border:0px red solid; padding-top:35px;
float: left;
margin: 0 0.5em 0 0 !important;
line-height: 1em !important; }
При этом читалка «Читай!» от Литреса не пытается показать эту красоту и вообще использует у себя вариант вёрстки без буквиц. А вот если тот же ePub скормить другим читалкам, они даже не знают, как себя с этим делом вести. Хотя указания даны в стилях.
KyBook 3 показывает буквицу сверху перед заголовком и по центру экрана:

А Pocketbook вроде и слева выводит, но выходит ещё хуже:

Также стоит уточнить, что буквицы в таком виде — очень редкое явление для книг Литреса даже в iOS-варианте, но если есть, то присутствует только в варианте iOS.ePub.
«Раскрывающиеся» иллюстрации
Термин я придумал сам, ибо не знаю, как такое назвать. В читалке «Книги» от Apple есть возможность показывать в тексте изображения в виде миниатюры, отличающейся от полной иллюстрации. И если читатель хочет её просмотреть целиком, надо дважды тапнуть на миниатюре, и тогда на весь экран раскроется полная иллюстрация.
Именно в книге «Чёрный город» авторы использовали эту возможность. В других книгах такое редко встречается. (Кажется, что технари Литреса именно на этой книге пытались проверить все возможности). На странице текста это выглядит так:

А вот если сделать двойной тап, то текст исчезает, а картинка показывается на весь экран (обрезано сверху и снизу):

Как это делается в файле? Честно говоря, я так и не понял. Ибо описание внутри файла не проливает свет. Какая-то внутренняя магия читалки «Книги». В тексте изображения просто описаны друг за другом:
<div class="wrap_pict">
<div style="width:240px; height:240px; margin:0px auto -240px; position:relative;"><img alt="" src="../Images/cheri_001_.gif" /></div><div style="width:240px; height:240px; border:1px transparent solid; margin:0 auto; margin-top:-240px !important"><img alt="" src="../Images/i_001.png" style="opacity: 0; width:100% !important; height:100% !important; margin:0 !important; padding:0 !important;" /></div>
<p class="b pict"><sup>Ялта</sup></p>
</div>
А стиль wrap_pict ничего полезного не делает тоже:
.wrap_pict { page-break-inside: avoid !important; text-align:center;}
Поэтому я решил тут не упарываться и не искать ответа на вопрос «как», а скорее глянуть, что с этим делают другие.
Как я уже сказал выше, Литрес в своей читалке многие «красивости» упрощает, они просто показывают довольно стандартно иллюстрацию прямо в тексте (для той же книги из библиотеки, это важно!):

Pocketbook не может разобраться со сложностями отображения двух иллюстраций, и показывает только первую, никакого интерактива нет, полную просмотреть я так и не смог:

А KyBook 3 понимает, что картинки же две, но никакой связи между ними не видит, потому отображает обе, причём центрирует только первую:

Но в чём прелесть таких миниатюр — я не знаю. А показывать изображения по двойному тапу на полный экран умеют многие.
Всплывающие сноски
Всплывающая сноска — это такая сноска в теле книги, когда её текст показывается в виде всплывающего окошка прямо поверх текста, что позволяет тебе прочитать описание, не «убегая» от контекста. Для меня наличие всплывающих сносок — один из самых важных параметров читалки. Ибо намного удобнее видеть это описание в контексте, чем прыгать по тексту туда-сюда. Моя основная читалка, KyBook 3, умеет показывать все сноски в книгах формата FB2 именно всплывающими. Выглядит это так:

Один тап на сноске показывает её в виде окошка (как на иллюстрации выше), второй тап в любом месте текста скрывает, и ты можешь спокойно продолжать чтение.
Однако далеко не все читалки так умеют делать. Большинство действует по старинке гипер-текстовых правил — кидает в раздел «примечаний», а потом ты как-то должен вернуться назад.
Если верить рекомендациям по созданию ePub для iOS от самого Apple, то «всплывающие сноски» (Pop-up Footnotes) — это особенность именно третьего формата. Однако практика (и файлы Литреса) показывают, что отлично они работают и в версии 2.0.
Формат ePub (в отличие от сверхпопулярного FB2) имеет встроенную возможность работы с такими всплывающими сносками. Вот как это делается: сноска помечается в тексте специальным типом epub:noteref, а затем где-то в файлах должно быть и её описание. Но лучше показать на примере.
Сноска из книги «Чёрный город» Бориса Акунина, iOS.ePub с иллюстрациями:
<sup><a epub:type="noteref" href="#n1">[1]</a></sup>
А чуть дальше (может и сразу после абзаца, а может и в конце документа) идёт описание самой сноски:
<aside epub:type="footnote" id="n1"><p class="b">Между нами говоря <i>(фр.)</i></p></aside>
А вот при «обычном» способе сноска даётся просто как ссылка на другую часть текста, а то ещё и другой раздел книги. Вот пример для книги «Искра и ветер» Алексея Пехова (обычный ePub):
Но зато там есть «флейта»<a href="contentnotes0.html#n_1" id="back_n_1"><sup>[1]</sup></a>
Тут сноска ведёт на другой документ, где она просто идёт в списке среди прочих. В книге обычно такой раздел называется «Примечания». Вот как она выглядит для этой ссылки
<div style="text-align: justify" class="hsection1" id="n_1"><p class="b"><b>Флейта</b> – кованая решетка или же полые заостренные трубы, используемые вместо нее. Опускалась после закрытия ворот и использовалась как дополнительное защитное укрепление.</p><p class="b page-break-after:always"><a href="content3.html#back_n_1">Вернуться</a></p></div>
Замечу, что в данном примере описание сноски заканчивается ссылкой «Вернуться», которая переводит читателя обратно к месту чтения, это прямо в документе прописано. Далеко не всегда создатели книг так пекутся о читателе. И только редкие толковые читалки помогают вернуться к месту, независимо от файла книги — показывая специальный элемент «Вернуться» (KyBook так делает, например).
А вот показывают всплывающие сноски приложения по-разному. Я взял для примера одну и ту же книгу — «Искра и ветер» Алексея Пехова, вариант iOS.ePub.
Вот как отображает сноску «Читай!» от Литреса:

Описание сноски не закрывает оригинальную строчку, где сноска присутствует. Само описание на тёмном, слегка прозрачном фоне.

В KyBook 3 описание тоже не закрывает оригинальную строчку. KyBook 3 не показывает в описании название самой ссылки (в большинстве случаев это даже хорошо, потому что кому интересны эти 1, 2, 3 и так далее?) Однако именно при работе с iOS.ePub приложению почему-то сносит крышу, и стандартный тег <sup> (показ текста в верхней части строки, как обычно в тексте сноски в книгах и печатают) он показывает как очень мелкий текст снизу.

А вот Apple тут дали маху, как мне кажется. Текст сноски закрывает оригинальный текст полностью, да и фон всплывающего описания мог бы быть и поконтрастнее с основным текстом.
Выводы
Что же мы можем из всего этого решить? Как показали изыскания, отличия вёрстки в ePub для iOS не такие и значительные. И я не понимаю, почему Литрес вообще делает два варианта, да ещё нигде толком и не объясняет разницу. Но теперь я хотя бы знаю, что именно понимается под двумя «форматами».
И лично для меня отличия явно не тянут на «дайте в два раза больше денег». Единственное полезное — это наличие «всплывающих сносок» вместо стандартных гипертекстовых. Но почему бы их не вставять во все ePub по умолчанию, сие мне неведомо. Возможно, это связано с какой-то обратной совместимостью со старыми версиями формата, чтобы старые читалки прекрасно отображали текст. Это единственное разумное для меня объяснение. Хотя и не знаю, насколько старыми должны быть эти читалки, чтобы проблема вообще наличествовала.
Для себя я сделал вывод, что из двух вариантов я теперь буду отдавать предпочтение iOS.ePub, если он входит в стандартный набор, но при этом проверяя, не будет ли внутри чехарды с этими ненужными «красивостями». Благо, дело это чуть более затратное, поэтому за такие «дополнительные телодвижения» Литрес обычно дополнительных денег и просит. А если iOS.ePub входит в общий набор для книги наравне с другими, скорее всего, там только минимально нужное мне.
Post Scriptum
Если есть ещё известные отличия вам отличия, о которых я тут не написал, пишите мне, я дополню статью.
Уведомление: Amazon: смерть формата MOBI? | Записки хомяка Глюка