2 мая 2017 г.

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

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

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

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

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

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

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

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


Еще GREP стили:

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

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

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

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


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

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

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

Нужно создать стиль символа (Character Style), который будет применяться к верхнему индексу.
Например, он будет называться Index-verh.
В GREP пишем применить Index-verh
К тексту:
(?<=м)\d(?=\>)

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

Применить ‘название стиля’
К тексту:
[\l\u\d.]+@[\l\u\d.]+

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

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

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

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

3 комментария:

  1. По всему Интернету одно и то же. Копипст.

    ОтветитьУдалить
  2. Работает же. А вам, батенька, только б побрюзжать.

    ОтветитьУдалить
  3. как только нажимаю no break текст сливается в единую массу (при этом сохраняются пробелы), и выдает ошибку, как если бы у меня без пробелов все слова в одну строчку были написаны. думаю, не очень понятно объяснила, что по-другому не могу(( не знаю, как это решить

    ОтветитьУдалить