Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gabc discretionary tag #1134

Open
rpspringuel opened this issue Jun 2, 2016 · 1 comment
Open

gabc discretionary tag #1134

rpspringuel opened this issue Jun 2, 2016 · 1 comment

Comments

@rpspringuel
Copy link
Contributor

Original request on user list.

Perhaps related to #1029, but perhaps not. At the very least this needs to play well with that issue.

A tag might needed which allows at least discritionary-like behavior in gabc. In this fashion one could specify different behavior for when a syllable occurs at the end of the line versus in the middle of it.

The original context of this request was placing verse numbers, barred letters, or other informational text below bar lines. In some instances this text corresponds to the next verse and should not end a line, but the bar line above it can (and really should, since we don't want to start a line with a bar line). For examples, 2.(::) should effectively be (::z) 2.() when it occurs at the end of the line (represented by the z), but is just fine as it is when it occurs in the middle of the line.

This cannot be automatic for all bar lines because there are times when the text below the bar line shouldn't advance to the next line automatically. For instance, in bis.(::) the bis. refers to what just came before it (not what follows) and thus should stay with its bar line at the end of the line.

It also occurs to me that in some instances the word hyphenation could benefit from this. For instance in German syllable ending in ß is hyphenated as s-s. Thus when a syllable ending in ß occurs at the end of a line, it should be treated as s-(...) s() (where the empty syllable will get combined with the following one due to the new syllable rewriting code). (Technically, this splitting should occur whenever the hyphen is inserted, even in the middle of a line, but I assume that if the hyphen is getting inserted in the middle of the line, then it's because the notes above the syllable ending in ß are long enough to require it all the time and thus there is no problem with the user explicitly splitting the syllable themselves.)

The syntax of this feature is kind of complicated because it is inherently a 3-parter: end-of-line, beginning-of-line, no-line-break. I would propose something like:

<disc><eol>(::)</eol><bol>2.()</bol><nlb>2.(::)</nlb></disc>

However, if anyone has proposals for a more intuitive or simply syntax, I'm all ears.

@henryso
Copy link
Contributor

henryso commented Jun 2, 2016

Anything I say here is going to be a little controversial, but I'd argue for using markers here, so this could be simplified to

<disc>(::)<;>2.()<;>2.(::)</disc>

or maybe something more explicit like:

<disc>2.(::)<eol>(::)<bol>2.()</disc>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants