]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
Issue 4487/4: add Changes entry for \etc
[lilypond.git] / Documentation / changes.tely
index 6e4072c50ea178c1916ff0014ec73a6a4702f00c..f706653f3dafa4da28545e5e0ef5b15b3ef2af86 100644 (file)
@@ -61,6 +61,76 @@ which scares away people.
 
 @end ignore
 
+@item
+Music (and scheme and void) functions and markup commands that
+just supply the final parameters to a chain of music and function
+and markup command calls, respectively, can now be defined in the
+form of just writing the expression cut short with @code{\etc}.
+@lilypond[verbatim,quote]
+bold-red-markup = \markup \bold \with-color #red \etc
+highlight = \tweak font-size 3 \tweak color #red \etc
+
+\markup \bold-red "text"
+\markuplist \column-lines \bold-red { One Two }
+
+{ c' \highlight d' e'2-\highlight -! }
+@end lilypond
+
+@item
+LilyPond functions defined with @code{define-music-function},
+@code{define-event-function}, @code{define-scheme-function} and
+@code{define-void-function} can now be directly called from Scheme
+as if they were genuine Scheme procedures.  Argument checking and
+matching will still be performed in the same manner as when
+calling the function through LilyPond input.  This includes the
+insertion of defaults for optional arguments not matching their
+predicates.  Instead of using @code{\default} in the actual
+argument list for explicitly skipping a sequence of optional
+arguments, @code{*unspecified*} can be employed.
+
+@item
+Current input location and parser are now stored in GUILE fluids
+and can be referenced via the function calls @code{(*location*)}
+and @code{(*parser*)}.  Consequently, a lot of functions
+previously taking an explicit @code{parser} argument no longer do
+so.
+
+Functions defined with @code{define-music-function},
+@code{define-event-function}, @code{define-scheme-function} and
+@code{define-void-function} no longer use @code{parser} and
+@code{location} arguments.
+
+With those particular definitions, LilyPond will try to recognize
+legacy use of @code{parser} and @code{location} arguments,
+providing backwards-compatible semantics for some time.
+
+@item
+The @code{whiteout} grob property and @code{\whiteout} markup command
+now create a white background built from multiple displaced copies of
+the glyph in order to approximate the contours of its outline.
+The previous rounded box white background can be achieved with the
+new @code{whiteout-box} grob property and @code{\whiteout-box} markup
+command.  Setting the @code{whiteout} property to a number now sets
+the thickness of the white outline as a multiple of staff-line
+thickness.  Similarly, overriding the @code{thickness} property of
+the @code{\whiteout} markup command sets the thickness of the white
+outline it produces.
+
+@item
+In the "english" notename language, the long notenames for pitches
+with accidentals now contain a hyphen for better readability.  You
+now have to write
+@example
+\key a-flat \major
+@end example
+instead of the previous
+@example
+\key aflat \major
+@end example
+
+Double accidentals do not get another hyphen, so the Dutch
+@code{cisis} has the long English notename @code{c-sharpsharp}.
+
 @item
 The visual style of tremolo slashes (shape, style and slope)
 is now more finely controlled.