X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=input%2Fmanual%2Ffont-table.ly;h=dae8fd4597580fff1de2b0cfda50aa8142cf92fe;hb=727e80e3140b60c5668af4eec64d85a2def10108;hp=b665ed3d213da0b3d9c720bba544f3f56fc223fa;hpb=42e50041701995944a9d98d71574a8e2127c6296;p=lilypond.git diff --git a/input/manual/font-table.ly b/input/manual/font-table.ly index b665ed3d21..dae8fd4597 100644 --- a/input/manual/font-table.ly +++ b/input/manual/font-table.ly @@ -1,72 +1,60 @@ - #(set-global-staff-size 16) \paper { - %% ugh. text on toplevel is a bit broken... . - + %% ugh. text on toplevel is a bit broken... + oddHeaderMarkup = \markup {} evenHeaderMarkup = \markup {} oddFooterMarkup = \markup {} evenFooterMarkup = \markup {} } -\version "2.7.39" - -#(define (doc-char name) - (make-line-markup - (list - (make-pad-to-box-markup - '(0 . 30) - '(-2 . 2) - (make-typewriter-markup (make-small-markup name))) - (make-pad-to-box-markup - '(-2 . 2) - '(-2 . 2) - (make-musicglyph-markup name))))) - -#(define (min-length lst n) - "(min (length lst) n)" - - (if (or (null? lst) (<= n 0)) - 0 - (1+ (min-length (cdr lst) (1- n)) ))) - -#(define (doc-chars names acc) - (let* - ((n (min-length names 2)) - (head (take names n)) - (tail (drop names n)) - ) - - (if (null? head) - acc - (doc-chars tail - (cons (make-line-markup (map doc-char head)) acc))) - )) - -#(define (group-lines lines) - (let* - ((n (min-length lines 25)) - (head (take lines n)) - (tail (drop lines n)) - ) - - (cons - (make-column-markup head) - (if (null? tail) - '() - (group-lines tail))))) - -#(let* - ((lines (doc-chars - (ly:otf-glyph-list (ly:font-load "emmentaler-20")) - '())) - (pages (group-lines (reverse lines)))) - - (for-each - (lambda (x) - (collect-scores-for-book parser - (make-override-markup '(word-space . 8) x))) - pages)) - - +\version "2.11.27" + +#(define-markup-command (doc-char layout props name) (string?) + (interpret-markup layout props + (let* ((n (string-length name))) + (if (> n 24) + ;; split long glyph names near the middle at dots + (let* ((middle-pos (round (/ n 2))) + (left-dot-pos (string-rindex name #\. 0 middle-pos)) + (right-dot-pos (string-index name #\. middle-pos)) + (left-distance (if (number? left-dot-pos) + (- middle-pos left-dot-pos) + middle-pos)) + (right-distance (if (number? right-dot-pos) + (- right-dot-pos middle-pos) + middle-pos)) + (split-pos (if (> left-distance right-distance) + right-dot-pos + left-dot-pos)) + (left (substring name 0 split-pos)) + (right (substring name split-pos))) + (markup + #:pad-to-box '(0 . 36) '(-2 . 2) #:column (#:typewriter left + #:typewriter #:concat (" " right)) + #:pad-to-box '(-2 . 4) '(-3.5 . 3.5) #:huge #:musicglyph name)) + (markup + #:pad-to-box '(0 . 36) '(-2 . 2) #:typewriter name + #:pad-to-box '(-2 . 4) '(-3.5 . 3.5) #:huge #:musicglyph name))))) + +#(define-markup-list-command (doc-chars layout props names) (list?) + (define (min-length lst n) + "(min (length lst) n)" + (if (or (null? lst) (<= n 0)) + 0 + (1+ (min-length (cdr lst) (1- n))))) + (define (doc-chars-aux names acc) + (let* ((n (min-length names 2)) + (head (take names n)) + (tail (drop names n))) + (if (null? head) + (reverse! acc) + (doc-chars-aux tail + (cons (make-line-markup (map make-doc-char-markup head)) + acc))))) + (interpret-markup-list layout props (doc-chars-aux names (list)))) + +\markuplines \override-lines #'(word-space . 4) + \doc-chars #(delete ".notdef" + (ly:otf-glyph-list (ly:font-load "emmentaler-20")))