Mercurial > emacs
changeset 99828:c6abe1a3c06c
(Font X): Document Fontconfig and GTK font specification formats.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 23 Nov 2008 03:24:49 +0000 |
parents | 4f98624cce02 |
children | 46834e8b7d0f |
files | doc/emacs/cmdargs.texi |
diffstat | 1 files changed, 128 insertions(+), 64 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/emacs/cmdargs.texi Sun Nov 23 03:24:37 2008 +0000 +++ b/doc/emacs/cmdargs.texi Sun Nov 23 03:24:49 2008 +0000 @@ -779,117 +779,182 @@ @appendixsec Font Specification Options @cindex font name (X Window System) - 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 @samp{-fn @var{name}} (or @samp{--font}, which is -an alias for @samp{-fn}). + By default, Emacs displays text in X using a twelve point monospace +font. You can specify a different font using the command line option +@samp{-fn @var{font}} (or @samp{--font}, which is an alias for +@samp{-fn}). @table @samp -@item -fn @var{name} +@item -fn @var{font} @opindex -fn -@itemx --font=@var{name} +@itemx --font=@var{font} @opindex --font @cindex specify default font from the command line -Use font @var{name} as the default font. +Use @var{font} as the default font. @end table - 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, @samp{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 @samp{*} matches any sequence of characters (including none) -and @samp{?} 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 @samp{6x13}: +@cindex X defaults file +@cindex X resources file + + You can also specify the font using your X resources file (usually a +file named @file{.Xdefaults} or @file{.Xresources} in your home +directory), by adding a line like this: @smallexample -emacs -fn \ - "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" & +emacs.font: @samp{font} +@end smallexample + +@noindent +You must restart X, or use the @command{xrdb} command, for the X +resources file to take effect. @xref{Resources}. + +@cindex fontconfig + There are four different ways to express a ``font name''. The first +is to use the @dfn{Fontconfig format}, which has the following form: + +@smallexample +@var{fontname}[-@var{fontsize}][:@var{property1}][:@var{property2}]... @end smallexample @noindent -You can also specify the font in your @file{.Xdefaults} file: +Within this format, any of the elements in braces may be omitted. +Here, @var{fontname} is the ``family name'' of the font, such as +@samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the ``point +size'' of the font (one ``printer's point'' is about 1/72 of an inch); +and the @var{property} entries specify font settings such as +@samp{bold}, @samp{italic}, @samp{weight=bold}, @samp{slant=oblique}, +and so forth. Here are some examples of specifying fonts using the +Fontconfig format: @smallexample -emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 +Monospace +Monospace-12 +Monospace-12:bold +DejaVu Sans Mono:bold:italic +Monospace-12:weight=bold:slant=italic +@end smallexample + +@noindent +When passing a font specification to Emacs on the command line, you +may need to ``quote'' it, by enclosing it in quotation marks, if it +contains characters that the shell treats specially (e.g. spaces). +For example: + +@smallexample +emacs -fn "DejaVu Sans Mono-12" @end smallexample - 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 @file{.Xdefaults} -file. +@noindent +When specifying a font in your X resources file, you should not quote +it. + + The second way to specify a font is to use the @dfn{GTK format}. +This has the syntax -The default font used by Emacs (under X) is: +@smallexample +@var{fontname} [@var{properties}] [@var{fontsize}] +@end smallexample + +where @var{fontname} is the family name, @var{properties} is a list of +font properties separated by spaces, and @var{fontsize} is the point +size. For example: @smallexample --adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1 +Monospace 12 +Monospace Bold Italic 12 @end smallexample - A long font name has the following form: +@cindex XLFD +@cindex X Logical Font Description + The third way to specify a font is to use an @dfn{XLFD} (@dfn{X +Logical Font Description}), which is the traditional method for +specifying fonts under X. Each XLFD consists of fourteen words or +numbers, separated by dashes, like this: + +@smallexample +-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 +@end smallexample + +@noindent +A wildcard character (@samp{*}) in an XLFD matches any sequence of +characters (including none), and @samp{?} 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. +Case is insignificant in an XLFD. The syntax for an XLFD is as +follows: @smallexample -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{} @dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding} @end smallexample +@noindent +The entries have the following meanings: + @table @var @item maker -This is the name of the font manufacturer. +The name of the font manufacturer. @item family -This is the name of the font family---for example, @samp{courier}. +The name of the font family (e.g. @samp{courier}). @item weight -This is normally @samp{bold}, @samp{medium} or @samp{light}. Other -words may appear here in some font names. +The font weight---normally either @samp{bold}, @samp{medium} or +@samp{light}. Some font names support other values. @item slant -This is @samp{r} (roman), @samp{i} (italic), @samp{o} (oblique), -@samp{ri} (reverse italic), or @samp{ot} (other). +The font slant---normally @samp{r} (roman), @samp{i} (italic), +@samp{o} (oblique), @samp{ri} (reverse italic), or @samp{ot} (other). +Some font names support other values. @item widthtype -This is normally @samp{condensed}, @samp{extended}, @samp{semicondensed} -or @samp{normal}. Other words may appear here in some font names. +The font width---normally @samp{condensed}, @samp{extended}, +@samp{semicondensed} or @samp{normal} (some font names support other +values). @item 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. +An optional additional style name. Usually it is empty---most long +font names have two hyphens in a row at this point. @item pixels -This is the font height, in pixels. +The font height, in pixels. @item 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, -@var{height} and @var{pixels} are proportional; therefore, it is common -to specify just one of them and use @samp{*} for the other. +The font height on the screen, measured in tenths of a printer's +point. This is the point size of the font, times ten. For a given +vertical resolution, @var{height} and @var{pixels} are proportional; +therefore, it is common to specify just one of them and use @samp{*} +for the other. @item horiz -This is the horizontal resolution, in pixels per inch, of the screen for -which the font is intended. +The horizontal resolution, in pixels per inch, of the screen for which +the font is intended. @item 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 +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 @samp{*} for this and @var{horiz}. @item spacing This is @samp{m} (monospace), @samp{p} (proportional) or @samp{c} (character cell). @item width -This is the average character width, in pixels, multiplied by ten. +The average character width, in pixels, multiplied by ten. @item registry @itemx 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 -@command{xfontsel} program to check which choices you have. However, -normally you should use @samp{iso8859} for @var{registry} and @samp{1} -for @var{encoding}. +The X font character set that the font depicts. (X font character +sets are not the same as Emacs character sets, but they are similar.) +You can use the @command{xfontsel} program to check which choices you +have. Normally you should use @samp{iso8859} for @var{registry} and +@samp{1} for @var{encoding}. @end table + Some fonts have shorter nicknames, which you can use instead of a +normal font specification. For instance, + +@smallexample +-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 +@end smallexample + +@noindent +is equivalent to @samp{6x13}. + @cindex listing system fonts 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 -@samp{m} or @samp{c} in the @var{spacing} field of the long name is a +@samp{m} or @samp{c} in the @var{spacing} field of the XLFD is a fixed-width font. Here's how to use the @command{xlsfonts} program to list all the fixed-width fonts available on your system: @@ -910,9 +975,8 @@ @noindent displays the entire font @samp{6x13}. - While running Emacs, you can set the font of the current frame -(@pxref{Frame Parameters}) or for a specific kind of text -(@pxref{Faces}). + While running Emacs, you can set the font of a specific kind of text +(@pxref{Faces}), or of a particular frame (@pxref{Frame Parameters}). @node Colors @appendixsec Window Color Options