GREP-стили в InDesign – ускоряем верстку
GREP-стили – очень удобная вещь, они дают возможность задать в стиле абзаца (Paragraph Styles) стили символа (Charater Styles), которые автоматом будут применяться к тому или иному тексту. Например, с помощью GREP-стилей можно убрать висячие предлоги или применить определенное форматирование ко всем датам.
Добавляют GREP стили в одноименной вкладке у Paragraph Style:
К любому Paragraph Style можно добавлять сколько угодно GREP-стилей. Подробнее о том, что такое GREP-стили и как их писать, можно прочитать в справке по InDesign, ниже будут приведены примеры часто встречающихся в верстке GREP-стилей.
Многие GREP-стили связаны с расстановкой неразрывных пробелов. Чтобы сделать неразрывный пробел, нужно создать стиль, единственным содержимым которого будет галка в чекбоксе No Break, назовем его NoBreak:
Этот стиль понадобится далее.
Как убрать висячие предлоги
Применяем стиль 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 задаем следующие параметры:
Настройки GREP для предлогов в середине предложения:
(?<= )((в|во|без|до|из|к|ко|на|по|о|от|перед|п ри|через|с|у|не|за|над|для|об|под|про|и|а|н о|да|или|ли|бы|то|что|как|я|он|мы|они|ни) ( |\. |, ))+
Настройки GREP для предлогов в начале предложения:
((?<= )|(?<=^))((В|Во|Без|До|Из|К|Ко|На|По|О|О т|Перед|При|Через|С|У|Нет|За|Над|Для|Об|П од|Про|И|А|Но|Да|Или|Ли|Бы|То|Что|Как|Я|О н|Мы|Они|Ни) )+
Так как это выглядит полнейшей абракадаброй, то дам небольшие пояснения:
(?<= ) — это условие, которое говорит, что применять стиль, только если перед предлогом стоит пробел
(?<=^) — это условие, которое говорит, что применять стиль, только если абзац начинается с предлога
(в|во|без|до| . |ни) — список всех предлогов (а также союзов и местоимений), которых я не хочу видеть в конце строки
( |\. |, )) — те знаки, которые следуют после предлога: пробел, точка+пробел, запятая+пробел
+ — нужен для того, чтобы стиль применялся к нескольким подряд идущим предлогам (например: да и не стоило волноваться по этому поводу)