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

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

Подтягиваем хвосты в InDesign

GREP в InDesign

Одной из важных мелочей в вёрстке текста являются висячие предлоги (а также союзы и частицы) в конце строк. Особенно они заметны во флаговом наборе. Рекомендуется привязывать предлоги и союзы к следующему за ними слову, а частицы — к предыдущему. После них должен ставиться неразрывный пробел alt+ctrl+x | ⌥⌘X . Нельзя отрывать единицы измерений от их значений, разрывать пробелом некоторые сокращения.

Возникает сложность: в тексте предлогов, союзов и частиц могут быть десятки, сотни, тысячи. Расставлять руками? Расставлять автозаменой? Как не забыть все правила расстановки? А потом пришлют тонну правок по тексту, и всё делать заново? Оно всё равно где-нибудь отвалится! Пусть компьютер делает это за меня!

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

Слов-то много!

Воспользуемся методом комбинаторики и запишем все двухбуквенные комбинации (за исключением пар одинаковых гласных). Выделим все слова, которые имеют смысл, кроме аббревиатур, но используем только те, которые подчиняются правилам вёрстки.

аб ау еб ёб иб об уб ыб эб юб яб ба бе бё би бо бу бы бэ бю бя ав ев ёв ив ов ув ыв эв юв яв ва ве вё ви во ву вы вэ вю вя аг ег ёг иг ог уг ыг эг юг яг га ге гё ги го гу гы гэ гю гя ад ед ёд ид од уд ыд эд юд яд да де дё ди до ду ды дэ дю дя ее её аж еж ёж иж ож уж ыж эж юж яж жа же жё жи жо жу жы жэ жю жя аз ее её ез ёз из оз уз ыз эз юз яз за зе зё зи зо зу зы зэ зю зя ай ей ёй ий ой уй ый эй юй яй йа йе йё йи йо йы йу йэ йю йя ак ек ёк ик ок ук ык эк юк як ка ке кё ки ко ку кы кэ кю кя ал ел ёл ил ол ул ыл эл юл ял ла ле лё ли ло лу лы лэ лю ля ам ем ём им ом ум ым эм юм ям ма ме мё ми мо му мы мэ мю мя ан ен ён ин он уг ын эн юн ян на не нё ни но ну ны нэ ню ня ап еп ёп ип оп уп ып эп юп яп па пе пё пи по пу пы пэ пю пя ар ер ёр ир ор ур ыр эр юр яр ра ре рё ри ро ру ры рэ рю ря ас ес ёс ис ос ус ыс эс юс яс са се сё си со су сы сэ сю ся ат ет ёт ит от ут ыт эт ют ят та те тё ти то ту ты тэ тю тя ау аф еф ёф иф оф уф ыф эф юф яф фа фе фё фи фо фу фы фэ фю фя ах ех ёх их ох ух эх ых юх ях ха хе хё хи хо ху хэ хы хю хя ац ец ёц иц оц уц эц ыц юц яц ца це цё ци цо цу цэ цы цю ця ач еч ёч ич оч уч ыч эч юч яч ча че чё чи чо чу чы чэ чю чя аш еш ёш иш ош уш ыш эш юш яш ша ше шё ши шо шу шы шэ шю шя ащ ещ ёщ ищ ощ ущ ыщ эщ ющ ящ ща ще щё щи що щу щы щэ щю щя

Перечислим все однобуквенные слова, их все нельзя отрывать от следующего слова:

Сюда же следует отнести наиболее распространённые сокращения и единицы измерения, частицы, которые нельзя отрывать от предыдущего слова: грамм, год, город, метр, рубль, тонна, тысяча

Перечислим все двухбуквенные слова, которые желательно не отрывать от следующего слова:

Перечислим слова, которые желательно не отрывать от предыдущего слова:

Не забудем про сокращения и символы:

Как это всё работает?

Преимущество этого метода в том, что эти правила сохраняются в самой программе до создания нового файла. И появляются во всех вновь созданных документах в стиле Basic Paragraph , на основе которого создаются все остальные стили. Вы можете навсегда забыть про замену обычных пробелов на неразрывные через Find/Change .

Откроем InDesign и в палитре Character Styles создадим стиль No Break , в котором укажем не разрывать символы.

Окно Character Styles

Откроем стиль Basic Paragraph в палитре Paragraph Styles , перейдём на вкладку GREP Style , нажимаем на кнопку New GREP Style , в Apply Style выбираем наш стиль No Break . Дальше стоит поле для ввода текста To Text: \d+.

Окно Paragraph Styles

Вставим в это текстовое поля следующее выражение:

Оно означает: найди в начале слова \< без учета регистра ?i: любой шаблон из перечисленных ( | ) . Вертикальная черта означает «или» и как варианты даны слова с пробелом после. Если не указать, где искать, то поиск найдет саму букву, а не слово целиком. Правило «без учета регистра» позволяет не писать правило для прописных букв.

Жмём New GREP Style снова и добавляем туда остальные правила:

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

Последнее правило приклеивает тире и знаки к предыдущему слову, а числа — к следующему.

Настройка завершена. Дальше создаем свои стили, указав за основу Basic Paragraph , стиль No Break будет применяться автоматически. Если вы хотите отключить эту настройку, то вместо Basic Paragraph нужно выбрать No Style .

Регулярные выражения для автозамены

Висячие предлоги работают с помощью GREP Style только потому, что пробелу и предлогу велено не разрываться. Однако, это не избавляет от необходимости заменять некоторые регулярные выражения с помощью автозамены. Когда весь текст импортирован в файл вёрстки, нужно провести ряд автозамен. Выражения можно сохранить в шаблоны в окошке Find/Change .

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

Шаг 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 =)

Типограф от Лебедева и висящие предлоги в Figma и Sketch.

Лебедев на своем сайте уже давно сделал типограф, и он молодец — и типограф и Лебедев =) ссылка: https://www.artlebedev.ru/typograf/

Заливаете текст, жмете кнопку и текст с разметкой ваш. Copy-Paste…

Может быть кстати, если вы сами делаете дизайн сайта в Figma или Sketch и ни сном ни духом про плагины.

Единственное — нужно немного настроить типограф, чтобы непечатуемые символы не были видны в вашем дизайне. Для этого вам нужно зайти в настройки типографа.

В настройкам нужно поменять пункты и обязательно нажать “сохранить”, потом перейти на окно типографа и опять оттипографить текст.

После этого предлоги будут связаны с последующими словами, но при этом непечатуемые символы не будут видны. Копируем текст и вставляем в нашу Figma или Sketch.

А что если после всего этого все равно не все предлоги привязались?

Такое случается, я не могу объяснить, почему, но такое бывает. это решается так же просто, как в случае с копированием #nbsp;

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

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

Плавно переходим на печать.

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

Помимо висячих предлогов необходимо привязывать союзы к следующему за ними слову, а частицы — к предыдущему. Нельзя отрывать единицы измерений от их значений, разрывать пробелом некоторые сокращения.

Как сделать в индизайне магию написано вот тут, статья не новая, но сейчас все работает точно так же, а я лучше все равно не напишу, поэтому просто прочитайте =)

Ссылка на основную публикацию