Михаил Кондратович - Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)
§ 3.1 Требования к исходному тексту
Наиболее предпочтительными являются txt и RTF(DOC). Их, как будет сказано ниже, можно перенести в редактор книг, без каких-либо дополнительных программных средств.
HTML в этом отношении гораздо хуже. Они, как правило, содержат кучу лишней информации, которую приходится отсекать. А еще HTML может быть разбит на кучу маленьких файлов.
Если же книга представлена в PDF, вам придется потратить время, чтобы «выковырять» текст оттуда. Бывает, что это не так-то просто сделать, а бывает — вообще невозможно (например, если в PDF собраны сканы страниц без распознавания, да еще и в низком разрешении).
Ну и очень желательно, чтобы текст был максимально качественный.
Автор этой книги сам убил массу времени, при чистке книги В. Вагина «Заяц, стань тигром». И только потом обнаружилось, что в Internet имеются гораздо более качественные тексты книги…
Поэтому, если вы берете текст из Сети, не поленитесь, поищите разные варианты и сравните их.
Для преобразования текстов в FB2 существуют несколько программных пакетов. Рассмотрим их по порядку.
§ 3.2 Any to FB2
Any to FB2 — «штатное» средство для конвертирования текстовых документов в формат FB2
Для нормальной работы программе требуются MSXML 4.0 и Windows Script Host версии 5.6.
Если MSXML можно скачать с сайта Micro$oft без каких-либо проблем, то при попытке загрузить Windows Script Host производится проверка на «подлинность», т.е. лицензионную чистоту вашей копии Windows.
Поэтому проще обновить Internet Explorer до версии 6.0 SP1. Windows Script Host 5.6 входит в его состав.
Посл установки щелкаем по иконке Any to FB2 GUI.
Интерфейс программы представляет собой окошко с несколькими закладками.
Самая первая строчка — путь ко входному файлу. По умолчанию там стоит «http://». Очевидно, программа может брать файлы на обработку прямо из Internet. Пусть вас это не смущает. Нажав кнопочку с многоточием, вы попадете в стандартное окно выбора файла.
Чуть ниже расположено выпадающее меню «Setting». Здесь можно выбрать профиль настроек. Изначально их там всего три: «Last used» (последние использованные) «Default» (по умолчанию) и «Headers+»
Внизу находятся кнопки:
«Import» — запуск обработки файла. После того, как файл будет успешно преобразован, на месте кнопки «Import» появится кнопочка «Done». Щелкнув по ней, можно сохранить конечный файл.
«Save settings…» — вызывает окошко управления профилями настроек («Manage export presets»). Можно сохранить текущие настройки. Вводим имя профиля в верхней строчке, например, «My priority» и жмем кнопочку «Save». Здеь же можно удалить ненужные профили, выделив их в списке и щелкнув по кнопочке «Delete…»
«Cancel» — выход из программы.
И кнопочка «?» позволяет узнать номер версии программы. Никакого файла помощи или руководства, к сожалению, не предусмотрено…
Если установить галочку напротив расположенной в самом низу рабочего окна опции «Automatically close this window when finished», то сразу после обработки файла программа закроется.
Теперь рассмотрим закладки.
Первая закладка, «Document», содержит важнейшие настройки обработки файла.
«Text structure» призвана помочь программе разобраться с разбиением текста на абзацы. Предусмотрены три положния радиокнопки.
«Auto» — предоставляет программе решать этот вопрос самостоятельно.
«Indented» — в начале каждого абзаца есть отступ.
«EmptyLines» — после каждого абзаца идет пустая строка.
ВНИМАНИЕ, БАГ!
При преобразовании форматированных текстов, программа считает новым абзацем строку, начинающуюся со знака «тире», «-». вне зависимости, есть отступ перед ней или нет. К счастью, этот глюк можно легко обойти. Можно деформатировать текст по принципу, «одна строка — один абзац», до того, как скормить его конвертору, а можно сделать это и в самой программе, используя регулярные выражения пре-обработки.
Далее идут настройки, относящиеся непосредственно к преобразованию файлов. Сразу скажу, что «ишкуштвенный интилект» программы, весьма и весьма слаб, поэтому большинство настроек приходится отключать.
«Preserve <form>» — оставлять содержимое, обрамленное тэгом form. Меню, голосования и т.д. Включать не стоит.
«Do not convert charset» — не менять кодовую таблицу файла.
«No epigraphs» — не распознавать эпиграфы. Даже эту нехитрую операцию программа делает не всегда корректно, поэтому ставим галочку.
«No </emptyline>» — не ставить пустых строк. Обычно эту опцию включать не требуется.
«No description» — под «description» здесь понимается аннотация. Не делать аннотацию. Однозначно ставим галочку.
«Allow 1000 error fixes» — разрешить программе попытаться восстановить битый документ. Пожалуй, галочку ставить не надо.
«Do not convert "quotes" to «quotes»» — не конвертировать компьютерные кавычки в типографские. Эта операция нужная, и обычно программа отрабатывает ее без нареканий. Не ставим галочку.
«Do not convert [text] and {text} into footnotes» — не конвертировать текст в квадратных и фигурных скобках в сноски. Ставить или не ставить галочку — дело вкуса. Я лично предпочитаю делать сноски вручную.
«Do not convert _italic_ текст» — не конвертировать текст, обрамленный знаками подчеркивания в курсив. Ставим галочку. Не стоит разрешать программе делать это самой. Очень часто получается так называемый «рваный» курсив (<emphasis>С</emphasis> <emphasis>ло</emphasis> <emphasis>во</emphasis>) или, того хуже, курсивным становится только первое слово абзаца.
«Do not restore broken paragraphs» — не восстанавливат разорванные абзацы. Ставим галочку.
«Do not detect poems» — не выделять стихи. Ставим галочку однозначно. Программа определяет стихи исключитенльно по коротким строчкам и делает это крайне коряво.
«Only use marked with <h#>|^T^U headers» — выделять как заголовки исключительно абзацы выделенные тэгами <h1>…<h6> и (или) esс-последовательностями ^T^U. Ставим галочку, если текст скачан из библиотеки Максима Мошкова (Lib.ru).
«Ignore line indent (spaces at the line start)» — не считать пробелы в начале сроки признаком абзаца.
«Convert leading '-' to long dash '—' (dialogs)» — конвертировать компьютерный «минус» в начале строки в длинное тире. Ставим галочку, особенно, если конвертируем DOS-текст.
Вторая закладка — «Links», предназначена для настройки обработки html-файлов.
Первый блок — «Images», относится к картинкам, если таковые во входном файле имеются.
Опция «Remove ALL images from the document» убирает вообще все картинки.
«Remove off-site images» — убирает только те картинки, которые располагаются не на сайте, с которого был загружен конкретный html.
«Preserve dynamic images» — не удалять картинки с URL динамического вида, например, счетчики.
Блок «Linked documents»
«Remove external links» — просто убирает линки, ведущие за пределы документа.
Включение опции «Follow links» делает активными все последующие опции.
Теоретически, если исходный текст представлен в виде пачки html-файлов и имеется некий файл-оглавление со ссылками, можно включить эту опцию, открыть файл-оглавление, а остальные программа подстыкует автоматически. На практике это зачастую получается довольно коряво.
«Follow off-site links» — следовать по линкам, ведущим за пределы сайта.
Рядом находится уровень следования (level deep).
«Only follow matching the expression» — следовать только линкам, совпадающим с нижеуказанным выражением.
«Never follow matching the expression» — НЕ следовать линкам, совпадающим с нижеуказанным выражением.
Третья закладка — «RegEXP» — обработка текста с помощью регулярных выражений.
Подробнее о том, что такое регулярные выражения и как ими пользоваться, можно прочесть в приложении Д в конце книги.
«Header detection regular expression» — регулярные выражения, с помощью которых программа может распознавать заголовки.
«Regular expression to run on-load» — регулярные выражения, предназначенные для обработки исходного текста.
Окошко разделено на два столбца. Первый (+new search pattern) предназначен для выражения поиска. Второй (+new replace pattern) — для выражений замены.
Регулярных выражений может быть несколько.
Вот как можно обойти вышеописанный баг с неправильным распознаванием новых абзацев.
в графе «+new search pattern» вводим:
rn(S)
(перевод строки, новая строка, не-пробел).
А в графу «+new replace pattern» вводим:
$1
Здесь не видно, но перед «$1» должен идти пробел. То есть символы перевода строки и новой строки будут заменены на пробел. А само «$1» есть обращение к выражению в скобках в регэкспе поиска. Оно нужно, чтобы сохранить в неприкосновенности не-пробел, который идет сразу после символа новой строки.