Делаем книги в формате FictionBook. Часть I

Материал из FictionBook
Версия от 11:14, 31 января 2007; FBAdmin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Выбор программного обеспечения, предназначенного для создания и редактирования книг в формате FictionBook, весьма невелик. Фактически он представлен двумя программами: BookDesigner 4.0 В. Войцеховича (он же FictionBook Designer в усеченном специализированном варианте) и FB Tools Михаила Мацнева. Программа BookDesigner была разработана как средство для конвертации книг из любого формата в любой же формат. И она полностью отвечает своему назначению. Если требуется сконвертировать книгу в экзотический формат или, наоборот, извлечь из оного, то здесь альтернативы Book Designer просто нет. Проблема в том, что BookDesigner не рассчитан на серьезное редактирование книг. Открыть файл, быстро разметить его и сохранить в новом формате ? с этим он справляется великолепно. И функция Book Cleaner (пакетный запуск регулярных выражений) просто изумительна. Но когда приходится долго и вдумчиво редактировать книги, то возникают проблемы. Нет выделения цитат. Не совсем корректно работает функция Undo. То, что отображается на экране, не всегда соответствует реальному содержимому файла. Даже сохранение работает не так, как мы привыкли. На язык так и просятся слова незабвенного товарища Огурцова: ?Все молодцы, работа проделана большая, но так дело не пойдет!? Правда, в обозримом будущем ожидается версия 5.0. Будем надеяться, большинство недостатков там будет исправлено. Таким образом, у нас остается пакет FB Tools и его основная часть ? редактор FB Editor. В этой публикации мы рассмотрим именно FB Editor как основное средство создания и редактирования книг в формате FictionBook.

Конвертация текстов в формат FictionBook

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

При всех своих достоинствах FB Editor не умеет сам конвертировать книги в формат FB2. Для этого приходится использовать отдельные программные средства. Если вы планируете набирать книги FictionBook ?с нуля? или редактировать уже готовые, этот раздел можно пропустить. Чтобы сконвертировать книгу из другого формата, есть специально предназначенный для этого пакет Any2FB2. Он уверенно конвертирует тексты, файлы HTML, не перегруженные фреймами и сложными таблицами, и даже RTF (DOC). При этом он пытается самостоятельно распознать структуру входного текста и даже выделить элементы. К сожалению, ?ишкуштвенный интилект? программы справляется с этим не слишком хорошо. Поэтому большую часть возможностей распознавания элементов приходится запрещать. Кроме того, при конвертации обычного текста обнаруживается такой подводный камень. Если текст неформатированный ? ?одна строка ? один абзац?, все пройдет нормально. Но если он разбит на абзацы с выравниванием, то Any2FB2 почему-то считает новым абзацем строку, начинающуюся со знака ?тире?, независимо от того, есть перед ней отступ или нет. Поэтому, если у вас именно такой текст, то перед тем, как скормить его Any2FB2, обработайте его программкой TXT2MB. Она переформатирует текст так, чтобы один абзац занимал одну строку. Чтобы программа отработала правильно, необходимо, чтобы первая строка каждого абзаца имела отступ хотя бы в один пробел. Также для преобразования форматированного текста можно воспользоваться программой Дмитрия Грибова ClearTXT. Чтобы в ней разобраться, понадобится время, но оно того стоит. Для конвертации документов в формате RTF или DOC лучше всего использовать макрос ExportXML.dot. Если у вас установлен Office 2003, можно воспользоваться hta-приложением Doc2FB. И, наконец, не стоит забывать и такой метод, как Copy-Paste. Копируем нужный текст в окне браузера или редактора и вставляем в книгу. При этом разметка текста обычно сохраняется. Именно так я всего за полчаса преобразовал свежескачанный с www.wisesoft.ru номер ?Хакера-спец? из набора НTML'ок во вполне приличную FB2- книжку. Еще 20 минут ушло на структурирование книги. После чего ?продукт? был полностью готов к употреблению. Особо отмечу, что после конвертации любую книгу нужно открывать в FB Editor и доводить до ума вручную.

Использование только автоматической конвертации оправдано только в том случае, если текст конвертируется исключительно для того, чтобы закачать на КПК, прочесть и удалить. Но если вы планируете выкладывать книгу в Сеть или распространять еще каким-то образом, то изготавливать ее ?одним кликом? совершенно недопустимо. Не забывайте, что в этом случае вы фактически являетесь ИЗДАТЕЛЕМ книги. Проявите уважение к автору и читателям:))).

Краткое описание формата FictionBook

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Электронную книгу в формате FictionBook можно условно разделить на три части:

Первая ? описание книги (description). Автор, название, кто сделал FB2, выходные данные бумажного оригинала и т.д.

