фото, вьетнам, я, 2012

Indesign — как автоматически избавиться от висячих предлогов

Чтобы убрать висячие предлоги можно после каждого из них поставить неразрывный пробел (CTRL+ALT+SHIFT+X) это можно сделать автозаменой или, что лучше, применить к пробелу после каждого предлога свойство No Break, о том как это сделать автоматически, а не вручную и пойдет речь дальше.

Шаг 1: Создаем Character Style, в котором есть только одно свойство No Break (стиль я назвал также NO BREAK)

Шаг 2: Создаем Paragraph Style, где в настройках GREP задаем следующие параметры:

107.95 КБ

Настройки GREP для предлогов в середине предложения:
(?<= )((в|во|без|до|из|к|ко|на|по|о|от|перед|при|через|с|у|не|за|над|для|об|под|про|и|а|но|да|или|ли|бы|то|что|как|я|он|мы|они|ни)( |\. |, ))+

Настройки GREP для предлогов в начале предложения:
((?<= )|(?<=^))((В|Во|Без|До|Из|К|Ко|На|По|О|От|Перед|При|Через|С|У|Нет|За|Над|Для|Об|Под|Про|И|А|Но|Да|Или|Ли|Бы|То|Что|Как|Я|Он|Мы|Они|Ни) )+

Так как это выглядит полнейшей абракадаброй, то дам небольшие пояснения:

(?<= ) — это условие, которое говорит, что применять стиль, только если перед предлогом стоит пробел
(?<=^) — это условие, которое говорит, что применять стиль, только если абзац начинается с предлога
(в|во|без|до| ... |ни) — список всех предлогов (а также союзов и местоимений), которых я не хочу видеть в конце строки
( |\. |, )) — те знаки, которые следуют после предлога: пробел, точка+пробел, запятая+пробел
+ — нужен для того, чтобы стиль применялся к нескольким подряд идущим предлогам (например: да и не стоило волноваться по этому поводу)

UPD: В связи волной спама пост закрыт для комментариев

  • 34 comments
Цопирайты бы проставил.
А то как то не комильфо.
(?<= )((в|во|без|до|из|к|ко|на|по|о|от|перед|при|через|с|у|не|за|над|для|об|под|про|и|а|но|да|или|ли|бы|то|что|как|я|он|мы|они|ни)( |\. |, ))+

Похоже на заклинание Древних=)))
Спасибо, полезная штука!

Я обычно пользуюсь скриптом DoTextOk, но NoBreak как-то красивее абзац выстраивает.
Костя
(Anonymous)
спасибо, очень здорово, почти как когда-то в кварке - нонбрейкбл!!!

как я понял это для CS5 и выше, а как быть в CS3?
Re: Костя
(Anonymous)
САМ нашел, если кому надо - то проделать все тоже самое в "найти-заменить"!
Спасибо
(Anonymous)
Спасибо!!! очень круто!
висячий предлог
(Anonymous)
Только висячий предлог однобуквенный - ежели букв несколько, то не возбраняется висеть)))
Прошу прощения, очень хотелось бы оказаться в числе восторженно благодарящих, но у меня не получилось. А именно - мне не понятен первый шаг. Нет ли где-нибудь подробнее об этом?
Можно ) только встречный вопроc: есть ли понимание что такое Character Style и чем он отличается от Paragraph Style?
А GREP-стилей нет в InDesign CS3? Что-то не могу найти :-\
Добра тебе. Очень выручает.
Все равно висяки остаются. Character есть, грепы скопипастила ваши.
Можно прислать файл верстки на solidcreature@gmail.com
тогда смогу сказать почему не работает
Добрый день! Не работает греп почему то. В чем может быть проблема? Indesign CC 2015.5

Не получается((
(Anonymous)
Добрый день!
Спасибо большое вам, только у меня не получается. Пробовал по разному делать уже.
В Character Style, выбираю No Break и уже текст не переносится никак, независимо что я делаю в Paragraph Style
может быть скините индизайновский файл?
Спасибо!
  • 34 comments