[racket] Slideshow: change baseline

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed May 22 09:47:18 EDT 2013

At Wed, 22 May 2013 15:32:17 +0200, Laurent wrote:
> Is it possible in slideshow to change the baseline of a pict?
>
> I have the following code to draw a fraction:
> 
> ;; Fraction
> ;; pict? pict? -> pict?
> (define (frac a b)
>   (vc-append
>    a
>    (hline (max (pict-width a) (pict-width b)) 20)
>    b))
> 
> and I want to do some thing like:
> (hbl-append (t "x=") (frac (t "1234") (t "5678")))
> 
> so that the hline is aligned with the =.
> 
> I tried the various procedures like `lift-above-baseline` and such but with
> no luck.

The `lift-above-baseline' function should be what you want, but with a
negative offset (so that it actually drops below the baseline).

#lang slideshow

;; Fraction
;; pict? pict? -> pict?
(define (frac a b)
  (lift-above-baseline
   (vc-append
    a
    (hline (max (pict-width a) (pict-width b)) 20)
    b)
   (- (pict-descent b) (pict-height b))))

(slide (hbl-append (t "x=") (frac (t "1234") (t "5678"))))


Posted on the users mailing list.