Изменение регистра букв
Принесли на верстку текст, в котором полным-полно слов, набранных прописными буквами. И ладно бы только обычными прописными, а то в ряде случаев строчные буквы переключены во ‘все прописные’. (Кто-то по ходу набора знакомился с возможностями Word, и результаты этих экзерсисов попали на вёрстку.)
Вот бы все их одним махом сделать строчными, да ещё символьный стиль приложить!
Но сразу не прокатило. И GREP не помог. Пришлось обратиться к Всемирному Разуму, и Интернет не отставил без ответа.
На RUDTP в разделе про GREP (сообщения 352, 353) нашлась ссылка на скрипт, решающий похожую задачу.
Скрипт отличный, его автор Thomas Silkjær, но в моем конкретном случае потребовалось несколько изменить программу.
Вот что было сделано:
- Диалог и сообщения теперь на русском языке;
- Добавлено для наглядности выражение поиска;
- Регистр набранного текста — ‘нормальный текст’ / ‘все прописные’ / ‘малые прописные’ — тоже стал объектом поиска;
- В оригинальной версии скрипт не спрашивая заменял все буквы, отвечавшие введенному выражению поиска. В этом варианте добавлен режим работы, в котором пользователь подтверждает каждую замену;
- Теперь можно обрабатывать только выделенный текст (в исходном скрипте обрабатывалась вся статья или весь документ);
- При обработке найденных слов можно определить — заменять слово полностью, или сохранить регистр первой буквы.
Примеры использования скрипта
Вот для пробы варианты GREP-запросов, что могут быть полезными при работе с этим скриптом:
\u — поиск прописных букв;
\u{2,} — поиск слов, в которых по крайней мере первые две буквы прописные.
\u+\b — поиск слов полностью из прописных букв (в выборку попадут и однобуквенные предлоги).
\u{3,}\b — поиск слов, в которых по крайней мере первые три буквы прописные (в выборку попадут и трехбуквенные предлоги).
(Прежде чем давать скрипту новую GREP-строку для поиска, имеет смысл сперва в режиме поиска-замены убедиться, что она работает.)
Если в принесенном тексте набранный строчными буквами текст средствами программы Word переведен в прописные, то вернуть строчное написание букв помогут такие установки:
В архиве исходный скрипт search_change_case.jsx и новый вариант SearchChangeCase.jsx.
Скачать архив со скриптами
P.S. Пока возился с этим текстом и скриптом, понял, что был неправ, утверждая, что штатный инструмент GREP не может решить эту задачу. Может! И запрос поиска замены можно сохранить на будущее. В общем, похоже, этот скрипт для меня был ступенькой в освоении GREP. Оставим его в коллекции скриптов сайта, может кому-то будет проще с его помощью решать подобные задачи, не вникая в тонкости GREP.
Михаил Иванюшин
ivanyushin#yandex.ru
Изменение регистра букв
Принесли на верстку текст, в котором полным-полно слов, набранных прописными буквами.
И ладно бы только обычными прописными, а то в ряде случаев строчные буквы переключены в ‘все прописные’. (Кто-то по ходу набора знакомился с возможностями Word, и результаты этих экзерсисов попали на вёрстку.)
Вот бы все их одним махом сделать строчными, да ещё символьный стиль приложить!
Но сразу не прокатило. И GREP не помог.
Пришлось обратиться к Всемирному Разуму, и Интернет не отставил без ответа.
На RUDTP в разделе про GREP (http://forum.rudtp.ru/showthread.php?t=28482&page=18
сообщения 352, 353) нашлась ссылка на скрипт, решающий похожую задачу.
http://indesigning.net/user/files/scripts/search_change_case.jsx
Скрипт отличный, его автор Thomas Silkjær, но в моем конкретном случае потребовалось несколько изменить программу.
Вот что было сделано:
— Диалог и сообщения теперь на русском языке;
— Добавлено для наглядности выражение поиска;
— Регистр набранного текста — ‘нормальный текст’ / ‘все прописные’ / ‘малые прописные’ — тоже стал объектом поиска;
— В оригинальной версии скрипт не спрашивая заменял все буквы, отвечавшие введенному выражению поиска. В этом варианте добавлен режим работы, в котором пользователь подтверждает каждую замену;
— Теперь можно обрабатывать только выделенный текст (в исходном скрипте обрабатывалась вся статья или весь документ);
— При обработке найденных слов можно определить — заменять слово полностью, или сохранить регистр первой буквы.
Примеры использования скрипта
Вот для пробы варианты GREP-запросов, что могут быть полезными при работе с этим скриптом:
\u — поиск прописных букв;
\u{2,} — поиск слов, в которых по крайней мере первые две буквы прописные.
\u+\b — поиск слов полностью из прописных букв (в выборку попадут и однобуквенные предлоги).
\u{3,}\b — поиск слов, в которых по крайней мере первые три буквы прописные (в выборку попадут и трехбуквенные предлоги).
(Прежде чем давать скрипту новую GREP-строку для поиска, имеет смысл сперва в режиме поиска-замены убедиться, что она работает.)
Если в принесенном тексте набранный строчными буквами текст средствами программы Word переведен в прописные, то вернуть строчное написание букв помогут такие установки:
В архиве исходный скрипт search_change_case.jsx и новый вариант SearchChangeCase.jsx.
Михаил Иванюшин
ivanyushin#yandex.ru
P.S. Пока возился с этим текстом и скриптом, понял, что был неправ, утверждая, что штатный инструмент GREP не может решить эту задачу. Может! И запрос поиска замены можно сохранить на будущее. В общем, похоже, этот скрипт для меня был ступенькой в освоении GREP. Оставим его в коллекции скриптов сайта, может кому-то будет проще с его помощью решать подобные задачи, не вникая в тонкости GREP.
спасибо, попробуем!
Скажите, пжл, а если слово стоит в начале абзаца. Эта проблема решается скриптом или он ВСЕ переводит в строчные?
Скрипт переводит корректно те слова, что отвечают шаблону поиска, не важно где — в середине текста или в начале абзаца.
Через некоторое время, надеюсь, сегодня, тут будет обновленный скрипт.
Там нашлось место для некоторых улучшений. 🙂
Раскройте же секрет GREP-выражения которое способно делать этот фокус!
поддерживаю вопрос.
Михаил, будьте добры, поделитесь!
В частности интересует именно часть «Заменить на», с частью «Найти текст» все понятно.
Господа, если кому-то поможет, то изменить регистр можно при помощи Word. Волшебные Shift+F3 спасут.