Hi Urs,

last year I was facing this issue and also used this override. Just as a hint is this example, using the edition-engraver. The method to enter succeeding mods which only differ by one value is the one I used. Some of the declared functions are taken from my own toolchain ... To the point: There are functions to enter edition-mods with some kind of template function. This is very useful to adjust note-column-spacing along the timeline or for example lyric-align.

Jan-Peter


Am 03.01.2017 um 14:19 schrieb Urs Liska:


Am 03.01.2017 um 14:16 schrieb Thomas Morley:
2017-01-03 14:12 GMT+01:00 Urs Liska <[email protected]>:

Am 03.01.2017 um 13:56 schrieb Pierre Perol-Schneider:

How about the new spacing section?
http://lilypond.org/doc/v2.19/Documentation/notation/new-spacing-section


Well, this at least does affect the horizontal spacing and allows to force
some space in. But it's very hard to control because you don't affect the
individual note/grob but rather the whole spacing process as such.

Attached is the best result I could achieve. The space before the grace
notes is fine (I used a higher value than necessary to make it visible), but
I have the side-effect of the misaligned clef (and too much space in the
middle of the first beamed group. This is regardless of where I place the
first \newSpacingSection.

Thanks anyway
Urs

I often use
\once \override Score.NoteColumn.X-offset = #10

Thank you, that was it.
Controllable and basically clear: I force LilyPond to ignore its own
decision and tell it what to do instead.

Urs

PS: Andrew, I have the impression that could also be good for you


Cheers,
  Harm


\version "2.19.54"
\include "oll-core/package.ily"
\include "snippets/ly/_internal/utilities/alist-access.ily"
\include "edition-engraver/edition-engraver.ily"

modMap =
#(define-void-function (edition-target edition-id proc lst)(symbol? list? procedure? list?)
   (for-each (lambda (p)
               (if (pair? p)
                   (let ((mod (proc (cdr p))))
                     (editionMod edition-target (caar p) (cdar p) edition-id mod)
                     )))
     lst))

#(define-public optionsInit clratree)
#(define-public optionsGet getatree)
#(define-public optionsSet setatree)
#(define-public optionsAdd addatree)
#(define-public optionsRemove rematree)

#(define (frac-or-mom? v) (or (fraction? v)(ly:moment? v)))
addModM =
#(define-void-function (name takt pos mod)
     (symbol? integer? frac-or-mom? scheme?)
     (optionsAdd name (list (cons takt pos)) mod)
     )

shiftNoteColumn = \once \override NoteColumn.X-offset = \etc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% um diesen Teil gehts mir hier
\optionsInit opts
\addModM opts 1 1/4 #10
\addModM opts 1 2/4 #-2 % Die Note wird nur so nah wie möglich an die vorhergehende gerückt
\addModM opts 1 3/4 #28
\modMap target sing.with.bach.Score #shiftNoteColumn #opts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\consistToContexts #edition-engraver Score.Staff.Voice
\setEditions target

\layout {
  \context {
    \Score
    \editionID ##f sing.with.bach
  }
}

{ bes'4 a' c'' b' }
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to