Софт: BreakBuster

Важным элементом типографики является расстановка неразрывных пробелов и вообще запретов разрывать строку в том или ином месте. Нет ничего уродливее строки, начинающейся с оторванной от предыдущего слова частицы «бы» или разрыва строки на дефисе в составном слове типа «какой-то».

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

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

Что она делает? Следующие три вещи:

  • Обрамляет HTML-тегами NOBR составные слова, написанные через дефис (точнее — через один дефис, более сложные случаи не трогает).
  • Присоединяет неразрывным пробелом к предыдущему слову частицы «бы», «же», «ли» и их редуцированные формы «б», «ж», «ль». Ставит неразрывный пробел перед тире в середине предложения.
  • Присоединяет неразрывным пробелом к следующему слову одно- и двухбуквенные слова русского языка, за исключением вышеперечисленных частиц.

При этом она много чего не делает:

  • Не ищет ошибки и опечатки. Не читает мысли автора. Соответственно, если попадается короткое слово, не распознаваемое программой как слово русского языка — оставляется в покое.
  • Не конвертирует клавиатурные знаки препинания в типографские. У меня всё сразу с клавиатуры печатается как надо, см., например, здесь или здесь.
  • Не контролирует сложные синтаксические конструкции. Русский язык допускает выражения типа «да, но он и её в то же время» — если здесь действовать по правилам, то возникнет куча неразрывных пробелов и абзац может выглядеть уродливо. Программа действует по правилам (на то и писалась!), поэтому в случае чего разбирать такие случаи приходится автору.
  • Не трогает слово «уж». В русском языке оно может выполнять самые разные синтаксические функции и в зависимости от этого требовать присоединения как к следующему («Уж небо осенью дышало…»), так и к предыдущему («да уж, ошибочка вышла…») слову. Делать программный разбор предложения — задача для простенькой программки-инструмента чересчур сложная и неоправданная.

Программа очень простая:

В текстовое поле копируем через буфер или вводим с клавиатуры текст. Если при запуске приложение обнаруживает, что буфер содержит текстовую информацию, то само помещает её в поле. Как нетрудно догадаться, кнопки «очистить поле», «в буфер» и «из буфера» делают с полем именно то, что на них написано.

Нажимаем кнопку «расставить». Содержимое текстового поля подвергается расстановке неразрывных пробелов и тегов запрета переносов NOBR — при этом не имеет значения, было ли в тексте какое-то выделение (обрабатывается всегда весь текст). Пробелы вы на глаз не воспримете — для сохранения читаемости они вставляются своими истинными символами, а не HTML-аббревиатурами.

Кнопка «убрать теги» вам скорее всего не понадобится. Она заменяет HTML-аббревиатуры неразрывных пробелов на истинные символы и убирает из текста теги NOBR. Сделано для повышения читаемости текстов, размеченных вручную.

Для работы приложению требуются библиотеки .NET 4.0 (вот чем удобны .NET языки — они предоставляют в твоё распоряжение конструктор из огромного множества деталек, и если ты чётко представляешь себе путь решения твоей типовой задачки, то буквально за полчаса можно собрать из конструктора подходящий инструмент).

Лицензионное соглашение, которое вы обязаны принять при скачивании приложения, очень простое:

Вас никто не заставляет этим пользоваться.
Я вам в этой связи ничего не гарантирую и ничего не должен.
Я от вас в этой связи ничего не хочу и не прошу.
Я перед вами в этой связи никак и ни за что не отвечаю.

Скачать программку можно здесь. Один-единственный небольшой EXE файл, можно положить куда угодно, даже без создания ярлыка, и запускать прямо оттуда.

По данной ссылке у вас скачается версия 1.4 — она с точки зрения пользователя ничем не отличается от показанной на скриншоте версии 1.3. О внесённых изменениях можно прочесть здесь.

Версия 2.0 и более поздние версии пока делаются в виде плагина для текстового редактора WriteMonkey. Следить за ними можно здесь.

ВАЖНАЯ ИНСТРУКЦИЯ для пользователей

Имеется возможность задать неразрывный пробел вручную, для этого нужно обозначить его позицию символом подчёркивания. Поэтому при использовании Markdown будьте осторожны и для шрифтовой разметки пользуйтесь звёздочками, а не подчерками!

Настоятельно рекомендуется пользоваться этой возможностью для указания неразрывных пробелов в следующих ситуациях:

  • Вокруг слова «уж» (о чём уже было сказано).
  • Между числом и относящимся к нему словом («8 кг», «глава XVII»).
  • Между фамилией и относящимся к ней именем/инициалом.