Re: Скрипт "Поиск некорректных маркеров сносок"

77 views
Skip to first unread message
Message has been deleted

stokber

unread,
Nov 21, 2023, 7:29:39 AM11/21/23
to Fiction Book Editor
Предлагаю вниманию книгоделов написанный мною скрипт "Поиск некорректных маркеров постраничных сносок с постраничной нумерацией".

Сразу договоримся о терминах. Маркеры, указывающие на поясняемый фрагмент текста и располагаемые сразу после него будем называть маркерами знаков сносок (далее — МЗС), а маркеры указывающие на текст сноски и располагаемые в начале строки — маркерами текста сносок (далее — МТС):

Маркер знака сноски*.
* Маркер текста сноски.

В замечательной группе скриптов под названием "Создать сноски или комментарии из абзацев, помеченных..." перед созданием сносок подсчитываются количества маркеров знаков сносок и относящихся к ним текстов сносок. Если эти числа равны, скрипт сообщает о готовности к созданию сносок.

Надо сказать, что равенство количества тех и других, хоть и необходимое, но всё-таки недостаточное условие для создания корректных сносок. Иногда причины этого объясняются типографским браком, результатом "экзотических" издательских решений форматирования таких маркеров, ошибками распознавания, использованием надстрочного текста в обозначениях величин плоскостей и объёмов, звёздочек вместо букв в отдельных словах и др. Простой пример: если в документе с уже правильно расставленными маркерами вдруг пропадёт первый маркер знака сноски и последний маркер текста сноски, то скрипт "Создать сноски или комментарии из абзацев, помеченных..." ничего не заметит и продолжит работу как ни в чём ни бывало. В результате получим полное несоответствие сносок.
Находить и исправлять пропавшие маркеры таких сносок довольно муторное дело. Особенно при одинаковом количестве тех и других маркеров, когда сам факт их некорректности весьма не очевиден. В таком случае можно прибегнуть к помощи нашего скрипта "Поиск некорректных маркеров сносок".

Итак, запускаем наш сценарий. Открывается окно, в котором можно выбрать вид маркеров.

findMark.png

Выбираем нужное и кликаем "Найти ошибочные маркеры". В документе выделится проблемное с точки зрения скрипта место. Внизу, в Строке Состояния появится сообщение о характере проблемы. Если у вас не включен показ строки состояния, включите его (Вид > Строка состояния). Выделяется обычно сомнительный или последний корректный маркер, о чем можно будет прочесть в статус-баре.

Возьмём, к примеру, маркеры надстрочным текстом. На что скрипт обращает внимание?

1. Маркер должен быть только числом.
   1.1. Ноль (0) в единственном или в первом разряде этого числа считается ошибкой.
   1.2. Пробел в границах маркеров считается ошибкой.
   1.3. Пробел перед маркером текста сноски считается ошибкой.
Надо заметить, что скрипт "Создать сноски или комментарии из абзацев, помеченных маркерами", в отличии от нашего, не считает ошибкой наличие пробелов впереди и в границах маркеров. Это вовсе не мешает создавать корректные сноски.
Но нам для поиска некорректных маркеров это может помешать.
Чтобы сразу избавиться от таких, с точки зрения скрипта, «ошибок» (если они имеются), воспользуемся другим скриптом — "Убрать пробелы из маркеров сносок надстрочным текстом".

2. Первый маркер документа — маркер знака сноски № 1.
   2.1. Первый маркер новой страницы со сносками (только для маркеров постраничных сносок с постраничной нумерацией) — маркер знака сноски № 1.

3. Первый в документе маркер текста сноски — маркер № 1.
   3.1. Первый маркер текста сноски каждой новой страницы со сносками (только для маркеров постраничных сносок с постраничной нумерацией) — маркер № 1.

4. Каждый следующий маркер знака сноски больше на единицу предыдущего.
   4.1. Каждый следующий маркер знака сноски новой страницы со сносками (только для маркеров постраничных сносок с постраничной нумерацией) больше на единицу предыдущего.
