StanFreeWare Цитата: Каждая строка оглавления должна оканчиваться числом
1)Это слишком жесткое ограничение. Чрезвычайно много встречается книг, где
строки оглавления занимают две строки и, реже, даже три;
2) После названия родового названия рубрики ( часть, раздел, глава, и т.п.) очень часто идет список авторов;
3) Во многих книгах физико-математического профиля, особенно изданных 40-50 гг.
прошлого века) текст содержания главы набирается мелким шрифтом по несколько тематических разделов в строке, ссылки на страницы заключают в круглые скобки, т.е. в строке несколько ссылок.
Смотрите пример.
Кстати, DJVUmark такие оглавления обрабатывает с минимальной редакцией исходного текста ( удаление круглых скобок и пометка для программы, что параграф в данном случае не простая строка, а структура. Для обычного редактора текста это минутное дело).
Пример текста.
Надо заметить, что многие рубрики в книгах выступают в разных ипостасях(простая рубрика или структура). Это касается приложений, параграфов, таблиц и т.п.
Например, Part в английской литературе иногда используется, как составная часть Сhapter, т.е. имеет ранг сложного параграфа, хотя обычно ранг Part выше ранга Сhapter.
Еще надо иметь в виду, что очень часто в оглавлениях родовое название рубрики
опускается и приводится только родовая идентификация рубрики. Обычно это либо
римские числа в начале строки, либо арабские числа (чаще всего без точки в конце)
Причем эти рубрики в тексте книги приведены в полном объеме.
Я бы посоветовал Вам ознакомиться с профессиональными книгами по книгоизданию,
( например, почитайте главу "Рубрикация" в книге
СПРАВОЧНИК ИЗДАТЕЛЯ И АВТОРА, Мильчин А.Э., Чельцова Л.К. ) Это сняло бы ряд неоправданных ограничений при реализации программы.
Кстати, обратите внимание на оглавление этой книги. Там некоторые названия
рубрик не имеют родовых названий и ссылок на страницы, они определяются только по
типографскому набору текста. Это редко встречающийся пример, где нужно
подсказать программе о наличии структурного блока.
Беглое знакомство с инструкцией показывает, что пока еще много ручной работы.
Утверждаю, что для книг физико-математического профиля структурирование
оглавления можно практически полностью автоматизировать. Это подтверждено моей
практикой внедрения оглавления и предметного указателя в тысячах книг.
По поводу экстрагирования текста оглавления из OCR-слоя Djvu могу поделиться
опытом. У меня в программе такая функция реализована несколько лет назад. Но
практически она мной не используется: текст содержит мусор ( управляющие
символы и колонтитулы) и, главное, OCR-слой зачастую имеет ошибки структурного
характера ( номера страниц выделены в отдельный столбец и его нужно
состыковывать со строками оглавления ). Иногда встречаются и серьезные ошибки
распознавания: в приведенном выше примере, где номера страницы заключены в
скобки, текст (<цифра> распознается ошибочно.
Пример. Фрагмент текста из упомянутой выше книги
"ФИЗИКА ДЛЯ УГЛУБЛЕННОГО ИЗУЧЕНИЯ ". .
Текст в книге:
Цитата: § 3. Теорема Гаусса 24
Поток напряженности (25). Поля симметричных источников (27).
Теорема Гаусса и геометрия физического пространства (29).
OCR-слой:
Цитата: § 3. Теорема Гаусса 24
Поток напряженности B5). Поля симметричных источников B7).
Теорема Гаусса и геометрия физического пространства B9).
Причем такая ошибка мне встречалась многократно. Здесь буквы латинские.
Цитата: Насчет оглавления в стиле Глава 1.1.1.
Вы уверены, что такие вообще существуют в природе?
Мне примерно такая комбинация (Chapter 1.1 ... ) встречалась неоднократно.
Цитата: Фишка моего метода - еще и в возможности визуальной корректировки ссылок
на страницы при наличии удаленных. Пока что это было возможно только с помощью
DjVuEditor, насколько я понимаю.
Здесь я сомневаюсь в эффективности такого подхода. Для сложных случаев: наличие удаленных и вставленных страниц (неоднородные сканы пока опускаем) так задачу не решить. Коррекцию адресации страниц лучше всего производить программно по спискам удаленных и вставленных страниц, которые нарушают синхронизацию
нумерации книги и ее DJVU копии.
Я уже давно на стадии отладки синхронизации страниц, использую ( правда только
для визуализации)html-интерфейс, который позволяет проверять правильность вызова
страниц книги, увидеть, какие страницы пропущены, какие страницы вставлены, но не
учитываются при нумерации.
По распечатке html страницы броузером видна структура оглавления: по выделению жирным шрифтом и по сдвигу текста. Для более полной проверки структуры использую WinDjView.
Кстати, как я уже сообщал, html-интерфейс оказался весьма полезным при создании
библиотек с Djvu-книгами для целей поиска информации по всем книгах библиотеки.
Для себя я считаю главной задачей поиск путей автоматизации обнаружения номеров пропущенных и "лишних" вставленных страниц. Так как основные временные издержки при формировании bookmarks приходятся на этот этап работы, несмотря на то, что априори нам известно, какие номера страниц нужно проверять, чтобы найти пропущенные страницы.
На современном ( ручном) этапе сканировании книг, "сканерщику" известна вся информация о пропущенных и вставленных страницах. Вот хорошо было бы, если бы в конец книги при ее сборке вставляли листок с этой информацией.
Ваш энтузиазм и интернет-активность при работе над программой, сподвигают меня на написание и на публикацию краткой инструкции к своей программе ( последняя версия программы выложина 9.12.2009), но я не уверен, что кому-либо это нужно, поэтому, наверное, ограничусь коррекцией контекстных справок к программе.