Skip to main content

29.3.2 Frame Font

Each frame has a default font which specifies the default character size for that frame. This size is meant when retrieving or changing the size of a frame in terms of columns or lines (see Size Parameters). It is also used when resizing (see Window Sizes) or splitting (see Splitting Windows) windows.

The terms line height and canonical character height are sometimes used instead of “default character height". Similarly, the terms column width and canonical character width are used instead of “default character width".

function frame-char-height \&optional frame​

function frame-char-width \&optional frame​

These functions return the default height and width of a character in frame, measured in pixels. Together, these values establish the size of the default font on frame. The values depend on the choice of font for frame, see Font and Color Parameters.

The default font can be also set directly with the following function:

command set-frame-font font \&optional keep-size frames​

This sets the default font to font. When called interactively, it prompts for the name of a font, and uses that font on the selected frame. When called from Lisp, font should be a font name (a string), a font object, font entity, or a font spec.

If the optional argument keep-size is nil, this keeps the number of frame lines and columns fixed. (If non-nil, the option frame-inhibit-implied-resize described in the next section will override this.) If keep-size is non-nil (or with a prefix argument), it tries to keep the size of the display area of the current frame fixed by adjusting the number of lines and columns.

If the optional argument frames is nil, this applies the font to the selected frame only. If frames is non-nil, it should be a list of frames to act upon, or t meaning all existing and all future graphical frames.