summaryrefslogtreecommitdiff
path: root/input/regression/footnote-spanner.ly
Commit message (Expand)AuthorAgeFilesLines
* Changes the spanner-placement property of FootnoteSpanner to ly:dir...Now, the annotation on a spanner will always fall on the first (LEFT or CENTER) or last (RIGHT) broken spanner if the spanner is broken. Defaults to LEFT. Mike Solomon2011-03-151-3/+2
* This patch is meant to be a TEST ONLY of footnotes at the bottom of...the page and, as a result, it does NOT print any annotations, which will hopefully be added in the not-too-distant future. The basic way this patch works is by adding a field in System and Line_details that allows for footnotes on any given system to be taken into account during LilyPond's vertical spacing routines. For grobs that only ever print once on one system, this is easy. For spanners, this becomes trickier if the spanner breaks over multiple lines. Currently, the parameter spanner-placement, which slides between -1 and 1, controls the broken spanner to which the footnote applies. This is done so that LEFT will guarantee placement on the first spanner and RIGHT will guarantee placement on the second spanner. For items that have break-visibility set, an is_visible function in the Balloon_interface checks to see if a given item is actually on a line, only printing the footnote if both the annotation and the object being annotated have break-visibility set to #t for that particular place. In markups that are not part of a score, the mechanism is entirely different. A stencil, called `footnote', is passed to ly:make-stencil. This stencil is never printed in the actual markup but is fished out of the stencil when the markup's Prob is created and added as a footnote. To study this code, the best place to start would be page-layout-problem.cc. Any function with the world `footnote' in its name will show you the trace of many other functions in all these other files through which footnotes move to their final destination of the bottom of the page. Mike Solomon2011-03-061-0/+61