C.7 Font Specification Options
By default, Emacs displays text in a twelve point Courier font (when
using X). You can specify a different font on your command line
through the option ‘-fn name’ (or ‘--font’, which is
an alias for ‘-fn’).
- ‘-fn name’
- ‘--font=name’
- Use font name as the default font.
Under X, each font has a long name which consists of fourteen words
or numbers, separated by dashes. Some fonts also have shorter
nicknames. For instance, ‘9x15’ is such a nickname. This font
makes each character nine pixels wide and fifteen pixels high. You
can use either kind of name. Case is insignificant in both kinds.
You can use wildcard patterns for the font name; then Emacs lets X
choose one of the fonts that match the pattern. The wildcard
character ‘*’ matches any sequence of characters (including none)
and ‘?’ matches any single character. However, matching is
implementation-dependent, and can be inaccurate when wildcards match
dashes in a long name. For reliable results, supply all 14 dashes and
use wildcards only within a field. Here is an example, which happens
to specify the font whose nickname is ‘6x13’:
emacs -fn \
"-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" &
You can also specify the font in your .Xdefaults file:
emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
Note that if you use a wildcard pattern on the command line, you
need to enclose it in single or double quotes, to prevent the shell
from accidentally expanding it into a list of file names. On the
other hand, you should not quote the name in the .Xdefaults
file.
The default font used by Emacs (under X) is:
-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
A long font name has the following form:
-maker-family-weight-slant-widthtype-style...
...-pixels-height-horiz-vert-spacing-width-registry-encoding
- maker
- This is the name of the font manufacturer.
- family
- This is the name of the font family—for example, ‘courier’.
- weight
- This is normally ‘bold’, ‘medium’ or ‘light’. Other
words may appear here in some font names.
- slant
- This is ‘r’ (roman), ‘i’ (italic), ‘o’ (oblique),
‘ri’ (reverse italic), or ‘ot’ (other).
- widthtype
- This is normally ‘condensed’, ‘extended’, ‘semicondensed’
or ‘normal’. Other words may appear here in some font names.
- style
- This is an optional additional style name. Usually it is empty—most
long font names have two hyphens in a row at this point.
- pixels
- This is the font height, in pixels.
- height
- This is the font height on the screen, measured in tenths of a printer's
point—approximately 1/720 of an inch. In other words, it is the point
size of the font, times ten. For a given vertical resolution,
height and pixels are proportional; therefore, it is common
to specify just one of them and use ‘*’ for the other.
- horiz
- This is the horizontal resolution, in pixels per inch, of the screen for
which the font is intended.
- vert
- This is the vertical resolution, in pixels per inch, of the screen for
which the font is intended. Normally the resolution of the fonts on
your system is the right value for your screen; therefore, you normally
specify ‘*’ for this and horiz.
- spacing
- This is ‘m’ (monospace), ‘p’ (proportional) or ‘c’
(character cell).
- width
- This is the average character width, in pixels, multiplied by ten.
- registry
- encoding
- These together make up the X font character set that the font depicts.
(X font character sets are not the same as Emacs charsets, but they
are solutions for the same problem.) You can use the
xfontsel program to check which choices you have. However,
normally you should use ‘iso8859’ for registry and ‘1’
for encoding.
You will probably want to use a fixed-width default font—that is,
a font in which all characters have the same width. Any font with
‘m’ or ‘c’ in the spacing field of the long name is a
fixed-width font. Here's how to use the xlsfonts program to
list all the fixed-width fonts available on your system:
xlsfonts -fn '*x*' | egrep "^[0-9]+x[0-9]+"
xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
To see what a particular font looks like, use the xfd command.
For example:
xfd -fn 6x13
displays the entire font ‘6x13’.
While running Emacs, you can set the font of the current frame
(see Frame Parameters) or for a specific kind of text
(see Faces).