+2005-01-17 Erlend Aasland <erlenda@gmail.com>
+
+ * scm/define-markup-commands.scm: Change number->markletter-string
+ to take two arguments (vector number). Add number->mark-alphabet-vector
+ and markalphabet markup command.
+
+ * scm/translation-functions.scm: Add format-mark-box-alphabet,
+ format-mark-alphabet, format-mark-box-barnumbers and
+ format-mark-barnumbers. Fix bug in format-mark-box-numbers.
+
2005-01-17 Graham Percival <gperlist@shaw.ca>
* Documentation/user/examples.itely: add SATB automatic piano
(vector-set! number->mark-letter-vector j
(integer->char (+ i (char->integer #\A)))))
-(define (number->markletter-string n)
+(define number->mark-alphabet-vector (list->vector
+ (map (lambda (i) (integer->char (+ i (char->integer #\A)))) (iota 26))))
+
+(define (number->markletter-string vec n)
"Double letters for big marks."
- (let* ((lst (vector-length number->mark-letter-vector)))
+ (let* ((lst (vector-length vec)))
(if (>= n lst)
- (string-append (number->markletter-string (1- (quotient n lst)))
- (number->markletter-string (remainder n lst)))
- (make-string 1 (vector-ref number->mark-letter-vector n)))))
-
+ (string-append (number->markletter-string vec (1- (quotient n lst)))
+ (number->markletter-string vec (remainder n lst)))
+ (make-string 1 (vector-ref vec n)))))
(def-markup-command (markletter layout props num) (integer?)
"Make a markup letter for @var{num}. The letters start with A to Z
(skipping I), and continues with double letters."
- (Text_interface::interpret_markup layout props (number->markletter-string num)))
-
+ (Text_interface::interpret_markup layout props
+ (number->markletter-string number->mark-letter-vector num)))
+
+(def-markup-command (markalphabet layout props num) (integer?)
+ "Make a markup letter for @var{num}. The letters start with A to Z
+ and continues with double letters."
+ (Text_interface::interpret_markup layout props
+ (number->markletter-string number->mark-alphabet-vector num)))
(def-markup-command (bracketed-y-column layout props indices args)
(list? markup-list?)
(make-simple-markup "=")
(make-simple-markup (number->string count))))))
+(define-public (format-mark-alphabet mark context)
+ (make-bold-markup (make-markalphabet-markup (1- mark))))
+
+(define-public (format-mark-box-alphabet mark context)
+ (make-bold-markup (make-box-markup (make-markalphabet-markup (1- mark)))))
+
(define-public (format-mark-letters mark context)
(make-bold-markup (make-markletter-markup (1- mark))))
(define-public (format-mark-numbers mark context)
(make-bold-markup (number->string mark)))
+(define-public (format-mark-barnumbers mark context)
+ (make-bold-markup (number->string (ly:context-property context 'currentBarNumber))))
+
(define-public (format-mark-box-letters mark context)
(make-bold-markup (make-box-markup (make-markletter-markup (1- mark)))))
(define-public (format-mark-box-numbers mark context)
- (make-bold-markup (make-box-markup (make-markletter-markup (1- mark)))))
+ (make-bold-markup (make-box-markup (number->string mark))))
+
+(define-public (format-mark-box-barnumbers mark context)
+ (make-bold-markup (make-box-markup
+ (number->string (ly:context-property context 'currentBarNumber)))))