X11 has a useful feature called the compose key. After pressing the
compose key, you can type a sequence of keys on the keyboard to get
various Unicode characters. For example, Compose o c
generates a
copyright symbol (©). This allows for typing a lot of extended characters
with a US keyboard map (without the need to have dead keys or other non-US
layout features).
There are, however, a lot of key combinations. See the X11R7.7 documentation for its full list. So this page focuses on the patterns in the key combinations and restricts itself to the ones I use more often.
Note: I use the XKB configuration option compose:prsc
on my systems to
map my Print Screen key to the compose key. How I do that varies. On
some systems, I have Option "XkbOptions" "compose:prsc"
in the
InputClass section for my keyboard in an xorg.conf
file. On other
systems, where it isn’t as easy to modify the system config files, I run
setxkbmap -option compose:prsc
automatically when I log in.
You can see what other keys are available to map as a compose key with:
grep "compose:" /usr/share/X11/xkb/rules/base.lst
Anyway, on to the list.
§ Quote Marks
The less-than and greater-than keys (or left and right angle brackets, if
you prefer) can be combined with single and double quotes to make curly
left and right quotes. They can be typed in either order; both < '
and
' <
result in a left single quote mark.
A comma can be used instead of an angle bracket to produce the low version of the quote symbol, for languages that use it to open quotes.
< |
> |
, |
|
---|---|---|---|
' |
‘ | ’ | ‚ |
" |
“ | ” | „ |
Guillemets are the result of doubling angle brackets. Use a leading period for single guillemets.
Combination | Result | Unicode Name | |
---|---|---|---|
< < |
« | U+00AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK |
> > |
» | U+00BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK |
. < |
‹ | U+2039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK |
. > |
› | U+203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK |
§ Accented Characters
Most letters can be combined with another character to add an accent. The
letter and accent character can be typed in either order; both ' a
and
a '
will give “á”. Typing the letter last is preferred, since there are
some multi-accent combinations that only make sense if you type all of the
accents first.
The standard accent characters are:
Character | Accent Type | Example | Note |
---|---|---|---|
' (single quote) |
acute accent | ' a → á |
|
` (backtick) |
grave accent | ` a → à |
|
^ (caret) |
circumflex | ^ a → â |
> (greater than sign) also works:> a → â |
~ (tilde) |
tilde | ~ a → ã |
|
" (double quote) |
diaeresis; umlaut | " a → ä |
|
* (asterisk) |
ring | * a → å |
Lowercase o also works, but only if it precedes the letter to be modified:o a → å |
, (comma) |
cedilla | , c → ç |
Also works as an ogonek:, a → ą |
/ (forward slash) |
slash | / o → ø |
|
- (dash) |
macron | - a → ā |
_ (underscore) also works:_ a → ā |
. (period) |
dot | . e → ė |
Also removes the dot from a lowercase i:. i → ı |
In similar ways, the <
(less than symbol) combines as a caron
(e.g. < e
→ ě); -
(dash) combines as a stroke (e.g. - d
→ đ); and
=
(equals sign) combines as a double acute accent (e.g. = o
→ ő). I
don’t really use those, though.
There are some patterns for characters with multiple additions (e.g. * ' A
→ Ǻ, LATIN CAPITAL LETTER A WITH RING ABOVE AND
ACUTE), but (1) I don’t use them often enough to need to remember
the key combinations, and (2) many of them rely on keyboard layouts that
can directly generate precomposed characters with one of the two
modifiers.
§ Prime Symbols
I use these with some regularity, but they’re unfortunately not available as compose character combinations. In some media, the HTML codes suffice. In others, I can sometimes type the codepoint in hex.
Symbol | Character | Codepoint | HTML |
---|---|---|---|
(Single) Prime | ′ | U+2032 | ′ |
Double Prime | ″ | U+2033 | ″ |
Triple Prime | ‴ | U+2034 | ‴ |
Quadruple Prime | ⁗ | U+2057 | ⁗ |
In many programs, I can press Ctrl-Shift-U
, followed by the Unicode
codepoint, followed by the space or enter key. So I can get a prime
symbol with Ctrl-Shift-U 2 0 3 2 Enter
. That works for my terminal
program and Firefox, at least.
In Emacs, I have to use C-x 8 Ret 2 0 3 2 Ret
(et al.).
Regardless, I have to actually remember the codepoint, which is less convenient than the mnemonics afforded by compose key combinations.
§ Fractions
Many fractions can be created by typing two digits in sequence. The first digit will be the numerator and the second will be the denominator.
All denominators from two to ten can be used with a numerator of one:
1 2
→ ½1 3
→ ⅓1 4
→ ¼1 5
→ ⅕1 6
→ ⅙1 7
→ ⅐1 8
→ ⅛1 9
→ ⅑1 1 0
→ ⅒
For non-unit numerators, all multiples of ⅙ and ⅛ are available, in their simplified forms (which means all multiples of ⅓ and ¼ are also available).
Multiples of ⅙:
1 6
→ ⅙1 3
→ ⅓1 2
→ ½2 3
→ ⅔5 6
→ ⅚
Multiples of ⅛:
1 8
→ ⅛1 4
→ ¼3 8
→ ⅜1 2
→ ½5 8
→ ⅝3 4
→ ¾7 8
→ ⅞
And, weirdly, 0 3
composes to ↉.
§ Subscripts and Superscripts
All of the digits, as well as the characters plus sign (+), equals sign
(=), left parenthesis, and right parenthesis can be superscripted or
subscripted by prefixing them with a caret or underscore, respectively.
The letters i and n can be superscripted with the sequences ^ _ i
and
^ _ n
, respectively.
For example:
^ 2
→ ²_ 8
→ ₈_ )
→ ₎^ _ i
→ ⁱ
§ Math Symbols
A number of math symbols are available. Unfortunately, the Unicode
character U+2212 MINUS SIGN (−) is not
available, even though it’s a better choice than the plain dash in
mathematical contexts. The same techniques described in “Prime
Symbols” above can be used to insert a minus sign by its
codepoint. You can also use −
in HTML.
Most math symbol combinations can be typed in either order, but the inclusive inequalities (≤ and ≥) need the equals sign to come after the less-than or greater-than character..
Combination | Result | Unicode Name | |
---|---|---|---|
x x |
× | U+00D7 | MULTIPLICATION SIGN |
: - - :
|
÷ | U+00F7 | DIVISION SIGN |
- , , -
|
¬ | U+00AC | NOT SIGN |
+ - - +
|
± | U+00B1 | PLUS-MINUS SIGN |
/ = = /
|
≠ | U+2260 | NOT EQUAL TO |
< = |
≤ | U+2264 | LESS-THAN OR EQUAL TO |
> = |
≥ | U+2265 | GREATER-THAN OR EQUAL TO |
§ Circled Numbers
Any one- or two digit number can be put in a circle by surrounding it with parentheses. The same works for single upper- and lowercase letters.
For example:
( 1 )
→ ①( 4 2 )
→ ㊷( S )
→ Ⓢ
Note: For the copyright and registered copyright symbols, use o c
and
o r
(or their variants; see “Other Characters”
below). The simple circled letters are different codepoints.
§ Currency
Key combinations for currency symbols often cover every ordering and capitalization combination. They include:
Combination | Result | Unicode Name | |
---|---|---|---|
C E |
₠ | U+20A0 | EURO-CURRENCY SIGN |
C = = C c = = c E = = E e = = e
|
€ | U+20AC | EURO SIGN |
C | | C c | | c
|
¢ | U+00A2 | CENT SIGN |
L - - L l - - l
|
£ | U+00A3 | POUND SIGN |
Y = = Y y = = y Y - - Y y - - y
|
¥ | U+00A5 | YEN SIGN |
O X O x o X o x X O X o x O x o
|
¤ | U+00A4 | CURRENCY SIGN |
§ Whitespace
Two space characters turn into a nonbreaking space. (Or you can use in HTML.)
A space and a period turn into U+2008 PUNCTUATION SPACE. The Unicode specification says this is a “space equal to narrow punctuation of a font”, or about the width of a period.
Using space characters other than the normal space is, of course, risky, since many programs won’t indicate that the alternate characters are any different from the normal ones.
§ Other Characters
Combination | Result | Unicode Name | Note | |
---|---|---|---|---|
- - - |
— | U+2014 | EM DASH | |
- - . |
– | U+2013 | EN DASH | |
. . |
… | U+2026 | HORIZONTAL ELLIPSIS | |
- > |
→ | U+2192 | RIGHTWARDS ARROW | |
< - |
← | U+2190 | LEFTWARDS ARROW | |
o o 0 * * 0
|
° | U+00B0 | DEGREE SIGN | I find o o the easiest to type. |
. ^ ^ . . -
|
· | U+00B7 | MIDDLE DOT | You can think of this as either a raised dot (combining a period with a caret) or a smaller bullet (using a dash with a period instead of the bullet combination's equals sign with a period). |
. = |
• | U+2022 | BULLET | |
? ? |
¿ | U+00BF | INVERTED QUESTION MARK | |
! ? |
‽ | U+203D | INTERROBANG | |
? ! |
⸘ | U+2E18 | INVERTED INTERROBANG | |
s o o s S O O S
|
§ | U+00A7 | SECTION SIGN | Either order; upper- or lowercase |
P P |
¶ | U+00B6 | PILCROW SIGN | |
t m T M T m t M |
™ | U+2122 | TRADE MARK SIGN | Any mix of capitalization |
s m S M S m s M |
℠ | U+2120 | SERVICE MARK | Any mix of capitalization |
o c O C O c o C |
© | U+00A9 | COPYRIGHT SIGN |
Any mix of capitalization. C O and C o also
work, but combinations starting with lowercase c don't
(they give different characters). So I prefer to always start with the
o .
|
o r O R O r o R |
® | U+00AE | REGISTERED SIGN |
Any mix of capitalization. R O also works, but none of the
other capitalization mixes make characters with the "r" first. So, just
as with the copyright symbol, I prefer to always start with the
o .
|
T H |
Þ | U+00DE | LATIN CAPITAL LETTER THORN | |
t h |
þ | U+00FE | LATIN SMALL LETTER THORN | |
D H |
Ð | U+00D0 | LATIN CAPITAL LETTER ETH | |
d h |
ð | U+00F0 | LATIN SMALL LETTER ETH | |
S S |
ẞ | U+1E9E | LATIN CAPITAL LETTER SHARP S | |
s s |
ß | U+00DF | LATIN SMALL LETTER SHARP S |