[ID CC-CC2022] Как прибить английские артикли и предлоги (неразрывным пробелом)

  • Автор темы Автор темы Kostik
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kostik

Топикстартер
15 лет на форуме
Сообщения
982
Реакции
253
Уважаемые товарищи и товарки, верстаю книжку на английском и надо бы прибить короткие предлоги и частицы, чтобы не отрывались от своих родительских слов.
Как реализовать это на GREP разобрался:
Ищем \s(?i)(a|the|of|at|for|on|is|and|to|in)\s
Меняем $1\S.
Может есть у кого уже готовые наборы артиклей / предлогов / частиц, которые по правилам английской грамматики и типографики нельзя отрывать от следующего / предыдущего слова?
А то в "собачей мове" я не силен. Буду очень благодарен!
 
а надо ли? они вообще так не делают

и переносы стараются не использовать
 
Последнее редактирование:
  • Спасибо
Реакции: LeonidB

~S - фиксированный пробел постоянной ширины (не масштабируется при выключке по формату)
~s - фиксированный пробел (масштабируется при выключке по формату)
 
Англичане спокойно подвешивают любые предлоги. Максимум можно попробовать "а" пришить неразрывным
 
Переносы нужны. Верстка будет корявая. А что до висячих предлогов и т.д. – я консультировался с английским филологом как-то – и подтверждаю, где-то с 80-х годов англичане перестали следить за этим официально, а до этого правила были безумно сложными, и по переносам и по висякам.
 
  • Спасибо
Реакции: dumbm1 и MikeVM
я просто несколько книг посмотрел навскиду, переносы есть в количестве примерно 1 на 4 полосы, предлоги и артикли не прибивают
 
Так у них за счет этих артиклей и предлогов узких верстка распрекрасно и так выравнивается. Ну в исключительных случаях воткнут перенос-другой.
 
Зачем прибивать неразрывным пробелом? Создайте символьный стиль no break с единственным атрибутом no break.
Поставьте в абзацном стиле grep-стиль no break на слова из 1 или 2 букв плюс пробел. И делов-то.
Не по теме:
Никто и не заметит, прибиты они у вас или что. А вам приятно.
 
Зачем прибивать неразрывным пробелом? Создайте символьный стиль no break с единственным атрибутом no break.
Поставьте в абзацном стиле grep-стиль no break на слова из 1 или 2 букв плюс пробел. И делов-то.
Не по теме:
Никто и не заметит, прибиты они у вас или что. А вам приятно.
Если компьютер не шустрый, то это может привести к торможению.
 
@LeonidB, не только может, а приведёт.
причём к нешуточному
 
  • Спасибо
Реакции: Linxy
В случае, если grep-стили приводят к торможению, можно после импорта текста сделать аналогичные замены через grep. Будет не хуже.
 
Доработал замену:
Найти: (?<=/s )(?i)\b(a|the|of|at|for|on|it|at|is|are|is|and|to|in)
Заменить: $1~S
Если раньше шли подряд, к примеру, at и the, то после первого предлога неразрывный пробел опять заменялся на обычный, после добавления "положительного просмотра вперед", проблема ушла. Соответственно в замене тоже убрал первый пробел.
ps: большое спасибо М. Иванюшину за "GREPоводство".
 
А где? Может я чего не правильно записал в посте, но в верстке у меня сработало.
действительно забыл в конце добавить /s
(?<=/s )(?i)\b(a|the|of|at|for|on|it|at|is|are|is|and|to|in)/s
 
Во-первых, не /s, а \s.
Во-вторых, не (?<=/s ), а (?<=\s).
В-третьих, можно убрать повторы "is" и "at".
 
Последнее редактирование:
  • Спасибо
Реакции: LeonidB
А в-четвёртых, зачем нужен положительный просмотр назад (?<=\s), если в поиске используется оператор \b ?
Достаточно искать \b(?i)(a|the|of|for|on|it|at|are|is|and|to|in)\s
 
  • Спасибо
Реакции: Kostik и granat
Статус
Закрыто для дальнейших ответов.