X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fchanges.tely;h=482bbbdd659d598db0ef027dc0336ccce51bf063;hb=07125596018d32e3235e80627915cfac77323272;hp=db4384a1b0ca270aacc623d38f187aebd846b7af;hpb=cca3c4542eded4f78aad08ed0928c368d7695e9a;p=lilypond.git diff --git a/Documentation/changes.tely b/Documentation/changes.tely index db4384a1b0..482bbbdd65 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -61,6 +61,198 @@ which scares away people. @end ignore +@item +It is now possible to move systems with reference to their current +position using the @code{extra-offset} subproperty of +@code{NonMusicalPaperColumn.line-break-system-details}. Both vertical +and horizontal changes are possible. This feature is especially useful +for making slight adjustments to the default vertical position of +individual systems. See @ruser{Explicit staff and system positioning} for +more information. + +@item +It is now possible to add text to analysis brackets through the +@code{HorizontalBracketText} object. +@lilypond[quote,verbatim] +\layout { + \context { + \Voice + \consists "Horizontal_bracket_engraver" + } +} + +{ + \once \override HorizontalBracketText.text = "a" + c''\startGroup d''\stopGroup + e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup +} +@end lilypond + +@item +The ends of hairpins may now be fine-tuned using the @code{shorten-pair} +grob property, which previously only affected text-spanners like +@code{TupletBracket} and @code{OttavaBracket}. Positive values offset +to the right, negative to the left. +@lilypond[quote,verbatim] +{ \once \override Hairpin.shorten-pair = #'(2 . 2) + c'1~\< + c'2~ c'\! + \once \override Hairpin.shorten-pair = #'(-2 . -2) + c'1~\< + c'2~ c'\! } +@end lilypond + +@item +In fret-diagrams the distance between frets and the distance between strings is +now independently adjustable. Available are @code{fret-distance} and +@code{string-distance} as subproperties of @code{fret-diagram-details}. +@lilypond[verbatim,quote] +fretMrkp = \markup { \fret-diagram-terse #"x;x;o;2;3;2;" } + +\markuplist +\override #'(padding . 2) +\table #'(0 -1) { + "default" + + \fretMrkp + + "fret-distance" + + \override #'(fret-diagram-details . ((fret-distance . 2))) + \fretMrkp + + "string-distance" + + \override #'(fret-diagram-details . ((string-distance . 2))) + \fretMrkp +} +@end lilypond + +@item +Accidental rules can now be defined across @code{ChoirStaff} contexts. +Two new rules @code{choral} and @code{choral-cautionary} are available +that combine the characteristics of @code{modern-voice} and @code{piano} +or their equivalents with cautionary accidentals. + +@item +The music function @code{\unfoldRepeats} can now take an +optional argument-list specifying which type(s) of repeated music +should be unfolded. Possible entries are @code{percent}, @code{tremolo}, +@code{volta}. +If the optional argument-list is unspecified, @code{repeated-music} will be +used, unfolding all. + +@item +A new @code{output-attributes} grob property is now used for svg output +instead of the @code{id} grob property. It allows multiple attributes +to be defined as an association list. For example, @code{#'((id . 123) +(class . foo) (data-whatever . @qq{bar}))} will produce the following +group tag in an SVG file: @code{ @dots{} }. + +@item +Slurs and phrasing slurs may now be started from individual notes +in a chord. Several simultanous slurs per @code{Voice} need to be +distinguished by @code{spanner-id} setting. + +@item +The music and grob property @code{spanner-id} for distinguishing +simultaneous slurs and phrasing slurs has been changed from a +string to a @q{key}, a non-negative integer or symbol. + +@item +There is a new command @code{\=} for specifying the +@code{spanner-id} for simultaneous slurs and phrasing slurs. +@lilypond[verbatim,quote] +\fixed c' { + 2 +} +@end lilypond + +@item +Blocks introduced with @code{\header} can be stored in variables +and used as arguments to music and scheme functions and as the +body of @code{#@{@dots{}#@}} constructs. They are represented as +a Guile module. + +While @code{\book}, @code{\bookpart}, @code{\score}, @code{\with}, +@code{\layout}, @code{\midi}, @code{\paper} blocks can be passed +around in similar manner, they are represented by different data +types. + +@item +Dot-separated symbol lists like @code{FretBoard.stencil} were +already supported as of version@tie{}2.18. They may now also +contain unsigned integers, and may alternatively be separated by +commata. This allows usage such as +@lilypond[quote,verbatim] +{ \time 2,2,1 5/8 g'8 8 8 8 8 } +@end lilypond +and +@example +\tagGroup violin,oboe,bassoon +@end example + +@item +Such lists may also be used in expressions for assignments, sets, +and overrides. This allows usage such as +@lilypond[quote,verbatim] +{ \unset Timing.beamExceptions + \set Timing.beatStructure = 1,2,1 + g'8 8 8 8 8 8 8 8 } +@end lilypond + +@item +Association list elements could previously be assigned values +individually (for example, paper variables like +@code{system-system-spacing.basic-distance}). They may now be +also referenced in this manner, as with +@example +\paper @{ + \void \displayScheme \system-system-spacing.basic-distance +@} +@end example + +In combination with the previously mentioned changes, this allows +setting and referencing pseudovariables like @code{violin.1}. + +@item +LilyPond source files may now be embedded inside the generated PDF files. +This experimental feature is disabled by default and may be regarded as unsafe, +as PDF documents with hidden content tend to present a security risk. +Please note that not all PDF viewers have the ability to handle embedded +documents (if not, the PDF output will appear normally and source files +will remain invisible). This feature only works with the PDF backend. + +@item +French note names are now defined specifically instead of +being aliased to Italian note names: in addition to the +generic Italian-derived syntax, the @var{d} pitch may be +entered as @code{ré}. Double sharps may also be +entered using the @code{-x} suffix. + +@item +Additional bass strings (for lute tablature) are supported. +@lilypond[quote,verbatim] +m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." } + +\score { + \new TabStaff \m + \layout { + \context { + \Score + tablatureFormat = #fret-letter-tablature-format + } + \context { + \TabStaff + stringTunings = \stringTuning + additionalBassStrings = \stringTuning + fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k") + } + } +} +@end lilypond + @item The markup-list-command @code{\table} is now available. Each column may be aligned differently. @@ -80,11 +272,30 @@ Each column may be aligned differently. @end lilypond @item -A new page breaking function @code{ly:one-line-auto-height-breaking} -places a whole score on a single line and changes the page width -to match, just like @code{ly:one-line-breaking}. The difference is that -it also automatically modifies the height of the page to fit the height -of the music. +A new markup-command, @code{\with-dimensions-from}, makes +@code{\with-dimensions} easier to use by taking the new +dimensions from a markup object, given as first argument. +@lilypond[quote,verbatim] +\markup { + \pattern #5 #Y #0 "x" + \pattern #5 #Y #0 \with-dimensions-from "x" "f" + \pattern #5 #Y #0 \with-dimensions-from "x" "g" + \override #'(baseline-skip . 2) + \column { + \pattern #5 #X #0 "n" + \pattern #5 #X #0 \with-dimensions-from "n" "m" + \pattern #5 #X #0 \with-dimensions-from "n" "!" + } +} +@end lilypond + +@item +There are two new page breaking functions. @code{ly:one-page-breaking} +automatically adjusts the height of the page to fit the music, so that +everything fits on one page. @code{ly:one-line-auto-height-breaking} +is like @code{ly:one-line-breaking}, placing the music on a single +line and adjusting the page width accordingly, however it also +automatically adjusts the page height to fit the music. @item Markup-command @code{\draw-squiggle-line} is now available. @@ -225,7 +436,7 @@ function and markup command calls 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 +\markup bold-red = \markup \bold \with-color #red \etc highlight = \tweak font-size 3 \tweak color #red \etc \markup \bold-red "text" @@ -803,6 +1014,82 @@ option @samp{-dstrokeadjust} to LilyPond. When generating looking @code{PDF} previews but significantly larger file size. Print quality at high resolutions will be unaffected. +@item +Default text fonts have been changed from +@code{Century Schoolbook L}, @code{sans-serif}, and @code{monospace}. + +For @code{svg} backend: +@multitable @columnfractions .15 .30 +@headitem Family @tab Default font +@item @emph{roman} @tab @code{serif} +@item @emph{sans} @tab @code{sans-serif} +@item @emph{typewriter} @tab @code{monospace} +@end multitable + +@code{serif}, @code{sans-serif}, and @code{monospace} are +@code{generic-family} in SVG and CSS specifications. + +For other backends: +@multitable @columnfractions .15 .30 .55 +@headitem Family @tab Default font (alias) @tab Alias definition lists +@item @emph{roman} +@tab @code{LilyPond Serif} +@tab +TeX Gyre Schola, +C059, Century SchoolBook URW, Century Schoolbook L, +DejaVu Serif, +..., serif +@item @emph{sans} +@tab @code{LilyPond Sans Serif} +@tab +TeX Gyre Heros, +Nimbus Sans, Nimbus Sans L, DejaVu Sans, +..., sans-serif +@item @emph{typewriter} +@tab @code{LilyPond Monospace} +@tab +TeX Gyre Cursor, +Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, +DejaVu Sans Mono, +..., monospace +@end multitable + +@code{LilyPond Serif}, @code{LilyPond Sans Serif}, +and @code{LilyPond Monospace} are font aliases defined +in the LilyPond dedicated FontConfig configuration file +@code{00-lilypond-fonts.conf}. +Where a character dosen't exist in the first font listed, +the next font listed will be used instead for that character. +For details of alias definitions, please see +to @code{00-lilypond-fonts.conf} under the installed directory. + +@item +When using OpenType fonts, font features can be used. +Note: Not all OpenType fonts have all functions. + +@lilypond[quote,verbatim] +% True small caps +\markup { Normal Style: Hello HELLO } +\markup { \caps { Small Caps: Hello } } +\markup { \override #'(font-features . ("smcp")) + { True Small Caps: Hello } } + +% Number styles +\markup { Normal Number Style: 0123456789 } +\markup { \override #'(font-features . ("onum")) + { Old Number Style: 0123456789 } } + +% Stylistic Alternates +\markup { \override #'(font-features . ("salt 0")) + { Stylistic Alternates 0: εφπρθ } } +\markup { \override #'(font-features . ("salt 1")) + { Stylistic Alternates 1: εφπρθ } } + +% Multiple features +\markup { \override #'(font-features . ("onum" "smcp" "salt 1")) + { Multiple features: Hello 0123456789 εφπρθ } } +@end lilypond + @end itemize @ifhtml