"Управляемое исправление разрывов абзацев" и буквы в нижнем регистре

115 views
Skip to first unread message

Sclex

unread,
Jul 7, 2017, 6:21:35 AM7/7/17
to Fiction Book Editor
Сейчас в скрипте "Управляемое исправление разрывов абзацев" (v3.9) буквы в нижнем регистре определяются регэкспом [а-яёa-zіїєґ]. То есть это буквы кириллицы от "а" до "я" (включая "ё"), буквы латиницы от "a" до "z", плюс четыре украинские буквы.

Я подумываю о том, чтобы  сделать более полное обнаружение букв нижнего регистра. Я взял полный список маленьких букв таблицы Unicode. Посмотреть можно здесь: https://pastebin.com/35Hx9wnr - в этом списке 1621 строка, что соответствует 1621 букве нижнего регистра. Название символа - вторая колонка (т.е. то, что после первого символа ";").

Вопрос вот какой. Надо ли какие-то символы не учитывать при поиске маленьких букв? Например, подумалось, что греческие символы могут (в книгах по физике, в формулах) находиться в начале строки и это может вызвать ложное срабатывание обнаружения разрывов абзацев.

Или вставить в скрипт полный список маленьких букв (все1621)?

Sclex

unread,
Oct 7, 2017, 11:51:25 AM10/7/17
to Fiction Book Editor
В общем, добавил в скрипт "Управляемое исправление разрывов абзацев" поддержку всех больших и маленьких Unicode-символов. Новая версия скрипта - 4.0.

Скачать можно здесь:
http://scripts.fictionbook.org/files3/FixingOfAbruptions_v4_0.zip

Также залил в хранилище исходников https://github.com/sensboston/fictionbookeditor/

Sclex

unread,
Oct 7, 2017, 11:53:25 AM10/7/17
to Fiction Book Editor
суббота, 7 октября 2017 г., 18:51:25 UTC+3 пользователь Sclex написал:
В общем, добавил в скрипт "Управляемое исправление разрывов абзацев" поддержку всех больших и маленьких Unicode-символов.
Вернее - "Unicode-букв".

stokber

unread,
Oct 18, 2017, 3:41:39 PM10/18/17
to Fiction Book Editor

Иногда при конвертации в fb2  начальная строчная буква книжной строки распознаётся как заглавная и в документе fb2 строка оказывается разорванной, а новый абзац (которого быть не должно) начинается с заглавной буквы. В меню скрипта явно просится на панель пункт "Соединить через пробел, Прописную преобразовать в строчную", или как-то так.


primer.rar

Sclex

unread,
Oct 19, 2017, 3:31:39 AM10/19/17
to Fiction Book Editor
stokber, ОК, принято, скорей всего сделаю в ближайшие дни.

среда, 18 октября 2017 г., 22:41:39 UTC+3 пользователь stokber написал:

Sclex

unread,
Oct 25, 2017, 3:35:54 AM10/25/17
to Fiction Book Editor
stokber, исполнил ваше пожелание, смотрите объявление о выкладывании ("выкладке"? "выложении"?) скрипта "Управляемое исправление разрывов v4.2" здесь (в топике "Новые версии старых скриптов"):
https://groups.google.com/d/msg/fiction-book-editor/yYra_Z_PuKI/_gdOuecaAgAJ


среда, 18 октября 2017 г., 22:41:39 UTC+3 пользователь stokber написал:

Message has been deleted
Message has been deleted

stokber

unread,
Oct 26, 2017, 7:41:53 AM10/26/17
to Fiction Book Editor


четверг, 26 октября 2017 г., 14:38:35 UTC+3 пользователь stokber написал:
Спасибо за ваши труды. Будем пробовать.



stokber

unread,
Oct 27, 2017, 4:45:14 AM10/27/17
to Fiction Book Editor


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

четверг, 26 октября 2017 г., 14:41:53 UTC+3 пользователь stokber написал:

Sclex

unread,
Oct 27, 2017, 8:48:04 AM10/27/17
to Fiction Book Editor
Ок, сделаю, чтобы предлагалось.

пятница, 27 октября 2017 г., 11:45:14 UTC+3 пользователь stokber написал:

Sclex

