Bar spacing in Lua - #1764
Conversation
- Replicates bug gregorio-project#959 and gregorio-project#1734. - Two bars in a row are spaced differently than before.
…able and \GreBarSyllable; this also fixes a very minor bug in syllable_clearing
…SyllableBeforeEUOUAE. - \GreLastOfLine was previously used to anticipate forced line breaks and clef changes. This is now done in Lua. - It was also called by \GreLastSyllableBeforeEUOUAE to change the syllable-final skip before an euouae. But the syllable-final skip is always dropped at a line break, so making \GreLastSyllableBeforeEUOUAE into a no-op seems to have no effect; in particular, the test euouae.tex still passes.
Deprecate syllable_first_type().
|
There are currently 37 tests failing. Consecutive bar syllablesThis is the biggest category. If there are two bar syllables in a row, the first syllable's nextbegindifference did not equal the second syllable's begindifference (issue #1734, case 2). However, it's not really clear what the right behavior is. A bar syllable depends on both the previous and next syllable, so when there are two bar syllables in a row, what should be done? The intent of the old code seemed to be to initialize both bar syllables so that the bar is aligned above the text, then adjust the first bar syllable, then adjust the second bar syllable. That's what the new code does. Better in my opinion
Don't know if better or worse
Punctum mora adjustmentIn my opinion these are all better. New code uses actual width of punctum mora and space before it
When punctum mora occurs before a clef change, and there is no break, the old code didn't use correct punctum mora adjustment.
A syllable that has nabc that extends beyond a punctum mora doesn't need a punctum mora adjustment.
Bars with no text (added after 9d45861)When a bar syllable has no text, there's an empty text box whose position sometimes affects spacing before and after the syllable. Now the text box is centered directly under the bar. In my opinion better:
Other featuresIn my opinion these are all better. Syllable clearing for bar syllables is more accurate
Old code computed eolshift using the width of a custos, even when the custos was disabled or flatted.
Old code adjusted for alteration in the next syllable, even if it's on the next line
In clef changes, old calculation uses wrong nextbegindifference (issue #1724 case 1 and #1191)
Tests that revealed new bugs
Miniscule or no difference, except in debugging marks
Tests that need a closer look
|
…nderneath the bar so that it doesn't interfere with the spacing before and after the syllable. Fixes tests fix-845 and breaks fix-928-unison-no-break and flexus-stroke (but for the better).
This follow-up to #1720 moves both the old and new bar spacing algorithms to Lua, as well as a few other computations. The result is that much of the redundant information in .gtex files can be eliminated.
Remaining to-do items: