Как избавиться от висячих предлогов: 3 способа на каждый день
«Висячим» или «висящим» называют предлог, который подвис в конце строки, хотя относится по смыслу к слову в начале следующей строки. По правилам типографики рекомендуется переносить некоторые предлоги на новую строку. В статье расскажу, как избавиться от таких предлогов.
Привет! Я Катя Полухина, редактор и автор телеграм-канала «Пишу и сокращаю». А это мой краткий гид для вас: как быстро убрать «висячки».
Рекомендую соединять висячие предлоги и союзы в Типографе. Программа связывает неразрывным пробелом все короткие союзы/предлоги со следующими за ними словами.
Вот пример того, как Типограф соединяет висячий предлог
Для этого добавьте текст, нажмите «Оттипографить». И вставьте готовый текст в нужное место. Например, в программу вёрстки рассылок.
Если в сторисах оформляете текст, лучше висячки тоже ставить на новую строку.
На фото пример, как 2ГИС забивает на оформление текстов в рассылках.
2. Неразрывный пробел горячими клавишами
Если вы пишете небольшой кусочек текста с компьютера и нет времени на Типограф, вас спасет неразрывный пробел.
Сочетание клавиш для неразрывного пробела по умолчанию: Ctrl+Shift+Пробел, либо с использованием Alt-кода (Alt + 0160 или Alt + 255).
3. Типографская раскладка Бирмана
Это крутой сервис, с которым легко вводить разные полезные символы. Например, можно писать м³, →, знак умножения ×, градусы ° и, конечно, неразрывный пробел.
Так выглядит раскладка Бирмана
Если было полезно, не забудьте подписаться на мой канал. Там еще больше советов про работу и жизнь.
Как убрать висячие предлоги в Word?
Надо отредактировать большой объем текста, убрать висячие предлоги, союзы и т.д. с конца строки (Word 2013).
Есть такой вариант решения с помощью автозамены:
В «Найти» введите строку «([ ^s])([а-яА-Яa-zA-Z]) ([а-яА-Яa-zA-Z])», в поле «Заменить на», введите строку «\1\2^s\3»
Предлоги, союзы приклеиваются с помощью неразрывного пробела к следующему слову.
Все работает хорошо, НО, приклеиваются они не только в конце строки, а по всему тексту.
Можно ли как-то сделать так чтобы это работала только с конечными символами.
Казанский
Sub ВисячиеПредлоги1() Dim s$, n& Selection.HomeKey Unit:=wdStory Do Selection.EndKey Unit:=wdLine If Selection.End + 1 >= ActiveDocument.Range.End Then Exit Do Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend s = Selection.Text If s = vbCr Then 'пустой абзац, выделение сместилось на строку вверх! Selection.MoveDown Unit:=wdLine, Count:=1 ElseIf LCase$(Right$(s, 2)) Like "[a-zа-яё] " And (Len(s) = 2 Or Len(s) = 3) Then Selection.EndKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.TypeText Text:=Chr(160) 'неразрывный пробел; происходит переход на сл. строку n = n + 1 Selection.MoveUp Unit:=wdLine, Count:=1 End If Selection.MoveDown Unit:=wdLine, Count:=1 Loop MsgBox "Выполнено замен: " & n, vbInformation End Sub
Похожие статьи
- Макрос пакетной конвертации docx в doc
- Как запретить Юзеру лезть в колонтитулы?
- Shape в группе. Как понять в VBA, что выделена не просто группа, но и Shape (объект на группе)?
- Слияние для нескольких строк (VBA)
- Выделение цветом нескольких фрагментов текста
Заменить висячие предлоги

