Чтобы убрать висячие предлоги можно после каждого из них поставить неразрывный пробел (CTRL+ALT+SHIFT+X) это можно сделать автозаменой или, что лучше, применить к пробелу после каждого предлога свойство No Break, о том как это сделать автоматически, а не вручную и пойдет речь дальше.
Шаг 1: Создаем Character Style, в котором есть только одно свойство No Break (стиль я назвал также NO BREAK)
Шаг 2: Создаем Paragraph Style, где в настройках GREP задаем следующие параметры:
Настройки GREP для предлогов в середине предложения:
(?<= )((в|во|без|до|из|к|ко|на|по|о|от|перед|при|через|с|у|не|за|над|для|об|под|про|и|а|но|да|или|ли|бы|то|что|как|я|он|мы|они|ни)( |\. |, ))+
Настройки GREP для предлогов в начале предложения:
((?<= )|(?<=^))((В|Во|Без|До|Из|К|Ко|На|По|О|От|Перед|При|Через|С|У|Нет|За|Над|Для|Об|Под|Про|И|А|Но|Да|Или|Ли|Бы|То|Что|Как|Я|Он|Мы|Они|Ни) )+
Так как это выглядит полнейшей абракадаброй, то дам небольшие пояснения:
(?<= ) - это условие, которое говорит, что применять стиль, только если перед предлогом стоит пробел
(?<=^) - это условие, которое говорит, что применять стиль, только если абзац начинается с предлога
(в|во|без|до| ... |ни) - список всех предлогов (а также союзов и местоимений), которых я не хочу видеть в конце строки
( |\. |, )) - те знаки, которые следуют после предлога: пробел, точка+пробел, запятая+пробел
+ - нужен для того, чтобы стиль применялся к нескольким подряд идущим предлогам (например: да и не стоило волноваться по этому поводу)
UPD: В связи волной спама пост закрыт для комментариев