2つの拍子記号を並べて書く

 「3/8拍子であり、かつ6/16拍子でもある」楽想はよくある(「3/4, 6/8」で出てくることが多いかな)。いろんな書き方があるのですが、たとえば下のように書きたい場合。

 Scheme 関数で stencil を作成して、強引に置き換えます。

#(define ((compound-time a b c d) grob) (grob-interpret-markup grob (markup #:override '(baseline-skip . 0) #:number (#:line ((#:column (a b)) #:vcenter (#:fontsize -6 "=") #:hspace 0.1 (#:center-column (c d))))))) \relative c' { \once \override Staff.TimeSignature #'stencil = #(compound-time "3" "8" "6" "16") \time 3/8 f16 e d cis e g }

 2つの拍子記号を単純に並べたいなら、#:vcenter (#:fontsize -6 "=") を削除して、#:hspace の数値を適当に調節する。

#(define ((compound-time-noequal a b c d) grob) (grob-interpret-markup grob (markup #:override '(baseline-skip . 0) #:number (#:line ((#:column (a b)) #:hspace 1 (#:center-column (c d))))))) \relative c' { \once \override Staff.TimeSignature #'stencil = #(compound-time-noequal "3" "8" "6" "16") \time 3/8 f16 e d cis e g }

 2つめの拍子記号をカッコで囲むのは、「拍子記号を隠す」のテクニックを流用する。カッコの形やスペーシングが微妙なので、もう少しいいやり方がありそうですけどね。

#(define ((compound-time-paren a b c d) grob) (grob-interpret-markup grob (markup #:override '(baseline-skip . 0) #:number (#:line ((#:column (a b)) #:translate '(-0.8 . 0) #:vcenter (#:fontsize -3 "(") #:translate '(0.4 . 0) (#:center-column (c d)) #:translate '(-0.8 . 0) #:vcenter (#:fontsize -3 ")")))))) \relative c' { \once \override Staff.TimeSignature #'stencil = #(compound-time-paren "3" "8" "6" "16") \time 3/8 f16 e d cis e g }

(2022/08/08 作成)