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 &prime;
Double Prime U+2033 &Prime;
Triple Prime U+2034 &tprime;
Quadruple Prime U+2057 &qprime;

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 &minus; 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 &nbsp; 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