Вторая ? непосредственно текст книги, разбитый на логические части согласно бумажному изданию или авторскому замыслу, если произведение не было издано.

Третья, необязательная ? картинки и двоичные объекты в кодировке base64. Ознакомиться со схемой (schema) FictionBook можно на сайте www.fictionbook.org в разделе ?Документы?.

Вот пример книги в формате FB2:

<FictionBook xmlns=" сайт xmlns:l=" сайт
<description>
<title-info>
<genre>reference</genre>
<author>
<first-name>Имя автора</first-name>
<last-name>Фамилия автора</last-name>
<nickname>Юзич</nickname>
</author>
<book-title>Пример книги в формате FictionBook 2.1</book-title>
<annotation>
<p>Это пример книги в формате FictiionBook</p>
</annotation>
<date value="2006-04-14">14 апреля 2006 г.</date>
<lang>ru</lang>
</title-info>
<document-info>
<author>
<nickname>Юзич</nickname>
</author>
<program-used>FB Tools</program-used>
<date value="2006-04-14">2006-04-14</date>
<id>1E693E16-8A80-4391-9800-C1A91A5E29A7</id>
<version>1.0</version>
<history>
<p>v 1.0 ? создание книги (Юзич)</p>
</history>
</document-info>
</description>
<body>
<title>
<p>Юзич</p>
<p>ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1</p>
</title>
<epigraph>
<p>Это эпиграф</p>
<text-author>Автор эпиграфа</text-author>
</epigraph>
<section>
<title>
<p>Первая секция</p>
</title>
<p>Секции обычно содержат текст.</p>
<empty-line/>
<p>Текст может разделяться пустыми строками.</p>
<subtitle>Подзаголовок</subtitle>
<p>Или подзаголовками.</p>
</section>
<section>
<title>
<p>Вторая секция</p>
</title>
<section>
<title>
<p>Первая вложенная секция</p>
</title>
<p>Текст может быть <strong>полужирным</strong> или <emphasis>курсивным</emphasis>.</p>
<p>Содержать <a l:href="#Sect3">линки</a> и <a l:href="#note01" type="note">[сноски]</a>.</p>
<p>В тексте могут быть картинки.</p>
<image l:href="#sampl.png"/>
<empty-line/>
</section>
<section>
<title>
<p>Вторая вложенная секция</p>
</title>
<cite>
<p>Это цитата.</p>
<text-author>Автор цитаты.</text-author>
</cite>
<p>Снова текст.</p>
</section>
</section>
<section id="Sect3">
<title>
<p>Третья секция</p>
</title>
<p>Стихи:</p>
<poem>
<title>
<p>Парус</p>
</title>
<stanza>
<v>А у дельфина взрезано брюхо винтом.</v>
<v>Выстрела в спину не ожидает никто.</v>
<v>На батарее нету снарядов уже.</v>
<v>Надо быстрее на вираже.</v>
</stanza>
<stanza>
<v>Но парус! Порвали парус!</v>
<v>Каюсь! Каюсь! Каюсь!</v>
</stanza>
<text-author>Владимир Высоцкий</text-author>
</poem>
<p>Снова обычный текст.</p>
</section>
</body>
<body name="notes">
<title>
<p>Примечания</p>
</title>
<section id="note01">
<title>
<p>1</p>
</title>
<p>Текст сноски.</p>
</section>
</body>
<binary id="sampl.png" content-type="image/png">
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0
RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY
SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=</binary>
</FictionBook>

Как видим, файл имеет легко читаемую структуру.

Основные теги:

<FictionBook></FictionBook> Эти теги обрамляют всю книгу.

<description></description> Внутри используется довольно большой набор тегов, приводить который из-за ограниченности объема газетной публикации не будем.

<body></body> ? тело книги. Обычно существует в единственном экземпляре. Иногда добавляется дополнительное body ? для сносок.

<section></section> ? секция.

<title></title> ? заголовок.

<subtitle></subtitle> ? заголовок.

<p></p> ? абзац.

</emptyline> ? пустая строка.

<strong></strong> ? полужирный шрифт.

<emphasis></emphasis> ? наклонный шрифт (курсив).

<a></a> ? сноска или линк.

<image/> ? картинка.

А это последние нововведения версии 2.1. Правда, из-за недостаточной поддержки софтом они практически не используются?

<table></table> ? таблицы! Внутри, соответственно, располагаются:

<tr></tr> ? строки. А внутри строк:

<td></td> ? ячейки.

<sup></sup> ? subscript, нижний индекс.

<sub></sub> ? superscript, верхний индекс.

<code></code> ? преформатированный текст. Этот тег позволяет выделить, например, программный код.

Работа с программой FB Editor