Thank you Andrew for your answer and your use examples. Maybe I wasn't clear enough. Using \override should be necessary for fine-tuning what you do, and in any moment have I proposed to eliminate that capability. The proposed syntax surely would make some things easier by default. Using overrides should keep working basically the same way as now. However, "fine-tuning" seems to be very broad with text spanners. Putting some text and making a line requires already fine-tuning, which doesn't seem so "fine" to me, and shows only a lack of appropriate syntax for getting a default result. So what I'm proposing is additional to what we already have: the ability to make basic text spanners with a basic syntax, allowing the user to customize that behavior with \overrides, the way it's done now.
So I would say, Andrew, with my proposal, if you need custom \overrides, nothing should change for you, if this is implemented ;-).
Regards,
Martín.
Well, text spanners are pressed into service for dozens of things.
Here's a random example from my scores:
% text spanner for repeat
\once \override TextSpanner.style = #'line
\once \override TextSpanner.thickness = #2
\once \override TextSpanner.bound-details.left.text =
\markup {
\path #0.25 #leftBracketPath
\general-align #Y #CENTER \sans \upright " repeat + "
}
\once \override TextSpanner.bound-details.right.text =
\markup {
\path #0.25 #rightBracketPath
}
\once \override TextSpanner.bound-details.left-broken.text = ##f
\once \override TextSpanner.bound-details.right-broken.text = ##f
\override TextSpanner.bound-details.right-broken.padding = ##f
\override TextSpanner.bound-details.right.padding = #8
\override TextSpanner.bound-details.left.padding = #-4
I have no trouble with that personally, and I require all the fine detail.
I can see your objections, but removing this capability from lilypond
would never get up as a suggestion. Furthermore, there is nothing
stopping your creating your own music functions and so do to achieve
what you have described,
Here's an example of that, for doing things like SP-----> NAT for violin.
% use with startTextSpan and stopTextSpan
stringTechnique =
#(define-music-function
(left right)
(markup? markup?)
"string technique markup"
#{
\once \override TextSpanner.font-name = "Libertinus Sans Bold"
\once \override TextSpanner.font-size = #-4
\once \override TextSpanner.bound-padding = #1.0
\once \override TextSpanner.style = #'line
\once \override TextSpanner.bound-details.right.arrow = ##t
\once \override TextSpanner.bound-details.left.text = #left
\once \override TextSpanner.bound-details.right.text = #right
\once \override TextSpanner.bound-details.right.padding = #0.6
\once \override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER
\once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
\once \override TextSpanner.bound-details.left-broken.text = ##f
\once \override TextSpanner.bound-details.right-broken.text = ##f
#})
Given the enormous flexibility in defining lilypond functions and the
use of Scheme for extensions and customisations, I don't think rushing
to change syntax is a good idea, apart from the fact that you would
have huge problems with backwards compatibility.
Andrew
On Wed, 22 Jul 2020 at 07:28, Martín Rincón Botero
<martinrinconbotero@gmail.com> wrote:
>
> Hey all,
>
> this is a feature request. I'm sorry, if this is already being discussed or if a solution is coming behind the scenes. I couldn't find any message other than a mention to https://code.google.com/archive/p/lilypond/issues/3176. I find the lack of a proper text spanner syntax uncomfortable.
--