Итак, что такое "правильная" разметка структуры? Когда мы придаем отдельным абзацам определенные стили (поэма, цитата, заголовок (уровень), аннотация и т. д.) мы формируем структуру документа. А эта структура должна соответствовать схеме FictionBook2.1. Иначе документ сконвертируется, но валидацию не пройдет. Например: в книгах часто идет аннотация, а потом – эпиграф. Но, согласно схеме FictionBook2.1 должно быть наоборот – сначала эпиграф, а потом – аннотация. Если вы сделаете как в книге, а не по схеме – документ будет невалидный, и online-библиотеки, если не ошибаюсь, его не примут.
А теперь чуть подробнее.
Структуру документа, условно, можно разбить на два блока: 1. От названия книги и до самого первого заголовка (части, раздела) – мы называем это "Уровнем". 2. От этого самого первого заголовка и до конца документа. В этих двух блоках обрамление текста тэгами ‹section› несколько отличается.
В 1-м блоке самым первым элементов должен быть Эпиграф, если он нужен. За ним могут идти еще несколько Эпиграфов, если они нужны, потом – Картинка, если она нужна, потом – Аннотация, если она нужна. При этом между всеми этими элементами не должно быть ни одной пустой строки! Иначе документ получится невалидным.
Теперь могут идти следующие элементы структуры в любом порядке: Просто абзац текста, пустая строка, Поэма, Цитата, Подзаголовок (SubTitle), Таблица, Картинка Схематично все это можно представить так (в квадратные скобки [] взяты необязательные элементы, в круглые () – названия стилей для создания структуры документов, жирным выделены элементы, которых может быть любое количество), синим цветом – элементы, которые могут идти в любом порядке:
![Описание работы пакета OOoFBTools Создание книг FB2 i_098.png](https://litlife.club/books/185262/read/images/i_098.png)
Во 2-м блоке дело обстоит немного по – другому.
2-й блок начинается с самого первого Уровня – Части книги, Раздела книги или просто заголовка. Уровней заголовков может быть 10 (стиль Level 1… Level 10) (хотя программно можно очень легко их увеличить хоть до бесконечности – особенность алгоритма). В книге может быть такая структура:
![Описание работы пакета OOoFBTools Создание книг FB2 i_099.png](https://litlife.club/books/185262/read/images/i_099.png)
Наши элементы (абзацы, стихи и т. д.) могут быть как между Уровнями разного ранга – 1-й случай, например:
![Описание работы пакета OOoFBTools Создание книг FB2 i_100.png](https://litlife.club/books/185262/read/images/i_100.png)
так и между Уровнями одного ранга (номера) – 2-й случай, например:
![Описание работы пакета OOoFBTools Создание книг FB2 i_101.png](https://litlife.club/books/185262/read/images/i_101.png)
5.2.1. Смежные Уровни разного ранга (номера)
Для 1-го случая с Уровнями разного ранга схема немного другая, чем для блока от начала книги до первого заголовка (уровня). Отличие состоит лишь в том, что между уровнями может вообще не быть никаких элементов (стихов, абзацев…). Т. е. схема расположения элементов структуры такая же, как и для 1-го блока:
![Описание работы пакета OOoFBTools Создание книг FB2 i_102.png](https://litlife.club/books/185262/read/images/i_102.png)
5.2.2. Смежные Уровни одного ранга (номера)
Для 2-го случая между Уровнями одного ранга должен быть хоть один какой-нибудь элемент, кроме необязательных Эпиграф и (или) Картинка и (или) Аннотация! Схема расположения элементов структуры такая (в двойные скобки { [] } взяты элементы, которые могут и не быть, но хоть один из них обязательно должен присутствовать):
![Описание работы пакета OOoFBTools Создание книг FB2 i_103.png](https://litlife.club/books/185262/read/images/i_103.png)
5.2.3. Ошибки при разметке структуры смежных заголовков (уровней)
С другой стороны, если ранги Уровней перепутаны при разбивке структуры, то полученный fb2 документ не будет валидным! Например, нужна такая структура книги:
![Описание работы пакета OOoFBTools Создание книг FB2 i_104.png](https://litlife.club/books/185262/read/images/i_104.png)
А мы ошибочно перепутали стили Level 2 и Level 3, и получили такую структуру:
![Описание работы пакета OOoFBTools Создание книг FB2 i_105.png](https://litlife.club/books/185262/read/images/i_105.png)
то полученный fb2 документ не будет валидным! Номер следующего (смежного) Уровня по возрастанию не может отличаться от предыдущего более, чем на 1. По убыванию – как угодно. Поэтому, при разметке структуры будьте очень внимательны!
Таким образом, если документ отформатирован стилями в соответствии с этими правилами, диктуемыми схемой fb2.1 будет сконвертирован без единой ошибки и пройдет валидацию.
Для проверки всего этого, а также других возможностей данного конвертера создан файл ExportToFB21_Test.odt. Сконвертируйте его в fb2 документ.
6. Конвертация документа в формат fb2.1
![Описание работы пакета OOoFBTools Создание книг FB2 i_106.png](https://litlife.club/books/185262/read/images/i_106.png)
В этом диалоге задаются данные о книге, издательстве, об авторе fb2 документа (т. е. о себе), история этого fb2 документа и аннотация на книгу, если нужно.
Некоторые поля отмеченные красным цветом. Это поля, где данные должны быть обязательно! Этого требует схема FictionBook. Остальные поля заполнять желательно, но не обязательно. В случае их заполнения ваша книга будет содержать много дополнительной ценной информации.
Обязательное поле ID документа заполняется автоматически. При желании данные в нем его можно исправить, как вам угодно.
Список Жанр служит для выбора жанра конвертируемой книги. Их может быть несколько. Счетчик справа от него – match – служит для задания степени соответствия книги выбранному Жанру в %. Атрибут match тэга genre сделан по умолчанию необязательным, как и задано в схеме FictionBook. Т. е. в контроле match по умолчанию стоит 0. В этом случае этот атрибут не заносится в тэг genre. Если же значение счетчика match изменится, и станет больше 0, то это значение будет добавлено, как значение атрибута match тэга genre.
Два переключателя fb2.1 и fb2.2 служат для выбора схемы жанров: FictionBook 2.1 или FictionBook 2.2. В зависимости от выбора схемы жанров меняется и выпадающий список жанров. Это полезно, когда вы готовите книгу для Библиотеки, которая работает со схемой FictionBook 2.1.
Один момент требует особого разъяснения. Около некоторых полей для ввода данных есть кнопка «+» и счетчик числа добавленных элементов. Если в эти поля вы ввели данные, но не нажимали кнопку «+», то в сконвертированном fb2-файле эти данные будут в единственном экземпляре. На счетчике будет 0 (ничего страшного). Когда этих данных должно быть несколько (несколько авторов, несколько переводчиков, несколько Custom Info, книга входит в несколько серий, несколько человек делали конвертируемый документ), то вводите данные в соответствующие поля, нажмите на кнопку «+». Значение счетчика увеличится на 1, поля очистятся. Можно вводить новые значения, если это требуется.
При работе с несколькими Авторами, Переводчиками и т. д. Если в списке уже есть данные (например, для 2-х Переводчиков), и вы ввели в поля данные на 3-го, то можно: ЛИБО нажать кнопку «+», счетчик отобразит «3», поля очистятся, ЛИБО не нажимать кнопку «+», а данные так и оставить в полях. При экспорте они благополучно считаются.
Если вам надо загрузить свой профиль (данные об Авторе fb2 документа и Source OCR), то нажмите кнопку «‹ ‹». Если надо сохранить свой профиль – то нажмите кнопку «› ›».
По умолчанию fb2 создается в той же папке, где расположен исходный документ. При желании месторасположение результирующего файла можно изменить, нажав кнопку «. » – «Сохранить как» – или введя вручную нужный путь в поле.
Для того, чтобы ввести данные описания книги вы можете использовать любой из 2-х нижеописанных вариантов: