David Kastrup [Tue, 28 May 2013 14:57:53 +0000 (16:57 +0200)]
Issue 3379: move all tablature related settings to TabStaff
Previous to this patch, settings relevant to tablature have been
distributed among TabVoice and TabVoice, presumably modeled along the
corresponding distribution of engravers.
As one consequence, the command \tabFullNotation contained overrides
pertaining to both TabStaff and TabVoice level, leading to
inconsistent behavior when employed in one but not all TabVoice
contexts of a TabStaff, or when used as
\new TabStaff \with { \tabFullNotation }
Moving all overrides and property settings to TabStaff level should
lead to more consistent results.
Keith OHara [Mon, 27 May 2013 04:39:40 +0000 (21:39 -0700)]
regression test update, page-spacing
After commit 968e4722ea19df8485b5fec506c3b2dc9a29c664,
ragged-last-bottom affects spacing less drastically; compensate.
Since about version 2.12, inter-system-space is no longer functional.
Werner Lemberg [Sun, 26 May 2013 05:34:04 +0000 (07:34 +0200)]
Fix PNG images.
Since libpng 1.6.0, the library rejects a class of malformed PNGs, aborting
with
IDAT: invalid distance too far back
To be more precise, the library now relies on certain header fields in the
PNG image which have been ignored previously. However, a
yet-to-be-identified program or library produces invalid PNGs; one example
of such PNGs is the file `lily-ledger.png'.
libpng 1.6.3 comes with a tool called `png-fix-too-far-back' to correct such
errors in PNG files (together with some other minor optimizations); this
commit contains the results of such a run.
David Kastrup [Wed, 15 May 2013 21:20:47 +0000 (23:20 +0200)]
Don't remove "empty" stencils in several situations
Removing empty stencils was previously necessary to avoid spurious
spacing in several circumstances that are properly catered for already
by issue 3330. Consequently, removing those special cases is now
feasible and leads to more consistent results.
David Kastrup [Fri, 10 May 2013 09:48:21 +0000 (11:48 +0200)]
Add Stencil::stack function and ly:stencil-stack
This is the base for line-forming and stacking functions. As opposed
to Stencil::add_at_edge (which is better suited for creating combined
glyphs), the metrics facilitate progress along a line.
David Kastrup [Sat, 27 Apr 2013 19:13:29 +0000 (21:13 +0200)]
Rewrite Stencil::add_at_edge to treat "spacing" stencils differently
A spacing stencil is one that is non-empty in its own axis, but empty
in the orthogonal axis. Since they don't actually have a bounding box
to convey, they don't need padding, and they don't suffer from the
equality of the lower left bounding box corner with the reference
point.
David Kastrup [Sat, 27 Apr 2013 12:43:40 +0000 (14:43 +0200)]
Let Stencil::is_empty use Box::is_empty
This is a change in semantics as an axis interval of '(1 . -1) is
considered empty as an interval, while it is not sufficient for making
a box axis empty. Things like backspaces would have similar metrics
and are different from no information at all.
David Kastrup [Sat, 27 Apr 2013 12:39:34 +0000 (14:39 +0200)]
Make Box::is_empty more selective and create an axis-specific variant
Boxes are not really "empty" just because they show negative
advancement on some axis. A box is empty if its original dimensions
of (+inf . -inf) are still unchanged for both axes. And boxes can
make an impact in one axis but not another (pretty much the definition
of spacing), so is_empty can take an axis as argument now.
distributed itself across 5 pages because page accounting was thrown
off by empty intervals. While the effects were smaller (and did not
propagate to the next page) with the less radically empty intervals
employed as extents of empty-stencil, they were still present.
David Kastrup [Wed, 8 May 2013 10:08:22 +0000 (12:08 +0200)]
Issue 3353: Don't let lilypond-invoke-editor.scm pass invalid textedit: URIs to browser
Instead, it issues an error message and aborts. Otherwise,
gnome-open textedit:nonsense
will call lilypond-invoke-editor which will call the browser which will
call lilypond-invoke-editor...
Name "OctavateEight" didn't make any sense. The grob doesn't have
to be an eight, and it doesn't describe octavation, but arbitrary
transposition (not only whole octaves). Also, the name should reflect
its affiliation with Clef grob.
The name "ClefTransposition" was also considered, but it was decided
that it would be too confusing together with clefTransposition, which
is a context property.