11 ноября 2012 г.

Типографика в Kindle

Status quo

Давным-давно я работал верстальщиком, а последние 10 лет — программистом, но любовь к красиво оформленному тексту осталась. Ещё я заядлый библиофил, львиную долю книг поглощаю в электронном виде, последний год с помощью Amazon Kindle.

Kindle, к сожалению, не поддерживает переноса текста по слогам; при этом выравнивание у него не левое и даже не полное, а «недополное» (обратите внимание на предпоследнюю строчку первого абзаца):

«Недополное» выравнивание

Слева

Бесплатные или платные книги, скаченные с самого Amazon, можно привести к левому выравниванию. Правда, способ этот работает не для всех книг, а только для тех, где явно не указывается выравнивание текста. Для этого нужно закрыть текущую книгу, подключить Kindle через USB к компьютеру и отредактировать там скрытый файл system/com.amazon.ebook.booklet.reader/reader.pref, добавив строчку ALLOW_JUSTIFICATION_CHANGE=true. После чего файл сохраняем, книжку отключаем и перезагружаем её. Для этого нужно зайти в меню Settings, а там уже выбираем меню Restart. Вуаля! — появился новый элемент меню «Justification»:

Меню «Justification»

Этот финт ушами, к сожалению, не работает с книжками, купленными в Литрес или скаченными в русскоязычных пиратских библиотеках — там выравнивание в файлах mobi указано явно. Нам поможет программа для конвертации форматов электронных книг Calibre. Она содержит набор программ для командной строки (для Mac OS их нужно дополнительно установить).

Скачиваем/покупаем нужную книгу в формате FB2 и обрабатываем с помощью простой команды:

ebook-convert book.fb2 book.mobi --change-justification left
Выравнивание слева

PDF

Другой вариант — преобразовывать FB2 в PDF с помощью кросс-платформенного проекта на Java fb2pdf. Можно достаточно гибко настроить форматировать, текст будет поддерживать буквицы, переносы, висячие строки и прочие вкусности.

Минусы:

  • размер и тип шрифта нельзя менять после создания книги;
  • размер файла PDF в несколько раз больше аналогичного mobi;
  • аннотации не работают. Впрочем, поиск по файлу и просмотр слова в словаре доступны.

«Мягкие» переносы

В Kindle 3 (aka Keyboard) и новее в последних версиях прошивки появилась поддержка нового формата K8. Это значит, что доступны многие теги HTML5 и атрибуты CSS3, вдобавок к ним и мягкие переносы. Они предназначены для разбивки слов по слогам и становится видимы только на правой границе строки — программа использует их для переноса текста по слогам, т.е. то, что нам и нужно.

Минус: размер подготовленного файла незначительно больше «сырого»;

Зато все остальные плюсы в наличии — размер шрифта легко менять по ходу чтения, поиск и аннотации работают корректно, все счастливы.

Для создания таких книг я создал небольшую программку под *nix, расставляющую переносы в FB2-файле. Для конвертирования в AZW3 (это формат для Kindle, который собственно и поддерживает K8), можно использовать в качестве образца прилагаемый скрипт.

Переносы

Для счастливых обладателей Windows есть более удобный вариант.