GNU bug report logs -
#25824
25.1; bugs about display specfications
Previous Next
Reported by: ynyaaa <at> gmail.com
Date: Tue, 21 Feb 2017 04:19:01 UTC
Severity: minor
Found in version 25.1
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Eli Zaretskii <eliz <at> gnu.org> writes:
> Display
> string and 'raise'/'heaight' specs don't make sense together in the
> same display spec.
The height of the replacing text can be controlled by its face.
Is there any chance to 'raise' the replacing text?
> The space is needed to accommodate the enlarged X on the same screen
> line. Emacs display engine doesn't require that all the glyphs on a
> line be of the same size, but it does require them to have the same
> baseline (the display geometry is that of a canvas).
I don't understand the relation between the space and the baseline.
I want to display large text centered vertically.
But there is a blank area over the large text.
I expect line-pixel-height of a line with 5 times larger text
is 5 times larger than a normal line.
Practically, if the large text is 'raise'd negative,
line-pixel-height is 5 times plus 'raise'd pixels larger.
(with some computational error)
;; normal line
(line-pixel-height)
=>22
;; large text without raise specification
(progn
(insert "normal"
(propertize "LARGE" 'display '((height 5))))
(beginning-of-line)
(line-pixel-height))
=>107
;; cap height is 14 and line height is 22
;; 'raise' -2 * cap height pixels
(progn
(insert "normal"
(propertize "LARGE" 'display '((raise -1.2727) (height 5))))
(beginning-of-line)
(line-pixel-height))
=>134
By the way, if the baseline height is same,
I think consecutive underlines should be displayed as one straight line.
The form below shows three underlines with different height.
(insert (propertize "X" 'face '(:underline t))
(propertize "X" 'face '(:underline t) 'display '((raise -1)))
(propertize "X" 'face '(:underline t) 'display '((raise 1))))
As for overlines, they are displayed as one straight line.
(insert (propertize "X" 'face '(:overline t))
(propertize "X" 'face '(:overline t) 'display '((raise -1)))
(propertize "X" 'face '(:overline t) 'display '((raise 1))))
This bug report was last modified 8 years and 83 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.