X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Ftopdocs%2FNEWS.texi;h=238d845fb163ebad2588510a2e6096654e911b1f;hb=e0875938e6a3751a782bc057f9044acdc221edc8;hp=2593e4ea2e18683188b0df51e92b232d641cdb1d;hpb=e2f5ba92300dc3fb7517165ac224e1500ad850dd;p=lilypond.git diff --git a/Documentation/topdocs/NEWS.texi b/Documentation/topdocs/NEWS.texi index 2593e4ea2e..238d845fb1 100644 --- a/Documentation/topdocs/NEWS.texi +++ b/Documentation/topdocs/NEWS.texi @@ -7,12 +7,127 @@ @unnumbered New features in 2.3 since 2.2 @itemize @bullet +@item @code{\bookpaper} and @code{\paper} have been renamed to +@code{\paper} and @code{\layout} respectively, to better match their +function. + +@item Parts that use @code{\quote} can now be transposed. + +@item LilyPond does not try to produce output for files that +have a parse error. + +@item @code{lilypond-book} will now remove any output files that +contain failed music snippets. + +@item The mode changing commands (@code{\chords}, @code{\lyrics}, etc.) +have been renamed to @code{\chordmode}, @code{\lyricmode}, etc. The +command @code{\chords} is an abbreviation for + +@example + \new ChordNames \chordmode ... +@end example + +@noindent +@code{\drums}, @code{\lyrics}, @code{\chords}, @code{\figures} +function similarly. + +@item The types of events quoted with @code{\quote} can now be tuned +with @code{quotedEventTypes}. By default, only notes and rests end up +in quotes. + +@item LilyPond will try to keep +staves at the same distances across a page, but it will stretch +distances to prevent collisions. This results in a more even +appearance of the page. + +@item Key signature cancellations are now printed before the bar line, +and their appearance has been improved. + +@item Different voices that all use @code{\quote} can now refer to +each other. + + +@item The automatic staff changer, which is invoked with +@code{\autochange}, now creates the @code{up} and @code{down} staff +automatically, and uses bass clef for the bottom staff. + +@item There is now support for putting two slurs on chords, both above +and below. This is switched on with the @code{doubleSlurs} property. + +@item Running trills now have their own spanner and event, + +@example + c1\startTrillSpan c4\stopTrillSpan +@end example + +@item There is a new markup command @code{\postscript} that takes a +string that is dumped as verbatim PostScript in the output. + +@item The melody for a @code{\lyricsto} text can be changed during a +melody by setting the @code{associatedVoice} property. + +@item The @code{\lyricsto} keyword now automatically switches on +lyrics mode. + +@item The LilyPond binary now supports output options +@code{--dvi} @code{--png} @code{--ps} @code{--pdf} and +@code{--preview}. The old wrapper script for La@TeX{} has been +renamed to @code{lilypond-latex}. + +@item Support for ambitus has been rewritten. The Ambitus object is now +a grouping object, composed of @code{AmbitusLine}, +@code{AmbitusAccidental} and @code{AmbitusNoteHead}. These objects may +be tuned similar to accidentals and note heads. + +@item Ledger lines are now shortened when the spacing is tight. This +prevents ledger lines from colliding with each other. + +@item Slur formatting has been rewritten. The new slur code +works similar to the Beam formatter: scores are assigned for all +esthetic components of a slur. A large number of combinations for +begin and end points is then tried out. Slurs will now also take into +account collisions with staff lines, scripts (like staccato and +accent) and accidentals. + + +@item In the LilyPond emacs mode, entering @code{|} will display the + current beat within the measure. + +@item Colliding notes are now correctly aligned relative to notes in other staves. + +@item An experimental GNOME output backend is available for developers. +It depends on several unreleased packages such as gnome-guile TLA and +Pango CVS. The output interface coverage is sparse, but it already +does support point-and-click on the GNOME Canvas. See also +@file{scm/output-gnome.scm}. + +@item Context definitions are now stored in identifiers that match the +context name, in other words, to modify a @code{Staff} context, the +following code may be used. + +@example +\context @{ + \Staff + .. +@} +@end example + +@item A new block, @code{\bookpaper} has been introduced to +hold settings for paper size and output scaling. Further options +include @code{raggedbottom} (if set, systems are not vertically filled +to reach the bottom of the page), and @code{raggedlastbottom}. + + @item Support for fret diagrams has been contributed by Carl D. Sorensen. @file{input/test/fret-diagram.ly} contains an example. -@item The @code{--safe} mode has been revisited: it makes the basic -ly: interface available, and stops malicious @TeX{} code. +@item The @code{--safe-mode} has been revisited: GUILE evaluation +is done in the R5RS safe module, with only the basic @code{ly:} +interface available and malicious @TeX{} code is stopped. However, to +be reasonably safe, you are advised to use the PostScript backend +rather than the @TeX{} backend anyway; and if possible use an UML +sandbox to run gs or latex. @item Music syntax can now be extended seamlessly. As an example, here is the new implementation @code{\applymusic}, @@ -34,7 +149,7 @@ produces a rendered markup of the music. An example is in @item LilyPond expressions can be embedded into Scheme. The syntax for this is @code{#@{ ... #@}}. Within such a block, Scheme forms can be introduced using a @code{$} character (@code{$$} results in a single -`$' character). These forms are then printed in the pattern. +`$' character). These forms are then inserted in the pattern. @example #(define (textoffset dx dy) @@ -60,7 +175,7 @@ result is that @{ a b c @} @end example -is the same as +is interpreted as @example \header @{ title = "The Title" @} @@ -71,31 +186,30 @@ is the same as @} @end example -Actually, a toplevel music list is now handled quite flexibly by -@code{default-toplevel-music-handler}. Similarly, a @code{\score} -block at toplevel is handled by @code{default-toplevel-score-handler} -and a @code{book} at toplevel is handled by -@code{default-toplevel-book-handler}. The default behavior of these -handlers produces the results described above. +This is handled by the function defined in +@code{toplevel-music-handler}. Similarly, @code{\score} and +@code{\book} are handled by @code{toplevel-score-handler} and a +@code{toplevel-book-handler}. By changing these variables, different +results can be obtained. -@ignore +@item Mode changing commands, +such as @code{\chords} and @code{\figures} must now be directly +followed by delimiters. The following example demonstrates the new +behavior, -@c FIXME: un-geekify -These default handlers have the following effect. A Music list at -toplevel is encapsulated in a @code{score} block, and a @code{score} -block at toplevel is encapsulated in a @code{book} block. A -@code{book} block at toplevel generates printed output. -@end ignore +@verbatim + \figures \context Figures { .. } % wrong + \context Figures \figures { .. } % right +@end verbatim -@item Start pitch for @code{relative} music is optional for music lists. -The default value is one octave below middle C. +@item The starting pitch for @code{relative} music is optional for music lists. +The default value is middle C. @c update-me? formal definition of newaddlyrics, once it works -@item Combining lyrics with music can be @code{\newlyrics} +@item Combining lyrics with music can be done with @code{\addlyrics} @example -<< \relative @{ \clef bass d2 d c4 bes a2 \break @@ -106,10 +220,9 @@ The default value is one octave below middle C. \newlyrics @{ Not much can go wrong! @} ->> @end example -Syntactically, @code{\newlyrics} acts like an infix operator. +Syntactically, @code{\addlyrics} acts like an infix operator. @item The parser is encapsulated in a Scheme function @code{ly:parse-file}, so the following fragment processes two files @@ -129,24 +242,26 @@ package installed to function properly. @code{\encoding}. The strings for markup texts are translated automatically. -@item The toplevel block @code{book} introduces page layout. -A @code{book} groups @code{score} blocks into one page layout entity. -Page layout consists of markup titles, headers and footers, and page -breaking. Two page breaking algorithms are available, the classic -ragged pages (the default), and optimal page breaking +@item The toplevel block @code{\book} introduces page layout. +A @code{\book} groups @code{\score} blocks into one page layout +entity. For example, two scores are combined in one book with @example -\paper @{ - %% Select page breaking function. - %% #(define page-breaking ly:ragged-page-breaks) - #(define page-breaking ly:optimal-page-breaks) -@} \book @{ \score @{ ... @} \score @{ ... @} @} @end example + +@item +Titling and page breaks are handled by LilyPond. Page breaks may be +inserted manually with +@example + \pageBreak +@end example + +@item The @code{lilypond} program does not generate La@TeX{} titles or page layout. If you need La@TeX{} titles, you can use the @code{lilypond-book} program.