unread,
Oct 27, 2017, 9:00:02 AM10/27/17
to Fiction Book Editor
stokber, по вашему скриншоту заметил еще, что попадает в число сомнительных случаев такая ситуация, которая туда попадать не должна. Речь о втором сверху случае: где первый абзац из пары кончается на "апельсинами.", а второй начинается на "Я сидiв".


пятница, 27 октября 2017 г., 11:45:14 UTC+3 пользователь stokber написал:

Message has been deleted

stokber

unread,
Oct 27, 2017, 1:52:21 PM10/27/17
to Fiction Book Editor
Да, в погоне за большими и маленькими буквами я и не догляделся.
Проверил версии 3.8 и 3.9. Обе показали по 15 сомнительных мест. А последние 4.0 и 4.2 - по 89 сомнительных мест. Это на всех книгах так. Видно ошибка вкралась уже в версии 4.0.

Sclex

unread,
Oct 27, 2017, 2:45:05 PM10/27/17
to fiction-b...@googlegroups.com
Ошибка появилась вследствие добавления в скрипт списка юникодных букв.
В версии 4.0, да. Список маленьких юникодных букв делался из кодов
символов, взятых из таблицы Unicode. Родной функцией Javascript'а коды
букв конвертировались в сами буквы. Видимо, что-то сработало
неправильно. Поэтому в список маленьких букв попало несколько больших
русских букв. Но это я уже исправил.

Я вот чего не могу понять: в скрипте предусмотрена обработка такого
типа ситуаций:

Конец 1-го абзаца:
Не запятая и не закрывающая кавычка, либо закрывающая кавычка, перед
которой один из знаков: ?.!…

Конец 2-го абзаца:
Маленькая буква. Или символ из перечисленных: «"(–[=— а потом маленькая буква

Раньше, как оказалось, такие ситуации вообще не обрабатывались. Для
них просто не было кода в одном из HTML-файлов. Сейчас я это исправил.
Но я не уверен, что сформулированные выше условия для детекта такого
типа ситуаций правильны. По идее, наоборот же, 1-ый абзац должен
кончаться на запятую, либо на закрывающую кавычку перед которой нет
одного из символов ?.!… Так или не так?

27.10.2017, stokber<sto...@gmail.com> написал(а):
> --
> Вы получили это сообщение, так как подписаны на группу "Fiction Book
> Editor".
> Чтобы отменить подписку на эту тему, перейдите по ссылке
> https://groups.google.com/d/topic/fiction-book-editor/hf6SpNeNPxQ/unsubscribe.
> Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на
> электронный адрес fiction-book-ed...@googlegroups.com.
> Настройки подписки и доставки писем: https://groups.google.com/d/optout.
>

Sclex

unread,
Oct 28, 2017, 2:29:33 AM10/28/17
to fiction-b...@googlegroups.com
27.10.2017, stokber<sto...@gmail.com> написал(а):
> Если в разрыв попадает знак препинания, то не срабатывает. Вернее сказать,
> не предлагается "Соединить через пробел, букву в начале 2-го абзаца сделать
> маленькой".
Вопрос в том, как это реализовать в плане интерфейса.

Пункт "Соединить через пробел, букву в начале 2-го абзаца сделать
маленькой" можно добавить еще в три типа обрабатываемых ситуаций:

Ситуаций 1
В конце 1-го абзаца: Дефис, перед которым пробел
В начале 2-го абзаца: Любой символ

Ситуация 2
В конце 1-го абзаца: Тире или дефис, перед которым непробельный символ
В конце 2-го абзаца: Любой символ

Сиуация 3
В конце 1-го абзаца: Запятая
В начале 2-го абзаца: Любой символ

И, поскольку во всех этих случаях в начале 2-го абзаца (из пары) может
быть не только большая буква, но любой символ, то пункт "Соединить
..., букву ... сделать маленькой" будет не всегда уместен.

Можно сделать, чтобы этот пункт, когда он неуместен, в окне для ручной
обработки сомнительных мест был неактивным. А в диалоге выбора режимов
обработки как сделать? Если, допустим, человек выбрал в этом диалоге
пункт "Соединить ..., букву ... сделать маленькой", а в каком-то месте
fb2-документа второй абзац из пары начинается не с большой буквы, то в
окне ручной обработки пункт "Соединить ..., букву ... сделать
маленькой" будет неактивным, а какой вариант обработки тогда должен
быть выбран? Или вообще надо как-то по-другому сделать?

