GNU bug report logs - #25824
25.1; bugs about display specfications

Previous Next

Package: emacs;

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


Message #11 received at 25824 <at> debbugs.gnu.org (full text, mbox):

From: ynyaaa <at> gmail.com
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 25824 <at> debbugs.gnu.org
Subject: Re: bug#25824: 25.1; bugs about display specfications
Date: Thu, 23 Feb 2017 11:53:16 +0900
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.