20070710

Ввод символов с акцентами в Linux

В Linux (точнее в X Window System) есть потрясающее средство для ввода символов отсутствующих в установленной раскладке клавиатуры. Это средство называется клавиша Compose. С помощью неё можно вводить практически все варианты символов с акцентами, а также разные специальные символы.

Включить клавишу Compose можно там же, где Вы настраиваете клавиатуру, то есть или в /etc/X11/xorg.conf, или в настройках клавиатуры рабочего стола. Я удовлетворяюсь настройками клавиатуры Gnome. Там я «повесил» функцию Compose на клавишу Menu:



Включить клавишу Compose можно также используя setxkbmap. Следующая команда включает две раскладки (us и ru-winkeys), переключаемые по Alt+Shift, с клавишей Compose на месте правого Alt:
$ setxkbmap -layout us,ru -variant ',winkeys' -option 'grp:alt_shift_toggle,grp_led:scroll,compose:ralt'


После этого, стало возможным набирать много интересных символов, нажимая вначале клавишу Compose, а потом набирая ту или короткую иную последовательность. Например,

Compose + O + C даёт © (символ авторского права),
Compose + O + R даёт ®,
Compose + = + e даёт (знак евро),
Copmose + = + y даёт ¥ (знак йены),
Compose + - + - + - даёт (тире, знак препинания),
Compose + - + - + . даёт –­ (короткое тире, разделитель диапазонов и фамилий)
Compose + < + < даёт « (левую кавычку-ёлочку),
Compose + > + > даёт » (правую кавычку-ёлочку),
Compose + " + , даёт (левую кавычку-лапку),
Compose + " + < даёт (правую кавычку-лапку),
Compose + пробел + пробел даёт неразрывный пробел.

С клавишей Compose очень легко набирать акценты и особые буквы европейских алфавитов, которые отсутствуют в моей обычной раскладке клавиатуры, но иногда нужны:
Compose + ' + a = á,
Compose + ` + a = à,
Compose + ^ + a = â,
Compose + " + a = ä,
Compose + ~ + a = ã,
Compose + * + a = å,
Compose + a + e = æ,
Copmose + s + s = ß.

Понятно, что вместо буквы «a» в примерах можно подставлять другие буквы. Любопытствующие могут взглянуть полный список Compose-последовательностей.

Если же вы пользуетесь преимущестенно GTK-приложениями, то установив метод ввода Latin Plus, вы заметно расширите возможности этой волшебной клавиши. Вам станет доступен весь греческий алфавит, цифры в виде верхних и нижних индексов, знаки математических отношений, всевозможные стрелки и другие полезные символы... ♥!
Дополнение: всё оказалось гораздо проще, и использовать Latin Plus не обязательно, см. мою заметку про то, как настроить свои Compose-последовательности.


Конечно, это не сравнится по возможностям с LaTeX, но зато эти символы можно использовать где угодно: в письмах, при наборе текста в веб, в простом тексте, ведь они входят во все стандартные unicode-шрифты.

Дополнение: в настоящий момент Compose-последовательности GTK-приложений отличаются от Compose-последовательностей, предоставляемых X.org. Поэтому в разных приложениях возможно немного разное поведение клавиши Compose. В качестве решения проблемы переключить используемый метод ввода в GTK на обычный иксовый X Input Method, см. пост про настройку Compose.

Дополнение 2: пользователи Windows могут насладиться удобством Compose–последовательнстей, установив программку AllChars.

Дополнение 3: существует лёгкий способ задавать и настраивать произвольные Compose-последовательности, редактируя файл ~/.XCompose.