Также отметим, что очерёдность номеров маркеров для вышеупомянутого скрипта "Создать сноски или комментарии из абзацев, помеченных маркерами" никакого значения не имеет.
Опять же, в отличии от нашего скрипта. Для нас это основа нашего алгоритма.

5. Каждый следующий маркер текста сноски больше на единицу предыдущего.
   5.1. Каждый следующий маркер текста сноски новой страницы со сносками (только для маркеров постраничных сносок с постраничной нумерацией) больше на единицу предыдущего.

6. Количества МЗС и МТС должны быть равны друг другу.
   6.1. Количества МЗС и МТС на каждой новой странице со сносками (только для маркеров постраничных сносок с постраничной нумерацией) должны быть равны друг другу.

7. В тексте сноски не должно быть маркеров знаков сносок.

8. Последний маркер в документе — маркер знака сноски — ошибка.

9. Маркер сноски в пустой строке, или строке из одних пробелов — ошибка. Скрип не может определить назначение такого маркера.
Вы можете это «подсказать» скрипту, проставив какой-нибудь отличный от пробела символ до или после маркера в качестве временной метки.

10. Два маркера знака сноски подряд или только с пробелами между ними — ошибка. Если же так и задумано, то см. второй абзац предыдущего пункта 9.

11. Наличие в тексте документа маркера знака сноски после абзаца с текстом сноски (только для концевых сносок) — ошибка.

12. Маркер сноски из более чем 12-ти звёздочек (только для сносок звёздочками) — ошибка.
Пропустить выделенное скриптом проблемное место и просто перейти к следующему не получится. Только после исправления некорректного или недостающего маркера скрипт будет искать очередную ошибку.
Формулировки характера ошибки в строке состояния могут не всегда оказаться абсолютно точны и конкретны. В ряде случаев скрипт просто поможет найти в документе то место, с которого нужно начать поиск недостающего маркера. С чего-то ведь нужно начинать.

Уточним, что скрипт работает только с номерами маркеров сносок, и некоторые пропуски маркеров, к сожалению, могут быть не обнаружены. Например, если на странице с единственной парой знак-текст не будут распознаны оба маркера (МЗС и МТС), то скрипт этого не заметит. Или если на одной из страниц (с единственной ссылкой номер 1) распознается только МЗС №1, а на следующей (тоже с единственной ссылкой номер 1) распознается только МТС №1, то скрипт примет такую пару за корректную, и подвоха не заметит.

Скрипт представлен в 4-х модификациях:

Поиск некорректных маркеров постраничных сносок с постраничной нумерацией.js
Поиск некорректных маркеров постраничных сносок со сквозной нумерацией.js
Поиск некорректных маркеров концевых сносок.js
Поиск некорректных маркеров постраничных сносок (тексты сносок в конце книги).js

Скрипты для работы с постраничными сносками, также работают с поглавными сносками с поглавной или сквозной нумерацией. Применительно к имени и сообщениям в статус-баре скрипта прилагательные «постраничные» и «поглавные» можно рассматривать как синонимы.


В папке "Скрипты" создаём новую папку. Обзываем её "32_Маркеры сносок".
Качаем:


60_Убрать пробелы из маркеров сносок надстрочным текстом.js  (положить в папку "Scripts\32_Маркеры сносок").

Поиск некорректных маркеров сносок.htm   (положить в папку "HTML").

help_mark.htm  (положить в папку "HTML").
вторник, 21 ноября 2023 г. в 15:06:39 UTC+3, stokber:
...

stokber

unread,
Nov 21, 2023, 8:06:41 AM11/21/23
to Fiction Book Editor
Все сообщения о характере ошибок маркеров можно увидеть в статус-баре. Если у вас в документе на одной «странице» окажутся неравны количества маркеров знаков и текстов сносок,  то дополнительно откроется окно с таким сообщением:

