From e9d01921797e2d5613ae8d5cce93ddf904f7316b Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 17 Jan 2005 23:12:33 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 10 ++++++++++ scm/define-markup-commands.scm | 24 ++++++++++++++++-------- scm/translation-functions.scm | 15 ++++++++++++++- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7746c4767e..7ce42f4878 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-01-17 Erlend Aasland + + * 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 * Documentation/user/examples.itely: add SATB automatic piano diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index ff2e9da745..8d19cf8efb 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -670,22 +670,30 @@ around the markup." (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?) diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 8d8a5fcbf2..b2e2de3876 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -28,14 +28,27 @@ (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))))) -- 2.39.5