Генерация символов, отсутствующих на стандартной клавиатуреНа этой странице описан способ генерации произвольных символов с использованием механизма макросов в программах Notepad++ и OpenOffice. Notepad++После долгих поисков еще простой, но функционально достаточной программы для обработки текстовых файлов, я остановился на Notepad++ (http://notepad-plus.sourceforge.net/). Эта программа обладает некоторыми возможностями для расширения функциональности, в том числе с помощью макросов. Для тех, кто пишет тексты, содержащие символы разных кодировок, может оказаться важной и возможность создания текстовых файлов в формате UTF-8 или Unicode-16. Такой файл, оставаясь сугубо текстовым, то есть не содержа элементов форматирования (кроме стандартных: абзац и табулятор), может одновременно использовать символы разных кодовых страниц, например, кириллицу и умлауты. Причем и те и те будут правильно отображаться. Макросы создаются с помощью команд, находящихся в меню «Macro». Процесс записи макроса носит интуитивный характер. Имя макроса и – факультативно – комбинация «горячих» клавиш отображаются в нижней части списка команд меню. Макросы записываются в файл «shortcuts.xml», который может быть отредактирован вручную. Структуру макроса лучше всего пояснить на примере. Макрос для вставки знака параграфа (номера строк добавлены здесь):
В строчке (1) можно/нужно указать имя макроса ( Допустимые номера в В строчке (2) нас интересует код символа, содержащийся в Notepad++ позволяет выбирать между разными способами кодирования, например, ANSI и UTF-8. ANSI/Windows – клаcсическое кодирование с кодовыми страницами, каждый символ кодируется одним байтом. UTF-8 использует в зависимости от символа от 1 до 4 байт. ANSI вполне достаточно для отображения знаков кириллицы на компьютере с русской версией Windows, или умлаутов – на компьютере с немецкой версией. Для того, чтобы отображать умлауты с русской ОС (без дополнительной перенастройки) или наоборот, а также для одновременного отображения символов разных алфавитов необходимо многобайтовое кодирование, то есть вставка нескольких байт вместо одного. В системе UTF-8 символы с номерами 0..127 остаются однобайтовыми, их коды совпадают с кодами ASCII. Символы, которые в ANSI оказываются во второй половине (128..255), кодируются двумя байтами. Сюда попадает кириллица и специфические символы национальных европейских алфавитов (немецкий, французский, испанский и т.д.). Подробнее про UTF-8 можно посмотреть, например: http://ru.wikipedia.org/wiki/UTF-8 (рекомендуются также статьи на эту тему на других языках). Для написания макросов вручную полезна информация о кодах UTF-8: Например, мы хотим генерировать с помощью комбинации Alt+C знак французского алфавита «ç» (ц седиль строчная). В строке (1) мы указываем отображаемое имя макроса, ставим
Нас интересует столбик UTF-8, содержащий значение «C3 A7». Первое число «C3» должно быть вставлено в команде (2), а второе число – «A7» – в команде (3). Итого получаем:
Для того, чтобы седиль и умлауты действительно отображались, в меню Format должно быть выбрано UTF-8 (или аналогичное, если вы знаете, почему). Пример файла «shortcuts.xml», содержащего команды для генерации знака параграфа, франко-русских кавычек (все три в кодировке ANSI) и специфических знаков немецкого алфавита (UTF-8). OpenOfficeOpenOffice (http://www.openoffice.org/) является бесплатной и в чем-то даже лучшей альтернативой пока еще самому распространенному редактору текстов. Для расширения функциональности в OpenOfficе может использоваться механизм макросов на основе встроенного варианта языка BASIC – StarBASIC. На практике первый макрос лучше записать с использованием команды «Tools-> Macros->Record Macro». Действия, которые необходимо записать, состоят в выборе команды «Insert->Special Character->[вставка нужного знака]». Полученный макрос будет выглядеть примерно так (номера строк добавлены здесь):
Сгенерированный макрос имеет смысл чуть изменить («Tools-> Macros-> Organize Macros-> OpenOffice.org Basic-> Edit»), а именно убрать или закоментировать строчки (14) и (15), иначе символы будут вставляться с использованием указанного там шрифта. Записывать другие макросы вручную необязательно, достаточно скопировать полученный, изменив в строчке (13) вставляемый символ. Каждый макрос должен, естественно, получить свое уникальное имя, строчка (1). После этого макросам для их вызова могут быть присвоены комбинации «горячих» клавиш либо кнопки тулбаров, в том числе созданных пользователем («Tools-> Customize-> Keyboard/Toolbars»; в диалоге Keyboard список макросов расположен в окне Category, позиция OpenOffice.org Macros; если у вас не установлен JRE и выдается соответствующее сообщение об ошибке, то несколько нажатий на кнопку OK месседж-бокса позволяет преодолеть это препятствие).
| ||||||||||||||
А. Г. Румянцев, 2009 |