个人工具

UbuntuHelp:ComposeKey

来自Ubuntu中文

Wikibot讨论 | 贡献2009年5月12日 (二) 16:16的版本

跳转至: 导航, 搜索

Introduction

An alternative to the Gnome CharacterMap application is to use Compose Key sequences. This is much faster for special characters which are often used once the required sequences have been learned. The instructions below have been tested with Ubuntu 8.10 and Gnome but should also be valid for other versions.

First check your keyboard layout

Ubuntu with Gnome desktop

From the menu bar select System -> Preferences -> Keyboard: Layouts [Other Options].

  • Click on the triangle beside Compose key position to display a list of options; if no box is ticked then the Shift+AltGr (Right Alt Key) is the Compose key (also called the Multi_Key in Xwindow documentation).
  • Click on the triangle beside Third level choosers. If no box is ticked then AltGr should be the 'Third level chooser'. If there is a box labeled "Press Right Alt key to chose 3rd level, Shift+Right Alt key is Multi_Key" then that is the default assumed here.

If any other box is ticked then remember to use that key rather than AltGr and Shift+AltGr for the instructions on this page.

Xubuntu with XFCE

For versions up to 8.04, a compose key can be set by editing /etc/X11/xorg.conf Find a section !InputDevice with identifier Generic Keyboard and add the following line in that section: Option "!XkbOptions" "compose:rwin" This will set the right Windows key as the compose key. If you would rather use AltGr, replace rwin by ralt. For Xubuntu 8.10, edit /etc/default/console-setup You will see a line containing the keyword XKBOPTIONS. Edit the line to read: XKBOPTIONS="compose:rwin" (again, replace rwin by ralt if you prefer AltGr as the compose key.) These files need to be edited as root. Be careful. A restart of the Xserver (logout) will be required to effect the change.

Keys

There are three methods of entering characters not displayed on keycaps by using combinations of keys. To discover which characters are mapped to a key combination it is best to experiment by opening a text editor and typing. The examples below refer to a UK English keyboard, other keyboards and language choices will produce different results.

Third level chooser

Holding down the AltGr key and pressing another key will produce a third level character.

keys:              +AltGr
`1234567890-      |¹²³€½¾{[]}\
qwertyuiop        @ł€¶ŧ←↓→øþ
asdfghjkl         æßðđŋħjĸł
\zxcvbnm .        |«»¢“”nµ ·

Compose key

Keying the combination Shift+AltGr, releasing these keys, then entering two other keys will produce a special character. Many of these will be the reasonable result of overtyping the character keys, eg.

Shift+AltGr  a  ~   ã  (ã)
Shift+AltGr  o  /   ø  (ø)

There are also dead key sequences in which two keys, a 'dead' accent key then a letter key are used to produce an accented character.

Compose key sequences

To discover all the Compose key combinations possible and, if required set your own preferred combinations:

Gnome

The compose key sequences used by Gnome are derived from the X compose tables of XFree86 version 4.0 with further modifications to provide a Gnome standard for all locales. They are hard coded into the program in source file gtk+-2.10.7/gtk/gtkimcontextsimple.c

XIM

The Gnome hard coding can be overruled in favour of the original Xwindow Input Method (XIM) by setting the environment variable GTK_IM_MODULE. This can be set in the /etc/environment file, but if the machine has more than one user then it is best set from the home directory on a per user basis by modifying ~/.gnomerc or ~/.Xsession export GTK_IM_MODULE="xim" Look at /usr/share/X11/locale/compose.dir to find the appropriate compose table for your locale, eg:

#	This file contains compose table file names.  The first word is the
#	compose table file name and the second word is the full locale
#	name.
#...
en_US.UTF-8/Compose		en_GB.UTF-8

then looking at /usr/share/X11/locale/en_US.UTF-8/Compose

# UTF-8 (Unicode) compose sequence
#...
<Multi_key> <p> <exclam>          : "¶"   paragraph # PILCROW SIGN
<Multi_key> <P> <exclam>          : "¶"   paragraph # PILCROW SIGN
<Multi_key> <plus> <minus>        : "±"   plusminus # PLUS-MINUS SIGN
<Multi_key> <question> <question> : "¿"   questiondown # INVERTED QUESTION MARK
<Multi_key> <minus> <d>           : "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE

<Multi_Key> is the Compose (Shift+AltGr) key To create your own set of compose keys copy the file /usr/share/X11/locale/en_US.UTF-8/Compose (or if you prefer the equivalent file for your locale) to your home directory as .XCompose # cp /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose and edit this file.

Unicode composition

Another means to enter non-keycap characters is to enter them as Unicode character number. key Shift+Ctrl+U then enter the hexadecimal (0123456789abcde) Unicode character code point. Shift+Ctrl+U will display an underlined u, release the keys, then type the unicode value (four hex digits), then space bar.

Shift+Ctrl+U 00f4   ô   (ô)
Shift+Ctrl+U 2203   ∃  (∃)

References

[1] the authority for unicode matters [2] (en française)