How do I change Emacs' default font size and font type?

EmacsEmacs23

Emacs Problem Overview


I am using Emacs 23.3. How can I change the font size and font type?

Emacs Solutions


Solution 1 - Emacs

You can also do the following in your .emacs file.

Emacs 23.1

(set-frame-font "Inconsolata 12" nil t)

Older versions of Emacs

(set-default-font "Inconsolata 12" nil t)

Solution 2 - Emacs

You can use the menu bar. Go to Options->Set Default Font....

After you choose a font, don't forget to press Options->Save Options—otherwise your new font will not be saved after you close Emacs.

Solution 3 - Emacs

Get current font by: M-x describe-font

(Hit Enter if you see Font name (default current choice for ASCII chars): )

This will show a list of attributes which can be set in init.el. After you've had a look the values, minimize the message buffer by C-x 1.

Now do a M-x customize-face and:

  1. Scroll down to the "Default" section
  2. Change the value of "Font Family"
  3. Change the value of "Height"
  4. Hit Enter on "State" and then 1 = Save for Future Sessions

Alternatively, in init.el you could have something like:

(set-face-attribute 'default nil :font "Monospace" :height 160)

Note: If you have a preset for window size (width and height), the height attribute of the font is going to interfere with that layout.

Solution 4 - Emacs

To get an extended list of customization use > M-x customize-face RET

Solution 5 - Emacs

Emacs 25.1 on macOS has Menlo 12 as default. I wanted to increase the size.

C-x C-f ~/.emacs

Add this to end of the ~/.emacs file:

> (set-default-font "Menlo 14")

To see the change take effect immediately while staying in ~/.emacs:

M-x eval-buffer [RET]

Solution 6 - Emacs

In my answer, I'll concentrate on setting the default font size through X resources. The use of X resources has already been mentioned in the answer mentioning ~/.Xdefaults; I'll give more details (the same which I have already described in <https://unix.stackexchange.com/a/426914/4319>;. Apart from the height of the "default" "face" in Emacs, one can similarly set other font parameters.

To set a specific default font height for Emacs, I have put into /etc/X11/Xresources-site (/etc/X11/Xresources is also OK, though can be overwritten by your distro):

Emacs.default.attributeHeight: 94

This would affect also remote X clients which are Emacs (e.g., emacs started on a remote host via ssh).

/etc/X11/Xresources-site and /etc/X11/Xresources (and probably ~/.Xresources and ~/.Xdefaults) are usually read at the start of your X session; to affect your current X resources immediately, run something like xrdb -merge /etc/X11/Xresources-site. The X resources can be viewed by xrdb -query.

Actually, in my case, /etc/X11/Xresources-site is being read thanks to a line in /etc/X11/Xresources (which is read by the start scripts):

#include "/etc/X11/Xresources-site"

so /etc/X11/Xresources is the thing that is read for sure.

There are also some files with the same syntax which are read each time an X program like emacs starts. In my case, they are: ~/.Xdefaults-MY_HOST_NAME, /etc/X11/app-defaults/Emacs (only for emacs-athena, not for emacs-gtk3), /usr/share/X11/app-defaults/Emacs etc. (But I like the idea of loaded X resources more -- shown with xrdb -query; so that remote X clients read the same X resources.)

Other X resources which Emacs understands are described at <https://www.gnu.org/software/emacs/manual/html_node/emacs/Table-of-Resources.html#Table-of-Resources>;.

Emacs 24.3 had a bug which made it not honor the attributes for the default face coming from the X resources, such as in my example above. This was fixed since 24.4.

Solution 7 - Emacs

If you use Linux/X11, you may need to set this in ~/.Xdefaults. I have set the font there since the other answers here have no effect.

I'm able to see available font settings by running in Emacs: helm-select-xfont

Then I start typing Conso and I see entries like:

-Consolas-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1
...

So then I put it into ~/.Xdefaults, setting size 12 as:

Emacs.font: xft:-*-Consolas-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1

and restart Emacs.

Solution 8 - Emacs

The Emacs way

  1. M-x customize-group
  2. Enter faces
  3. Click on "Basic Faces"
  4. Open / Expand "Default"
  5. Change the font name (like "Inconsolata") and deselect "foundry"
  6. Click "Apply and save"

Solution 9 - Emacs

Simply press M-x, and then type in set-frame-font. All available fonts which exist in your machine will be displayed.

Choose the one you look for. I use this way to change font-type in my Emacs so simply; rather than altering the .spacemacs or .emacs file.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondemonchandView Question on Stackoverflow
Solution 1 - EmacsDov GrobgeldView Answer on Stackoverflow
Solution 2 - EmacsTikhon JelvisView Answer on Stackoverflow
Solution 3 - EmacsSaurabhView Answer on Stackoverflow
Solution 4 - EmacsJinView Answer on Stackoverflow
Solution 5 - EmacsmythicalcoderView Answer on Stackoverflow
Solution 6 - Emacsimz -- Ivan ZakharyaschevView Answer on Stackoverflow
Solution 7 - EmacsMicah ElliottView Answer on Stackoverflow
Solution 8 - EmacsyPhilView Answer on Stackoverflow
Solution 9 - EmacsEsmaeil MIRZAEEView Answer on Stackoverflow