Next: Merging Faces, Previous: Face Attributes, Up: Faces
You can modify the attributes of an existing face with the following functions. If you specify frame, they affect just that frame; otherwise, they affect all frames as well as the defaults that apply to new frames.
This function sets one or more attributes of face face for frame frame. If frame is
nil
, it sets the attribute for all frames, and the defaults for new frames.The extra arguments arguments specify the attributes to set, and the values for them. They should consist of alternating attribute names (such as
:family
or:underline
) and corresponding values. Thus,(set-face-attribute 'foo nil :width :extended :weight :bold :underline "red")sets the attributes
:width
,:weight
and:underline
to the corresponding values.
This returns the value of the attribute attribute of face face on frame. If frame is
nil
, that means the selected frame (see Input Focus).If frame is
t
, the value is the default for face for new frames.For example,
(face-attribute 'bold :weight) => bold
The functions above did not exist before Emacs 21. For compatibility with older Emacs versions, you can use the following functions to set and examine the face attributes which existed in those versions.
These functions set the foreground (or background, respectively) color of face face to color. The argument color should be a string, the name of a color.
Certain shades of gray are implemented by stipple patterns on black-and-white screens.
This function sets the background stipple pattern of face face to pattern. The argument pattern should be the name of a stipple pattern defined by the X server, or
nil
meaning don't use stipple.Normally there is no need to pay attention to stipple patterns, because they are used automatically to handle certain shades of gray.
This function sets the font of face face.
In Emacs 21, this actually sets the attributes
:family
,:width
,:height
,:weight
, and:slant
according to the font name font.In Emacs 20, this sets the font attribute. Once you set the font explicitly, the bold and italic attributes cease to have any effect, because the precise font that you specified is used.
This function specifies whether face should be bold. If bold-p is non-
nil
, that means yes;nil
means no.In Emacs 21, this sets the
:weight
attribute. In Emacs 20, it sets the:bold
attribute.
This function specifies whether face should be italic. If italic-p is non-
nil
, that means yes;nil
means no.In Emacs 21, this sets the
:slant
attribute. In Emacs 20, it sets the:italic
attribute.
This function sets the underline attribute of face face. Non-
nil
means do underline;nil
means don't.
This function inverts the
:inverse-video
attribute of face face. If the attribute isnil
, this function sets it tot
, and vice versa.
These functions examine the attributes of a face. If you don't
specify frame, they refer to the default data for new frames.
They return the symbol unspecified
if the face doesn't define any
value for that attribute.
These functions return the foreground color (or background color, respectively) of face face, as a string.
This function returns the name of the background stipple pattern of face face, or
nil
if it doesn't have one.
This function returns
t
if face is bold—that is, if it is bolder than normal. It returnsnil
otherwise.
This function returns
t
if face is italic or oblique,nil
otherwise.