+Ahora se pueden mover sistemas respecto a su posición actual
+usando la subpropiedad @code{extra-offset} de
+@code{NonMusicalPaperColumn.line-break-system-details}. Son
+posibles tanto desplazamientos horizontales como verticales. Esta
+funcionalidad es especialmente útil para hacer pequeños ajustes
+sobre la posición vertical predeterminada de los sistemas
+individuales. Véase @ruser{Explicit staff and system positioning}
+para más información.
+
+@item
+Ahora se puede añadir texto sobre los corchetes de análisis
+mediante el objeto @code{HorizontalBracketText}.
+@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
+Se puede hacer ahora un ajuste fino de los extremos de los
+reguladores usando la propiedad de grob @code{shorten-pair}, que
+anteriormente afectaba solo a los objetos extensos de texto como
+@code{TupletBracket} y @code{OttavaBracket}. Los valores
+positivos producen un desplazamiento a la derecha, los negativos a
+la izquierda.
+@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
+En los diagramas de posiciones de acorde, la distancia entre los
+trastes y entre las cuerdas se puede ajustar de forma
+independiente. Eestán disponibles @code{fret-distance} y
+@code{string-distance} como subpropiedades de
+@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
+Las reglas de alteraciones accidentales se pueden definir ahora
+para todo un contexto de @code{ChoirStaff}. Se encuentran
+disponibles dos nuevas reglas, @code{choral} y
+@code{choral-cautionary}, que combinan las características de
+@code{modern-voice} y de @code{piano} o sus equivalentes con
+alteraciones de precaución.
+
+@item
+La función musical @code{\unfoldRepeats} ahora puede tomar unla
+lista de argumentos opcional que especifica qué tipo de música (o
+músicas) repetida(s) se debe(n) desplegar. Los valores posibles
+son @code{percent} (para repeticiones de compás o parte de ellos),
+@code{tremolo} y @code{volta} (para casillas de primera y segunda
+vez). Si no se especifica la lista opcional de argumentos, se usa
+@code{repeated-music}, que lo despliega todo.
+
+@item
+Ahora se usa una nueva propiedad de grob,
+@code{output-attributes}, para la salida de SVG en lugar de la
+propiedad de grob @code{id}. Permite que más de un atributo se
+pueda definir como una lista de asociación. Por ejemplo,
+@code{#'((id . 123) (class . fulano) (data-loquesea
+. @qq{mengano}))} produce la siguiente etiqueta de grupo en el
+archivo SVG de salida: @code{<g id=@qq{123} class=@qq{fulano}
+data-loquesea=@qq{mengano}> @dots{} </g>}.
+
+@item
+Las ligaduras de expresión y de fraseo pueden comenzar ahora a
+partir de las notas individuales de un acorde. Las diferentes
+ligaduras simultáneas por cada contexto @code{Voice} se deben
+distinguir especificando su @code{spanner-id}.
+
+@item
+La propiedad musical y de grob @code{spanner-id} para distinguir
+ligaduras simultáneas de expresión y de fraseo ha cambiado de ser
+una cadena a ser una @q{key}, un entero no negativo o un símbolo.
+
+@item
+Existe una instrucción nueva @code{\=} para especificar el
+identificador de objeto extenso @code{spanner-id} para ligaduras
+simultáneas de expresión o de fraseo.
+@lilypond[verbatim,quote]
+\fixed c' {
+ <c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
+}
+@end lilypond
+
+@item
+Los bloques @code{\header} se pueden almacenar dentro de variables
+y usados como argumentos para las funciones musicales y de Scheme,
+y como cuerpo de construcciones del tipo @code{#@{@dots{}#@}}. Se
+representan como un módulo de Guile.
+
+Si bien los bloques @code{\book}, @code{\bookpart}, @code{\score},
+@code{\with}, @code{\layout}, @code{\midi} y @code{\paper} se
+pueden pasar de manera similar, están representados por distintos
+tipos de datos.
+
+@item
+Las listas de elementos separados por puntos como
+@code{FretBoard.stencil} ya estaban contempladas a partir de la
+versión@tie{}2.18. Ahora también pueden contener enteros sin
+signo, y se pueden hacer separar opcionalmente mediante comas.
+Ello permite un uso semejante a
+@lilypond[quote,verbatim]
+{ \time 2,2,1 5/8 g'8 8 8 8 8 }
+@end lilypond
+y
+@example
+\tagGroup violin,oboe,bassoon
+@end example
+
+@item
+Tales listas se pueden usar también dentro de expresiones para
+asignaciones, conjuntos y sobreescrituras. Así, ahora puede
+usarse de la forma siguiente:
+@lilypond[quote,verbatim]
+{ \unset Timing.beamExceptions
+ \set Timing.beatStructure = 1,2,1
+ g'8 8 8 8 8 8 8 8 }
+@end lilypond
+
+@item
+Anteriormente se podían asignar valores a los elementos de las
+listas de asociación individualmente (por ejemplo, variables de
+papel como @code{system-system-spacing.basic-distance}). Ahora
+también pueden ser referenciadas de esta manera, como en
+@example
+\paper @{
+ \void \displayScheme \system-system-spacing.basic-distance
+@}
+@end example
+
+En combinación con los cambios mencionados anteriormente, esto
+permite el establecimiento de valores y la referenciación de
+pseudovariables como @code{violin.1}.
+
+@item
+Ahora se pueden incrustar los archivos de código fuente de
+LilyPond dentro de los archivos PDF generados. Esta funcionalidad
+experimental está inhabilitada de forma predeterminada y se puede
+calificar como de no segura, pues los documentos PDF con contenido
+oculto tienden a presentar un riesgo para la seguridad. Observe
+que no todos los visores de PDF son capaces de manejar documentos
+incrustados (en caso de que no sea así, la salida de PDF se verá
+normalmente y los archivos fuente serán invisibles). Esta
+funcionalidad solamente funciona con el backend PDF.
+
+@item
+Ahora se puden definir específicamente los nombres de las notas en
+idioma francés en lugar de constituir un alias de los nombres
+italianos: además de la sintaxis genérica derivada del italiano,
+la altura de la nota @var{d} (@var{re}) se puede escribir ahora
+como @code{ré}. Los dobles sostenidos se pueden escribir también
+usando el sufijo @code{-x}.
+
+@item
+Están contempladas cuerdas bajas adicionales (para la tablatura de
+laúd).
+@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 <a, d f a d' f'>
+ additionalBassStrings = \stringTuning <c, d, e, fis, g,>
+ fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
+ }
+ }
+}
+@end lilypond
+
+@item
+Ahora está disponible la instrucción de lista de marcados
+@code{\table}. Cada columna se puede alinear de distinta forma.
+@lilypond[quote,verbatim]
+\markuplist {
+ \override #'(padding . 2)
+ \table
+ #'(0 1 0 -1)
+ {
+ \underline { center-aligned right-aligned center-aligned left-aligned }
+ one "1" thousandth "0.001"
+ eleven "11" hundredth "0.01"
+ twenty "20" tenth "0.1"
+ thousand "1000" one "1.0"
+ }
+}
+@end lilypond
+
+@item
+Una instrucción de marcado nueva, @code{\with-dimensions-from},
+hace que sea más fácil de usar @code{\with-dimensions} obteniendo
+las dimentiones nuevas a partir de un objeto de marcado, dado como
+primer argumento.
+@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
+La nueva función de salto de página
+@code{ly:one-line-auto-height-breaking} sitúa una partitura
+completa en una sola línea y cambia la anchura del papel de forma
+correspondiente, de igual manera que @code{ly:one-line-breaking}.
+La diferencia es que también modifica automáticamente la altura de
+la página para que se ajuste a la altura de la música.
+
+@item
+Está disponible la instrucción de marcado
+@code{\draw-squiggle-line}. Es posible la personalización a
+través de la sobreescritura de @code{thickness},
+@code{angularity}, @code{height} and @code{orientation}.
+@lilypond[quote,verbatim]
+\markup
+ \overlay {
+ \draw-squiggle-line #0.5 #'(3 . 3) ##t
+
+ \translate #'(3 . 3)
+ \override #'(thickness . 4)
+ \draw-squiggle-line #0.5 #'(3 . -3) ##t
+
+ \translate #'(6 . 0)
+ \override #'(angularity . -5)
+ \draw-squiggle-line #0.5 #'(-3 . -3) ##t
+
+ \translate #'(3 . -3)
+ \override #'(angularity . 2)
+ \override #'(height . 0.3)
+ \override #'(orientation . -1)
+ \draw-squiggle-line #0.2 #'(-3 . 3) ##t
+ }
+@end lilypond
+
+@item
+Existe una instrucción nueva para eliminar los pentagramas vacíos,
+@code{\RemoveAllEmptyStaves}, que actúa de la misma forma que
+@code{\RemoveEmptyStaves}, excepto porque también elimina los
+pentagramas vacíos del primer sistema de una partitura.
+
+@item
+Las instrucciones de marcado @code{\undertie} y @code{\overtie}
+están disponibles, así como la instrucción de marcado genérica
+@code{\tie}.
+@lilypond[quote,verbatim]
+\markup {
+ \undertie "undertied"
+ \overtie "overtied"
+}
+
+m = {
+ c''1 \prall -\tweak text \markup \tie "131" -1
+}
+
+{ \voiceOne \m \voiceTwo \m }
+@end lilypond
+
+@item
+@code{TabStaff} puede ahora imprimir microtonos para las
+curvaturas de tono y otros efectos.
+@lilypond[quote,verbatim]
+\layout {
+ \context {
+ \Score
+ supportNonIntegerFret = ##t
+ }
+}
+
+mus = \relative { c'4 cih d dih }
+
+<<
+ \new Staff << \clef "G_8" \mus >>
+ \new TabStaff \mus
+>>
+@end lilypond
+
+@item
+Ahora están disponibles dos estilos nuevos de enmarcado en blanco
+para enmascarar el material de fondo. El estilo @code{outline}
+aproxima los contornos de la forma de un glifo, y la forma se
+produce a partir de un conjunto de copias desplazadas del glifo.
+El estilo @code{rounded-box} produce una forma de rectángulo
+redondeado. Para los tres estilos, incluido el estilo @code{box}
+predeterminado, se puede personalizar el @code{thickness} o grosor
+de la forma del enmarcado en blanco, como un múltiplo del grosor
+de una línea del pentagrama.
+
+@lilypond[verbatim,quote]
+\markup {
+ \combine
+ \filled-box #'(-1 . 15) #'(-3 . 4) #1
+ \override #'(thickness . 3)
+ \whiteout whiteout-box
+}
+\markup {
+ \combine
+ \filled-box #'(-1 . 24) #'(-3 . 4) #1
+ \override #'(style . rounded-box)
+ \override #'(thickness . 3)
+ \whiteout whiteout-rounded-box
+}
+\markup {
+ \combine
+ \filled-box #'(-1 . 18) #'(-3 . 4) #1
+ \override #'(style . outline)
+ \override #'(thickness . 3)
+ \whiteout whiteout-outline
+}
+\relative {
+ \override Staff.Clef.whiteout-style = #'outline
+ \override Staff.Clef.whiteout = 3
+ g'1
+}
+@end lilypond
+
+@item
+Todas las instrucciones @code{\override}, @code{\revert},
+@code{\set} y @code{\unset} ahora funcionan con el prefijo
+@code{\once} para hacer ajustes de una sola vez.
+@lilypond[quote,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \once \revert NoteHead.color
+ b c |
+ \revert NoteHead.color
+ f2 c |
+}
+@end lilypond
+
+@item
+Al crear una salida MIDI, LilyPond ahora almacena el @code{title}
+que se ha definido en el bloque @code{\header} de la partitura (o,
+si no existe tal definición en el nivel de @code{\score}, la
+primera definición de ese tipo que aparezca en un bloque
+@code{\header} del @code{\bookpart}, @code{\book}, o ámbito de
+nivel superior que encierra a la partitura) como el nombre de la
+secuencia dentro del archivo MIDI. De forma opcional, el nombre
+de la secuencia MIDI se puede sobreescribir usando el nuevo campo
+@code{midititle} del bloque @code{\header} independientemente del
+@code{title} (por ejemplo, en caso de que @code{title} contenga
+código de elementos de marcado que no se convierta automáticamente
+a texto sencillo de manera satisfactoria).
+
+@item
+Las funciones musicales (además de las funciones vacías y de
+Scheme) e instrucciones de marcado que se limitan a aplicar los
+parámetros finales a una cadena de sobreescrituras, se pueden
+definir ahora de forma que solamente escriben la expresión
+interrumpida con @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
+Las funciones de LilyPond definidas con
+@code{define-music-function}, @code{define-event-function},
+@code{define-scheme-function} y @code{define-void-function} ahora
+se pueden llamar directamente desde Scheme como si fuesen
+procedimientos de Scheme reales. Se sigue efectuando una
+comprobación de los argumentos en su número y tipo de la misma
+forma que cuando se llama a la función a través de código de
+LilyPond. Esto incluye la inserción de valores predeterminados
+para los argumentos opcionales que no se corresponden con sus
+predicados. En lugar de usar @code{\default} en la propia lista
+de argumentos para saltar explícitamente una secuencia de
+argumentos opcionales, se puede emplear @code{*unspecified*}.
+
+@item
+La posición actual del cursor de entrada y del analizador
+sintáctico se almacenan ahora dentro de fluidos de GUILE y se
+pueden referenciar a través de las llamadas de función
+@code{(*location*)} y @code{(*parser*)}. Como consecuencia, un
+gran número de funciones que anteriormente tomaban un argumento
+@code{parser} explícito, ya no lo hacen.
+
+Las funciones definidas con @code{define-music-function},
+@code{define-event-function}, @code{define-scheme-function} y
+@code{define-void-function} ya no usan los argumentos
+@code{parser} @code{location}.
+
+Con estas definiciones, LilyPond trata de reconocer el uso
+obsoleto de los argumentos @code{parser} y @code{location},
+ofreciendo durante algún tiempo una semántica compatible hacia
+atrás.
+
+@item
+En el idioma de nombre de nota "english", los nombres largos de
+las alturas con alteración ahora contienen un guión para una mejor
+legibilidad. Ahora se debe escribir
+@example
+\key a-flat \major
+@end example
+en lugar de
+@example
+\key aflat \major
+@end example
+como se hacía antes.
+
+Las alteraciones dobles no llevan otro guión, de forma que el
+holandés @code{cisis} lleva el nombre largo @code{c-sharpsharp} en
+inglés.
+
+@item
+El estilo visual de las barras de trémolo (forma, estilo e
+inclinación) se controla ahora con más precisión.
+@lilypond[quote,relative=2]
+ a8:32 b: c: d:
+ \override StemTremolo.shape = #'beam-like
+ a: b: c: d:
+ \override StemTremolo.style = #'constant
+ a: b: c: d:
+ g,2
+@end lilypond
+
+
+@item
+Los silencios de varios compases tienen una longitud que depende
+de su duración, bajo el control de
+@code{MultiMeasureRest.space-increment}.
+@lilypond[quote]
+{ \compressFullBarRests
+ \override Staff.MultiMeasureRest.space-increment = 3.0
+ R1*2 R1*12 R1*64 }
+@end lilypond
+
+@item
+Los números de página se pueden imprimir ahora en números romanos,
+fijando el valor de la variable @code{page-number-type} del bloque
+@code{\paper}.
+
+@item
+Ahora se pueden usar @code{\time} y @code{\partial} combinados
+para cambiar la indicación de compás en la mitad de un compás.
+