Valentin Villenave wrote:
> 2009/6/29 Neil Puttock :
> > With apologies to Michael, here's a simpler method for centring
> > text using a grob callback, which effectively does the same as
> > your old code by retrieving the notehead (or rest) from the
> > PaperColumn then mimicking the centered_on_x_parent callback:
>
> Although I've been (shamefully) away from the LSR for the past
> few weeks, I can't help but thinking this could make a valuable
> snippet...
If the "unsafe assumption" on line 8 could be addressed, I think it
should be implemented in the source. Neil?
- Mark
Here it is again:
textScriptCenterOnParent = \override TextScript #'X-offset =
#(lambda (grob)
(let* (
;; get parent in X axis (a PaperColumn)
(paper-col (ly:grob-parent grob X))
;; extract array of grobs attached to this column
(elts (ly:grob-object paper-col 'elements))
;; could be an unsafe assumption, but the first
;; element should be a NoteHead or Rest
(rhythmic-head (ly:grob-array-ref elts 0)))
(+
;; read self-alignment-X
(ly:self-alignment-interface::x-aligned-on-self grob)
;; equivalent to ly:self-alignment-interface::centered-on-x-parent,
;; but using the extracted notehead/rest instead of the paper column
(interval-center
(ly:grob-robust-relative-extent rhythmic-head rhythmic-head X)))))
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user