findMark2.png


вторник, 21 ноября 2023 г. в 15:29:39 UTC+3, stokber:

stokber

unread,
Nov 21, 2023, 9:18:37 AM11/21/23
to Fiction Book Editor
Если кто-то не против потестировать-опробовать, то
вторник, 21 ноября 2023 г. в 16:06:41 UTC+3, stokber:

stokber

unread,
Nov 27, 2023, 8:13:23 AM11/27/23
to Fiction Book Editor
Обновлены файлы скриптов "01_Поиск некорректных маркеров постраничных сносок с постраничной нумерацией", "02_Поиск некорректных маркеров концевых сносок" и "03_Поиск некорректных маркеров постраничных сносок со сквозной нумерацией" - до версии 1.1 каждый.

- теперь размер диалога скриптов будет выбираться в зависимости от используемой версии IE.
- уточнены некоторые формулировки сообщений в строке состояния.
вторник, 21 ноября 2023 г. в 17:18:37 UTC+3, stokber:

stokber

unread,
Dec 4, 2023, 3:46:08 PM12/4/23
to Fiction Book Editor
Обновлены три скрипта «Поиск некорректных маркеров сносок» до v.1.2.
1. В прежней версии иногда неправильно выделялись маркеры если в их границы попадали буквы "z" или "t".
2. Если раньше в документе попадались символы, которые использовались в скрипте в качестве временных меток ( ☺ и ☻), скрипт предлагал заменить их вручную. Сейчас это не требуется.
HTM-файл "Поиск некорректных маркеров сносок.htm" переименован в "Поиск некорректных маркеров сносок - выбор из вариантов.htm".
HTM-файл "help_mark.htm" переименован в "Поиск некорректных маркеров сносок - справка.htm".
HTM-файлы "Поиск некорректных маркеров сносок.htm" и HTM-файл "help_mark.htm" из папки HTML — удалить.


понедельник, 27 ноября 2023 г. в 16:13:23 UTC+3, stokber:

stokber

unread,
Jan 30, 2024, 9:32:10 AMJan 30
to Fiction Book Editor
Скрипт "Поиск некорректных маркеров концевых сносок с постраничной нумерацией" v.1.1
Написал ещё один скрипт для поиска некорректных маркеров сносок. На этот раз это концевые сноски с постраничной нумерацией. В чём некоторая особенность такого вида сносок?
Немного об общем алгоритме. В каком порядке проверяются маркеры? В первую очередь ищутся маркеры-нечисла. Затем проверяется нумерация. А после скрипт должен удостовериться в равном количестве МЗС и МТС на одной «странице».
В случае концевых сносок с постраничной нумерацией никаких общих «страниц» для групп маркеров не существует, страницы с МТС находятся далеко от соответствующих им страниц с МЗС, скрипт ищет очередную группу МЗС и сверяет её со следующей найденной группой МТС, находящихся в конце книги. И если, допустим, на одной из страниц с МЗС ни один из маркеров не распознался (тяжелый случай, но тем не менее), то нельзя быть вполне уверенным, что скрипт сможет верно определить с какой из страниц с МТС нужно сравнивать очередную страницу с МЗС. Поэтому, если вдруг это случится (а скрипт об этом сообщит), то рекомендуется, после одной-двух неудачных попыток перейти к поиску такой «пропавшей страницы» с помощью другого скрипта — «Создать таблицу соответствия маркеров сносок». Вот такая фича именно для  концевых сносок с постраничной нумерацией.
Как говорится, чем мог — помог.
04_Поиск некорректных маркеров концевых сносок с постраничной нумерацией

- положить в папку "Scripts\32_Маркеры сносок"
Актуальная версия - 1.1. Если кто-то успел скачать вчера или сегодня предыдущую версию — просьба загрузить последнюю.
понедельник, 4 декабря 2023 г. в 23:46:08 UTC+3, stokber:
Reply all
Reply to author
Forward
0 new messages