Hi Joram!

Ok, I misunderstood your problem.

What I do is shown here [like 1]:

     \new ChoirStaff <<
       \new Staff \soprano
       \addlyrics \text
       \new Staff \alto
       \addlyrics \text
       \new Staff { \clef "treble_8" \tenor }
       \addlyrics \text
       \new Staff { \clef "bass" \bass }
       \addlyrics \text
     >>

Or the same with
       \new Staff \new Voice = "soprano" \soprano
       \new Lyrics \lyricsto "soprano" \text
etc.

So each staff has its own lyrics context but the content is the same
variable. That works.

The attached patch should solve your problem. But it changes the c++ sources 
and requires
recompilation.

Probably it will not be accepted as it is possible to reimplement a 
Lyric_extender::print()
with the desired changes in scheme and to include it in any lilypond source 
that needs it ;-)

In principle, the information about where to put
extender lines is already given by the number of notes per syllable.
You don't want extenders and hyphens at the same time ...

cu,
 Knut
>From 62bfdf5eba38e4ff09830b81a17ac6eeed798785 Mon Sep 17 00:00:00 2001
From: Knut Petersen <knut_peter...@t-online.de>
Date: Sun, 11 Dec 2016 07:54:34 +0100
Subject: [PATCH] Kill lyric extenders if number of heads < 2

This allows to reuse lyric definitions if they only
differ by some extenders.

Signed-off-by: Knut Petersen <knut_peter...@t-online.de>
---
 lily/lyric-extender.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lily/lyric-extender.cc b/lily/lyric-extender.cc
index 8afe2c5569..441ceea34f 100644
--- a/lily/lyric-extender.cc
+++ b/lily/lyric-extender.cc
@@ -48,7 +48,7 @@ Lyric_extender::print (SCM smob)
 
   extract_grob_set (me, "heads", heads);
 
-  if (!heads.size ())
+  if (heads.size () < 2)
     return SCM_EOL;
 
   common = common_refpoint_of_array (heads, common, X_AXIS);
-- 
2.11.0

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to