6 мая 2009 г.

Ввод специальных символов или «типографские раскладки»

Наверняка многие пользователи хотели бы вводить различные специальные символы вроде кавычек-ёлочек («») или длинного тире (—) простыми сочетаниями клавиш, но не знают как. И остается им облизываться на раскладку Бирмана, для которой в Windows есть удобный установочный пакет. Либо копаться по форумам и выполнять загадочные действия: что-то скачивать, что-то где-то править в здоровенном xml-файле. А то и вовсе использовать старую добрую таблицу символов.

Однако, всё что нужно, уже может быть в вашем дистрибутиве!

Дело в том, что существуют специальные клавиатурные раскладки, позволяющие вводить спецсимволы при помощи нажатия особой клавиши одновременно с какой-то из обычных клавиш клавиатуры. Например, после нажатия правого Alt и > получается знак ». Всё просто и легко запоминается (» похожа на >). Такие раскладки и называются типографскими.

К сожалению, я сейчас использую только Ubuntu 9.04 и не могу сказать, верно ли сказанное в других дистрибутивах.

В старых версиях для того, чтобы использовать все возможности и удобства расширенной раскладки, мне пришлось (по совету с какого-то сайта) править несколько файлов со списками раскладок, что неудобно, да и неправильно, так как эти файлы принадлежали пакету xkb-data.

После установки Ubuntu 9.04, я хотел было уже опять искать в сети способ включить типографскую раскладку, но тут случайно обнаружил, что всё уже есть в самой системе. Достаточно лишь зайти в настройки клавиатуры («Система» → «Параметры» → «Клавиатура» → вкладка «Раскладки» → «Параметры раскладки») и включить соответствующую галочку.

Настройка раскладки

Теперь пару слов о том, как же теперь эти символы вводить. В качестве «волшебной клавиши» для ввода по умолчанию используется правый Alt, но это можно изменить в том же окне в разделе «Key to choose 3rd level».

Раскладка, конечно не такая богатая, как некоторые другие, но всё, что нужно позволяет легко вводить. Вот несколько полезных сочетаний:

Alt-> »
Alt-< «
Alt-- —
Alt-. …

Остальные можно посмотреть, распечатав раскладку в том же окне настроек клавиатуры.
Русская раскладка со спецсимволами

Несколько слов для тех, кто не хочет или не может пользоваться гномовским клавиатурным настройщиком. Активировать расширенные раскладки можно командой setxbmap. Пример того, как это сделать, я подсмотрел на сайте Сергея Столярова.
setxkbmap -option grp:caps_toggle -option grp_led:caps -layout us+typo,ru:2+typo

Эта команда задаёт способ переключения (grp:capstoggle, т.е. клавишей Caps Lock), индикатор, используемый для отображения раскладки (grpled:caps, т.е. индикатор Caps Lock), а также непосредственно раскладки (us+typo и ru:2+typo). Как можно заметить, слой с дополнительными символами добавляется к обеим раскладкам (us и ru).

Если вы используете другой способ настройки XKB, то вы должны там заменить us на us+typo и ru на ru:2+typo.

Upd. Я забыл упомянуть (спасибо пользователю konkere за подсказку) о другом, даже более мощном штатном способе ввода спецсимволов — клавише Compose. О нём довольно много написано в интернете, поэтому отсылаю читателя к википедии и гуглу. Скажу лишь о некоторых недостатках этого способа.

Чтобы ввести сочетание Compose + > + > нужно переключаться в английскую раскладку, так как в русской нет символа >. (Имеется в виду обычная русская раскладка, которую можно видеть на клавиатуре. Расширенная русская позволяет вводить как < и > — Alt-Shift-б и Alt-Shift-б — так и квадратные и круглые скобки без дополнительных переключений.) Можно, конечно, использовать ~/.XCompose, что было бы очень удобно, так как позволяет создавать свои раскладки, но в гномовских приложениях используется другой метод ввода и файл с настройками просто проигнорируется.

Upd. 2 Ещё рекомендую включить опцию «Unicode additions».

Включение Unicode additions

Тогда можно будет указанным выше способом вводить при помощи цифровой клавиатуры стрелки (←→⇐⇒) и некоторые математические операторы (⋅×÷).

Upd. 3 Пользователь pluton натолкнул меня на мысль об еще одном способе ввода символов — по их коду в Unicode. Для этого нужно нажать Ctrl-Shift-U. Появится маленькая подчеркнутая буква u, после которой нужно ввести 16-ричный код символа и нажать пробел. К сожалению, использовать этот способ для ввода текстов в Firefox не получится, так как там это сочетание клавиш, по-видимому, уже используется для отображения исходного кода посещённой страницы. Но в текстовых редакторах (например в gedit) этот способ может пригодиться (если, конечно, вы помните все коды Unicode ;)).

Читать дальше…