LINUX.ORG.RU

Алгоритм разбиения текста на строки (русский язык)

 ,


0

2

Скажите кто нибудь решил (на современном уровне развития технического прогресса) проблему с висящими в конце строки предлогами и союзами в тексте на русском языке?

PS

Очень задалбывает расставлять в русном режиме неразрывные пробелы. Кроме того на неразрывные пробелы офисные редакторы явно неадекватно искажают расположение текста внутри строки.

★★★★★

Нет. Раставляю неразрывные пробелы по месту при итоговой проверке текста на ошибки. Для красоты добавляю microtype.

Вот висячие строки убираются.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

А в чем может быть проблема модификации алгоритма разбиения? Это ведь сводиться к списку «стоп слов» и штрафа за них.

Есть ли возможность вмешиваться (перегружать) стандартный алгоритм разбиения? По моему это конкретный профит для локализации софта офисного.

psv1967 ★★★★★
() автор топика

А в чём проблема пройтись автозаменами вида «<пробел><предлог/союз><пробел>»→«<пробел><предлог/союз><неразрывный пробел>»?

XMs ★★★★★
()
Ответ на: комментарий от psv1967

Я думаю, что дело в том, что кто-то этим должен заняться. Русскоязычного сообщества LaTeX де факто нет. Я имею в виду сообщества разработчиков. Есть одиночки в колличестве двух-трёх человек, но сообщества нет.

Evgueni ★★★★★
()
Ответ на: комментарий от XMs

Ну, вот эти все «<пробел><предлог/союз><пробел>»→«<пробел><предлог/союз><неразрывный пробел>» в офесе надо копипастить и делать замену.

crutch_master ★★★★★
()

Можно расширить (и упростить) правило: заменять <очень_короткое_слово><пробел><слово> на <очень_короткое_слово><неразрывный_пробел><слово>. Достаточно легко можно придумать языконезависимое регулярное выражение для такого.

anonymous
()

Для LuaTeX есть пакет impnattypo (https://ctan.org/pkg/impnattypo), в котором есть нечто подобное. Впрочем, сам я его не пробовал, и как оно работает с русским языком, сказать не могу.

А хотя нет, там только однобуквенные слова в конце строки можно запретить. Но зато есть код и ссылки на stackexchange, где можно тоже стянуть какой-нибудь код и модифицировать.

TeopeTuK ★★★★★
()
Ответ на: комментарий от XMs

Перефразирование и означает: ручная работа. Это не автоматизируется. Та же бодяга с отслеживанием, чтобы число переносов было меньше четырёх подряд.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от anonymous

Это тот же пробел, но при разбиении абзаца на строки не позволяет разорвать фразу в этом месте. В случае LaTeX такой проблем обозначается тильдой. В русской печатной традиции не принято, чтобы, например, предлоги отрывались от слов к которым они относятся, как и числа от того, чего они исчисляют.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от gnunixon

Еще раз, внутри строки (не в TeX) замена всех возможных разрывов на неразрывные пробелы порождает «АдЪ и ИзраилЪ»...

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Для ТеХ тут два решения — препроцессинг текста POS тегером с расставлением после всех предлогов неразрывного пробела.

И второй вариант с вмешательством в алгоритм разбиения с назначением штрафов на такие разрывы (и похоже с тем же POS тегером внутри).

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

с расставлением после всех предлогов неразрывного пробела.

К сожалению это не всегда приводит к приличным результатам, особенно если ширина текстового поля мала, так что скорее штрафы как-то смогут этому помочь, то есть нужно их размер выяснять экспериментально.

Evgueni ★★★★★
()
Ответ на: комментарий от i-rinat

Возможно lua действительно упростит решение подобных проблем.

Evgueni ★★★★★
()
Ответ на: комментарий от psv1967

Еще раз, внутри строки (не в TeX) замена всех возможных разрывов на неразрывные пробелы порождает «АдЪ и ИзраилЪ»...

Так я и не спорю. Я просто уточнил что автозамену можно настроить в libreoffice. Нужно ли - большой вопрос.

gnunixon ★★★
()

У Яндекса должны быть наработки на эту тему.

anonymous
()
Ответ на: комментарий от psv1967

Рузгей езыг очень сжожной. Зниззя подвтердидь його провила.

Ну представь себе: как ты можешь автоматизировать вещи, для которых и правил-то нет?

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.