Добрый день!
Подскажите как заменить висячие предлоги?
Если просто заменой
([ ^s])([а-яА-Яa-zA-Z]) ([а-яА-Яa-zA-Z])
То под одну гребенку попадают и переменные и связующие предлоги. Просто у меня редактор журнала (куда я сдаю статьи), например, предлог «и» в конце строки не относит к висячим.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Висячие строки.
у меня в документе ворд 2007 выставлены все поля по 2,5 см, проблемы с нижним полем. последние.
Найти в строке все предлоги и заменить их на восклицательные знаки
Программа должна открывать файл temp.txt и записывать его содержание в массив строк, либо считывать.
Найти и заменить в тексте все предлоги на «!»
Задание: набрать текст в текстовом редакторе(5-10 строк по 40-60 символов); считать этот текст в.
Висячие соединения
Добрый день! Есть tcp сервер и клиент. Если клиент закрывает соединение не нормальным способом, то.
5561 / 1367 / 150
Регистрация: 08.02.2009
Сообщений: 4,108
Записей в блоге: 30
Вы, VistaSV30, можете попробовать
Сообщение от VistaSV30 
одну гребенку
разделить на несколько: http://www.cyberforum.ru/vba/thread132013.html#4 — с помощью подобного макроса (легко модифицируемого (кто понимает)).
А вам такие ухищрения нужны для интернет-публикации?
535 / 312 / 78
Регистрация: 10.04.2012
Сообщений: 1,160
Записей в блоге: 2
Спасибо!
Хороший макрос! Сохраню себе.
Это текст учебного пособия, так что редактор издательства проверяет на совесть.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Висячие указатели, как с ними бороться
Здравствуйте, возникла такая проблема. Есть вектор объектов, в указатель заношу какой либо объект.
Удалить из графа изолированные и висячие вершины
Есть граф, у которого (abcdefg) — вершины, а ((bc) (bg) (cg) (cd) (ge)) — pебpа. Удалить из графа.

Удалить из графа изолированные и висячие вершины
Есть граф, у которого (abcdefg) — вершины, а ((bc) (bg) (cg) (cd) (ge)) — pебpа. Удалить из графа.
Предлоги а поиске
Здравствуйте! У меня в названии сайта к высокочастотнику добавлен предлог, так вот раньше яше было.

Предлоги с герундием — At being
Скажите пожалуйста, а сочетание at с герундием и in с герундием — это то же самое?? Я почему.

Исключить из массива предлоги
Это часть задачи. Желателен код. Мне необходимо отредактировать массив ‘a’ так чтобы исключить из.
Или воспользуйтесь поиском по форуму:
Как убрать висячие предлоги в ворде
Сообщение от Казанский
Изменил условие: перед заменяемым пробелом должна быть буква
Sub ВисячиеПредлоги1() Dim s$, n& Selection.HomeKey Unit:=wdStory Do Selection.EndKey Unit:=wdLine If Selection.End + 1 >= ActiveDocument.Range.End Then Exit Do Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend s = Selection.Text If s = vbCr Then 'пустой абзац, выделение сместилось на строку вверх! Selection.MoveDown Unit:=wdLine, Count:=1 ElseIf LCase$(Right$(s, 2)) Like "[a-zа-яё] " And (Len(s) = 2 Or Len(s) = 3) Then Selection.EndKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.TypeText Text:=Chr(160) 'неразрывный пробел; происходит переход на сл. строку n = n + 1 Selection.MoveUp Unit:=wdLine, Count:=1 End If Selection.MoveDown Unit:=wdLine, Count:=1 Loop MsgBox "Выполнено замен: " & n, vbInformation End Sub
не подскажете каким образом изменить макрос, чтобы переносился знак № в конце строки?
Регистрация: 09.12.2016
Сообщений: 4
не подскажете каким образом изменить макрос, чтобы переносился знак № в конце строки?
Регистрация: 31.12.2010
Сообщений: 2,133
korney4,
просто замените » № » (№пробел) на » №^s » (без кавычек) по всему документу.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Регистрация: 04.01.2017
Сообщений: 1
Сообщение от Казанский
Изменил условие: перед заменяемым пробелом должна быть буква
Sub ВисячиеПредлоги1() s$, n& Selection.HomeKey Unit:=wdStory Do Selection.EndKey Unit:=wdLine If Selection.End + 1 >= ActiveDocument.Range.End Then Exit Do Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend s = Selection.Text If s = vbCr Then 'пустой абзац, выделение сместилось на строку вверх! Selection.MoveDown Unit:=wdLine, Count:=1 ElseIf LCase$(Right$(s, 2)) Like "[a-zа-яё] " And (Len(s) = 2 Or Len(s) = 3) Then Selection.EndKey Unit:=wdLine Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.TypeText Text:=Chr(160) 'неразрывный пробел; происходит переход на сл. строку n = n + 1 Selection.MoveUp Unit:=wdLine, Count:=1 End If Selection.MoveDown Unit:=wdLine, Count:=1 Loop MsgBox "Выполнено замен: " & n, vbInformation End Sub
Отличный макрос, предлоги слетают хорошо.
Но почему то виснет напрочь на таблицах и рисунках.
Может можно переписать действие макроса только на выделенный фрагмент текста?