]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.113.jcn2
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 30 Nov 2000 21:44:25 +0000 (22:44 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 30 Nov 2000 21:44:25 +0000 (22:44 +0100)
1.3.113.jcn2
============

* Moved all documentation from regtest to individual example files.

* Added feature to lilypond-book to write out \header texidoc string.

64 files changed:
CHANGES
Documentation/regression-test.tely
Documentation/user/latex-lilypond-example.latex
Documentation/user/lilypond-book.tely
VERSION
input/test/accidental-single-double.ly
input/test/accidental.ly
input/test/arpeggio.ly
input/test/auto-change.ly
input/test/bar-scripts.ly
input/test/beam-cross-staff.ly
input/test/beam-extreme.ly
input/test/beam-position.ly
input/test/beaming.ly
input/test/between-systems.ly
input/test/break.ly
input/test/breathing-sign.ly
input/test/chord-names.ly
input/test/chord-tremolo.ly
input/test/clefs.ly
input/test/collisions.ly
input/test/dots.ly
input/test/dyn-line.ly
input/test/generic-output-property.ly
input/test/generic-property-override.ly
input/test/glissando.ly
input/test/grace.ly
input/test/hara-kiri-short.ly
input/test/keys.ly
input/test/lyric-combine.ly
input/test/lyric-phrasing.ly
input/test/lyrics-bar.ly
input/test/lyrics-multi-stanza.ly
input/test/mm-rests2.ly
input/test/multi-measure-rest.ly
input/test/non-empty-text.ly
input/test/noteheadstyle.ly
input/test/number-staff-lines.ly
input/test/part-combine.ly
input/test/repeat-fold.ly
input/test/repeat-line-break.ly
input/test/repeat-unfold.ly
input/test/repeat-volta.ly
input/test/rest-collision.ly
input/test/rest.ly
input/test/size11.ly
input/test/slur-broken-trend.ly
input/test/slur-cross-staff.ly
input/test/slur-nice.ly
input/test/spacing-loose.ly
input/test/spacing-natural.ly
input/test/spacing-tight.ly
input/test/staccato-pos.ly
input/test/staff-margin.ly
input/test/stem-direction-down.ly
input/test/stem-direction.ly
input/test/stem-spacing.ly
input/test/stem-tremolo.ly
input/test/tie-accidental.ly
input/test/tie-chord.ly
input/test/tie.ly
input/test/tup.ly
scripts/lilypond-book.py
stepmake/stepmake/texinfo-rules.make

diff --git a/CHANGES b/CHANGES
index ea5f6b019ffa00d5d3d15baf82650cefda2e66bb..d8e74e102129f4e2d034f0e6391f6a682d50520b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,10 @@
+1.3.113.jcn2
+============
+
+* Moved all documentation from regtest to individual example files.
+
+* Added feature to lilypond-book to write out \header texidoc string.
+
 1.3.113.jcn1
 ============
 
index 8a5d214837e1175cf47d3149c1c9f78b8fd6fed2..b2d8b87c0b1d797253e509207b9cb34392f2af5c 100644 (file)
@@ -19,386 +19,163 @@ and documenting bugfixes.
 
 [TODO: revise and completize this. ]
 
-[TODO: should generate out of header fields using ly2dvi?]
-
 
 
 @section Notes and rests
 
-Rests.  Note that the dot of 8th, 16th and 32nd rests rest should be
-next to the top of the rest.  All rests except the whole rest are
-centered on the middle staff line.  
-
 @lilypondfile{rest.ly}
 
-Note head shapes are settable.  The stem endings should be adjusted
-per note head.  If you want different note head styles on one stem,
-you must create a special context called Thread.
-
-Harmonic notes have a different shape and different
-dimensions. Nevertheless, noteheads in both styles can be combined, on
-either up or down stems.
-
 @lilypondfile{noteheadstyle.ly}
 
-Noteheads can have dots, and rests can too.  Augmentation dots should
-never be printed on a staff line, but rather be shifted vertically. They
-should go up, but in case of multiple parts, the down stems have down
-shifted dots.  (Wanske p. 186) In case of chords, all dots should be in
-a column.  The dots go along as rests are shifted to avoid collisions.
-
 @lilypondfile{dots.ly}
 
-Accidentals work: the second note does not get a sharp. The third and
-fourth show forced and courtesy accidentals
-
 @lilypondfile{accidental.ly}
 
-Multiple measure rests do not collide with barlines and clefs.  They
-are not expanded when you set @code{Score.skipBars}.  Although the
-multi-measure-rest is a Spanner, minimum distances are set to keep it
-colliding from barlines. 
-
-
 @lilypondfile{multi-measure-rest.ly}
 
-If @code{Score.skipBars} is set,
-the signs for four, two, and one measure rest are combined to
-produce the graphical representation of rests for up to 10 bars.
-The number of bars will be written above the sign.
-
 @lilypondfile{mm-rests2.ly}
 
-A sharp sign after a double sharp sign, as well as a flat sign
-after a double flat sign is automatically prepended with a
-natural sign.
-
 @lilypondfile{accidental-single-double.ly}
 
-@section Stems
 
-Stem tremolos or rolls are tremolo signs that look like beam segments
-crossing stems.  If the stem is in a beam, the tremolo must be parallel
-to the beam.  If the stem is invisible (eg. on a whole note), the
-tremolo must be centered on the note.
+
+@section Stems
 
 @lilypondfile{stem-tremolo.ly}
 
-Chord tremolos look like beams, but are a kind of repeat symbol.
-To avoid confusion, chord tremolo beams do not reach the stems, but 
-leave a gap.  Chord tremolo beams on half notes are not ambiguous,
-as half notes cannot appear in a regular beam, and should reach the 
-stems.
-  
 @lilypondfile{chord-tremolo.ly}
 
-Beams, stems and noteheads often have communication troubles, since
-the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
-point) are mixed.
-
-Stems, beams, ties and slurs should behave similarly, when placed
-on the middle staff line. Of course stem-direction is down for high
-notes, and up for low notes.
-
 @lilypondfile{stem-direction.ly}
 
-Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}.
-
 @lilypondfile{stem-direction-down.ly}
 
-@section Scripts
 
-The staccato dot (and all scripts with follow-into-staff set), must
-not be on staff lines.
 
-@lilypondfile{staccato-pos.ly}
+@section Scripts
 
-Dynamics appear below or above the staff.  If multiple dynamics are
-linked with (de)crescendi, they should be on the same line.
+@lilypondfile{staccato-pos.ly}
 
 @lilypondfile{dyn-line.ly}
 
-
-Arpeggios are supported, both cross-staff and broken single staff. 
-
 @lilypondfile{arpeggio.ly}
 
-Simple glissando lines between notes are supported.
-
 @lilypondfile{glissando.ly}
 
 
 
 @section Chord names
 
-Chord names are generated from a list pitches, and are customisable
-from guile.  For some unlogical names, guile customisation is used
-by default.
-
 @lilypondfile{chord-names.ly}
 
-@section Grace notes
 
