Вадим Кузнецов - Описание работы пакета OOoFBTools Создание книг FB2
Все, что было написано для режима «Обрабатывать только разорванные дефисы» работает и в этом режиме. Только в дополнение к этому, удаляется не только разрыв дефисных слов, но и слова с разорванными переносами не игнорируются, и из них удаляется только символ «¶». Символ «-» не трогается. Этот режим удобен для исправления разрывов не только дефисов, но и слов, типа «давным-давно», «сестра-хозяйка», «белый-белый» и т. п. Например, слово «давным-¶давно» станет «давным-давно», а «смот-¶ри» – «смот-ри». В первом случае получили то, что и надо, а во втором – нет. Текст после коррекции можно «прогнать» ручным инструментом поиска слов с дефисом, и удалить «-» там, где он остался. Универсальный алгоритм предусматривал бы сравнение со списком из тысяч слов в разных склонениях и временных формах, и требовал бы часы, на отработку. Поэтому, этот алгоритм проще, хотя и не все корректно обрабатывает.
3. Дефисы и удаление из слов разрыва: и переноса (-) и абзаца (¶)
Все, что было написано для режима «Обрабатывать только разорванные дефисы» работает и в этом режиме.
Этот режим похож на описанный выше, с одним лишь отличием. Удаляется не только разрыв дефисных слов, но и оба символа разрыва «-¶» в слова с разорванными переносами. Например, слово «давным-¶давно» станет «давнымдавно», а «смот-¶ри» – «смотри». В первом случае получили не то, что надо, а во втором – именно то, что надо.
Таблица сравнения результата работы 3-х режимов коррекции
Для сравнения режимов возьмем такой произвольный текст (отражены и непечатные символы). Синим цветом показаны «дефисные» слова с разорванным дефисом, красным – слова с разорванным переносом, зеленым – «дефисные» слова без разрывов (просто для того, чтобы убедиться. Что с ними ничего не случится):
Как видим, наиболее «универсальный» – это 2-й режим (он стоит по-умолчанию). Хотя иногда после него нужна «ручная доводка».
А.2. Файл настроек Корректора Текста
Настройка формы Корректора сохраняется в файл corrector.txt, который помещается в жестко заданную папку config пакета OpenOffice.org, откуда и загружается. Для Unix-подобных систем – это папка /home/XXX/.openoffice.org/3/user/config/OOoFBTools. Для Windows – это папка C: Documents and SettingsXXXApplication DataOpenOffice.org3userconfigOOoFBTools, где XXX – ваш логин (имя пользователя). Файл создается автоматически и все изменения в диалоге Корректора заносятся в него автоматически.
А.3. Это важно!
При работе с Корректором Текста важно помнить следующее: Обработку текста лучше проводить ДО того, как вы «отформатировали» стилями документ для конвертации его в формат fb2! Т. к., если в Корректоре выбрана опция «Удалить пустые абзацы…», и в «отформатированном» документе они есть, то после удаления этих пустых абзацев, абзацы, следующие за ними, «теряют» свои стили. Если это абзацы-уровни (Заголовки, Части книги), которые должны быть взяты в секции ‹section›, то корректность уровней нарушается, что в результирующем файле fb2 проявится, как некорректность расстановки секций. И дело тут не в конвертере – просто после удаления пустых абзацев Корректором и утраты следующим абзацем своего стиля, документ получается «отформатированным» стилями не корректно. Вводить в Корректор логику, отлавливающую стили последующих абзацев и восстанавливающую их – значит сделать то, что Корректор перестанет быть универсальным.
Конечно, можно подправить документ нужными стилями, и экспорт пройдет «на ура», но зачем двойная работа.
Поэтому, оговорюсь еще раз: Обработку текста лучше проводить ДО того, как вы «отформатировали» стилями документ для конвертации его в формат fb2!
Б. Склейка разорванных строк абзаца
Данный инструмент полезен для обработки многих текстов из Интернет-Библиотек, например, Мошкова, а также – некоторых html-файлов, где есть масса разрывов строк ‹BR›.
Инструмент ищет признак (идентификатор) нового абзаца по определенным признакам (режимы работы), и все отдельные строки (абзацы), которые оказываются между этими абзацами-маркерами воспринимаются, как части одного разорванного абзаца и склеиваются воедино.
Не зависимо от режима Склейки, Инструмент автоматически удаляет все мягкие переносы и пробелы в конце абзацев. Иначе результат склейки будет неверным.
Рассмотрим режимы работы инструмента – идентификаторы нового абзаца, маркеры.
Б.1. Режимы склейки (по идентификатору нового абзаца)
Пробелы в начале абзаца
Часто «работаешь» с книгами, загруженными из сети, которые после OCR сохранялись, как простой текст. Красная строка «отбивалась», как несколько пробелов, а перевод строки сохранялся как окончание абзаца. Т. е. все строки каждого абзаца сохранились, как отдельный абзац. Править руками такую книгу удовольствия мало… Инструмент позволяет собрать такие строки в «нормальные» абзацы. При этом идентификатором «нового» абзаца является наличие в начале строки одного или нескольких пробелов.
Пример. Есть такой текст (для наглядности показаны и непечатаемые символы):
После обработки Инструментом получаем следующее:
Такому тексту для наглядности абзацев осталось только задать отступ 1-й строки каждого абзаца, и все!
Символы.!?…»”:; в конце абзаца»
Не менее часто встречаются книги, скаченные из сети, у которых нет Красной строки, обозначенной пробелами, а перевод строки сохранялся как окончание абзаца. Т. е. все строки каждого абзаца сохранились, как отдельный абзац. Этот вариант еще труднее править руками. Корректор позволяет собрать такие строки в «нормальные» абзацы. При этом идентификатором завершения абзаца является наличие в его конце вышеназванные символы.
Пример. Есть такой текст (для наглядности показаны и непечатаемые символы):
После обработки Инструментом Склейки получаем следующее:
Не во всех случаях этот 2-й режим все корректно определит (Названия заголовков, как правило, не имеют точек в конце абзаца). Но, тем не менее, это лучше, чем ничего.
“Пустой” абзац или одиночный разрыв строки
Еще один вариант распространенных в сети текстов – строки одного параграфа разорваны абзацем, а сами параграфы отделены друг от друга одним или несколькими «пустыми» абзацами. Такие тексты получаются при копировании текста из многих pdf- журналов. При выборе данного режима обработки, программа ищет блок текста (как правило разорванные строки одного абзаца) по идентификаторам – «пустой» абзац (одиночный разрыв строки ‹BR›). Найденное склеивается в один абзац.
Например, есть текст:
После обработки Инструментом Склейки получаем следующее:
Иногда некоторые абзацы не отделены от других пустым абзацем, и являются самостоятельными абзацами, не разорванными символом абзаца. К сожалению, они склеются с вышестоящими абзацами. Чтобы этого не произошло, надо просмотреть весь текст, и перед «целыми», неразорванными абзацами вставить пустой абзац, если его нет. Тогда Инструмент Склейки корректно обработает текст и склеит нужные абзацы в один. Так, что лучше немного потратить время на просмотр текста и вставку пустых абзацев в нужные места, если их там нет, нежели часами вручную склеивать строки в абзацы!
Б.2. Обработка разрывов дефисных слов и переносов
В тексте могут встречаться разрывы на дефисных словах (кое-кто, кого-то и т. д.), а так же на переносах слов. Инструмент Склейки абзацев обрабатывает такие случаи разрывов, исходя из 2-х вариантов:
1. Удаление только разрыва абзаца(¶) и строки(BR); перенос (-) не удаляется
2. Удаление и разрыва переноса(-) и абзаца(¶) и строки(BR)
По сути, эта та же обработка разрывов, что и в Корректоре Текста (подробнее см. здесь). Инструмент будет обрабатывать такие разрывы в любом случае, иначе он не сможет корректно склеить все строки, принадлежащие к одному абзацу.
Б.3. Пост-обработка
После склейки разорванных абзаце в тексте могут остаться множественные пробелы и табуляции, а также пробелы в начале абзаца. При желании вы можете включить опции для их удаления.
Удалении пробелов в конце абзаца, если они есть, происходит автоматически.
Б.4. Файл настроек инструмента Склейки разорванных абзацев
Настройка формы Склейки разорванных абзацев сохраняется в файл corrector.txt, который помещается в жестко заданную папку config пакета OpenOffice.org, откуда и загружается. Для Unix-подобных систем – это папка