Thomas Morley <thomasmorle...@gmail.com> writes: > Am Sa., 19. Okt. 2019 um 14:45 Uhr schrieb David Kastrup <d...@gnu.org>: > > Yep. I think it's not the way to go. > >> b) change a property (akin to offset but probably unique to \underline >> to avoid unexpected interactions) for the sake of additional >> underline calls. That would result in the _innermost_ \underline call >> ending up lowest. > > I tried to put a variable into layout's 'text-font-defaults (for now > named foo) to keep track of the used offset. > Ofcourse subsequent calls of \underline with different text will use > the then stored value of foo. > Though, if I clear foo first then it's useless. > Currently I don't see a way out. Maybe putting it in layout is the > wrong way?
Oh very most definitely. I was thinking of props here. > Anyway, here the insufficient code so far: > > #(define-markup-command (underline-tst-II layout props arg) > (markup?) > #:category font > #:properties ((thickness 1) (offset 2)) > (let* ((thick (ly:output-def-lookup layout 'line-thickness)) > (underline-thick (* thickness thick)) > (m (interpret-markup layout props arg)) > (arg-x-ext (ly:stencil-extent m X)) > (x1 (car arg-x-ext)) > (x2 (cdr arg-x-ext)) > (arg-y-ext (ly:stencil-extent m Y)) > (text-font-defaults (ly:output-def-lookup layout > 'text-font-defaults)) > (foo (assoc-get 'foo text-font-defaults 0)) > (line (make-line-stencil underline-thick x1 0 x2 0)) > (new-stil > (ly:stencil-combine-at-edge > m > Y > DOWN > line > (- (+ (* thick (+ foo offset)) (car arg-y-ext)) > (/ underline-thick 2)))) > (new-stil-y-ext > (ly:stencil-extent new-stil Y))) > > > (ly:output-def-set-variable! layout 'text-font-defaults > (acons 'foo (+ offset foo) > (ly:output-def-lookup layout 'text-font-defaults))) > > (ly:make-stencil > (ly:stencil-expr new-stil) > arg-x-ext > new-stil-y-ext))) Basically, the idea was to just call something like (interpret-markup layout (prepend-alist-chain 'offset (1+ offset) props) arg) for the call of interpret-markup (of course using the proper arithmetic on the proper property). -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user