stokber

unread,
Oct 28, 2017, 5:42:35 AM10/28/17
to Fiction Book Editor
Я в окне выбора режимов оставляю всегда по умолчанию в ручном. Уже в окне показа сомнительных мест выбираю варианты, на то они и сомнительные места.
Велик и могуч и богат многообразностью русский язык. Как и любой другой. В этом отношении стараются не уступать ему как ошибки правописания, так и ошибки распознавания. Всего не охватишь, пожалуй. На все случаи отдельных кнопок не напасёшься. Да и запутаться в них можно. Если бы была возможность не выходя из окна скрипта исправить в тексте вот такие относительно не часто встречающиеся места, а затем продолжить работу со скриптом, это был бы вариант. Реализуемо ли это с помощью скриптов?

stokber

unread,
Oct 28, 2017, 6:15:11 AM10/28/17
to Fiction Book Editor
Вот ещё пример не часто встречающейся текстовой ситуации.
Это из версии 3.8. В версии 4.0 этого режима, впрочем, уже нет.
Не то, чтобы в тексте редко попадались нераспознанные двоеточия, они к тому же должны ещё и в разрыв угодить. На месте двоеточия могут быть и некоторые другие знаки.
Стоит ли всё это отдельно помещать в режимы, это вопрос.

 

stokber

unread,
Oct 28, 2017, 6:17:58 AM10/28/17
to Fiction Book Editor
Картинку забыл прикрепить.

суббота, 28 октября 2017 г., 13:15:11 UTC+3 пользователь stokber написал:
4-3.png

stokber

unread,
Oct 28, 2017, 7:43:12 AM10/28/17
to Fiction Book Editor
Можно так. В выборе режима обработки пункт "Соединить через пробел, букву в начале 2-го абзаца сделать маленькой" заменить на пункт "Соединить через пробел, первую из букв в начале 2-го абзаца сделать маленькой" или добавить этот же пункт, активируя в зависимости от текста документа один из них, соответственно дезактивируя другой.

Sclex

unread,
Oct 28, 2017, 11:36:49 AM10/28/17
to fiction-b...@googlegroups.com
28.10.2017, stokber<sto...@gmail.com> написал(а):
> Вот ещё пример не часто встречающейся текстовой ситуации.
> Это из версии 3.8. В версии 4.0 этого режима, впрочем, уже нет.
Такое впечатление, что я не ту версию HTML-файлов взял, чтобы из них
сделать версию 3.9. Намеренно удалять варианты с многоточием я бы не
стал.

Sclex