-Grace notes are typeset as an encapsulated piece of music. You can
-have beams, notes, chords, stems etc. within a @code{\grace} section.
-Slurs that start within a grace section, but aren't ended are attached
-to the next normal note.  Grace notes have zero duration.  If there
-are tuplets, the grace notes won't be under the brace.  Grace notes
-can have accidentals, but they are (currently) spaced at a fixed
-distance.  Grace notes (of course) come before the accidentals of the
-main note.  Grace notes can also be positioned after the main note.
 
-Grace notes without beams should have a slash, if @code{flagStyle} is
-not set.  Main note scripts don't end up on the grace note.
+@section Grace notes
 
 @lilypondfile{grace.ly}
 
-@section Beams, slurs and other spanners
 
-Beaming is generated automatically. Beams may cross bar lines. In that
-case, line breaks are forbidden.  Yet clef and key signatures are
-hidden just as with breakable bar lines.
 
-@lilypondfile{beaming.ly}
+@section Beams, slurs and other spanners
 
-Beams should behave reasonably well, even under extreme circumstances.
-Stems may be short, but noteheads should never touch the beam.
+@lilypondfile{beaming.ly}
 
 @lilypondfile{beam-extreme.ly}
 
-Beams should always reach the middle staff line.  The second beam
-counting from the note head side, should never be lower than the
-second staff line.  This does not hold for grace note beams.
-Override with @code{noStemExtend}.
-
 @lilypondfile{beam-position.ly}
 
-Slurs should look nice and symmetric.  The curvature may increase
-only to avoid noteheads, and as little as possible.  Slurs never
-run through noteheads or stems.
-
 @lilypondfile{slur-nice.ly}
 @lilypondfile{slur-symmetry.ly}
 @lilypondfile{slur-symmetry-1.ly}
 
-Across line breaks, slurs behave nicely.  On the left, they extend to
-just after the preferatory matter, and on the right to the end of the
-staff.  A slur should follow the same vertical direction it would have
-in unbroken state.
-
 @lilypondfile{slur-broken-trend.ly}
 
-Ties are strictly horizontal.  They are placed in between note heads.
-The horizontal middle should not overlap with a staffline.
-
 @lilypondfile{tie.ly}
 
-When tieing chords, the outer slurs point outwards, the inner slurs
-point away from the center of the staff.  Override with
-@code{tieVerticalDirection}.
-
 @lilypondfile{tie-chord.ly}
 
