Next: Undisplayable Characters, Previous: Defining Fontsets, Up: International [Contents][Index]
Fontsets do not always have to be created from scratch. If only minor changes are required it may be easier to modify an existing fontset. Modifying ‘fontset-default’ will also affect other fontsets that use it as a fallback, so can be an effective way of fixing problems with the fonts that Emacs chooses for a particular script.
Fontsets can be modified using the function set-fontset-font
,
specifying a character, a charset, a script, or a range of characters
to modify the font for, and a font specification for the font to be
used. Some examples are:
;; Use Liberation Mono for latin-3 charset. (set-fontset-font "fontset-default" 'iso-8859-3 "Liberation Mono") ;; Prefer a big5 font for han characters (set-fontset-font "fontset-default" 'han (font-spec :registry "big5") nil 'prepend) ;; Use DejaVu Sans Mono as a fallback in fontset-startup ;; before resorting to fontset-default. (set-fontset-font "fontset-startup" nil "DejaVu Sans Mono" nil 'append) ;; Use MyPrivateFont for the Unicode private use area. (set-fontset-font "fontset-default" '(#xe000 . #xf8ff) "MyPrivateFont")
Some fonts installed on your system might be broken, or produce
unpleasant results for characters for which they are used, and you may
wish to instruct Emacs to completely ignore them while searching for a
suitable font required to display a character. You can do that by
adding the offending fonts to the value of face-ignored-fonts
variable, which is a list. Here’s an example to put in your
~/.emacs:
(add-to-list 'face-ignored-fonts "Some Bad Font")