unread,
Oct 28, 2017, 1:41:57 PM10/28/17
to fiction-b...@googlegroups.com
28.10.2017, Sclex<scl...@gmail.com> написал(а):
> Такое впечатление, что я не ту версию HTML-файлов взял, чтобы из них
> сделать версию 3.9.
Да, проверка показала, что так и есть. Я, видимо, взял файлы из
хранилища на ГитХабе, а последняя версия лежала не там, а на
scripts.fictionbook.org.
> Намеренно удалять варианты с многоточием я бы не стал.
Вернее, с двоеточием. Уже приделал в скрипт обратно эти пункты
("Добавить ":"" и "Соединить через ":" и пробел". (Пока не
выкладываю.)

Sclex

unread,
Oct 28, 2017, 1:47:41 PM10/28/17
to fiction-b...@googlegroups.com
> Если бы была возможность не выходя из окна скрипта исправить в тексте вот такие относительно не часто встречающиеся места, а затем продолжить работу со скриптом, это был бы вариант. Реализуемо ли это с помощью скриптов?
Ну WYSIWYG-редактирование пары абзацев можно сделать. Картинки токо
будут не видны. Но не знаю, буду ли я этим заниматься.


28.10.2017, Sclex<scl...@gmail.com> написал(а):

Sclex

unread,
Nov 10, 2017, 7:18:28 AM11/10/17
to Fiction Book Editor
stokber, выпустил "Управляемое исправление разрывов абзацев" версии 4.3. В этой версии добавил для ситуации, о которой вы писали, вариант обработки "Сохранить запятую, соединить абзацы через пробел. Первую букву 2-го абзаца сделать маленькой (если надо)".

Смотрите сообщение по ссылке:

https://groups.google.com/d/msg/fiction-book-editor/yYra_Z_PuKI/3HLPF-_QAAAJ

stokber

unread,
Nov 10, 2017, 2:27:56 PM11/10/17
to Fiction Book Editor

Спасибо! Будем посмотреть.


stokber

unread,
Nov 11, 2017, 10:19:52 AM11/11/17
to Fiction Book Editor
Всё отлично работает. Ещё раз спасибо!

пятница, 10 ноября 2017 г., 22:27:56 UTC+3 пользователь stokber написал:

Спасибо! Будем посмотреть.


stokber

unread,
Jan 14, 2022, 2:20:41 PMJan 14
to Fiction Book Editor
Заметил у себя такой баг:
Если абзац разорван на картинке и перед картинкой есть пустая строка, то при склеивании абзаца картинка пропадает. Может это только у меня так, хотя старая версия 3.6 отрабатывает корректно.
FBE 2.5.7. Windows 7x64.

суббота, 11 ноября 2017 г. в 18:19:52 UTC+3, stokber:

stokber

unread,
Jan 14, 2022, 2:23:34 PMJan 14
to fiction-b...@googlegroups.com
Досылаю документ с примером.

пт, 14 янв. 2022 г. в 22:20, stokber <sto...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/be047728-88a3-48d0-a4ab-1022c4c45e92n%40googlegroups.com.
Исправление разрыва абзацев на картинке.rar

Sclex

unread,
Jan 15, 2022, 2:58:13 AMJan 15
to fiction-b...@googlegroups.com
Да, у меня воспроизводится. Спасибо, что сообщили. А как правильно
должен работать скрипт в таком случае? Вообще не предлагать такую
"ситуацию" как разрыв абзаца?

14.01.2022, stokber<sto...@gmail.com> написал(а):
> --
> Вы получили это сообщение, так как подписаны на группу "Fiction Book
> Editor".
> Чтобы отменить подписку на эту тему, перейдите по ссылке
> https://groups.google.com/d/topic/fiction-book-editor/hf6SpNeNPxQ/unsubscribe.
> Чтобы отменить подписку на эту группу и все ее темы, отправьте письмо на
> электронный адрес fiction-book-ed...@googlegroups.com.
> Просмотреть это обсуждение в Сети можно по адресу
> https://groups.google.com/d/msgid/fiction-book-editor/be047728-88a3-48d0-a4ab-1022c4c45e92n%40googlegroups.com.
>

stokber

unread,
Jan 15, 2022, 3:23:20 AMJan 15
to Fiction Book Editor
Обязательно в такой ситуации должен предлагать исправить разрыв. Скрипт и предлагает и исправляет, но попутно пропадает картинка. Причем пустая строка ниже картинки не мешает отработать корректно. Строка склеивается и картинка на месте.  Старый скрипт v 3.6  в такой ситуации отлично справляется: между строками может быть любое количество как пустых строк, так и картинок.
По этому скрипту у меня есть еще некоторые идеи. Напишу на почту.

суббота, 15 января 2022 г. в 10:58:13 UTC+3, Sclex:

Sclex

unread,
Jan 19, 2022, 6:38:32 AMJan 19
to Fiction Book Editor
> Заметил у себя такой баг:
> Если абзац разорван на картинке и перед картинкой есть пустая строка, то при склеивании абзаца картинка пропадает.
Вроде как исправил это. Скрипт "Управляемое исправление разрывов абзацев" обновлен до версии 4.4. Пожалуйста, попробуйте.

Ссылки на файлы данного скрипта (в GIT-хранилище исходников FBE):

Для обновления скрипта с версии 4.3 на версию 4.4 достаточно заменить первые два файла из этого списка.
суббота, 15 января 2022 г. в 11:23:20 UTC+3, stokber:

stokber

unread,
Jan 19, 2022, 11:56:00 AMJan 19
to Fiction Book Editor
Да, теперь с картинками и пустыми строками все корректно работает. Спасибо!

среда, 19 января 2022 г. в 14:38:32 UTC+3, Sclex:
Reply all
Reply to author
Forward
0 new messages