X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fincipit.ly;h=9490f08ed0d2ed0dab39ad1c322124068e0da215;hb=13da8b27aabc5d5a752d00ed1e2b99ad20f0f264;hp=e78a5f3425498b5737e7f6c5dbf476c26a673a72;hpb=b01ca49c05566b73d690ae84fda6040b24fcf73f;p=lilypond.git diff --git a/Documentation/snippets/incipit.ly b/Documentation/snippets/incipit.ly index e78a5f3425..9490f08ed0 100644 --- a/Documentation/snippets/incipit.ly +++ b/Documentation/snippets/incipit.ly @@ -4,19 +4,11 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.14.0 -\version "2.14.0" +%% Note: this file works from version 2.16.0 +\version "2.17.6" \header { -%% Translation of GIT committish: 70f5f30161f7b804a681cd080274bfcdc9f4fe8c - texidoces = " -Los «incipit» se pueden escribir utilizando el grob del nombre del -instruemento, pero manteniendo independientes las definiciones del -nombre del instrumento y del incipit." - - doctitlees = "Incipit" - - lsrtags = "staff-notation, ancient-notation" + lsrtags = "staff-notation, ancient-notation, really-cool" texidoc = " Incipits can be added using the instrument name grob, but keeping separate the instrument name definition and the incipit definition. @@ -28,43 +20,38 @@ separate the instrument name definition and the incipit definition. incipit = #(define-music-function (parser location incipit-music) (ly:music?) #{ - \once \override Staff.InstrumentName #'self-alignment-X = #RIGHT - \once \override Staff.InstrumentName #'self-alignment-Y = #UP - \once \override Staff.InstrumentName #'Y-offset = + \once \override Staff.InstrumentName.self-alignment-X = #RIGHT + \once \override Staff.InstrumentName.self-alignment-Y = #UP + \once \override Staff.InstrumentName.Y-offset = #(lambda (grob) (+ 4 (system-start-text::calc-y-offset grob))) - \once \override Staff.InstrumentName #'padding = #0.3 - \once \override Staff.InstrumentName #'stencil = + \once \override Staff.InstrumentName.padding = #0.3 + \once \override Staff.InstrumentName.stencil = #(lambda (grob) - (let* ((instrument-name (ly:grob-property grob 'long-text)) - (layout (ly:output-def-clone (ly:grob-layout grob))) - (music (make-sequential-music - (list (context-spec-music - (make-sequential-music - (list (make-property-set - 'instrumentName instrument-name) - (make-grob-property-set - 'VerticalAxisGroup - 'Y-extent '(-4 . 4)))) - 'MensuralStaff) - $incipit-music))) - (score (ly:make-score music)) - (mm (ly:output-def-lookup layout 'mm)) - (indent (ly:output-def-lookup layout 'indent)) - (width (ly:output-def-lookup layout 'incipit-width)) - (incipit-width (if (number? width) - (* width mm) - (* indent 0.5)))) - - (ly:output-def-set-variable! layout 'indent (- indent - incipit-width)) - (ly:output-def-set-variable! layout 'line-width indent) - (ly:output-def-set-variable! layout 'ragged-right #f) - (ly:output-def-set-variable! layout 'ragged-last #f) - (ly:output-def-set-variable! layout 'system-count 1) - (ly:score-add-output-def! score layout) - (ly:grob-set-property! grob 'long-text - (markup #:score score)) + (let* ((instrument-name (ly:grob-property grob 'long-text))) + (set! (ly:grob-property grob 'long-text) + #{ \markup + \score + { + { \context MensuralStaff \with { + instrumentName = #instrument-name + \override VerticalAxisGroup.Y-extent = #'(-4 . 4) + } $incipit-music + } + \layout { $(ly:grob-layout grob) + line-width = \indent + indent = + % primitive-eval is probably easiest for + % escaping lexical closure and evaluating + % everything respective to (current-module). + #(primitive-eval + '(or (false-if-exception (- indent (* mm incipit-width))) + (* 0.5 indent))) + ragged-right = ##f + ragged-last = ##f + system-count = #1 } + } + #}) (system-start-text::print grob))) #}) @@ -79,7 +66,7 @@ global = { \skip 1*8 % let finis bar go through all staves - \override Staff.BarLine #'transparent = ##f + \override Staff.BarLine.transparent = ##f % finis bar \bar "|." @@ -106,7 +93,7 @@ discantusNotes = { c'4 e'4.( d'8 c' b | a4) b a2 | b4.( c'8 d'4) c'4 | - \once \override NoteHead #'transparent = ##t + \once \override NoteHead.transparent = ##t c'1 | b\breve | } @@ -143,7 +130,7 @@ altusNotes = { a2 g4 e | fis g4.( fis16 e fis4) | g1 | - \once \override NoteHead #'transparent = ##t + \once \override NoteHead.transparent = ##t g1 | g\breve | } @@ -181,7 +168,7 @@ tenorNotes = { R1 | % two measures r2 d'2. d'4 b e' | - \once \override NoteHead #'transparent = ##t + \once \override NoteHead.transparent = ##t e'1 | d'\breve | } @@ -217,7 +204,7 @@ bassusNotes = { R1 | R1 | g2. e4 | - \once \override NoteHead #'transparent = ##t + \once \override NoteHead.transparent = ##t e1 | g\breve | } @@ -266,7 +253,7 @@ bassusLyrics = \lyricmode { \context { \Score %% no bar lines in staves or lyrics - \override BarLine #'transparent = ##t + \override BarLine.transparent = ##t } %% the next two instructions keep the lyrics between the bar lines \context { @@ -277,7 +264,7 @@ bassusLyrics = \lyricmode { \context { \Voice %% no slurs - \override Slur #'transparent = ##t + \override Slur.transparent = ##t %% Comment in the below "\remove" command to allow line %% breaking also at those bar lines where a note overlaps %% into the next measure. The command is commented out in this