-When tieing notes with accidentals across a bar boundary, the accidental
-must not be drawn on the note in the new bar.  Instead, the next note of
-the same pitch in this bar should always show the accidental (even if
-it's natural).  Slurring a accidentaled note to a natural one across bar
-boundaries should be explicit.
-
-Pitches can be verified by printing them  with the @code{NoteNames} context.
-
 @lilypondfile{tie-accidental.ly}
 
-Beams can be typeset over fixed distance aligned staffs, beam
-beautification doesn't really work, but knees do. Beams should be
-behave well, wherever the switching point is.
-
 @lilypondfile{beam-cross-staff.ly}
 
-The same goes for slurs. They behave decently when broken across
-linebreak.
-
 @lilypondfile{slur-cross-staff.ly}
 
-Tuplets are indicated by a bracket with a number.  There should be no
-bracket if there is one beam that matches  the length of the tuplet.
-The bracket does not interfere with the stafflines, and the number is
-centered in the gap in the bracket.
-
 @lilypondfile{tup.ly}
 
-@section Property details
 
-More specific settings take precendence over less specific settings. The
-second slur has slurDirection set to down, overriding the stemup  setting.
+
+@section Property details
 
 @lilypondfile{generic-property-override.ly}
 
-@section Repeats
 
-LilyPond has three modes for repeats: folded, unfolded and
-semi-unfolded.  Unfolded repeats are fully written out. Semi unfolded
-repeats have the body written and all alternatives sequentially.
-Folded repeats have the body written and all alternatives
-simultaneo.ly.  If the number of alternatives is larger than the
-repeat count, the excess alternatives are ignored.  If the number of
-alternatives is smaller, the first alternative is multiplied to get to
-the number of repeats.
 
-Unfolded behavior:
+@section Repeats
 
 @lilypondfile{repeat-unfold.ly}
 
-Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
-If they don't barlines should still be shown.
-
 @lilypondfile{repeat-volta.ly}
 
-Folded.  This doesn't make sense without alternatives, but it works.
-
 @lilypondfile{repeat-fold.ly}
 
-Across linebreaks, the left edge of a first and second alternative
-bracket should be equal
-
 @lilypondfile{repeat-line-break.ly}
 
-Auto change piano staff switches  voices  between up and down staffs
-automatically; rests are switched along with the coming note.
-
 @lilypondfile{auto-change.ly}
 
-@section Lyrics
 
-Lyrics can be set to a melody automatically.  Excess lyrics will be
-dumped.  Lyrics will not be set over rests.  You can have melismata
-either by setting a property melismaBusy, or by setting
-automaticMelismas (which will set melismas during slurs and ties).  If
-you want a different order than first Music, then Lyrics, you must
-precook a chord of staffs/lyrics and label those.  Of course
-@code{\rhythm} ignores any other rhythms in the piece.  Hyphens and
-extenders do not assume anything about lyric lengths, so they continue
-to work.
 
-@lilypondfile{lyric-combine.ly}
+@section Lyrics
 
-Multiple stanzas
+@lilypondfile{lyric-combine.ly}
 
 @lilypondfile{lyrics-multi-stanza.ly}
 
-@section Multiple notes
 
-Rests should not collide with beams, stems and noteheads.  Rests may
-be under beams.  Rests should be move by integral number of spaces
-inside the staff, and by half spaces outside.  Notice that the half
-and whole rests just outside the staff get ledger lines in different
-cases.
 
-@lilypondfile{rest-collision.ly}
+@section Multiple notes
 
-Normal collisions. We have support for polyphony, where the
-middle voices are horizontally shifted.
+@lilypondfile{rest-collision.ly}
 
 @lilypondfile{collisions.ly}
 
-The number of stafflines of a staff can be set with the property
-numberOfStaffLines.  Ledger lines both on note heads and rests are
-adjusted.  Barlines also are adjusted.
+@lilypondfile{number-staff-lines.ly}
 
 
-@lilypondfile{number-staff-lines.ly}
 
 @section Spacing
 
-In a limited number of cases, LilyPond corrects for optical spacing
-effects.  In this example, space for opposite pointed stems is adjusted
-
 @lilypondfile{stem-spacing.ly}
 
-If there are accidentals in the music, we add space, but the space
-between note and accidentals is less than between the notes with the
-same value.  Clef changes also get extra space, but not as much as
-barlines.
-
-Even if a line is very tightly spaced, there will still be room
-between prefatory matter and the following notes.  The space after the
-prefatory is very rigid.  In contrast, the space before the barline
-must stretch like the space within the measure.
-
-Tight:
-
 @lilypondfile{spacing-tight.ly}
 
-Natural:
-
 @lilypondfile{spacing-natural.ly}
 
-Loose:
-
 @lilypondfile{spacing-loose.ly}
 
-Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
-lyrics don't collide with barlines.
-
 @lilypondfile{lyrics-bar.ly}
 
-Text is set with empty horizontal dimensions.  The boolean property
-textNonEmpty is used to respect the horizontal size of text.
-
 @lilypondfile{non-empty-text.ly}
 
 
 
-
 @section PianoStaff
 
 
 
 @section Global stuff
 
-Breaks can be encouraged and discouraged using @code{\break} and
-@code{\nobreak}.  They are abbrevs for @code{\penalty} commands.
-
 @lilypondfile{break.ly}
 
-Markings that are attached to (invisible) barlines are 
-delicate: the are attached to the rest of the score without the score
-knowing it.  Consequently, they fall over  often.
-
 @lilypondfile{bar-scripts.ly}
 
-Staff margins are also markings attached to barlines.  They should be
-left of the staff, and be centered vertically wrt the staff.  They may
-be on normal staffs, but also on compound staffs, like the PianoStaff
-
 @lilypondfile{staff-margin.ly}
 
-Breathing signs, also used for phrasing, do normally not influence
-global spacing -- only if space gets tight, notes are shifted to make
-room for the breathing sign. Breathing signs break beams running
-through their voice. In the following example, the notes in the first
-two measures all have the same distance from each other:
-
 @lilypondfile{breathing-sign.ly}
 
-Hara kiri staffs kill themselves if they are empty.  This example really
-contains two staffs, but the second contains only spaces, and is
-therefore removed. 
-
 @lilypondfile{hara-kiri-short.ly}
 
-In orchestral scores and hymns, voices are traditionally combined onto
-one staff.  LilyPond has a part combiner, that combines or separates two
-voices according to actual rhythm and pitch.  User-defined texts such as
-``solo'' and ``@`a2'' are typeset automagically, as appropriate.
-
 @lilypondfile{part-combine.ly}
 
 
-Fonts are  available in a default set of sizes: 11, 13, 16, 20, 23 and
-26pt staffheight.  Sizes of the text fonts and symbol fonts are made
-to match the staff dimensions.    
-
 @lilypondfile[nonfragment]{size11.ly}
 
 @lilypondfile[nonfragment]{size13.ly}
@@ -412,27 +189,14 @@ to match the staff dimensions.
 @lilypondfile[nonfragment]{size26.ly}
 
 
-@section Clefs and Time Signatures
 
-The transparent clef should not occupy any space and with style
-@code{fullSizeChanges}, the changing clef should be typeset in full
-size. For octaviated clefs, the ``8'' should appear closely above or
-below the clef respectively.  The ``8'' is processed in a convoluted
-way, so this is fragile as well.
+@section Clefs and Time Signatures
 
 @lilypondfile{clefs.ly}
 
-
-Key signatures appear on key  changes. They may also
-appear without barlines.  The restoration accidentals are not printed at
-the start of the line. If @code{createKeyOnClefChange} is set, they're
-also created on a clef change.
-
 @lilypondfile{keys.ly}
 
 
-
-
 @ignore
 @c the input file is too long and does not test for specific bugs
 
@@ -448,14 +212,11 @@ signatures.
 
 
 
-@section Hacks and Features
 
-As a last resort, the placement of items can be adjusted manually, by
-setting the @code{extra-offset} of an output object.
 
-@lilypondfile{generic-output-property.ly}
+@section Hacks and Features
 
-The same mechanism can be  used  to force pagebreaks.
+@lilypondfile{generic-output-property.ly}
 
 @lilypondfile{between-systems.ly}
 
index 6906eab7e912bcbc21ede70a06483e0c3912faae..d155917b569e6aaf97f320ab42bf51b8dd8e0205 100644 (file)
@@ -158,6 +158,7 @@ text text text text text text text text text text text text
 text text text text text text text text text text text text 
 text text text text text text text text text text text text 
 
-
+%% need to use an -I ../../../input/test to find the file
+%% \lilypondfile{tie.ly}
 
 \end{document}
index 49fc1f8256292567266cab4d805849f8f3da7a4e..125303f3ef3c803353eda79cecd1699b8486116e 100644 (file)
@@ -93,10 +93,11 @@ or @command{texi2dvi}.
 The result is a text document with formatted music integrated.
 
 @command{lilypond-book} will do its best to try to align the music to
-the left and right margins. Currently the most used papersizes and
-one- and twocolumn mode is supported. But if you use some more
-advances features, like the geometry-package or change the margins in
-La@TeX{} or use @code{@@pagesize} in texinfo, will break.
+the left and right margins. Currently all papersizes, one- and
+twocolumn mode and the @code{geometry} package is supported. 
+The TeXinfo command @code{pagesize} is on the TODO list for Lilypond 1.4.
+But changing the linewidth in other ways will not give you a straight
+right margin.
 
 This document assumes you have basic knowledge of GNU LilyPond and
 La@TeX{} or texinfo.
@@ -120,10 +121,11 @@ or
 These commands should be in the beginning of the document:
 @itemize @bullet
 @item @code{@@afourpaper}
+@item @code{@@afourlatex}
 @item @code{@@afourwide}
 @item @code{@@smallbook}
 @end itemize
-@code{@@pagesizes} are not supported.
+@code{@@pagesizes} are not yet supported.
 
 @subsection Examples
 
@@ -208,11 +210,9 @@ or
 \lilypond@{ YOUR LILYPOND CODE @}
 @end example
 
-The 'geometry' package is is not supported. The most popular
-papersizes should work.
-
 Lilypond-book know about the @code{\onecolumn} and 
-@code{\twocolumn} commands.
+@code{\twocolumn} commands, the @code{geometry} package and
+all the standard paper sizes.
 
 The music will be surrounded by @code{\preLilypondExample} and
 @code{\postLilypondExample}. The variables are 
@@ -221,26 +221,6 @@ to whatever he wants.
 @strong{[UGH: THIS DOES NOT HAPPEN WHEN
 YOU USE THE SHORT FORM, \LILYPOND@{ ... @}, CHECK OUT WHY]}
 
-@subsection @code{landscape} package 
-There is some simple support for landscape paper format, and this
-can be combined with the @code{\twocolumn} command. Only a4 and
-letter paper is supported, more to come...
-
-A more complete
-support, maybe also supporting the geometry package is planned, but
-there are more work that has to be done on @command{lilypond-book}
-first.
-
-This should work:
-@example
-\documentclass@{article@}
-\usepackage@{landscape@}
-\begin@{document@}
-\twocolumn
-BLA BLA BLA
-\end@{document@}
-@end example
-
 @subsection Examples 
 
 @example
@@ -321,7 +301,7 @@ overwritten.
 If you use @code{--outdir}, you should also @code{cd} to that directory
 before running LaTeX or makeinfo.
 
-@strong{[UGH: IS THIS THE BEST WAY TO DO IT. MAYBE ADD A COMMENT LINE TO THE
+@strong{[UGH: IS THIS THE BEST WAY TO DO IT? MAYBE ADD A COMMENT LINE TO THE
 GENERATED FILE, SO LILYPOND-BOOK CAN TEST IF THE FILE IT IS TO OVERWRITE
 IS GENERATED.]}
 
diff --git a/VERSION b/VERSION
index b512f995d829483cddd531680bf48f132488998c..1677e9941249160e475d601e8751264cd07829b9 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=113
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 3da9842e726e7f6b90ea61d30f553562312c2e89..9014bcfa35b31383553d5e34080d9c8a1c2da2ff 100644 (file)
@@ -1,4 +1,10 @@
-
+\header{
+texidoc="
+A sharp sign after a double sharp sign, as well as a flat sign
+after a double flat sign is automatically prepended with a
+natural sign.
+";
+}
 \version "1.3.110";
 
 
index 23a0c7ca7fe46d502f2cc270d05a96c13acfde97..c7ebadec805c83e0430d2800614dfaae8ed9bfcc 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Accidentals work: the second note does not get a sharp. The third and
+fourth show forced and courtesy accidentals.
+";
+}
 
 foo = \notes\relative c''   {   \key as \major; dis4 dis dis! dis? }
 
index f901b1a00fe6166ee5dc3c69d7533af27c816aab..6df0fc762a947623e935abfc03e1d9c256b260af 100644 (file)
@@ -1,3 +1,8 @@
+\header{
+texidoc="
+Arpeggios are supported, both cross-staff and broken single staff.
+";
+}
 
 \version "1.3.110";
 
index 5d3d34f8e4a36556e77b1c802b8fee8bbe68da56..ee0b5d18ba8dbfacfb10adef9655219d65f483f9 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Auto change piano staff switches  voices  between up and down staffs
+automatically; rests are switched along with the coming note.
+";
+}
 
 \score {
        \notes \context PianoStaff <
index 8a4788a684a53d25674d4b6793b85f6be45673d6..a4898e094c0ed992ad750b65913f502cb2c4bb73 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Markings that are attached to (invisible) barlines are 
+delicate: the are attached to the rest of the score without the score
+knowing it.  Consequently, they fall over  often.
+";
+}
 
 \version "1.3.110";
 
index 92e9c7eb2ee74c337c2afa3c03fbc483d8477e0c..fc3371953948da04afb37f2832db2450779657f6 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Beams can be typeset over fixed distance aligned staffs, beam
+beautification doesn't really work, but knees do. Beams should be
+behave well, wherever the switching point is.
+";
+}
 \score{
        \context PianoStaff <
        \context Staff=one \notes\relative c'{
index 83a9d5dfcbd23e2ebc715225fec246f9d2cd9993..af48d185f99f17f65cc5e8e0f6017f37ddf6118a 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Beams should behave reasonably well, even under extreme circumstances.
+Stems may be short, but noteheads should never touch the beam.
+";
+}
 \version "1.3.110";
 \score{
        \notes\relative c''{
index 1599857298f14b4aad2894e86d408c42fd9c7e91..003639f3808d3c60134b8b6f8bd0a21627db1d66 100644 (file)
@@ -1,4 +1,11 @@
-
+\header{
+texidoc="
+Beams should always reach the middle staff line.  The second beam
+counting from the note head side, should never be lower than the
+second staff line.  This does not hold for grace note beams.
+Override with @code{noStemExtend}.
+";
+}
 \version "1.3.110";
 
 \score { 
index cba2132db815a103940f185194d76673e2faf244..b1673319bff9dc940ae4903ef777396ce52ef78f 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Beaming is generated automatically. Beams may cross bar lines. In that
+case, line breaks are forbidden.  Yet clef and key signatures are
+hidden just as with breakable bar lines.
+";
+}
 
 \score { \context Staff \notes \relative c''  {
        [c8. c16]
index 1f72c7a90f1aae985bd6c7e57548dfb3b50b9fa9..144cb166a2f1a7fbcb4ce2214f3c97f320107452 100644 (file)
@@ -1,3 +1,8 @@
+\header{
+texidoc="
+The same mechanism can be  used  to force pagebreaks.
+";
+}
 
 \score {
 \notes { c1
index ce65bb178b88215556507df28633723b7a5b6907..4f8e9f972e8fbae3f7ff678332bc55ba4c0bf95a 100644 (file)
@@ -1,4 +1,9 @@
-
+\header{
+texidoc="
+Breaks can be encouraged and discouraged using @code{\break} and
+@code{\nobreak}.  They are abbrevs for @code{\penalty} commands.
+";
+}
 
 
 \score{
index 04e028c1635ae6c29bfa3a3de5a28fa634cb300c..31d399f85cfc5f1e36d3e057f189eec3a897fcae 100644 (file)
@@ -1,3 +1,14 @@
+\header{
+texidoc="
+Breathing signs, also used for phrasing, do normally not influence
+global spacing -- only if space gets tight, notes are shifted to make
+room for the breathing sign. Breathing signs break beams running
+through their voice. In the following example, the notes in the first
+two measures all have the same distance from each other:
+";
+}
+
+
 \version "1.3.110";
 
 \score {
index e3706546162e29199003fc5a7df3a13233a74099..d640871803b34c4f30eb7b2904558eae6fe133fd 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Chord names are generated from a list pitches, and are customisable
+from guile.  For some unlogical names, guile customisation is used
+by default.
+";
+}
 \version "1.3.110"
 chord = \notes\transpose c''\chords{
    c1
index 66d118991b17464a20e71cfc570042b768094097..6d941ff9715707ebb379cc32a8e397388a218fef 100644 (file)
@@ -1,3 +1,13 @@
+\header{
+texidoc="
+Chord tremolos look like beams, but are a kind of repeat symbol.
+To avoid confusion, chord tremolo beams do not reach the stems, but 
+leave a gap.  Chord tremolo beams on half notes are not ambiguous,
+as half notes cannot appear in a regular beam, and should reach the 
+stems.
+";
+}
+  
 \score { 
   \context Voice \notes\relative c {
        \repeat "tremolo" 8 { c16 d16 }
index a2a077adc3601016f696af55ccffb087ae1d7d66..47b094b73f331d39edc476687170965a8d63d4e0 100644 (file)
@@ -1,3 +1,14 @@
+
+\header{
+texidoc="
+The transparent clef should not occupy any space and with style
+@code{fullSizeChanges}, the changing clef should be typeset in full
+size. For octaviated clefs, the ``8'' should appear closely above or
+below the clef respectively.  The ``8'' is processed in a convoluted
+way, so this is fragile as well.
+";
+}
+
 \version "1.3.110";
 
 \score {
index f0c959a588b0f89c2dd34b8a7a489448c9628ce1..e072c48182128366d7536917800f38937c3a917b 100644 (file)
@@ -1,4 +1,8 @@
 \header{
+texidoc="
+Normal collisions. We have support for polyphony, where the
+middle voices are horizontally shifted.
+";
 filename =      "collisions.ly";
 description =   "random counterpoint to test collisions";
 enteredby =     "HWN,JCN";
index 7b860cfdb60d626057703979a685cb48ae18d756..624d601d7f31b701d8173cc6e82112236426ae16 100644 (file)
@@ -1,3 +1,14 @@
+\header{
+texidoc="
+Noteheads can have dots, and rests can too.  Augmentation dots should
+never be printed on a staff line, but rather be shifted vertically. They
+should go up, but in case of multiple parts, the down stems have down
+shifted dots.  (Wanske p. 186) In case of chords, all dots should be in
+a column.  The dots go along as rests are shifted to avoid collisions.
+";
+}
+
+
 \version "1.3.110";
 \score { 
   \context Voice \notes\relative c'' {
index cdc590630282b31078d212b78c6b559c59831c84..31f5dc597b0f2d83500d9ce0cc6695b2ce764ab1 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Dynamics appear below or above the staff.  If multiple dynamics are
+linked with (de)crescendi, they should be on the same line.
+";
+}
 \score{
 \notes\relative c''{
 a1\fff\> \!c,,\pp a'' a\p
index 5adbba97c8eb437a5ad5cc0ef566284c31381bba..f0368e7daa6b13e9b3b9fb12a691ea607194965c 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+As a last resort, the placement of items can be adjusted manually, by
+setting the @code{extra-offset} of an output object.
+";
+}
+
 \score{
        \notes\relative c''{
        \outputproperty #(make-type-checker 'note-head-interface) 
index 779cd99fce7e725ba20a46bfd71c3113a420097e..c906ed3fb2f81268e00a718a80d615f4db8aa359 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+More specific settings take precendence over less specific settings. The
+second slur has slurDirection set to down, overriding the stemup  setting.
+";
+}
 \version "1.3.110";
 
 \score {
index e07626c37209cdb8b354b4e900d1441fc0eb497d..951557e530747d6b5b90e7af9ed0bc125e4fa1ef 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Simple glissando lines between notes are supported.
+";
+}
+
 \score{
     <
         \context Staff=one \notes\relative c''{
index ee5fe5da8e0adc76b00e0ef8b93455b84f4ab8ba..dbc42a872c6ff592be80af046a58eab731319855 100644 (file)
@@ -1,3 +1,19 @@
+\header{
+texidoc="
+Grace notes are typeset as an encapsulated piece of music. You can
+have beams, notes, chords, stems etc. within a @code{\grace} section.
+Slurs that start within a grace section, but aren't ended are attached
+to the next normal note.  Grace notes have zero duration.  If there
+are tuplets, the grace notes won't be under the brace.  Grace notes
+can have accidentals, but they are (currently) spaced at a fixed
+distance.  Grace notes (of course) come before the accidentals of the
+main note.  Grace notes can also be positioned after the main note.
+
+Grace notes without beams should have a slash, if @code{flagStyle} is
+not set.  Main note scripts don't end up on the grace note.
+
+";
+}
 
 \score {\notes \context Voice = VA \relative c'' {
        \grace b8 c4-\fermata
index 5b977d5546fc8bd416a53a6e51dd6d4971388d92..b58e3c9eda6fed34668ab5cd40b84d8e3496de5e 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Hara kiri staffs kill themselves if they are empty.  This example really
+contains two staffs, but the second contains only spaces, and is
+therefore removed. 
+";
+}
 
 \version "1.3.110";
 zager = \context Staff = zager \notes \relative c'' {
index 20dc2b692248b775d51720ef07f4c1535ce1c439..427cda90108bb5d93b4beb94903346b2c09866d6 100644 (file)
@@ -1,3 +1,12 @@
+\header{
+texidoc="
+Key signatures appear on key  changes. They may also
+appear without barlines.  The restoration accidentals are not printed at
+the start of the line. If @code{createKeyOnClefChange} is set, they're
+also created on a clef change.
+";
+}
+
 \version "1.3.110";
 
 \score {
index 85f594a020fc6e46c5fcb881f757f8e8a9a5b859..52497a554b8866868be3fa5f550c68729b79822f 100644 (file)
@@ -1,4 +1,17 @@
 \header{
+texidoc="
+Lyrics can be set to a melody automatically.  Excess lyrics will be
+dumped.  Lyrics will not be set over rests.  You can have melismata
+either by setting a property melismaBusy, or by setting
+automaticMelismas (which will set melismas during slurs and ties).  If
+you want a different order than first Music, then Lyrics, you must
+precook a chord of staffs/lyrics and label those.  Of course
+@code{\rhythm} ignores any other rhythms in the piece.  Hyphens and
+extenders do not assume anything about lyric lengths, so they continue
+to work.
+";
+
+
 filename =      "twinkle-pop.ly";
 %title =        "Ah, vous dirais-je, maman ";
 description =   "twinkle twinkle in pop-song-settings";
index eece431c4e87e5a2511e8ceba59c6f0fffd24602..2927eb62ae964d03f29035b9ff356e936fd51d8b 100644 (file)
@@ -25,14 +25,14 @@ textIII =  \lyrics  { la -- da __ doo dah; dargh la dargh loo.  }
 \score {
 
     \notes < \context Staff = SA \context Voice = VA { s1 }
-      \context LyricVoice = "VA-1" { s1 }
-      \context LyricVoice = "VA-2" { s1 }
+      \context LyricsVoice = "VA-1" { s1 }
+      \context LyricsVoice = "VA-2" { s1 }
       
       \addlyrics
          \context Staff = SA \m
-         < \context LyricVoice = "VA-1" \textI
-           \context LyricVoice = "VA-2" \textII
-           \context LyricVoice = "VA-3" \textIII
+         < \context LyricsVoice = "VA-1" \textI
+           \context LyricsVoice = "VA-2" \textII
+           \context LyricsVoice = "VA-3" \textIII
          >
          
     >
index ad47fbc19b534b0db903ec29fdb5ddceab531ed3..998ce458ee858b542855f8f4af2c002cb11d2929 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
+lyrics don't collide with barlines.
+";
+}
 
 \score {
        \context StaffGroup <
index 56a7be277adaac5bf590d13d26ed792b39180079..2006b0879a1ca73129ca2be304bf54f2d39f8abc 100644 (file)
@@ -1,12 +1,18 @@
-% Tests a number of features:
-% * Lyric_phrasing_engraver
-% * Stanza_number_engraver
-% * Automatic melismata on beamed notes
 
 \version "1.3.110";
 \include "english.ly"
 
 \header{
+texidoc="
+Multiple stanzas
+
+ Tests a number of features:
+ * Lyric_phrasing_engraver
+ * Stanza_number_engraver
+ * Automatic melismata on beamed notes
+
+";
+
     title = "Crowned with Honour";
     composer = "Oliver Holden (1765-1844)";
     poet = "Thomas Kelly (1769-1855)";
@@ -70,9 +76,9 @@ Bass = \notes \relative c{
 
 TheLyrics =  \lyrics <
         {
-           \context LyricVoice = "Soprano-1"
-           \property LyricVoice .stanza = "1:"
-           \property LyricVoice .stz = "(1)"
+           \context LyricsVoice = "Soprano-1"
+           \property LyricsVoice .stanza = "1:"
+           \property LyricsVoice .stz = "(1)"
                 The4 head    that once was crowned with thorns
                 Is   crowned with glo -- ry  now;
                 A roy -- al di -- a -- dem a -- dorns
@@ -81,9 +87,9 @@ TheLyrics =  \lyrics <
                 The might -- y Vic -- tor's  brow.
         }
         {
-           \context LyricVoice = "Soprano-2"
-           \property LyricVoice .stanza = "2:"
-           \property LyricVoice .stz = "(2)"
+           \context LyricsVoice = "Soprano-2"
+           \property LyricsVoice .stanza = "2:"
+           \property LyricsVoice .stz = "(2)"
                 The4 high -- est place that heav'n af -- fords
                 Is His by sov -- 'reign  right;
                 The King of kings, the Lord of lords,
@@ -92,9 +98,9 @@ TheLyrics =  \lyrics <
                 He reigns in glo -- ry  bright.
         }
         {
-           \context LyricVoice = "Soprano-3"
-           \property LyricVoice .stanza = "3:"
-           \property LyricVoice .stz = "(3)"
+           \context LyricsVoice = "Soprano-3"
+           \property LyricsVoice .stanza = "3:"
+           \property LyricsVoice .stz = "(3)"
                 The joy of all who dwell a -- bove,
                 The joy of saints be --  low,
                 To4 whom He man -- i -- fests His love,
index eb90cbd8b10e8b15539d3f926b22d6de5b101315..c801ec4c67dab4f00db102e5e6d173ff6462a959 100644 (file)
@@ -1,3 +1,12 @@
+\header{
+texidoc="
+If @code{Score.skipBars} is set,
+the signs for four, two, and one measure rest are combined to
+produce the graphical representation of rests for up to 10 bars.
+The number of bars will be written above the sign.
+";
+}
+
 thenotes = \notes \relative cis' {
 \property Score. skipBars = ##t
 \time 4/4;
index 3fa5193fe10d95171bd54b51275d8b55c76ef0bf..23f3e335b8befaf5b1f2d883bf2c70c2f53e9811 100644 (file)
@@ -1,3 +1,11 @@
+\header{
+texidoc="
+Multiple measure rests do not collide with barlines and clefs.  They
+are not expanded when you set @code{Score.skipBars}.  Although the
+multi-measure-rest is a Spanner, minimum distances are set to keep it
+colliding from barlines. 
+";
+}
 \version "1.3.110";
 
 \score { \notes { \time 3/4; \key cis \major;
index a9227e3a67f3249609aae81c36ee9d489c58e408..1d445c81fb8c9dac9b88764d082c2c8fdfe9f90c 100644 (file)
@@ -1,4 +1,9 @@
-
+\header{
+texidoc="
+Text is set with empty horizontal dimensions.  The boolean property
+textNonEmpty is used to respect the horizontal size of text.
+";
+}
 \score { \notes {
 \property Voice.TextScript \override #'no-spacing-rods = ##f
 c4_"very wide and long text" c4
index bd313628cedcf7f9dc75c3abb9e2fc82619ad9a6..808c16020cb5ac97b7f001ec2729104325ad09c5 100644 (file)
@@ -1,3 +1,14 @@
+\header{
+texidoc="
+Note head shapes are settable.  The stem endings should be adjusted
+per note head.  If you want different note head styles on one stem,
+you must create a special context called Thread.
+
+Harmonic notes have a different shape and different
+dimensions. Nevertheless, noteheads in both styles can be combined, on
+either up or down stems.
+";
+}
 
 \version "1.3.110";
 
index f275c84ccf8bab1e5dd185ce0932aabc6a6cabbc..d8f758a1e9e3634080cf0491b6e9c9251c35b9be 100644 (file)
@@ -1,3 +1,11 @@
+\header{
+texidoc="
+The number of stafflines of a staff can be set with the property
+numberOfStaffLines.  Ledger lines both on note heads and rests are
+adjusted.  Barlines also are adjusted.
+";
+}
+
 \score { 
   \context Voice \notes\relative c {
     
index 85efe4eee78e70a42e62595a88d9c6a115aabf65..d710038cde3b9c4351edb72ff6ecbec353e28f23 100644 (file)
@@ -1,3 +1,12 @@
+\header{
+texidoc="
+In orchestral scores and hymns, voices are traditionally combined onto
+one staff.  LilyPond has a part combiner, that combines or separates two
+voices according to actual rhythm and pitch.  User-defined texts such as
+``solo'' and ``@`a2'' are typeset automagically, as appropriate.
+";
+}
+
 \score{
        \context Staff = flauti <
                \time 4/4;
index 2ee0bc8424377046649be2b2419cb54b00125501..28313665a578ca250cb005647f9245c3c4794ae1 100644 (file)
@@ -1,3 +1,8 @@
+\header{
+texidoc="
+Folded.  This doesn't make sense without alternatives, but it works.
+";
+}
 
 \score { \notes\context Staff\relative c'' {
 \repeat fold 3 { c^"3$\\times$ 0alt" d }
index 06ff02cd3101d19cbb25d2373e36186a55cb3bcf..ae6a06de0d8ab8ef81ad780ac23215944f1761f3 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Across linebreaks, the left edge of a first and second alternative
+bracket should be equal
+";
+}
 
 \score  {
 \notes
index 8d62f8991c8e789ff7df0541a9c7793112c9d0e6..cb965c1610cfecf9985c7cd924cbe4bf00ce7e7a 100644 (file)
@@ -1,3 +1,17 @@
+\header{
+texidoc="
+LilyPond has three modes for repeats: folded, unfolded and
+semi-unfolded.  Unfolded repeats are fully written out. Semi unfolded
+repeats have the body written and all alternatives sequentially.
+Folded repeats have the body written and all alternatives
+simultaneo.ly.  If the number of alternatives is larger than the
+repeat count, the excess alternatives are ignored.  If the number of
+alternatives is smaller, the first alternative is multiplied to get to
+the number of repeats.
+
+Unfolded behavior:
+";
+}
 
 \score {
 
index b64a981a03cd2d2fc7ae8ebd5e2e6533fd8d3aa9..634ba4dadd70b0efe20d90fcf5642310e34ac0ee 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
+If they don't barlines should still be shown.
+";
+}
 
 %  no alts.
 \score { \notes
index b55e6cfb0976cad715b5a4ffccbda4bf9396c918..a00046c6ea08436cd1e05d1af76ee0887b589728 100644 (file)
@@ -1,3 +1,12 @@
+\header{
+texidoc="
+Rests should not collide with beams, stems and noteheads.  Rests may
+be under beams.  Rests should be move by integral number of spaces
+inside the staff, and by half spaces outside.  Notice that the half
+and whole rests just outside the staff get ledger lines in different
+cases.
+";
+}
 
 scale = \notes \relative c' {
   c8 d e f g a b c c d e f g a b c
index 1396e8fb249278eec241927554079279fda1e170..0e7eea17031fddacbe3067496b5de03eaeb96a63 100644 (file)
@@ -1,4 +1,13 @@
-\score { \notes {
+\header{
+texidoc="
+Rests.  Note that the dot of 8th, 16th and 32nd rests rest should be
+next to the top of the rest.  All rests except the whole rest are
+centered on the middle staff line.
+";
+}
+
+
+       \score { \notes {
        \time 4/4;
 r \longa * 1/4  r\breve * 1/2 
 r1 r2 r4 r8 r16 r32 r64 r128 r128
index bdd27672270b74646612e1a138552efc30512101..6bc299ba3841e0c4883583552b1c3c4ebe96997a 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Fonts are  available in a default set of sizes: 11, 13, 16, 20, 23 and
+26pt staffheight.  Sizes of the text fonts and symbol fonts are made
+to match the staff dimensions.    
+";
+}
 
 \include "paper11.ly"
 \include "allfontstyle.ly";
index fb5cf7fed5c58f8174b46dd6df84eb89cc7dc156..868d156491e36d98e729ed9ec457dd0545a71a94 100644 (file)
@@ -1,3 +1,11 @@
+\header{
+texidoc="
+Across line breaks, slurs behave nicely.  On the left, they extend to
+just after the preferatory matter, and on the right to the end of the
+staff.  A slur should follow the same vertical direction it would have
+in unbroken state.
+";
+}
 \score{
        \notes \relative c''{
                e1( \break) a,
index 2f1f8ed6af405f089d3b73a35f1961c39170ba15..b4805b1beabfa9f1c20aa90b9fd87cf43d954f55 100644 (file)
@@ -1,4 +1,9 @@
-
+\header{
+texidoc="
+The same goes for slurs. They behave decently when broken across
+linebreak.
+";
+}
 
        
 \score{
index a0f90f807e762bb45856c43decac81fddf995cc8..fdc690766eaad33c40cc106d076b509ccbff46da 100644 (file)
@@ -1,4 +1,10 @@
-
+\header{
+texidoc="
+Slurs should look nice and symmetric.  The curvature may increase
+only to avoid noteheads, and as little as possible.  Slurs never
+run through noteheads or stems.
+";
+}
 \version "1.3.110";
 \score{
        \notes\relative c''{
index e0893afab8af7ea2e9914fd2b6c5fed5cbb8b589..eaac633a282f6a9bd9a20ab0f27e364e6f25f321 100644 (file)
@@ -1,3 +1,8 @@
+\header{
+texidoc="
+Loose:
+";
+}
 \score {
        \notes { \time 2/2; c'2 c'2 \time 2/2; }
        \paper { linewidth = 5.0\cm;
index 3a31c995c32accc925f6174adf161be48f710669..74e9f6f0f716c83108e109b36d25fbb7c7a8ae68 100644 (file)
@@ -1,3 +1,8 @@
+\header{
+texidoc="
+Natural:
+";
+}
 
 \score {
        \notes { \time 2/2; c'2 c'2 \time 2/2; }
index f9cbe7c071dbad252d89ac107833e435d6a98c0a..75c7d16f970aff56096615646b24435c446a5315 100644 (file)
@@ -1,4 +1,18 @@
+\header{
+texidoc="
+If there are accidentals in the music, we add space, but the space
+between note and accidentals is less than between the notes with the
+same value.  Clef changes also get extra space, but not as much as
+barlines.
 
+Even if a line is very tightly spaced, there will still be room
+between prefatory matter and the following notes.  The space after the
+prefatory is very rigid.  In contrast, the space before the barline
+must stretch like the space within the measure.
+
+Tight:
+";
+}
 \score {
        \notes { \time 2/2; f''2 c'2 \time 2/2; }
        \paper { linewidth = 2.5 \cm;
index dc0150a47772e74465ebc4ca93c61cad067601e2..aa3ac8a27fb8dc39c1dc9119376dc1eddad5a0d3 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+The staccato dot (and all scripts with follow-into-staff set), must
+not be on staff lines.
+";
+}
 \score { 
   \context Voice \notes\relative c {
     
index ef9312ceb9c47b66d6622823753eee508999c0ce..de631bce01f2cd56e2d6ea9a23082f994fecdf85 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+Staff margins are also markings attached to barlines.  They should be
+left of the staff, and be centered vertically wrt the staff.  They may
+be on normal staffs, but also on compound staffs, like the PianoStaff
+";
+}
 
        
 \version "1.3.110";
index fb331e9674d1c1f47062c752222ae0e49a189712..1733d3995f8130aa9c3d7345d6fde0539a4e6569 100644 (file)
@@ -1,3 +1,10 @@
+\header{
+texidoc="
+@c FIXME
+Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}.
+";
+}
+
 \score{
        \notes\relative c{
            b''4 ~ b8()b8 e4 e,
index 800185c33e701dc9426eec15684548a980b9d0b2..78f20f518268e33a0ba4120cc4829aa3969f8ab4 100644 (file)
@@ -1,3 +1,16 @@
+\header{
+texidoc="
+Beams, stems and noteheads often have communication troubles, since
+the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
+point) are mixed.
+
+Stems, beams, ties and slurs should behave similarly, when placed
+on the middle staff line. Of course stem-direction is down for high
+notes, and up for low notes.
+";
+}
+
+
 \score { 
   \context Voice \notes\relative c {
     b''4 ~ b8()b8 e4 e,
index 772cca797bf67a24f16de416f9e2a0ef9bf527ca..765416f54ce74e4f48b9a92c4ac71333a6188854 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+In a limited number of cases, LilyPond corrects for optical spacing
+effects.  In this example, space for opposite pointed stems is adjuste
+";
+}
 \score { 
   \context Voice \notes\relative c {
     
index 13f1a9ddd0b3acc10c20cd187966357ba6f29c81..4856eb5a00947f4ce9f5dfe3130652be56f8fc4d 100644 (file)
@@ -1,3 +1,11 @@
+\header{
+texidoc="
+Stem tremolos or rolls are tremolo signs that look like beam segments
+crossing stems.  If the stem is in a beam, the tremolo must be parallel
+to the beam.  If the stem is invisible (eg. on a whole note), the
+tremolo must be centered on the note.
+";
+}
 
 \version "1.3.110";
 \score{
index 7b2e9c1c165d70bd17920d280f5350232207f5d7..d6a20c92c6db8922a8dcf8abd32e6261c4924f50 100644 (file)
@@ -1,3 +1,14 @@
+\header{
+texidoc="
+When tieing notes with accidentals across a bar boundary, the accidental
+must not be drawn on the note in the new bar.  Instead, the next note of
+the same pitch in this bar should always show the accidental (even if
+it's natural).  Slurring a accidentaled note to a natural one across bar
+boundaries should be explicit.
+
+Pitches can be verified by printing them  with the @code{NoteNames} context.
+";
+}
 
 thenotes = \notes \relative cis' { \time 4/4;
 gis'2 gis ~ |
index afed40ee0061187829365d7e35432c3731ec2ccf..25fffecf9c9035c622ba832c5f344f9b1dcb005e 100644 (file)
@@ -1,4 +1,10 @@
-
+\header{
+texidoc="
+When tieing chords, the outer slurs point outwards, the inner slurs
+point away from the center of the staff.  Override with
+@code{tieVerticalDirection}.
+";
+}
 \version "1.3.110";
 
 t = \notes \relative c' {   <c e g> ~ <c e g> }
index 4a6d255da60ebfa16a168181b969693c84b922c4..6cc474c3b67c6ea9b63dbe16ce7eb01623fffc06 100644 (file)
@@ -1,3 +1,9 @@
+\header{
+texidoc="
+Ties are strictly horizontal.  They are placed in between note heads.
+The horizontal middle should not overlap with a staffline.
+";
+}
 \score{
        \notes\relative c''{
                %b2~b4~b8~b16~b32~b64 r64\break
index 3619e5070965d5bfa337ca3dc192b93c52d7bc3c..83c6bce13f0944263e6744cfebd638b6cb823cd7 100644 (file)
@@ -1,3 +1,11 @@
+\header{
+texidoc="
+Tuplets are indicated by a bracket with a number.  There should be no
+bracket if there is one beam that matches  the length of the tuplet.
+The bracket does not interfere with the stafflines, and the number is
+centered in the gap in the bracket.
+";
+}
 \score{
        \notes \context Voice \relative c'' {
                 \times 2/3 { \times 2/3 { a8 b c}  c }
index a871fb4298b0e7db1317de3f7c3ad456126a7d4a..79f63be70c5dc3e7c06cddc710a9524769da05ec 100644 (file)
@@ -4,8 +4,12 @@
 # * Figure out clean set of options. Hmm, isn't it pretty ok now?
 # * add support for .lilyrc
 # * EndLilyPondOutput is def'd as vfil. Causes large white gaps.
+# * texinfo: add support for @pagesize
 
-# todo: dimension handling (all the x2y) is clumsy. 
+# todo: dimension handling (all the x2y) is clumsy. (tca: Thats
+#       because the values are taken directly from texinfo.tex,
+#       geometry.sty and article.cls. Give me a hint, and I'll
+#       fix it.)
 
 # This is was the idea for handling of comments:
 #      Multiline comments, @ignore .. @end ignore is scanned for
@@ -38,7 +42,7 @@ import operator
 
 program_version = '@TOPLEVEL_VERSION@'
 if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
-       program_version = '1.3.106'     
+       program_version = '1.3.113'
 
 include_path = [os.getcwd()]
 
@@ -250,7 +254,7 @@ class LatexPaper:
 
 class TexiPaper:
        def __init__(self):
-               self.m_papersize = 'a4'
+               self.m_papersize = 'letterpaper'
                self.m_fontsize = 12
        def get_linewidth(self):
                return texi_linewidths[self.m_papersize][self.m_fontsize]
@@ -278,10 +282,11 @@ latex_linewidths = {
        'executivepaper':{10: 345, 11: 360, 12: 379}}
 
 texi_linewidths = {
-       'a4': {12: 455},
-       'a4wide': {12: 470},
-       'smallbook': {12: 361},
-       'texidefault': {12: 433}}
+       'afourpaper': {12: mm2pt(160)},
+       'afourwide': {12: in2pt(6.5)},
+       'afourlatex': {12: mm2pt(150)},
+       'smallbook': {12: in2pt(5)},
+       'letterpaper': {12: in2pt(6)}}
 
 option_definitions = [
   ('EXT', 'f', 'format', 'set format.  EXT is one of texi and latex.'),
@@ -342,7 +347,9 @@ output_dict= {
 
 # should also support fragment in
                  
-                 'output-all': r"""@tex
+                 'output-all': r"""
+@include %(fn)s-doc.texi
+@tex
 \catcode`\@=12
 \input lilyponddefs
 \def\EndLilyPondOutput{}
@@ -429,6 +436,8 @@ def get_re (name):
        return  re_dict[format][name]
 
 def bounding_box_dimensions(fname):
+       if g_outdir:
+               fname = os.path.join(g_outdir, fname)
        try:
                fd = open(fname)
        except IOError:
@@ -562,12 +571,10 @@ def scan_texi_preamble (chunks):
        idx = 0
        while 1:
                if chunks[idx][0] == 'input':
-                       if string.find(chunks[idx][1], "@afourpaper") != -1:
-                               paperguru.m_papersize = 'a4'
-                       elif string.find(chunks[idx][1], "@afourwide") != -1:
-                               paperguru.m_papersize = 'a4wide'
-                       elif string.find(chunks[idx][1], "@smallbook") != -1:
-                               paperguru.m_papersize = 'smallbook'
+                       for s in ('afourpaper', 'afourwide', 'letterpaper',
+                                 'afourlatex', 'smallbook'):
+                               if string.find(chunks[idx][1], "@%s" % s) != -1:
+                                       paperguru.m_papersize = s
                idx = idx + 1
                if idx == 10 or idx == len(chunks):
                        break
@@ -833,6 +840,28 @@ def system (cmd):
                error ('Error command exited with value %d\n' % st)
        return st
 
+
+texidoc_re = re.compile (r'.*?\n\s*texidoc\s*=\s*"((([^"])|([^\\]\\"))*)".*', re.DOTALL)
+def extract_texidoc (lyfile):
+       """
+       Extract the ``texidoc'' entry from the lyfile.ly, and write it to
+       lyfile-doc.texi.
+
+       Maybe this should be output by `lilypond --header=texidoc' or so?
+       """
+       outfile = os.path.basename (os.path.splitext (lyfile)[0]) + "-doc.texi"
+       sys.stderr.write ("Writing `%s'\n" % outfile)
+       f = open (lyfile)
+       s = f.read (-1)
+#      doc = re.sub (r'(.|\n)*?\n\s*texidoc\s*=\s*"((([^"])|([^\\]\\"))*)"(.|\n)*', '\\2', s) + '\n'
+       m = texidoc_re.match (s)
+       doc = ''
+       if m:
+               doc = m.group (1) + '\n'
+       f = open (outfile, 'w')
+       f.write (doc)
+       f.close ()
+
 def compile_all_files (chunks):
        eps = []
        tex = []
@@ -866,6 +895,8 @@ def compile_all_files (chunks):
                lilyopts = string.join (incs, ' ' )
                texfiles = string.join (tex, ' ')
                system ('lilypond %s %s' % (lilyopts, texfiles))
+               for i in tex:
+                       extract_texidoc (i)
        for e in eps:
                system(r"tex '\nonstopmode \input %s'" % e)
                system(r"dvips -E -o %s %s" % (e + '.eps', e))
index 42889ebec3d544ebcdd6c4401651e9a4e08062d3..e24d66435a36b6768e59fc617645c0b8dcfe4dbc 100644 (file)
@@ -3,10 +3,10 @@
 .SUFFIXES: .html .info .texi .texinfo
 
 $(outdir)/%.info: $(outdir)/%.texi
-       -$(MAKEINFO) --force --output=$@ $<
+       -$(MAKEINFO) --force -I $(outdir) --output=$@ $<
 
 $(outdir)/%.html: $(outdir)/%.texi
-       -$(MAKEINFO) --force --output=$@ --html --no-split --no-headers $<
+       -$(MAKEINFO) --force -I $(outdir) --output=$@ --html --no-split --no-headers $<
 # we want footers even if website builds (or is built) partly
        $(footify) $@
 
@@ -22,7 +22,7 @@ $(outdir)/%.dvi:      $(outdir)/%.texi
        cd $(outdir); texi2dvi ../$< 
 
 $(outdir)/%.txt: $(outdir)/%.texi
-       $(MAKEINFO) -I../  --no-split --no-headers --output $@ $<
+       $(MAKEINFO) -I../ -I $(outdir) --no-split --no-headers --output $@ $<
 
 $(outdir)/%.texi: %.texi
        rm -f $@