For pleasant working with emacs, one of the more important things is choosing the right font ('face'). Especially within a windowing system, and especially with Emacs 23, there are a lot of possibilities. I am thinking from the Linux/X-Window perspective here – the support for anti-aliased fonts makes things look so much nicer – as discussed before.
On X, there are different ways to set your font. One way is through the menu
Options/Set default font.../). We can also set it in our
(set-default-font "<font>"), or using
~/.Xdefaults. The latter method
makes emacs-startup quite a bit faster, but this may have become less
important in the age of emacs –daemon (Emacs 23).
In either case –
.Xdefaults – you must provide some string
describing the font. Up to Emacs-23, under X you had to use the 'barb
wire'-style X font description, which you could get from a tool like
xfontsel; the font description would then
look something like:
-*-bitstream vera sans mono-medium-r-*-*-*-120-*-*-*-*-iso8859-*
In the brave new world of Emacs 23, on X, you can also use the somewhat
Fontname-<size> format. You can get a list of the fonts installed on
your system with the
fc-list commond; if you only want to get the monospaced
$ fc-list :spacing=mono
For details, see the FontConfig user manual.
Note that installing fonts under X is rather easy as well these days; in
most cases all you need to do is put the
.ttf-files in your
directory and all will be find, although some program might require a restart.
Once you have chosen a font, you can put it in your
Emacs.font: Envy Code R-10
and don't forget to run
xrdb ~/.Xdefaults afterwards, to tell X about the changes.
All of this should happen before you start emacs.
Alternatively, you can put in your
.emacs something like:
(if (eq system-type 'windows-nt) (set-default-font "-outline-Consolas-normal-r-normal-normal-14-97-96-96-c-*-iso8859-1")) (if (eq window-system 'x) (set-default-font "Inconsolata-11"))
This will set a different default font, based on whether you are running on Windows or X. You can freely adapt it to your own desires of course.
Side note: if there is yellow in the code snippet above, that is because of hightlighting lines that are too long.
There are many fonts; which one is the 'best' for you, obviously depends on personal taste and also what you want to with it. As I use emacs for coding but also for reading e-mails and writing documents, there are some things that are important for me:
- most important: clear and crisp, even when using smaller font sizes;
- clearly separate O (capital O) and 0 (zero);
- support italic display;
- support the characters I might use (incl. accented characters and some greek ones).
Following these rules, I found the Envy Code R font to work very nicely. It's not fully Free though: Free to use but distribution prohibited. Raph Levien's Inconsolata is nice as well and truly Free; it does not provide an italic font though (at least it does not show in Emacs). Here's a list of programming fonts.
Hmmm… I wanted to write some small entry… And there is so much more to say about fonts. As often, EmacsWiki has a lot of information; for example about FontSets, which allow you to use a sort-of combination-font, which is nice if you have to work with mixed character sets (Latin, Arabic, CJK etc.).
Also, the emacs-fu entry on zooming in/out is useful in this context, even though Emacs 23 has gained something similar by default.
Also, the entry on color theming may be interesting, in this entry we only
look at the default font, but you can change fonts governing only part of
emacs as well; see
Or get information about the font at point with
C-u C-x =.