Как убрать висячие предлоги в индизайне
Перейти к содержимому

Как убрать висячие предлоги в индизайне

  • автор:

GREP-стили в InDesign – ускоряем верстку

GREP-стили – очень удобная вещь, они дают возможность задать в стиле абзаца (Paragraph Styles) стили символа (Charater Styles), которые автоматом будут применяться к тому или иному тексту. Например, с помощью GREP-стилей можно убрать висячие предлоги или применить определенное форматирование ко всем датам.

Добавляют GREP стили в одноименной вкладке у Paragraph Style:

GREP стили в InDesign как добавить

К любому Paragraph Style можно добавлять сколько угодно GREP-стилей. Подробнее о том, что такое GREP-стили и как их писать, можно прочитать в справке по InDesign, ниже будут приведены примеры часто встречающихся в верстке GREP-стилей.

Многие GREP-стили связаны с расстановкой неразрывных пробелов. Чтобы сделать неразрывный пробел, нужно создать стиль, единственным содержимым которого будет галка в чекбоксе No Break, назовем его NoBreak:

создание стиля неразрывного пробела NoBreak в InDedign

Этот стиль понадобится далее.

Как убрать висячие предлоги

Применяем стиль NoBreak
К тексту:
(? )

Как добавить стиль ко всем адресам email автоматом

Добавить стиль ко всем фамилиям с инициалами

Для поиска фамилий формата Иванов В.П. в начале предложения используем выражение:
^(\u[- \w]+ \u\l?\. ?(\u\l?\.)?(, )?)+

Для поиска всех Ивановых В.П. по тексту пишем:

Ну а если инициалы идут перед фамилией, будет такая строчка:
(\u\l?\. ?(\u\l?\.) ?\u\l+ )+

Добавить стиль ко всем датам

Будем искать даты вида 20 января 1994 г.

GREP-выражение будет таким:
(\d|\d\d) (января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря) (\d\d\d\d) (г.)

6 thoughts on “ GREP-стили в InDesign – ускоряем верстку ”

как сделать стиль в котором вместо символа | вставляется перенос строки

В тексте, который фоном, — «шестЕдЯсятые годы». Это ж надо умудриться.

Добрый день.
После включения галочки «No Break» весть текст уходит за границу блока (если его ширина больше блока) и фильтры не применяются, в чем может быть проблема. Indesign CC 2017 Ru
Спасибо.

Текст исчезает в том случае, когда строчка не помещается в колонку, то есть если у вас конструкция типа *слово-неразрвный пробел-слово*, и в этих словах по каким-то причинам не работают переносы. В таком случае нужно настраивать переносы вручную. Попробуйте перелить этот текст куда-нибудь на поля в более широкую колонку и поставить где-нибудь плавающий перенос.

А как поднять индекс у двух последних символов? Верстаю каталог и в ценах копейки пишем индексом, это можно каким-то грепом автоматизировать?

Оо в 2020 я с этим столкнулся, и нужно создать НОВЫЙ СТИЛЬ «No Break» я ковырялся долго и нашел причину.

Блог Михаила Лукьянова

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

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

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

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

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

Либо вот так:
\<(?i:(а |в |и |к |о |с |у |я ))
\<(?i:(во |вы |да |до |за |из |ко |мы |на |не |ни |но |ну |об |он |от |ох |по |со |та |те |то |ту |ты |уж ))
\>(?i:( г| т| ж| м| г.| р.))
\>(?i:( га| гг.| дм| долл.| др.| же| кг| мг| мл| млн.| млрд.| мм| нм|с. | см| стр.| руб.))
(т. п.|т. д.|т. е.|н. э.)
\>(?i:(

Как убрать висячие предлоги

Как сделать неразрывный пробел в цифрах

Применяем стиль NoBreak
К тексту:
(?<=\d)(.)

Как сделать неразрывный пробел перед тире

Как поднять верхний индекс в м2, км2, см3 и т.д.

Как добавить стиль ко всем адресам email автоматом

Добавить стиль ко всем фамилиям с инициалами

Добавить стиль ко всем датам

Будем искать даты вида 20 января 1994 г.
GREP-выражение будет таким:
(\d|\d\d) (января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря) (\d\d\d\d) (г.)

Как правильно убрать висящие предлоги везде, где только можно?

Ольга Гурьянова

Тизер: не прибегая к Tab, пробелам и отбиванием новой строки. Где волшебная кнопка в Word и InDesign, куда жать в Tilda и Figma, и как во всем этом может помочь сайт Лебедева.

Висящие предлоги в Tilda.

В Тильде есть встроенный типограф. Вы просто выделяете текст, который нужно отредактировать, нажимаете на иконку, и все предлоги присоединяются к слову за предлогом, выглядит он вот так.

Когда вы выделяете какой-либо текст, этот значок появляется, вы можете выделить текст, кликнуть на этот значок, и висящие предлоги исчезнут, дефис превратится в тире, а “ ” в « ».

Вот этот набор символов: #nbsp; между предлогом и словом говорит о том, что предлог должен перейти на следующую строку вместе со смысловым словом.

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

Что делать, если пропущен предлог, и он получается висящим? По сути типограф просто делает правильную разметку текста и показывает в коде, что тут между этой буквой и этой буквой пробел, но на разных строках они стоять не должны. Поэтому, никто не запрещает скопировать #nbsp; и вставить в нужном месте самостоятельно. Эффект будет таким же.

Почему не подходит перенос предлогов с помощью многократного нажатия пробела, Tab или переноса на новую строку с Enter?

Потому что длина строки изменяется от ширины экрана при адаптивном дизайне, и все многочисленные пробелы (Tilda, правда не дает ставить 100500 пробелов подряд) или отбитие новой строки Enter сотворят монструозную конструкцию из текста, как только ширина абзаца станет отличаться от той, в которой вы делали все исправления. На картинке ниже показано, как “карета превращается в тыкву”, если не использовать типограф, а делать так, как печатают документы все новоиспеченные секретари в Word =)

solidcreature

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

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

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

107.95 КБ

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *