Homepage: https://www.emacswiki.org/emacs/download/face-remap%2b.el
Author: Drew Adams
Updated:
Extensions to standard library `face-remap.el'
Commands `text-scale-decrease', `text-scale-increase', and
`text-scale-adjust' (bound to `C-x C--', `C-x C-+', `C-x C-=', and
`C-x C-0') let you resize the text in the current buffer by
changing its scale factor.
In vanilla Emacs:
* When you shrink or enlarge the apparent text size this way,
however, the window takes no notice of it. In particular,
although shrinking text can result in extra horizontal space at
the right, window commands do not see this space as extra.
* If you change the major mode in a buffer that you've
text-scaled, that mode change resets the text size, so you lose
any scaling you've done in it.
This library provides two enhancements to standard library
`face-remap.el':
1. You can optionally have text-scaling also automatically resize
the selected window (horizontally, vertically, or both) when
text is resized, so that the way the window fits the buffer
text remains relatively constant. Shrinking the text in one
window shrinks that window, giving more space to adjacent
windows. This is governed by user option
`text-scale-resize-window'.
If you also use library `fit-frame.el', then one-window frames
also respond to text resizing by scaling. If not, then the
text-scale commands have no effect on frame size for one-window
frames.
2. You can optionally make text-scaling be permanently
buffer-local, for all buffers. This has the effect that if you
change the major mode in a buffer that's been text-scaled, that
mode change has no effect on the text size: whatever size you
scaled it to remains in effect. This is governed by global
minor mode `text-scale-keep-mode'.
For Emacs versions 23-28, this library also fixes a regression
(bugs #46973 and #54114) introduced in 23 - it provides the Emacs
29 version of function `face-remap-set-base'.
See also:
* Library `zoom-frm.el', which provides commands `zoom-in' and
`zoom-out', which let you zoom the text in a buffer (as in text
scaling) or the text in an frame. In the latter case, the
default font of the frame is enlarged or shrunk dynamically.
* Library `doremi-frm.el', which provides commands
`doremi-buffer-font-size+' and `doremi-frame-font-size+', which
provide another way to zoom incrementally.
To use library `face-remap+.el', put it in your `load-path' and
put this sexp in your init file (~/.emacs):
(require 'face-remap+)
Commands defined here:
`text-scale-keep-mode'.
Options (user variables) defined here:
`text-scale-resize-window'.
***** NOTE: The following standard functions defined in `face-remap.el'
have been REDEFINED HERE:
`text-scale-increase' -- Possibly resize the window or frame.