\mark \default mit Zusatztext

Begonnen von Leonach, Samstag, 21. Dezember 2019, 00:49

« vorheriges - nächstes »

Leonach

Hallo,

ich würde gerne rehearsal marks als Zahlen in einem Kasten setzen. Mit #format-mark-box-numbers ist das kein Problem.

Nun hätte ich gerne vor der Zahl noch Buchstaben, aber innerhalb des Kastens; also nicht [1], [2]... sondern z.B.: [A 1], [A 2], etc. OHNE dass ich jedesmal von Hand \mark \markup {...} benutzen muss.

Hat jemand eine Idee, wie das gemacht werden kann?

Danke!


harm6

Vielleicht


\version "2.19.83"

#(define ((my-format-mark-box-numbers mrkp) mark context)
  (make-bold-markup
    (make-box-markup
      (make-line-markup
        (list mrkp (number->string mark))))))
       
\layout {
  \context {
    \Score
    markFormatter = #format-mark-box-numbers
  }
}
 
myRM =
#(define-music-function (arg mus) (markup? ly:music?)
#{
  \once \set Score.markFormatter = #(my-format-mark-box-numbers arg)
  $mus
#})

{
  b1
  \mark \default
  b
  \myRM "A"
  \mark \default
  b
  \mark \default
  b
}


Gruß,
  Harm

Leonach

Vielen Dank! Leider benutze ich noch 2.18.2, daher konnte ich das Beispiel nicht ausprobieren.

harm6

Deshalb ist es sinnvoll immer die LilyPond-Version anzugeben ;)

Der einzige Unterschied zwischen beiden Versionen, der hier bedeutsam ist, ist die Notwendigkeit für 2.18.2 die default-Argumente 'parser location' in music-functions setzen zu müssen.

Also mit

myRM =
#(define-music-function (parser location arg mus) (markup? ly:music?)
[...]

läuft es auch in 2.18.2

Gruß,
  Harm

Leonach

Super, so funktioniert alles! Vielen Dank!