]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into philomelos
authorJohn Gourlay <john@weathervanefarm.net>
Fri, 29 Apr 2016 19:47:40 +0000 (15:47 -0400)
committerJohn Gourlay <john@weathervanefarm.net>
Fri, 29 Apr 2016 19:47:40 +0000 (15:47 -0400)
Conflicts resolved in:
python/musicexp.py
python/musicxml.py
scripts/musicxml2ly.py

242 files changed:
Documentation/ca/translations.itexi
Documentation/ca/web/introduction.itexi
Documentation/changes.tely
Documentation/contributor/administration.itexi
Documentation/contributor/doc-translation-list.itexi
Documentation/contributor/doc-work.itexi
Documentation/contributor/introduction.itexi
Documentation/contributor/issues.itexi
Documentation/contributor/quick-start.itexi
Documentation/contributor/source-code.itexi
Documentation/contributor/website-work.itexi
Documentation/cs/translations.itexi
Documentation/cs/web/introduction.itexi
Documentation/css/lilypond-manuals.css
Documentation/de/notation/rhythms.itely
Documentation/de/notation/spacing.itely
Documentation/de/translations.itexi
Documentation/de/web/introduction.itexi
Documentation/es/changes.tely
Documentation/es/essay.tely
Documentation/es/essay/engraving.itely
Documentation/es/essay/literature.itely
Documentation/es/extending.tely
Documentation/es/extending/programming-interface.itely
Documentation/es/extending/scheme-tutorial.itely
Documentation/es/learning.tely
Documentation/es/learning/common-notation.itely
Documentation/es/learning/fundamental.itely
Documentation/es/learning/templates.itely
Documentation/es/learning/tutorial.itely
Documentation/es/learning/tweaks.itely
Documentation/es/notation.tely
Documentation/es/notation/changing-defaults.itely
Documentation/es/notation/editorial.itely
Documentation/es/notation/expressive.itely
Documentation/es/notation/input.itely
Documentation/es/notation/notation-appendices.itely
Documentation/es/notation/percussion.itely
Documentation/es/notation/pitches.itely
Documentation/es/notation/repeats.itely
Documentation/es/notation/rhythms.itely
Documentation/es/notation/simultaneous.itely
Documentation/es/notation/spacing.itely
Documentation/es/notation/staff.itely
Documentation/es/notation/text.itely
Documentation/es/translations.itexi
Documentation/es/usage.tely
Documentation/es/usage/running.itely
Documentation/es/usage/updating.itely
Documentation/es/web.texi
Documentation/es/web/community.itexi
Documentation/es/web/download.itexi
Documentation/es/web/introduction.itexi
Documentation/es/web/manuals.itexi
Documentation/es/web/news-front.itexi
Documentation/es/web/news.itexi
Documentation/extending/programming-interface.itely
Documentation/extending/scheme-tutorial.itely
Documentation/fr/extending/programming-interface.itely
Documentation/fr/extending/scheme-tutorial.itely
Documentation/fr/learning/common-notation.itely
Documentation/fr/learning/templates.itely
Documentation/fr/learning/tweaks.itely
Documentation/fr/notation/changing-defaults.itely
Documentation/fr/notation/fretted-strings.itely
Documentation/fr/notation/input.itely
Documentation/fr/notation/notation-appendices.itely
Documentation/fr/notation/pitches.itely
Documentation/fr/notation/rhythms.itely
Documentation/fr/notation/spacing.itely
Documentation/fr/notation/staff.itely
Documentation/fr/texidocs/automatic-beam-subdivisions.texidoc
Documentation/fr/texidocs/beam-endings-in-score-context.texidoc
Documentation/fr/texidocs/center-text-below-hairpin-dynamics.texidoc
Documentation/fr/texidocs/centering-markup-on-note-heads-automatically.texidoc [deleted file]
Documentation/fr/texidocs/changing-stanza-fonts.texidoc
Documentation/fr/texidocs/changing-the-default-text-font-family.texidoc
Documentation/fr/texidocs/conducting-signs,-measure-grouping-signs.texidoc
Documentation/fr/texidocs/displaying-complex-chords.texidoc
Documentation/fr/texidocs/displaying-grob-ancestry.texidoc
Documentation/fr/texidocs/how-to-change-fret-diagram-position.texidoc
Documentation/fr/texidocs/reverting-default-beam-endings.texidoc
Documentation/fr/texidocs/string-number-extender-lines.texidoc
Documentation/fr/texidocs/subdividing-beams.texidoc
Documentation/fr/texidocs/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.texidoc
Documentation/fr/translations.itexi
Documentation/fr/usage/running.itely
Documentation/fr/usage/suggestions.itely
Documentation/fr/usage/updating.itely
Documentation/fr/web/community.itexi
Documentation/fr/web/download.itexi
Documentation/fr/web/introduction.itexi
Documentation/hu/translations.itexi
Documentation/hu/web/community.itexi
Documentation/hu/web/introduction.itexi
Documentation/included/compile.itexi
Documentation/it/learning/templates.itely
Documentation/it/notation/changing-defaults.itely
Documentation/it/notation/repeats.itely
Documentation/it/notation/rhythms.itely
Documentation/it/notation/spacing.itely
Documentation/it/notation/vocal.itely
Documentation/it/translations.itexi
Documentation/it/web/introduction.itexi
Documentation/ja/included/generating-output.itexi
Documentation/ja/learning/common-notation.itely
Documentation/ja/notation/chords.itely
Documentation/ja/notation/expressive.itely
Documentation/ja/notation/rhythms.itely
Documentation/ja/notation/spacing.itely
Documentation/ja/translations.itexi
Documentation/ja/usage/external.itely
Documentation/ja/web.texi
Documentation/ja/web/community.itexi
Documentation/ja/web/download.itexi
Documentation/ja/web/introduction.itexi
Documentation/ja/web/manuals.itexi
Documentation/learning/tweaks.itely
Documentation/ly-examples/Stockhausen_Klavierstueck2.ly
Documentation/ly-examples/granados.ly
Documentation/nl/translations.itexi
Documentation/nl/web/introduction.itexi
Documentation/notation/changing-defaults.itely
Documentation/notation/fretted-strings.itely
Documentation/notation/input.itely
Documentation/notation/notation-appendices.itely
Documentation/notation/pitches.itely
Documentation/notation/rhythms.itely
Documentation/notation/spacing.itely
Documentation/snippets/arranging-separate-lyrics-on-a-single-line.ly
Documentation/snippets/automatic-beam-subdivisions.ly
Documentation/snippets/beam-endings-in-score-context.ly
Documentation/snippets/center-text-below-hairpin-dynamics.ly
Documentation/snippets/centering-markup-on-note-heads-automatically.ly [deleted file]
Documentation/snippets/changing-stanza-fonts.ly
Documentation/snippets/changing-the-default-text-font-family.ly
Documentation/snippets/conducting-signs,-measure-grouping-signs.ly
Documentation/snippets/contexts-and-engravers.snippet-list
Documentation/snippets/displaying-complex-chords.ly
Documentation/snippets/displaying-grob-ancestry.ly
Documentation/snippets/how-to-change-fret-diagram-position.ly
Documentation/snippets/modifying-the-ottava-spanner-slope.ly
Documentation/snippets/new/changing-stanza-fonts.ly [deleted file]
Documentation/snippets/new/changing-the-default-text-font-family.ly [deleted file]
Documentation/snippets/new/how-to-change-fret-diagram-position.ly [deleted file]
Documentation/snippets/new/modifying-the-ottava-spanner-slope.ly [deleted file]
Documentation/snippets/new/staff-headword.ly
Documentation/snippets/new/subdividing-beams.ly
Documentation/snippets/new/user-defined-time-signatures.ly [new file with mode: 0644]
Documentation/snippets/pitches-headword.ly
Documentation/snippets/reverting-default-beam-endings.ly
Documentation/snippets/rhythms.snippet-list
Documentation/snippets/score-for-diatonic-accordion.ly
Documentation/snippets/staff-headword.ly
Documentation/snippets/subdividing-beams.ly
Documentation/snippets/text.snippet-list
Documentation/snippets/tweaks-and-overrides.snippet-list
Documentation/snippets/user-defined-time-signatures.ly [new file with mode: 0644]
Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly
Documentation/translations.itexi
Documentation/usage/running.itely
Documentation/usage/updating.itely
Documentation/web/community.itexi
Documentation/web/download.itexi
Documentation/web/introduction.itexi
Documentation/web/news-front.itexi
Documentation/web/news.itexi
Documentation/web/server/lilypond.org.htaccess
Documentation/zh/translations.itexi
Documentation/zh/web/introduction.itexi
VERSION
configure.ac
input/regression/autobeam-3-4-rules.ly
input/regression/beam-beat-grouping.ly
input/regression/chord-name-major7.ly
input/regression/display-lily-tests.ly
input/regression/identifier-alists.ly [new file with mode: 0644]
input/regression/measure-grouping.ly
input/regression/multiple-time-sig-settings.ly
input/regression/note-names.ly
input/regression/notehead-height.ly [new file with mode: 0644]
input/regression/tablature-additional-bass-strings.ly [new file with mode: 0644]
input/regression/time-signature-settings-by-staff.ly
input/regression/tuplet-subdivision.ly
lily/all-font-metrics.cc
lily/completion-note-heads-engraver.cc
lily/context-property.cc
lily/engraver.cc
lily/grob-interface-scheme.cc
lily/grob-property.cc
lily/include/all-font-metrics.hh
lily/include/context.hh
lily/include/lily-imports.hh
lily/include/listener.hh
lily/include/music.hh
lily/include/paper-outputter.hh
lily/include/prob.hh
lily/include/scale.hh
lily/include/scm-hash.hh
lily/include/smobs.hh
lily/include/translator-dispatch-list.hh
lily/ledger-line-spanner.cc
lily/lily-imports.cc
lily/lily-lexer.cc
lily/listener.cc
lily/lookup.cc
lily/music-sequence.cc
lily/music.cc
lily/nested-property.cc
lily/paper-outputter.cc
lily/parser.yy
lily/quote-iterator.cc
lily/scale.cc
lily/scm-hash.cc
lily/sources.cc
lily/stencil.cc
lily/text-spanner-engraver.cc
lily/translator-dispatch-list.cc
lily/unpure-pure-container.cc
lily/volta-repeat-iterator.cc
ly/Welcome-to-LilyPond-MacOS.ly
ly/Welcome_to_LilyPond.ly
ly/engraver-init.ly
ly/graphviz-init.ly
ly/music-functions-init.ly
mf/feta-params.mf
po/lilypond.pot
python/convertrules.py
python/musicexp.py
python/musicxml.py
scm/c++.scm
scm/chord-ignatzek-names.scm
scm/define-context-properties.scm
scm/define-markup-commands.scm
scm/define-note-names.scm
scm/font.scm
scm/framework-ps.scm
scm/lily.scm
scm/translation-functions.scm
scripts/build/website_post.py
scripts/build/xetex-with-options.sh [new file with mode: 0755]
tex/texinfo.tex

index 852bf4d2254dbf58250c14201933c7f8d59d0ab4..c13a5fb7035d192ebe8cfe90c44efbef0643eaa6 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Actualitzat el Fri Jan  1 10:40:27 UTC 2016
+@emph{Actualitzat el Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -111,7 +111,7 @@ parcialment
 @item
 2 Notació corrent
 @*
-4443
+4437
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -165,7 +165,7 @@ parcialment
 @item
 4 Ajustament de la sortida
 @*
-16577
+16622
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -209,7 +209,7 @@ parcialment (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">parcialment</span>
+<span style="background-color: #ffdd42">parcialment</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -285,7 +285,7 @@ si
 @item
 1 Execució del LilyPond
 @*
-5401
+5425
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -302,7 +302,7 @@ parcialment (95 %)
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">parcialment</span>
+<span style="background-color: #8aff2d">parcialment</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -312,7 +312,7 @@ parcialment
 @item
 2 Actualització de fitxers amb @command{convert-ly}
 @*
-1865
+1866
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -432,7 +432,7 @@ si
 @item
 Introducció
 @*
-5816
+5815
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -449,7 +449,7 @@ si
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">parcialment</span>
+<span style="background-color: #76fe2a">parcialment</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -513,7 +513,7 @@ si
 @item
 Comunitat
 @*
-3004
+3522
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -530,7 +530,7 @@ si
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">parcialment</span>
+<span style="background-color: #b9ff33">parcialment</span>
 @end html
 @end ifhtml
 @ifnothtml
index d148bd90b9620ccdcd79ac562e543b01af9c2abc..2ec65a2c2cdc2e46bd34a00f297243316b42004f 100644 (file)
@@ -651,7 +651,7 @@ piano que mostra les tecles que cal clicar per ajudar als
 principiants que estan aprenent a llegir música.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 partitures de música sacra d'alta qualitat, disponible per a la
 seva descàrrega immediata o en el format tradicional de paper.
 
@@ -694,7 +694,7 @@ Abril de 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publica un
 article titulat
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  És un article introductori sobre el
 MuseScore, el LilyPond i el Chordii. L'autora Carla Schroeder diu
 que @qq{LilyPond es treballa des de la línia d'ordres, però que
@@ -897,7 +897,7 @@ musical] en gran.}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{La forma en què s'introdueix la música per a LilyPond em fa
 pensar d'una manera més musical -- hi ha hagut molts cops que m'he
@@ -1400,7 +1400,7 @@ un entorn construït sobre el llenguatge de restriccions
 LilyKDE3 per a  KDE 3.5 i com a lilypond-KDE4 per a KDE 4.1 solament.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, que importava
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, que importava
 @uref{http://www.makemusic.com/musicxml,MusicXML}, s'ha escindit a
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
 i @uref{http://canorus.org,Canorus}.
index 00e53b5e88ff347ea84ea001846164f9f7feae4a..fc4052efa6372f1b70ad07faff6b629588a2e885 100644 (file)
@@ -61,6 +61,115 @@ which scares away people.
 
 @end ignore
 
+@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 <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
+The markup-list-command @code{\table} is now available.
+Each column may be aligned differently.
+@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
+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
 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
@@ -540,7 +649,7 @@ improved.  Previously, tuplet numbers were placed according to the
 position of the tuplet bracket, even if it was not printed.  This could
 lead to stranded tuplet numbers.  Now they are now positioned
 closer to the kneed-beam when an appropriate beam segment exists for its
-placement and when the the bracket is not drawn.
+placement and when the bracket is not drawn.
 
 Collision detection is also added, offsetting horizontally if too close
 to an adjoining note column but preserving the number's vertical
@@ -701,7 +810,7 @@ Four new Clef glyphs have been added @emph{Double G}, @emph{Tenor G},
   \clef "varC" c c c c
   \clef "altovarC" c c c c
   \clef "tenorvarC" c c c c
-  \clef "baritonevarC" c c c
+  \clef "baritonevarC" c c c c
   \clef "varpercussion" c c c c
 @end lilypond
 
index a392f7d660f8e62cf5518c6678acba472ffa3b58..9af951ee8e6602429b58974a2f7ad33f4fb51194 100644 (file)
@@ -167,7 +167,8 @@ The Patch Meister's responsibilities are:
 To keep track of all patches submitted for testing and review.  This
 includes scanning the bug and dev email lists looking for any patches
 submitted by @q{random} contributors and advising them on how to submit
-a patch for testing and review.  See @ref{Commits and patches}.
+a patch for testing and review.  See @ref{Uploading a patch for review}
+and @ref{The patch review cycle}.
 
 @item
 To makes sure that any patch submitted has a corresponding Issue Tracker
@@ -215,8 +216,7 @@ Currently: Francisco Vila @email{translations@@lilynet.net}
 @section Managing Staging and Master branches with Patchy
 
 @ignore
-The script 'test-patches.py' no longer works with code.google.com since
-Google changed their authentication method.
+The script 'test-patches.py' does not currently work with Allura.
 @end ignore
 
 @menu
@@ -268,7 +268,7 @@ commits.  See @ref{Compiling}.
 
 @item
 Commit access @emph{is} required to test and push new commits, but a
-valid login to @uref{http://code.google.com/} is @emph{not}.  See
+valid login to @uref{https://sourceforge.net} is @emph{not}.  See
 @ref{Commit access}.
 
 @end itemize
@@ -791,7 +791,7 @@ savannah bug tracker?
 Reitveld is inconvenient in some respects: it requires a google
 account, and there's no way to see all patches relating to
 lilypond. Should we switch to something like gerritt?
-@uref{http://code.google.com/p/lilypond/issues/detail?id=1184}
+@uref{https://sourceforge.net/p/testlilyissues/issues/1184/}
 
 (prep: 5 hours.  discuss: 15 hours)
 
@@ -1748,13 +1748,13 @@ sequential-statement to the score."
 
 @item
 Discussion on
-@uref{http://code.google.com/p/lilypond/issues/detail?id=1322}
+@uref{https://sourceforge.net/p/testlilyissues/issues/1322/}
 about \new vs. \context.
 
 
 @item
 Let users add their own items to the parser?  comment 11 on:
-@uref{http://code.google.com/p/lilypond/issues/detail?id=1322}
+@uref{https://sourceforge.net/p/testlilyissues/issues/1322/}
 
 @item
 should engravers be pluralized (note_heads_engraver) or not
@@ -1762,7 +1762,7 @@ should engravers be pluralized (note_heads_engraver) or not
 
 @item
 should we allow numbers in identifier names?  Issue:
-@uref{http://code.google.com/p/lilypond/issues/detail?id=1670}
+@uref{https://sourceforge.net/p/testlilyissues/issues/1670/}
 
 @item
 should we officially allow accented characters?  in general, how
index 497007c2a72dfb79fcfe62a7bf813df8b9d74b10..b2f2eaec3382d6f05f1fd7e7da82d1b89caa9518 100644 (file)
@@ -26,44 +26,44 @@ procedures}.
 @example
 -1- Web site
 629   web.texi
-5816  web/introduction.itexi
+5815  web/introduction.itexi
 1158  web/download.itexi
 1139  macros.itexi
 9     po/lilypond-doc.pot (translate to po/@var{MY_LANGUAGE}.po)
 0     search-box.ihtml
 ---   lilypond-texi2html.init (section TRANSLATIONS)
-8751  total
+8750  total
 
 -2- Tutorial
 1314  web/manuals.itexi
 124   learning.tely
 2507  learning/tutorial.itely
-4443  learning/common-notation.itely
-8388  total
+4437  learning/common-notation.itely
+8382  total
 
 -3- Fundamental Concepts, starting of Usage and Community
 11173 learning/fundamental.itely -- Fundamental concepts
 135   usage.tely
-5401  usage/running.itely
-1865  usage/updating.itely
-3004  web/community.itexi
-21578 total
+5425  usage/running.itely
+1866  usage/updating.itely
+3522  web/community.itexi
+22121 total
 
 -4- Rest of Learning manual and Suggestions on writing LilyPond files
-16577 learning/tweaks.itely -- Tweaking output
+16622 learning/tweaks.itely -- Tweaking output
 1236  learning/templates.itely -- Templates
 2793  usage/suggestions.itely -- Suggestions on writing LilyPond files
-20606 total
+20651 total
 
 -5- Notation reference
 326   notation.tely
 91    notation/notation.itely -- Musical notation
-5203  notation/pitches.itely
+5202  notation/pitches.itely
 6873  notation/rhythms.itely
 1878  notation/expressive.itely
 1288  notation/repeats.itely
 2955  notation/simultaneous.itely
-2399  notation/staff.itely
+2576  notation/staff.itely
 1491  notation/editorial.itely
 2880  notation/text.itely
 81    notation/specialist.itely -- Specialist notation
@@ -75,14 +75,14 @@ procedures}.
 66    notation/strings.itely
 242   notation/bagpipes.itely
 5518  notation/ancient.itely
-12717 notation/input.itely -- Input syntax
+12715 notation/input.itely -- Input syntax
 2164  notation/non-music.itely -- Non-musical notation
-10884 notation/spacing.itely -- Spacing issues
-15581 notation/changing-defaults.itely -- Changing defaults
+10895 notation/spacing.itely -- Spacing issues
+15610 notation/changing-defaults.itely -- Changing defaults
 5187  notation/programming-interface.itely -- Interfaces for programmers
 3077  notation/notation-appendices.itely -- Notation manual tables
 252   notation/cheatsheet.itely -- Cheat sheet
-90386 total
+90600 total
 
 -6- Rest of Application Usage
 4211  usage/lilypond-book.itely -- LilyPond-book
index 0435b96265dadd300670a75d02989b799c728feb..b9f1c7a77e149b7c4bdb6a648affef6ab77ad731 100644 (file)
@@ -1544,7 +1544,7 @@ build/tempdocs/pitches/out/pitches.html
 @end example
 
 According to
-@uref{http://code.google.com/p/lilypond/issues/detail?id=1236,LilyPond issue 1236},
+@uref{https://sourceforge.net/p/testlilyissues/issues/1236/,LilyPond issue 1236},
 the location of the LilyPond Git tree is taken from @code{$LILYPOND_GIT}
 if specified, otherwise it is auto-detected.
 
index 59eb050c1a2b59e38b3a33f64e6ffbb867fea71b..24abc03bf7fb5b77cc3899a0b6a65a252d41fedf 100644 (file)
@@ -109,6 +109,20 @@ hosted by GNU savannah.
 @uref{http://git.savannah.gnu.org/gitweb/?p=lilypond.git}
 @end example
 
+@item @strong{issue tracker}:
+currently hosted by Sourceforge.
+
+@example
+@uref{https://sourceforge.net/p/testlilyissues/issues/}
+@end example
+
+@item @strong{patch review}:
+Reitveld -- the collaborative code review tool.
+
+@example
+@uref{https://codereview.appspot.com}
+@end example
+
 @item @strong{environment variables}:
 many maintenance scripts, and many instructions in this guide rely on
 predefined @ref{Environment variables}.
@@ -116,17 +130,21 @@ predefined @ref{Environment variables}.
 @item @strong{mailing lists}:
 given on @rweb{Contact}.
 
-@item @strong{branches}:
+@item @strong{Git branches}:
 
 @itemize
 @item @code{master}:
-base your work from this, but do @strong{not push} to it.
+always base your work from this branch, but @strong{never push} directly
+to it.  Patches are always pushed directly to the @code{staging} branch
+instead.
 
 @item @code{staging}:
-after a successful review (see below), push here.
+always push to this branch after a successful patch review cycle (see
+below).
 
 @item @code{translation}:
-translators should base their work from this, and also push to it.
+Translators should base their work on this branch only and push any
+translation patches directly to it as well.
 
 @item @code{dev/foo}:
 feel free to push any new branch name under @code{dev/}.
@@ -134,13 +152,16 @@ feel free to push any new branch name under @code{dev/}.
 @end itemize
 
 @item @strong{regression tests}:
-also known as @qq{regtests}; this is a collection of more than a
-thousand .ly files.  We track the output of those files between
-versions.
+also known as @qq{regtests}. A collection of more than a thousand
+@code{.ly} files that are used to track LilyPond's engraving output
+between released stable and unstable versions as well as checked for all
+patches submitted for testing.
 
-If a patch introduces any unintentional changes to the regtests,
-we will likely reject it -- make sure that you are aware and can
-explain any regtest changes.  More info in @ref{Regression tests}.
+If a patch introduces any unintentional changes to any of the regtests
+it is very likely it will be rejected (to be fixed) -- always make sure
+that, if you expect any regression test changes, that they are explained
+clearly as part of the patch description when submitting for testing.
+For more information see @ref{Regression tests}.
 
 @item @strong{reviews}:
 after finishing work on a patch or branch:
@@ -149,41 +170,51 @@ after finishing work on a patch or branch:
 @item
 upload it with our custom @code{git-cl} @q{helper-script}; see
 @ref{git-cl}.  In addition to uploading patches to the Google's Rietveld
-Code Review Tool the script will also update the issue tracker (or add a
-new issue as appropriate) so that we don't lose reference to your
-patch.  The @qq{status} of your patch is kept on the issue tracker;
-see @ref{Issues}.
+code review tool the script will also update the issue tracker (or add a
+new issue as appropriate) so that any reference to the patch is not
+lost.  The current @qq{status} of any patch submitted is always managed
+on the issue tracker; also see @ref{Issues}.
 
-Your patch will be given @code{Patch-new} status.  More information on
-this can be found in the section @ref{Uploading a patch for review}.
+Once submitted the patch will be given a status of @code{Patch-new} and
+will enter the @qq{Patch Countdown}.  More information on this can be
+found in the section @ref{Uploading a patch for review}.
 
 @item
-If your patch passes some automatic tests, it will be given
-@code{Patch-review} status.  This generally happens within 24
-hours.
+Patches are generally tested within 24 hours of submission.  Once it has
+passed the basic tests -- make, make doc and a make test-baseline/check
+--, the tracker will be updated and the patch's status will change to
+@code{Patch-review} for other developers to examine.
 
 @item
-After that, the patch must wait for the next @qq{patch countdown},
-which occurs roughly every 3 days.  When your patch is put on a
-countdown, it will be given @code{Patch-countdown} status.
+Every third day, the @qq{Patch Meister} will examine the issue tracker
+and the Rietveld code review tool for the submitted patch, looking for
+any comments by other developers.  Depending on what has been posted,
+the patch will be either; @qq{moved on} to the next patch status
+(@code{Patch-countdown}); set back to @code{Patch-needs_work}; or if
+more discussion is needed, left at @code{Patch-review}.  In all cases
+the issue tracker (not the Rietveld code review tool) will be updated by
+the Patch Meister accordingly.
 
 @item
-The countdown is a 72-hour period which gives other developers one
-last chance to review the patch.  If no significant problems are
-found, your patch will be given @code{Patch-push} status.
+Once another three days have passed, any patch that has been given
+@code{Patch-countdown} status will be changed to @code{Patch-push}, the
+issue tracker is updated, and the developer can now push it directly to
+the @code{staging} branch (or email the patch -- created with
+@w{@code{git format-patch}} command -- to one of the other developers
+who can push it for you).
 
 @item
-You may now either push it to the @code{staging} branch, or email
-your patch (created with @w{@code{git format-patch}}) to somebody
-who will push it for you.
+Automatic scripts run every few hours to merge the @code{staging} branch
+with @code{master}.
 
 @end enumerate
 
-@advanced{Yes, this process means that most patches wait between
-60-120 hours before reaching @code{master}.  This is unfortunate, but
-given our limited resources for reviewing patches and a history of
-unintended breakage in @code{master}, this is the best compromise
-we have found.}
+@advanced{This process does means that most patches will take about a
+week before finally being merged into @code{master}.  With the limited
+resources for reviewing patches available and a history of unintended
+breakages in the @code{master} branch (from patches that have
+not had time to be reviewed properly), this is the best compromise we
+have found.}
 
 @end itemize
 
index 883328f85a2345a76760986b8e45fff1def3eda8..434ead511a139e1181b417f0cfb7997e4da18ae6 100644 (file)
@@ -69,93 +69,80 @@ If you would like to be part of the Bug Squad, please contact the
 @node Bug Squad setup
 @subsection Bug Squad setup
 
-We highly recommend that you configure your email to use effective
-sorting; this can reduce your workload @emph{immensely}.  The
-email folders names were chosen specifically to make them work if
-you sort your folders alphabetically.
+We highly recommend that you configure your email client to use some
+kind of sorting and filtering as this will significantly reduce and
+simplify your workload.  Suggested email folder names are mentioned
+below to work when sorted alphabetically.
 
 @enumerate
 
 @item
-Read every section of this chapter, @ref{Issues}.
+Read every section of the @ref{Issues} chapter in this guide.
 
 @item
-If you do not have one already, create a gmail account and send
-the email address to the @ref{Meisters, Bug Meister}.
+Subscribe your email account to @code{bug-lilypond}.  See
+@uref{https://lists.gnu.org/mailman/listinfo/bug-lilypond}.
 
 @item
-Subscribe your gmail account to @code{bug-lilypond}.
+Send your email address to the @ref{Meisters, Bug Meister}.
 
 @item
-Configure your google code account:
+Create your own Sourceforge login (required for the Allura issue
+tracker):
 
-@enumerate
+@itemize
 
 @item
-Wait until your gmail account is listed in:
-
-@example
-@uref{http://code.google.com/p/lilypond/people/list}
-@end example
+Go to @uref{https://sourceforge.net/p/testlilyissues/issues/}
 
 @item
-Sign in to google code by clicking in the top-right corner of:
-
-@example
-@uref{http://code.google.com/p/lilypond/issues/list}
-@end example
-
-You cannot log on if you have Google Sharing enabled
-@uref{http://www.googlesharing.net/}.
+Click on 'Join' in the top-right corner.
 
 @item
-Go to your @qq{Profile}, and select @qq{Settings}.
+Fill in your details as required and click the @emph{Register} button to
+complete the registration.
 
-@item
-Scroll down to @qq{Issue change notification}, and make sure that
-you have @emph{selected} @qq{If I starred the issue}.
+@end itemize
 
-@end enumerate
+@item
+Send your Sourceforge @emph{username} (not your email address) to
+@email{bug-lilypond@@gnu.org} asking to be given appropriate permissions
+to either create, edit and comment on tracker issues.
 
 @item
 Configure your email client:
 
-@enumerate
+@itemize
 
 @item
-Any email sent with your gmail address in the @code{To:} or
-@code{CC:} fields should go to a @code{bug-answers} folder.
-
-When setting up your filtering rules, be aware that Google Code
-might use different versions of your email address, such as ones
-ending in @code{@@googlemail.com} or @code{@@gmail.com}.
+Any email sent with your address in the @code{To:} or @code{CC:} fields
+should be configured to go into a @code{bug-answers} folder.
 
 @item
-Any other email either from, or CC'd to,
+Any email either @code{From:} or @code{CC:} to,
 
 @example
-lilypond@@googlecode.com
+testlilyissues-auto@@lists.sourceforge.net
 @end example
 
 @noindent
-should go into a separate @code{bug-ignore} folder.  Alternately,
-you may automatically delete these emails.
-
-You will @strong{not read} these emails as part of your Bug Squad
-duties.  If you are curious, go ahead and read them later, but it
-does @strong{not} count as Bug Squad work.
+should be configured to go into a @code{bug-ignore} folder or,
+alternately, configure your email client to delete these automatically.
+You do @emph{not} need to read mails in the @code{bug-ignore} folder.
+If you are curious (and have time) then read them, but they are not
+necessary for Bug Squad work.
 
 @item
-Any other email sent to (or CC'd to):
+Any email sent @code{To:} or @code{CC:} to,
 
 @example
 bug-lilypond
 @end example
 
 @noindent
-should go into a separate @code{bug-current} folder.
+should be configured to go into a @code{bug-current} folder.
 
-@end enumerate
+@end itemize
 
 @end enumerate
 
@@ -341,21 +328,26 @@ After @strong{every release} (both stable and unstable):
 @item
 Issues to verify: go to
 
-@example
-@uref{http://code.google.com/p/lilypond/issues/list?can=7}
-@end example
+@smallexample
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status%3AFixed}
+@end smallexample
 
-(You can also generate this list by selecting
-@qq{Issues to verify} from the drop-down list next to the search
-box.)
+(You can also generate this list by selecting the @qq{Open (Fixed)}
+button down the left-hand frame)
 
-You should see a list of Issues that have been claimed fixed by a
+You should see a list of Issues that have been marked as 'Fixed' by a
 developer.  If the developer has done their job properly, the
-Issue should have a tag @qq{Fixed_mm_MM_ss}, where mm is
-the major version, MM the minor version and ss the current
-release.  This will help you work out which you can verify - do
-not verify any Issues where the claimed fixed build is not yet
-released.  Work your way through these as follows:
+Issue should have the @qq{Labels} field filled in with @qq{Fixed_x_y_z},
+where X is the major version, y the minor version and z the current
+release.
+
+@example
+Fixed_2_19_39
+@end example
+
+This will help you work out which you can verify - do not verify any
+Issues where the claimed fixed build is not yet released.  Work your
+way through these as follows:
 
 If the Issue refers to a bug, try to reproduce the bug with the latest
 officially released version (not one you've built yourself from
@@ -817,7 +809,6 @@ email should contain a link to the issue you just added.
 @end enumerate
 
 
-
 @node Patch handling
 @section Patch handling
 
@@ -825,262 +816,87 @@ email should contain a link to the issue you just added.
 separate person handling this task.}
 
 For contributors/developers: follow the steps in
-@ref{Commits and patches}, and @ref{Pushing to staging}.
+@ref{Patches}, and @ref{Pushing to staging}.
 
 @ignore
 For people doing maintenance tasks: git-cl is adding issues, James
-is testing them, Colin is selecting them for countdowns, and
-Patchy is merging from staging to master.  In the coming weeks,
-these tasks will be more and more automated.
+is testing patches and managing the Patch countdown.  He also generally
+runs the scripts that merging to Staging (although other developers are
+available to do this task if required).
 @end ignore
 
-@subheading Patch cycle
 
-@itemize
-
-@item
-Patches get added to the tracker and to Rietveld by the @qq{git-cl} tool, with
-a status of @qq{patch-new}.
+@node Summary of project status
+@section Summary of project status
 
-@item
-The automated tester, Patchy, verifies that the patch can be applied
-to current master.  By default, it checks that the patch allows @code{make}
-and @code{make test} to complete successfully.  It can also be configured to
-check that @code{make doc} is successful. If it passes, Patchy changes the
-status to @qq{patch-review} and emails the developer list.  If the patch
-fails, Patchy sets it to @qq{patch-needs_work} and notifies the developer list.
+@subsubheading Project overview
 
-@item
-The Patch Meister reviews the tracker periodically, to list patches
-which have been on review for at least 24 hours. The list is found at
+Project activity
 
 @smallexample
-@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:patch%20patch=review&sort=modified+patch&colspec=ID%20Type%20Status%20Priority%20Owner%20Patch%20Summary%20Modified}
+@uref{https://sourceforge.net/projects/testlilyissues/}
 @end smallexample
 
-@item
-For each patch, the Handler reviews any discussion on the tracker
-and on Rietveld, to determine whether the patch can go forward.  If
-there is any indication that a developer thinks the patch is not
-ready, the Handler marks it @qq{patch-needs_work} and makes a comment
-regarding the reason, referring to the Rietveld item if needed.
-
-@item
-Patches with explicit approval, or at least no negative comment, can
-be updated to @qq{patch-countdown}.  When saving the tracker item,
-clear the @qq{send email} box to prevent sending notification for
-each patch.
-
-@item
-The Patch Meister sends an email to the developer list, with a fixed
-subject line, to enable filtering by email clients:
-
-@example
-PATCH: Countdown to 20130113
-@end example
-
-The text of the email sets the deadline for this countdown batch.  At
-present, batches are done on Tuesday, Thursday and Sunday evenings.
-
-To create the countdown announcement, use the
-@code{make-countdown-announcement.sh} script, which takes the
-deadline date, and optionally your name.  Follow the instructions
-provided:
-
-@example
-cd $LILYPOND_GIT
-scripts/auxiliar/make-countdown-announcement.sh "Jan 1, 2001" James
-@end example
+@subsubheading Hindering development
 
-The script produces an announcement that is easily readable in all
-email clients.  Also, whenever a new contributor submits a patch,
-you will be prompted to add the new username and author name to
-the script itself, and then commit those changes to the main git
-repository.
+These issues stop or slow development work:
 
+@smallexample
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status:Accepted%20AND%20_type:Maintainability}
+@end smallexample
 
-@item
-On the scheduled countdown day, the Patch Meister reviews the
-previous list of patches on countdown, with the same procedure and
-criteria as before.  Patches with no controversy can be set to
-@qq{patch-push} with a courtesy message added to the comment block.
+@subsubheading Easy tasks
 
-@item
-Roughly at six month intervals, the Patch Meister can list the
-patches which have been set to @qq{patch-needs-work} and send the
-results to the developer list for review.  In most cases, these
-patches should be marked @qq{patch-abandoned} but this should come
-from the developer if possible.
+Issues tagged with @code{Frog} indicates a task suitable for a
+relatively new contributor.  The time given is a quick (and probably
+inaccurate) estimate of the time required for somebody who is familiar
+with material in this manual, but does not know anything else about
+LilyPond development.
 
-@item
-As in most organisations of unpaid volunteers, fixed procedures are
-useful in as much as they get the job done.  In our community, there
-is room for senior developers to bypass normal patch handling flows,
-particularly now that the testing of patches is largely automated.
-Similarly, the minimum age of 24 hours can reasonably be waived if
-the patch is minor and from an experienced developer.
+@smallexample
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status:Accepted%20AND%20labels:Frog}
+@end smallexample
 
+@subsubheading Patches currently in the Patch Review cycle
 
-@end itemize
+Overview
 
-@ignore
-There is a single Patch Meister, and a number of Patch Helpers
-(rename this?).  The list of known patches awaiting review is:
+@c The following URL is provided by one of the Developers giving a much
+@c easier way to see all patches at all stages of the Review cycle in a
+@c single place.
 
 @example
-@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:patch&sort=patch}
+http://philholmes.net/lilypond/allura/
 @end example
 
 
-@subheading Helpers: adding patches
-
-The primary duty is to add patches to the google tracker; we have
-a bad track record of losing patches in email.  Patches generally
-come to the @code{lilypond-devel} mailing list, but are sometimes
-sent to @code{bug-lilypond}, @code{lilypond-users}, or
-@code{frogs} mailing list instead.
-
-@itemize
-@item
-Unless a patch is clearly in response to an existing issue, add a
-new issue with the @code{Patch-new} label and a link to the patch
-(either on the mailing list archives or the codereview url).
-
-Issue numbers are cheap; losing developers because they got fed up
-with us losing their hard work is expensive.
-
-@end ignore
-@c if we enter patches immediately, I don't think this is relevant.
-@ignore
-@item
-Before adding a patch-reminder issue, do a quick check to see if
-it was pushed without sending any email.  This can be checked for
-searching for relevant terms (from the patch subject or commit
-message) on the webgit page:
-
-@example
-@uref{http://git.savannah.gnu.org/gitweb/?p=lilypond.git}
-@end example
-@end ignore
-@ignore
-
-@item
-If the patch is clearly in response to an existing issue, then
-update that issue with the @code{Patch-new} label and a link to
-the patch (either on the mailing list archives or the codereview
-url).
-
-@item
-After adding the issue, please send a response email to the same
-group(s) that the initial patch was sent to.
-
-If the initial email was sent to multiple mailing lists (such as
-both @code{bugs} and @code{devel}), then reply to all those
-mailing lists as well.  The email should contain a link to the
-issue you just added.
-
-@end itemize
-
-@subheading Helpers: @code{Patch-review} label
-
-The secondary duty is to do make sure that every issue in the
-tracker with a @code{Patch-review} label has passed these
-@qq{obvious} tests:
-
-@itemize
-@item
-Applies automatically to git master.
-
-It's ok to have offsets, but not conflicts.
-
-@item
-Regtest comparison looks ok; no unexpected changes.
-
-@item
-Descriptive subject line.
-
-Avoid subjects like @qq{fixes 123}; instead write @qq{Doc: discuss
-stacking-dir for BassFigureAlignment (fix 123)}.
-
-@item
-Compiles docs from scratch.  Only check this if you have reason to
-suspect it might not work.
-
-@item
-(maybe)
-
-Check code indentation and style.  This should be easier post-GOP
-when we have a better-defined code style.
-
-@end itemize
-
-
-@subheading Patch Meister
-
-The Patch Meister will:
-
-@itemize
-
-@item
-send @qq{countdown} emails to
-@code{lilypond-devel} when patches appear to be ready.
-
-@item
-send general requests to review patches, or even nasty requests to
-review patches.
-
-@item
-downgrade patches from @code{Patch-review} to
-@code{Patch-needs_work} as appropriate.
-
-@item
-downgrade patches from @code{Patch-needs_work} to
-@code{Patch-abandoned} if no actions have been taken in four
-weeks.
-
-@end itemize
-
-@end ignore
-
-
-@node Summary of project status
-@section Summary of project status
-
-@subsubheading Project overview
-
-Grid view provides the best overview:
+@noindent
+New patches
 
 @smallexample
-@uref{http://code.google.com/p/lilypond/issues/list?mode=grid&y=Priority&x=Type&cells=ids}
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status%3AStarted+AND+_patch%3Anew}
 @end smallexample
 
-@subsubheading Hindering development
 
-These issues stop or slow development work:
+@noindent
+Patches under Review
 
 @smallexample
-@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:Maintainability}
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status%3AStarted+AND+_patch%3Areview}
 @end smallexample
 
-@subsubheading Easy tasks
 
-Issues tagged with @code{Frog} indicates a task suitable for a
-relatively new contributor.  The time given is a quick
-(inaccurate) estimate of the time required for somebody who is
-familiar with material in this manual, but does not know anything
-else about LilyPond development.
+@noindent
+Patches on final Countdown
 
 @smallexample
-@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:Frog}
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status%3AStarted+AND+_patch%3Acountdown}
 @end smallexample
 
-@subsubheading Patches to review
-
-Patches which have no @qq{obvious} problems:
-
-@example
-@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:patch-review}
-@end example
-
 
+@noindent
+Patches that can be pushed
 
+@smallexample
+@uref{https://sourceforge.net/p/testlilyissues/issues/search/?q=status%3AStarted+AND+_patch%3Apush}
+@end smallexample
index a6da27402bdcb64bdd1a0a92665e29bd3ccece23..e3ee9e91416b14ec8795bcd72d498f8942827ec2 100644 (file)
@@ -362,7 +362,7 @@ After entering a commit message, click @qq{OK} to finalize the
 commit.
 
 @advanced{for more information regarding commits and commit
-messages, see @ref{Commits and patches}.}
+messages, see @ref{Commits}.}
 
 
 @subsubheading 2b. Amend previous commit
@@ -490,9 +490,9 @@ PATH=~/directory_containing_git-cl:"$@{PATH@}"
 @unnumberedsubsec Updating @code{git-cl}
 
 LilyDev users should make sure that they always have the latest
-version of git-cl installed.  It is possible that changes may have been
-made to git-cl that are not (yet) included in the version of LilyDev has
-been installed.
+version of git-cl installed.  It is possible that changes have been
+made to git-cl that are not (yet) included in the version of LilyDev
+that you are using.
 
 @noindent
 Using a terminal run the following commands:
@@ -510,31 +510,36 @@ This will download and update you to the lastest version of git-cl.
 
 @subsubheading Set up login accounts
 
-Because the @code{git-cl} updates two separate websites (Google's
-Rietveld Code Review Tool and LilyPond's issue tracker) you @emph{must}
-have a valid user login and password to both sites.
+Because @code{git-cl} updates two separate websites (Google's Rietveld
+Code Review Tool and LilyPond's issue tracker) you @emph{must} have a
+valid user account (login and password) for both sites.
 
 @noindent
-Although that it may appear that you have to use a @q{Google} email
-address for the Rietveld Code Review Tool when you sign up, you can
-instead select the option @qq{I prefer to use my current email address}
-during sign up.
+For the Rietveld Code Review Tool you will need a Google account.  Note
+that a Google account does not require that you have or use a @q{Google}
+email address.  You can use @emph{any} email address for your Google
+account.  Just select the option @qq{I prefer to use my current email
+address} when you sign up.
+
+@warning{In order for @code{git-cl} to work, your Google Account
+Settings must have the @q{Access for less secure apps} set to
+@q{Allowed}.  This is normally the default setting.}
 
 @noindent
-For a user login to the LilyPond issue tracker, please send your
-request, preferably using the email address you want to use for your
-login, to the LilyPond Developer's mailing list
-(@code{lilypond-devel@@gnu.org}).
+For the LilyPond issue tracker, please request a user account by sending
+an email to the LilyPond Developer's mailing list
+(@code{lilypond-devel@@gnu.org}), preferably using the same email
+address that you want to use for your user login.
 
-@subsubheading Authorising git-cl for the LilyPond issue tracker
+@subsubheading Authorizing git-cl for the LilyPond issue tracker
 
 The @code{git-cl} command itself also needs to be @q{authorized} so that
 it can access the LilyPond issue tracker.
 
 @enumerate
 @item
-Once a valid login has been given for the LilyPond issye tracker, go to
-the @q{Account settings} and select the @q{OAuth} tab.
+Once you have been given a valid login for the LilyPond issue tracker,
+go to the @q{Account settings} and select the @q{OAuth} tab.
 
 @item
 Locate the @q{Register New Application} section and enter @code{git-cl}
@@ -545,7 +550,7 @@ Click on the @q{Register new application} button.  You should now see
 @q{git-cl} listed under the @q{My Applications} section.
 
 @item
-Click on the @q{Generate Bearer Token} button.    You should now see
+Click on the @q{Generate Bearer Token} button.  You should now see
 @q{git-cl} listed under the @q{Authorized Applications} section along
 with a value for the @q{Bearer Token} entry.  This value is used, in the
 next steps, to allow git-cl to access and update the LilyPond issue
@@ -553,28 +558,55 @@ tracker.
 
 @end enumerate
 
+@subsubheading Installing ca-certificates
+
+In order to have @code{git-cl} properly update issues on the SourceForge
+Allura issue tracker, you must have the package @code{ca-certificates}
+installed.  You can check to see if the package is installed with
+
+@example
+apt --installed list | grep ca-certificates
+@end example
+
+If @code{ca-certificates} is installed, you will get a result that shows
+the version that is installed.  If it is not installed, there will be
+no version displayed.
+
+Install @code{ca-certificates} with the following:
+
+@example
+sudo apt-get install ca-certificates
+@end example
+
+
 @subsubheading Running git-cl for the first time
 
 @enumerate
 @item
-Using a terminal, move to top source directory of the
-@code{$LILYPOND_GIT} directory and then run @code{git-cl} with the
-@code{config} option:
+Using a terminal, move to the top level of the @code{$LILYPOND_GIT}
+directory and then run @code{git-cl} with the @code{config} option:
 
 @example
 cd $LILYPOND_GIT
 git-cl config
 @end example
 
+@noindent
+You will see a series of prompts.  For most of them you can simply
+accept the default value by responding with a newline (i.e. by pressing
+return or enter).
+
 @item
-When prompted for the @code{Rietveld server}:
+The prompt for the @code{Rietveld server} (the patch review tool), which
+defaults to @code{codereview.appspot.com}
 
 @example
 Rietveld server (host[:port]) [codereview.appspot.com]:
 @end example
 
 @item
-When prompted for the @code{Allura server} (the LilyPond issue tracker):
+The prompt for the @code{Allura server} (the issue tracker), which
+defaults to @code{https://sourceforge.net/p/testlilyissues/issues/}
 
 @example
 Allura server [https://sourceforge.net/p/testlilyissues/issues/]:
@@ -583,18 +615,18 @@ Allura server [https://sourceforge.net/p/testlilyissues/issues/]:
 @item
 When prompted for the @code{Allura bearer token} copy/paste the value
 generated in the previous steps for
-@emph{Authorising git-cl for the LilyPond issue tracker}:
+@emph{Authorising git-cl for the LilyPond issue tracker}
 
 @smallexample
-Allura bearer token (see https://sourceforge.net/auth/oauth/) [fdbfca60801533465480]:
+Allura bearer token (see https://sourceforge.net/auth/oauth/): fdbfca60801533465480
 @end smallexample
 
-@warning{The above is a @q{fake} bearer token just to illustrate the
-example. Do not use this value.}
+@warning{The above is a @q{fake} bearer token used just for
+illustration. Do not use this value.}
 
 @item
-Finally, when prompted for the @code{CC list} entry, add the LilyPond
-Developer's group email.
+Finally, the prompt for the @code{CC list}, which defaults to
+@code{lilypond-devel@@gnu.org}, the LilyPond Developer's email list.
 
 @example
 CC list ("x" to clear) [lilypond-devel@@gnu.org]:
index 4a7357878c85e13f87a3aaf5ed289baed674596a..9541fe963a775bcabe1ef4ed841cd6cf9e800bc5 100644 (file)
@@ -45,7 +45,7 @@ If you haven't already, download and install Git.
 @qq{Full installer for official Git} from:
 
 @example
-@uref{http://code.google.com/p/msysgit/downloads/list}
+@uref{https://git-for-windows.github.io/}
 @end example
 
 @item Other operating systems: either install @command{git} with
@@ -848,7 +848,10 @@ The branches are kept for archival reasons.
 * The Git contributor's cycle::
 * Pulling and rebasing::
 * Using local branches::
-* Commits and patches::
+* Commits::
+* Patches::
+* Uploading a patch for review::
+* The patch review cycle::
 @end menu
 
 
@@ -940,7 +943,7 @@ refusing to pull with rebase: your working tree is not up-to-date
 
 @noindent
 it means that you have modified some files in you working tree
-without committing changes (see @ref{Commits and patches}); you
+without committing changes (see @ref{Commits}); you
 can use the @command{git@tie{}stash} command to work around this:
 
 @example
@@ -1088,16 +1091,13 @@ to merge @code{translation} into @code{staging} whenever he has
 checked that @code{translation} builds successfully.
 
 
-@node Commits and patches
-@subsection Commits and patches
-
+@node Commits
+@subsection Commits
 
 @menu
 * Understanding commits::
-* Making commits::
+* How to make a commit::
 * Commit messages::
-* Making patches::
-* Uploading a patch for review::
 @end menu
 
 
@@ -1129,8 +1129,8 @@ branch are available at
 @uref{http://git.sv.gnu.org/cgit/lilypond.git/log/}.
 
 
-@node Making commits
-@unnumberedsubsubsec Making commits
+@node How to make a commit
+@unnumberedsubsubsec How to make a commit
 
 
 Once you have modified some source files in your working
@@ -1235,21 +1235,41 @@ high-res images, fixed cropping on Finale example.
 @end example
 
 Commit messages often start with a short prefix describing the
-general location of the changes.  If a commit affects the
+general location of the changes.
+
+@itemize
+@item
+Doc: and Doc-@var{**}:  If a commit affects the
 documentation in English (or in several languages simultaneously)
-the commit message should be prefixed with @qq{Doc:@tie{}}.  If
-the commit affects only one of the translations, the commit
+the commit message should be prefixed with @qq{Doc:@tie{}}.  If the
+commit affects only one of the translations, the commit
 message should be prefixed with @qq{Doc-@var{**}:@tie{}}, where
-@var{**} is the two-letter language code.  Commits that affect the
+@var{**} is the two-letter language code.
+
+@item
+Web: and Web-@var{**}:  Commits that affect the
 website should use @qq{Web:@tie{}} for English, and
-@qq{Web-@var{**}:@tie{}} for the other languages.  Also, changes
-to a single file are often prefixed with the name of the file
-involved.  Visit the links listed in @ref{Understanding commits}
-for examples.
+@qq{Web-@var{**}:@tie{}} for other languages.
+
+@item
+Changes to a single file are often prefixed with the name of the file
+involved.
+@end itemize
+
+Visit the links listed in @ref{Understanding commits} for examples.
+
+
 
+@node Patches
+@subsection Patches
 
-@node Making patches
-@unnumberedsubsubsec Making patches
+@menu
+* How to make a patch::
+* Emailing patches::
+@end menu
+
+@node How to make a patch
+@unnumberedsubsubsec How to make a patch
 
 If you want to share your changes with other contributors and
 developers, you need to generate @emph{patches} from your commits.
@@ -1289,98 +1309,48 @@ reviewed, the developers may push one or more of them to the main
 repository or discuss them with you.
 
 
-@node Uploading a patch for review
-@unnumberedsubsubsec Uploading a patch for review
-
-Any non-trivial change should be uploaded to our @qq{Rietveld}
-code review website:
-
-@example
-@uref{http://codereview.appspot.com/}
-@end example
-
-@subsubheading @command{git-cl} install
-
-LilyDev users should skip over these @q{install} instructions.
-
-@enumerate
-
-@item
-Install @command{git-cl} by entering:
-
-@example
-git clone https://github.com/gperciva/git-cl.git
-@end example
-
-If that command fails for some reason, try this instead:
+@node Emailing patches
+@unnumberedsubsubsec Emailing patches
 
-@example
-git clone git://github.com/gperciva/git-cl.git
-@end example
-
-@item
-Add the @file{git-cl/} directory to your PATH,
-or create a symbolic link to the @command{git-cl}
-and @command{upload.py} scripts in one of your PATH
-directories (such as @file{$HOME/bin}).
+The default @code{x-diff} MIME type associated with patch files
+(i.e., files whose name ends in @code{.patch}) means that the
+encoding of line endings may be changed from UNIX to DOS format
+when they are sent as attachments.  Attempting to apply such an
+inadvertently altered patch will cause git to fail with a message
+about @q{whitespace errors}.
 
-In GNU/Linux you can add directories to PATH
-by adding this line to a hidden file @file{.bashrc},
-located in your home directory:
+The solution to such problems is surprisingly simple---just change
+the default file extension of patches generated by git to end in
+@code{.txt}, for example:
 
 @example
-PATH=~/type-here-directory-containing-git-cl:"$@{PATH@}"
+git config format.suffix '.patch.txt'
 @end example
 
-@end enumerate
-
-@subsubheading @command{git-cl} configuration
-
-LilyDev users should perform these @q{configuration} instructions.
-
-@enumerate
-@item
-You must own a Google account login; please create one if you do not
-have one already.
-
-@noindent
-Note that a google account does not need to be a Gmail account; you can
-use @emph{any} email address for your google account when you sign up.
+This should cause email programs to apply the correct base64
+encoding to attached patches.
 
-@warning{In order for @code{git-cl} to work as expected, your Google
-Account Settings must have the @q{Access for less secure apps} set to
-@q{Allowed}.  This is normally the default setting.}
+If you receive a patch with DOS instead of UNIX line-endings, it
+can be converted back using the @code{dos2unix} utility.
 
-@item
-Move into the top source directory and then configure
-@command{git-cl} with the following commands:
+Lots of useful information on email complications with patches is
+provided on the Wine wiki at
+@uref{http://wiki.winehq.org/GitWine}.
 
-@example
-cd $LILYPOND_GIT
-git-cl config
-@end example
 
-For the @qq{Rietveld server} question, the default value
-(@qq{codereview.appspot.com}) should be accepted by
-answering with a newline (CR).
+@node Uploading a patch for review
+@subsection Uploading a patch for review
 
-The @qq{CC list} question should be answered with:
+Any non-trivial change should be uploaded to our @qq{Rietveld}
+code review website:
 
 @example
-lilypond-devel@@gnu.org
+@uref{http://codereview.appspot.com/}
 @end example
 
-The @qq{Tree status URL} value should be left blank.  So should
-the @qq{ViewVC URL} value, since it is used by @command{git-cl
-dcommit} which is only for repositories which use @command{git
-svn} (LilyPond doesn't).
-
-@end enumerate
-
-@subsubheading Uploading patch set
-
-This section assumes that you have already configured the
-@command{git-cl} @q{helper-script}.  See @ref{git-cl}.
+You can upload a patch for review by using our custom @code{git-cl}
+@q{helper-script}.  This section assumes you have already installed,
+updated, and configured @code{git-cl}.  See @ref{git-cl}.
 
 @warning{Unless you are familiar with branches, only work on one
 set of changes at once.}
@@ -1440,15 +1410,12 @@ git-cl upload <reference SHA1 ID>
 @noindent
 where <reference SHA1 ID> is the SHA1 ID of the commit to be used
 as a reference source for the patch.  Generally, this will be the
-SHA1 ID of origin/master, and in that case the command:
+SHA1 ID of origin/master, and in that case you can just use the command:
 
 @example
 git-cl upload origin/master
 @end example
 
-@noindent
-can be used.
-
 @end itemize
 
 First you will see a terminal editor where you can edit the
@@ -1503,7 +1470,9 @@ running:
 git-cl issue 0
 @end example
 
-@subsubheading Wait for a countdown
+
+@node The patch review cycle
+@subsection The patch review cycle
 
 Your patch will be available for reviews for the next few hours or
 days.  Three times a week, patches with no known problems are
@@ -1520,6 +1489,211 @@ Once a patch has @code{patch-push}, it should be sent to your
 mentor for uploading.  If you have git push ability, look at
 @ref{Pushing to staging}.
 
+@itemize
+
+@item
+Patches get added to the tracker and to Rietveld by the @qq{git-cl} tool, with
+a status of @qq{patch-new}.
+
+@item
+The automated tester, Patchy, verifies that the patch can be applied
+to current master.  By default, it checks that the patch allows @code{make}
+and @code{make test} to complete successfully.  It can also be configured to
+check that @code{make doc} is successful. If it passes, Patchy changes the
+status to @qq{patch-review} and emails the developer list.  If the patch
+fails, Patchy sets it to @qq{patch-needs_work} and notifies the developer list.
+
+@item
+The Patch Meister reviews the tracker periodically, to list patches
+which have been on review for at least 24 hours. The list is found at
+
+@smallexample
+@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:patch%20patch=review&sort=modified+patch&colspec=ID%20Type%20Status%20Priority%20Owner%20Patch%20Summary%20Modified}
+@end smallexample
+
+@item
+For each patch, the Handler reviews any discussion on the tracker
+and on Rietveld, to determine whether the patch can go forward.  If
+there is any indication that a developer thinks the patch is not
+ready, the Handler marks it @qq{patch-needs_work} and makes a comment
+regarding the reason, referring to the Rietveld item if needed.
+
+@item
+Patches with explicit approval, or at least no negative comment, can
+be updated to @qq{patch-countdown}.  When saving the tracker item,
+clear the @qq{send email} box to prevent sending notification for
+each patch.
+
+@item
+The Patch Meister sends an email to the developer list, with a fixed
+subject line, to enable filtering by email clients:
+
+@example
+PATCH: Countdown to 20130113
+@end example
+
+The text of the email sets the deadline for this countdown batch.  At
+present, batches are done on Tuesday, Thursday and Sunday evenings.
+
+To create the countdown announcement, use the
+@code{make-countdown-announcement.sh} script, which takes the
+deadline date, and optionally your name.  Follow the instructions
+provided:
+
+@example
+cd $LILYPOND_GIT
+scripts/auxiliar/make-countdown-announcement.sh "Jan 1, 2001" James
+@end example
+
+The script produces an announcement that is easily readable in all
+email clients.  Also, whenever a new contributor submits a patch,
+you will be prompted to add the new username and author name to
+the script itself, and then commit those changes to the main git
+repository.
+
+
+@item
+On the scheduled countdown day, the Patch Meister reviews the
+previous list of patches on countdown, with the same procedure and
+criteria as before.  Patches with no controversy can be set to
+@qq{patch-push} with a courtesy message added to the comment block.
+
+@item
+Roughly at six month intervals, the Patch Meister can list the
+patches which have been set to @qq{patch-needs-work} and send the
+results to the developer list for review.  In most cases, these
+patches should be marked @qq{patch-abandoned} but this should come
+from the developer if possible.
+
+@item
+As in most organisations of unpaid volunteers, fixed procedures are
+useful in as much as they get the job done.  In our community, there
+is room for senior developers to bypass normal patch handling flows,
+particularly now that the testing of patches is largely automated.
+Similarly, the minimum age of 24 hours can reasonably be waived if
+the patch is minor and from an experienced developer.
+
+
+@end itemize
+
+@ignore
+There is a single Patch Meister, and a number of Patch Helpers
+(rename this?).  The list of known patches awaiting review is:
+
+@example
+@uref{http://code.google.com/p/lilypond/issues/list?can=2&q=label:patch&sort=patch}
+@end example
+
+
+@subheading Helpers: adding patches
+
+The primary duty is to add patches to the google tracker; we have
+a bad track record of losing patches in email.  Patches generally
+come to the @code{lilypond-devel} mailing list, but are sometimes
+sent to @code{bug-lilypond}, @code{lilypond-users}, or
+@code{frogs} mailing list instead.
+
+@itemize
+@item
+Unless a patch is clearly in response to an existing issue, add a
+new issue with the @code{Patch-new} label and a link to the patch
+(either on the mailing list archives or the codereview url).
+
+Issue numbers are cheap; losing developers because they got fed up
+with us losing their hard work is expensive.
+
+
+@c if we enter patches immediately, I don't think this is relevant.
+
+@item
+Before adding a patch-reminder issue, do a quick check to see if
+it was pushed without sending any email.  This can be checked for
+searching for relevant terms (from the patch subject or commit
+message) on the webgit page:
+
+@example
+@uref{http://git.savannah.gnu.org/gitweb/?p=lilypond.git}
+@end example
+
+
+@item
+If the patch is clearly in response to an existing issue, then
+update that issue with the @code{Patch-new} label and a link to
+the patch (either on the mailing list archives or the codereview
+url).
+
+@item
+After adding the issue, please send a response email to the same
+group(s) that the initial patch was sent to.
+
+If the initial email was sent to multiple mailing lists (such as
+both @code{bugs} and @code{devel}), then reply to all those
+mailing lists as well.  The email should contain a link to the
+issue you just added.
+
+@end itemize
+
+@subheading Helpers: @code{Patch-review} label
+
+The secondary duty is to do make sure that every issue in the
+tracker with a @code{Patch-review} label has passed these
+@qq{obvious} tests:
+
+@itemize
+@item
+Applies automatically to git master.
+
+It's ok to have offsets, but not conflicts.
+
+@item
+Regtest comparison looks ok; no unexpected changes.
+
+@item
+Descriptive subject line.
+
+Avoid subjects like @qq{fixes 123}; instead write @qq{Doc: discuss
+stacking-dir for BassFigureAlignment (fix 123)}.
+
+@item
+Compiles docs from scratch.  Only check this if you have reason to
+suspect it might not work.
+
+@item
+(maybe)
+
+Check code indentation and style.  This should be easier post-GOP
+when we have a better-defined code style.
+
+@end itemize
+
+
+@subheading Patch Meister
+
+The Patch Meister will:
+
+@itemize
+
+@item
+send @qq{countdown} emails to
+@code{lilypond-devel} when patches appear to be ready.
+
+@item
+send general requests to review patches, or even nasty requests to
+review patches.
+
+@item
+downgrade patches from @code{Patch-review} to
+@code{Patch-needs_work} as appropriate.
+
+@item
+downgrade patches from @code{Patch-needs_work} to
+@code{Patch-abandoned} if no actions have been taken in four
+weeks.
+
+@end itemize
+
+@end ignore
+
 
 @node Advanced Git procedures
 @section Advanced Git procedures
@@ -1546,7 +1720,6 @@ several Git branches of LilyPond source code is presented.
 * Working with remote branches::
 * Git log::
 * Applying remote patches::
-* Sending and receiving patches via email::
 * Cleaning up multiple patches::
 * Commit access::
 * Pushing to staging::
@@ -1800,34 +1973,6 @@ the patch actually @emph{adds}, like a regtest for a fixed bug, would
 get lost.  For the same reason, you should not use the git-independent
 @samp{patch} program for applying patches.
 
-@node Sending and receiving patches via email
-@subsection Sending and receiving patches via email
-
-
-The default @code{x-diff} MIME type associated with patch files
-(i.e., files whose name ends in @code{.patch}) means that the
-encoding of line endings may be changed from UNIX to DOS format
-when they are sent as attachments.  Attempting to apply such an
-inadvertently altered patch will cause git to fail with a message
-about @q{whitespace errors}.
-
-The solution to such problems is surprisingly simple---just change
-the default file extension of patches generated by git to end in
-@code{.txt}, for example:
-
-@example
-git config format.suffix '.patch.txt'
-@end example
-
-This should cause email programs to apply the correct base64
-encoding to attached patches.
-
-If you receive a patch with DOS instead of UNIX line-endings, it
-can be converted back using the @code{dos2unix} utility.
-
-Lots of useful information on email complications with patches is
-provided on the Wine wiki at
-@uref{http://wiki.winehq.org/GitWine}.
 
 
 @node Cleaning up multiple patches
@@ -2143,11 +2288,32 @@ end up in master after all, defeating the purpose of the system.  The
 proper fix usually involves rewriting the staging branch and is best
 left to core developers after discussion on the developer list.
 
+Before pushing to staging it is a good practice to check whether
+staging is ahead of master, and if so, wait until master has caught up
+with staging before pushing.  This simplifies things if changes to
+staging have to be backed out for some reason.  To check whether
+master has caught up with staging you can look at the git web interface
+on savannah, or do:
+
+@example
+git fetch
+gitk
+@end example
+
+and check that @code{origin/master} is at the same commit as
+@code{origin/staging}.  Another option is to see if any commits are
+listed when you do:
+
+@example
+git fetch
+git log origin/master..origin/staging
+@end example
+
 @subsubheading If your work is in a patch file
 
 Assuming that your patch is in a file called
-@file{0001-my-patch.patch}, and you are currently on git master,
-do:
+@file{0001-my-patch.patch} (see @ref{Patches}), and you are currently
+on git master, do:
 
 @example
 git checkout staging
@@ -2165,20 +2331,26 @@ commit ahead of @code{origin/staging}.}
 
 @subsubheading If your work is in a branch
 
-If you are working on branches and your work in is
+If you are working on branches and your work is in
 @code{my_branch_name}, then do:
 
 @example
-git checkout staging
-git pull -r
-git merge my_branch_name
+git checkout my_branch_name
+git pull -r origin staging
+@end example
+
+This will rebase your branch on @code{origin/staging}.  At this point
+git will let you know if there are any conflicts.  If so, resolve them
+before continuing:
+
+@example
 gitk
-git push origin staging
+git push origin HEAD:staging
 @end example
 
 @warning{Do not skip the @command{gitk} step; a quick 5-second
 check of the visual history can save a great deal of frustration
-later on.  You should see that @code{staging} is only ahead of
+later on.  You should see that @code{my_branch_name} is only ahead of
 @code{origin/staging} by the commits from your branch.}
 
 
@@ -2223,9 +2395,7 @@ has, either as a complete file or as a @q{diff} or @q{patch}
 @subsection Installing git
 
 Obtain Git from
-@uref{http://code.google.com/p/msysgit/downloads/list} (note, not
-msysGit, which is for Git developers and not PortableGit, which is
-not a full git installation) and install it.
+@uref{https://git-for-windows.github.io/}.
 
 Note that most users will not need to install SSH.  That is not
 required until you have been granted direct push permissions to
index 3136c1b144ca0864449d8ad3003b65df252dc548..d719843b53e3e1e0d58b9c1b326b47cdb24d44b7 100644 (file)
@@ -293,7 +293,7 @@ shared with people without trusted access to the server.
 @item
 Install apache2, or any other http server.  These instructions
 assume that you also enable @code{mod_userdir}, and use
-@code{$HOME/public_html} as the location.
+@code{$HOME/public_html/lilypond.org} as the location.
 
 @item
 Build the online docs and website:
@@ -311,14 +311,13 @@ example) the French with @code{make WEB_LANGS='fr' website}.
 @item
 Move the built stuff into those directories.  It's highly
 recommended to have your build dir and www dir on the same
-partition.  (make @code{$HOME/public_html/} a symlink if
-necessary)
+partition.  (make @code{$HOME/public_html/lilypond.org} a symlink
+if necessary)
 
 @example
-mv out-website/website/ $HOME/public_html
-mv $HOME/public_html/website/pictures $HOME/public_html/
-mkdir -p $HOME/public_html/doc/v2.13/
-mv out-www/online-root/* $HOME/public_html/doc/v2.13/
+mv out-website/website $HOME/public_html/lilypond.org/
+mkdir -p $HOME/public_html/lilypond.org/doc/v2.19/
+mv out-www/online-root/* $HOME/public_html/lilypond.org/doc/v2.19/
 @end example
 
 @end itemize
@@ -374,5 +373,3 @@ es/Spanish translations, for example).
 
 @end itemize
 
-
-
index 8a5a56e56b19bb3f62f3e67504dbc1e742951c36..d09eee8427c5702494e523d28f6aec785723a946 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Naposledy obnoveno Fri Jan  1 10:40:27 UTC 2016
+@emph{Naposledy obnoveno Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -111,7 +111,7 @@ ano
 @item
 2 Běžný notový zápis
 @*
-4443
+4437
 @tab Pavel Fric
 @tab 
 @tab 
@@ -128,7 +128,7 @@ ano
 @ifhtml
 
 @html
-<span style="background-color: #c0ff34">částečně</span>
+<span style="background-color: #c7ff35">částečně</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -165,7 +165,7 @@ ano
 @item
 4 Ladění výstupu
 @*
-16577
+16622
 @tab Pavel Fric
 @tab 
 @tab 
@@ -285,7 +285,7 @@ ano
 @item
 Úvod
 @*
-5816
+5815
 @tab Pavel Fric
 @tab 
 @tab 
@@ -302,7 +302,7 @@ ano
 @ifhtml
 
 @html
-<span style="background-color: #fffa3d">částečně</span>
+<span style="background-color: #fff73e">částečně</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -366,24 +366,24 @@ ano
 @item
 Společenství
 @*
-3004
+3522
 @tab  Pavel Fric
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">částečně (94 %)</span>
+<span style="background-color: #dfef77">částečně (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-částečně (94 %)
+částečně (95 %)
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #f6fe3b">částečně</span>
+<span style="background-color: #fff53e">částečně</span>
 @end html
 @end ifhtml
 @ifnothtml
index 6558ecaca5899af50da9e77564b22a0e950a25b3..7aedbb9b1a4689c24451468bfc4c49fc440f79a0 100644 (file)
@@ -576,7 +576,7 @@ klaviaturu, která ukazuje, které klávesy se musí stisknout, aby
 při čtení not pomohl začátečníkům.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 jakostně vysoce hodnotné notové zápisy církevní hudby, jak pro
 přímé stažení tak i k dostání na papíře.
 
@@ -792,7 +792,7 @@ překvapit.}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{Způsob, jakým jsou noty v LilyPondu zadávány, mi dovoluje
 myslet hudebně -- byly doby, kdy jsem se LilyPondu marně 
@@ -1202,7 +1202,7 @@ pro vytváření hudebního zápisu z programových prostředí pro počítačov
 LilyKDE3 pro KDE 3.5 a lilypond-KDE4 pro KDE 4.1.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, který zaváděl
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, který zaváděl
 @uref{http://www.musicxml.com/xml.html,MusicXML}, se
 rozdělil a je dále vyvíjen jako
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
index 04a6877d8dbd833ba2568d7d5834ec3b6757ba29..e0e8eca9b6ab68c5dafe5907e3287d8ed1e70abd 100644 (file)
@@ -48,11 +48,10 @@ body {
 .appendix, .appendixsec, .appendixsubsec,
 .unnumbered, .unnumberedsec, .unnumberedsubsec, .unnumberedsubsubsec,
 .subheading, .subsubheading {
-  color: #black;
-  border-bottom: 1px dashed black;
+  color: rgb(32, 74, 135);
   padding-bottom: 0.15em;
   margin-top: 0.6em;
-  margin-bottom: 1em;
+  margin-bottom: 0.6em;
 }
 
 .settitle {
@@ -73,25 +72,28 @@ body.extending   .settitle { background-color: #7f4040; }
 body.internals   .settitle { background-color: #6a407f; }
 body.contributor .settitle { background-color: #000000; }
 
-.chapter, .appendix, .unnumbered {
-  font-size: 1.8em;
-}
-
-.section, .appendixsec, .unnumberedsec {
-  font-size: 1.6em;
+.chapter, .appendix, .unnumbered,
+.section, .appendixsec, .unnumberedsec,
+.subsection, .appendixsubsec, .unnumberedsubsec,
+.subsubsection {
+  font-size: 1.7em;
+  margin-top: 0.9em;
 }
 
-.subsection, .appendixsubsec, .unnumberedsubsec {
-  font-size: 1.4em;
+.subheading, .unnumberedsubsubsec {
+  font-size: 1.5em;
+  margin-top: 0.9em;
 }
 
-.subheading, .subsubsection, .unnumberedsubsubsec {
-  font-size: 1.25em;
+.subheading {
+  border-top: 1px solid rgb(200, 200, 200);
+  padding-top: 0.8em;
 }
 
 .subsubheading {
-  font-size: 1em;
+  font-size: 1.15em;
   font-weight: bold;
+  margin-top: 1.6em;
 }
 
 .chapheading {
@@ -214,8 +216,8 @@ div#main ul {
 }
 
 h1, h2, h3, h4, p, table, address, dt {
-  padding-left: 1em;
-  padding-right: 1em;
+  padding-left: 18px;
+  padding-right: 18px;
 }
 
 p {
@@ -242,6 +244,11 @@ pre.menu-comment {
   margin-bottom: 1em;
 }
 
+table td {
+    vertical-align: top;
+    padding-bottom: .5em;
+}
+
 /***********************************************************/
 /*                    TOC SIDEBAR                          */
 /***********************************************************/
index c73fae7ef3a95288c3f4801f4aa2a33a4a2315ac..a87acd3a5d04ab6e2c6e0e205f8b8ccad092ba4b 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes.
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @c Translators: Till Paala
 
@@ -1142,7 +1142,7 @@ werden.
       \overrideTimeSignatureSettings
         4/4        % timeSignatureFraction
         1/4        % baseMomentFraction
-        #'(3 1)    % beatStructure
+        3,1        % beatStructure
         #'()       % beamExceptions
       \time 4/4
       \repeat unfold 8 { c8 } |
@@ -1186,7 +1186,7 @@ Noten in dem Kontext befinen müssen, bevor
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     c8^\markup {"Beamed (2 2)"}
@@ -1195,7 +1195,7 @@ Noten in dem Kontext befinen müssen, bevor
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     c8^\markup {"Beamed (3 1)"}
@@ -1221,7 +1221,7 @@ Standard zurückgesetzt werden:
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1244,7 +1244,7 @@ Notensysteme können eingerichtet werden, indem man den
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1253,7 +1253,7 @@ Notensysteme können eingerichtet werden, indem man den
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -2166,9 +2166,9 @@ einzelner Taktschlag.
 @lilypond[quote,relative=2,verbatim]
 \time 5/16
 c16^"default" c c c c |
-\set Timing.beatStructure = #'(2 3)
+\set Timing.beatStructure = 2,3
 c16^"(2+3)" c c c c |
-\set Timing.beatStructure = #'(3 2)
+\set Timing.beatStructure = 3,2
 c16^"(3+2)" c c c c |
 @end lilypond
 
@@ -2182,12 +2182,12 @@ werden, wenn die Bebalkung von @code{beatStructure} bestimmt werden soll.
 a8^"default" a a a a a a a
 
 \set Timing.baseMoment = #(ly:make-moment 1/4)
-\set Timing.beatStructure = #'(1 1 1 1)
+\set Timing.beatStructure = 1,1,1,1
 a8^"no change" a a a a a a a
 
 \set Timing.beamExceptions = #'()
 \set Timing.baseMoment = #(ly:make-moment 1/4)
-\set Timing.beatStructure = #'(1 1 1 1)
+\set Timing.beatStructure = 1,1,1,1
 a8^"changed" a a a a a a a
 @end lilypond
 
@@ -2199,7 +2199,7 @@ niedrigere befindet.
 @lilypond[quote, verbatim,relative=1]
 \new Staff <<
   \time 7/8
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   \new Voice = one {
     \relative {
         a'8 a a a a a a
@@ -2208,7 +2208,7 @@ niedrigere befindet.
   \new Voice  = two {
     \relative {
       \voiceTwo
-      \set Voice.beatStructure = #'(1 3 3)
+      \set Voice.beatStructure = 1,3,3
       f'8 f f f f f f
     }
   }
@@ -2225,11 +2225,11 @@ Systems angewendet werden sollen:
 % Context applied to Voice by dafault --  does not work correctly
 % Because of autogenerated voices, all beating will
 % be at baseMoment (1 . 8)
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 
 % Works correctly with context Staff specified
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 @end lilypond
 
@@ -2241,7 +2241,7 @@ er kompatibel mit dem neuen Wert von @code{baseMoment} ist.
 @lilypond[quote,verbatim,relative=2]
 \time 5/8
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a16 }
 @end lilypond
 
@@ -2262,7 +2262,7 @@ definiert.
 
 @lilypond[quote,relative=2,verbatim]
 \time 3/16
-\set Timing.beatStructure = #'(2 1)
+\set Timing.beatStructure = 2,1
 \set Timing.beamExceptions =
   #'(                         ;start of alist
      (end .                   ;entry for end of beams
@@ -2314,7 +2314,7 @@ definiert wird, werden die automatischen Bebalkungsregeln für den
   \time 6/8
   \repeat unfold 6 { a8 }
   % group (4 + 2)
-  \set Timing.beatStructure = #'(4 2)
+  \set Timing.beatStructure = 4,2
   \repeat unfold 6 { a8 }
   % go back to default behavior
   \time 6/8
@@ -2336,7 +2336,7 @@ Die @code{beamExceptions}-Regel kann die @code{beatStructure}-Einstellung
 @lilypond[quote,verbatim,fragment]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % This won't beam (3 3 2) because of beamExceptions
 \repeat unfold 8 {c''8} |
 % This will beam (3 3 2) because we clear beamExceptions
@@ -2476,7 +2476,7 @@ vermeiden, ist es, die Taktart nur in einem System zu setzen.
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
+    \set Timing.beatStructure = 1,5
     \repeat unfold 6 { a8 }
   }
   \new Staff {
@@ -2496,7 +2496,7 @@ der automatischen Bebalkungsregeln für eine Taktart sind in
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
index 75abb5462fe7f01cd8cf8f31f0f543dba2e5a56a..67f8b0ab7d2d4363c4aacc242983205844ad2651 100644 (file)
@@ -2970,7 +2970,7 @@ Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
 
 @node Eine neuer Bereich mit anderen Abständen
 @subsection Eine neuer Bereich mit anderen Abständen
-@translationof New spacing area
+@translationof New spacing section
 
 @cindex horizontale Notenabstände, Abschnitte definierten
 @cindex Notenabstände, Abschnitte definieren
index 97578ab585b22141089044e5eb3f03c7ddd02050..5bf2b123a8d913b9d54b0e05d57f82eb83cfee70 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Zuletzt aktualisiert am Fri Jan  1 10:40:27 UTC 2016
+@emph{Zuletzt aktualisiert am Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -204,7 +204,7 @@ ja
 @item
 1 Scheme-Tutorium
 @*
-6331
+6316
 @tab Till Paala
 @tab 
 @tab 
@@ -221,7 +221,7 @@ teilweise (53 %)
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">teilweise</span>
+<span style="background-color: #5bff27">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -359,7 +359,7 @@ ja
 @item
 2 Übliche Notation
 @*
-4443
+4437
 @tab ???
 @*
 Michael Gerdau
@@ -419,7 +419,7 @@ ja
 @item
 4 Die Ausgabe verbessern
 @*
-16577
+16622
 @tab ???
 @*
 Michael Gerdau
@@ -570,7 +570,7 @@ ja
 @item
 1.1 Tonhöhen
 @*
-5203
+5202
 @tab Till Paala
 @tab 
 @tab 
@@ -705,7 +705,7 @@ teilweise
 @item
 1.6 Notation auf Systemen
 @*
-2399
+2576
 @tab Till Paala
 @tab 
 @tab 
@@ -722,7 +722,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #acff31">teilweise</span>
+<span style="background-color: #c0ff34">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -894,7 +894,7 @@ teilweise
 @item
 2.4 Saiteninstrumente mit Bünden
 @*
-2756
+2842
 @tab Till Paala
 @tab 
 @tab 
@@ -911,7 +911,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">teilweise</span>
+<span style="background-color: #62ff28">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1083,7 +1083,7 @@ teilweise
 @item
 3 Allgemeine Eingabe und Ausgabe
 @*
-12717
+12715
 @tab Till Paala
 @tab 
 @tab 
@@ -1110,7 +1110,7 @@ teilweise
 @item
 4 Abstände
 @*
-10884
+10895
 @tab Till Paala
 @tab 
 @tab 
@@ -1127,7 +1127,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">teilweise</span>
+<span style="background-color: #e1ff39">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1137,7 +1137,7 @@ teilweise
 @item
 5 Standardeinstellungen verändern
 @*
-15581
+15610
 @tab Till Paala
 @tab 
 @tab 
@@ -1154,7 +1154,7 @@ teilweise (85 %)
 @ifhtml
 
 @html
-<span style="background-color: #c0ff34">teilweise</span>
+<span style="background-color: #cdfe36">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1284,7 +1284,7 @@ ja
 @item
 1 @command{lilypond} starten
 @*
-5401
+5425
 @tab Reinhold Kainhofer
 @*
 Till Paala
@@ -1313,7 +1313,7 @@ teilweise
 @item
 2 Dateien mit @command{convert-ly} aktualisieren
 @*
-1865
+1866
 @tab Till Paala
 @tab 
 @tab 
@@ -1493,7 +1493,7 @@ ja
 @item
 Einleitung
 @*
-5816
+5815
 @tab Till Paala
 @*
 Michael Gerdau
@@ -1512,11 +1512,11 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">ja</span>
+<span style="background-color: #2cff20">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
-ja
+teilweise
 @end ifnothtml
 @tab vor-GDP
 @item
@@ -1541,11 +1541,11 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">ja</span>
+<span style="background-color: #25fe1f">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
-ja
+teilweise
 @end ifnothtml
 @tab vor-GDP
 @item
@@ -1580,7 +1580,7 @@ ja
 @item
 Gemeinschaft
 @*
-3004
+3522
 @tab Till Paala
 @*
 Michael Gerdau
@@ -1599,11 +1599,11 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">ja</span>
+<span style="background-color: #7dff2b">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
-ja
+teilweise
 @end ifnothtml
 @tab vor-GDP
 @end multitable
index be93bcdc543e516ed32f71c3386137c4c80e8f91..d0379981804138abdb03816d1995ee34ac14fa43 100644 (file)
@@ -755,7 +755,7 @@ Klaviatur, die anzeigt, welche Tasten gedrückt werden müssen, um
 Anfängern beim Notenlesen zu helfen.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 qualitativ hochwertige Partituren von Kirchenmusik, sowohl zum
 direkten Download als auch auf Papier erhältlich.
 
@@ -806,7 +806,7 @@ April 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publiziert einen
 Atikel mit dem Titel
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}. Es es eine Einleitung zu MuseScore,
 LilyPond and Chordii.  Die Authorin Carla Schroder schreibt @qq{LilyPond wird
 von der Kommandozeile aus gesteuert, aber lassen Sie sich nicht davon
@@ -1009,7 +1009,7 @@ Nummer CMS06.
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{Die Art, in der die Noten mit LilyPond eingegeben werden,
 lässt mich musikalischer denken -- es gab Zeiten, wenn ich vergeblich
@@ -1500,7 +1500,7 @@ Versionen sind noch auf
 verfügbar.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, konnte
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, konnte
 @uref{http://www.makemusic.com/musicxml,MusicXML} importieren.
 Ableger existieren als
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
index 34feafdbc0639e7ea38ec5616181c5bffa5a041b..e6ed58abea0ada8b2375cc0afb5c710e4a75993b 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 93d725094ee629b2d5200ab5a75b609579a62973
+    Translation of GIT committish: 0b49f20966fb8b4e9c9d8ed5699efcff9f805564
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -71,507 +71,809 @@ which scares away people.
 @end ignore
 
 @item
-Ya no se aplica automáticamente la funcionalidad de ajuste de los
-trazos de PostScript, sino que se deja a la discreción del
-dispositivo PostScript (de forma predeterminada, Ghostscript la
-usa para resoluciones de hasta 150ppp cuando se generan imágenes
-de matriz de puntos).  Cuando se habilita, se emplea
-(principalmente para las plicas y las barras de compás) un
-algoritmo de trazado más complejo diseñado para sacar provecho del
-ajuste de los trazos.
+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
 
-El ajuste de trazos se puede forzar mediante la especificación de
-la opción de línea de órdenes @samp{-dstrokeadjust} para la
-instrucción LilyPond.  Cuando se generan archivos @code{PDF}, esto
-normalmente produce una vista previa de los @code{PDF}
-marcadamente mejorada, pero con un tamaño de archivo
-significativamente más grande.  A altas resoluciones, la calidad
-de la impresión puede no resultar afectada.
+@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
-Ahora hay un nuevo tipo de contexto llamado @code{NullVoice} que,
-si bien no aparece en la salida impresa, se puede usar para
-alinear la letra de las canciones.  Esto puede ser especialmente
-conveniente cuando se usa en paralelo con una construcción
-@code{\partcombine}.
+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
 
-@lilypond[verbatim,quote]
-soprano = \relative c' { c e g c }
-alto = \relative c' { a c e g }
-verse = \lyricmode { This is my song }
-
-\score {
-  \new Staff <<
-    \partcombine \soprano \alto
-    \new NullVoice = "aligner" \soprano
-    \new Lyrics \lyricsto "aligner" \verse
-  >>
-  \layout {}
+@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
 }
-@end lilypond
 
+{ \voiceOne \m \voiceTwo \m }
+@end lilypond
 
 @item
-Pueden colocarse dentro de una sola variable, o ser devueltas por
-una función de evento, varias articulaciones:
+@code{TabStaff} puede ahora imprimir microtonos para las
+curvaturas de tono y otros efectos.
+@lilypond[quote,verbatim]
+\layout {
+  \context {
+    \Score
+    supportNonIntegerFret = ##t
+  }
+}
 
-@lilypond[verbatim,quote]
-sempreStacc = -. ^\markup \italic sempre
-\relative { c''4\sempreStacc c c c }
+mus = \relative { c'4 cih d dih }
+
+<<
+  \new Staff << \clef "G_8" \mus >>
+  \new TabStaff \mus
+>>
 @end lilypond
 
 @item
-La línea de base de los elementos de marcado que constituyen
-partituras se toma actualmente del punto de referencia
-(normalmente la línea central del pentagrama) del primer sistema
-de la parte inferior, en lugar de la parte superior del rectángulo
-circundante. Lo siguente
+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 {
-  violin: \score { \new Staff { <g d' a' e''>1 }
-                   \layout { indent=0 } } ,
-  cello: \score { \new Staff { \clef "bass" <c, g, d a> }
-                  \layout { indent=0 } }
+  \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
 }
-@end lilypond
-tenía anteriormente el siguiente aspecto:
-@lilypond[quote]
 \markup {
-  violin: \general-align #Y #UP
-          \score { \new Staff { <g d' a' e''>1 }
-                   \layout { indent=0 } } ,
-  cello:  \general-align #Y #UP
-          \score { \new Staff { \clef "bass" <c, g, d a> }
-                  \layout { indent=0 } }
+  \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
-sin que hubiera una manera adecuada de hacer que las dos
-partituras estuviesen alineadas.
 
 @item
-LilyPond ya no deduce automáticamente un contexto
-@samp{\defaultchild} dentro de una definición de contexto con
-cláusulas @samp{\accepts}.  Cualquier definición de contexto que
-no tenga una definición @samp{\defaultchild} explícita o heredada,
-cuenta como un contexto @samp{Bottom} y es candidato para eventos
-de duraciones y sobreescrituras sin causar la creación implícita
-de otros contextos.  Asegúrese de especificar un
-@samp{\defaultchild} para contextos no-@samp{Bottom} al definirlos
-partiendo de cero.
+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
-Ahora están ampliamente contemplados los símbolos de registros de
-acordeón tanto para discanto como bajo en el módulo @samp{scm accreg},
-véase @ruser{Accordion Registers}.
+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]
-#(use-modules (scm accreg))
-\new PianoStaff
-<<
-  \new Staff \relative
-  { \clef "treble"  \discant "10"
-    r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
-    \discant "121"
-    << { r16 <f bes> r <e a> r <d g> } \\
-       { d r a r bes r } >> |
-    <cis e a>1
-  }
-  \new Staff \relative
-  { \clef "treble"  \freeBass "1"
-    r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
-    \clef "bass"  \stdBass "Master"
-    << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
-         <e a cis>1^"a" } \\
-       { d8_"D" c_"C" bes_"B" | a1_"A" }
-    >>
-  }
->>
+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 nuevas instrucciones @code{markLengthOn} y
-@code{markLengthOff} controlan si se permite la existencia de un
-espacio horizontal para las letras de ensayo e indicaciones de
-tempo.
+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]
-\markLengthOn
-\compressFullBarRests
-\tempo "Molto vivace" c2 c'
-\mark\default
-\tempo "Meno mosso" R1*16
-\mark\default
-g,2 g
-\bar "||"
-\markLengthOff
-\tempo "Molto vivace" c2 c'
-\mark#1
-\tempo "Meno mosso" R1*16
-\mark\default
-g,2 g
+  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
-Ahora las letras de ensayo al principio de una línea se sitúan de
-forma predeterminada a la derecha de la clave y la armadura. Como
-en versiones anteriores, la interfaz
-@code{break-alignable-interface} controla el comportamiento.
+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
 
-@lilypond[quote,relative=2]
-\set Score.barNumberVisibility = #all-bar-numbers-visible
-\set Timing.currentBarNumber = #72
-\bar"||" \time 3/4 \key e\major \mark#10 \tempo "Adagio" b2.
+@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.
+
+@lilypond[verbatim,quote,relative=1]
+\override Score.BarNumber.break-visibility = #end-of-line-invisible
+\partial 4 \time 3/4 f4 | 2 4 | 2 \bar "||"
+\time 9/8 \partial 4. f8 8 8 | 2. 8 8 8 |
 @end lilypond
 
 @item
-Ahora se pueden escribir directamente números decimales dentro de
-la música, sin el prefijo del símbolo de almohadilla.  Junto al
-cambio anterior en la forma de especificar las propiedades de los
-objetos, el código para modificar la longitud de las plicas ha
-cambiado de esto:
+Ahora es posible la sobreescritura de la propiedad @code{text} de
+los nombres de acorde.
+
+@lilypond[verbatim,fragment,quote]
+<<
+\new ChordNames \chordmode {
+  a' b c:7
+  \once \override ChordName.text = #"foo"
+  d
+}
+>>      
+@end lilypond
+
+@item
+Se ha mejorado la alineación horizontal cuando se usa
+@code{TextScript}, con @code{DynamicText} o con @code{LyricText}.
+
+@item
+Se ha añadido una instrucción nueva @code{\magnifyStaff} que
+cambia la escala visual de los pentagramas, líneas, barras de
+compás, barras cortadas y el espaciado horizontal general en el
+nivel del contexto de @code{Staff}.  Se evita que las líneas del
+pentagrama disminuyan a un tamaño menor que el predeterminado
+porque todos los grosores de las plicas, ligaduras y otros objetos
+gráficos están basados en el grosor de las líneas del pentagrama.
+
+@item
+@code{InstrumentName} contempla ahora el @code{text-interface}.
+
+@item
+Se contempla ahora el control del @q{nivel de expresión} de los
+canales MIDI usando la propiedad de contexto
+@code{Staff.midiExpression}.  Se puede usar para alterar incluso
+el volumen percibido de notas mantenidas (si bien a muy @q{bajo
+nivel}) y acepta un valor numérico entre @code{0.0} y @code{1.0}.
+
 @example
-\override Stem #'length = #5.6
-e' f' g' a'
+\score @{
+  \new Staff \with @{
+    midiExpression = #0.6
+    midiInstrument = #"clarinet"
+  @}
+  <<
+    @{ a'1~ a'1 @}
+    @{
+      \set Staff.midiExpression = #0.7 s4\f\<
+      \set Staff.midiExpression = #0.8 s4
+      \set Staff.midiExpression = #0.9 s4
+      \set Staff.midiExpression = #1.0 s4
+
+      \set Staff.midiExpression = #0.9 s4\>
+      \set Staff.midiExpression = #0.8 s4
+      \set Staff.midiExpression = #0.7 s4
+      \set Staff.midiExpression = #0.6 s4\!
+    @}
+  >>
+  \midi @{ @}
+@}
 @end example
-a esto:
+
+@item
+Se ha añadido la posibiliidad de hacer más fácil usar tipografías
+alternativas @q{de música} diferentes de la predeterminada
+Emmentaler de LilyPond.  Véase
+@uref{http://fonts.openlilylib.org/} para más información.
+
+@item
+Los @q{grobs} u objetos gráficos y sus ancestros se pueden ahora
+alinear separadamente permitiendo más flexibilidad para las
+posiciones de los grobs.  Por ejemplo, el borde izquierdo de un
+grob se puede alinear sobre el centro de su ancestro.
+
+@item
+Se han hecho mejoras en la instrucción @code{\partial} para evitar
+problemas cuando se usa en varios contextos en paralelo.
+
+@item
+@code{\chordmode} puede usar ahora las construcciones @code{< >} y
+@code{<< >>}.
+
+@item
+Se ha añadido una instrucción @code{\tagGroup} que complementa a
+las instrucciones existentes @code{\keepWithTag} y
+@code{\removeWithTag}.  Por ejemplo:
+
 @example
-\override Stem.length = 5.6
-e' f' g' a'
+\tagGroup #'(violinI violinII viola cello)
 @end example
 
-Se debe escribir un dígito a ambos lados del punto; no se permiten
-valores como @code{4.} ó @code{-.3}.
+declara una lista de @q{tags} o etiquetas que pertenecen a un solo
+@q{tag group} o grupo de etiquetas.
 
-Asimismo, no se admiten fracciones decimales dentro de
-@code{\chordmode}.
+@example
+\keepWithTag #'violinI
+@end example
+
+se ocupa solamente de las @q{tags} del grupo de etiquetas
+@q{violinI}.
+
+Cualquier elemento de la música incluida que lleve una o más
+etiquetas del grupo, pero @emph{no} la etiqueta @var{violinI},
+será eliminado.
 
 @item
-Se pueden redefinir libremente ciertas abreviaturas como @code{(},
-@code{)}, @code{|}, @code{[}, @code{]}, @code{~}, @code{\(},
-@code{\)} y otras, como instrucciones normales. Un ejemplo sería
-@lilypond[verbatim,quote]
-"\\{" = (
-"\\}" = )
-"(" = \melisma
-")" = \melismaEnd
+La función @code{\addlyrics} funciona ahora con contextos
+arbitrarios, entre ellos @code{Staff}.
 
-\new Staff <<
-  \relative c' {
-    c8 \{ d e f \} % slurred
-    g ( a b c ) % no slur, but with melisma
-    c,1 \bar "|."
-   }
-   \addlyrics { Li -- ly -- pond. }
->>
+@item
+Ahora se pueden usar también los números de cuerda para imprimir
+números romanos (p. ej. para instrumentos de cuerda sin trastes).
+@lilypond[verbatim,quote,relative=2]
+c2\2
+\romanStringNumbers
+c\2
+\arabicStringNumbers
+c1\3
 @end lilypond
 
 @item
-El nombre de la abreviatura de articulación para
-@code{\staccatissimo} ha cambiado de @code{-|} a@tie{}@code{-!}.
+El nombre de la propiedad @code{thin-kern} del objeto gráfico
+@code{BarLine} ha cambiado a @code{segno-kern}.
 
 @item
-Ahora se escriben los rangos de cambios de tempo como @code{\tempo
-4 = 60 - 68} en lugar de @code{\tempo 4 = 60 ~ 68}.
+Los objetos gráficos @code{KeyCancellation} ahora ignoran las
+claves de las notas guía (como hacen los objetos
+@code{KeySignature}).
 
 @item
-Se ha cambiado el nombre de @code{OctavateEight} por el de
-@code{ClefModifier}.  Las propiedades de contexto relacionadas han
-cambiado su nombre @code{xxxOctavationyyy} por el de
-@code{xxxTranspositionyyy}.
+Se contempla ahora @code{\once@tie{}\unset}
 
 @item
-Existe una nueva instrucción @code{\absolute} que marca
-explícitamente la música introducida en alturas absolutas.  Aunque
-esto era antes el comportamiento predeterminado, una instrucción
-@code{\absolute} explícita evita también la reinterpretación
-cuando el pasaje está dentro de un bloque marcado como
-@code{\relative}:
-@lilypond[verbatim,quote]
-\relative c { c'4 \absolute { f'' g'' } c }
+Ahora es posible colorear independientemente tanto los puntos como
+los paréntesis en los diagramas de posición de acordes, si se usa
+la instrucción de marcado @code{\fret-diagram-verbose}.
+
+@lilypond[verbatim,quote,relative=1]
+\new Voice {
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (finger-code . in-dot))) {
+      \fret-diagram-verbose #'((mute 6)
+                               (place-fret 5 3 1 red)
+                               (place-fret 4 5 2 inverted)
+                               (place-fret 3 5 3 green)
+                               (place-fret 2 5 4 blue inverted)
+                               (place-fret 1 3 1 violet)
+                               (barre 5 1 3 ))
+    }
+  }
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (finger-code . below-string))) {
+      \fret-diagram-verbose #'((mute 6)
+                             (place-fret 5 3 1 red parenthesized)
+                             (place-fret 4 5 2 yellow
+                                               default-paren-color
+                                               parenthesized)
+                             (place-fret 3 5 3 green)
+                             (place-fret 2 5 4 blue )
+                             (place-fret 1 3 1)
+                             (barre 5 1 3))
+    }
+  }
+}
 @end lilypond
 
 @item
-Cuando se utiliza @code{\relative} sin emplear como referencia una
-altura explícita, se toma como referencia el centro de la primera
-octava, haciendo que no se pueda distinguir si la primera nota que
-se introduce es relativa o absoluta.  Anteriormente, la omisión de
-una altura de referencia habría llevado a una altura
-predeterminada de @code{c'} (el Do central).  Dado que la
-mencionada elección es, hasta cierto punto, arbitraria, la forma
-de uso recomendada es que se especifique siempre una altura de
-referencia.
+Se han añadido dos propiedades nuevas para usarlas dentro de
+@code{fret-diagram-details} con la instrucción de marcado
+@code{\fret-diagram-verbose}; @code{fret-label-horizontal-offset},
+que afecta a la @code{fret-label-indication}, y
+@code{paren-padding}, que controla la distancia entre el puntillo
+y los paréntesis que lo rodean.
+
+@lilypond[verbatim,quote,relative=1]
+\new Voice {
+  c1^\markup {
+    \fret-diagram-verbose #'((mute 6)
+                             (place-fret 5 3 1)
+                             (place-fret 4 5 2)
+                             (place-fret 3 5 3)
+                             (place-fret 1 6 4 parenthesized)
+                             (place-fret 2 3 1)
+                             (barre 5 2 3))
+  }
+  c1^\markup {
+    \override #'(fret-diagram-details . (
+                 (fret-label-horizontal-offset . 2)
+                 (paren-padding . 0.25))) {
+      \fret-diagram-verbose #'((mute 6)
+                               (place-fret 5 3 1)
+                               (place-fret 4 5 2)
+                               (place-fret 3 5 3)
+                               (place-fret 1 6 4 parenthesized)
+                               (place-fret 2 3 1)
+                               (barre 5 2 3))
+    }
+  }
+}
+@end lilypond
 
 @item
-Se puede usar la nueva instrucción @code{\single} para convertir
-la sobreescritura de una propiedad en un truco que se aplica a una
-expresión musical única:
+Se ha añadido una instrucción de marcado nueva,
+@code{\justify-line}.  Similar a la instrucción de marcado
+@code{\fill-line} excepto que en lugar de disponer @emph{palabras}
+en columnas, la instrucción @code{\justify-line} equilibra la
+distancia entre ellas, haciendo que cuando hay tres o más palabras
+en una instrucción de marcado, las distancias sean siempre
+consistentes.
 
-@lilypond[quote,verbatim,relative=2]
-<a \single\voiceTwoStyle e' a>1
+@lilypond[quote,verbatim,papersize=a6]
+\markup \fill-line {oooooo oooooo oooooo oooooo}
+\markup \fill-line {ooooooooo oooooooo oo ooo}
 @end lilypond
 
-@item
-Dos maneras de hacer que los objetos gráficos no aparezcan en la
-salida son: sobreescribir su propiedad @code{transparent} con un
-valor verdadero @code{#t} (reteniendo el espaciado original), o
-sobreescribiendo su propiedad @code{stencil} o sello con un valor
-falso @code{#f} (que no ocupa ningún espacio).  Estas dos
-operaciones tienen ahora las formas cortas @code{\hide} (ocultar)
-y @code{\omit} (omitir), respectivamente.  A estas instrucciones
-puede dárseles una expresión musical sobre la que efectuar el
-trucaje, o bien el nombre de un objeto gráfico para el que se debe
-crear la sobreescritura (para especificar los dos, utilice
-@code{\single} sobre la instrucción en forma de sobreescritura):
+@lilypond[quote,verbatim,papersize=a6]
+\markup \justify-line {oooooo oooooo oooooo oooooo}
+\markup \justify-line {ooooooooo oooooooo oo ooo}
+@end lilypond
 
-@lilypond[quote,verbatim]
-\new Staff \with { \omit Clef }
-\relative c'' <a e' \hide a>1
+@item
+Se ha añadido la instrucción @code{\magnifyMusic}, que permite
+modificar el tamaño de la notación sin alterar el tamaño del
+pentagrama, mientras que se escalan automáticamente las plicas,
+barras y el espaciado horizontal.
+@lilypond[verbatim,quote]
+\new Staff <<
+  \new Voice \relative {
+    \voiceOne
+    <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
+  }
+  \new Voice \relative {
+    \voiceTwo
+    \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
+      r32 c'' a c a c a c r c a c a c a c
+      r c a c a c a c a c a c a c a c
+    }
+  }
+>>
 @end lilypond
 
 @item
-Se puede aplicar la nueva instrucción @code{\temporary} a las
-sobreescrituras para hacer que no sustituyan a los ajustes de
-propiedad previos.  Si se aplica una instrucción de reversión
-@code{\revert} a la misma propiedad varias veces seguidas, el
-ajuste anterior reaparece:
-
-@lilypond[quote,verbatim,relative=2]
-\override NoteHead.color = #red c4
-\override NoteHead.color = #green d
-\revert NoteHead.color e2
-\override NoteHead.color = #red c4
-\temporary\override NoteHead.color = #green d
-\revert NoteHead.color e
-\revert NoteHead.color c
+Se ha añadido una plantilla flexible adecuada para una amplia
+variedad de piezas de música coral.  Se puede usar para crear
+música coral sencilla, con o sin acompañamiento de piano, en dos o
+en cuatro pentagramas. A diferencia de otras, esta plantilla está
+@q{incorporada}, lo que significa que no necesita ser copiada y
+editada: en lugar de ello sencillamente se incluye con la
+instrucción @code{\include} en el archivo de entrada.  Para ver
+más detalles, consulte @rlearning{Plantillas incorporadas}.
+
+@item
+Se ha mejorado significativamente el posicionado de los números de
+grupos especiales para las barras en forma de codo.
+Anteriormente, los números de grupo especial se colocaban de
+acuerdo a la posición del corchete del grupo, incluso si éste no
+se imprimía.  Ello podía dar lugar a números de tresillo
+descolocados.  Ahora se sitúan más cerca de la barra cuando hay un
+segmento de barra adecuado para su colocación y cuando el corchete
+no se dibuja.
+
+Se ha añadido también detección de colisiones, desplazando
+horizontalmente si está demasiado cerca de una columna de notas
+adyacente pero preservando la distancia vertical del número a la
+barra acodada.  Si el propio número es demasiado grande como para
+caber en el espacio disponible, se usa en su lugar el sistema
+original de posicionamiento basado en el corchete; en cambio, en
+caso de colisión (p. ej. con una alteración accidental) el número
+de tresillo se aleja moviéndolo verticalmente.
+
+@lilypond[verbatim,fragment,quote,relative=1]
+\time 3/4
+\override Beam.auto-knee-gap = 3
+\tuplet 3/2 4 {
+  g8 c'' e,
+  c'8 g,, e''
+  g,,8 e''' c,,
+}
 @end lilypond
 
-Esto tiene utilidad principalmente para la escritura de funciones
-musicales que se desea que tengan alguna propiedad modificada
-solamente por un tiempo igual a la duración de la función.
+@noindent
+El comportamiento original del tresillo para las barras acodadas
+aún está disponible mediante una sobreescritura con la instrucción
+@code{\override} a travé de la nueva propiedad
+@code{knee-to-beam}.
+
+@lilypond[verbatim,fragment,quote,relative=1]
+\time 3/4
+\override Beam.auto-knee-gap = 3
+\override TupletNumber.knee-to-beam = ##f
+\tuplet 3/2 4 {
+  g8 c'' e,
+  c'8 g,, e''
+  g,,8 e''' c,,
+}
+@end lilypond
 
 @item
-Las instrucciones @code{\tag}, @code{\removeWithTag} y
-@code{\keepWithTag} ahora admiten una lista de símbolos en lugar
-de un solo símbolo para marcar, eliminar y seleccionar música que
-esté etiquetada con una cualquiera de la lista de etiquetas.  Esto
-es de especial importancia para @code{\keepWithTag} porque no es
-posible conseguir el mismo efecto usando varias instrucciones
-@code{\keepWithTag} consecutivas.
+Se han @q{armonizado} las instrucciones @code{\lyricsto} y
+@code{\addLyrics}.  Ambas aceptan ahora el mismo tipo de lasta de
+argumentos delimitada que aceptan @code{\lyrics} y @code{\chords}.
+Se añade compatibilidad hacia atrás de manera que se permiten como
+argumentos identificadores musicales (p. ej. @code{\mus}).  Se ha
+añadido una regla de @code{convert-ly} que elimina los usos
+redundantes de @code{\lyricmode} y reorganiza las combinaciones
+con iniciadores de contexto de forma que @code{\lyricsto} en
+general se aplica al final (es decir, como lo haría
+@code{\lyricmode}).
 
 @item
-La opción @samp{-d old-relative} se ha eliminado.  Ya no está
-accesible a través de la línea de órdenes; la utilidad que aún
-conservaba era la interpretación de @code{\relative} en archivos
-de LilyPond convertidos automáticamente de las versiones@tie{}1.8
-o anteriores.  No está claro cuántas de tales versiones estaban
-aún en funcionamiento.
+Las funciones e identificadores de Scheme se pueden usar ahora
+como definiciones de salida.
 
 @item
-Se ha invertido el significado de @code{instrumentTransposition}.
-Después de
-@example
-\set instrumentTransposition = #@{ b #@}
-@end example
-una nota escrita @code{c'} ahora suena como @code{b}.
-Anteriormente era a la inversa.  Esperamos que este cambio y el
-siguiente hagan más sencillo el tratamiento de los instrumentos
-transpositores.
-
-@item
-La música generada por las instrucciones @code{\set} y
-@code{\override} ya no resulta afectada por la instrucción
-@code{\transpose}.  La consecuencia más importante es que
-@code{\transpose} transporta la altura tonal sonora o de concierto
-y la que se imprime en la misma medida incluso aunque la música
-que se transporta contenga @code{\transposition}.  Anteriormente,
-@example
-\transpose c' f' \transposition bes'
-@end example
-era equivalente a @code{\transposition f'}.  Ahora se mantiene
-como equivalente a @code{\transposition bes'}.
-
-@item
-Cuando se comprueba la existencia de colisiones, LilyPond ya no
-trata los objetos como rectángulos.  En lugar de ello se aproxima
-la forma verdadera de los objetos utilizando un enfoque parecido
-al uso de integrales, lo que por lo común dará como resultado un
-posicionamiento más ceñido y regular de los objetos y los sistemas
-de pentagramas:
-
-@lilypond[relative=1]
-#(ly:set-option 'debug-skylines #t)
-\dynamicUp
-c'4\f a4\f d\f( f)
-a,4\< c c c\!
-d4-.\downbow a4^"r'venu..." c \tempo "T1" e
-@end lilypond
+Las expresiones de Scheme se pueden usar ahora como constituyentes
+de acordes.
 
-El fragmento anterior tenía anteriormente este aspecto:
-
-@lilypond[relative=1]
-#(ly:set-option 'debug-skylines #t)
-\override Hairpin #'vertical-skylines = #'()
-\override DynamicText #'vertical-skylines = #'()
-\override TextScript #'vertical-skylines = #'()
-\override Score.MetronomeMark #'vertical-skylines = #'()
-\override Staff.Clef #'vertical-skylines = #'()
-\dynamicUp
-c'4\f a4\f d\f( f)
-a,4\< c c c\!
-d4-.\downbow a4^"r'venu..." c \tempo "T1" e
-@end lilypond
+@item
+Espaciado visual mejorado de las cabezas de nota con formas @q{MI}
+Funk y Walker pequeñas y normales, de forma que tengan la misma
+anchura que otras notas con forma dentro de sus respectivos
+conjuntos.  Las cabezas del tipo @code{SOL} también han mejorado
+visualmente cuando se usan tanto con las cabezas normales de tipo
+Aiken como con las de tipo Sacred Harp, así como con las variantes
+de línea delgada.
 
-Entre los objetos afectados se encuentran @code{Accidentals},
-@code{Beams}, @code{Clefs}, @code{Dynamics}, @code{FiguredBass},
-@code{Flags}, @code{Glissandos}, @code{Lyrics},
-@code{MetronomeMarks}, @code{OttavaBrackets}, @code{Pedals},
-@code{RehearsalMarks}, @code{Rests}, @code{Scripts},
-@code{TextScripts}, @code{Ties}, @code{Tuplets} y
-@code{VoltaBrackets}.
-
-@item
-Ahora los grupos de valoración especial se crean mediante la
-instrucción @code{\tuplet}, que toma una fracción
-@code{@var{t}/@var{n}} para especificar que se tocan @var{t} notas
-en el tiempo en que habitualmente se permite un número de
-@var{n}. Una sola instrucción @code{\tuplet} puede crear varios
-grupos especiales si su duración se inserta después de la
-fracción.
-@lilypond[quote,verbatim,relative=2]
-\tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
-\tuplet 3/2 4 { c8 d e f e d } c2
-@end lilypond
-La instrucción @code{\times} con el orden de la fracción invertido
-@code{@var{n}/@var{t}} aún está disponible.
+@item
+@code{LeftEdge} tiene ahora unas dimensiones verticales
+@code{Y-extent} definibles.  Véase @rinternals{LeftEdge}.
+
+@item
+Se ha añadido una función nueva @code{make-path-stencil} que
+contempla todas las instrucciones @code{path} tanto relativas como
+absolutas: @code{lineto}, @code{rlineto}, @code{curveto},
+@code{rcurveto}, @code{moveto}, @code{rmoveto}, @code{closepath}.
+
+La función también contempla la sintaxis de @q{letra única}
+utilizada en las instrucciones de ruta estándares del SVG:
+@code{L}, @code{l}, @code{C}, @code{c}, @code{M}, @code{m},
+@code{Z} y @code{z}.
+
+Asimismo, la nueva instrucción es compatible hacia atrás con la
+función original @code{make-connected-path-stencil}.  Véase
+también @file{scm/stencil.scm}.
 
 @item
-Se introducen dos instrucciones nuevas de marcado:
-@code{\draw-dashed-line} (trazar línea discontinua) y
-@code{\draw-dotted-line} (trazar línea de puntos).
+Las propiedades de contexto nombradas en la propiedad
+@samp{alternativeRestores} se restauran a su valor al comienzo de
+la @emph{primera} alternativa en todas las alternativas
+siguientes.
+
+Actualmente el conjunto predeterminado restaura el @q{compás
+actual}:
+
+@lilypond[verbatim,fragment,quote,relative=2]
+\time 3/4
+\repeat volta 2 { c2 e4 | }
+\alternative {
+  { \time 4/4 f2 d | }
+  { f2 d4 | }
+}
+g2. |
+@end lilypond
 
 @noindent
-La línea discontinua se extiende sobre toda la longitud dada por
-@var{destino}, si @code{full-length} está establecido al valor
-@code{#t} (que es lo predeterminado) sin ningún espacio al
-principio ni al final.  Entonces, @code{final} se altera de forma
-que quepa.  Para insistir en los valores dados (o predeterminados)
-para @code{inicio} y @code{final} utilice @code{\override
-#'(full-length . #f)}.  Son posibles ajustes manuales para
-@code{inicio}, @code{final} y @code{fase}.
+la @q{posición dentro del compás}:
+
+@lilypond[verbatim,fragment,quote,relative=2]
+\time 3/4
+\repeat volta 2 { c2 e4 | }
+\alternative {
+  { \time 4/4
+    \set Timing.measurePosition = #(ly:make-moment -1/2)
+    f2 | }
+  { f2 d4 | }
+}
+g2. |
+@end lilypond
 
 @noindent
-La línea de puntos siempre se extiende a la longitud completa dada
-por @var{destino}, sin ningún espacio al principio ni al final.
-Es posible ajustar manualmente @code{final} para obtener espacios
-mayores o menores entre los puntos.  El valor dado (o
-predeterminado) de @code{final} se altera de forma que corresponda
-a la longitud de la línea, @code{line-length}.
+y los @q{cambios de acorde};
 
-@lilypond[verbatim,quote]
-\markup {
-  \draw-dashed-line #'(5.1 . 2.3)
-  \override #'(on . 0.3)
-  \override #'(off . 0.5)
-  \draw-dashed-line #'(5.1 . 2.3)
-  \draw-dotted-line #'(5.1 . 2.3)
-  \override #'(thickness . 2)
-  \override #'(off . 0.2)
-  \draw-dotted-line #'(5.1 . 2.3)
+@lilypond[verbatim,fragment,quote]
+<<
+  \new ChordNames {
+    \set chordChanges = ##t
+    \chordmode { c1:m d:m c:m d:m }
+  }
+  \new Staff {
+    \repeat volta 2 { \chordmode { c1:m } }
+    \alternative {
+      { \chordmode { d:m } }
+      { \chordmode { c:m } }
+    }
+  \chordmode { d:m }
 }
+>>
 @end lilypond
 
 @item
-A partir de la versión@tie{}2.17.10, los mensajes de error o la
-@acronym{URI} de @code{textedit} que se usa para la funcionalidad
-«apuntar y pulsar» especifican los números de columna empezando
-en@tie{}1 en vez de en@tie{}0.  El desplazamiento de bytes (que
-también forma parte de las @acronym{URI}s de @code{textedit}) aún
-comienza en@tie{}0.
+Salida MIDI mejorada para las marcas de respiración.  Después de
+las notas unidas mediante una ligadura, las respiraciones toman la
+duración @emph{solo} de la última nota de la ligadura; p. ej.
+@code{@{ c4~ c8 \breathe @}} se ejecuta como @code{@{ c4~ c16 r
+@}} en lugar de @code{@{ c4 r8 @}}.  Esto es más consistente con
+las articulaciones y con la forma en que los humanos interpretan
+las respiraciones después de las ligaduras de unión.  También hace
+que ahora sea más fácil alinear varias marcas de respiración
+simultáneas sobre más de una parte, aunque las notas tengan
+distintas duraciones.
+
+@item
+Se ha añadido un nuevo estilo de cabeza de nota para la tablatura:
+@code{TabNoteHead.style = #'slash}.
+
+@item
+Se ha añadido cuatro nuevos glifos de clave @emph{Doble de Sol},
+@emph{Sol de tenor}, @emph{Variante de percusión} y @emph{Variante
+de Do} así como sus correspondientes formas reducidas de cambio de
+clave.
+@lilypond[verbatim,quote,fragment]
+  \override Staff.Clef.full-size-change = ##t
+
+  \clef "GG" c c c c
+  \clef "tenorG" c c c c
+  \clef "varC" c c c c
+  \clef "altovarC" c c c c
+  \clef "tenorvarC" c c c c
+  \clef "baritonevarC" c c c c
+  \clef "varpercussion" c c c c
+
+  \break
+  \override Staff.Clef.full-size-change = ##f
+
+  \clef "GG" c c c c
+  \clef "tenorG" c c c c
+  \clef "varC" c c c c
+  \clef "altovarC" c c c c
+  \clef "tenorvarC" c c c c
+  \clef "baritonevarC" c c c c
+  \clef "varpercussion" c c c c
+@end lilypond
 
 @item
-La instrucción @code{\clef} contempla una transposición opcional:
-@lilypond[verbatim,quote,relative=1]
-\clef "treble_(8)"
-c2 c
-\clef "bass^[15]"
-c2 c
+Las duraciones aisladas en las secuencias musicales ahora tienen
+el significado de notas sin altura.  Esto puede ser de utilidad
+para especificar duraciones de música o de funciones de Scheme.
+Cuando se encuentran en la partitura final, las alturas vienen
+provistas por la nota o acorde anterior.  He aquí dos ejemplos en
+los que se aprecia que produce una entrada más legible:
+
+@lilypond[verbatim,quote]
+\new DrumStaff \with { \override StaffSymbol.line-count = 1 }
+\drummode {
+  \time 3/4
+  tambourine 8 \tuplet 3/2 { 16 16 16 }
+             8 \tuplet 3/2 { 16 16 16 } 8 8 |
+}
+@end lilypond
+
+@lilypond[verbatim,quote]
+\new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | }
 @end lilypond
 
 @item
-Se ha hecho que la sintaxis de LilyPond de palabras separadas por
-puntos @code{Voice.Accidental} sea intercambiable con
-@code{#'(Voice Accidental)}, una lista de Scheme de símbolos.
-Como resultado, código del estilo de
-@example
-\override Voice.TextSpanner #'(bound-details left text) = "rit."
-@end example
-ahora es equivalente a
+@code{\displayLilyMusic} y sus funciones de Scheme subyacentes ya
+no omiten las duraciones de nota redundantes.  Ello hace que sea
+más fácil reconocer correctamente y formatear las duraciones
+aisladas en expresiones como
 @example
-\override Voice.TextSpanner bound-details.left.text = "rit."
-@end example
-o incluso a
-@example
-\override #'(Voice TextSpanner) bound-details.left.text = "rit."
+@{ c4 d4 8 @}
 @end example
 
 @item
-La ruta a un grob y a una propiedad de un grob ya no requieren que
-se especifiquen como dos argumentos distintos a instrucciones como
-@samp{\override} y @code{\revert}, permitiendo la sintaxis
-siguiente:
+Las excepciones en el barrado se pueden construir ahora usando la
+función de Scheme @code{\beamExceptions}.  Ahora se puede escribir
+
+@lilypond[verbatim,quote,relative=1]
+\time #'(2 1) 3/16
+\set Timing.beamExceptions =
+  \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
+c16 c c |
+\repeat unfold 6 { c32 } |
+@end lilypond
+
+@noindent
+con las diversas excepciones separadas mediante comprobaciones de
+compás @code{|} (la escritura del patrón de la excepción la altura
+de las notas es conveniente pero no obligatorio).  Anteriormente
+habría sido necesario escribir las excepciones del barrado como
+
 @example
-\override Voice.TextSpanner.bound-details.left.text = "rit."
+\set Timing.beamExceptions =
+#'(                         ;start of alist
+   (end .                   ;entry for end of beams
+    (                       ;start of alist of end points
+     ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
+    )))
 @end example
-Dado que las funciones musicales complementarias como
-@samp{\overrideProperty} no contemplan formas con y sin espacios
-de separación al mismo tiempo, la utillización de una sola ruta
-con puntos es ahora la forma de preferencia.  La especificación
-separada de la ruta de un grob y de la propiedad del grob,
-contemplada aún por parte de @samp{\override} y de @samp{\revert}
-por motivos de compatibilidad, se considera ahora obsoleta.
-
-@item
-Debido a que dos palabras se aceptan ahora como símbolos que son
-argumentos de función, las interfaces de @samp{\accidentalStyle},
-@samp{\alterBroken}, @samp{\footnote} y @samp{\tweak} han tenido
-que ser rediseñadas allí donde estaban implicados símbolos que
-eran argumentos opcionales.  Compruebe la documentación de la
-función respectiva para ver los detalles.
-
-@item
-Varias instrucciones aceptan ahora listas de símbolos
-(introducidas convenientemente como palabras separadas por puntos)
-para diversos tipos de argumentos.  Entre ellos se encuentran
-@samp{\accidentalStyle}, @samp{\alterBroken}, @samp{\footnote},
-@samp{\hide}, @samp{\omit}, @samp{\overrideProperty},
-@samp{\shape} y @samp{\tweak}.
-
-@item
-Se ha modificado la interfaz de usuario de las líneas divisorias.
-Los glifos de barra de compás ahora se asemejan al aspecto de los
-caracteres utilizados para expresar el tipo de barra, de manera
-que un signo de repetición por la izquierda se debe codificar como
-@code{.|:}.  La instrucción @code{\defineBarLine} provee una
-manera sencilla de definir estilos adicionales de línea divisoria.
-
-@item
-Las alteraciones accidentales en la armadura de la tonalidad se
-pueden imprimir en distinta octava de las posiciones
-tradicionales, o en más de una octava.
-@lilypond[quote,relative=0]
-\override Staff.KeySignature #'flat-positions = #'((-5 . 5))
-\override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
-\clef bass \key es \major es g bes d
-\clef treble \bar "||" \key es \major es g bes d
-\override Staff.KeySignature #'sharp-positions = #'(2)
-\bar "||" \key d \major b fis b2
-@end lilypond
+
+@item
+Las articulaciones más comunes se reflejan ahora en la salida
+MIDI.  El acento y el marcato hacen a las notas sonar más fuerte;
+el picado, el staccato, el staccatissimo y el portato las hacen
+más cortas.  Las marcas de respiración acortan la nota anterior.
+
+Este comportamiento se puede personalizar a través de las
+propiedades @code{midiLength} @code{midiExtraVelocity} sobre
+@code{ArticulationEvent}.  Para ver ejemplos, consulre
+@file{script-init.ly}.
+
+@item
+La funcionalidad de PostScript del ajuste del trazo ya no se
+aplica automáticamente, sino que se deja a la discreción del
+dispositivo PostScript (de forma predeterminada, Ghostscript lo
+usa para las resoluciones de hasta 150 ppp al generar imagenes de
+matriz de puntos).  Cuando se activa, se emplea (principalmente
+para las plicas y las líneas divisorias) un algoritmo de trazado
+más complejo diseñado para sacar provecho del ajuste del trazo.
+
+El ajuste del trazo se puede forzar especificando la opción de
+línea de órdenes @samp{-dstrokeadjust} al llamar a LilyPond.
+CUando se generan archivos @code{PDF}, ello dará lugar por lo
+general a vistas previas de @code{PDF} con un aspecto marcadamente
+mejorado pero un tamaño de archivo significativamente mayor.  La
+calidad de impresión en resoluciones altas no resulta afectada.
 
 @end itemize
 
 @ifhtml
 Para ver noticias anteriores, diríjase a
+@uref{http://lilypond.org/doc/v2.18/Documentation/changes/},
 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
-@uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
 o @uref{../,vuelva} al índice de la documentación.
 
 
index 989be8cdc1ad8a1c258c07972c2f13b941e99573..913940c7f0ab41a2ecc1c72bbb018396d1f4eee8 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 08560a1b8076630c4fc6cb9b902614d8b74fd6fc
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -20,7 +20,12 @@ Este ensayo trata de las funciones de grabado musical automatizado
 dentro de LilyPond version @version{}.
 @end macro
 
-@c `Essay' was born 2002-06-03 with git commit e38f5fc...
+@c `Essay' was born 2002-06-03 with this commit:
+@c tremolo segfault
+@c author: Han-Wen Nienhuys
+@c commit: 29262ca70c3d5209126150752fd3d804bef8e9a3
+@c   file: Documentation/user/introduction.itely
+
 @macro copyrightDeclare
 Copyright @copyright{} 2002--2015 por los autores.
 @end macro
index 94ee25cd29fcd8c7c754388f06ee094be1666cf5..1c849fcf3afce412d4830cdf1bc8c8a3d931825c 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 7ec0c02a1520974682d2e3e3aa2dd59a1a05988d
+    Translation of GIT committish: 791d125bd2f98f1be6b7742bfedd981b5895c0c1
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -483,13 +483,9 @@ ejemplo anterior:
 A tamaños más pequeños, LilyPond utiliza líneas proporcionalmente más
 gruesas de manera que la música siga leyéndose con comodidad.
 
-@ignore
 This also allows staves of different sizes to coexist peacefully when
 used together on the same page:
 
-@c TODO: are the stems in this example the right thickness? How should
-@c line weights be scaled for small staves?
-
 @c Grieg's Violin Sonata Op. 45
 @lilypond[indent=1.5\cm]
 global = {
@@ -500,9 +496,7 @@ global = {
 \score {
   <<
     \new Staff \with {
-      fontSize = #-4
-      \override StaffSymbol.staff-space = #(magstep -4)
-      \override StaffSymbol.thickness = #(magstep -3)
+      \magnifyStaff #2/3
     }
     \relative {
       \global
@@ -539,7 +533,6 @@ global = {
   >>
 }
 @end lilypond
-@end ignore
 
 @node ¿Para qué tanto esfuerzo?
 @unnumberedsubsec ¿Para qué tanto esfuerzo?
index a54923d7f624215ebbb72e33aed880802754f705..b9080bb7d2f2523de62bd17b3b1487289c092def 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 26a079ca2393d053315ef8dbef626c897dc9645a
+    Translation of GIT committish: d2a84c5798a7568cd3c73ca4f4a23bca704c8608
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -30,7 +30,6 @@ Si tiene necesidad de aprender más acerca de la notación musical, le
 presentamos a continuación algunos títulos interesantes que puede
 leer.
 
-
 @table @cite
 @item Ignatzek 1995
 Klaus Ignatzek, Die Jazzmethode für Klavier. Schott's Söhne
@@ -40,13 +39,23 @@ Instructiva introducción a la interpretación de Jazz al piano.  Uno de los pri
 capítulos contiene una panorámica de los acordes más comunes de la música de Jazz.
 
 @item Gerou 1996
-
 Tom Gerou and Linda Lusk, Essential Dictionary of Music
 Notation. Alfred Publishing, Van Nuys CA ISBN 0-88284-768-6.
 
 Una lista concisa y ordenada alfabéticamente de los problemas de la composición tipográfica y la notación
 musical, que abarca la mayor parte de los casos más comunes.
 
+@item Gould 2011
+Elaine Gould, Behind Bars: the Definitive Guide to Music Notation.
+Faber Music Ltd. ISBN 0-571-51456-1.
+
+Hals über Kopf: Das Handbuch des Notensatzes.
+Edition Peters. ISBN 1843670488.
+
+Una completa guía de las reglas y convenciones de la notación musical
+que cubre todo desde los temas básicos hasta las técnicas más complejas y
+ofrece una fundamentación exhaustiva de los principios notacionales.
+
 @item Read 1968
 Gardner Read, Music Notation: A Manual of Modern Practice.
 Taplinger Publishing, New York (2nd edition).
index 81989c5495bc932a3290d01d75664254f7ecfb15..63697fa0e8a3cb6b7347e61f99c29e990ff8a46a 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 08560a1b8076630c4fc6cb9b902614d8b74fd6fc
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -20,7 +20,12 @@ Este archivo explica la forma de extender las funcionalidades de
 LilyPond versión @version{}.
 @end macro
 
-@c `Extending' was born 2003-04-23 with git commit c08f6e8...
+@c `Extending' was born 2004-03-07 with this commit:
+@c * Documentation/user/changing-defaults.itely (Changing defaults):
+@c author: Han-Wen Nienhuys
+@c commit: c53d0cabdf9361e448cdd02a338aa5d696f4f466
+@c   file: Documentation/user/programming-interface.itely
+
 @macro copyrightDeclare
 Copyright @copyright{} 2003--2015 por los autores.
 @end macro
index c25922f54fc7ec9eae914d6b07ced53798af71fb..83a966eac2b63495a53d791bab39ddcd860497ae 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of extending.tely
 @ignore
-    Translation of GIT committish: 41c8bf63a7cc180746eace9b9e5278f541be0229
+    Translation of GIT committish: 5680a5687a1f5cd5b406c71fdc9cae508464af94
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -13,9 +13,9 @@
 @chapter Interfaces para programadores
 @translationof Interfaces for programmers
 
-Se pueden realizar trucos avanzados mediante el uso de Scheme.  Si no
-está familiarizado con Scheme, le conviene leer nuestro tutorial de
-Scheme, @ref{Tutorial de Scheme}.
+Se pueden realizar trucos avanzados mediante el uso de Scheme.
+Si no está familiarizado con Scheme, le conviene leer nuestro
+tutorial de Scheme, @ref{Tutorial de Scheme}.
 
 
 @menu
@@ -26,7 +26,6 @@ Scheme, @ref{Tutorial de Scheme}.
 * Funciones de marcado::
 * Contextos para programadores::
 * Funciones de callback::
-* Código de Scheme en línea::
 * Trucos difíciles::
 @end menu
 
@@ -40,12 +39,12 @@ Scheme, @ref{Tutorial de Scheme}.
 @funindex $
 @funindex #
 
-La creación de expresiones musicales en Scheme puede ser una tarea
-tediosa porque a veces presentan muchos niveles de profundidad de
-anidamiento y el código resultante es grande.  Para algunas tareas
-sencillas, esto puede evitarse utilizando bloques de código de
-LilyPond, que permiten usar la sintaxis ordinaria de LilyPond
-dentro de Scheme.
+La creación de expresiones musicales en Scheme puede ser una
+tarea tediosa porque a veces presentan muchos niveles de
+profundidad de anidamiento y el código resultante es grande.
+Para algunas tareas sencillas, esto puede evitarse utilizando
+bloques de código de LilyPond, que permiten usar la sintaxis
+ordinaria de LilyPond dentro de Scheme.
 
 Los bloques de código de LilyPond tienen el siguiente aspecto:
 @example
@@ -68,15 +67,12 @@ Scheme en efecto se modifica para que pueda incorporar bloques de
 código de LilyPond y pueda ocuparse de las expresiones de Scheme
 incrustadas que comienzan por @code{$} y@w{ }@code{#}.
 
-@cindex parser (function argument)
-@cindex location
-
 El lector extrae el bloque de código de LilyPond y genera una
 llamada en tiempo de ejecución al analizador sintáctico para que
 interprete el código de LilyPond.  Las expresiones de Scheme
-incrustadas en el código de LilyPond se evalúan dentro del entorno
-lóexico del bloque de código de LilyPond, de manera que puede
-accederse a todas las variables locales y los parámetros de
+incrustadas en el código de LilyPond se evalúan dentro del
+entorno lóexico del bloque de código de LilyPond, de manera que
+puede accederse a todas las variables locales y los parámetros de
 función que están disponibles en el punto en que se escribe el
 bloque de código de LilyPond.  Las variables definidas en otros
 módulos de Scheme, como los módulos que contienen bloques
@@ -85,31 +81,30 @@ variables de Scheme, es decir, precedidas de@tie{}@code{#}, pero
 se puede acceder a ellas como variables de LilyPond, es decir,
 precedidas de@tie{}@code{\}.
 
-Si @code{location} (véase @ref{Funciones de Scheme}) se refiere a una
-posición de entrada válida (como lo hace normalmente dentro de las
-funciones musicales o de Scheme), toda la música generada dentro
-del bloque de código tiene su @samp{origin} establecido a
-@code{location}.
+Toda la música generada dentro del bloque de código tiene su
+@samp{origin} establecido a la localización actual del puntero de
+entrada.
 
 Un bloque de código de LilyPond puede contener cualquier cosa que
-podríamos utilizar en la parte derecha de una asignación.  Además, un
-bloque de LilyPond vacío corresponde a una expresión musical vacía, y
-un bloque de LilyPond que contiene varios eventos musicales se
-convierte en una expresión de música secuencial.
+podríamos utilizar en la parte derecha de una asignación.
+Además, un bloque de LilyPond vacío corresponde a una expresión
+musical vacía, y un bloque de LilyPond que contiene varios
+eventos musicales se convierte en una expresión de música
+secuencial.
 
 @node Funciones de Scheme
 @section Funciones de Scheme
 @translationof Scheme functions
 @cindex Scheme, funciones de (sintaxis de LilyPond)
 
-Las @emph{funciones de Scheme} son procedimientos de Scheme que pueden
-crear expresiones de Scheme a partir de código de entrada escrito en
-la sintaxis de LilyPond.  Se pueden llamar desde prácticamente
-cualquier lugar en el que se permita el uso de @code{#} para la
-especificación de un valor en sintaxis de Scheme.  Mientras que Scheme
-tiene funciones propias, este capítulo se ocupa de las funciones
-@emph{sintácticas}, funciones que reciben argumentos especificados en
-la sintaxis de LilyPond.
+Las @emph{funciones de Scheme} son procedimientos de Scheme que
+pueden crear expresiones de Scheme a partir de código de entrada
+escrito en la sintaxis de LilyPond.  Se pueden llamar desde
+prácticamente cualquier lugar en el que se permita el uso de
+@code{#} para la especificación de un valor en sintaxis de
+Scheme.  Mientras que Scheme tiene funciones propias, este
+capítulo se ocupa de las funciones @emph{sintácticas}, funciones
+que reciben argumentos especificados en la sintaxis de LilyPond.
 
 @menu
 * Definición de funciones de Scheme::
@@ -136,98 +131,82 @@ funcion =
 donde
 
 @multitable @columnfractions .33 .66
-@item @code{parser}
-@tab tiene que ser literalmente @code{parser} para dar a los bloques de código
-de LilyPond (@code{#@{}@dots{}@code{#@}}) acceso al analizador
-sintáctico.
-
-@item @code{location}
-@tab tiene que ser literalmente @code{location} para ofrecer acceso al
-objeto de situación de la entrada, que se usa para ofrecer
-menssajes de error con nombres de archivo y números de línea.
-
 @item @code{@var{argN}}
 @tab @var{n}-ésimo argumento
 
 @item @code{@var{typeN?}}
 @tab un @emph{predicado de tipo} de Scheme para el que @code{@var{argN}}
-debe devolver @code{#t}.
-
-También existe una forma especial @code{(@emph{predicate?}
-@emph{default})} para especificar argumentos opcionales.  Si el
-argumento actual no está presente cuando se ll ama a la función, el
-valor predeterminado se emplea en sustitución.  Los valores
-predeterminados se evalúan en tiempo de definición (¡incluyendo los
-bloques de código de LilyPond!), de manera que se necesitamos un valor
-por omisión calculado en tiempo de ejecución, debemos escribir en su
-lugar un valor especial que podamos reconocer fácilmente.  Si
-escribimos el predicado entre paréntesis pero no lo seguimos por el
-valor predeterminado, se usa @code{#f} como valor por omisión.  Los
-valores por omisión no se verifican con @emph{predicate?} en tiempo de
-definición ni en tiempo de ejecución: es nuestra responsabilidad
-tratar con los valores que especifiquemos.  Los valores por omisión
-que son expresiones musicales se copian mientras se establece
-@code{origin} al parámetro @code{location}.
+debe devolver @code{#t}.  También existe una forma especial
+@code{(@emph{predicate?}  @emph{default})} para especificar
+argumentos opcionales.  Si el argumento actual no está presente
+cuando se ll ama a la función, el valor predeterminado se emplea
+en sustitución.  Los valores predeterminados se evalúan en tiempo
+de definición (¡incluyendo los bloques de código de LilyPond!),
+de manera que se necesitamos un valor por omisión calculado en
+tiempo de ejecución, debemos escribir en su lugar un valor
+especial que podamos reconocer fácilmente.  Si escribimos el
+predicado entre paréntesis pero no lo seguimos por el valor
+predeterminado, se usa @code{#f} como valor por omisión.  Los
+valores por omisión no se verifican con @emph{predicate?} en
+tiempo de definición ni en tiempo de ejecución: es nuestra
+responsabilidad tratar con los valores que especifiquemos.  Los
+valores por omisión que son expresiones musicales se copian
+mientras se establece @code{origin} a la ubicación actual del
+cursor de entrada.
 
 @item @code{@var{cuerpo}}
 @tab una secuencia de formas de Scheme que se evalúan ordenadamente; la
-última forma de la secuencia se usa como el valor de retorno de la
-función de Scheme. Puede contener bloques de código de LilyPond
-encerrados entre llaves con almohadillas
+última forma de la secuencia se usa como el valor de retorno de
+la función de Scheme. Puede contener bloques de código de
+LilyPond encerrados entre llaves con almohadillas
 (@tie{}@w{@code{#@{@dots{}#@}}}@tie{}), como se describe en
-@ref{Bloques de código de LilyPond}.  Dentro de los bloques de código
-de LilyPond, use el símbolo @code{#} para hacer referencia a
-argumentos de función (p.ej. @samp{#arg1}) o para iniciar una
+@ref{Bloques de código de LilyPond}.  Dentro de los bloques de
+código de LilyPond, use el símbolo @code{#} para hacer referencia
+a argumentos de función (p.ej. @samp{#arg1}) o para iniciar una
 expresión en línea de Scheme que contenga argumentos de función
-(p.ej. @w{@samp{#(cons arg1 arg2)}}).  Donde las expresiones de Scheme
-normales que usan @code{#} no funcionan, podríamos necesitar volver a
-expresiones de Scheme inmediatas que usan @code{$}, como por ejemplo
-@samp{$music}.
+(p.ej. @w{@samp{#(cons arg1 arg2)}}).  Donde las expresiones de
+Scheme normales que usan @code{#} no funcionan, podríamos
+necesitar volver a expresiones de Scheme inmediatas que usan
+@code{$}, como por ejemplo @samp{$music}.
 
-Si nuestra función devuelve una expresión musical, recibe un valor
-@code{origin} útil.
+Si nuestra función devuelve una expresión musical, recibe un
+valor @code{origin} útil.
 @end multitable
 
 @noindent
-La idoneidad de los argumentos para los predicados viene determinada
-mediante llamadas reales al predicado después de que LilyPond ya las
-ha convertido en una expresión de Scheme.  Como consecuencia, el
-argumento se puede especificar en la sintaxis de Scheme si se desea
-(precedido de @code{#} o como resultado de haber llamado a una función
-de Scheme), pero LilyPond también convierte algunas construcciones de
-LilyPond en Scheme antes de hacer efectivamente la comprobación del
-predicado sobre ellas.  Actualmente se encuentran entre ellas la
-música, los post-eventos, las cadenas simples (entrecomilladas o no),
-los números, los elementos de marcado y de listas de marcado, score
-(partitura), book (libro), bookpart (parte de libro), las definiciones
-de contexto y los bloques de definición de salida.
-
-Para ciertos tipos de expresión (como la mayor parte de la música que
-no está encerrada entre llaves) LilyPond necesita más allá de la
-expresión misma para poder determinar su final.  Si tal expresión se
-considerase un argumento opcional mediante la evaluación de su
-predicado, LilyPond no podría recuperarse después de decidir que la
-expresión no se corresponde con el parámetro.  Así, ciertas formas de
-música necesitan ir encerradas entre llaves para poder considerarlas
-como aceptables bajo algunas circunstancias.  LilyPond resuelve
-algunas otras ambigüedades mediante la comprobación con funciones de
-predicado: ¿es @samp{-3} un post-evento de digitación o un número
-negativo?  ¿Es @code{"a" 4} en el modo de letra una cadena seguida por
-un número, o un evento de letra con la duración @code{4}?  LilyPond
-prueba el predicado del argumento sobre diversas interpretaciones
-sucesivas hasta que lo consigue, con un orden diseñado para minimizar
-las interpretaciones poco consistentes y la lectura por adelantado.
-
-Por ejemplo, un predicado que acepta tanto expresiones musicales como
-alturas consideraría que @code{c''} es una altura en lugar de una
-expresión musical.  Las duraciones o post-eventos que siguieran
-inmediatamente podrían no funcionar con dicha interpretación.  Así
-pues, es mejor evitar los predicados excesivamente permisivos como
-@code{scheme?} cuando la aplicación requeriría tipos de argumento más
-específicos.
-
-Para ver una lista de los predicados de tipo disponibles, consulte
-@ruser{Predicados de tipo predefinidos}.
+La idoneidad de los argumentos para los predicados viene
+determinada mediante llamadas reales al predicado después de que
+LilyPond ya las ha convertido en una expresión de Scheme.  Como
+consecuencia, el argumento se puede especificar en la sintaxis de
+Scheme si se desea (precedido de @code{#} o como resultado de
+haber llamado a una función de Scheme), pero LilyPond también
+convierte algunas construcciones de LilyPond en Scheme antes de
+hacer efectivamente la comprobación del predicado sobre ellas.
+Actualmente se encuentran entre ellas la música, los
+post-eventos, las cadenas simples (entrecomilladas o no), los
+números, los elementos de marcado y de listas de marcado, score
+(partitura), book (libro), bookpart (parte de libro), las
+definiciones de contexto y los bloques de definición de salida.
+
+LilyPond resuelve algunas ambigüedades mediante la comprobación
+con funciones de predicado: ¿es @samp{-3} un post-evento de
+digitación o un número negativo?  ¿Es @code{"a" 4} en el modo de
+letra una cadena seguida por un número, o un evento de letra con
+la duración @code{4}?  LilyPond prueba el predicado del argumento
+sobre diversas interpretaciones sucesivas hasta que lo consigue,
+con un orden diseñado para minimizar las interpretaciones poco
+consistentes y la lectura por adelantado.
+
+Por ejemplo, un predicado que acepta tanto expresiones musicales
+como alturas consideraría que @code{c''} es una altura en lugar
+de una expresión musical.  Las duraciones o post-eventos que
+siguen inmediatamente, cambian dicha interpretación.  Es mejor
+evitar los predicados excesivamente permisivos como
+@code{scheme?} cuando la aplicación requeriría tipos de argumento
+más específicos.
+
+Para ver una lista de los predicados de tipo disponibles,
+consulte @ruser{Predicados de tipo predefinidos}.
 
 @seealso
 
@@ -244,40 +223,50 @@ Archivos instalados:
 @subsection Uso de las funciones de Scheme
 @translationof Scheme function usage
 
-Las funciones de Scheme se pueden llamar casi desde cualquier lugar en
-que puede escribirse una expresión de Scheme que comience con la
-almohadilla@tie{}@code{#}.  Llamamos a una función de Scheme
-escribiendo su nombre precedido de la barra invertida@tie{}@code{\}, y
-seguido por sus argumentos.  Una vez que un argumento opcional no
-corresponde a ningún argumento, LilyPond se salta este argumento y
-todos los que le siguen, sustituyéndolos por su valor por omisión
-especificado, y @q{recupera} el argumento que no correspondía al lugar
-del siguiente argumento obligatorio.  Dado que el argumento recuperado
-necesita ir a algún lugar, los argumentos opcionales no se consideran
-realmente opcionales a no ser que vayan seguidos de un argumento
-obligatorio.
-
-Existe una excepción: si escribimos @code{\default} en el lugar de un
-argumento opcional, este argumento y todos los argumentos opcionales
-que le siguen se saltan y se sustituyen por sus valores
-predeterminados.  Esto funciona incluso si no sigue ningún argumento
-obligatorio porque @code{\default} no necesita recuperarse.  Las
-instrucciones @code{mark} y @code{key} hacen uso de este truco para
-ofrecer su comportamiento predeterminado cuando van seguidas solamente
-por @code{\default}.
+Las funciones de Scheme se pueden llamar casi desde cualquier
+lugar en que puede escribirse una expresión de Scheme que
+comience con la almohadilla@tie{}@code{#}.  Llamamos a una
+función de Scheme escribiendo su nombre precedido de la barra
+invertida@tie{}@code{\}, y seguido por sus argumentos.  Una vez
+que un argumento opcional no corresponde a ningún argumento,
+LilyPond se salta este argumento y todos los que le siguen,
+sustituyéndolos por su valor por omisión especificado, y
+@q{recupera} el argumento que no correspondía al lugar del
+siguiente argumento obligatorio.  Dado que el argumento
+recuperado necesita ir a algún lugar, los argumentos opcionales
+no se consideran realmente opcionales a no ser que vayan seguidos
+de un argumento obligatorio.
+
+Existe una excepción: si escribimos @code{\default} en el lugar
+de un argumento opcional, este argumento y todos los argumentos
+opcionales que le siguen se saltan y se sustituyen por sus
+valores predeterminados.  Esto funciona incluso si no sigue
+ningún argumento obligatorio porque @code{\default} no necesita
+recuperarse.  Las instrucciones @code{mark} y @code{key} hacen
+uso de este truco para ofrecer su comportamiento predeterminado
+cuando van seguidas solamente por @code{\default}.
 
 Aparte de los lugares en que se requiere un valor de Scheme hay
-ciertos sitios en que se aceptan expresiones de almohadilla @code{#} y
-se evalúan por sus efectos secundarios, pero por lo demás se ignoran.
-Son, mayormente, los lugares en que también sería aceptable colocar
-una asignación.
-
-Dado que no es buena idea devolver valores que puedan malinterpretarse
-en algún contexto, debería usar funciones de Scheme normales solo para
-los casos en que siempre se devuelve un valor útil, y usar funciones
-de Scheme vacías (@pxref{Funciones de Scheme vacías}) en caso
-contrario.
-
+ciertos sitios en que se aceptan expresiones de almohadilla
+@code{#} y se evalúan por sus efectos secundarios, pero por lo
+demás se ignoran.  Son, mayormente, los lugares en que también
+sería aceptable colocar una asignación.
+
+Dado que no es buena idea devolver valores que puedan
+malinterpretarse en algún contexto, debería usar funciones de
+Scheme normales solo para los casos en que siempre se devuelve un
+valor útil, y usar funciones de Scheme vacías (@pxref{Funciones
+de Scheme vacías}) en caso contrario.
+
+Por conveniencia, las funciones de Scheme también se pueden
+llamar directamente desde Scheme, puenteando al analizador
+sintáctico de LilyPond.  Su nombre puede utilizarse como el
+nombre de una función corriente.  La comprobación de tipo de los
+argumentos y el salto de los argumentos opcionales tiene lugar de
+la misma forma que cuando se llama desde dentro de LilyPond,
+tomando el valor de Scheme @code{*unspecified*} el papel de la
+palabra reservada @code{\default} para saltar explícitamente
+argumentos opcionales.
 
 @node Funciones de Scheme vacías
 @subsection Funciones de Scheme vacías
@@ -285,19 +274,20 @@ contrario.
 @funindex define-void-function
 @funindex \void
 
-En ocasiones, un procedimiento se ejecuta con el objeto de llevar a
-cabo alguna acción más que para devolver un valor.  Algunos lenguajes
-de programación (como C y Scheme) usan las funciones para los dos
-conceptos y se limitan a descartar el valor devuelto (usualmente
-haciendo que cualquier expresión pueda actuar como instrucción,
-ignorando el resultado devuelto).  Esto puede parecer inteligente pero
-es propenso a errores: casi todos los compiladores de C de hoy en día
-emiten advertencias cuando se descarta una expresión no vacía.  Para
-muchas funciones que ejecutan una acción, los estándares de Scheme
-declaran que el valor de retorno sea no especificado.  Guile, el
-intérprete de Scheme de LilyPond, tiene un valor único
-@code{*unspecified*} que en tales casos devuelve de forma usual (como
-cuando se usa directamente @code{set!} sobre una variable), pero
+En ocasiones, un procedimiento se ejecuta con el objeto de llevar
+a cabo alguna acción más que para devolver un valor.  Algunos
+lenguajes de programación (como C y Scheme) usan las funciones
+para los dos conceptos y se limitan a descartar el valor devuelto
+(usualmente haciendo que cualquier expresión pueda actuar como
+instrucción, ignorando el resultado devuelto).  Esto puede
+parecer inteligente pero es propenso a errores: casi todos los
+compiladores de C de hoy en día emiten advertencias cuando se
+descarta una expresión no vacía.  Para muchas funciones que
+ejecutan una acción, los estándares de Scheme declaran que el
+valor de retorno sea no especificado.  Guile, el intérprete de
+Scheme de LilyPond, tiene un valor único @code{*unspecified*} que
+en tales casos devuelve de forma usual (como cuando se usa
+directamente @code{set!} sobre una variable), pero
 desgraciadamente no de forma consistente.
 
 Definir una función de LilyPond con @code{define-void-function}
@@ -314,9 +304,9 @@ noApuntarYPulsar =
 \noApuntarYPulsar   % desactivar la función de apuntar y pulsar
 @end example
 
-Si queremos evaluar una expresión sólo por su efecto colateral y no
-queremos que se interprete ningún valor que pueda devolver, podemos
-hacerlo anteponiendo el prefijo @code{\void}:
+Si queremos evaluar una expresión sólo por su efecto colateral y
+no queremos que se interprete ningún valor que pueda devolver,
+podemos hacerlo anteponiendo el prefijo @code{\void}:
 
 @example
 \void #(hashq-set! some-table some-key some-value)
@@ -333,9 +323,9 @@ encuentre.  También funciona para funciones musicales como
 
 @cindex funciones musicales
 
-Las @emph{funciones musicales} son procedimientos de Scheme que pueden
-crear automáticamente expresiones musicales, y se pueden usar para
-simplificar enormemente el archivo de entrada.
+Las @emph{funciones musicales} son procedimientos de Scheme que
+pueden crear automáticamente expresiones musicales, y se pueden
+usar para simplificar enormemente el archivo de entrada.
 
 @menu
 * Definiciones de funciones musicales::
@@ -365,12 +355,13 @@ funcion =
 @end example
 
 @noindent
-de forma bastante análoga a @ref{Definición de funciones de Scheme}.
-Lo más probable es que el @var{cuerpo} sea un
+de forma bastante análoga a
+@ref{Definición de funciones de Scheme}.  Lo más probable es que
+el @var{cuerpo} sea un
 @ref{Bloques de código de LilyPond,bloque de código de LilyPond}.
 
-Para ver una lista de los predicados de tipo disponibles, consulte
-@ruser{Predicados de tipo predefinidos}.
+Para ver una lista de los predicados de tipo disponibles,
+consulte @ruser{Predicados de tipo predefinidos}.
 
 @seealso
 
@@ -387,42 +378,46 @@ Archivos de inicio:
 @subsection Uso de las funciones musicales
 @translationof Music function usage
 
-Las funciones musicales se pueden actualmente utilizar en varios
-lugares.  Dependiendo de dónde se usan, son de aplicación ciertas
-restricciones para que sea posible su análisis sintáctico de forma
-no ambigua.  El resultado que devuelve una función musical debe ser
-compatible con el contexto desde el que se la llama.
+Una @q{función musical} debe devolver una expresión que se
+corresponda con el predicado @code{ly:music?}.  Esto hace que las
+llamadas a funciones musicales sean aproopiadas como argumentos
+del tipo @code{ly:music?} para otra llamada a una función
+musical.
+
+Si se usa una llamada a función musical dentro de otros
+contextos, el contexto puede aplicar restricciones semánticas
+adicionales.
 
 @itemize
 @item
-En el nivel superior dentro de una expresión musical.  Aquí
-no se aplica ninguna restricción.
+En el nivel superior dentro de una expresión musical no se acepta
+ningún post-evento.
 
 @item
-Como un post-evento, que comienza explícitamente con un indicador de
-dirección (a elegir entre @code{-}, @code{^} @w{y @code{_}}).
-
-En este caso, no podemos usar una expresión musical @emph{abierta}
-como último argumento, que terminaría en una expresión musical
-capaz de aceptar post-eventos adicionales.
+Cuando una función musical (a diferencia de una función de
+evento) devuelve una expresión del tipo post-event, LilyPond
+requiere uno de los indicadores de dirección con nombre
+(@code{-}, @code{^}, @w{y @code{_}}) para poder integrar
+adecuadamente el post-evento producido por la llamada a la
+función musical dentro de la expresión circundante.
 
 @item
-Como componente de un acorde.  La expresión devuelta debe ser
-del tipo @code{rhythmic-event}, probablemente un @code{NoteEvent}.
+Como componente de un acorde.  La expresión devuelta debe ser del
+tipo @code{rhythmic-event}, probablemente un @code{NoteEvent}.
 @end itemize
 
 @noindent
-Las reglas especiales para los argumentos del final hacen posible
-escribir funciones polimórficas como @code{\tweak} que se pueden
-aplicar a construcciones distintas.
+Se pueden aplicar funciones @q{polimórficas}, como @code{\tweak},
+a los post-eventos, componentes de acordes y expresiones
+musicales del nivel superior.
 
 @node Funciones de sustitución sencillas
 @subsection Funciones de sustitución sencillas
 @translationof Simple substitution functions
 
 Una función de sustitución sencilla es una función musical cuya
-expresión musical de salida está escrita en código de LilyPond
-contiene argumentos de la función en la expresión de salida.
+expresión musical de salida está escrita en código de LilyPond y
+contiene argumentos de la función en la expresión de salida.
 Están descritas en @ruser{Ejemplos de funciones de sustitución}.
 
 
@@ -430,16 +425,16 @@ Están descritas en @ruser{Ejemplos de funciones de sustitución}.
 @subsection Funciones de sustitución intermedias
 @translationof Intermediate substitution functions
 
-Las funciones de sustitución intermedias contienen una
-mezcla de código de Scheme y de LilyPond
-dentro de la expresión musical que se devuelve.
+Las funciones de sustitución intermedias contienen una mezcla de
+código de Scheme y de LilyPond dentro de la expresión musical que
+se devuelve.
 
 Algunas instrucciones @code{\override} requieren un argumento que
-consiste en una pareja de números (llamada una @emph{célula cons} en
-Scheme).
+consiste en una pareja de números (llamada una @emph{célula cons}
+en Scheme).
 
-La pareja se puede pasar directamente dentro de la función musical,
-usando una variable @code{pair?}:
+La pareja se puede pasar directamente dentro de la función
+musical, usando una variable @code{pair?}:
 
 @example
 barraManual =
@@ -455,9 +450,10 @@ barraManual =
 @}
 @end example
 
-De forma alternativa, los números que componen la pareja se pueden
-pasar como argumentos separados, y el código de Scheme que se ha usado
-para crear la pareja se puede incluir dentro de la expresión musical:
+De forma alternativa, los números que componen la pareja se
+pueden pasar como argumentos separados, y el código de Scheme que
+se ha usado para crear la pareja se puede incluir dentro de la
+expresión musical:
 
 @lilypond[quote,verbatim,ragged-right]
 manualBeam =
@@ -482,13 +478,13 @@ Las propiedades se mantienen conceptualmente utilizando una pila
 por cada propiedad, por cada grob y por cada contexto.  Las
 funciones musicales pueden requerir la sobreescritura de una o
 varias propiedades durante el tiempo de duración de la función,
-restaurándolas a sus valores previos antes de salir.  Sin embargo,
-las sobreescrituras normales extraen y descartan la cima de la
-pila de propiedades actual antes de introducir un valor en ella,
-de manera que el valor anterior de la propiedad se pierde cuando
-se sobreescribe.  Si se quiere preservar el valor anterior, hay
-que preceder la instrucción @code{\override} con la palabra clave
-@code{\temporary}, así:
+restaurándolas a sus valores previos antes de salir.  Sin
+embargo, las sobreescrituras normales extraen y descartan la cima
+de la pila de propiedades actual antes de introducir un valor en
+ella, de manera que el valor anterior de la propiedad se pierde
+cuando se sobreescribe.  Si se quiere preservar el valor
+anterior, hay que preceder la instrucción @code{\override} con la
+palabra clave @code{\temporary}, así:
 
 @example
 \temporary \override @dots{}
@@ -497,16 +493,16 @@ que preceder la instrucción @code{\override} con la palabra clave
 El uso de @code{\temporary} hace que se borre la propiedad
 (normalmente fijada a un cierto valor) @code{pop-first} de la
 sobreescritura, de forma que el valor anterior no se extrae de la
-pila de propiedades antes de poner en ella el valor nuevo.  Cuando
-una instrucción @code{\revert} posterior extrae el avlor
+pila de propiedades antes de poner en ella el valor nuevo.
+Cuando una instrucción @code{\revert} posterior extrae el valor
 sobreescrito temporalmente, volverá a emerger el valor anterior.
 
 En otras palabras, una llamada a @code{\temporary \override} y a
-continuación otra a @code{\revert} sobre la misma propiedad, tiene
-un valor neto que es nulo.  De forma similar, la combinación en
-secuencia de @code{\temporary} y @code{\undo} sobre la misma
-música que contiene las sobreescrituras, tiene un efecto neto
-nulo.
+continuación otra a @code{\revert} sobre la misma propiedad,
+tiene un valor neto que es nulo.  De forma similar, la
+combinación en secuencia de @code{\temporary} y @code{\undo}
+sobre la misma música que contiene las sobreescrituras, tiene un
+efecto neto nulo.
 
 He aquí un ejemplo de una función musical que utiliza lo expuesto
 anteriormente.  El uso de @code{\temporary} asegura que los
@@ -587,8 +583,8 @@ withAlt =
 @subsection Funciones sin argumentos
 @translationof Functions without arguments
 
-En casi todos los casos, una función sin argumentos se debe escribir
-con una variable:
+En casi todos los casos, una función sin argumentos se debe
+escribir con una variable:
 
 @example
 dolce = \markup@{ \italic \bold dolce @}
@@ -607,8 +603,8 @@ mostrarNumeroDeCompas =
        #@{#@}))
 @end example
 
-Para la impresión real de los números de compás donde se llama a esta
-función, invoque a @command{lilypond} con
+Para la impresión real de los números de compás donde se llama a
+esta función, invoque a @command{lilypond} con
 
 @example
 lilypond -d display-bar-numbers ARCHIVO.ly
@@ -619,13 +615,13 @@ lilypond -d display-bar-numbers ARCHIVO.ly
 @subsection Funciones musicales vacías
 @translationof Void music functions
 
-Una función musical debe devolver una expresión musical.  Si quiere
-ejecutar una función exclusivamente por sus efectos secundarios,
-debería usar @code{define-void-function}.  Pero
-puede haber casos en los que a veces queremos producir una expresión
-musical, y a veces no (como en el ejemplo anterior).  Devolver una
-expresión musical @code{void} (vacía) por medio de @code{#@{ #@}} lo
-hace posible.
+Una función musical debe devolver una expresión musical.  Si
+quiere ejecutar una función exclusivamente por sus efectos
+secundarios, debería usar @code{define-void-function}.  Pero
+puede haber casos en los que a veces queremos producir una
+expresión musical, y a veces no (como en el ejemplo anterior).
+Devolver una expresión musical @code{void} (vacía) por medio de
+@code{#@{ #@}} lo hace posible.
 
 
 @node Funciones de eventos
@@ -634,13 +630,14 @@ hace posible.
 @funindex define-event-function
 @cindex event functions
 
-Para usar una función musical en el lugar de un evento, tenemos que
-escribir un indicador de dirección antes de ella.  Pero a veces, ello
-hace que se pierda la correspondencia con la sintaxis de las
-construcciones que queremos sustituir.  Por ejemplo, si queremos
-escribir instrucciones de matiz dinámico, éstos se adjuntan
-habitualmente sin indicador de dirección, como @code{c'\pp}.  He aquí
-una forma de escribir indicaciones dinámicas arbitrarias:
+Para usar una función musical en el lugar de un evento, tenemos
+que escribir un indicador de dirección antes de ella.  Pero a
+veces, ello hace que se pierda la correspondencia con la sintaxis
+de las construcciones que queremos sustituir.  Por ejemplo, si
+queremos escribir instrucciones de matiz dinámico, éstos se
+adjuntan habitualmente sin indicador de dirección, como
+@code{c'\pp}.  He aquí una forma de escribir indicaciones
+dinámicas arbitrarias:
 
 @lilypond[quote,verbatim,ragged-right]
 dyn=#(define-event-function (arg) (markup?)
@@ -648,18 +645,18 @@ dyn=#(define-event-function (arg) (markup?)
 \relative { c'\dyn pfsss }
 @end lilypond
 
-Podríamos hacer lo mismo usando una función musical, pero entonces
-tendríamos que escribir siempre un indicador de dirección antes de
-llamarla, como @code{@w{c-\dyn pfsss}}.
+Podríamos hacer lo mismo usando una función musical, pero
+entonces tendríamos que escribir siempre un indicador de
+dirección antes de llamarla, como @code{@w{c-\dyn pfsss}}.
 
 
 @node Funciones de marcado
 @section Funciones de marcado
 @translationof Markup functions
 
-Los elementos de marcado están implementados como funciones de Scheme
-especiales que producen un objeto @code{Stencil} dada una serie de
-argumentos.
+Los elementos de marcado están implementados como funciones de
+Scheme especiales que producen un objeto @code{Stencil} dada una
+serie de argumentos.
 
 
 @menu
@@ -718,12 +715,12 @@ ocurre con la instrucción @code{\displayMusic}, la salida de
 Véase @ref{Presentación de las expresiones musicales}.
 
 @noindent
-Este ejemplo muestra las principales reglas de traducción entre la
-sintaxis del marcado normal de LilyPond y la sintaxis del marcado de
-Scheme.  La utilización de @code{#@{ @dots{} #@}} para escribir en la
-sintaxis de LilyPond será con frecuencia lo más conveniente, pero
-explicamos cómo usar la macro @code{markup} para obtener una solución
-sólo con Scheme.
+Este ejemplo muestra las principales reglas de traducción entre
+la sintaxis del marcado normal de LilyPond y la sintaxis del
+marcado de Scheme.  La utilización de @code{#@{ @dots{} #@}} para
+escribir en la sintaxis de LilyPond será con frecuencia lo más
+conveniente, pero explicamos cómo usar la macro @code{markup}
+para obtener una solución sólo con Scheme.
 
 @quotation
 @multitable @columnfractions .3 .3
@@ -740,11 +737,12 @@ sólo con Scheme.
 @end multitable
 @end quotation
 
-Todo el lenguaje Scheme está accesible dentro del macro @code{markup}.
-Por ejemplo, podemos usar llamadas a funciones dentro de @code{markup}
-para así manipular cadenas de caracteres.  Esto es útil si se están
-definiendo instrucciones de marcado nuevas (véase
-@ref{Definición de una instrucción de marcado nueva}).
+Todo el lenguaje Scheme está accesible dentro del macro
+@code{markup}.  Por ejemplo, podemos usar llamadas a funciones
+dentro de @code{markup} para así manipular cadenas de caracteres.
+Esto es útil si se están definiendo instrucciones de marcado
+nuevas (véase @ref{Definición de una instrucción de marcado
+nueva}).
 
 
 @knownissues
@@ -758,8 +756,9 @@ resultado de la llamada a una función.
 @end lisp
 
 @noindent
-no es válido.  Hay que usar las funciones @code{make-line-markup},
-@code{make-center-markup} o @code{make-column-markup} en su lugar:
+no es válido.  Hay que usar las funciones
+@code{make-line-markup}, @code{make-center-markup} o
+@code{make-column-markup} en su lugar:
 
 @lisp
 (markup (make-line-markup (funcion-que-devuelve-marcados)))
@@ -795,11 +794,11 @@ sellos), se llama la función @code{raise-markup} como
        @var{el marcado "ejemplo de texto"})
 @end example
 
-Primero la función @code{raise-markup} crea el sello para la cadena
-@code{ejemplo de texto}, y después eleva el sello Stencil en 0.5
-espacios de pentagrama.  Este es un ejemplo bastante simple; en el
-resto de la sección podrán verse ejemplos más complejos, así como en
-@file{scm/define-markup-commands.scm}.
+Primero la función @code{raise-markup} crea el sello para la
+cadena @code{ejemplo de texto}, y después eleva el sello Stencil
+en 0.5 espacios de pentagrama.  Este es un ejemplo bastante
+simple; en el resto de la sección podrán verse ejemplos más
+complejos, así como en @file{scm/define-markup-commands.scm}.
 
 
 @node Definición de una instrucción de marcado nueva
@@ -821,8 +820,9 @@ marcado.
 @unnumberedsubsubsec Sintaxis de la definición de instrucciones de marcado
 @translationof Markup command definition syntax
 
-Se pueden definir instrucciones de marcado nuevas usando el macro de
-Scheme @code{define-markup-command}, en el nivel sintáctico superior.
+Se pueden definir instrucciones de marcado nuevas usando el macro
+de Scheme @code{define-markup-command}, en el nivel sintáctico
+superior.
 
 @lisp
 (define-markup-command (@var{nombre-de-la-instruccion} @var{layout} @var{props} @var{arg1} @var{arg2} @dots{})
@@ -848,9 +848,10 @@ argumento @var{i}-ésimo de la instrucción
 predicado de tipo para el argumento @var{i}-ésimo
 @end table
 
-Si la instrucción utiliza propiedades de los argumentos @code{props},
-se puede usar la palabra clave @code{#:properties} para especificar
-qué propiedades se usan, así como sus valores predeterminados.
+Si la instrucción utiliza propiedades de los argumentos
+@code{props}, se puede usar la palabra clave @code{#:properties}
+para especificar qué propiedades se usan, así como sus valores
+predeterminados.
 
 Los argumentos se distinguen según su tipo:
 @itemize
@@ -861,51 +862,54 @@ Los argumentos se distinguen según su tipo:
 @code{list?}, @code{number?}, @code{boolean?}, etc.
 @end itemize
 
-No existe ninguna limitación en el orden de los argumentos (después de
-los argumentos estándar @code{layout} y @code{props}).  Sin embargo, las
-funciones de marcado que toman un elemento de marcado como su último
-argumento son un poco especiales porque podemos aplicarlas a una lista
-de marcados y el resultado es una lista de marcados donde la función
-de marcado (con los argumentos antecedentes especificados) se ha
-aplicado a todos los elementos de la lista de marcados original.
-
-Dado que la replicación de los argumentos precedentes para aplicar una
-función de marcado a una lista de marcados es poco costosa
-principalmente por los argumentos de Scheme, se evitan las caídas de
-rendimiento simplemente mediante la utilización de argumentos de
-Scheme para los argumentos antecedentes de las funciones de marcado
-que toman un marcado como su último argumento.
+No existe ninguna limitación en el orden de los argumentos
+(después de los argumentos estándar @code{layout} y
+@code{props}).  Sin embargo, las funciones de marcado que toman
+un elemento de marcado como su último argumento son un poco
+especiales porque podemos aplicarlas a una lista de marcados y el
+resultado es una lista de marcados donde la función de marcado
+(con los argumentos antecedentes especificados) se ha aplicado a
+todos los elementos de la lista de marcados original.
+
+Dado que la replicación de los argumentos precedentes para
+aplicar una función de marcado a una lista de marcados es poco
+costosa principalmente por los argumentos de Scheme, se evitan
+las caídas de rendimiento simplemente mediante la utilización de
+argumentos de Scheme para los argumentos antecedentes de las
+funciones de marcado que toman un marcado como su último
+argumento.
 
 @funindex \markup
 @cindex markup macro
 @funindex interpret-markup
 Las instrucciones de marcado tienen un ciclo de vida más bien
-complejo.  El cuerpo de la definición de una instrucción de marcado es
-responsable de la conversión de los argumentos de la instrucción de
-marcado en una expresión de sello que se devuelve.  Muy a menudo esto
-se lleva a cabo llamando a la función @code{interpret-markup} sobre
-una expresión de marcado, pasándole los argumentos @var{layout} y
-@var{props}.  Por lo general, estos argumentos se conocen solamente en
-una fase muy tardía de la composición tipográfica.  Las expresiones de
-marcado ya tienen sus componentes ensamblados dentro de expresiones de
-marcado cuando se expanden las instrucciones @code{\markup} (dentro de
+complejo.  El cuerpo de la definición de una instrucción de
+marcado es responsable de la conversión de los argumentos de la
+instrucción de marcado en una expresión de sello que se devuelve.
+Muy a menudo esto se lleva a cabo llamando a la función
+@code{interpret-markup} sobre una expresión de marcado, pasándole
+los argumentos @var{layout} y @var{props}.  Por lo general, estos
+argumentos se conocen solamente en una fase muy tardía de la
+composición tipográfica.  Las expresiones de marcado ya tienen
+sus componentes ensamblados dentro de expresiones de marcado
+cuando se expanden las instrucciones @code{\markup} (dentro de
 una expresión de LilyPond) o la macro @code{markup} (dentro de
-Scheme).  La evaluación y la comprobación de tipos de los argumentos
-de la instrucción de marcado tiene lugar en el momento en que se
-interpretan @code{\markup} o @code{markup}.
+Scheme).  La evaluación y la comprobación de tipos de los
+argumentos de la instrucción de marcado tiene lugar en el momento
+en que se interpretan @code{\markup} o @code{markup}.
 
-Pero la conversión real de expresiones de marcado en expresiones de
-sello mediante la ejecución de los cuerpos de función de marcado solo
-tienen lugar cuando se llama a @code{interpret-markup} sobre una
-expresión de marcado.
+Pero la conversión real de expresiones de marcado en expresiones
+de sello mediante la ejecución de los cuerpos de función de
+marcado solo tienen lugar cuando se llama a
+@code{interpret-markup} sobre una expresión de marcado.
 
 @node Acerca de las propiedades
 @unnumberedsubsubsec Acerca de las propiedades
 @translationof On properties
 
-Los argumentos @code{layout} y @code{props} de las instrucciones de
-marcado traen a escena un contexto para la interpretación del marcado:
-tamaño de la tipografía, grueso de línea, etc.
+Los argumentos @code{layout} y @code{props} de las instrucciones
+de marcado traen a escena un contexto para la interpretación del
+marcado: tamaño de la tipografía, grueso de línea, etc.
 
 El argumento @code{layout} permite el acceso a las propiedades
 definidas en los bloques @code{paper}, usando la función
@@ -916,21 +920,21 @@ mismo que el que se usa en las partituras) se lee usando:
 (ly:output-def-lookup layout 'line-width)
 @end example
 
-El argumento @code{props} hace accesibles algunas propiedades a las
-instrucciones de marcado.  Por ejemplo, cuando se interpreta el
-marcado del título de un libro, todas las variables definidas dentro
-del bloque @code{\header} se añaden automáticamente a @code{props}, de
-manera que el marcado del título del libro puede acceder al título del
-libro, el autor, etc.  También es una forma de configurar el
-comportamiento de una instrucción de marcado: por ejemplo, cuando una
-instrucción utiliza tamaños de tipografía durante el procesado, el
-tamaño se lee de @code{props} en vez de tener un argumento
-@code{font-size}.  El que llama a una instrucción de marcado puede
-cambiar el valor de la propiedad del tamaño de la tipografía con el
-objeto de modificar el comportamiento.  Utilice la palabra clave
-@code{#:properties} de @code{define-markup-command} para especificar
-qué propiedades se deben leer a partir de los argumentos de
-@code{props}.
+El argumento @code{props} hace accesibles algunas propiedades a
+las instrucciones de marcado.  Por ejemplo, cuando se interpreta
+el marcado del título de un libro, todas las variables definidas
+dentro del bloque @code{\header} se añaden automáticamente a
+@code{props}, de manera que el marcado del título del libro puede
+acceder al título del libro, el autor, etc.  También es una forma
+de configurar el comportamiento de una instrucción de marcado:
+por ejemplo, cuando una instrucción utiliza tamaños de tipografía
+durante el procesado, el tamaño se lee de @code{props} en vez de
+tener un argumento @code{font-size}.  El que llama a una
+instrucción de marcado puede cambiar el valor de la propiedad del
+tamaño de la tipografía con el objeto de modificar el
+comportamiento.  Utilice la palabra clave @code{#:properties} de
+@code{define-markup-command} para especificar qué propiedades se
+deben leer a partir de los argumentos de @code{props}.
 
 El ejemplo de la sección siguiente ilustra cómo acceder y
 sobreescribir las propiedades de una instrucción de marcado.
@@ -940,40 +944,41 @@ sobreescribir las propiedades de una instrucción de marcado.
 @unnumberedsubsubsec Un ejemplo completo
 @translationof A complete example
 
-El ejemplo siguiente define una instrucción de marcado para trazar un
-rectángulo doble alrededor de un fragmento de texto.
+El ejemplo siguiente define una instrucción de marcado para
+trazar un rectángulo doble alrededor de un fragmento de texto.
 
 En primer lugar, necesitamos construir un resultado aproximado
-utilizando marcados.  Una consulta a @ruser{Instrucciones de marcado
-de texto} nos muestra que es útil la instrucción @code{\box}:
+utilizando marcados.  Una consulta a @ruser{Instrucciones de
+marcado de texto} nos muestra que es útil la instrucción
+@code{\box}:
 
 @lilypond[quote,verbatim,ragged-right]
 \markup \box \box HELLO
 @end lilypond
 
-Ahora, consideramos que es preferible tener más separación entre el
-texto y los rectángulos.  Según la documentación de @code{\box}, esta
-instrucción usa una propiedad @code{box-padding}, cuyo valor
-predeterminado es 0.2.  La documentación también menciona cómo
-sobreescribir este valor:
+Ahora, consideramos que es preferible tener más separación entre
+el texto y los rectángulos.  Según la documentación de
+@code{\box}, esta instrucción usa una propiedad
+@code{box-padding}, cuyo valor predeterminado es 0.2.  La
+documentación también menciona cómo sobreescribir este valor:
 
 @lilypond[quote,verbatim,ragged-right]
 \markup \box \override #'(box-padding . 0.6) \box A
 @end lilypond
 
-Después, el relleno o separación entre los dos rectángulos nos parece
-muy pequeño, así que lo vamos a sobreescribir también:
+Después, el relleno o separación entre los dos rectángulos nos
+parece muy pequeño, así que lo vamos a sobreescribir también:
 
 @lilypond[quote,verbatim,ragged-right]
 \markup \override #'(box-padding . 0.4) \box
      \override #'(box-padding . 0.6) \box A
 @end lilypond
 
-Repetir esta extensa instrucción de marcado una y otra vez sería un
-quebradero de cabeza.  Aquí es donde se necesita una instrucción de
-marcado.  Así pues, escribimos una instrucción de marcado
-@code{double-box}, que toma un argumento (el texto).  Dibuja los dos
-rectángulos y añade una separación.
+Repetir esta extensa instrucción de marcado una y otra vez sería
+un quebradero de cabeza.  Aquí es donde se necesita una
+instrucción de marcado.  Así pues, escribimos una instrucción de
+marcado @code{double-box}, que toma un argumento (el texto).
+Dibuja los dos rectángulos y añade una separación.
 
 @lisp
 #(define-markup-command (double-box layout props text) (markup?)
@@ -994,14 +999,14 @@ o, de forma equivalente,
 @end lisp
 
 @code{text} es el nombre del argumento de la instrucción, y
-@code{markup?} es el tipo: lo identifica como un elemento de marcado.
-La función @code{interpret-markup} se usa en casi todas las
-instrucciones de marcado: construye un sello, usando @code{layout},
-@code{props}, y un elemento de marcado.  En el segundo caso, la marca
-se construye usando el macro de Scheme @code{markup}, véase
-@ref{Construcción de elementos de marcado en Scheme}.  La
-transformación de una expresión @code{\markup} en una expresión de
-marcado de Scheme es directa.
+@code{markup?} es el tipo: lo identifica como un elemento de
+marcado.  La función @code{interpret-markup} se usa en casi todas
+las instrucciones de marcado: construye un sello, usando
+@code{layout}, @code{props}, y un elemento de marcado.  En el
+segundo caso, la marca se construye usando el macro de Scheme
+@code{markup}, véase @ref{Construcción de elementos de marcado en
+Scheme}.  La transformación de una expresión @code{\markup} en
+una expresión de marcado de Scheme es directa.
 
 La instrucción nueva se puede usar como sigue:
 
@@ -1009,14 +1014,15 @@ La instrucción nueva se puede usar como sigue:
 \markup \double-box A
 @end example
 
-Sería buen hacer que la instrucción @code{double-box} fuera
-personalizable: aquí, los valores de relleno @code{box-padding} son
-fijos, y no se pueden cambiar por parte del usuario.  Además, sería
-mejor distinguir la separación entre los dos rectángulos, del relleno
-entre el rectángulo interno y el texto.  Así pues, introducimos una
-nueva propiedad, @code{inter-box-padding}, para el relleno entre los
-rectángulos.  El @code{box-padding} se usará para el relleno interno.
-Ahora el código nuevo es como se ve a continuación:
+Sería bueno hacer que la instrucción @code{double-box} fuera
+personalizable: aquí, los valores de relleno @code{box-padding}
+son fijos, y no se pueden cambiar por parte del usuario.  Además,
+sería mejor distinguir la separación entre los dos rectángulos,
+del relleno entre el rectángulo interno y el texto.  Así pues,
+introducimos una nueva propiedad, @code{inter-box-padding}, para
+el relleno entre los rectángulos.  El @code{box-padding} se usará
+para el relleno interno.  Ahora el código nuevo es como se ve a
+continuación:
 
 @lisp
 #(define-markup-command (double-box layout props text) (markup?)
@@ -1029,7 +1035,8 @@ Ahora el código nuevo es como se ve a continuación:
                @{ #text @} #@}))
 @end lisp
 
-De nuevo, la versión equivalente que utiliza la macro de marcado sería:
+De nuevo, la versión equivalente que utiliza la macro de marcado
+sería:
 
 @lisp
 #(define-markup-command (double-box layout props text) (markup?)
@@ -1041,19 +1048,20 @@ De nuevo, la versión equivalente que utiliza la macro de marcado sería:
             #:override `(box-padding . ,box-padding) #:box text)))
 @end lisp
 
-Aquí, la palabra clave @code{#:properties} se usa de manera que las
-propiedades @code{inter-box-padding} y @code{box-padding} se leen a
-partir del argumento @code{props}, y se les proporcionan unos valores
-predeterminados si las propiedades no están definidas.
+Aquí, la palabra clave @code{#:properties} se usa de manera que
+las propiedades @code{inter-box-padding} y @code{box-padding} se
+leen a partir del argumento @code{props}, y se les proporcionan
+unos valores predeterminados si las propiedades no están
+definidas.
 
 Después estos valores se usan para sobreescribir las propiedades
 @code{box-padding} usadas por las dos instrucciones @code{\box}.
 Observe el apóstrofo invertido y la coma en el argumento de
-@code{\override}: nos permiten introducir un valor de variable dentro
-de una expresión literal.
+@code{\override}: nos permiten introducir un valor de variable
+dentro de una expresión literal.
 
-Ahora, la instrucción se puede usar dentro de un elemento de marcado,
-y el relleno de los rectángulos se puede personalizar:
+Ahora, la instrucción se puede usar dentro de un elemento de
+marcado, y el relleno de los rectángulos se puede personalizar:
 
 @lilypond[quote,verbatim,ragged-right]
 #(define-markup-command (double-box layout props text) (markup?)
@@ -1075,15 +1083,15 @@ y el relleno de los rectángulos se puede personalizar:
 @unnumberedsubsubsec Adaptación de instrucciones incorporadas
 @translationof Adapting builtin commands
 
-Una buena manera de comenzar a escribir una instrucción de marcado
-nueva, es seguir el ejemplo de otra instrucción ya incorporada.  Casi
-todas las instrucciones de marcado que están incorporadas en LilyPond
-se pueden encontrar en el archivo
+Una buena manera de comenzar a escribir una instrucción de
+marcado nueva, es seguir el ejemplo de otra instrucción ya
+incorporada.  Casi todas las instrucciones de marcado que están
+incorporadas en LilyPond se pueden encontrar en el archivo
 @file{scm/define-markup-commands.scm}.
 
-Por ejemplo, querríamos adaptar la instrucción @code{\draw-line}, para
-que trace una línea doble.  La instrucción @code{\draw-line} está
-definida como sigue (se han suprimido los comentarios de
+Por ejemplo, querríamos adaptar la instrucción @code{\draw-line},
+para que trace una línea doble.  La instrucción @code{\draw-line}
+está definida como sigue (se han suprimido los comentarios de
 documentación):
 
 @lisp
@@ -1099,11 +1107,12 @@ documentación):
     (make-line-stencil th 0 0 x y)))
 @end lisp
 
-Para definir una instrucción nueva basada en otra existente, copie la
-definición y cámbiele el nombre.  La palabra clave @code{#:category}
-se puede eliminar sin miedo, pues sólo se utiliza para generar
-documentación de LilyPond, y no tiene ninguna utilidad para las
-instrucciones de marcado definidas por el usuario.
+Para definir una instrucción nueva basada en otra existente,
+copie la definición y cámbiele el nombre.  La palabra clave
+@code{#:category} se puede eliminar sin miedo, pues sólo se
+utiliza para generar documentación de LilyPond, y no tiene
+ninguna utilidad para las instrucciones de marcado definidas por
+el usuario.
 
 @lisp
 (define-markup-command (draw-double-line layout props dest)
@@ -1117,9 +1126,9 @@ instrucciones de marcado definidas por el usuario.
     (make-line-stencil th 0 0 x y)))
 @end lisp
 
-A continuación se añade una propiedad para establecer la separación
-entre las dos líneas, llamada @code{line-gap}, con un valor
-predeterminado de p.ej. 0.6:
+A continuación se añade una propiedad para establecer la
+separación entre las dos líneas, llamada @code{line-gap}, con un
+valor predeterminado de p.ej. 0.6:
 
 @lisp
 (define-markup-command (draw-double-line layout props dest)
@@ -1130,9 +1139,10 @@ predeterminado de p.ej. 0.6:
   @dots{}
 @end lisp
 
-Finalmente, se añade el código para trazar las dos líneas.  Se usan
-dos llamadas a @code{make-line-stencil} para trazar las líneas, y los
-sellos resultantes se combinan usando @code{ly:stencil-add}:
+Finalmente, se añade el código para trazar las dos líneas.  Se
+usan dos llamadas a @code{make-line-stencil} para trazar las
+líneas, y los sellos resultantes se combinan usando
+@code{ly:stencil-add}:
 
 @lilypond[quote,verbatim,ragged-right]
 #(define-markup-command (my-draw-line layout props dest)
@@ -1173,10 +1183,10 @@ Scheme @code{define-markup-list-command}, que es similar al macro
 instrucción de marcado nueva}, excepto que donde éste devuelve un
 sello único, aquél devuelve una lista de sellos.
 
-En el siguiente ejemplo se define una instrucción de lista de marcado
-@code{\paragraph}, que devuelve una lista de líneas justificadas,
-estando la primera de ellas sangrada.  La anchura del sangrado se toma
-del argumento @code{props}.
+En el siguiente ejemplo se define una instrucción de lista de
+marcado @code{\paragraph}, que devuelve una lista de líneas
+justificadas, estando la primera de ellas sangrada.  La anchura
+del sangrado se toma del argumento @code{props}.
 
 @example
 #(define-markup-list-command (paragraph layout props args) (markup-list?)
@@ -1196,22 +1206,24 @@ La versión que usa solamente Scheme es más compleja:
 @end example
 
 Aparte de los argumentos usuales @code{layout} y @code{props}, la
-instrucción de lista de marcados @code{paragraph} toma un argumento de
-lista de marcados, llamado @code{args}.  El predicado para listas de
-marcados es @code{markup-list?}.
-
-En primer lugar, la función toma el ancho del sangrado, una propiedad
-llamada aquí @code{par-indent}, de la lista de propiedades
-@code{props}.  Si no se encuentra la propiedad, el valor
-predeterminado es @code{2}.  Después, se hace una lista de líneas
-justificadas usando la instrucción incorporada de lista de marcados
-@code{\justified-lines}, que está relacionada con la función
-@code{make-justified-lines-markup-list}.  Se añade un espacio
-horizontal al principio usando @code{\hspace} (o la función
-@code{make-hspace-markup}).  Finalmente, la lista de marcados se
-interpreta usando la función @code{interpret-markup-list}.
-
-Esta nueva instrucción de lista de marcados se puede usar como sigue:
+instrucción de lista de marcados @code{paragraph} toma un
+argumento de lista de marcados, llamado @code{args}.  El
+predicado para listas de marcados es @code{markup-list?}.
+
+En primer lugar, la función toma el ancho del sangrado, una
+propiedad llamada aquí @code{par-indent}, de la lista de
+propiedades @code{props}.  Si no se encuentra la propiedad, el
+valor predeterminado es @code{2}.  Después, se hace una lista de
+líneas justificadas usando la instrucción incorporada de lista de
+marcados @code{\justified-lines}, que está relacionada con la
+función @code{make-justified-lines-markup-list}.  Se añade un
+espacio horizontal al principio usando @code{\hspace} (o la
+función @code{make-hspace-markup}).  Finalmente, la lista de
+marcados se interpreta usando la función
+@code{interpret-markup-list}.
+
+Esta nueva instrucción de lista de marcados se puede usar como
+sigue:
 
 @example
 \markuplist @{
@@ -1246,26 +1258,141 @@ Esta nueva instrucción de lista de marcados se puede usar como sigue:
 
 @cindex código, llamadas durante la interpretación
 @funindex \applyContext
+@funindex make-apply-context
+@funindex ly:context-property
+@funindex ly:context-set-property!
+@funindex ly:context-grob-definition
+@funindex ly:assoc-get
+@funindex ly:context-pushpop-property
 
-Se pueden modificar los contextos durante la interpretación con código
-de Scheme.  La sintaxis para esto es
+Se pueden modificar los contextos durante la interpretación con
+código de Scheme.  Dentro de un bloque de código de LilyPond, la
+sintaxis para esto es:
 
 @example
 \applyContext @var{función}
 @end example
 
-@code{@var{función}} debe ser una función de Scheme que toma un único
-argumento, que es el contexto al que aplicarla.  El código siguiente
-imprime el número del compás actual sobre la salida estándar durante
-la compilación:
+En código de Scheme, la sintaxis es:
 
 @example
-\applyContext
-  #(lambda (x)
-    (format #t "\nSe nos ha llamado en el compás número ~a.\n"
-     (ly:context-property x 'currentBarNumber)))
+(make-apply-context @var{function})
 @end example
 
+@code{@var{función}} debe ser una función de Scheme que toma un
+único argumento, que es el contexto al que aplicarla.  La función
+puede acceder a, así como sobreescribir u establecer propiedades
+de grobs s y propiedades de contextos.  Cualquier acción tomada
+por la función que dependa del estado del contexto, está limitada
+al estado del contexto @emph{en el momento de llamar a la
+función}.  Asimismo, los cambios efectuados por una llamada a
+@code{\applyContext} permanecen en efecto hasta que se modifican
+de nuevo directamente, o se revierten, incluso si han cambiado las
+condiciones iniciales sobre las que dependen.
+
+Las siguientes funciones de Scheme son útiles cuando se utiliza
+@code{\applyContext}:
+
+@table @code
+@item ly:context-property
+recuperar el valor de una propiedad de contexto
+
+@item ly:context-set-property!
+establecer el valor de una propiedad de contexto
+
+@item ly:context-grob-definition
+@itemx ly:assoc-get
+recuperar el valor de una propiedad de un grob
+
+@item ly:context-pushpop-property
+hacer una sobreescritura temporal
+(@code{\temporary@tie{}\override}) o una reversión
+(@code{\revert}) sobre una propiedad de un grob
+@end table
+
+El ejemplo siguiente recupera el valor actual de @code{fontSize},
+y a continuación lo dobla:
+
+@lilypond[quote,verbatim]
+doubleFontSize =
+\applyContext
+  #(lambda (context)
+     (let ((fontSize (ly:context-property context 'fontSize)))
+       (ly:context-set-property! context 'fontSize (+ fontSize 6))))
+
+{
+  \set fontSize = -3
+  b'4
+  \doubleFontSize
+  b'
+}
+@end lilypond
+
+
+El ejemplo siguiente recupera los colores actuales de los grobs
+@code{NoteHead}, @code{Stem} y @code{Beam}, y a continuación los
+modifica para que tengan un matiz menos saturado.
+
+@lilypond[quote,verbatim]
+desaturate =
+\applyContext
+  #(lambda (context)
+     (define (desaturate-grob grob)
+       (let* ((grob-def (ly:context-grob-definition context grob))
+              (color (ly:assoc-get 'color grob-def black))
+              (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color)))
+         (ly:context-pushpop-property context grob 'color new-color)))
+     (for-each desaturate-grob '(NoteHead Stem Beam)))
+
+\relative {
+  \time 3/4
+  g'8[ g] \desaturate g[ g] \desaturate g[ g]
+  \override NoteHead.color = #darkred
+  \override Stem.color = #darkred
+  \override Beam.color = #darkred
+  g[ g] \desaturate g[ g] \desaturate g[ g]
+}
+@end lilypond
+
+
+Esto puede implementarse también como una función musical, con el
+objeto de restringir las modificaciones a un único bloque de
+música.  Observe cómo se usa @code{ly:context-pushpop-property}
+tanto como una sobreescritura temporal
+(@code{\temporary@tie{}\override}) como una reversión
+(@code{\revert}):
+
+@lilypond[quote,verbatim]
+desaturate =
+#(define-music-function
+   (music) (ly:music?)
+   #{
+     \applyContext
+     #(lambda (context)
+        (define (desaturate-grob grob)
+          (let* ((grob-def (ly:context-grob-definition context grob))
+                 (color (ly:assoc-get 'color grob-def black))
+                 (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color)))
+            (ly:context-pushpop-property context grob 'color new-color)))
+        (for-each desaturate-grob '(NoteHead Stem Beam)))
+     #music
+     \applyContext
+     #(lambda (context)
+        (define (revert-color grob)
+          (ly:context-pushpop-property context grob 'color))
+        (for-each revert-color '(NoteHead Stem Beam)))
+   #})
+
+\relative {
+  \override NoteHead.color = #darkblue
+  \override Stem.color = #darkblue
+  \override Beam.color = #darkblue
+  g'8 a b c
+  \desaturate { d c b a }
+  g b d b g2
+}
+@end lilypond
+
 
 @node Ejecutar una función sobre todos los objetos de la presentación
 @subsection Ejecutar una función sobre todos los objetos de la presentación
@@ -1274,21 +1401,28 @@ la compilación:
 @cindex código, llamar sobre objetos de presentación
 @funindex \applyOutput
 
-
 La manera más versátil de realizar el ajuste fino de un objeto es
-@code{\applyOutput}, que
-funciona insertando un evento dentro del contexto especificado
-(@rinternals{ApplyOutputEvent}).  Su sintaxis es
+@code{\applyOutput}, que funciona insertando un evento dentro del
+contexto especificado (@rinternals{ApplyOutputEvent}).  Su
+sintaxis es o bien
 
 @example
 \applyOutput @var{Contexto} @var{proc}
 @end example
 
+o bien
+
+@example
+\applyOutput @var{Context}.@var{Grob} @var{proc}
+@end example
+
 @noindent
-donde @code{@var{proc}} es una función de Scheme que toma tres argumentos.
+donde @code{@var{proc}} es una función de Scheme que toma tres
+argumentos.
 
-Al interpretarse, la función @code{@var{proc}} se llama para cada objeto de
-presentación que se encuentra en el contexto @code{@var{Contexto}}
+Al interpretarse, la función @code{@var{proc}} se llama para cada
+objeto de presentación (con el nombre del grob @var{Grob} si se
+especifica) que se encuentra en el contexto @code{@var{Contexto}}
 en el tiempo actual, con los siguientes argumentos:
 
 @itemize
@@ -1300,30 +1434,30 @@ en el tiempo actual, con los siguientes argumentos:
 
 Además, la causa del objeto de presentación, es decir el objeto o
 expresión musical que es responsable de haberlo creado, está en la
-propiedad @code{cause} del objeto.  Por ejemplo, para la cabeza de una
-nota, éste es un evento @rinternals{NoteHead}, y para un objeto
-plica, éste es un objeto @rinternals{Stem}.
+propiedad @code{cause} del objeto.  Por ejemplo, para la cabeza de
+una nota, éste es un evento @rinternals{NoteHead}, y para un
+objeto plica, éste es un objeto @rinternals{Stem}.
 
 He aquí una función que usar para @code{\applyOutput}; borra las
-cabezas de las notas que están sobre la línea central y junto a ella:
+cabezas de las notas que están sobre la línea central y junto a
+ella:
 
 @lilypond[quote,verbatim,ragged-right]
 #(define (blanker grob grob-origin context)
-   (if (and (memq 'note-head-interface (ly:grob-interfaces grob))
-            (< (abs (ly:grob-property grob 'staff-position)) 2))
+   (if (< (abs (ly:grob-property grob 'staff-position)) 2)
        (set! (ly:grob-property grob 'transparent) #t)))
 
 \relative {
-  a'4 e8 <<\applyOutput Voice #blanker a c d>> b2
+  a'4 e8 <<\applyOutput Voice.NoteHead #blanker a c d>> b2
 }
 @end lilypond
 
-Para que @var{función} se interprete en los niveles de @code{Score} o de @code{Staff}
-utilice estas formas:
+Para que @var{función} se interprete en los niveles de
+@code{Score} o de @code{Staff} utilice estas formas:
 
 @example
-\applyOutput Score #@var{función}
-\applyOutput Staff #@var{función}
+\applyOutput Score@dots{}
+\applyOutput Staff@dots{}
 @end example
 
 
@@ -1332,14 +1466,15 @@ utilice estas formas:
 @translationof Callback functions
 
 Las propiedades (como @code{thickness} (grosor), @code{direction}
-(dirección), etc.) se pueden establecer a valores fijos con \override,
-p. ej.:
+(dirección), etc.) se pueden establecer a valores fijos con
+\override, p. ej.:
 
 @example
 \override Stem.thickness = #2.0
 @end example
 
-Las propiedades pueden fijarse también a un procedimiento de Scheme,
+Las propiedades pueden fijarse también a un procedimiento de
+Scheme:
 
 @lilypond[fragment,verbatim,quote]
 \override Stem.thickness = #(lambda (grob)
@@ -1350,8 +1485,8 @@ Las propiedades pueden fijarse también a un procedimiento de Scheme,
 @end lilypond
 
 @noindent
-En este caso, el procedimiento se ejecuta tan pronto como el valor de
-la propiedad se reclama durante el proceso de formateo.
+En este caso, el procedimiento se ejecuta tan pronto como el valor
+de la propiedad se reclama durante el proceso de formateo.
 
 Casi todo el motor de tipografiado está manejado por estos
 @emph{callbacks}.  Entre las propiedades que usan normalmente
@@ -1366,8 +1501,8 @@ Casi todo el motor de tipografiado está manejado por estos
   La rutina que calcula la anchura de un objeto
 @end table
 
-El procedimiento siempre toma un argumento único, que es el grob (el
-objeto gráfico).
+El procedimiento siempre toma un argumento único, que es el grob
+(el objeto gráfico).
 
 Dicho procedimiento puede acceder al valor usual de la propiedad,
 llamando en primer lugar a la función que es el @q{callback} usual
@@ -1383,41 +1518,6 @@ interna o en el archivo 'define-grobs.scm':
 @}
 @end example
 
-Si se deben llamar rutinas con varios argumentos, el grob actual se
-puede insertar con una cerradura de grob.  He aquí un ajuste
-procedente de @code{AccidentalSuggestion},
-
-@example
-`(X-offset .
-  ,(ly:make-simple-closure
-    `(,+
-        ,(ly:make-simple-closure
-           (list ly:self-alignment-interface::centered-on-x-parent))
-      ,(ly:make-simple-closure
-           (list ly:self-alignment-interface::x-aligned-on-self)))))
-@end example
-
-@noindent
-En este ejemplo, tanto
-@code{ly:self-alignment-interface::x-aligned-on-self} como
-@code{ly:self-alignment-interface::centered-on-x-parent} se llaman con
-el grob como argumento.  El resultado se añade con la función
-@code{+}.  Para asegurar que esta adición se ejecuta adecuadamente,
-todo ello se encierra dentro de @code{ly:make-simple-closure}.
-
-De hecho, usar un solo procedimiento como valor de una propiedad
-equivale a
-
-@example
-(ly:make-simple-closure (ly:make-simple-closure (list @var{proc})))
-@end example
-
-@noindent
-El @code{ly:make-simple-closure} interior aporta el grob como
-argumento de @var{proc}, el exterior asegura que el resultado de la
-función es lo que se devuelve, en lugar del objeto
-@code{simple-closure}.
-
 Desde dentro de un callback, el método más fácil para evaluar un
 elemento de marcado es usar grob-interpret-markup.  Por ejemplo:
 
@@ -1426,10 +1526,17 @@ mi-callback = #(lambda (grob)
                  (grob-interpret-markup grob (markup "fulanito")))
 @end example
 
+@ignore
+
+@n ode Código de Scheme en línea
+@s ection Código de Scheme en línea
+@t ranslationof Inline Scheme code
+
+TODO: after this section had been written, LilyPond has improved
+to the point that finding a @emph{simple} example where one would
+@emph{have} to revert to Scheme has become rather hard.
 
-@node Código de Scheme en línea
-@section Código de Scheme en línea
-@translationof Inline Scheme code
+Until this section gets a rewrite, let's pretend we don't know.
 
 La principal desventaja de @code{\tweak} es su inflexibilidad
 sintáctica.  Por ejemplo, lo siguiente produce un error de sintaxis (o
@@ -1471,6 +1578,8 @@ función de Scheme @code{acons}, y finalmente el resultado se escribe
 de nuevo con @code{set!}.  El último elemento del bloque @code{let} es
 el valor de retorno, el propio @code{m}.
 
+@end ignore
+
 
 @node Trucos difíciles
 @section Trucos difíciles
@@ -1483,18 +1592,19 @@ Hay un cierto número de tipos de ajustes difíciles.
 
 @item
 Un tipo de ajuste difícil es la apariencia de los objetos de
-extensión, como las ligaduras de expresión y de unión.  Inicialmente,
-sólo se crea uno de estos objetos, y pueden ajustarse con el mecanismo
-normal.  Sin embargo, en ciertos casos los objetos extensores cruzan
-los saltos de línea.  Si esto ocurre, estos objetos se clonan.  Se
-crea un objeto distinto por cada sistema en que se encuentra.  Éstos
-son clones del objeto original y heredan todas sus propiedades,
-incluidos los @code{\override}s.
+extensión, como las ligaduras de expresión y de unión.
+Inicialmente, sólo se crea uno de estos objetos, y pueden
+ajustarse con el mecanismo normal.  Sin embargo, en ciertos casos
+los objetos extensores cruzan los saltos de línea.  Si esto
+ocurre, estos objetos se clonan.  Se crea un objeto distinto por
+cada sistema en que se encuentra.  Éstos son clones del objeto
+original y heredan todas sus propiedades, incluidos los
+@code{\override}s.
 
 En otras palabras, un @code{\override} siempre afecta a todas las
-piezas de un objeto de extensión fragmentado.  Para cambiar sólo una
-parte de un extensor en el salto de línea, es necesario inmiscuirse en
-el proceso de formateado.  El @emph{callback}
+piezas de un objeto de extensión fragmentado.  Para cambiar sólo
+una parte de un extensor en el salto de línea, es necesario
+inmiscuirse en el proceso de formateado.  El @emph{callback}
 @code{after-line-breaking} contiene el procedimiento Scheme que se
 llama después de que se han determinado los saltos de línea, y los
 objetos de presentación han sido divididos sobre los distintos
@@ -1514,9 +1624,9 @@ comprueba si somos el último de los objetos divididos
 en caso afirmativo, establece @code{extra-offset}.
 @end itemize
 
-Este procedimiento se instala en @rinternals{Tie} (ligadura de unión),
-de forma que la última parte de la ligadura dividida se traslada hacia
-arriba.
+Este procedimiento se instala en @rinternals{Tie} (ligadura de
+unión), de forma que la última parte de la ligadura dividida se
+traslada hacia arriba.
 
 @lilypond[quote,verbatim,ragged-right]
 #(define (my-callback grob)
@@ -1543,8 +1653,8 @@ arriba.
 
 @noindent
 Al aplicar este truco, la nueva función de callback
-@code{after-line-breaking} también debe llamar a la antigua,
-si existe este valor predeterminado.  Por ejemplo, si se usa con
+@code{after-line-breaking} también debe llamar a la antigua, si
+existe este valor predeterminado.  Por ejemplo, si se usa con
 @code{Hairpin}, se debe llamar también a
 @code{ly:spanner::kill-zero-spanned-time}.
 
@@ -1552,8 +1662,8 @@ si existe este valor predeterminado.  Por ejemplo, si se usa con
 @item Algunos objetos no se pueden cambiar con @code{\override} por
 razones técnicas.  Son ejemplos @code{NonMusicalPaperColumn} y
 @code{PaperColumn}.  Se pueden cambiar con la función
-@code{\overrideProperty} que funciona de forma similar a @code{\once
-\override}, pero usa una sintaxis distinta.
+@code{\overrideProperty} que funciona de forma similar a
+@code{\once \override}, pero usa una sintaxis distinta.
 
 @example
 \overrideProperty
index 6483a5b75e1fe865f87f7fd7c6de05a2f7a6ae3c..ba196bca6159ae26a7cb330e3e3b6cc4bdd69b3d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 743dc7b27888c776186336cf4b330d3ebfc821de
+    Translation of GIT committish: bfd8ed4084a441d9ac65b1b088f3b54f31ae40c6
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @cindex evaluar Scheme
 @cindex LISP
 
-LilyPond utiliza el lenguaje de programación Scheme, tanto como parte
-de la sintaxis del código de entrada, como para servir de mecanismo
-interno que une los módulos del programa entre sí.  Esta sección es
-una panorámica muy breve sobre cómo introducir datos en Scheme.  Si
-quiere saber más sobre Scheme, consulte
+LilyPond utiliza el lenguaje de programación Scheme, tanto como
+parte de la sintaxis del código de entrada, como para servir de
+mecanismo interno que une los módulos del programa entre sí.  Esta
+sección es una panorámica muy breve sobre cómo introducir datos en
+Scheme.  Si quiere saber más sobre Scheme, consulte
 @uref{http://@/www@/.schemers@/.org}.
 
 LilyPond utiliza la implementación GNU Guile de Scheme, que está
 basada en el estándar @qq{R5RS} del lenguaje.  Si está aprendiendo
 Scheme para usarlo con LilyPond, no se recomienda trabajar con una
-implementación distinta (o que se refiera a un estándar diferente).
-Hay información sobre Guile en
+implementación distinta (o que se refiera a un estándar
+diferente).  Hay información sobre Guile en
 @uref{http://www.gnu.org/software/guile/}.  El estándar de Scheme
 @qq{R5RS} se encuentra en
 @uref{http://www.schemers.org/Documents/Standards/R5RS/}.
@@ -48,10 +48,10 @@ Hay información sobre Guile en
 @translationof Introduction to Scheme
 
 Comenzaremos con una introducción a Scheme.  Para esta breve
-introducción utilizaremos el intérprete GUILE para explorar la manera
-en que el lenguaje funciona.  Una vez nos hayamos familiarizado con
-Scheme, mostraremos cómo se puede integrar el lenguaje en los archivos
-de LilyPond.
+introducción utilizaremos el intérprete GUILE para explorar la
+manera en que el lenguaje funciona.  Una vez nos hayamos
+familiarizado con Scheme, mostraremos cómo se puede integrar el
+lenguaje en los archivos de LilyPond.
 
 
 @menu
@@ -69,19 +69,20 @@ de LilyPond.
 @translationof Scheme sandbox
 
 La instalación de LilyPond incluye también la de la implementación
-Guile de Scheme.  Sobre casi todos los sistemas puede experimentar en
-una @qq{caja de arena} de Scheme abriendo una ventana del terminal y
-tecleando @q{guile}.  En algunos sistemas, sobre todo en Windows,
-podría necesitar ajustar la variable de entorno @code{GUILE_LOAD_PATH}
-a la carpeta @code{../usr/share/guile/1.8} dentro de la instalación de
-LilyPond (para conocer la ruta completa a esta carpeta, consulte
+Guile de Scheme.  Sobre casi todos los sistemas puede experimentar
+en una @qq{caja de arena} de Scheme abriendo una ventana del
+terminal y tecleando @q{guile}.  En algunos sistemas, sobre todo
+en Windows, podría necesitar ajustar la variable de entorno
+@code{GUILE_LOAD_PATH} a la carpeta @code{../usr/share/guile/1.8}
+dentro de la instalación de LilyPond (para conocer la ruta
+completa a esta carpeta, consulte
 @rlearning{Otras fuentes de información}).  Como alternativa, los
-usuarios de Windows pueden seleccionar simplemente @q{Ejecutar} del
-menú Inicio e introducir @q{guile}.
+usuarios de Windows pueden seleccionar simplemente @q{Ejecutar}
+del menú Inicio e introducir @q{guile}.
 
-Sin embargo, está disponible un cajón de arena de Scheme listo para
-funcionar con todo LilyPond cargado, con esta instrucción de la línea
-de órdenes:
+Sin embargo, está disponible un cajón de arena de Scheme listo
+para funcionar con todo LilyPond cargado, con esta instrucción de
+la línea de órdenes:
 @example
 lilypond scheme-sandbox
 @end example
@@ -95,19 +96,19 @@ guile>
 @end lisp
 
 Podemos introducir expresiones de Scheme en este indicador para
-experimentar con Scheme.  Si quiere usar la biblioteca readline de GNU
-para una más cómoda edición de la línea de órdenes de Scheme, consulte
-el archivo @file{ly/scheme-sandbox.ly} para más información.  Si ya ha
-activado la biblioteca readline para las sesiones de Guile
-interactivas fuera de LilyPond, debería funcionar también en el cajón
-de arena.
+experimentar con Scheme.  Si quiere usar la biblioteca readline de
+GNU para una más cómoda edición de la línea de órdenes de Scheme,
+consulte el archivo @file{ly/scheme-sandbox.ly} para más
+información.  Si ya ha activado la biblioteca readline para las
+sesiones de Guile interactivas fuera de LilyPond, debería
+funcionar también en el cajón de arena.
 
 @node Variables de Scheme
 @subsection Variables de Scheme
 @translationof Scheme variables
 
-Las variables de Scheme pueden tener cualquier valor válido de Scheme,
-incluso un procedimiento de Scheme.
+Las variables de Scheme pueden tener cualquier valor válido de
+Scheme, incluso un procedimiento de Scheme.
 
 Las variables de Scheme se crean con @code{define}:
 
@@ -116,8 +117,8 @@ guile> (define a 2)
 guile>
 @end lisp
 
-Las variables de Scheme se pueden evaluar en el indicador del sistema
-de guile, simplemente tecleando el nombre de la variable:
+Las variables de Scheme se pueden evaluar en el indicador del
+sistema de guile, simplemente tecleando el nombre de la variable:
 
 @lisp
 guile> a
@@ -125,8 +126,8 @@ guile> a
 guile>
 @end lisp
 
-Las variables de Scheme se pueden imprimir en la pantalla utilizando
-la función display:
+Las variables de Scheme se pueden imprimir en la pantalla
+utilizando la función display:
 
 @lisp
 guile> (display a)
@@ -134,9 +135,10 @@ guile> (display a)
 @end lisp
 
 @noindent
-Observe que el valor @code{2} y el indicador del sistema @code{guile}
-se muestran en la misma línea.  Esto se puede evitar llamando al
-procedimiento de nueva línea o imprimiendo un carácter de nueva línea.
+Observe que el valor @code{2} y el indicador del sistema
+@code{guile} se muestran en la misma línea.  Esto se puede evitar
+llamando al procedimiento de nueva línea o imprimiendo un carácter
+de nueva línea.
 
 @lisp
 guile> (display a)(newline)
@@ -146,8 +148,8 @@ guile> (display a)(display "\n")
 guile>
 @end lisp
 
-Una vez que se ha creado una variable, su valor se puede modificar con
-@code{set!}:
+Una vez que se ha creado una variable, su valor se puede modificar
+con @code{set!}:
 
 @lisp
 guile> (set! a 12345)
@@ -160,9 +162,10 @@ guile>
 @subsection Tipos de datos simples de Scheme
 @translationof Scheme simple data types
 
-El concepto más básico de un lenguaje son sus tipos de datos: números,
-cadenas de caracteres, listas, etc.  He aquí una lista de los tipos de
-datos que son de relevancia respecto de la entrada de LilyPond.
+El concepto más básico de un lenguaje son sus tipos de datos:
+números, cadenas de caracteres, listas, etc.  He aquí una lista de
+los tipos de datos que son de relevancia respecto de la entrada de
+LilyPond.
 
 @table @asis
 @item Booleanos
@@ -173,8 +176,8 @@ Los valores Booleanos son Verdadero y Falso.  Verdadero en Scheme es
 
 @item Números
 Los números se escriben de la forma normal, @code{1} es el número
-(entero) uno, mientras que @w{@code{-1.5}} es un número en coma flotante
-(un número no entero).
+(entero) uno, mientras que @w{@code{-1.5}} es un número en coma
+flotante (un número no entero).
 
 @item Cadenas
 Las cadenas se encierran entre comillas:
@@ -192,8 +195,8 @@ una cadena"
 @end example
 
 @noindent
-y los caracteres de nueva línea al final de cada línea se incluirán
-dentro de la cadena.
+y los caracteres de nueva línea al final de cada línea se
+incluirán dentro de la cadena.
 
 Los caracteres de nueva línea también se pueden añadir mediante la
 inclusión de @code{\n} en la cadena.
@@ -204,8 +207,8 @@ inclusión de @code{\n} en la cadena.
 
 
 Las comillas dobles y barras invertidas se añaden a las cadenas
-precediéndolas de una barra invertida.  La cadena @code{\a dijo "b"}
-se introduce como
+precediéndolas de una barra invertida.  La cadena @code{\a dijo
+"b"} se introduce como
 
 @example
 "\\a dijo \"b\""
@@ -213,17 +216,18 @@ se introduce como
 
 @end table
 
-Existen más tipos de datos de Scheme que no se estudian aquí.  Para
-ver un listado completo, consulte la guía de referencia de Guile,
+Existen más tipos de datos de Scheme que no se estudian aquí.
+Para ver un listado completo, consulte la guía de referencia de
+Guile,
 @uref{http://www.gnu.org/software/guile/manual/html_node/Simple-Data-Types.html}.
 
 @node Tipos de datos compuestos de Scheme
 @subsection Tipos de datos compuestos de Scheme
 @translationof Scheme compound data types
 
-También existen tipos de datos compuestos en Scheme.  Entre los tipos
-más usados en la programación de LilyPond se encuentran las parejas,
-las listas, las listas-A y las tablas de hash.
+También existen tipos de datos compuestos en Scheme.  Entre los
+tipos más usados en la programación de LilyPond se encuentran las
+parejas, las listas, las listas-A y las tablas de hash.
 
 @menu
 * Parejas::
@@ -236,10 +240,10 @@ las listas, las listas-A y las tablas de hash.
 @unnumberedsubsubsec Parejas
 @translationof Pairs
 
-El tipo fundacional de datos compuestos de Scheme es la @code{pareja}.
-Como se espera por su nombre, una pareja son dos valores unidos en uno
-solo.  El operador que se usa para formar una pareja se llama
-@code{cons}.
+El tipo fundacional de datos compuestos de Scheme es la
+@code{pareja}.  Como se espera por su nombre, una pareja son dos
+valores unidos en uno solo.  El operador que se usa para formar
+una pareja se llama @code{cons}.
 
 @lisp
 guile> (cons 4 5)
@@ -261,8 +265,8 @@ guile> '(4 . 5)
 guile>
 @end lisp
 
-Los dos elementos de una pareja pueden ser cualquier valor válido de
-Scheme:
+Los dos elementos de una pareja pueden ser cualquier valor válido
+de Scheme:
 
 @lisp
 guile> (cons #t #f)
@@ -272,8 +276,9 @@ guile> '("bla-bla" . 3.1415926535)
 guile>
 @end lisp
 
-Se puede accede al primero y segundo elementos de la pareja mediante
-los procedimientos de Scheme @code{car} y @code{cdr}, respectivamente.
+Se puede accede al primero y segundo elementos de la pareja
+mediante los procedimientos de Scheme @code{car} y @code{cdr},
+respectivamente.
 
 @lisp
 guile> (define mipareja (cons 123 "Hola")
@@ -295,34 +300,38 @@ véase
 @unnumberedsubsubsec Listas
 @translationof Lists
 
-Una estructura de datos muy común en Scheme es la @emph{lista}.
-Formalmente, una lista se define como la lista vacía (representada
-como @code{'()}, o bien como una pareja cuyo @code{cdr} es una lista.
+Una estructura de datos muy común en Scheme es la
+@emph{lista}. Formalmente, una lista @q{bien hecha} se define como
+la lista vacía, representada como @code{'()} y con longitud cero,
+o bien como una pareja cuyo @code{cdr} es a su vez una lista más
+corta.
 
-Existen muchas formas de crear listas.  Quizá la más común es con el
-procedimiento @code{list}:
+Existen muchas formas de crear listas.  Quizá la más común es con
+el procedimiento @code{list}:
 
 @lisp
 guile> (list 1 2 3 "abc" 17.5)
 (1 2 3 "abc" 17.5)
 @end lisp
 
-Como se ve, una lista se imprime en la forma de elementos individuales
-separados por espacios y encerradas entre paréntesis.  A diferencia de
-las parejas, no hay ningún punto entre los elementos.
+Como se ve, una lista se imprime en la forma de elementos
+individuales separados por espacios y encerradas entre paréntesis.
+A diferencia de las parejas, no hay ningún punto entre los
+elementos.
 
-También se puede escribir una lista como una lista literal encerrando
-sus elementos entre paréntesis y añadiendo un apóstrofo:
+También se puede escribir una lista como una lista literal
+encerrando sus elementos entre paréntesis y añadiendo un
+apóstrofo:
 
 @lisp
 guile> '(17 23 "fulano" "mengano" "zutano")
 (17 23 "fulano" "mengano" "zutano")
 @end lisp
 
-Las listas son una parte fundamental de Scheme.  De hecho, Scheme se
-considera un dialecto de Lisp, donde @q{lisp} es una abreviatura de
-@q{List Processing} (proceso de listas).  Todas las expresiones de
-Scheme son listas.
+Las listas son una parte fundamental de Scheme.  De hecho, Scheme
+se considera un dialecto de Lisp, donde @q{lisp} es una
+abreviatura de @q{List Processing} (proceso de listas).  Todas las
+expresiones de Scheme son listas.
 
 
 @node Listas asociativas (listas-A)
@@ -330,14 +339,14 @@ Scheme son listas.
 @translationof Association lists (alists)
 
 Un tipo especial de listas son las @emph{listas asociativas} o
-@emph{listas-A}.  Se puede usar una lista-A para almacenar datos para
-su fácil recuperación posterior.
+@emph{listas-A}.  Se puede usar una lista-A para almacenar datos
+para su fácil recuperación posterior.
 
-Las listas-A son listas cuyos elementos son parejas.  El @code{car} de
-cada elemento se llama @emph{clave}, y el @code{cdr} de cada elemento
-se llama @emph{valor}.  El procedimiento de Scheme @code{assoc} se usa
-para recuperar un elemento de la lista-A, y @code{cdr} se usa para
-recuperar el valor:
+Las listas-A son listas cuyos elementos son parejas.  El
+@code{car} de cada elemento se llama @emph{clave}, y el @code{cdr}
+de cada elemento se llama @emph{valor}.  El procedimiento de
+Scheme @code{assoc} se usa para recuperar un elemento de la
+lista-A, y @code{cdr} se usa para recuperar el valor:
 
 @lisp
 guile> (define mi-lista-a '((1  . "A") (2 . "B") (3 . "C")))
@@ -350,21 +359,22 @@ guile> (cdr (assoc 2 mi-lista-a))
 guile>
 @end lisp
 
-Las listas-A se usan mucho en LilyPond para almacenar propiedades y
-otros datos.
+Las listas-A se usan mucho en LilyPond para almacenar propiedades
+otros datos.
 
 
 @node Tablas de hash
 @unnumberedsubsubsec Tablas de hash
 @translationof Hash tables
 
-Estructuras de datos que se utilizan en LilyPond de forma ocasional.
-Una tabla de hash es similar a una matriz, pero los índices de la
-matriz pueden ser cualquier tipo de valor de Scheme, no sólo enteros.
+Estructuras de datos que se utilizan en LilyPond de forma
+ocasional.  Una tabla de hash es similar a una matriz, pero los
+índices de la matriz pueden ser cualquier tipo de valor de Scheme,
+no sólo enteros.
 
-Las tablas de hash son más eficientes que las listas-A si hay una gran
-cantidad de datos que almacenar y los datos cambian con muy poca
-frecuencia.
+Las tablas de hash son más eficientes que las listas-A si hay una
+gran cantidad de datos que almacenar y los datos cambian con muy
+poca frecuencia.
 
 La sintaxis para crear tablas de hash es un poco compleja, pero
 veremos ejemplos de ello en el código fuente de LilyPond.
@@ -393,8 +403,8 @@ guile>
 @end lisp
 
 Las claves y los valores se recuperan como una pareja con
-@code{hashq-get-handle}.  Ésta es la forma preferida, porque devuelve
-@code{#f} si no se encuentra la clave.
+@code{hashq-get-handle}.  Ésta es la forma preferida, porque
+devuelve @code{#f} si no se encuentra la clave.
 
 @lisp
 guile> (hashq-get-handle h 'key1)
@@ -429,16 +439,16 @@ símbolos, una lista de símbolos y una lista de listas respectivamente:
 @end ignore
 
 Scheme se puede usar para hacer cálculos.  Utiliza sintaxis
-@emph{prefija}.  Sumar 1 y@tie{}2 se escribe como @code{(+ 1 2)} y no
-como el tradicional @math{1+2}.
+@emph{prefija}.  Sumar 1 y@tie{}2 se escribe como @code{(+ 1 2)} y
+no como el tradicional @math{1+2}.
 
 @lisp
 guile> (+ 1 2)
 3
 @end lisp
 
-Los cálculos se pueden anidar; el resultado de una función se puede
-usar para otro cálculo.
+Los cálculos se pueden anidar; el resultado de una función se
+puede usar para otro cálculo.
 
 @lisp
 guile> (+ 1 (* 3 4))
@@ -448,9 +458,10 @@ guile> (+ 1 (* 3 4))
 Estos cálculos son ejemplos de evaluaciones; una expresión como
 @code{(* 3 4)} se sustituye por su valor @code{12}.
 
-Los cálculos de Scheme son sensibles a las diferencias entre enteros y
-no enteros.  Los cálculos enteros son exactos, mientras que los no
-enteros se calculan con los límites de precisión adecuados:
+Los cálculos de Scheme son sensibles a las diferencias entre
+enteros y no enteros.  Los cálculos enteros son exactos, mientras
+que los no enteros se calculan con los límites de precisión
+adecuados:
 
 @lisp
 guile> (/ 7 3)
@@ -460,13 +471,13 @@ guile> (/ 7.0 3.0)
 @end lisp
 
 Cuando el intérprete de Scheme encuentra una expresión que es una
-lista, el primer elemento de la lista se trata como un procedimiento a
-evaluar con los argumentos del resto de la lista.  Por tanto, todos
-los operadores en Scheme son operadores prefijos.
+lista, el primer elemento de la lista se trata como un
+procedimiento a evaluar con los argumentos del resto de la lista.
+Por tanto, todos los operadores en Scheme son operadores prefijos.
 
-Si el primer elemento de una expresión de Scheme que es una lista que
-se pasa al intérprete @emph{no es} un operador o un procedimiento, se
-produce un error:
+Si el primer elemento de una expresión de Scheme que es una lista
+que se pasa al intérprete @emph{no es} un operador o un
+procedimiento, se produce un error:
 
 @lisp
 guile> (1 2 3)
@@ -481,13 +492,13 @@ ABORT: (misc-error)
 guile>
 @end lisp
 
-Aquí podemos ver que el intérprete estaba intentando tratar el 1 como
-un operador o procedimiento, y no pudo hacerlo.  De aquí que el error
-sea "Wrong type to apply: 1".
+Aquí podemos ver que el intérprete estaba intentando tratar el 1
+como un operador o procedimiento, y no pudo hacerlo.  De aquí que
+el error sea "Wrong type to apply: 1".
 
-Así pues, para crear una lista debemos usar el operador de lista, o
-podemos precederla de un apóstrofo para que el intérprete no trate de
-evaluarla.
+Así pues, para crear una lista debemos usar el operador de lista,
+o podemos precederla de un apóstrofo para que el intérprete no
+trate de evaluarla.
 
 @lisp
 guile> (list 1 2 3)
@@ -497,8 +508,8 @@ guile> '(1 2 3)
 guile>
 @end lisp
 
-Esto es un error que puede aparecer cuando trabaje con Scheme dentro
-de LilyPond.
+Esto es un error que puede aparecer cuando trabaje con Scheme
+dentro de LilyPond.
 
 @ignore
 La misma asignación se puede hacer también completamente en Scheme,
@@ -529,8 +540,8 @@ nombre @code{veintiCuatro}.
 @subsection Procedimientos de Scheme
 @translationof Scheme procedures
 
-Los procedimientos de Scheme son expresiones de Scheme ejecutables que
-devuelven un valor resultante de su ejecución.  También pueden
+Los procedimientos de Scheme son expresiones de Scheme ejecutables
+que devuelven un valor resultante de su ejecución.  También pueden
 manipular variables definidas fuera del procedimiento.
 
 @menu
@@ -550,7 +561,8 @@ Los procedimientos se definen en Scheme con @code{define}:
  expresión-de-scheme-que-devuelve-un-valor)
 @end example
 
-Por ejemplo, podemos definir un procedimiento para calcular la media:
+Por ejemplo, podemos definir un procedimiento para calcular la
+media:
 
 @lisp
 guile> (define (media x y) (/ (+ x y) 2))
@@ -558,9 +570,9 @@ guile> media
 #<procedure media (x y)>
 @end lisp
 
-Una vez se ha definido un procedimiento, se llama poniendo el nombre
-del procedimiento dentro de una lista.  Por ejemplo, podemos calcular
-la media de 3 y 12:
+Una vez se ha definido un procedimiento, se llama poniendo el
+nombre del procedimiento dentro de una lista.  Por ejemplo,
+podemos calcular la media de 3 y 12:
 
 @lisp
 guile> (media 3 12)
@@ -572,9 +584,10 @@ guile> (media 3 12)
 @unnumberedsubsubsec Predicados
 @translationof Predicates
 
-Los procedimientos de Scheme que devuelven valores booleanos se suelen
-llamar @emph{predicados}.  Por convenio (pero no por necesidad),
-los nombres de predicados acaban en un signo de interrogación:
+Los procedimientos de Scheme que devuelven valores booleanos se
+suelen llamar @emph{predicados}.  Por convenio (pero no por
+necesidad), los nombres de predicados acaban en un signo de
+interrogación:
 
 @lisp
 guile> (define (menor-que-diez? x) (< x 10))
@@ -589,28 +602,29 @@ guile> (menor-que-diez? 15)
 @unnumberedsubsubsec Valores de retorno
 @translationof Return values
 
-Los procedimientos de Scheme siempre devuelven un valor de retorno,
-que es el valor de la última expresión ejecutada en el procedimiento.
-El valor de retorno puede ser cualquier valor de Scheme válido,
-incluso una estructura de datos compleja o un procedimiento.
+Los procedimientos de Scheme siempre devuelven un valor de
+retorno, que es el valor de la última expresión ejecutada en el
+procedimiento.  El valor de retorno puede ser cualquier valor de
+Scheme válido, incluso una estructura de datos compleja o un
+procedimiento.
 
-A veces, el usuario quiere tener varias expresiones de Scheme dentro
-de un procedimiento.  Existen dos formas en que se pueden combinar
-distintas expresiones.  La primera es el procedimiento @code{begin},
-que permite evaluar varias expresiones, y devuelve el valor de la
-última expresión.
+A veces, el usuario quiere tener varias expresiones de Scheme
+dentro de un procedimiento.  Existen dos formas en que se pueden
+combinar distintas expresiones.  La primera es el procedimiento
+@code{begin}, que permite evaluar varias expresiones, y devuelve
+el valor de la última expresión.
 
 @lisp
 guile> (begin (+ 1 2) (- 5 8) (* 2 2))
 4
 @end lisp
 
-La segunda forma de combinar varias expresiones es dentro de un bloque
-@code{let}.  Dentro de un bloque let, se crean una serie de ligaduras
-o asignaciones, y después se evalúa una secuencia de expresiones que
-pueden incluir esas ligaduras o asignaciones.  El valor de retorno del
-bloque let es el valor de retorno de la última sentencia del bloque
-let:
+La segunda forma de combinar varias expresiones es dentro de un
+bloque @code{let}.  Dentro de un bloque let, se crean una serie de
+ligaduras o asignaciones, y después se evalúa una secuencia de
+expresiones que pueden incluir esas ligaduras o asignaciones.  El
+valor de retorno del bloque let es el valor de retorno de la
+última sentencia del bloque let:
 
 @lisp
 guile> (let ((x 2) (y 3) (z 4)) (display (+ x y)) (display (- z 4))
@@ -641,8 +655,8 @@ Scheme tiene un procedimiento @code{if}:
 @var{expresión-de-prueba} es una expresión que devuelve un valor
 booleano.  Si @var{expresión-de-prueba} devuelve @code{#t}, el
 procedimiento @code{if} devuelve el valor de la
-@var{expresión-de-cierto}, en caso contrario devuelve el valor de la
-@var{expresión-de-falso}.
+@var{expresión-de-cierto}, en caso contrario devuelve el valor de
+la @var{expresión-de-falso}.
 
 @lisp
 guile> (define a 3)
@@ -696,105 +710,112 @@ guile> (cond ((< a b) "a es menor que b")
 @funindex $
 @funindex #
 
-El intérprete Guile forma parte de LilyPond, lo que significa que se
-puede incluir Scheme dentro de los archivos de entrada de LilyPond.
-Existen varios métodos para incluir Scheme dentro de LilyPond.
+El intérprete Guile forma parte de LilyPond, lo que significa que
+se puede incluir Scheme dentro de los archivos de entrada de
+LilyPond.  Existen varios métodos para incluir Scheme dentro de
+LilyPond.
 
 La manera más sencilla es utilizar el símbolo de
 almohadilla@tie{}@code{#} antes de una expresión de Scheme.
 
 Ahora bien, el código de entrada de LilyPond se estructura en
-elementos y expresiones, de forma parecida a cómo el lenguaje humano
-se estructura en palabras y frases.  LilyPond tiene un analizador
-léxico que reconoce elementos indivisibles (números literales, cadenas
-de texto, elementos de Scheme, nombres de nota, etc.), y un analizador
-que entiende la sintaxis, la Gramática de LilyPond (@rcontrib{LilyPond grammar}).
-Una vez que sabe que se aplica una regla sintáctica concreta, ejecuta
-las acciones asociadas con ella.
+elementos y expresiones, de forma parecida a cómo el lenguaje
+humano se estructura en palabras y frases.  LilyPond tiene un
+analizador léxico que reconoce elementos indivisibles (números
+literales, cadenas de texto, elementos de Scheme, nombres de nota,
+etc.), y un analizador que entiende la sintaxis, la Gramática de
+LilyPond (@rcontrib{LilyPond grammar}).  Una vez que sabe que se
+aplica una regla sintáctica concreta, ejecuta las acciones
+asociadas con ella.
 
 El método del símbolo de almohadilla@tie{}@code{#} para incrustar
 Scheme se adapta de forma natural a este sistema.  Una vez que el
 analizador léxico ve un símbolo de almohadilla, llama al lector de
-Scheme para que lea una expresión de Scheme completa (que puede ser un
-identificador, una expresión encerrada entre paréntesis, o algunas
-otras cosas).  Después de que se ha leído la expresión de Scheme, se
-almacena como el valor de un elemento @code{SCM_TOKEN} de la
-gramática.  Después de que el analizador sintáctico ya sabe cómo hacer
-uso de este elemento, llama a Guila para que evalúe la expresión de
-Scheme.  Dado que el analizador sintáctico suele requerir un poco de
-lectura por delante por parte del analizador léxico para tomar sus
-decisiones de análisis sintáctico, esta separación de lectura y
-evaluación entre los analizadores léxico y sintáctico es justamente lo
-que se necesita para mantener sincronizadas las ejecuciones de
-expresiones de LilyPond y de Scheme.  Por este motivo se debe usar el
-símbolo de almohadilla@tie{}@code{#} para llamar a Scheme siempre que
-sea posible.
-
-Otra forma de llamar al intérprete de Scheme desde lilyPond es el uso
-del símbolo de dólar@tie{}@code{$} en lugar de la almohadilla para
-introducir las expresiondes de Scheme.  En este caso, LilyPond evalúa
-el código justo después de que el analizador léxico lo ha leído.
-Comprueba el tipo resultante de la expresión de Scheme y después
-selecciona un tipo de elemento (uno de los varios elementos
-@code{xxx_IDENTIFIER} dentro de la sintaxis) para él.  Crea una
-@emph{copia} del valor y la usa como valor del elemento.  Si el valor
-de la expresión es vacío (El valor de Guile de @code{*unspecified*}),
-no se pasa nada en absoluto al analizador sintáctico.
-
-Éste es, de hecho, el mismo mecanismo exactamente que LilyPond emplea
-cuando llamamos a cualquier variable o función musical por su nombre,
-como @code{\nombre}, con la única diferencia de que el nombre viene
-determinado por el analizador léxico de LilyPond sin consultar al
-lector de Scheme, y así solamente se aceptan los nombres de variable
-consistentes con el modo actual de LilyPond.
+Scheme para que lea una expresión de Scheme completa (que puede
+ser un identificador, una expresión encerrada entre paréntesis, o
+algunas otras cosas).  Después de que se ha leído la expresión de
+Scheme, se almacena como el valor de un elemento @code{SCM_TOKEN}
+de la gramática.  Después de que el analizador sintáctico ya sabe
+cómo hacer uso de este elemento, llama a Guila para que evalúe la
+expresión de Scheme.  Dado que el analizador sintáctico suele
+requerir un poco de lectura por delante por parte del analizador
+léxico para tomar sus decisiones de análisis sintáctico, esta
+separación de lectura y evaluación entre los analizadores léxico y
+sintáctico es justamente lo que se necesita para mantener
+sincronizadas las ejecuciones de expresiones de LilyPond y de
+Scheme.  Por este motivo se debe usar el símbolo de
+almohadilla@tie{}@code{#} para llamar a Scheme siempre que sea
+posible.
+
+Otra forma de llamar al intérprete de Scheme desde LilyPond es el
+uso del símbolo de dólar@tie{}@code{$} en lugar de la almohadilla
+para introducir las expresiondes de Scheme.  En este caso,
+LilyPond evalúa el código justo después de que el analizador
+léxico lo ha leído.  Comprueba el tipo resultante de la expresión
+de Scheme y después selecciona un tipo de elemento (uno de los
+varios elementos @code{xxx_IDENTIFIER} dentro de la sintaxis) para
+él.  Crea una @emph{copia} del valor y la usa como valor del
+elemento.  Si el valor de la expresión es vacío (El valor de Guile
+de @code{*unspecified*}), no se pasa nada en absoluto al
+analizador sintáctico.
+
+Éste es, de hecho, el mismo mecanismo exactamente que LilyPond
+emplea cuando llamamos a cualquier variable o función musical por
+su nombre, como @code{\nombre}, con la única diferencia de que el
+nombre viene determinado por el analizador léxico de LilyPond sin
+consultar al lector de Scheme, y así solamente se aceptan los
+nombres de variable consistentes con el modo actual de LilyPond.
 
 La acción inmediata de @code{$} puede llevar a alguna que otra
-sorpresa, véase @ref{Variables de entrada y Scheme}.  La utilización
-de @code{#} donde el analizador sintáctico lo contempla es normalmente
-preferible.  Dentro de las expresiones musicales, aquellas que se
-crean utilizando @code{#} @emph{se interprentan} como música.  Sin
-embargo, @emph{no se copian} antes de ser utilizadas.  Si forman parte
-de alguna estructura que aún podría tener algún uso, quizá tenga que
-utilizar explícitamente @code{ly:music-deep-copy}.
+sorpresa, véase @ref{Importación de Scheme dentro de LilyPond}.
+La utilización de @code{#} donde el analizador sintáctico lo
+contempla es normalmente preferible.  Dentro de las expresiones
+musicales, aquellas que se crean utilizando @code{#} @emph{se
+interprentan} como música.  Sin embargo, @emph{no se copian} antes
+de ser utilizadas.  Si forman parte de alguna estructura que aún
+podría tener algún uso, quizá tenga que utilizar explícitamente
+@code{ly:music-deep-copy}.
 
 @funindex $@@
 @funindex #@@
-También existen los operadores de @q{división de listas} @code{$@@} y
-@code{#@@} que insertan todos los elementos de una lista dentro del
-contexto circundante.
+También existen los operadores de @q{división de listas}
+@code{$@@} y @code{#@@} que insertan todos los elementos de una
+lista dentro del contexto circundante.
 
 Ahora echemos un vistazo a algo de código de Scheme real.  Los
-procedimientos de Scheme se pueden definir dentro de los archivos de
-entrada de LilyPond:
+procedimientos de Scheme se pueden definir dentro de los archivos
+de entrada de LilyPond:
 
 @example
 #(define (media a b c) (/ (+ a b c) 3))
 @end example
 
-Observe que los comentarios de LilyPond (@code{%} y @code{%@{ %@}}) no
-se pueden utilizar dentro del código de Scheme, ni siquiera dentro de
-un archivo de entrada de LilyPond, porque es el intérprete Guile, y no
-el analizador léxico de LilyPond, el que está leyendo la expresión de
-Scheme.  Los comentarios en el Scheme de Guile se introducen como
-sigue:
+Observe que los comentarios de LilyPond (@code{%} y @code{%@{
+%@}}) no se pueden utilizar dentro del código de Scheme, ni
+siquiera dentro de un archivo de entrada de LilyPond, porque es el
+intérprete Guile, y no el analizador léxico de LilyPond, el que
+está leyendo la expresión de Scheme.  Los comentarios en el Scheme
+de Guile se introducen como sigue:
 
 @example
 ; esto es un comentario de una línea
 
 #!
   Esto es un comentario de bloque (no anidable) estilo Guile
-  Pero se usan rara vez por parte de los Schemers y nunca dentro del
-  código fuente de LilyPond
+  Pero se usan rara vez por parte de los Schemers
+  y nunca dentro del código fuente de LilyPond
 !#
 @end example
 
 Durante el resto de esta sección, supondremos que los datos se
-introducen en un archivo de música, por lo que añadiremos
-almohadillas@tie{}@code{#} al principio de todas las expresiones de Scheme.
+introducen en un archivo de música, por lo que añadiremos una
+almohadilla@tie{}@code{#} al principio de cada una de las
+expresiones de Scheme.
 
-Todas las expresiones de Scheme del nivel jerárquico superior dentro
-de un archivo de entrada de LilyPond se pueden combinar en una sola
-expresión de Scheme mediante la utilización del operador @code{begin}:
+Todas las expresiones de Scheme del nivel jerárquico superior
+dentro de un archivo de entrada de LilyPond se pueden combinar en
+una sola expresión de Scheme mediante la utilización del operador
+@code{begin}:
 
 @example
 #(begin
@@ -821,8 +842,9 @@ equivale a
 #(define doce 12)
 @end example
 
-Esto significa que las variables de LilyPond están disponibles para su
-uso dentro de expresiones de Scheme.  Por ejemplo, podríamos usar
+Esto significa que las variables de LilyPond están disponibles
+para su uso dentro de expresiones de Scheme.  Por ejemplo,
+podríamos usar
 
 @example
 veintiCuatro = (* 2 doce)
@@ -832,25 +854,25 @@ veintiCuatro = (* 2 doce)
 lo que daría lugar a que el número 24 se almacenase dentro de la
 variable @code{veintiCuatro} de LilyPond (y de Scheme).
 
-La forma usual de referirse a las variables de LilyPond,
-@ref{Sintaxis del Scheme de LilyPond},
-
-es llamarlas usando una barra invertida, es decir
-@code{\veintiCuatro}.  Dado que esto crea una copia para la mayor
-parte de los tipos internos de LilyPond, concretamente las expresiones
-musicales, las funciones musicales no sueln crear copias del material
-que ellas mismas modifican.  Por este motivo, las expresiones
-musicales dadas con @code{#} no deberían, por lo general, contener
-material que no se haya creado partiendo de cero o copiado
-explícitamente en lugar de estar referenciado directamente.
+La forma usual de referirse a las variables de LilyPond, es
+llamarlas usando una barra invertida, es decir
+@code{\veintiCuatro} (véase
+@ref{Sintaxis del Scheme de LilyPond}).  Dado que esto crea una
+copia para la mayor parte de los tipos internos de LilyPond,
+concretamente las expresiones musicales, las funciones musicales
+no sueln crear copias del material que ellas mismas modifican.
+Por este motivo, las expresiones musicales dadas con @code{#} no
+deberían, por lo general, contener material que no se haya creado
+partiendo de cero o copiado explícitamente en lugar de estar
+referenciado directamente.
 
 @node Variables de entrada y Scheme
 @subsection Variables de entrada y Scheme
 @translationof Input variables and Scheme
 
 El formato de entrada contempla la noción de variables: en el
-siguiente ejemplo, se asigna una expresión musical a una variable con
-el nombre @code{traLaLa}.
+siguiente ejemplo, se asigna una expresión musical a una variable
+con el nombre @code{traLaLa}.
 
 @example
 traLaLa = @{ c'4 d'4 @}
@@ -858,9 +880,10 @@ traLaLa = @{ c'4 d'4 @}
 
 @noindent
 
-También hay una forma de ámbito: en el ejemplo siguiente, el bloque
-@code{\layout} también contiene una variable @code{traLaLa}, que es
-independiente de la @code{\traLaLa} externa.
+También hay una forma de ámbito: en el ejemplo siguiente, el
+bloque @code{\layout} también contiene una variable
+@code{traLaLa}, que es independiente de la @code{\traLaLa}
+externa.
 
 @example
 traLaLa = @{ c'4 d'4 @}
@@ -868,13 +891,13 @@ traLaLa = @{ c'4 d'4 @}
 @end example
 
 @c
-En efecto, cada archivo de entrada constituye un ámbito, y cada bloque
-@code{\header}, @code{\midi} y @code{\layout} son ámbitos anidados
-dentro del ámbito de nivel superior.
+En efecto, cada archivo de entrada constituye un ámbito, y cada
+bloque @code{\header}, @code{\midi} y @code{\layout} son ámbitos
+anidados dentro del ámbito de nivel superior.
 
-Tanto las variables como los ámbitos están implementados en el sistema
-de módulos de GUILE.  A cada ámbito se adjunta un módulo anónimo de
-Scheme.  Una asignación de la forma:
+Tanto las variables como los ámbitos están implementados en el
+sistema de módulos de GUILE.  A cada ámbito se adjunta un módulo
+anónimo de Scheme.  Una asignación de la forma:
 
 @example
 traLaLa = @{ c'4 d'4 @}
@@ -887,11 +910,12 @@ se convierte internamente en una definición de Scheme:
 (define traLaLa @var{Valor Scheme de `@code{@dots{}}'})
 @end example
 
-Esto significa que las variables de LilyPond y las variables de Scheme
-se pueden mezclar con libertad.  En el ejemplo siguiente, se almacena
-un fragmento de música en la variable @code{traLaLa}, y se duplica
-usando Scheme.  El resultado se importa dentro de un bloque
-@code{\score} por medio de una segunda variable @code{twice}:
+Esto significa que las variables de LilyPond y las variables de
+Scheme se pueden mezclar con libertad.  En el ejemplo siguiente,
+se almacena un fragmento de música en la variable @code{traLaLa},
+y se duplica usando Scheme.  El resultado se importa dentro de un
+bloque @code{\score} por medio de una segunda variable
+@code{twice}:
 
 @lilypond[verbatim]
 traLaLa = { c'4 d'4 }
@@ -906,13 +930,14 @@ traLaLa = { c'4 d'4 }
 
 @c Due to parser lookahead
 
-En realidad, éste es un ejemplo bastante interesante.  La asignación
-solo tiene lugar después de que el analizador sintáctico se ha
-asegurado de que no sigue nada parecido a @code{\addlyrics}, de manera
-que necesita comprobar lo que viene a continuación.  Lee el símbolo
-@code{#} y la expresión de Scheme siguiente @emph{sin} evaluarla, de
-forma que puede proceder a la asignación, y @emph{posteriormente}
-ejecutar el código de Scheme sin problema.
+En realidad, éste es un ejemplo bastante interesante.  La
+asignación solo tiene lugar después de que el analizador
+sintáctico se ha asegurado de que no sigue nada parecido a
+@code{\addlyrics}, de manera que necesita comprobar lo que viene a
+continuación.  Lee el símbolo @code{#} y la expresión de Scheme
+siguiente @emph{sin} evaluarla, de forma que puede proceder a la
+asignación, y @emph{posteriormente} ejecutar el código de Scheme
+sin problema.
 
 @node Importación de Scheme dentro de LilyPond
 @subsection Importación de Scheme dentro de LilyPond
@@ -920,12 +945,12 @@ ejecutar el código de Scheme sin problema.
 @funindex $
 @funindex #
 
-El ejemplo anterior muestra cómo @q{exportar} expresiones musicales
-desde la entrada al intérprete de Scheme.  Lo contrario también es
-posible.  Colocándolo después de @code{$}, un valor de Scheme se
-interpreta como si hubiera sido introducido en la sintaxis de
-LilyPond.  En lugar de definir @code{\twice}, el ejemplo anterior
-podría también haberse escrito como
+El ejemplo anterior muestra cómo @q{exportar} expresiones
+musicales desde la entrada al intérprete de Scheme.  Lo contrario
+también es posible.  Colocándolo después de @code{$}, un valor de
+Scheme se interpreta como si hubiera sido introducido en la
+sintaxis de LilyPond.  En lugar de definir @code{\twice}, el
+ejemplo anterior podría también haberse escrito como
 
 @example
 @dots{}
@@ -935,21 +960,22 @@ $(make-sequential-music newLa)
 Podemos utilizar @code{$} con una expresión de Scheme en cualquier
 lugar en el que usaríamos @code{\@var{nombre}} después de haber
 asignado la expresión de Scheme a una variable @var{nombre}.  Esta
-sustitución se produce dentro del @q{analizador léxico}, de manera que
-LilyPond no llega a darse cuenta de la diferencia.
+sustitución se produce dentro del @q{analizador léxico}, de manera
+que LilyPond no llega a darse cuenta de la diferencia.
 
-Sin embargo, existe un inconveniente, el de la medida del tiempo.  Si
-hubiésemos estado usando @code{$} en vez de @code{#} para definir
-@code{newLa} en el ejemplo anterior, la siguiente definición de Scheme
-habría fracasado porque @code{traLaLa} no habría sido definida aún.
-Para ver una explicación de este problema de momento temporal, véase
-@ref{Sintaxis del Scheme de LilyPond}.
+Sin embargo, existe un inconveniente, el de la medida del tiempo.
+Si hubiésemos estado usando @code{$} en vez de @code{#} para
+definir @code{newLa} en el ejemplo anterior, la siguiente
+definición de Scheme habría fracasado porque @code{traLaLa} no
+habría sido definida aún.  Para ver una explicación de este
+problema de momento temporal, véase @ref{Sintaxis del Scheme de
+LilyPond}.
 
 @funindex $@@
 @funindex #@@
 Un conveniente aspecto posterior pueden ser los operadores de
-@q{división de listas} @code{$@@} y @code{#@@} para la inserción de
-los elementos de una lista dentro del contexto circundante.
+@q{división de listas} @code{$@@} y @code{#@@} para la inserción
+de los elementos de una lista dentro del contexto circundante.
 Utilizándolos, la última parte del ejemplo se podría haber escrito
 como
 
@@ -958,19 +984,20 @@ como
 @{ #@@newLa @}
 @end example
 
-Aquí, cada elemento de la lista que está almacenado en @code{newLa} se
-toma en secuencia y se inserta en la lista, como si hubiésemos escrito
+Aquí, cada elemento de la lista que está almacenado en
+@code{newLa} se toma en secuencia y se inserta en la lista, como
+si hubiésemos escrito
 
 @example
 @{ #(first newLa) #(second newLa) @}
 @end example
 
-Ahora bien, en todas esas formas, el código de Scheme se evalúa en el
-momento en que el código de entrada aún se está procesando, ya sea en
-el analizador léxico o en el analizador sintáctico.  Si necesitamos
-que se ejecute en un momento posterior, debemos consultar
-@ref{Funciones de Scheme vacías}, o almacenarlo dentro de un
-procedimiento:
+Ahora bien, en todas esas formas, el código de Scheme se evalúa en
+el momento en que el código de entrada aún se está procesando, ya
+sea en el analizador léxico o en el analizador sintáctico.  Si
+necesitamos que se ejecute en un momento posterior, debemos
+consultar @ref{Funciones de Scheme vacías}, o almacenarlo dentro
+de un procedimiento:
 
 @example
 #(define (nopc)
@@ -983,39 +1010,40 @@ procedimiento:
 
 @knownissues
 
-No es posible mezclar variables de Scheme y de LilyPond con la opción
-@option{--safe}.
+No es posible mezclar variables de Scheme y de LilyPond con la
+opción @option{--safe}.
 
 
 @node Propiedades de los objetos
 @subsection Propiedades de los objetos
 @translationof Object properties
 
-Las propiedades de los objetos se almacenan en LilyPond en forma de
-cadenas de listas-A, que son listas de listas-A.  Las propiedades se
-establecen añadiendo valores al principio de la lista de propiedades.
-Las propiedades se leen extrayendo valores de las listas-A.
+Las propiedades de los objetos se almacenan en LilyPond en forma
+de cadenas de listas-A, que son listas de listas-A.  Las
+propiedades se establecen añadiendo valores al principio de la
+lista de propiedades.  Las propiedades se leen extrayendo valores
+de las listas-A.
 
-El establecimiento de un valor nuevo para una propiedad requiere la
-asignación de un valor a la lista-A con una clave y un valor.  La
-sintaxis de LilyPond para hacer esto es la siguiente:
+El establecimiento de un valor nuevo para una propiedad requiere
+la asignación de un valor a la lista-A con una clave y un valor.
+La sintaxis de LilyPond para hacer esto es la siguiente:
 
 @example
 \override Stem.thickness = #2.6
 @end example
 
 Esta instrucción ajusta el aspecto de las plicas.  Se añade una
-entrada de lista-A @code{'(thickness . 2.6)} a la lista de propiedades
-de un objeto @code{Stem}.  @code{thickness} se mide a partir del
-grosor de las líneas del pentagrama, y así estas plicas serán
-@code{2.6} veces el grosor de las líneas del pentagrama.  Esto hace
-que las plicas sean casi el doble de gruesas de lo normal.  Para
-distinguir entre las variables que se definen en los archivos de
-entrada (como @code{veintiCuatro} en el ejemplo anterior) y las
-variables de los objetos internos, llamaremos a las últimas
-@q{propiedades} y a las primeras @q{variables.}  Así, el objeto plica
-tiene una propiedad @code{thickness} (grosor), mientras que
-@code{veintiCuatro} es una variable.
+entrada de lista-A @code{'(thickness . 2.6)} a la lista de
+propiedades de un objeto @code{Stem}.  @code{thickness} se mide a
+partir del grosor de las líneas del pentagrama, y así estas plicas
+serán @code{2.6} veces el grosor de las líneas del pentagrama.
+Esto hace que las plicas sean casi el doble de gruesas de lo
+normal.  Para distinguir entre las variables que se definen en los
+archivos de entrada (como @code{veintiCuatro} en el ejemplo
+anterior) y las variables de los objetos internos, llamaremos a
+las últimas @q{propiedades} y a las primeras @q{variables.}  Así,
+el objeto plica tiene una propiedad @code{thickness} (grosor),
+mientras que @code{veintiCuatro} es una variable.
 
 @cindex propiedades frente a variables
 @cindex variables frente a propiedades
@@ -1041,18 +1069,19 @@ tiene una propiedad @code{thickness} (grosor), mientras que
 @unnumberedsubsubsec Desplazamientos
 @translationof Offsets
 
-Los desplazamientos bidimensionales (coordenadas X e Y) se almacenan
-como @emph{parejas}.  El @code{car} del desplazamiento es la
-coordenada X, y el @code{cdr} es la coordenada Y.
+Los desplazamientos bidimensionales (coordenadas X e Y) se
+almacenan como @emph{parejas}.  El @code{car} del desplazamiento
+es la coordenada X, y el @code{cdr} es la coordenada Y.
 
 @example
 \override TextScript.extra-offset = #'(1 . 2)
 @end example
 
 Esto asigna la pareja @code{(1 . 2)} a la propiedad
-@code{extra-offset} del objeto TextScript.  Estos números se miden en
-espacios de pentagrama, y así esta instrucción mueve el objeto un
-espacio de pentagrama a la derecha, y dos espacios hacia arriba.
+@code{extra-offset} del objeto TextScript.  Estos números se miden
+en espacios de pentagrama, y así esta instrucción mueve el objeto
+un espacio de pentagrama a la derecha, y dos espacios hacia
+arriba.
 
 Los procedimientos para trabajar con desplazamientos están en
 @file{scm/lily-library.scm}.
@@ -1061,13 +1090,14 @@ Los procedimientos para trabajar con desplazamientos están en
 @unnumberedsubsubsec Fracciones
 @subheading Fractions
 
-Las fracciones tal y como se utilizan por parte de LilyPond
-se almacenan, de nuevo, como @emph{parejas}, esta
-vez de enteros sin signo.  Mientras que Scheme es capaz de representar números racionaes
-como un tipo nativo, musicalmente @samp{2/4} y @samp{1/2} no son lo mismo,
-y necesitamos poder distinguir entre ellos.  De igual forma, no existe el concepto
-de @q{fracciones} negativas en LilyPond.  Así pues, @code{2/4} en LilyPond
-significa @code{(2 . 4)} en Scheme, y @code{#2/4} en LilyPond significa
+Las fracciones tal y como se utilizan por parte de LilyPond se
+almacenan, de nuevo, como @emph{parejas}, esta vez de enteros sin
+signo.  Mientras que Scheme es capaz de representar números
+racionaes como un tipo nativo, musicalmente @samp{2/4} y
+@samp{1/2} no son lo mismo, y necesitamos poder distinguir entre
+ellos.  De igual forma, no existe el concepto de @q{fracciones}
+negativas en LilyPond.  Así pues, @code{2/4} en LilyPond significa
+@code{(2 . 4)} en Scheme, y @code{#2/4} en LilyPond significa
 @code{1/2} en Scheme.
 
 
@@ -1075,14 +1105,14 @@ significa @code{(2 . 4)} en Scheme, y @code{#2/4} en LilyPond significa
 @unnumberedsubsubsec Dimensiones
 @translationof Extents
 
-Las parejas se usan también para almacenar intervalos, que representan
-un rango de números desde el mínimo (el @code{car}) hasta el máximo
-(el @code{cdr}).  Los intervalos se usan para almacenar las
-dimensiones en X y en Y de los objetos imprimibles.  Para dimensiones
-en X, el @code{car} es la coordenada X de la parte izquierda, y el
-@code{cdr} es la coordenada X de la parte derecha.  Para las
-dimensiones en Y, el @code{car} es la coordenada inferior, y el
-@code{cdr} es la coordenada superior.
+Las parejas se usan también para almacenar intervalos, que
+representan un rango de números desde el mínimo (el @code{car})
+hasta el máximo (el @code{cdr}).  Los intervalos se usan para
+almacenar las dimensiones en X y en Y de los objetos imprimibles.
+Para dimensiones en X, el @code{car} es la coordenada X de la
+parte izquierda, y el @code{cdr} es la coordenada X de la parte
+derecha.  Para las dimensiones en Y, el @code{car} es la
+coordenada inferior, y el @code{cdr} es la coordenada superior.
 
 Los procedimientos para trabajar con intervalos están en
 @file{scm/lily-library.scm}.  Se deben usar estos procedimientos
@@ -1093,12 +1123,13 @@ siempre que sea posible, para asegurar la consistencia del código.
 @unnumberedsubsubsec Listas-A de propiedades
 @translationof Property alists
 
-Una lista-A de propiedades es una estructura de datos de LilyPond que
-es una lista-A cuyas claves son propiedades y cuyos valores son
-expresiones de Scheme que dan el valor deseado de la propiedad.
+Una lista-A de propiedades es una estructura de datos de LilyPond
+que es una lista-A cuyas claves son propiedades y cuyos valores
+son expresiones de Scheme que dan el valor deseado de la
+propiedad.
 
-Las propiedades de LilyPond son símbolos de Scheme, como por ejemplo
-@code{'thickness}.
+Las propiedades de LilyPond son símbolos de Scheme, como por
+ejemplo @code{'thickness}.
 
 
 @node Cadenas de listas-A
@@ -1110,69 +1141,71 @@ propiedades.
 
 El conjunto de todas las propiedades que se aplican a un grob se
 almacena por lo general como una cadena de listas-A.  Para poder
-encontrar el valor de una propiedad determinada que debería tener un
-grob, se busca por todas las listas-A de la cadena, una a una,
+encontrar el valor de una propiedad determinada que debería tener
+un grob, se busca por todas las listas-A de la cadena, una a una,
 tratando de encontrar una entrada que contenga la clave de la
 propiedad.  Se devuelve la primera entrada de lista-A que se
 encuentre, y el valor es el valor de la propiedad.
 
-El procedimiento de Scheme @code{chain-assoc-get} se usa normalmente
-para obtener los valores de propiedades.
+El procedimiento de Scheme @code{chain-assoc-get} se usa
+normalmente para obtener los valores de propiedades.
 
 @node Representación interna de la música
 @subsection Representación interna de la música
 @translationof Internal music representation
 
-Internamente, la música se representa como una lista de Scheme.  La
-lista contiene varios elementos que afectan a la salida impresa.  El
-análisis sintáctico es el proceso de convertir la música de la
-representación de entrada de LilyPond a la representación interna de
-Scheme.
+Internamente, la música se representa como una lista de Scheme.
+La lista contiene varios elementos que afectan a la salida
+impresa.  El análisis sintáctico es el proceso de convertir la
+música de la representación de entrada de LilyPond a la
+representación interna de Scheme.
 
-Cuando se analiza una expresión musical, se convierte en un conjunto
-de objetos musicales de Scheme.  La propiedad definitoria de un objeto
-musical es que ocupa un tiempo.  El tiempo que ocupa se llama
-@emph{duración}.  Las duraciones se expresan como un número racional
-que mide la longitud del objeto musical en redondas.
+Cuando se analiza una expresión musical, se convierte en un
+conjunto de objetos musicales de Scheme.  La propiedad definitoria
+de un objeto musical es que ocupa un tiempo.  El tiempo que ocupa
+se llama @emph{duración}.  Las duraciones se expresan como un
+número racional que mide la longitud del objeto musical en
+redondas.
 
 Un objeto musical tiene tres clases de tipos:
 @itemize
 @item
-nombre musical: Cada expresión musical tiene un nombre.  Por ejemplo,
-una nota lleva a un @rinternals{NoteEvent}, y @code{\simultaneous}
-lleva a una @rinternals{SimultaneousMusic}.  Hay una lista de todas
-las expresiones disponibles en el manual de Referencia de
-funcionamiento interno, bajo el epígrafe @rinternals{Music
-expressions}.
+nombre musical: Cada expresión musical tiene un nombre.  Por
+ejemplo, una nota lleva a un @rinternals{NoteEvent}, y
+@code{\simultaneous} lleva a una @rinternals{SimultaneousMusic}.
+Hay una lista de todas las expresiones disponibles en el manual de
+Referencia de funcionamiento interno, bajo el epígrafe
+@rinternals{Music expressions}.
 
 @item
 @q{type} (tipo) o interface: Cada nombre musical tiene varios
-@q{tipos} o interfaces, por ejemplo, una nota es un @code{event}, pero
-también es un @code{note-event}, un @code{rhythmic-event}, y un
-@code{melodic-event}.  Todas las clases de música están listadas en el
-manual de Referencia de funcionamiento interno, bajo el epígrafe
-@rinternals{Music classes}.
+@q{tipos} o interfaces, por ejemplo, una nota es un @code{event},
+pero también es un @code{note-event}, un @code{rhythmic-event}, y
+un @code{melodic-event}.  Todas las clases de música están
+listadas en el manual de Referencia de funcionamiento interno,
+bajo el epígrafe @rinternals{Music classes}.
 
 @item
-objeto de C++: Cada objeto musical está representado por un objeto de
-la clase @code{Music} de C++.
+objeto de C++: Cada objeto musical está representado por un objeto
+de la clase @code{Music} de C++.
 @end itemize
 
 La información real de una expresión musical se almacena en
-propiedades.  Por ejemplo, un @rinternals{NoteEvent} tiene propiedades
-@code{pitch} y @code{duration} que almacenan la altura y la duración
-de esa nota.  Hay una lista de todas la propiedades disponibles en el
-manual de Referencia de funcionamiento interno, bajo el epígrafe
-@rinternals{Music properties}.
+propiedades.  Por ejemplo, un @rinternals{NoteEvent} tiene
+propiedades @code{pitch} y @code{duration} que almacenan la altura
+y la duración de esa nota.  Hay una lista de todas la propiedades
+disponibles en el manual de Referencia de funcionamiento interno,
+bajo el epígrafe @rinternals{Music properties}.
 
 Una expresión musical compuesta es un objeto musical que contiene
-otros objetos musicales dentro de sus propiedades.  Se puede almacenar
-una lista de objetos dentro de la propiedad @code{elements} de un
-objeto musical, o un único objeto musical @q{hijo} dentro de la
-propiedad @code{element}.  Por ejemplo, @rinternals{SequentialMusic}
-tiene su hijo dentro de @code{elements}, y @rinternals{GraceMusic}
-tiene su argumento único dentro de @code{element}.  El cuerpo de una
-repetición se almacena dentro de la propiedad @code{element} de
+otros objetos musicales dentro de sus propiedades.  Se puede
+almacenar una lista de objetos dentro de la propiedad
+@code{elements} de un objeto musical, o un único objeto musical
+@q{hijo} dentro de la propiedad @code{element}.  Por ejemplo,
+@rinternals{SequentialMusic} tiene su hijo dentro de
+@code{elements}, y @rinternals{GraceMusic} tiene su argumento
+único dentro de @code{element}.  El cuerpo de una repetición se
+almacena dentro de la propiedad @code{element} de
 @rinternals{RepeatedMusic}, y las alternativas dentro de
 @code{elements}.
 
@@ -1180,8 +1213,8 @@ repetición se almacena dentro de la propiedad @code{element} de
 @section Construir funciones complicadas
 @translationof Building complicated functions
 
-Esta sección explica cómo reunir la información necesaria para crear
-funciones musicales complicadas.
+Esta sección explica cómo reunir la información necesaria para
+crear funciones musicales complicadas.
 
 @menu
 * Presentación de las expresiones musicales::
@@ -1201,9 +1234,10 @@ funciones musicales complicadas.
 @cindex displayMusic
 @funindex \displayMusic
 
-Si se está escribiendo una función musical, puede ser muy instructivo
-examinar cómo se almacena internamente una expresión musical.  Esto se
-puede hacer con la función musical @code{\displayMusic}
+Si se está escribiendo una función musical, puede ser muy
+instructivo examinar cómo se almacena internamente una expresión
+musical.  Esto se puede hacer con la función musical
+@code{\displayMusic}.
 
 @example
 @{
@@ -1232,24 +1266,32 @@ imprime lo siguiente:
 @end example
 
 De forma predeterminada, LilyPond imprime estos mensajes sobre la
-consola junto al resto de los mensajes.  Para separar estos mensajes y
-guardar el resultado de @code{\display@{LOQUESEA@}}, redirija la
-salida a un archivo.
+consola junto al resto de los mensajes.  Para separar estos
+mensajes y guardar el resultado de @code{\display@{LOQUESEA@}},
+puede especificar que se use un puerto de salida opcional:
 
 @example
-lilypond archivo.ly >salida.txt
+@{
+  \displayMusic #(open-output-file "display.txt") @{ c'4\f @}
+@}
 @end example
 
-Con un poco de magia combinada de LilyPond y Scheme, podemos realmente
-hacer que LilyPond dirija solamente esta salida a su propio archivo:
-
+Esto sobreescribe el archivo de salida anterior cada vez ques e
+llama; si necesitamos escribir más de una expresión, debemos usar
+una variable para el puerto y reutilizarla:
 @example
 @{
-  #(with-output-to-file "display.txt"
-      (lambda () #@{ \displayMusic @{ c'4\f @} #@}))
+  port = #(open-output-file "display.txt")
+  \displayMusic \port @{ c'4\f @}
+  \displayMusic \port @{ d'4 @}
+  #(close-output-port port)
 @}
 @end example
 
+El manual de Guile describe los puertos detalladamente.  Solo es
+realmente necesario cerrar el puerto si necesitamos leer el
+archivo antes de que LilyPond termine; en el primer ejemplo, no
+nos hemos molestado en hacerlo.
 
 Un poco de reformateo hace a la información anterior más fácil de
 leer:
@@ -1267,26 +1309,30 @@ leer:
 @end example
 
 Una secuencia musical @code{@{ @dots{} @}} tiene el nombre
-@code{SequentialMusic}, y sus expresiones internas se almacenan coma
-una lista dentro de su propiedad @code{'elements}.  Una nota se
-representa como un objeto @code{NoteEvent} (que almacena las
+@code{SequentialMusic}, y sus expresiones internas se almacenan
+coma una lista dentro de su propiedad @code{'elements}.  Una nota
+se representa como un objeto @code{NoteEvent} (que almacena las
 propiedades de duración y altura) con información adjunta (en este
 caso, un evento @code{AbsoluteDynamicEvent} con una propiedad
-@code{"f"} de texto) almacenada en su propiedad @code{articulations}.
+@code{"f"} de texto) almacenada en su propiedad
+@code{articulations}.
 
 @funindex{\void}
-@code{\displayMusic} devuelve la música que imprime en la consola, y
-por ello se interpretará al tiempo que se imprime en la consola.  Para
-evitar la interpretación, escriba @code{\void} antes de
+
+@code{\displayMusic} devuelve la música que imprime en la consola,
+y por ello se interpretará al tiempo que se imprime en la consola.
+Para evitar la interpretación, escriba @code{\void} antes de
 @code{\displayMusic}.
 
 @node Propiedades musicales
 @subsection Propiedades musicales
 @translationof Music properties
 
-@c TODO -- make sure we delineate between @emph{music} properties,
-@c @emph{context} properties, and @emph{layout} properties.  These
-@c are potentially confusing.
+@ignore
+TODO -- make sure we delineate between @emph{music} properties,
+@emph{context} properties, and @emph{layout} properties.  These
+are potentially confusing.
+@end ignore
 
 Veamos un ejemplo:
 
@@ -1302,8 +1348,9 @@ someNote = c'
   (ly:make-pitch 0 0 0))
 @end example
 
-The @code{NoteEvent} object is the representation of @code{someNote}.
-Straightforward.  How about putting c' in a chord?
+El objeto @code{NoteEvent} es la representación de
+@code{someNote}.  Sencillo.  ¿Y si ponemos el c' dentro de un
+acorde?
 
 @example
 someNote = <c'>
@@ -1320,12 +1367,12 @@ someNote = <c'>
           (ly:make-pitch 0 0 0))))
 @end example
 
-Ahora el objeto @code{NoteEvent} es el primer objeto
-de la propiedad @code{'elements} de @code{someNote}.
+Ahora el objeto @code{NoteEvent} es el primer objeto de la
+propiedad @code{'elements} de @code{someNote}.
 
-La función @code{display-scheme-music} es la función que se usa por
-parte de @code{\displayMusic} para imprimir la representación de
-Scheme de una expresión musical.
+La función @code{display-scheme-music} es la función que se usa
+por parte de @code{\displayMusic} para imprimir la representación
+de Scheme de una expresión musical.
 
 @example
 #(display-scheme-music (first (ly:music-property someNote 'elements)))
@@ -1349,8 +1396,8 @@ Después se accede a la altura de la nota a través de la propiedad
 (ly:make-pitch 0 0 0)
 @end example
 
-La altura de la nota se puede cambiar estableciendo el valor de esta
-propiedad @code{'pitch},
+La altura de la nota se puede cambiar estableciendo el valor de
+esta propiedad @code{'pitch}.
 
 @funindex \displayLilyMusic
 
@@ -1360,7 +1407,7 @@ propiedad @code{'pitch},
        (ly:make-pitch 0 1 0)) ;; establecer la altura a d'.
 \displayLilyMusic \someNote
 ===>
-d'
+d'4
 @end example
 
 
@@ -1368,9 +1415,10 @@ d'
 @subsection Duplicar una nota con ligaduras (ejemplo)
 @translationof Doubling a note with slurs (example)
 
-Supongamos que queremos crear una función que convierte una entrada
-como @code{a} en @code{@{ a( a) @}}.  Comenzamos examinando la
-representación interna de la música con la que queremos terminar.
+Supongamos que queremos crear una función que convierte una
+entrada como @code{a} en @code{@{ a( a) @}}.  Comenzamos
+examinando la representación interna de la música con la que
+queremos terminar.
 
 @example
 \displayMusic@{ a'( a') @}
@@ -1403,10 +1451,10 @@ representación interna de la música con la que queremos terminar.
 @end example
 
 La mala noticia es que las expresiones @code{SlurEvent} se deben
-añadir @q{dentro} de la nota (dentro de la
-propiedad @code{articulations}).
+añadir @q{dentro} de la nota (dentro de la propiedad
+@code{articulations}).
 
-Ahora examinamos la entrada,
+Ahora examinamos la entrada.
 
 @example
 \displayMusic a'
@@ -1419,15 +1467,15 @@ Ahora examinamos la entrada,
   (ly:make-pitch 0 5 0))))
 @end example
 
-Así pues, en nuestra función, tenemos que clonar esta expresión (de
-forma que tengamos dos notas para construir la secuencia), añadir
-@code{SlurEvent} a la propiedad @code{'articulations} de cada una de
-ellas, y por último hacer una secuencia @code{SequentialMusic} con los
-dos elementos @code{NoteEvent}.  Para añadir a una propiedad, es útil saber
-que una propiedad no establecida se lee como @code{'()}, la lista
-vacía, así que no se requiere ninguna comprobación especial antes de
-que pongamos otro elemento delante de la propiedad
-@code{articulations}.
+Así pues, en nuestra función, tenemos que clonar esta expresión
+(de forma que tengamos dos notas para construir la secuencia),
+añadir @code{SlurEvent} a la propiedad @code{'articulations} de
+cada una de ellas, y por último hacer una secuencia
+@code{SequentialMusic} con los dos elementos @code{NoteEvent}.
+Para añadir a una propiedad, es útil saber que una propiedad no
+establecida se lee como @code{'()}, la lista vacía, así que no se
+requiere ninguna comprobación especial antes de que pongamos otro
+elemento delante de la propiedad @code{articulations}.
 
 
 @example
@@ -1450,33 +1498,34 @@ doubleSlur = #(define-music-function (note) (ly:music?)
 @translationof Adding articulation to notes (example)
 
 La manera fácil de añadir articulación a las notas es mezclar dos
-expresiones musicales en un solo contexto.
-Sin embargo, supongamos que queremos
-escribir una función musical que lo haga.  Esto tiene la ventaja
-adicional de que podemos usar esa función musical para añadir una
-articulación (como una instrucción de digitación) a una nota única
-dentro de un acorde, lo cual no es posible si nos limitamos a mezclar
-fragmentos de música independientes.
-
-Una @code{$variable} dentro de la notación @code{#@{@dots{}#@}} es como
-una @code{\variable} normal en la notación clásica de LilyPond.
-Sabemos que
+expresiones musicales en un solo contexto.  Sin embargo,
+supongamos que queremos escribir una función musical que lo haga.
+Esto tiene la ventaja adicional de que podemos usar esa función
+musical para añadir una articulación (como una instrucción de
+digitación) a una nota única dentro de un acorde, lo cual no es
+posible si nos limitamos a mezclar fragmentos de música
+independientes.
+
+Una @code{$variable} dentro de la notación @code{#@{@dots{}#@}} es
+como una @code{\variable} normal en la notación clásica de
+LilyPond.  Sabemos que
 
 @example
 @{ \music -. -> @}
 @end example
 
 @noindent
-no funciona en LilyPond.  Podríamos evitar este problema adjuntando la
-articulación a un acorde vacío,
+no funciona en LilyPond.  Podríamos evitar este problema
+adjuntando la articulación a un acorde vacío,
 
 @example
 @{ << \music <> -. -> >> @}
 @end example
 
 @noindent
-pero a los efectos de este ejemplo, aprenderemos ahora cómo hacerlo en
-Scheme.  Empezamos examinando nuestra entrada y la salida deseada,
+pero a los efectos de este ejemplo, aprenderemos ahora cómo
+hacerlo en Scheme.  Empezamos examinando nuestra entrada y la
+salida deseada.
 
 @example
 %  input
@@ -1535,46 +1584,47 @@ práctica en otros lenguajes de programación!)
 
 @noindent
 es una descripción de lo que hace la función.  No es estrictamente
-necesaria, pero de igual forma que los nombres claros de variable, es
-una buena práctica.
+necesaria, pero de igual forma que los nombres claros de variable,
+es una buena práctica.
 
-Se preguntará porqué modificamos el evento de nota directamente en
-lugar de trabajar sobre una copia (se puede usar
+Se preguntará por qué modificamos el evento de nota directamente
+en lugar de trabajar sobre una copia (se puede usar
 @code{ly:music-deep-copy} para ello).  La razón es un contrato
 silencioso: se permite que las funciones musicales modifiquen sus
-argumentos; o bien se generan partiendo de cero (como la entrada del
-usuario) o están ya copiadas (referenciar una variable de música con
-@samp{\name} o la música procedente de expresiones de Scheme
-inmediatas @samp{$(@dots{})} proporcionan una copia).  Dado que sería
-ineficiente crear copias innecesarias, el valor devuelto de una
-función musical @emph{no} se copia.  Así pues, para cumplir dicho
-contrato, no debemos usar ningún argumento más de una vez, y
+argumentos; o bien se generan partiendo de cero (como la entrada
+del usuario) o están ya copiadas (referenciar una variable de
+música con @samp{\name} o la música procedente de expresiones de
+Scheme inmediatas @samp{$(@dots{})} proporcionan una copia).  Dado
+que sería ineficiente crear copias innecesarias, el valor devuelto
+de una función musical @emph{no} se copia.  Así pues, para cumplir
+dicho contrato, no debemos usar ningún argumento más de una vez, y
 devolverlo cuenta como una vez.
 
-En un ejemplo anterior, hemos construido música mediante la repetición
-de un argumento musical dado.  En tal caso, al menos una repetidión
-tuvo que ser una copia de sí misma.  Si no lo fuese, podrían ocurrir
-cosas muy extrañas.  Por ejemplo, si usamos @code{\relative} o
-@code{\transpose} sobre la música resultante que contiene los mismos
-elementos varias veces, estarían sujetos varias veces a la
-relativización o al transporte.  Si los asignamos a una variable de
-música, se rompe el curso porque hacer referencia a @samp{\name}
-creará de nuevo una copia que no retiene la identidad de los elementos
-repetidos.
-
-Ahora bien, aun cuando la función anterior no es una función musical,
-se usará normalmente dentro de funciones musicales.  Así pues, tiene
-sentido obedecer el mismo convenio que usamos para las funciones
-musicales: la entrada puede modificarse para producir la salida, y el
-código que llama es responsable de crear las copias si aún necesita el
-propio argumento sin modificar.  Si observamos las propias funciones
-de LilyPond como @code{music-map}, veremos que se atienen a los mismos
-principios.
-
-¿En qué punto nos encontramos?  Ahora tenemos un @code{note-event} que
-podemos modificar, no a causa de la utilización de
-@code{ly:music-deep-copy} sino por una explicación muy desarrollada.
-Añadimos el acento a su propiedad de lista @code{'articulations}.
+En un ejemplo anterior, hemos construido música mediante la
+repetición de un argumento musical dado.  En tal caso, al menos
+una repetidión tuvo que ser una copia de sí misma.  Si no lo
+fuese, podrían ocurrir cosas muy extrañas.  Por ejemplo, si usamos
+@code{\relative} o @code{\transpose} sobre la música resultante
+que contiene los mismos elementos varias veces, estarían sujetos
+varias veces a la relativización o al transporte.  Si los
+asignamos a una variable de música, se rompe el curso porque hacer
+referencia a @samp{\name} creará de nuevo una copia que no retiene
+la identidad de los elementos repetidos.
+
+Ahora bien, aun cuando la función anterior no es una función
+musical, se usará normalmente dentro de funciones musicales.  Así
+pues, tiene sentido obedecer el mismo convenio que usamos para las
+funciones musicales: la entrada puede modificarse para producir la
+salida, y el código que llama es responsable de crear las copias
+si aún necesita el propio argumento sin modificar.  Si observamos
+las propias funciones de LilyPond como @code{music-map}, veremos
+que se atienen a los mismos principios.
+
+¿En qué punto nos encontramos?  Ahora tenemos un @code{note-event}
+que podemos modificar, no a causa de la utilización de
+@code{ly:music-deep-copy} sino por una explicación muy
+desarrollada.  Añadimos el acento a su propiedad de lista
+@code{'articulations}.
 
 @example
 (set! place new-value)
@@ -1601,15 +1651,15 @@ propiedades musicales (las @code{'articulations}, @code{'duration},
       (ly:music-property result-event-chord 'articulations))
 @end example
 
-Se usa @code{cons} para añadir un elemento a la parte delantera de una
-lista sin modificar la lista original.  Esto es lo que queremos: la
-misma lista de antes, más la nueva expresión @code{ArticulationEvent}.
-El orden dentro de la propiedad @code{'articulations} no tiene
-importancia aquí.
+Se usa @code{cons} para añadir un elemento a la parte delantera de
+una lista sin modificar la lista original.  Esto es lo que
+queremos: la misma lista de antes, más la nueva expresión
+@code{ArticulationEvent}.  El orden dentro de la propiedad
+@code{'articulations} no tiene importancia aquí.
 
 Finalmente, una vez hemos añadido la articulación de acento a su
-propiedad @code{articulations}, podemos devolver @code{note-event}, de
-aquí la última línea de la función.
+propiedad @code{articulations}, podemos devolver
+@code{note-event}, de aquí la última línea de la función.
 
 Ahora transformamos la función @code{add-accent} en una función
 musical (es cuestión de un poco de aderezo sintáctico y una
index c672700ac03463887f2d29f40a5f161e62d673c0..a16de4f5689e8f080236a092c25fd2367d535cdd 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 08560a1b8076630c4fc6cb9b902614d8b74fd6fc
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -18,7 +18,12 @@ Este archivo ofrece una introducción al programa LilyPond versión
 @version{}.
 @end macro
 
-@c `Learning Manual' was born 1999-10-10 with git commit b9abaac...
+@c `Learning Manual' was born 1998-08-14 with this commit:
+@c release: 1.0.2
+@c author: Han-Wen Nienhuys
+@c commit: a3a44f9f3c581b6824b3a65f9039656693e09bbf
+@c   file: Documentation/tex/tutorial.yo
+
 @macro copyrightDeclare
 Copyright @copyright{} 1999--2015 por los autores.
 @end macro
index 066feb3af1aad361d27078dfb88e39dd98a60aae..ba01420684b7d2492e328a68ce8c75556328dfab 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 45dd19546e9b75b3e1e977732f0962f35dd3290e
+    Translation of GIT committish: 42cd2e57e37cbbf1fc5ccbe2bc83048761690f60
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -29,8 +29,8 @@ Tutorial guidelines:  (different from policy.txt!)
 @translationof Common notation
 
 Este capítulo explica cómo crear hermosas partituras que contengan
-notación musical común, como continuación al material que está en el
-@ref{Tutorial}.
+notación musical común, como continuación al material que está en
+el @ref{Tutorial}.
 
 @menu
 * Notación en un solo pentagrama::
@@ -44,12 +44,12 @@ notación musical común, como continuación al material que está en el
 @section Notación en un solo pentagrama
 @translationof Single staff notation
 
-Esta sección presenta la notación común que se utiliza para música a
-una voz sobre un pentagrama único.
+Esta sección presenta la notación común que se utiliza para música
+una voz sobre un pentagrama único.
 
 @menu
 * Líneas divisorias y comprobaciones de compás::
-* Alteraciones accidentales y armaduras::
+* Alturas y armaduras::
 * Ligaduras de unión y de expresión::
 * Articulaciones y matices dinámicos::
 * Añadir texto::
@@ -86,28 +86,45 @@ líneas divisorias, consulte @ruser{Barras de compás}.
 @unnumberedsubsubsec Comprobaciones de compás
 @translationof Bar checks
 
-Aunque no es estrictamente necesario, es coneniente utilizar
+Aunque no es estrictamente necesario, es conveniente utilizar
 @emph{comprobaciones de compás} dentro del código de entrada para
 indicar dónde se supone que van las líneas divisorias.  Se
-introducen mediante el caráter de barra vertical, @code{|} (AltGr
+introducen mediante el carácter de barra vertical, @code{|} (AltGr
 - 1 en el teclado español).  Con las comprobaciones de compás, el
 programa puede verificar que hemos introducido las duraciones que
 completan los compases correctamente.  Las comprobaciones de
 compás también hacen que el código de entrada sea más fácil de
 leer, porque ayudan a organizar el material.
 
-@lilypond[verbatim,quote,relative=2]
-g1 | e1 | c2. c'4 | g4 c g e | c4 r r2 |
+@c This example deliberately produces a warning
+@lilypond[verbatim,quote]
+\relative {
+  g'1 | e1 | c2. c' | g4 c g e | c4 r r2 |
+}
 @end lilypond
 
+Si compila el código del ejemplo anterior, verá una advertencia en
+la salida de la consola:
+
+@example
+advertencia: la comprobación de compás ha fallado en: 1/2
+ g'1 | e1 | c2. c'
+                   | g4 c g e | c4 r r2 |
+@end example
+
+Aunque la duración que falta está clara en la salida musical de
+este ejemplo sencillo, la advertencia de la salida de consola es
+mucho más efectiva al atraer la atención concretamente al @code{4}
+que falta en el compás 3.
+
 @seealso
 Referencia de la notación:
 @ruser{Comprobación de compás y de número de compás}.
 
 
-@node Alteraciones accidentales y armaduras
-@subsection Alteraciones accidentales y armaduras
-@translationof Accidentals and key signatures
+@node Alturas y armaduras
+@subsection Alturas y armaduras
+@translationof Pitches and key signatures
 
 @menu
 * Alteraciones accidentales::
@@ -115,18 +132,16 @@ Referencia de la notación:
 * Advertencia armaduras y alturas::
 @end menu
 
-@warning{Con frecuencia, los nuevos usuarios se encuentran confundidos
-por las alteraciones accidentales: le rogamos que lea la advertencia
-que aparece al final de esta sección, ¡especialmente si no está
-familiarizado con la teoría musical!}
+@warning{Con frecuencia, a los nuevos usuarios les cuesta
+comprender cómo usa LilyPond la armadura: le rogamos que lea la
+advertencia que aparece al final de esta sección.}
 
 @node Alteraciones accidentales
 @unnumberedsubsubsec Alteraciones accidentales
-@translationof Accidentals
+@translationof Pitch alterations
 
 @cindex accidentales, alteraciones
-@cindex alteraciones
-@cindex alteraciones y armaduras
+@cindex becuadro
 @cindex sostenido
 @cindex doble sostenido
 @cindex sostenido, doble
@@ -146,14 +161,19 @@ Glosario musical:
 @rglos{double flat},
 @rglos{accidental}.
 
+En LilyPond, los nombres de las notas identifican alturas. Por
+ejemplo, @code{c} siempre significa Do natural, cualquiera que sea
+la armadura.
+
 Una nota con @notation{sostenido} se hace añadiendo @code{is} al
 nombre, y una nota @notation{bemol} añadiendo @code{es}.  Como ha
 podido adivinar, un @notation{doble sostenido} o @notation{doble
-bemol} se hace añadiendo @code{isis} o @code{eses}.  Esta sintaxis se
-deriva de las convenciones de nomenclatura de las notas en las lenguas
-nórdicas y germánicas como el alemán y el holandés.  Para utilizar
-otros nombres para las @notation{alteraciones accidentales}, véase
-@ruser{Nombres de las notas en otros idiomas}.
+bemol} se hace añadiendo @code{isis} o @code{eses}.  Esta sintaxis
+se deriva de las convenciones de nomenclatura de las notas en las
+lenguas nórdicas y germánicas como el alemán y el holandés.  Para
+utilizar otros nombres para las @notation{alteraciones
+accidentales}, véase @ruser{Nombres de las notas en otros
+idiomas}.
 
 @lilypond[verbatim,quote]
 \relative { cis''4 ees fisis, aeses }
@@ -189,11 +209,13 @@ La @notation{armadura de la tonalidad} se establece mediante la
 instrucción @code{\key} seguido de una nota y @code{\major} o
 @code{\minor}.
 
-@lilypond[verbatim,quote,relative=2]
-\key d \major
-a1 |
-\key c \minor
-a1 |
+@lilypond[verbatim,quote]
+\relative {
+  \key d \major
+  d'4 fis a c |
+  \bar "||" \key c \minor
+  c,4 ees g b |
+}
 @end lilypond
 
 @smallspace
@@ -212,23 +234,19 @@ Glosario musical:
 @rglos{transposition},
 @rglos{Pitch names}.
 
-Para determinar si hay que imprimir una @notation{alteración
-accidental}, LilyPond examina las notas y la @notation{armadura de la
-tonalidad}.  La armadura solamente afecta a las alteraciones
-@emph{impresas}, ¡no a las propias notas!  Esta funcionalidad suele
-confundir a los que están empezando con el programa, por ello
-permítanos explicarla en detalle.
-
-LilyPond hace una clara distinción entre el contenido musical y la
-presentación.  La alteración (@notation{bemol}, @notation{becuadro} o
-@notation{sostenido}) de una nota es parte de la altura, y por tanto
-es contenido musical.  Si una alteración (un signo @emph{impreso} de
-bemol, becuadro o sostenido) se imprime o no delante de la nota
-correspondiente, es una cuestión de presentación.  La presentación es
-algo que sigue unas reglas, así que las alteraciones accidentales se
-imprimen automáticamente según dichas reglas.  Las alturas de las
-notas en su música son obras de arte, por tanto no se añadirán
-automáticamente, y usted deberá introducir aquello que quiera oír.
+LilyPond distingue entre el contenido musical y su representación
+impresa.  Una entrada como @code{d4 e fis2} define las alturas y
+duraciones de las notas, lo que es el contenido musical.  La
+@notation{armadura} forma parte de la representación impresa.  La
+armadura también establece reglas para las representaciones
+impresas de las notas.  LilyPond compara la altura de cada nota de
+la entrada con la armadura para determinar si imprimir, o no, una
+alteración @notation{accidental}.
+
+La instrucción @code{\key} fija la @notation{armadura}, que afecta
+a la representación impresa, pero @emph{no} modifica la altura
+asignada a una nota cualquiera como @code{c} a partir de la
+entrada.
 
 En el siguiente ejemplo:
 
@@ -240,14 +258,14 @@ En el siguiente ejemplo:
 @end lilypond
 
 @noindent
-Ninguna nota lleva una alteración impresa, pero de todas formas usted
-debe escribir el @code{is} a @code{cis} y a @code{fis} en el archivoo
-de entrada.
+Ninguna nota lleva una alteración impresa, pero de todas formas
+usted debe escribir el @code{is} a @code{cis} y a @code{fis} en el
+archivo de entrada.
 
 El texto @code{b} no significa @qq{imprimir una bolita negra en la
-tercera línea del pentagrama.}  Más bien significa: @qq{hay una nota
-Si natural.}  En la tonalidad de La bemol mayor, @emph{lleva} una
-alteración accidental:
+tercera línea del pentagrama.}  Más bien significa: @qq{hay una
+nota Si natural.}  En la tonalidad de La bemol mayor, @emph{lleva}
+una alteración accidental:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -256,15 +274,14 @@ alteración accidental:
 }
 @end lilypond
 
-Si se encuentra confundido por lo anterior, piense en lo siguiente: si
-estuvises tocando un piano, ¿qué tecla pulsaría?  Si se tratase de una
-tecla negra, entonces ¡@emph{tiene que} añadir @w{@code{-is}} ó
-@w{@code{-es}} al nombre de la nota!
+Cada vez que escriba una nota correspondiente a una tecla negra
+del piano, @emph{tiene que} añadir @w{@code{-is}} ó @w{@code{-es}}
+al nombre de la nota
 
 Poner todas las alteraciones de forma explícita puede que requiera
 algo más de trabajo al teclear, pero la ventaja es que la
-@notation{transposición} es más fácil, y las alteraciones se pueden
-imprimir siguiendo varias convenciones distintas.  Consulte
+@notation{transposición} es más fácil, y las alteraciones se
+pueden imprimir siguiendo varias convenciones distintas.  Consulte
 @ruser{Alteraciones accidentales automáticas} para ver ejemplos de
 cómo se pueden imprimir las alteraciones de acuerdo a reglas
 diferentes.
@@ -306,12 +323,31 @@ Glosario musical:
 @rglos{tie}.
 
 Una @notation{ligadura de unión} se crea adjuntando un carácter de
-tilde curva @code{~} a la primera nota ligada:
+tilde curva @code{~} a la primera de las dos notas ligadas:
+
+@lilypond[verbatim,quote]
+\relative { g'4~ g c2~ | c4~ c8 a~ a2 | }
+@end lilypond
+
+@cindex duración aislada
+@cindex aislada, duración
+
+Cuando la altura no cambia, como es el caso cada vez que hay una
+ligadura de unión, las alturas que siguen se pueden omitir, y
+especificar tan solo las duraciones:
 
 @lilypond[verbatim,quote]
 \relative { g'4~ 4 c2~ | 4~ 8 a~ 2 | }
 @end lilypond
 
+Esta abreviatura puede ser de utilidad en otros lugares donde las
+duraciones cambian pero la altura se mantiene fija; sin embargo,
+recuerde que una altura aislada seguida de un espacio y de una
+duración aislada se interpreta como una sola nota.  En otras
+palabras, @code{c4 a 8 8} se interpreta como @code{c4 a8 a8}, no
+como @code{c4 a4 a8 a8}.  En vez de ello, escriba @code{c4 a4 8 8
+}.
+
 @node Ligaduras de expresión
 @unnumberedsubsubsec Ligaduras de expresión
 @translationof Slurs
@@ -320,8 +356,8 @@ Glosario musical:
 @rglos{slur}.
 
 Una @notation{ligadura de expresión} es una curva que se traza
-abarcando varias notas.  Las notas inicial y final se marcan mediante
-@code{(} y @code{)} respectivamente.
+abarcando varias notas.  Las notas inicial y final se marcan
+mediante @code{(} y @code{)} respectivamente.
 
 @lilypond[verbatim,quote]
 \relative { d''4( c16) cis( d e c cis d) e( d4) }
@@ -337,9 +373,7 @@ Glosario musical:
 
 Las ligaduras que se utilizan para indicar @notation{fraseos} más
 largos se pueden introducir mediante @code{\(} y @code{\)}.  Puede
-haber al mismo tiempo ligaduras de legato y ligaduras de fraseo, pero
-no es posible tener legatos simultáneos o ligaduras de expresión
-simultáneas.
+haber al mismo tiempo ligaduras de legato y ligaduras de fraseo.
 
 @lilypond[verbatim,quote]
 \relative { g'4\( g8( a) b( c) b4\) }
@@ -358,13 +392,14 @@ Glosario musical:
 @rglos{slur},
 @rglos{tie}.
 
-Una @notation{ligadura de expresión} parece una @notation{ligadura de
-unión}, pero tiene un significado distinto.  Una ligadura (de unión)
-sencillamente hace que la primera nota sea más larga, y sólo se puede
-utilizar sobre parejas de notas iguales.  Las ligaduras de expresión
-indican la @notation{articulación} de las notas, y se pueden utilizar
-sobre grupos mayores de notas.  Las ligaduras de unión y de expresión
-se pueden anidar unas dentro de otras.
+Una @notation{ligadura de expresión} parece una @notation{ligadura
+de unión}, pero tiene un significado distinto.  Una ligadura (de
+unión) sencillamente hace que la primera nota sea más larga, y
+sólo se puede utilizar sobre parejas de notas iguales.  Las
+ligaduras de expresión indican la @notation{articulación} de las
+notas, y se pueden utilizar sobre grupos mayores de notas.  Las
+ligaduras de unión y de expresión se pueden anidar unas dentro de
+otras.
 
 @lilypond[verbatim,quote]
 \relative { c''4(~ c8 d~ 4 e) }
@@ -399,8 +434,9 @@ Referencia de la notación:
 Glosario musical:
 @rglos{articulation}.
 
-Las @notation{articulaciones} más corrientes se pueden añadir a las
-notas utilizando un guión @code{-} seguido de un carácter único:
+Las @notation{articulaciones} más corrientes se pueden añadir a
+las notas utilizando un guión @code{-} seguido de un carácter
+único:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -421,8 +457,9 @@ notas utilizando un guión @code{-} seguido de un carácter único:
 Glosario musical:
 @rglos{fingering}.
 
-De manera similar, las @notation{digitaciones} se pueden añadir a una
-nota utilizando un guión (@code{-}) seguido del dígito deseado:
+De manera similar, las @notation{digitaciones} se pueden añadir a
+una nota utilizando un guión (@code{-}) seguido del dígito
+deseado:
 
 @lilypond[verbatim,quote]
 \relative { c''4-3 e-5 b-2 a-1 }
@@ -432,7 +469,8 @@ Las articulaciones y digitaciones normalmente se colocan de forma
 automática, pero puede especificar una dirección mediante @code{^}
 (encima) o @code{_} (debajo).  También puede usar varias
 articulaciones sobre la misma nota.  Sin embargo, casi siempre es
-mejor dejar que LilyPond determine la dirección de las articulaciones.
+mejor dejar que LilyPond determine la dirección de las
+articulaciones.
 
 @lilypond[verbatim,quote]
 \relative { c''4_-^1 d^. f^4_2-> e^-_+ }
@@ -472,10 +510,10 @@ añadiendo las marcas (con una barra invertida) a la nota:
 \relative { c''4\ff c\mf c\p c\pp }
 @end lilypond
 
-Los @notation{crescendi} y @notation{decrescendi} comienzan con las
-órdenes @code{\<} y @code{\>}.  La siguiente indicación de matiz, como
-por ejemplo @code{\f}, dará por terminado el (de)crescendo, o bien se
-puede usar la instrucción @code{\!}:
+Los @notation{crescendi} y @notation{decrescendi} comienzan con
+las órdenes @code{\<} y @code{\>}.  La siguiente indicación de
+matiz, como por ejemplo @code{\f}, dará por terminado el
+(de)crescendo, o bien se puede usar la instrucción @code{\!}:
 
 @lilypond[verbatim,quote]
 \relative { c''4\< c\ff\> c c\! }
@@ -544,23 +582,25 @@ Referencia de la notación:
 Glosario musical:
 @rglos{beam}.
 
-Todas las @notation{barras} de las figuras se dibujan automáticamente:
+Todas las @notation{barras} de las figuras se dibujan
+automáticamente:
 
 @lilypond[verbatim,quote]
 \relative { a'8 ais d ees r d c16 b a8 }
 @end lilypond
 
-Si no le gustan las barras automáticas, pueden forzarse manualmente.
-Marque la primera nota que comprende la barra con @code{[} y la última
-con @code{]}.
+Si no le gustan las barras automáticas, pueden forzarse
+manualmente.  Marque la primera nota que comprende la barra con
+@code{[} y la última con @code{]}.
 
 @lilypond[verbatim,quote]
 \relative { a'8[ ais] d[ ees r d] c16 b a8 }
 @end lilypond
 
-Si quiere desactivar completamente el barrado automático o para una
-sección extensa de música, utilice la instrucción @code{\autoBeamOff}
-para apagarlo y @code{\autoBeamOn} para activarlo de nuevo.
+Si quiere desactivar completamente el barrado automático o para
+una sección extensa de música, utilice la instrucción
+@code{\autoBeamOff} para apagarlo y @code{\autoBeamOn} para
+activarlo de nuevo.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -691,10 +731,10 @@ Esta sección es una introducción a las notas simultáneas: varios
 instrumentos, varios pentagramas para un solo instrumento
 (p.ej. piano) y acordes.
 
-La palabra @qq{polifonía} en música hace referencia al hecho de tener
-más de una voz en un momento determinado dentro de una pieza musical.
-La palabra @qq{polifonía} en LilyPond se refiere al hecho de tener más
-de una voz en el mismo pentagrama.
+La palabra @qq{polifonía} en música hace referencia al hecho de
+tener más de una voz en un momento determinado dentro de una pieza
+musical.  La palabra @qq{polifonía} en LilyPond se refiere al
+hecho de tener más de una voz en el mismo pentagrama.
 
 @menu
 * Explicación de las expresiones musicales::
@@ -721,25 +761,25 @@ de una voz en el mismo pentagrama.
 @end menu
 
 En los archivos de entrada de LilyPond, la música se representa
-mediante @emph{expresiones musicales}.  Una sola nota es una expresión
-musical:
+mediante @emph{expresiones musicales}.  Una sola nota es una
+expresión musical:
 
 @lilypond[verbatim,quote,fragment]
 a'4
 @end lilypond
 
 Al encerrar un grupo de notas dentro de llaves creamos una
-@emph{expresión musical compuesta}.  Aquí hemos creado una expresión
-musical compuesta con dos notas:
+@emph{expresión musical compuesta}.  Aquí hemos creado una
+expresión musical compuesta con dos notas:
 
 @lilypond[verbatim,quote]
 \relative { a'4 g4 }
 @end lilypond
 
-Si colocamos un grupo de expresiones musicales (p.ej.: notas) dentro
-de llaves, eso significa que se encuentran en secuencia (es decir,
-cada una sigue a la anterior).  El resultado es otra expresión
-musical:
+Si colocamos un grupo de expresiones musicales (p.ej.: notas)
+dentro de llaves, eso significa que se encuentran en secuencia (es
+decir, cada una sigue a la anterior).  El resultado es otra
+expresión musical:
 
 @lilypond[verbatim,quote]
 \relative { { a'4 g } f4 g }
@@ -749,11 +789,11 @@ musical:
 @unnumberedsubsubsec Analogía: expresiones matemáticas
 @translationof Analogy mathematical expressions
 
-Este mecanismo es semejante a las fórmulas matemáticas: una fórmula
-grande se construye combinando fórmulas pequeñas.  Dichas fórmulas se
-llaman expresiones, y su definición es recursiva de tal forma que se
-pueden construir expresiones de un tamaño y complejidad arbitrarios.
-Por ejemplo:
+Este mecanismo es semejante a las fórmulas matemáticas: una
+fórmula grande se construye combinando fórmulas pequeñas.  Dichas
+fórmulas se llaman expresiones, y su definición es recursiva de
+tal forma que se pueden construir expresiones de un tamaño y
+complejidad arbitrarios.  Por ejemplo:
 
 @example
 1
@@ -796,15 +836,15 @@ hace necesario para músicas complejas como las partituras polifónicas.
 Glosario musical:
 @rglos{polyphony}.
 
-Esta técnica es muy útil para la música @notation{polifónica}.  Para
-introducir música con más voces o con más pentagramas, lo que hacemos
-es combinar varias expresiones en paralelo.  Para indicar que dos
-voces se deben interpretar al mismo tiempo, sencillamente introduzca
-una combinación simultánea de expresiones musicales.  Una expresión
-musical @q{simultánea} se forma encerrando las expresiones dentro de
-@code{<<} y @code{>>}.  En el ejemplo que sigue, tres secuencias (cada
-una de las cuales contiene dos notas diferentes) se combinan de forma
-simultánea:
+Esta técnica es muy útil para la música @notation{polifónica}.
+Para introducir música con más voces o con más pentagramas, lo que
+hacemos es combinar varias expresiones en paralelo.  Para indicar
+que dos voces se deben interpretar al mismo tiempo, sencillamente
+introduzca una combinación simultánea de expresiones musicales.
+Una expresión musical @q{simultánea} se forma encerrando las
+expresiones dentro de @code{<<} y @code{>>}.  En el ejemplo que
+sigue, tres secuencias (cada una de las cuales contiene dos notas
+diferentes) se combinan de forma simultánea:
 
 @lilypond[verbatim,quote]
 <<
@@ -814,15 +854,16 @@ simultánea:
 >>
 @end lilypond
 
-Tenga en cuenta que hemos sangrado cada nivel jerárquico de la entrada
-con un margen distinto.  A LilyPond no le importa cuánto (o cuán poco)
-espacio haya al comienzo de una línea, pero el establecimiento de
-márgenes distintos dentro del código de LilyPond, de esta forma, lo
-hace mucho más fácil de leer por nosotros los seres humanos.
+Tenga en cuenta que hemos sangrado cada nivel jerárquico de la
+entrada con un margen distinto.  A LilyPond no le importa cuánto
+(o cuán poco) espacio haya al comienzo de una línea, pero el
+establecimiento de márgenes distintos dentro del código de
+LilyPond, de esta forma, lo hace mucho más fácil de leer por
+nosotros los seres humanos.
 
 @warning{Cada nota se entiende relativa a la nota anterior de la
-entrada, solamente la primera es relativa a la @code{c''} dentro de
-la instrucción inicial @code{@bs{}\relative}.}
+entrada, solamente la primera es relativa a la @code{c''} dentro
+de la instrucción inicial @code{@bs{}\relative}.}
 
 
 @node Expresiones musicales simultáneas un solo pentagrama
@@ -830,11 +871,11 @@ la instrucción inicial @code{@bs{}\relative}.}
 @translationof Simultaneous music expressions single staff
 
 Para determinar el número de pentagramas en una pieza, LilyPond
-examina el comienzo de la primera expresión.  Si hay una sola nota,
-hay un solo pentagrama; si hay una expresión simultánea, hay más de un
-pentagrama.  El siguiente ejemplo presenta una expresión compleja,
-pero dado que comienza con una sola nota, se dispone sobre un solo
-pentagrama.
+examina el comienzo de la primera expresión.  Si hay una sola
+nota, hay un solo pentagrama; si hay una expresión simultánea, hay
+más de un pentagrama.  El siguiente ejemplo presenta una expresión
+compleja, pero dado que comienza con una sola nota, se dispone
+sobre un solo pentagrama.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -863,17 +904,17 @@ pentagrama.
 @funindex Lyrics
 @funindex ChordNames
 
-Como ya hemos visto en @ref{Explicación de las expresiones musicales},
-los archivos de entrada para LilyPond se construyen a base de
-expresiones musicales.  Si la partitura comienza con expresiones
-musicales simultáneas, LilyPond crea varios pentagramas.  Sin embargo
-es más fácil ver lo que ocurre si creamos cada uno de los pentagramas
-de forma explícita.
+Como ya hemos visto en @ref{Explicación de las expresiones
+musicales}, los archivos de entrada para LilyPond se construyen a
+base de expresiones musicales.  Si la partitura comienza con
+expresiones musicales simultáneas, LilyPond crea varios
+pentagramas.  Sin embargo es más fácil ver lo que ocurre si
+creamos cada uno de los pentagramas de forma explícita.
 
 Para imprimir más de un pentagrama, cada fragmento de música que
-constituye un pentagrama se marca escribiendo @code{\new Staff} antes
-de él.  Estos elementos @code{Staff} se combinan después en paralelo
-con @code{<<} y @code{>>}:
+constituye un pentagrama se marca escribiendo @code{\new Staff}
+antes de él.  Estos elementos @code{Staff} se combinan después en
+paralelo con @code{<<} y @code{>>}:
 
 @lilypond[verbatim,quote]
 <<
@@ -882,21 +923,21 @@ con @code{<<} y @code{>>}:
 >>
 @end lilypond
 
-La instrucción @code{\new} inaugura un @q{contexto de notación}.  Un
-contexto de notación es un entorno dentro del que se interpretan los
-acontecimientos musicales (como las notas o las instrucciones
-@code{\clef}).  Para piezas sencillas, tales contextos de notación se
-crean automáticamente.  Para piezas más complicadas, es mejor marcar
-los contextos de forma explícita.
+La instrucción @code{\new} inaugura un @q{contexto de notación}.
+Un contexto de notación es un entorno dentro del que se
+interpretan los acontecimientos musicales (como las notas o las
+instrucciones @code{\clef}).  Para piezas sencillas, tales
+contextos de notación se crean automáticamente.  Para piezas más
+complicadas, es mejor marcar los contextos de forma explícita.
 
 Existen varias clases de contextos.  @code{Score}, @code{Staff} y
-@code{Voice} manejan la notación melódica, mientras que @code{Lyrics}
-se ocupa de los textos cantados y @code{ChordNames} imprime los
-nombres de los acordes.
+@code{Voice} manejan la notación melódica, mientras que
+@code{Lyrics} se ocupa de los textos cantados y @code{ChordNames}
+imprime los nombres de los acordes.
 
 En términos de sintaxis, la anteposición de @code{\new} a una
-expresión musical crea una expresión musical mayor.  Es semejante al
-signo menos de las matemáticas.  La fórmula @math{(4+5)} es una
+expresión musical crea una expresión musical mayor.  Es semejante
+al signo menos de las matemáticas.  La fórmula @math{(4+5)} es una
 expresión, por tanto @math{-(4+5)} es una expresión más amplia.
 
 Las indicaciones de compás escritas en un pentagrama afectan al resto
@@ -959,9 +1000,9 @@ He aquí un pequeño ejemplo:
 Otros grupos de pentagramas se declaran mediante @code{\new
 GrandStaff}, que es apropiado para partituras orquestales, y
 @code{\new ChoirStaff}, que es apropiado para partituras vocales.
-Cada uno de estos grupos de pautas forma un tipo de contexto distinto,
-que produce la llave a la izquierda y que también controla el alcance
-de las líneas divisorias.
+Cada uno de estos grupos de pautas forma un tipo de contexto
+distinto, que produce la llave a la izquierda y que también
+controla el alcance de las líneas divisorias.
 
 
 @seealso
@@ -986,8 +1027,8 @@ Glosario musical:
 
 Hemos visto con anterioridad cómo se pueden combinar las notas
 formando @notation{acordes} que indican que son simultáneas,
-encerrándolas entre dobles ángulos.  Sin embargo, la forma normal de
-indicar un acorde es encerrar las notas entre ángulos
+encerrándolas entre dobles ángulos.  Sin embargo, la forma normal
+de indicar un acorde es encerrar las notas entre ángulos
 @emph{sencillos}.  Observe que todas las notas de un acorde deben
 tener la misma duración, y que la duración se escribe después del
 ángulo de cierre.
@@ -1034,9 +1075,10 @@ Referencia de la notación:
 @funindex >>
 
 La música polifónica en LilyPond, aunque no es difícil, utiliza
-conceptos que aún no hemos tratado, por lo que no vamos a presentarlos
-en este momento.  En su lugar, las secciones siguientes presentan
-estos conceptos y los explican en profundidad.
+conceptos que aún no hemos tratado, por lo que no vamos a
+presentarlos en este momento.  En su lugar, las secciones
+siguientes presentan estos conceptos y los explican en
+profundidad.
 
 @seealso
 Manual de aprendizaje:
@@ -1084,9 +1126,9 @@ infantil, @qq{Girls and boys come out to play}:
 }
 @end lilypond
 
-La @notation{letra} se puede asignar a esas notas, combinando ambas
-con la palabra clave @code{\addlyrics}.  La letra se escribe separando
-cada sílaba mediante un espacio.
+La @notation{letra} se puede asignar a esas notas, combinando
+ambas con la palabra clave @code{\addlyrics}.  La letra se escribe
+separando cada sílaba mediante un espacio.
 
 @lilypond[verbatim,quote]
 <<
@@ -1096,14 +1138,14 @@ cada sílaba mediante un espacio.
     d''4 b8 c4 a8 | d4 b8 g4
   }
   \addlyrics {
-    Girls and boys come out to play,
+    Girls and boys come out to play,
   }
 >>
 @end lilypond
 
-Observe los
-ángulos dobles @w{@code{<<@dots{}>>}} alrededor del fragmento entero
-para expresar que la música y la letra han de suceder al mismo tiempo.
+Observe los ángulos dobles @w{@code{<<@dots{}>>}} alrededor del
+fragmento entero para expresar que la música y la letra han de
+suceder al mismo tiempo.
 
 @node Alineación de la letra a una melodía
 @subsection Alineación de la letra a una melodía
@@ -1122,8 +1164,8 @@ Glosario musical:
 @rglos{melisma},
 @rglos{extender line}.
 
-La siguiente línea de la canción infantil es @notation{The moon doth
-shine as bright as day}.  A continuación vamos a ampliarla:
+La siguiente línea de la canción infantil es @notation{The moon
+doth shine as bright as day}.  A continuación vamos a ampliarla:
 
 @lilypond[verbatim,quote]
 <<
@@ -1134,32 +1176,20 @@ shine as bright as day}.  A continuación vamos a ampliarla:
     a4 b8 c b a | d4 b8 g4. |
   }
   \addlyrics {
-    Girls and boys come out to play,
-    The | moon doth shine as | bright as day; |
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
   }
 >>
 @end lilypond
 
-Si compilamos el código del ejemplo anterior, veremos algunos mensajes
-de advertencia sobre la consola:
-
-@example
-song.ly:12:29: warning: la comprobación de compás ha fallado en: 5/8
-    The | moon doth shine as
-                             | bright as day; |
-song.ly:12:46: warning: la comprobación de compás ha fallado en: 3/8
-    The | moon doth shine as | bright as day;
-                                              |
-@end example
-
-Éste es un buen ejemplo de la utilidad de las comprobaciones de
-compás.  Ahora, si miramos la música, podemos observar que la letra
-adicional no se alinea correctamente con las notas.  La palabra
-@q{shine} se debe cantar sobre dos notas, no una.  Esto se conoce como
+Si miramos la música, podemos observar que la letra adicional no
+se alinea correctamente con las notas.  La palabra @q{shine} se
+debe cantar sobre dos notas, no una.  Esto se conoce como
 @notation{melisma}, una sílaba única que se canta sobre más de una
 nota.  Existen varias formas de hacer que una sílaba recaiga sobre
 varias notas, siendo la más sencilla escribir una ligadura de
-expresión sobre ellas (véase @ref{Ligaduras de unión y de expresión}):
+expresión sobre ellas (véase
+@ref{Ligaduras de unión y de expresión}):
 
 @lilypond[verbatim,quote]
 <<
@@ -1170,17 +1200,18 @@ expresión sobre ellas (véase @ref{Ligaduras de unión y de expresión}):
     a4 b8 c( b) a | d4 b8 g4. |
   }
   \addlyrics {
-    Girls and boys come out to play,
-    The | moon doth shine as | bright as day; |
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
   }
 >>
 @end lilypond
 
-Ahora la letra se alinea correctamente con las notas, pero el barrado
-automático de las notas que corresponden a @notation{shine as} no
-parece correcto.  Podemos remediarlo insertando instrucciones de
-barrado manual para sobreescribir el barrado automático; para ver más
-detalles consulte @ref{Barras automáticas y manuales}.
+Ahora la letra se alinea correctamente con las notas, pero el
+barrado automático de las notas que corresponden a @notation{shine
+as} no parece correcto.  Podemos remediarlo insertando
+instrucciones de barrado manual para sobreescribir el barrado
+automático; para ver más detalles consulte
+@ref{Barras automáticas y manuales}.
 
 @lilypond[verbatim,quote]
 <<
@@ -1191,8 +1222,8 @@ detalles consulte @ref{Barras automáticas y manuales}.
     a4 b8 c([ b]) a | d4 b8 g4. |
   }
   \addlyrics {
-    Girls and boys come out to play,
-    The | moon doth shine as | bright as day; |
+    Girls and boys come out to play,
+    The moon doth shine as bright as day;
   }
 >>
 @end lilypond
@@ -1211,18 +1242,19 @@ melisma:
     a4 b8 c[ b] a | d4 b8 g4. |
   }
   \addlyrics {
-    Girls and boys come out to play,
-    The | moon doth shine _ as | bright as day; |
+    Girls and boys come out to play,
+    The moon doth shine _ as bright as day;
   }
 >>
 @end lilypond
 
 Si una sílaba se extiende sobre varias notas o una sola nota muy
-larga, normalmente se traza una @notation{línea extensora} desde la
-sílaba que se extiende y por debajo de todas las notas que
+larga, normalmente se traza una @notation{línea extensora} desde
+la sílaba que se extiende y por debajo de todas las notas que
 corresponden a dicha sílaba.  Se escribe como dos guiones bajos
-@code{__}.  He aquí un ejemplo extraído de los primeros tres compases
-del @notation{Lamento de Dido}, de @notation{Dido y Eneas} de Purcell:
+@code{__}.  He aquí un ejemplo extraído de los primeros tres
+compases del @notation{Lamento de Dido}, de @notation{Dido y
+Eneas} de Purcell:
 
 @lilypond[verbatim,quote]
 <<
@@ -1233,20 +1265,20 @@ del @notation{Lamento de Dido}, de @notation{Dido y Eneas} de Purcell:
     c4.( bes8 a4. g8 fis4.) g8 | fis1
   }
   \addlyrics {
-    When I am laid,
-    am | laid __ in | earth,
+    When I am laid,
+    am laid __ in earth,
   }
 >>
 @end lilypond
 
 Hasta el momento, ninguno de los ejemplos implicaban palabras que
-tuviesen más de una sílaba.  Estas palabras se reparten por lo general
-a razón de una nota por cada sílaba, con guiones cortos entre las
-sílabas.  Dichos guiones separadores se teclean como dos guiones, con
-el resultado de un guión corto centrado entre las sílabas.
-Presentamos a continuación un ejemplo que demuestra esto y todo lo que
-hemos aprendido hasta el momento acerca de la alineación de la letra a
-las notas.
+tuviesen más de una sílaba.  Estas palabras se reparten por lo
+general a razón de una nota por cada sílaba, con guiones cortos
+entre las sílabas.  Dichos guiones separadores se teclean como dos
+guiones, con el resultado de un guión corto centrado entre las
+sílabas.  Presentamos a continuación un ejemplo que demuestra esto
+y todo lo que hemos aprendido hasta el momento acerca de la
+alineación de la letra a las notas.
 
 @c no ragged-right here because otherwise the hyphens get lost,
 @c but the example is long enough to avoid looking strange.
@@ -1260,8 +1292,8 @@ las notas.
     d4 d e | c2
   }
   \addlyrics {
-    A -- | way in a __ | man -- ger,
-    no __ | crib for a | bed, __
+    A -- way in a __ man -- ger,
+    no __ crib for a bed,
   }
 >>
 @end lilypond
@@ -1286,7 +1318,7 @@ el aria de Fígaro @notation{Largo al factotum}:
     c'4.~ 8 d b | c8([ d]) b c d b | c8
   }
   \addlyrics {
-    Lar -- go_al fac -- | to -- tum del -- la cit -- | tà
+    Lar -- go_al fac -- to -- tum del -- la cit -- tà
   }
 >>
 @end lilypond
@@ -1317,7 +1349,7 @@ del @notation{Judas Macabeo} de Haendel:
     c''8 | c8([ bes]) a a([ g]) f | f'4. b, | c4.~ 4
   }
   \addlyrics {
-    Let | flee -- cy flocks the | hills a -- | dorn, __
+    Let flee -- cy flocks the hills a -- dorn, __
   }
   \relative {
     \key f \major
@@ -1326,16 +1358,16 @@ del @notation{Judas Macabeo} de Haendel:
     r8 | r4. r4 c'8 | a'8([ g]) f f([ e]) d | e8([ d]) c bes'4
   }
   \addlyrics {
-    Let | flee -- cy flocks the | hills a -- dorn,
+    Let flee -- cy flocks the hills a -- dorn,
   }
 >>
 @end lilypond
 
 
-Cualquier partitura de una complejidad mayor que la de este sencillo
-ejemplo se hace mejor separando la letra de la estructura de
-pentagramas mediante variables (expresiones con nombre).  Éstas se
-tratan en @ref{Organizar las piezas mediante variables}.
+Cualquier partitura de una complejidad mayor que la de este
+sencillo ejemplo se hace mejor separando la letra de la estructura
+de pentagramas mediante variables (expresiones con nombre).  Éstas
+se tratan en @ref{Organizar las piezas mediante variables}.
 
 
 @seealso
@@ -1347,9 +1379,9 @@ Referencia de la notación:
 @section Retoques finales
 @translationof Final touches
 
-Éste es el último apartado del tutorial; muestra la forma de dar los
-toques finales a piezas sencillas, y ofrece una introducción al resto
-del manual.
+Éste es el último apartado del tutorial; muestra la forma de dar
+los toques finales a piezas sencillas, y ofrece una introducción
+al resto del manual.
 
 @menu
 * Organizar las piezas mediante variables::
@@ -1375,21 +1407,22 @@ del manual.
 
 Cuando los elementos que hemos discutido anteriormente se combinan
 para producir archivos mayores, las expresiones musicales se hacen
-enormes.  En música polifónica con muchos pentagramas, los archivos de
-entrada pueden volverse muy propensos a la confusión.  Podemos reducir
-esta confusión utilizando las @emph{variables}.
+enormes.  En música polifónica con muchos pentagramas, los
+archivos de entrada pueden volverse muy propensos a la confusión.
+Podemos reducir esta confusión utilizando las @emph{variables}.
 
-Con las variables (también conocidas como identificadores o macros),
-podemos trocear las expresiones musicales complejas.  Una variable se
-asigna de la manera siguiente:
+Con las variables (también conocidas como identificadores o
+macros), podemos trocear las expresiones musicales complejas.  Una
+variable se asigna de la manera siguiente:
 
 @example
 musicaConNombre = @{ @dots{} @}
 @end example
 
-El contenido de la expresión musical @code{musicaConNombre} se puede
-usar posteriormente colocando una barra invertida delante del nombre
-(@code{\musicaConNombre}, igual que una orden normal de LilyPond).
+El contenido de la expresión musical @code{musicaConNombre} se
+puede usar posteriormente colocando una barra invertida delante
+del nombre (@code{\musicaConNombre}, igual que una orden normal de
+LilyPond).
 
 @lilypond[verbatim,quote]
 violin = \new Staff {
@@ -1414,23 +1447,22 @@ cello = \new Staff {
 @end lilypond
 
 @noindent
-El nombre de una variable debe consistir enteramente en caracteres
-alfabéticos, es decir sin números, guiones ni guiones bajos.
+Por convención, los nombres de variable consisten enteramente en
+caracteres alfabéticos.
 
-Las variables se deben definir @emph{antes} de la expresión musical
-principal, pero se pueden usar tantas veces como se quiera, en
-cualquier lugar, una vez que han sido definidas.  Incluso se pueden
-usar dentro de la definición de otra variable, proporcionando una vía
-para acortar el código si una sección musical se repite muchas veces.
+Las variables se deben definir @emph{antes} de la expresión
+musical principal, pero se pueden usar tantas veces como se
+quiera, en cualquier lugar, una vez que han sido definidas.
+Incluso se pueden usar dentro de la definición de otra variable,
+proporcionando una vía para acortar el código si una sección
+musical se repite muchas veces.
 
 @c KEEP LY
-@lilypond[verbatim,quote,ragged-right]
-tresilloA = \tuplet 3/2 { c,8 e g }
+@lilypond[verbatim,quote]
+tresilloA = \relative { \tuplet 3/2 { c'8 e g } }
 compasA = { \tresilloA \tresilloA \tresilloA \tresilloA }
 
-\relative c'' {
- \compasA \compasA
-}
+{ \compasA \compasA }
 @end lilypond
 
 Las variables se pueden usar para otros muchos tipos de objetos dentro
@@ -1442,8 +1474,9 @@ nombre = "Wendy"
 papelAcinco = \paper @{ paperheight = 21.0 \cm @}
 @end example
 
-Dependiendo de su contenido, la variable se puede usar en distintos
-lugares.  El siguiente ejemplo utiliza las variables anteriores:
+Dependiendo de su contenido, la variable se puede usar en
+distintos lugares.  El siguiente ejemplo utiliza las variables
+anteriores:
 
 @example
 \paper @{
@@ -1468,10 +1501,10 @@ lugares.  El siguiente ejemplo utiliza las variables anteriores:
 @funindex \header
 @funindex header
 
-La información sobre el título, autor, número de Opus y similares se
-escriben en el bloque @code{\header}.  Éste se encuentra fuera de la
-expresión musical principal; el bloque @code{\header} normalmente se
-sitúa por debajo del número de versión.
+La información sobre el título, autor, número de Opus y similares
+se escriben en el bloque @code{\header}.  Éste se encuentra fuera
+de la expresión musical principal; el bloque @code{\header}
+normalmente se sitúa por debajo del número de versión.
 
 @example
 \version @w{"@version{}"}
@@ -1488,8 +1521,8 @@ sitúa por debajo del número de versión.
 @end example
 
 Cuando se procesa el archivo, el título y el autor se imprimen por
-encima de la música.  Puede obtener más información sobre los títulos
-en @ruser{Crear títulos encabezamientos y pies de página}.
+encima de la música.  Puede obtener más información sobre los
+títulos en @ruser{Crear títulos encabezamientos y pies de página}.
 
 
 @node Nombres de nota absolutos
@@ -1503,15 +1536,16 @@ en @ruser{Crear títulos encabezamientos y pies de página}.
 @cindex alturas, valores absolutos de
 @cindex absolutos, nombres de nota
 
-Hasta el momento siempre hemos utilizado @code{\relative} para definir
-las alturas.  Ésta es normalmente la forma más rápida de escribir la mayor parte
-de la música.  Sin @code{\relative}, las alturas se interpretan en modo absoluto.
+Hasta el momento hemos utilizado @code{\relative} para definir las
+alturas.  Ésta es normalmente la forma más rápida de escribir la
+mayor parte de la música.  Sin @code{\relative}, las alturas se
+interpretan en modo absoluto.
 
-En este modo, LilyPond tratará todas las alturas como
-valores absolutos.  Una @code{c'} significará siembre un Do central,
-una @code{b} significará siempre la nota inmediatamente por debajo del
-Do central, y una @code{g,} significará siempre la nota que se coloca
-en la primera línea del pentagrama en clave de Fa.
+En este modo, LilyPond tratará todas las alturas como valores
+absolutos.  Una @code{c'} significará siembre un Do@tie{}central,
+una @code{b} significará siempre la nota inmediatamente por debajo
+del Do@tie{}central, y una @code{g,} significará siempre la nota
+que se coloca en la primera línea del pentagrama en clave de Fa.
 
 @lilypond[verbatim,quote]
 {
@@ -1521,39 +1555,35 @@ en la primera línea del pentagrama en clave de Fa.
 }
 @end lilypond
 
-He aquí una escala que abarca cuatro octavas:
+La escritura de una melodía en clave de Sol implica un gran número
+de apóstrofos (@code{'}).  Considere este fragmento de Mozart:
 
 @lilypond[verbatim,quote]
 {
-  \clef "bass"
-  c,4 d, e, f, |
-  g,4 a, b, c |
-  d4 e f g |
-  a4 b c' d' |
-  \clef "treble"
-  e'4 f' g' a' |
-  b'4 c'' d'' e'' |
-  f''4 g'' a'' b'' |
-  c'''1 |
+  \key a \major
+  \time 6/8
+  cis''8. d''16 cis''8 e''4 e''8 |
+  b'8. cis''16 b'8 d''4 d''8 |
 }
 @end lilypond
 
-Como puede ver, escribir una melodía en clave de Sol implica escribir
-gran cantidad de apóstrofos @q{'} .  Consideremos este fragmento de
-Mozart:
+@funindex \fixed
+Las marcas de octava que son comunes se pueden indicar una sola
+vez, utilizando la instrucción @code{\fixed} seguida de una altura
+de referencia:
 
 @lilypond[verbatim,quote]
-{
+\fixed c'' {
   \key a \major
   \time 6/8
-  cis''8. d''16 cis''8 e''4 e''8 |
-  b'8. cis''16 b'8 d''4 d''8 |
+  cis8. d16 cis8 e4 e8 |
+  b,8. cis16 b,8 d4 d8 |
 }
 @end lilypond
 
-Todos estos apóstrofos hacen casi ilegible el código de entrada y será
-origen de numerosos errores.  Con @code{\relative}, el ejemplo
-anterior es mucho más fácil de leer:
+Con @code{\relative}, el ejemplo anterior no requiere marcas de
+cambio de octava porque esta melodía se mueve por intervalos no
+mayores de una cuarta, o tres posiciones dentro del pentagrama:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1565,10 +1595,10 @@ anterior es mucho más fácil de leer:
 @end lilypond
 
 Si comete un error con una marca de octava (@code{'} o @code{,})
-mientras trabaja en el modo @code{\relative}, será muy obvio (muchas
-notas estarán en la octava equivocada).  Mientras trabaja en el modo
-absoluto, un solo fallo no será tan visible, y tampoco será tan fácil
-de localizar.
+mientras trabaja en el modo @code{\relative}, será muy obvio
+(muchas notas estarán en la octava equivocada).  Mientras trabaja
+en el modo absoluto, un solo fallo no será tan visible, y tampoco
+será tan fácil de localizar.
 
 Sin embargo, el modo absoluto es útil para escribir música que
 contenga intervalos grandes, y será extremadamente útil para hacer
@@ -1584,46 +1614,48 @@ relativas externa e interna son independientes:
 \relative { c'4 \relative { f'' g } c }
 @end lilypond
 
-@funindex \absolute
-Si está usando música absoluta dentro de un bloque de música
-relativa, tendrá que marcar la música absoluta explícitamente con
-la instrucción @code{\absolute} para evitar que se incorpore a la
-música relativa:
+Para usar el modo absoluto dentro de @code{\relative}, ponga la
+música absoluta dentro de @code{\fixed c @{ @dots{} @}} y las
+notas absolutas no afectarán a las octavas de la música relativa:
 
 @lilypond[verbatim,quote]
-\relative { c'4 \absolute { f'' g'' } c }
+\relative {
+  c'4 \fixed c { f'' g'' } c |
+  c4 \fixed c'' { f g } c
+}
 @end lilypond
 
 @node Más allá del tutorial
 @subsection Más allá del tutorial
 @translationof After the tutorial
 
-Después de terminar el tutorial, quizá debería probar a escribir una o
-dos piezas.  Comience con una de las plantillas que aparecen en
-@ref{Plantillas} y añada algunas notas.  Si necesita un tipo de
-notación que no ha sido tratada en el tutorial, eche un vistazo a la
-Referencia de Notación, empezando por @ruser{Notación musical}.  Si
-quiere escribir música para un conjunto instrumental que no está
-cubierto por ninguna plantilla, consulte @ref{Extender las
+Después de terminar el tutorial, quizá debería probar a escribir
+una o dos piezas.  Comience con una de las plantillas que aparecen
+en @ref{Plantillas} y añada algunas notas.  Si necesita un tipo de
+notación que no ha sido tratada en el tutorial, eche un vistazo a
+la Referencia de Notación, empezando por @ruser{Notación musical}.
+Si quiere escribir música para un conjunto instrumental que no
+está cubierto por ninguna plantilla, consulte @ref{Extender las
 plantillas}.
 
-Una vez que ha escrito algunas piezas cortas, lea el resto del Manual
-de aprendizaje (capítulos 3 al 5).  ¡Por supuesto, no pasa nada por
-leerlo ahora mismo!  Sin embargo, el resto del Manual de Aprendizaje
-da por sentado que está familiarizado con la entrada de LilyPond.
-Puede saltarse estos capítulos ahora y volver a ellos cuando haya
-adquirido más experiencia.
-
-En este tutorial y en el resto del Manual de aprendizaje, existe un
-apartado @strong{Véase también} al final de cada una de las secciones,
-que contiene referencias cruzadas a otras secciones: no siga estas
-referencias durante la primera lectura; cuando haya leído el Manual de
-aprendizaje completo, quizá desee releer ciertas secciones y seguir
-las referencias cruzadas para obtener más información.
-
-Si no lo ha hecho aún, le @emph{rogamos} que lea @ref{Panorámica de
-los manuales}.  Existe una gran cantidad de información sobre
-LilyPond, de manera que los recién llegados con frecuencia no saben
-exactamente dónde deben buscar la ayuda.  Si emplea cinco minutos en
-leer cuidadosamente esta sección ¡se ahorrará horas de frustración
-buscando en el sitio equivocado!
+Una vez que ha escrito algunas piezas cortas, lea el resto del
+Manual de aprendizaje (capítulos 3 al 5).  ¡Por supuesto, no pasa
+nada por leerlo ahora mismo!  Sin embargo, el resto del Manual de
+Aprendizaje da por sentado que está familiarizado con la entrada
+de LilyPond.  Puede saltarse estos capítulos ahora y volver a
+ellos cuando haya adquirido más experiencia.
+
+En este tutorial y en el resto del Manual de aprendizaje, existe
+un apartado @strong{Véase también} al final de cada una de las
+secciones, que contiene referencias cruzadas a otras secciones: no
+siga estas referencias durante la primera lectura; cuando haya
+leído el Manual de aprendizaje completo, quizá desee releer
+ciertas secciones y seguir las referencias cruzadas para obtener
+más información.
+
+Si no lo ha hecho aún, le @emph{rogamos} que lea @ref{Panorámica
+de los manuales}.  Existe una gran cantidad de información sobre
+LilyPond, de manera que los recién llegados con frecuencia no
+saben exactamente dónde deben buscar la ayuda.  Si emplea cinco
+minutos en leer cuidadosamente esta sección ¡se ahorrará horas de
+frustración buscando en el sitio equivocado!
index 5c38195fbe607b8f98c0e51909d70a8bc513d24a..ff989e7dc0fd54a7c77fde9968284a0ed21873f1 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 7fdce4f39834cc8c83f176480cc1d20900eb09f8
+    Translation of GIT committish: 8451fc41680f500fff56f826017b53dc3dcbf65d
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @chapter Conceptos fundamentales
 @translationof Fundamental concepts
 
-Ha podido ver en el tutorial cómo producir música bellamente impresa a
-partir de un simple archivo de texto.  Esta sección presenta los
-conceptos y técnicas que se requieren para producir partituras
-igualmente bellas pero más complejas.
+Ha podido ver en el tutorial cómo producir música bellamente
+impresa a partir de un simple archivo de texto.  Esta sección
+presenta los conceptos y técnicas que se requieren para producir
+partituras igualmente bellas pero más complejas.
 
 @menu
 * Cómo funcionan los archivos de entrada de LilyPond::
@@ -33,12 +33,12 @@ igualmente bellas pero más complejas.
 
 El formato de entrada de LilyPond es bastante libre en su forma y
 concede a los usuarios con experiencia mucha flexibilidad para
-estructurar sus archivos de la forma que deseen.  Sin embargo, toda
-esta flexibilidad puede hacer que las cosas se vuelvan confusas para
-los nuevos usuarios.  Esta sección le va a explicar parte de esta
-estructura, pero puede obviar ciertos detalles en aras de la
-simplicidad.  Para ver una descripción completa del formato de
-entrada, consulte @ruser{Estructura del archivo}.
+estructurar sus archivos de la forma que deseen.  Sin embargo,
+toda esta flexibilidad puede hacer que las cosas se vuelvan
+confusas para los nuevos usuarios.  Esta sección le va a explicar
+parte de esta estructura, pero puede obviar ciertos detalles en
+aras de la simplicidad.  Para ver una descripción completa del
+formato de entrada, consulte @ruser{Estructura del archivo}.
 
 
 @menu
@@ -55,7 +55,8 @@ entrada, consulte @ruser{Estructura del archivo}.
 @cindex entrada, formato de la
 @cindex archivo, estructura del
 
-Un ejemplo básico de archivo de entrada de LilyPond es el siguiente:
+Un ejemplo básico de archivo de entrada de LilyPond es el
+siguiente:
 
 @example
 \version @w{"@version{}"}
@@ -70,8 +71,8 @@ Un ejemplo básico de archivo de entrada de LilyPond es el siguiente:
 @end example
 
 @noindent
-Existen muchas variaciones de este esquema básico, pero el ejemplo
-constituye un útil punto de partida.
+Existen muchas variaciones de este esquema básico, pero el
+ejemplo constituye un útil punto de partida.
 
 @funindex \book
 @funindex book
@@ -82,11 +83,11 @@ constituye un útil punto de partida.
 @cindex libro
 @cindex partitura
 
-Hasta el momento, ninguno de los ejemplos que ha podido ver utiliza la
-instrucción @code{\score@{@}}.  Esto es así a causa de que LilyPond
-añade automáticamente las órdenes adicionales que se requieren cuando
-le proporcionamos una entrada sencilla.  LilyPond trata una entrada
-como esta:
+Hasta el momento, ninguno de los ejemplos que ha podido ver
+utiliza la instrucción @code{\score@{@}}.  Esto es así a causa de
+que LilyPond añade automáticamente las órdenes adicionales que se
+requieren cuando le proporcionamos una entrada sencilla.
+LilyPond trata una entrada como esta:
 
 @example
 \relative @{
@@ -113,34 +114,33 @@ como una abreviatura de esta otra:
 @end example
 
 En otras palabras, si la entrada consta de una única expresión
-musical, LilyPond interpreta el archivo como si la expresión musical
-estuviera rodeada por un envoltorio hecho por las instrucciones que
-acabamos de ver.
+musical, LilyPond interpreta el archivo como si la expresión
+musical estuviera rodeada por un envoltorio hecho por las
+instrucciones que acabamos de ver.
 
 @cindex contextos implícitos
 @cindex implícitos, contextos
 
 @strong{¡Advertencia!}  Muchos de los ejemplos que aparecen en la
-documentación de LilyPond omiten las instrucciones @code{\new Staff} y
-@code{\new Voice}, dejando que se creen de forma implícita.  Esto
-funciona bien para ejemplos sencillos, pero para ejemplos más
-complicados, especialmente cuando se usan instrucciones adicionales,
-la creación implícita de los contextos puede dar lugar a resultados
-inesperados, incluso en ocasiones crear pentagramas no deseados.  La
-forma de crear contextos de forma explícita se explica en
-@ref{Contextos y grabadores}.
-
-@warning{Cuando se escriben más de unas pocas líneas de música, se
-recomienda crear siempre los pentagramas y las voces de forma
+documentación de LilyPond omiten las instrucciones @code{\new
+Staff} y @code{\new Voice}, dejando que se creen de forma
+implícita.  Esto funciona bien para ejemplos sencillos, pero para
+ejemplos más complicados, especialmente cuando se usan
+instrucciones adicionales, la creación implícita de los contextos
+puede dar lugar a resultados inesperados, incluso en ocasiones
+crear pentagramas no deseados.  La forma de crear contextos de
+forma explícita se explica en @ref{Contextos y grabadores}.
+
+@warning{Cuando se escriben más de unas pocas líneas de música,
+se recomienda crear siempre los pentagramas y las voces de forma
 explícita.}
 
 De todas formas, por ahora vamos a volver al primer ejemplo para
-examinar la instrucción @code{\score}, dejando las demás en su forma
-predeterminada.
+examinar la instrucción @code{\score}, dejando las demás en su
+forma predeterminada.
 
 Un bloque @code{\score} siempre debe contener una expresión musical
-única, que debe aparecer inmediatamente después de la instrucción
-@code{\score}.  Recuerde que una expresión musical podía ser cualquier
+única.  Recuerde que una expresión musical podía ser cualquier
 cosa entre una sola nota hasta una enorme expresión compuesta como
 
 @example
@@ -152,11 +152,11 @@ cosa entre una sola nota hasta una enorme expresión compuesta como
 @end example
 
 @noindent
-Puesto que todo se encuentra dentro de @code{@{ @dots{} @}}, cuenta como
-una expresión musical.
+Puesto que todo se encuentra dentro de @code{@{ @dots{} @}},
+cuenta como una expresión musical.
 
-Como vimos anteriormente, el bloque @code{\score} puede contener otras
-cosas, tales como
+Como vimos anteriormente, el bloque @code{\score} puede contener
+otras cosas, tales como
 
 @example
 \score @{
@@ -178,22 +178,23 @@ cosas, tales como
 @cindex disposición
 
 @noindent
-Observe que estas tres instrucciones (@code{\header}, @code{\layout} y
-@code{\midi}) son especiales: a diferencia del resto de las
-instrucciones que comienzan con una barra invertida (@code{\}),
-@emph{no} son expresiones musicales y no forman parte de ninguna
-expresión musical.  Por tanto, se pueden situar dentro de un bloque
-@code{\score} o fuera de él.  De hecho, estas instrucciones se sitúan
-por lo general fuera del bloque @code{\score} (por ejemplo,
-@code{\header} se suele colocar antes de la instrucción @code{\score},
-como muestra el ejemplo que aparece al principio de la sección.
-
-Dos instrucciones más que no hemos visto aún son @code{\layout @{ @}}
-y @code{\midi @{ @}}.  Si aparecen tal y como se muestran aquí, hacen
-que LilyPond produzca una salida impresa y una salida MIDI,
-respectivamente.  Se describen con todo detalle en el manual de
-Referencia de la notación, en @ruser{Disposición de la partitura} y en
-@ruser{Crear archivos MIDI}.
+Observe que estas tres instrucciones (@code{\header},
+@code{\layout} y @code{\midi}) son especiales: a diferencia del
+resto de las instrucciones que comienzan con una barra invertida
+(@code{\}), @emph{no} son expresiones musicales y no forman parte
+de ninguna expresión musical.  Por tanto, se pueden situar dentro
+de un bloque @code{\score} o fuera de él.  De hecho, estas
+instrucciones se sitúan por lo general fuera del bloque
+@code{\score} (por ejemplo, @code{\header} se suele colocar antes
+de la instrucción @code{\score}, como muestra el ejemplo que
+aparece al principio de la sección.
+
+Dos instrucciones más que no hemos visto aún son @code{\layout @{
+@}} y @code{\midi @{ @}}.  Si aparecen tal y como se muestran
+aquí, hacen que LilyPond produzca una salida impresa y una salida
+MIDI, respectivamente.  Se describen con todo detalle en el
+manual de Referencia de la notación, en @ruser{Disposición de la
+partitura} y en @ruser{Creación de salida MIDI}.
 
 @cindex partituras, varias
 @cindex book, bloque implícito
@@ -202,41 +203,43 @@ Referencia de la notación, en @ruser{Disposición de la partitura} y en
 @funindex book
 
 Podemos escribir varios bloques @code{\score}.  Cada uno de ellos
-recibirá el mismo tratamiento que una partitura independiente, pero se
-combinarán todos juntos en un archivo de salida único.  No se necesita
-ninguna instrucción @code{\book}, se creará una implícitamente.  Sin
-embargo, si quiere archivos de salida separados a partir de un único
-archivo @file{.ly}, entonces es necesario utilizar la instrucción
-@code{\book} para separar las distintas secciones: cada bloque
-@code{\book} produce un archivo de salida distinto.
+recibirá el mismo tratamiento que una partitura independiente,
+pero se combinarán todos juntos en un archivo de salida único.
+No se necesita ninguna instrucción @code{\book}, se creará una
+implícitamente.  Sin embargo, si quiere archivos de salida
+separados a partir de un único archivo @file{.ly}, entonces es
+necesario utilizar la instrucción @code{\book} para separar las
+distintas secciones: cada bloque @code{\book} produce un archivo
+de salida distinto.
 
 En resumen:
 
 Cada bloque @code{\book} crea un archivo de salida distinto (por
-ejemplo, un archivo PDF).  Si no hemos escrito uno de forma explícita,
-LilyPond envuelve todo nuestro código de entrada dentro de un bloque
-@code{\book} de forma implícita.
+ejemplo, un archivo PDF).  Si no hemos escrito uno de forma
+explícita, LilyPond envuelve todo nuestro código de entrada
+dentro de un bloque @code{\book} de forma implícita.
 
-Cada bloque @code{\score} es un trozo de música separado dentro de un
-bloque @code{\book}.
+Cada bloque @code{\score} es un trozo de música separado dentro
+de un bloque @code{\book}.
 
 @cindex layout, efecto de la situación del bloque
 
 Cada bloque @code{\layout} afecta al bloque @code{\score} o
 @code{\book} dentro del cual aparece (es decir, un bloque
-@code{\layout} dentro de un bloque @code{\score} afecta solamente a
-ese bloque @code{\score}, pero un bloque @code{\layout} fuera de un
-bloque @code{\score} (que por ello está dentro de un bloque
-@code{\book}, ya sea explícita o implícitamente) afecta a los bloques
-@code{\score} que están dentro de ese @code{\book}.
+@code{\layout} dentro de un bloque @code{\score} afecta solamente
+a ese bloque @code{\score}, pero un bloque @code{\layout} fuera
+de un bloque @code{\score} (que por ello está dentro de un bloque
+@code{\book}, ya sea explícita o implícitamente) afecta a los
+bloques @code{\score} que están dentro de ese @code{\book}.
 
-Para ver más detalles, consulte @ruser{Varias partituras en un libro}.
+Para ver más detalles, consulte
+@ruser{Varias partituras en un libro}.
 
 @cindex variables
 
-Otro magnífico atajo es la posibilidad de definir variables  como
-se muestra en @ref{Organizar las piezas mediante variables}.  Todas las
-plantillas emplean lo siguiente:
+Otro magnífico atajo es la posibilidad de definir variables como
+se muestra en @ref{Organizar las piezas mediante variables}.
+Todas las plantillas emplean lo siguiente:
 
 @example
 melodia = \relative @{
@@ -248,23 +251,24 @@ melodia = \relative @{
 @}
 @end example
 
-Cuando LilyPond examina este archivo, toma el valor de @code{melodia}
-(todo lo que está después del signo igual) y lo inserta dondequiera
-que ve @code{\melodia}.  No se requiere un cuidado especial con el
-nombre (puede ser @code{melodia}, @code{global},
-@code{CompasArmadura}, @code{manoderechadelpiano} o
-@code{fulanomengano} o cualquier otro).  Recuerde que puede usar casi
-cualquier nombre que se le ocurra, en la medida en que contenga
-solamente caracteres alfabéticos y sea diferente de cualquiera de los
-nombres de instrucción de LilyPond.  Para ver más detalles, consulte @ref{Ahorrar
-tecleo mediante variables y funciones}.  Las limitaciones exactas que
-afectan a los nombres de variable se detallan en @ruser{Estructura del
-archivo}.
+Cuando LilyPond examina este archivo, toma el valor de
+@code{melodia} (todo lo que está después del signo igual) y lo
+inserta dondequiera que ve @code{\melodia}.  No se requiere un
+cuidado especial con el nombre (puede ser @code{melodia},
+@code{global}, @code{CompasArmadura}, @code{manoderechadelpiano}
+o @code{fulanomengano} o cualquier otro).  Recuerde que puede
+usar casi cualquier nombre que se le ocurra, en la medida en que
+contenga solamente caracteres alfabéticos y sea diferente de
+cualquiera de los nombres de instrucción de LilyPond.  Para ver
+más detalles, consulte
+@ref{Ahorrar tecleo mediante variables y funciones}.  Las
+limitaciones exactas que afectan a los nombres de variable se
+detallan en @ruser{Estructura del archivo}.
 
 
 @seealso
-Para ver una definición completa del formato del código de entrada,
-consulte @ruser{Estructura del archivo}.
+Para ver una definición completa del formato del código de
+entrada, consulte @ruser{Estructura del archivo}.
 
 
 @node La partitura es una (única) expresión musical compuesta
@@ -281,33 +285,34 @@ consulte @ruser{Estructura del archivo}.
 @funindex \score
 @funindex score
 
-En la sección anterior, @ref{Introducción a la estructura de los
-archivos de LilyPond}, hemos podido ver la organización general de los
-archivos de entrada de LilyPond.  Pero parece que nos saltamos la
-parte más importante: ¿cómo averiguamos qué escribir después de
+En la sección anterior,
+@ref{Introducción a la estructura de los archivos de LilyPond},
+hemos podido ver la organización general de los archivos de
+entrada de LilyPond.  Pero parece que nos saltamos la parte más
+importante: ¿cómo averiguamos qué escribir después de
 @code{\score}?
 
 No nos hemos saltado nada en absoluto.  El gran misterio es,
-sencillamente, que no hay @emph{ningún} misterio.  La siguiente línea
-lo explica todo:
+sencillamente, que no hay @emph{ningún} misterio.  La siguiente
+línea lo explica todo:
 
 @quotation
-@emph{Un bloque @code{\score} debe comenzar con una expresión musical
-compuesta.}
+@emph{Un bloque @code{\score} debe contener exactamente una expresión musical.}
 @end quotation
 
 @noindent
-Para comprender lo que se entiende por expresión musical y expresión
-musical compuesta, quizá encuentre útil dar un repaso al tutorial,
-@ref{Explicación de las expresiones musicales}.  En esta sección vimos cómo
-elaborar grandes expresiones musicales a partir de pequeñas piezas
-(comenzábamos con notas, luego acordes, etc.).  Ahora partiremos de
-una gran expresión musical y recorreremos el camino inverso hacia
-abajo.  Por simplicidad, vamos a hacer sólo un cantante y un piano.
-No necesitamos un @code{StaffGroup} (que simplemente agrupa un cierto
-número de pautas con un corchete a la izquierda) para este conjunto,
-así que lo retiramos.  Sin embargo, @emph{sí} necesitamos pentagramas
-para un cantante y un piano.
+Para comprender lo que se entiende por expresión musical, quizá
+encuentre útil dar un repaso al tutorial,
+@ref{Explicación de las expresiones musicales}.  En esta sección
+vimos cómo elaborar grandes expresiones musicales a partir de
+pequeñas piezas (comenzábamos con notas, luego acordes, etc.).
+Ahora partiremos de una gran expresión musical y recorreremos el
+camino inverso hacia abajo.  Por simplicidad, vamos a hacer sólo
+un cantante y un piano.  No necesitamos un @code{StaffGroup} (que
+simplemente agrupa un cierto número de pautas con un corchete a
+la izquierda) para este conjunto, así que lo retiramos.  Sin
+embargo, @emph{sí} necesitamos pentagramas para un cantante y un
+piano.
 
 @example
 \score @{
@@ -322,23 +327,24 @@ para un cantante y un piano.
 @end example
 
 Aquí hemos asignado nombres a los pentagramas: @qq{cantante} y
-@qq{piano}.  Esto no es esencial en este momento, pero es un hábito
-que resulta útil cultivar de manera que podamos saber de un vistazo
-para qué es cada pentagrama.
-
-Recuerde que utilizamos @code{<< @dots{} >>} en lugar de @code{@{ @dots{} @}}
-para presentar la música simultánea.  Esto hace que las partes vocal y
-del piano aparezcan una sobre la otra en la partitura.  La
-construcción @code{<< @dots{} >>} no sería necesaria para el pentagrama
-del cantante en el ejemplo de arriba si contiene solamente una
-expresión musical secuencial, pero se necesitarían los @code{<<
-@dots{} >>} en lugar de las llaves si la música de ese pentagrama fuese a
-contener dos o más expresiones simultáneas, p.ej. dos voces
-simultáneas, o una voz con letra.  Vamos a tener una voz con letra,
-por lo que se requieren los ángulos dobles.  Después añadiremos algo
-de música real; por ahora limitémonos a poner unas cuantas notas y
-texto de relleno.  Si ha olvidado cómo añadir la letra, puede releer
-la sección @code{\addlyrics} de @ref{Elaborar canciones sencillas}.
+@qq{piano}.  Esto no es esencial en este momento, pero es un
+hábito que resulta útil cultivar de manera que podamos saber de
+un vistazo para qué es cada pentagrama.
+
+Recuerde que utilizamos @code{<< @dots{} >>} en lugar de @code{@{
+@dots{} @}} para presentar la música simultánea.  Esto hace que
+las partes vocal y del piano aparezcan una sobre la otra en la
+partitura.  La construcción @code{<< @dots{} >>} no sería
+necesaria para el pentagrama del cantante en el ejemplo de arriba
+si contiene solamente una expresión musical secuencial, pero se
+necesitarían los @code{<< @dots{} >>} en lugar de las llaves si
+la música de ese pentagrama fuese a contener dos o más
+expresiones simultáneas, p.ej. dos voces simultáneas, o una voz
+con letra.  Vamos a tener una voz con letra, por lo que se
+requieren los ángulos dobles.  Después añadiremos algo de música
+real; por ahora limitémonos a poner unas cuantas notas y texto de
+relleno.  Si ha olvidado cómo añadir la letra, puede releer la
+sección @code{\addlyrics} de @ref{Elaborar canciones sencillas}.
 
 @lilypond[verbatim,quote,ragged-right]
 \score {
@@ -356,17 +362,18 @@ la sección @code{\addlyrics} de @ref{Elaborar canciones sencillas}.
 }
 @end lilypond
 
-Ahora tenemos muchos más detalles.  Tenemos la pauta del cantante:
-contiene una @code{Voice} o voz (en LilyPond, este término hace
-referencia a un conjunto de notas, no necesariamente notas vocales --
-por ejemplo, un violín generalmente toca una voz --) y el texto de la
-canción.  También tenemos una pauta de piano: contiene un pentagrama
-superior (mano derecha) y un pentagrama inferior (mano izquierda),
-aunque el pentagrama inferior aún no tiene la clave de Fa.
+Ahora tenemos muchos más detalles.  Tenemos la pauta del
+cantante: contiene una @code{Voice} o voz (en LilyPond, este
+término hace referencia a un conjunto de notas, no necesariamente
+notas vocales -- por ejemplo, un violín generalmente toca una voz
+--) y el texto de la canción.  También tenemos una pauta de
+piano: contiene un pentagrama superior (mano derecha) y un
+pentagrama inferior (mano izquierda), aunque el pentagrama
+inferior aún no tiene la clave de Fa.
 
-En este momento podríamos comenzar a meter las notas.  Dentro de las
-llaves que siguen a @code{\new Voice = "vocal"}, podríamos empezar
-escribiendo
+En este momento podríamos comenzar a meter las notas.  Dentro de
+las llaves que siguen a @code{\new Voice = "vocal"}, podríamos
+empezar escribiendo
 
 @example
 \relative @{
@@ -375,19 +382,19 @@ escribiendo
 @end example
 
 Pero si lo hiciéramos, la sección @code{\score} se haría bastante
-larga y sería más difícil comprender lo que ocurre.  En lugar de esto
-utilizaremos identificadores o variables.  Recordará que las vimos por
-primera vez en la sección anterior.
+larga y sería más difícil comprender lo que ocurre.  En lugar de
+esto utilizaremos identificadores o variables.  Recordará que las
+vimos por primera vez en la sección anterior.
 
-Para asegurarnos de que el contenido de la variable @code{text} se
-interpreta como letra, lo precedemos por @code{\lyricmode}.  Como
-@code{\addlyrics}, esto activa el modo de entrada de letra.  Sin ello,
-LilyPond trataría de interpretar el contenido como notas, lo que
-generaría errores (Existen algunos otros modos, véase @ruser{Modos de
-entrada}).
+Para asegurarnos de que el contenido de la variable @code{text}
+se interpreta como letra, lo precedemos por @code{\lyricmode}.
+Como @code{\addlyrics}, esto activa el modo de entrada de letra.
+Sin ello, LilyPond trataría de interpretar el contenido como
+notas, lo que generaría errores (Existen algunos otros modos,
+véase @ruser{Modos de entrada}).
 
-Así pues, escribiendo algunas notas, y una clave de Fa para la mano
-izquierda, ahora tenemos un fragmento musical de verdad:
+Así pues, escribiendo algunas notas, y una clave de Fa para la
+mano izquierda, ahora tenemos un fragmento musical de verdad:
 
 @lilypond[verbatim,quote,ragged-right]
 melody = \relative { r4 d''8\noBeam g, c4 r }
@@ -413,12 +420,12 @@ lower  = \relative { b,2 e }
 }
 @end lilypond
 
-Cuando escriba una sección @code{\score} o cuando la esté leyendo,
-hágalo despacio y con cuidado.  Comience por el nivel exterior y luego
-trabaje sobre cada uno de los niveles interiores.  También es de gran
-ayuda ser muy estricto con los márgenes (asegúrese de que en su editor
-de texto cada elemento del mismo nivel comienza en la misma posición
-horizontal).
+Cuando escriba una sección @code{\score} o cuando la esté
+leyendo, hágalo despacio y con cuidado.  Comience por el nivel
+exterior y luego trabaje sobre cada uno de los niveles
+interiores.  También es de gran ayuda ser muy estricto con los
+márgenes (asegúrese de que en su editor de texto cada elemento
+del mismo nivel comienza en la misma posición horizontal).
 
 
 @seealso
@@ -434,12 +441,12 @@ Referencia de la notación:
 @cindex temporales, pentagramas
 @cindex ossias
 
-No es esencial declarar todos los pentagramas al comienzo; se pueden
-crear temporalmente en cualquier momento.  Esto es de especial
-utilidad para crear secciones de ossia (véase @rglos{ossia}).  A
-continuación presentamos un ejemplo sencillo que muestra cómo
-introducir temporalmente un pentagrama nuevo mientras dura un
-fragmento de tres notas:
+No es esencial declarar todos los pentagramas al comienzo; se
+pueden crear temporalmente en cualquier momento.  Esto es de
+especial utilidad para crear secciones de ossia (véase
+@rglos{ossia}).  A continuación presentamos un ejemplo sencillo
+que muestra cómo introducir temporalmente un pentagrama nuevo
+mientras dura un fragmento de tres notas:
 
 @lilypond[verbatim,quote,ragged-right]
 \new Staff {
@@ -458,15 +465,15 @@ fragmento de tres notas:
 @end lilypond
 
 @noindent
-Advierta que el tamaño de la clave es igual al que se imprime en un
-cambio de clave (ligeramente menor que la clave al principio de una
-línea).  Esto es normal para cualquier clave que se imprime en la
-mitad de una línea.
+Advierta que el tamaño de la clave es igual al que se imprime en
+un cambio de clave (ligeramente menor que la clave al principio
+de una línea).  Esto es normal para cualquier clave que se
+imprime en la mitad de una línea.
 
 @cindex pentagrama, posicionado del
 
-La sección ossia se puede colocar encima del pentagrama de la manera
-siguiente:
+La sección ossia se puede colocar encima del pentagrama de la
+manera siguiente:
 
 @lilypond[verbatim,quote,ragged-right]
 \new Staff = "main" {
@@ -484,18 +491,19 @@ siguiente:
 }
 @end lilypond
 
-Este ejemplo utiliza @code{\with}, que se explica en todo detalle más
-adelante.  Es un medio de modificar el comportamiento predeterminado
-de un solo pentagrama.  Aquí, dice que el pentagrama nuevo se debe
-colocar por encima del pentagrama llamado @qq{main} en vez de la
-posición predeterminada que sería por debajo.
+Este ejemplo utiliza @code{\with}, que se explica en todo detalle
+más adelante.  Es un medio de modificar el comportamiento
+predeterminado de un solo pentagrama.  Aquí, dice que el
+pentagrama nuevo se debe colocar por encima del pentagrama
+llamado @qq{main} en vez de la posición predeterminada que sería
+por debajo.
 
 
 @seealso
 Los fragmentos de ossia se escriben a menudo sin clave y sin
-indicación de compás, y generalmente en un tipo más pequeño.  Esto
-necesitaría más instrucciones que aún no se han visto.  Véase
-@ref{Tamaño de los objetos} y @ruser{Pentagramas de Ossia}.
+indicación de compás, y generalmente en un tipo más pequeño.
+Esto necesitaría más instrucciones que aún no se han visto.
+Véase @ref{Tamaño de los objetos} y @ruser{Pentagramas de Ossia}.
 
 
 @node Acerca de la no anidabilidad de llaves y ligaduras
@@ -509,11 +517,11 @@ necesitaría más instrucciones que aún no se han visto.  Véase
 @cindex paréntesis y corchetes, tipos de
 @cindex paréntesis y corchetes, encerrar frente a marcar
 
-En la escritura del archivo de entrada de LilyPond, hemos podido ver
-algunos tipos de paréntesis, llaves o ángulos de distintos tipos.
-Éstos obedecen a distintas reglas que al principio pueden resultar
-confusas.  Antes de explicar estas reglas, demos un repaso a las
-distintas clases de corchetes, llaves y paréntesis.
+En la escritura del archivo de entrada de LilyPond, hemos podido
+ver algunos tipos de paréntesis, llaves o ángulos de distintos
+tipos.  Éstos obedecen a distintas reglas que al principio pueden
+resultar confusas.  Antes de explicar estas reglas, demos un
+repaso a las distintas clases de corchetes, llaves y paréntesis.
 
 @c attempt to force this onto a new page
 @need 50
@@ -535,42 +543,46 @@ distintas clases de corchetes, llaves y paréntesis.
 @end multitable
 
 A las anteriores, debemos añadir otras construcciones que generan
-líneas entre o a través de las notas: las ligaduras de unión (marcadas
-con una tilde curva, @code{~}), los grupos especiales que se escriben
-como @code{\tuplet x/y @{ @dots{} @}}, y las notas de adorno, que se escriben
-como @code{\grace @{ @dots{} @}}.
+líneas entre o a través de las notas: las ligaduras de unión
+(marcadas con una tilde curva, @code{~}), los grupos especiales
+que se escriben como @code{\tuplet x/y @{ @dots{} @}}, y las
+notas de adorno, que se escriben como @code{\grace @{ @dots{}
+@}}.
 
 Fuera de LilyPond, el uso convencional de los paréntesis y otros
 corchetes requiere que los distintos tipos se encuentren anidados
-correctamente, como en: @code{<< [ @{ ( @dots{} ) @} ] >>}, de manera que
-los paréntesis que se cierran deben encontrarse en el orden
-exactamente opuesto al de los paréntesis que se abren.  Esto
-@strong{es} un requisito para los tres tipos de paréntesis que se
-describen mediante la palabra @q{Encierra} en la tabla anterior: se
-deben anidar correctamente.  Sin embargo, el resto de las llaves y
-corchetes, que se encuentran descritos por la palabra @q{Marca} en la
-misma tabla anterior, @strong{no} tienen por qué anidarse
-estrictamente con ninguno de los otros paréntesis.  De hecho, éstos no
-son paréntesis en el sentido de que encierran algo: simplemente son
-marcadores que indican dónde empieza o finaliza algo.
+correctamente, como en: @code{<< [ @{ ( @dots{} ) @} ] >>}, de
+manera que los paréntesis que se cierran deben encontrarse en el
+orden exactamente opuesto al de los paréntesis que se abren.
+Esto @strong{es} un requisito para los tres tipos de paréntesis
+que se describen mediante la palabra @q{Encierra} en la tabla
+anterior: se deben anidar correctamente.  Sin embargo, el resto
+de las llaves y corchetes, que se encuentran descritos por la
+palabra @q{Marca} en la misma tabla anterior, @strong{no} tienen
+por qué anidarse estrictamente con ninguno de los otros
+paréntesis.  De hecho, éstos no son paréntesis en el sentido de
+que encierran algo: simplemente son marcadores que indican dónde
+empieza o finaliza algo.
 
 Así pues, por ejemplo, una ligadura de fraseo puede dar comienzo
-antes de una barra insertada manualmente, y acabar antes de que acabe
-la barra (algo que quizá no sea muy musical, pero es posible):
+antes de una barra insertada manualmente, y acabar antes de que
+acabe la barra (algo que quizá no sea muy musical, pero es
+posible):
 
 @lilypond[quote,verbatim,ragged-right]
 \relative { g'8\( a b[ c b\) a] g4 }
 @end lilypond
 
 En general, los distintos tipos de corchete, y los implicados en
-grupos especiales, ligaduras de unión y notas de adorno, se pueden
-mezclar con total libertad.  Este ejemplo muestra una barra que se
-extiende hacia el interior de un grupo de valoración especial (línea
-1), una ligadura de expresión que se prolonga hasta el interior de un
-grupo especial (línea 2), una barra y una ligadura de expresión que se
-prolongan hasta el interior de un grupo especial, una ligadura de
-unión que atraviesa dos grupos especiales, y una ligadura de fraseo
-que sale del interior de un grupo especial (líneas 3 y 4).
+grupos especiales, ligaduras de unión y notas de adorno, se
+pueden mezclar con total libertad.  Este ejemplo muestra una
+barra que se extiende hacia el interior de un grupo de valoración
+especial (línea 1), una ligadura de expresión que se prolonga
+hasta el interior de un grupo especial (línea 2), una barra y una
+ligadura de expresión que se prolongan hasta el interior de un
+grupo especial, una ligadura de unión que atraviesa dos grupos
+especiales, y una ligadura de fraseo que sale del interior de un
+grupo especial (líneas 3 y 4).
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -587,9 +599,9 @@ que sale del interior de un grupo especial (líneas 3 y 4).
 @translationof Voices contain music
 
 Igual que los cantantes, LilyPond necesita voces para cantar.  En
-realidad, la música para cualquier instrumento de una partitura está
-siempre contenida dentro de una voz --el concepto de LilyPond más
-fundamental de todos--.
+realidad, la música para cualquier instrumento de una partitura
+está siempre contenida dentro de una voz --el concepto de
+LilyPond más fundamental de todos--.
 
 @menu
 * Oigo voces::
@@ -612,25 +624,25 @@ fundamental de todos--.
 @cindex voces frente a acordes
 @cindex acordes frente a voces
 
-De las capas más profundas de una partitura de LilyPond, las más bajas
-y más fundamentales reciben el nombre de @q{Voice contexts}
-(«contextos de voz») o, abreviadamente, @q{Voices} («voces»).  Las
-voces reciben a veces el nombre de @q{layers} («capas») en otros
-programas de edición de partituras.
-
-De hecho, una capa o contexto de voz es la única que puede contener
-música.  Si un contexto de voz no se declara explícitamente, se crea
-uno de forma automática, como vimos al comienzo de este capítulo.
-Ciertos instrumentos como el oboe solamente pueden tocar una nota cada
-vez.  La música escrita para estos instrumentos
-solamente requiere una voz.  Los instrumentos que pueden tocar
-más de una nota a la vez, como el piano, con frecuencia necesitarán
-varias voces para codificar las distintas notas y ritmos concurrentes
-que son capaces de tocar.
+De las capas más profundas de una partitura de LilyPond, las más
+bajas y más fundamentales reciben el nombre de @q{Voice contexts}
+(«contextos de voz») o, abreviadamente, @q{Voices} («voces»).
+Las voces reciben a veces el nombre de @q{layers} («capas») en
+otros programas de edición de partituras.
+
+De hecho, una capa o contexto de voz es la única que puede
+contener música.  Si un contexto de voz no se declara
+explícitamente, se crea uno de forma automática, como vimos al
+comienzo de este capítulo.  Ciertos instrumentos como el oboe
+solamente pueden tocar una nota cada vez.  La música escrita para
+estos instrumentos solamente requiere una voz.  Los instrumentos
+que pueden tocar más de una nota a la vez, como el piano, con
+frecuencia necesitarán varias voces para codificar las distintas
+notas y ritmos concurrentes que son capaces de tocar.
 
 Una sola voz puede contener muchas notas dentro de un acorde, por
-supuesto; entonces ¿cuándo, exactamente, se necesitan varias voces?
-En primer lugar observe este ejemplo de cuatro acordes:
+supuesto; entonces ¿cuándo, exactamente, se necesitan varias
+voces?  En primer lugar observe este ejemplo de cuatro acordes:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -639,34 +651,37 @@ En primer lugar observe este ejemplo de cuatro acordes:
 }
 @end lilypond
 
-Esto se puede expresar utilizando sólo símbolos de acorde con ángulos
-simples, @code{< @dots{} >}, y para este propósito tan sólo se necesita
-una voz.  Pero suponga que el Fa sostenido fuese realmente una corchea
-seguida de un Sol corchea, una nota de paso que conduce al La.  Ahora
-tenemos dos notas que empiezan en el mismo momento pero tienen
-distintas duraciones: la negra Re, y la corchea Fa sostenido. ¿Cómo se
-codifica esto? No se pueden escribir como un acorde porque todas las
-notas de un acorde deben tener la misma duración.  Y no se pueden
-escribir como dos notas en secuencia porque tienen que empezar en el
-mismo momento.  Aquí es donde se necesitan dos voces.
-
-Veamos cómo se hace esto dentro de la sintaxis de entrada de LilyPond.
+Esto se puede expresar utilizando sólo símbolos de acorde con
+ángulos simples, @code{< @dots{} >}, y para este propósito tan
+sólo se necesita una voz.  Pero suponga que el Fa sostenido fuese
+realmente una corchea seguida de un Sol corchea, una nota de paso
+que conduce al La.  Ahora tenemos dos notas que empiezan en el
+mismo momento pero tienen distintas duraciones: la negra Re, y la
+corchea Fa sostenido. ¿Cómo se codifica esto? No se pueden
+escribir como un acorde porque todas las notas de un acorde deben
+tener la misma duración.  Y no se pueden escribir como dos notas
+en secuencia porque tienen que empezar en el mismo momento.  Aquí
+es donde se necesitan dos voces.
+
+Veamos cómo se hace esto dentro de la sintaxis de entrada de
+LilyPond.
 
 @funindex << \\ >>
 @funindex \\
 
-La forma más fácil de introducir fragmentos con más de una voz en un
-solo pentagrama es escribir cada voz como una secuencia (con
-@code{@{ @dots{} @}}), y combinarlas simultáneamente con ángulos dobles,
-@code{<< @dots{} >>}.  Los fragmentos también se deben separar mediante una
-doble barra invertida, @code{\\}, para situarlos en voces separadas.
-Sin esto, las notas irían a una sola voz, lo que normalmente produce
-errores.  Esta técnica se adapta especialmente bien a piezas de música
-que son mayormente homofónicas pero ocasionalmente tienen cortas
-secciones de polifonía.
+La forma más fácil de introducir fragmentos con más de una voz en
+un solo pentagrama es escribir cada voz como una secuencia (con
+@code{@{ @dots{} @}}), y combinarlas simultáneamente con ángulos
+dobles, @code{<< @dots{} >>}.  Los fragmentos también se deben
+separar mediante una doble barra invertida, @code{\\}, para
+situarlos en voces separadas.  Sin esto, las notas irían a una
+sola voz, lo que normalmente produce errores.  Esta técnica se
+adapta especialmente bien a piezas de música que son mayormente
+homofónicas pero ocasionalmente tienen cortas secciones de
+polifonía.
 
-He aquí cómo dividimos los acordes anteriores en dos voces y añadimos
-la nota de paso y la ligadura:
+He aquí cómo dividimos los acordes anteriores en dos voces y
+añadimos la nota de paso y la ligadura:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -691,11 +706,11 @@ A continuación veamos otro ejemplo sencillo:
 }
 @end lilypond
 
-No es necesario usar una construcción @code{<< \\ >>} distinta para
-cada compás. Para música que tenga unas pocas notas en cada compás,
-esta disposición podría facilitar la legibilidad del código, pero si
-hay muchas notas en cada compás podría ser mejor dividirlo en dos
-voces separadas, de la siguiente manera:
+No es necesario usar una construcción @code{<< \\ >>} distinta
+para cada compás. Para música que tenga unas pocas notas en cada
+compás, esta disposición podría facilitar la legibilidad del
+código, pero si hay muchas notas en cada compás podría ser mejor
+dividirlo en dos voces separadas, de la siguiente manera:
 
 @lilypond[quote,verbatim,ragged-right]
 <<
@@ -717,17 +732,17 @@ voces separadas, de la siguiente manera:
 @cindex voces que cruzan corchetes
 @cindex ligaduras que cruzan corchetes
 
-Este ejemplo tiene sólo dos voces, pero la misma construcción se puede
-usar para codificar tres o más voces mediante la adición de más
-separadores de barra invertida.
+Este ejemplo tiene sólo dos voces, pero la misma construcción se
+puede usar para codificar tres o más voces mediante la adición de
+más separadores de barra invertida.
 
-Los contextos de voz llevan los nombres de @code{"1"}, @code{"2"},
-etc. Los primeros contextos establecen las voces @emph{externas}, la
-voz aguda del contexto @code{"1"} y la voz grave del contexto
-@code{"2"}.  Las voces interiores van en los contextos @code{"3"} y
-@code{"4"}.  En cada uno de estos contextos, la dirección vertical de
-las ligaduras, plicas, matices dinámicos, etc., se ajusta de forma
-correcta.
+Los contextos de voz llevan los nombres de @code{"1"},
+@code{"2"}, etc. Los primeros contextos establecen las voces
+@emph{externas}, la voz aguda del contexto @code{"1"} y la voz
+grave del contexto @code{"2"}.  Las voces interiores van en los
+contextos @code{"3"} y @code{"4"}.  En cada uno de estos
+contextos, la dirección vertical de las ligaduras, plicas,
+matices dinámicos, etc., se ajusta de forma correcta.
 
 @lilypond[quote,verbatim]
 \new Staff \relative {
@@ -739,20 +754,22 @@ correcta.
 }
 @end lilypond
 
-Todas estas voces están separadas de la voz principal que contiene las
-notas justo por fuera de la construcción @code{<< @dots{} >>}.  Le
-llamaremos a esto la @emph{construcción simultánea}.  Las ligaduras
-(de prolongación y de expresión) solamente pueden conectar notas que
-estén dentro de la misma voz, luego las ligaduras no pueden entrar o
-salir de una construcción simultánea.  A la inversa, las voces
-paralelas de construcciones simultáneas distintas sobre el mismo
-pentagrama, son la misma voz.  Otras propiedades relativas a las voces
-también conllevan construcciones simultáneas.  A continuación vemos el
-mismo ejemplo, con colores y cabezas distintos para cada voz.  Observe
-que los cambios en una voz no afectan a otras voces, pero persisten
-más tarde dentro de la misma voz.  Observe también que las notas
-ligadas se pueden dividir entre las mismas voces de dos
-construcciones, como se indica aquí en la voz de triángulos azules.
+Todas estas voces están separadas de la voz principal que
+contiene las notas justo por fuera de la construcción @code{<<
+@dots{} >>}.  Le llamaremos a esto la @emph{construcción
+simultánea}.  Las ligaduras (de prolongación y de expresión)
+solamente pueden conectar notas que estén dentro de la misma voz,
+luego las ligaduras no pueden entrar o salir de una construcción
+simultánea.  A la inversa, las voces paralelas de construcciones
+simultáneas distintas sobre el mismo pentagrama, son la misma
+voz.  Otras propiedades relativas a las voces también conllevan
+construcciones simultáneas.  A continuación vemos el mismo
+ejemplo, con colores y cabezas distintos para cada voz.  Observe
+que los cambios en una voz no afectan a otras voces, pero
+persisten más tarde dentro de la misma voz.  Observe también que
+las notas ligadas se pueden dividir entre las mismas voces de dos
+construcciones, como se indica aquí en la voz de triángulos
+azules.
 
 @lilypond[quote,verbatim]
 \new Staff \relative {
@@ -790,25 +807,26 @@ construcciones, como se indica aquí en la voz de triángulos azules.
 @funindex \voiceFourStyle
 @funindex \voiceNeutralStyle
 
-Las instrucciones @code{\voiceXXXStyle} están pensadas principalmente
-para usarlas en documentos educativos como este mismo.  Modifican el
-color de la cabeza, la plica y las barras, y el estilo de la cabeza,
-de forma que las voces se puedan distinguir fácilmente.  La voz uno
-está establecida a rombos rojos, la voz dos a triángulos azules, la
-voz tres a círculos verdes con aspas, y la voz cuatro (que no se
-utiliza aquí) a aspas color magenta.  @code{\voiceNeutralStyle} (que
-tampoco se usa aquí) devuelve todo al estilo predeterminado.  Veremos
-más adelante cómo el usuario puede crear instrucciones como éstas.
-Véase @ref{Visibilidad y color de los objetos} y
-@ref{Uso de variables para los ajustes de disposición}.
+Las instrucciones @code{\voiceXXXStyle} están pensadas
+principalmente para usarlas en documentos educativos como este
+mismo.  Modifican el color de la cabeza, la plica y las barras, y
+el estilo de la cabeza, de forma que las voces se puedan
+distinguir fácilmente.  La voz uno está establecida a rombos
+rojos, la voz dos a triángulos azules, la voz tres a círculos
+verdes con aspas, y la voz cuatro (que no se utiliza aquí) a
+aspas color magenta.  @code{\voiceNeutralStyle} (que tampoco se
+usa aquí) devuelve todo al estilo predeterminado.  Veremos más
+adelante cómo el usuario puede crear instrucciones como éstas.
+Véase @ref{Visibilidad y color de los objetos} y @ref{Uso de
+variables para los ajustes de disposición}.
 
 @cindex polifonía y modo relativo
 @cindex relativo, modo, polifonía y
 
-La polifonía no cambia la relación de las notas dentro de un bloque
-@code{\relative}.  La altura de cada nota aún se calcula con
-relación a la nota que le precede inmediatamente, o a la primera nota
-del acorde precedente.  Así, en
+La polifonía no cambia la relación de las notas dentro de un
+bloque @code{\relative}.  La altura de cada nota aún se calcula
+con relación a la nota que le precede inmediatamente, o a la
+primera nota del acorde precedente.  Así, en
 
 @example
 \relative c' @{ notaA << < notaB notaC > \\ notaD >> notaE @}
@@ -826,23 +844,24 @@ voces están muy separadas, es colocar una instrucción @code{\relative}
 al principio de cada voz:
 
 @example
-\relative c' @{ notaA @dots{} @}
+\relative @{ notaA @dots{} @}
 <<
-  \relative c'' @{ < notaB notaC > @dots{} @}
+  \relative @{ < notaB notaC > @dots{} @}
 \\
-  \relative g' @{ notaD @dots{} @}
+  \relative @{ notaD @dots{} @}
 >>
-\relative c' @{ notaE @dots{} @}
+\relative @{ notaE @dots{} @}
 @end example
 
-Finalmente, analicemos las voces en una pieza de música más compleja.
-He aquí las notas de los dos primeros compases del segundo de los Dos
-Nocturnos de Chopin, Op 32.  Este ejemplo se utilizará en fases
-posteriores dentro del presente capítulo y el siguiente, para ilustrar
-varias técnicas para producir notación, y por tanto le pedimos que
-ignore por ahora cualquier cosa en el código subyacente que le parezca
-misterioso y tan sólo se concentre en la música y las voces (todas
-las complicaciones se explicarán en secciones posteriores).
+Finalmente, analicemos las voces en una pieza de música más
+compleja.  He aquí las notas de los dos primeros compases del
+segundo de los Dos Nocturnos de Chopin, Op 32.  Este ejemplo se
+utilizará en fases posteriores dentro del presente capítulo y el
+siguiente, para ilustrar varias técnicas para producir notación,
+y por tanto le pedimos que ignore por ahora cualquier cosa en el
+código subyacente que le parezca misterioso y tan sólo se
+concentre en la música y las voces (todas las complicaciones se
+explicarán en secciones posteriores).
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
@@ -853,7 +872,7 @@ las complicaciones se explicarán en secciones posteriores).
   \\  % Voice two
     {
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn.ignore-collision = ##t
+      \once \override NoteColumn.force-hshift = #0
       <ees, c>2
       \once \override NoteColumn.force-hshift = #0.5
       des2
@@ -869,25 +888,25 @@ las complicaciones se explicarán en secciones posteriores).
 }
 @end lilypond
 
-Con frecuencia, la dirección de las plicas se utiliza para indicar la
-continuidad de dos líneas melódicas simultáneas.  Aquí, todas las
-plicas de las notas agudas se dirigen hacia arriba y las de las notas
-graves hacia abajo.  Ésta es la primera indicación de que se requiere
-más de una voz.
-
-Pero la necesidad real de varias voces aflora cuando hay notas que
-comienzan en el mismo tiempo pero tienen distintas duraciones.
-Observe las notas que comienzan en la tercera parte del primer compás.
-El La bemol es una negra con puntillo, el Fa es una negra y el Re
-bemol es una blanca.  Estas notas no se pueden escribir como un acorde
-porque todas las notas de un acorde deben tener la misma duración.
-Tampoco se pueden escribir como notas secuenciales, pues deben
-comenzar al mismo tiempo.  Esta sección del compás requiere tres
-voces, y la práctica común sería escribir todo el compás como tres
-voces como se muestra abajo, donde hemos usado distintas cabezas y
-colores para las tres voces.  Una vez más, el código que subyace a
-este ejemplo se explicará más tarde, así pues ignore todo lo que no
-entienda.
+Con frecuencia, la dirección de las plicas se utiliza para
+indicar la continuidad de dos líneas melódicas simultáneas.
+Aquí, todas las plicas de las notas agudas se dirigen hacia
+arriba y las de las notas graves hacia abajo.  Ésta es la primera
+indicación de que se requiere más de una voz.
+
+Pero la necesidad real de varias voces aflora cuando hay notas
+que comienzan en el mismo tiempo pero tienen distintas
+duraciones.  Observe las notas que comienzan en la tercera parte
+del primer compás.  El La bemol es una negra con puntillo, el Fa
+es una negra y el Re bemol es una blanca.  Estas notas no se
+pueden escribir como un acorde porque todas las notas de un
+acorde deben tener la misma duración.  Tampoco se pueden escribir
+como notas secuenciales, pues deben comenzar al mismo tiempo.
+Esta sección del compás requiere tres voces, y la práctica común
+sería escribir todo el compás como tres voces como se muestra
+abajo, donde hemos usado distintas cabezas y colores para las
+tres voces.  Una vez más, el código que subyace a este ejemplo se
+explicará más tarde, así pues ignore todo lo que no entienda.
 
 @c The following should appear as music without code
 @c The three voice styles should be defined in -init
@@ -902,7 +921,7 @@ entienda.
   \\  % Voice two
     { \voiceTwoStyle
       % Ignore these for now - they are explained in Ch 4
-      \once \override NoteColumn.ignore-collision = ##t
+      \once \override NoteColumn.force-hshift = #0
       <ees, c>2
       \once \override NoteColumn.force-hshift = #0.5
       des2
@@ -920,8 +939,8 @@ entienda.
 
 
 Vamos a intentar codificar esta música partiendo de cero.  Como
-veremos, esto se topa con ciertas dificultades. Comenzamos tal y como
-hemos aprendido, usando la construcción @code{<< \\ >>} para
+veremos, esto se topa con ciertas dificultades. Comenzamos tal y
+como hemos aprendido, usando la construcción @code{<< \\ >>} para
 introducir la música del primer compás en tres voces:
 
 @lilypond[quote,verbatim,ragged-right]
@@ -939,13 +958,14 @@ introducir la música del primer compás en tres voces:
 @cindex plicas, voces y dirección de las
 @cindex plica arriba
 
-Las direcciones de las plicas se asignan automáticamente de forma que
-las voces de numeración impar reciben las plicas hacia arriba y las de
-numeración par hacia abajo.  Las plicas de las voces 1 y 2 están
-correctas, pero las plicas de la voz 3 debería ir hacia abajo en este
-fragmento en particular.  Podemos corregir esto simplemente
-olvidándonos de la voz tres y situando la música en la voz cuatro.
-Esto se hace escribiendo otro par de barras invertidas (@code{\\}).
+Las direcciones de las plicas se asignan automáticamente de forma
+que las voces de numeración impar reciben las plicas hacia arriba
+y las de numeración par hacia abajo.  Las plicas de las voces 1 y
+2 están correctas, pero las plicas de la voz 3 debería ir hacia
+abajo en este fragmento en particular.  Podemos corregir esto
+simplemente olvidándonos de la voz tres y situando la música en
+la voz cuatro.  Esto se hace escribiendo otro par de barras
+invertidas (@code{\\}).
 
 @lilypond[quote,verbatim,ragged-right]
 \new Staff \relative {
@@ -963,19 +983,21 @@ Esto se hace escribiendo otro par de barras invertidas (@code{\\}).
 @end lilypond
 
 @noindent
-Vemos que esto arregla la dirección de la plica, pero la colocación
-horizontal de las notas no es la deseada.  LilyPond desplaza las notas
-interiores cuando ellas o sus plicas de otro modo colisionarían con
-las voces exteriores, pero esto no es lo más adecuado para música de
-piano.  En otras situaciones, los desplazamientos que LilyPond aplica
-pueden no eliminar las colisiones.  LilyPond aporta varias formas de
-ajustar la colocación horizontal de las notas.  Aún no estamos
-preparados para ver cómo se corrige esto, por lo que dejaremos el
-problema para una sección posterior (véase la propiedad
-@code{force-hshift} en @ref{Arreglar notación con superposiciones}).
-
-@warning{No se pueden crear letras ni objetos de extensión
-(como ligaduras, reguladores, etc.) @q{entre} voces distintas.}
+Vemos que esto arregla la dirección de la plica, pero la
+colocación horizontal de las notas no es la deseada.  LilyPond
+desplaza las notas interiores cuando ellas o sus plicas de otro
+modo colisionarían con las voces exteriores, pero esto no es lo
+más adecuado para música de piano.  En otras situaciones, los
+desplazamientos que LilyPond aplica pueden no eliminar las
+colisiones.  LilyPond aporta varias formas de ajustar la
+colocación horizontal de las notas.  Aún no estamos preparados
+para ver cómo se corrige esto, por lo que dejaremos el problema
+para una sección posterior (véase la propiedad
+@code{force-hshift} en @ref{Arreglar notación con
+superposiciones}).
+
+@warning{No se pueden crear letras ni objetos de extensión (como
+ligaduras, reguladores, etc.) @q{entre} voces distintas.}
 
 @seealso
 Referencia de la notación:
@@ -1000,12 +1022,12 @@ Referencia de la notación:
 @funindex \new Voice
 @cindex contextos de voz, creación de
 
-Los contextos de voz también se pueden crear manualmente dentro de un
-bloque @code{<< >>} para crear música polifónica, utilizando
-@code{\voiceOne} @dots{} @code{\voiceFour} para indicar las direcciones
-requeridas de plicas, ligaduras, etc.  En partituras más largas, este
-método es más claro porque permite que las voces estén separadas y
-reciban nombres más descriptivos.
+Los contextos de voz también se pueden crear manualmente dentro
+de un bloque @code{<< >>} para crear música polifónica,
+utilizando @code{\voiceOne} @dots{} @code{\voiceFour} para
+indicar las direcciones requeridas de plicas, ligaduras, etc.  En
+partituras más largas, este método es más claro porque permite
+que las voces estén separadas y reciban nombres más descriptivos.
 
 Concretamente, la construcción @code{<< \\ >>} que usamos en la
 sección previa:
@@ -1044,17 +1066,18 @@ Los dos ejemplos anteriores producen:
 Las instrucciones @code{\voiceXXX} establecen la dirección de las
 plicas, ligaduras de expresión, ligaduras de prolongación,
 articulaciones, anotaciones de texto, puntillos y digitaciones.
-@code{\voiceOne} y @code{\voiceThree} hacen que estos objetos apunten
-hacia arriba, mientras que @code{\voiceTwo} y @code{\voiceFour} los
-hacen apuntar hacia abajo.  Estas instrucciones también producen un
-desplazamiento horizontal para cada voz cuando es necesario para
-evitar choques entre las cabezas.  La instrucción @code{\oneVoice}
-devuelve los ajustes de nuevo a los valores normales para una sola
-voz.
-
-Veamos en algunos ejemplos sencillos exactamente qué efecto tienen
-@code{\oneVoice}, @code{\voiceOne} y @code{voiceTwo} sobre el marcado,
-las ligaduras de unión y de expresión y las indicaciones de dinámica:
+@code{\voiceOne} y @code{\voiceThree} hacen que estos objetos
+apunten hacia arriba, mientras que @code{\voiceTwo} y
+@code{\voiceFour} los hacen apuntar hacia abajo.  Estas
+instrucciones también producen un desplazamiento horizontal para
+cada voz cuando es necesario para evitar choques entre las
+cabezas.  La instrucción @code{\oneVoice} devuelve los ajustes de
+nuevo a los valores normales para una sola voz.
+
+Veamos en algunos ejemplos sencillos exactamente qué efecto
+tienen @code{\oneVoice}, @code{\voiceOne} y @code{voiceTwo} sobre
+el marcado, las ligaduras de unión y de expresión y las
+indicaciones de dinámica:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative {
@@ -1081,18 +1104,20 @@ las ligaduras de unión y de expresión y las indicaciones de dinámica:
 }
 @end lilypond
 
-A continuación veremos tres formas distintas de componer la notación
-del mismo pasaje polifónico, cada una de las cuales tiene sus ventajas
-según la circunstancia, utilizando el ejemplo de la sección anterior.
+A continuación veremos tres formas distintas de componer la
+notación del mismo pasaje polifónico, cada una de las cuales
+tiene sus ventajas según la circunstancia, utilizando el ejemplo
+de la sección anterior.
 
 Una expresión que aparece directamente dentro de @code{<< >>}
-pertenece a la voz principal (pero, observe, @strong{no} dentro de una
-construcción @code{<< \\ >>}).  Esto es útil cuando aparecen voces
-nuevas mientras la voz principal está sonando.  A continuación podemos
-ver una realización más correcta del ejemplo de la sección anterior.
-Las notas rojas en forma de rombo muestran que la melodía principal
-está ahora dentro de un contexto de una sola voz, haciendo que se
-pueda trazar una ligadura por encima de ellas.
+pertenece a la voz principal (pero, observe, @strong{no} dentro
+de una construcción @code{<< \\ >>}).  Esto es útil cuando
+aparecen voces nuevas mientras la voz principal está sonando.  A
+continuación podemos ver una realización más correcta del ejemplo
+de la sección anterior.  Las notas rojas en forma de rombo
+muestran que la melodía principal está ahora dentro de un
+contexto de una sola voz, haciendo que se pueda trazar una
+ligadura por encima de ellas.
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative {
@@ -1125,9 +1150,9 @@ pueda trazar una ligadura por encima de ellas.
 @cindex voces temporales
 @cindex voces, anidado de
 
-Son posibles construcciones polifónicas anidadas más profundamente, y
-si una voz aparece sólo brevemente podría haber una forma más natural
-de tipografiar la música.
+Son posibles construcciones polifónicas anidadas más
+profundamente, y si una voz aparece sólo brevemente podría haber
+una forma más natural de tipografiar la música.
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative {
@@ -1151,11 +1176,12 @@ de tipografiar la música.
 
 @cindex espaciadoras, notas
 
-Este método de anidar voces nuevas brevemente es útil cuando sólo hay
-secciones polifónicas pequeñas, pero cuando todo el pentagrama es muy
-polifónico podría ser más claro usar varias voces todo el tiempo,
-usando notas espaciadoras para pasar por encima de las secciones en
-que una voz está en silencio, como aquí:
+Este método de anidar voces nuevas brevemente es útil cuando sólo
+hay secciones polifónicas pequeñas, pero cuando todo el
+pentagrama es muy polifónico podría ser más claro usar varias
+voces todo el tiempo, usando notas espaciadoras para pasar por
+encima de las secciones en que una voz está en silencio, como
+aquí:
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative <<
@@ -1194,38 +1220,42 @@ que una voz está en silencio, como aquí:
 @funindex \shiftOnnn
 @funindex shiftOnnn
 
-Las notas cercanas de un acorde, o las notas que se producen al mismo
-tiempo en distintas voces, se disponen en dos (y ocasionalmente más)
-columnas para evitar el solapamiento de las cabezas.  Reciben el
-nombre de columnas de notas.  Hay columnas distintas para cada voz, y
-el desplazamiento especificado en curso dependiente de la voz se
-aplica a la columna de la nota si en caso contrario se produjese una
-colisión.  Esto se puede ver en el ejemplo anterior. En el compás 2 el
-Do en la voz dos está desplazado a la derecha respecto del Re de la
-voz uno, y en el último acorde el Do de la voz tres también está
-desplazado a la derecha respecto de las otras notas.
-
-Las instrucciones @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}
-y @code{\shiftOff} especifican el grado en que se deben desplazar las
-notas y acordes de la voz si en caso contrario ocurriese una
-colisión.  De forma predeterminada, las voces exteriores (normalmente
-las voces uno y dos) llevan especificado @code{\shiftOff}, mientras
-que las voces interiores (tres y cuatro) tienen @code{\shiftOn}
-especificado.  Cuando se aplica un desplazamiento, las voces uno y
-tres se desplazan hacia la derecha y las voces dos y cuatro se
-desplazan hacia la izquierda.
-
-@code{\shiftOnn} y @code{\shiftOnnn} definen niveles adicionales de
-desplazamiento que se pueden especificar temporalmente para resolver
-colisiones en situaciones complejas (véase @ref{Ejemplos reales de música}).
-
-Una columna de notas puede contener sólo una nota (o acorde) de una
-voz con las plicas hacia arriba y una not (o acorde) de una voz con
-las plicas hacia abajo.  Si las notas de dos voces que tienen las
-plicas en la misma dirección se sitúan en la misma posición y las dos
-voces no tienen ningún desplazamiento o llevan especificado el mismo
-desplazamiento, se producirá el mensaje de error @qq{Chocan demasiadas
-columnas de notas}.
+Las notas cercanas de un acorde, o las notas que se producen al
+mismo tiempo en distintas voces, se disponen en dos (y
+ocasionalmente más) columnas para evitar el solapamiento de las
+cabezas.  Reciben el nombre de columnas de notas.  Hay columnas
+distintas para cada voz, y el desplazamiento especificado en
+curso dependiente de la voz se aplica a la columna de la nota si
+en caso contrario se produjese una colisión.  Esto se puede ver
+en el ejemplo anterior. En el compás 2 el Do en la voz dos está
+desplazado a la derecha respecto del Re de la voz uno, y en el
+último acorde el Do de la voz tres también está desplazado a la
+derecha respecto de las otras notas.
+
+Las instrucciones @code{\shiftOn}, @code{\shiftOnn},
+@code{\shiftOnnn} y @code{\shiftOff} especifican el grado en que
+se deben desplazar las notas y acordes de la voz si en caso
+contrario ocurriese una colisión.  De forma predeterminada, las
+voces exteriores (normalmente las voces uno y dos) llevan
+especificado @code{\shiftOff}, mientras que las voces interiores
+(tres y cuatro) tienen @code{\shiftOn} especificado.  Cuando se
+aplica un desplazamiento, las voces uno y tres se desplazan hacia
+la derecha y las voces dos y cuatro se desplazan hacia la
+izquierda.
+
+@code{\shiftOnn} y @code{\shiftOnnn} definen niveles adicionales
+de desplazamiento que se pueden especificar temporalmente para
+resolver colisiones en situaciones complejas (véase
+@ref{Ejemplos reales de música}).
+
+Una columna de notas puede contener sólo una nota (o acorde) de
+una voz con las plicas hacia arriba y una not (o acorde) de una
+voz con las plicas hacia abajo.  Si las notas de dos voces que
+tienen las plicas en la misma dirección se sitúan en la misma
+posición y las dos voces no tienen ningún desplazamiento o llevan
+especificado el mismo desplazamiento, se producirá el mensaje de
+error @qq{Esta voz requiere un ajuste de @code{@bs{}voiceXx} o
+@code{@bs{}shiftXx}}.
 
 
 @seealso
@@ -1241,8 +1271,8 @@ Referencia de la notación:
 @translationof Voices and vocals
 
 
-La música vocal presenta una dificultad especial: tenemos que combinar
-dos expresiones, a saber, las notas y la letra.
+La música vocal presenta una dificultad especial: tenemos que
+combinar dos expresiones, a saber, las notas y la letra.
 
 @funindex \new Lyrics
 @funindex \lyricsto
@@ -1254,10 +1284,10 @@ dos expresiones, a saber, las notas y la letra.
 
 Ya ha visto la instrucción @code{\addlyrics@{@}}, que maneja bien
 partituras sencillas.  Sin embargo esta técnica es algo limitada.
-Para música de mayor complejidad, tenemos que introducir la letra en
-un contexto @code{Lyrics} utilizando @code{\new Lyrics} y enlazar
-explícitamente la letra y las notas mediante @code{\lyricsto@{@}},
-usando el nombre asignado a la voz.
+Para música de mayor complejidad, tenemos que introducir la letra
+en un contexto @code{Lyrics} utilizando @code{\new Lyrics} y
+enlazar explícitamente la letra y las notas mediante
+@code{\lyricsto@{@}}, usando el nombre asignado a la voz.
 
 @lilypond[quote,verbatim]
 <<
@@ -1274,10 +1304,10 @@ usando el nombre asignado a la voz.
 >>
 @end lilypond
 
-Observe que la letra se debe enlazar a un contexto de @code{Voice},
-@emph{no} a un contexto de @code{Staff}.  Este es un caso en que es
-necesario crear contextos de @code{Staff} y de @code{Voice}
-explícitamente.
+Observe que la letra se debe enlazar a un contexto de
+@code{Voice}, @emph{no} a un contexto de @code{Staff}.  Este es
+un caso en que es necesario crear contextos de @code{Staff} y de
+@code{Voice} explícitamente.
 
 @cindex letra y barrado
 @cindex barrado y letra
@@ -1286,10 +1316,10 @@ explícitamente.
 
 El barrado automático que LilyPond usa de forma predeterminada
 funciona bien para la música instrumental, pero no tan bien para
-música con letra, donde o bien el barrado no se necesita en absoluto,
-o bien se utiliza para indicar los melismas de la letra.  En el
-ejemplo anterior hemos utilizado la instrucción @code{\autoBeamOff}
-para desactivar el barrado automático.
+música con letra, donde o bien el barrado no se necesita en
+absoluto, o bien se utiliza para indicar los melismas de la
+letra.  En el ejemplo anterior hemos utilizado la instrucción
+@code{\autoBeamOff} para desactivar el barrado automático.
 
 @funindex \new ChoirStaff
 @funindex ChoirStaff
@@ -1298,13 +1328,13 @@ para desactivar el barrado automático.
 @cindex vocal, estructura de una partitura
 @cindex coro, sistema de
 
-Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo» para
-ilustrar esta técnica más flexible.  Primero la reescribiremos para
-que use variables, de manera que la música y la letra se puedan
-separar de la estructura de pentagramas.  También introduciremos una
-llave de grupo de ChoirStaff.  La letra en sí se debe introducir con
-@code{\lyricmode} para estar seguros de que se interpreta como letra y
-no como música.
+Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo»
+para ilustrar esta técnica más flexible.  Primero la
+reescribiremos para que use variables, de manera que la música y
+la letra se puedan separar de la estructura de pentagramas.
+También introduciremos una llave de grupo de ChoirStaff.  La
+letra en sí se debe introducir con @code{\lyricmode} para estar
+seguros de que se interpreta como letra y no como música.
 
 @lilypond[quote,verbatim]
 global = { \key f \major \time 6/8 \partial 8 }
@@ -1347,10 +1377,10 @@ SopTwoLyrics = \lyricmode {
 @end lilypond
 
 Ésta es la estructura básica de todas las partituras vocales.  Se
-pueden añadir más pentagramas según se necesite, se pueden añadir más
-voces a los pentagramas y más estrofas a la letra, y las variables que
-contienen la música se pueden colocar fácilmente en archivos separados
-cuando se hagan demasiado largos.
+pueden añadir más pentagramas según se necesite, se pueden añadir
+más voces a los pentagramas y más estrofas a la letra, y las
+variables que contienen la música se pueden colocar fácilmente en
+archivos separados cuando se hagan demasiado largos.
 
 @cindex himno, estructura de
 @cindex SATB, estructura de
@@ -1358,14 +1388,15 @@ cuando se hagan demasiado largos.
 @cindex varias estrofas vocales
 @cindex estrofas, varias, vocales
 
-A continuación podemos ver un ejemplo final de la primera línea de un
-himno con cuatro estrofas, para coro SATB.  En este caso la letra de
-las cuatro partes es la misma.  Observe cómo utilizamos variables para
-separar la notación musical de la estructura de pentagramas.  Observe
-también cómo se utiliza una variable, para la que hemos elegido el
-nombre @q{TimeKey} («compás y tonalidad»), para que contenga varias
-instrucciones que se usarán dentro de los dos pentagramas.  En otros
-ejemplos se le suele dar el nombre de @q{global}.
+A continuación podemos ver un ejemplo final de la primera línea
+de un himno con cuatro estrofas, para coro SATB.  En este caso la
+letra de las cuatro partes es la misma.  Observe cómo utilizamos
+variables para separar la notación musical de la estructura de
+pentagramas.  Observe también cómo se utiliza una variable, para
+la que hemos elegido el nombre @q{TimeKey} («compás y
+tonalidad»), para que contenga varias instrucciones que se usarán
+dentro de los dos pentagramas.  En otros ejemplos se le suele dar
+el nombre de @q{global}.
 
 
 
@@ -1416,10 +1447,10 @@ Referencia de la notación:
 @section Contextos y grabadores
 @translationof Contexts and engravers
 
-Los contextos y grabadores se han mencionado de manera informal en
-secciones anteriores; ahora tan sólo vamos a ver estos conceptos con
-más detalle, pues son importantes en el ajuste fino de la salida de
-LilyPond.
+Los contextos y grabadores se han mencionado de manera informal
+en secciones anteriores; ahora tan sólo vamos a ver estos
+conceptos con más detalle, pues son importantes en el ajuste fino
+de la salida de LilyPond.
 
 @menu
 * Explicación de los contextos::
@@ -1435,75 +1466,78 @@ LilyPond.
 
 @cindex contextos, explicación de los
 
-Cuando se imprime la música, se tienen que añadir a la salida una gran
-cantidad de elementos notacionales que no aparecen explícitamente en
-el archivo de entrada.  Por ejemplo, compare la entrada y la salida
-del siguiente ejemplo:
+Cuando se imprime la música, se tienen que añadir a la salida una
+gran cantidad de elementos notacionales que no aparecen
+explícitamente en el archivo de entrada.  Por ejemplo, compare la
+entrada y la salida del siguiente ejemplo:
 
 @lilypond[quote,verbatim]
 \relative { cis''4 cis2. | a4 a2. | }
 @end lilypond
 
-La entrada es bastante escueta, pero en la salida se han añadido las
-líneas divisorias, las alteraciones, la clave y la armadura de la
-tonalidad.  Cuando LilyPond @emph{interpreta} la entrada, la
-información musical se analiza de izquierda a derecha de igual forma
-que un intérprete lee la partitura.  Mientras se lee el código de
-entrada, el programa recuerda dónde están los límites de los compases,
-y qué alturas requieren alteraciones accidentales explícitas.  Esta
-información se debe conservar a varios niveles.  Por ejemplo, una
-alteración accidental afecta solamente a un pentagrama, mientras que
-una línea divisoria debe estar sincronizada a lo largo de todo el
-sistema.
-
-Dentro de LilyPond, estas reglas y pequeñas porciones de información
-se agrupan en @emph{Contexts}.  Ya hemos visto el contexto de voz,
-@code{Voice}.  Otros ejemplos de contextos son @code{Staff} (Pauta o
-pentagrama) y @code{Score} (Partitura).  Los contextos son
-jerárquicos, de forma que reflejan la naturaleza jerárquica de una
-partitura musical.  Por ejemplo: un contexto de @code{Staff} contener
-muchos contextos de @code{Voice}, y un contexto de @code{Score} puede
-contener muchos contextos de @code{Staff}.
+La entrada es bastante escueta, pero en la salida se han añadido
+las líneas divisorias, las alteraciones, la clave y la armadura
+de la tonalidad.  Cuando LilyPond @emph{interpreta} la entrada,
+la información musical se analiza de izquierda a derecha de igual
+forma que un intérprete lee la partitura.  Mientras se lee el
+código de entrada, el programa recuerda dónde están los límites
+de los compases, y qué alturas requieren alteraciones
+accidentales explícitas.  Esta información se debe conservar a
+varios niveles.  Por ejemplo, una alteración accidental afecta
+solamente a un pentagrama, mientras que una línea divisoria debe
+estar sincronizada a lo largo de todo el sistema.
+
+Dentro de LilyPond, estas reglas y pequeñas porciones de
+información se agrupan en @emph{Contexts}.  Ya hemos visto el
+contexto de voz, @code{Voice}.  Otros ejemplos de contextos son
+@code{Staff} (Pauta o pentagrama) y @code{Score} (Partitura).
+Los contextos son jerárquicos, de forma que reflejan la
+naturaleza jerárquica de una partitura musical.  Por ejemplo: un
+contexto de @code{Staff} contener muchos contextos de
+@code{Voice}, y un contexto de @code{Score} puede contener muchos
+contextos de @code{Staff}.
 
 @quotation
 @sourceimage{context-example,5cm,,}
 @end quotation
 
-Cada contexto asume la responsabilidad de imponer algunas reglas de
-notación, creando ciertos objetos de notación y manteniendo las
-propiedades asociadas.  Por ejemplo, el contexto @code{Voice} puede
-introducir una alteración accidental y entonces el contexto
-@code{Staff} mantiene la regla de mostrar o suprimir la alteración
-para el resto del compás.
-
-Otro ejemplo lo constituye el hecho de que la sincronización de las
-líneas divisorias se gestiona dentro del contexto de la partitura,
-@code{Score}, de forma predeterminada.  Sin embargo, en algunas
-músicas posiblemente no queramos que las líneas divisorias estén
-sincronizadas (pensemos en una partitura polimétrica en compases de
-4/4 y de 3/4).  En tales casos, debemos modificar los ajustes por
-omisión de los contextos @code{Score} y @code{Staff}.
-
-Para partituras muy sencillas, los contextos se crean implícitamente y
-no debemos preocuparnos por ellos.  Para piezas mayores, como por
-ejemplo cualquiera que tenga más de un pentagrama, los contextos se
-deben crear explícitamente para asegurarnos de que tendremos la
-cantidad exacta de pentagramas que necesitamos, y que están en el
-orden correcto.  Para tipografiar piezas con notación especializada,
-es frecuente la modificación de contextos existentes o incluso definir
-unos completamente nuevos.
-
-
-Además de los contextos @code{Score,} @code{Staff} y @code{Voice}, hay
-contextos que se sitúan entre los niveles de partitura y de pentagrama
-para controlar los grupos de pentagramas, como los contextos
-@code{PianoStaff} y @code{ChoirStaff}.  También existen contextos
-alternativos de pentagrama y de voz, y contextos para la letra, la
-percusión, diagramas de trastes, bajo cifrado, etc.
-
-Los nombres de todos los tipos de contextos se componen de una o más
-palabras que comienzan con mayúscula y que están unidas unas a otras
-sin guión ni barra baja, por ejemplo:
+Cada contexto asume la responsabilidad de imponer algunas reglas
+de notación, creando ciertos objetos de notación y manteniendo
+las propiedades asociadas.  Por ejemplo, el contexto @code{Voice}
+puede introducir una alteración accidental y entonces el contexto
+@code{Staff} mantiene la regla de mostrar o suprimir la
+alteración para el resto del compás.
+
+Otro ejemplo lo constituye el hecho de que la sincronización de
+las líneas divisorias se gestiona dentro del contexto de la
+partitura, @code{Score}, de forma predeterminada.  Sin embargo,
+en algunas músicas posiblemente no queramos que las líneas
+divisorias estén sincronizadas (pensemos en una partitura
+polimétrica en compases de 4/4 y de 3/4).  En tales casos,
+debemos modificar los ajustes por omisión de los contextos
+@code{Score} y @code{Staff}.
+
+Para partituras muy sencillas, los contextos se crean
+implícitamente y no debemos preocuparnos por ellos.  Para piezas
+mayores, como por ejemplo cualquiera que tenga más de un
+pentagrama, los contextos se deben crear explícitamente para
+asegurarnos de que tendremos la cantidad exacta de pentagramas
+que necesitamos, y que están en el orden correcto.  Para
+tipografiar piezas con notación especializada, es frecuente la
+modificación de contextos existentes o incluso definir unos
+completamente nuevos.
+
+Además de los contextos @code{Score,} @code{Staff} y
+@code{Voice}, hay contextos que se sitúan entre los niveles de
+partitura y de pentagrama para controlar los grupos de
+pentagramas, como los contextos @code{PianoStaff} y
+@code{ChoirStaff}.  También existen contextos alternativos de
+pentagrama y de voz, y contextos para la letra, la percusión,
+diagramas de trastes, bajo cifrado, etc.
+
+Los nombres de todos los tipos de contextos se componen de una o
+más palabras que comienzan con mayúscula y que están unidas unas
+a otras sin guión ni barra baja, por ejemplo:
 @code{GregorianTranscriptionStaff}.
 
 
@@ -1524,16 +1558,17 @@ Referencia de la notación:
 
 En un archivo de entrada, el bloque de partitura, que se presenta
 precedido por la instrucción @code{\score}, contiene una sola
-expresión musical y una definición de salida asociada (bien un bloque
-@code{\layout} o bien un bloque @code{\midi}).  El contexto
-@code{Score} se suele dejar que se cree automáticamente cuando
-comienza la interpretación de esa expresión musical.
-
-Para partituras que solamente tienen una voz y un pentagrama, podemos
-también dejar que los contextos @code{Voice} y @code{Staff} se creen
-automáticamente, pero para partituras más complejas es necesario
-crearlos a mano.  La instrucción más simple que hace esto es
-@code{\new}.  Se antepone a una expresión musical, por ejemplo
+expresión musical y una definición de salida asociada (bien un
+bloque @code{\layout} o bien un bloque @code{\midi}).  El
+contexto @code{Score} se suele dejar que se cree automáticamente
+cuando comienza la interpretación de esa expresión musical.
+
+Para partituras que solamente tienen una voz y un pentagrama,
+podemos también dejar que los contextos @code{Voice} y
+@code{Staff} se creen automáticamente, pero para partituras más
+complejas es necesario crearlos a mano.  La instrucción más
+simple que hace esto es @code{\new}.  Se antepone a una expresión
+musical, por ejemplo
 
 @example
 \new @var{tipo} @var{expresión_musical}
@@ -1541,22 +1576,23 @@ crearlos a mano.  La instrucción más simple que hace esto es
 
 @noindent
 donde @var{tipo} es el nombre de un contexto (como @code{Staff} o
-@code{Voice}).  Esta instrucción crea un contexto nuevo, y comienza a
-interpretar la @var{expresión_musical} que está dentro de ese
-contexto.
+@code{Voice}).  Esta instrucción crea un contexto nuevo, y
+comienza a interpretar la @var{expresión_musical} que está dentro
+de ese contexto.
 
 @warning{No se debe usar @bs{}@code{new Score} porque el contexto
-@code{Score} esencial del nivel superior ya se crea automáticamente al
-interpretarse la expresión musical que está dentro del bloque
-@bs{}@code{score}.  Los valores predeterminados de propiedades de
-contexto válidos para toda la partitura se pueden cambiar dentro del
-bloque @bs{}@code{layout}.  Véase @ref{Modificar las propiedades de
-los contextos}.}
-
-En las secciones anteriores ha podido ver muchos ejemplos prácticos que
-creaban nuevos contextos de @code{Staff} y de @code{Voice}, pero para
-recordarle cómo se emplean estas instrucciones en la práctica, he aquí
-un ejemplo anotado de música real:
+@code{Score} esencial del nivel superior ya se crea
+automáticamente al interpretarse la expresión musical que está
+dentro del bloque @bs{}@code{score}.  Los valores predeterminados
+de propiedades de contexto válidos para toda la partitura se
+pueden cambiar dentro del bloque @bs{}@code{layout}.  Véase
+@ref{Modificar las propiedades de los contextos}.}
+
+En las secciones anteriores ha podido ver muchos ejemplos
+prácticos que creaban nuevos contextos de @code{Staff} y de
+@code{Voice}, pero para recordarle cómo se emplean estas
+instrucciones en la práctica, he aquí un ejemplo anotado de
+música real:
 
 @lilypond[quote,verbatim,ragged-right]
 \score {  % start of single compound music expression
@@ -1596,38 +1632,40 @@ un ejemplo anotado de música real:
 
 (Observe cómo todas las instrucciones que abren un bloque con una
 llave curva, @code{@{}, o con ángulos dobles, @code{<<}, están
-sangrados (tienen un margen adicional) con dos espacios adicionales, y
-la llave de cierre correspondiente tiene un margen exactamente igual.
-Aunque no es necesario, la observancia de esta práctica reducirá
-considerablemente el número de errores de @q{paréntesis
-descompensados}, y se recomienda vivamente.  Permite apreciar de un
-solo vistazo la estructura de la música, y cualquier paréntesis
-descompensado aparecerá con obviedad.  Observe también cómo el
-pentagrama de la MI se crea usando dobles ángulos porque requiere dos
-voces, mientras que el pentagrama de la MD se crea con una expresión
-musical única encerrada entre llaves porque sólo requiere una voz.)
+sangrados (tienen un margen adicional) con dos espacios
+adicionales, y la llave de cierre correspondiente tiene un margen
+exactamente igual.  Aunque no es necesario, la observancia de
+esta práctica reducirá considerablemente el número de errores de
+@q{paréntesis descompensados}, y se recomienda vivamente.
+Permite apreciar de un solo vistazo la estructura de la música, y
+cualquier paréntesis descompensado aparecerá con obviedad.
+Observe también cómo el pentagrama de la MI se crea usando dobles
+ángulos porque requiere dos voces, mientras que el pentagrama de
+la MD se crea con una expresión musical única encerrada entre
+llaves porque sólo requiere una voz.)
 
 
 @cindex contextos, nombrado
 @cindex nombrar contextos
 
 La instrucción @code{\new} también puede otorgar un nombre
-identificativo al contexto para distinguirlo de otros contextos del
-mismo tipo:
+identificativo al contexto para distinguirlo de otros contextos
+del mismo tipo:
 
 @example
 \new @var{tipo} = @var{identificador} @var{expresión_musical}
 @end example
 
 Observe la distinción entre el nombre del tipo de contexto,
-@code{Staff}, @code{Voice}, etc., y el nombre identificativo de una
-instancia en particular de ese tipo, que puede ser cualquier secuencia
-de letras inventada por el usuario.  En el nombre identificativo
-también se pueden utilizar dígitos y espacios, pero en este caso aquél
-debe ir entre comillas p.ej. @code{\new Staff = "MiPentagrama 1"
-@var{expresión_musical}}.  El nombre identificativo se utiliza para
-referirnos más tarde a esa instancia en particular de un contexto.
-Hemos visto esto en la sección acerca de la letra, en @ref{Voces y música vocal}.
+@code{Staff}, @code{Voice}, etc., y el nombre identificativo de
+una instancia en particular de ese tipo, que puede ser cualquier
+secuencia de letras inventada por el usuario.  En el nombre
+identificativo también se pueden utilizar dígitos y espacios,
+pero en este caso aquél debe ir entre comillas p.ej. @code{\new
+Staff = "MiPentagrama 1" @var{expresión_musical}}.  El nombre
+identificativo se utiliza para referirnos más tarde a esa
+instancia en particular de un contexto.  Hemos visto esto en la
+sección acerca de la letra, en @ref{Voces y música vocal}.
 
 
 @seealso
@@ -1641,47 +1679,50 @@ Referencia de la notación:
 
 @cindex grabadores
 
-Todas y cada una de las marcas de la salida impresa de una partitura
-hecha con LilyPond está producida por un @code{Engraver} (grabador).
-Así, tenemos un grabador para imprimir pentagramas, otro para imprimir
-las cabezas de las notas, otro para las plicas, otro para las barras,
-etc, etc.  ¡En total hay más de 120 grabadores!  Afortunadamente, para
-la mayor parte de las partituras no es necesario conocer más que
-algunos, y para partituras sencillas no tenemos que saber nada de
-ninguno de ellos.
-
-Los grabadores residen y operan dentro de Contextos.  Los grabadores
-como el grabador de la indicación metronómica,
-@code{Metronome_mark_engraver}, cuya acción y resultado se aplican a
-la partitura como un todo, operan en el contexto del nivel más alto:
-el contexto de partitura @code{Score}.
+Todas y cada una de las marcas de la salida impresa de una
+partitura hecha con LilyPond está producida por un
+@code{Engraver} (grabador).  Así, tenemos un grabador para
+imprimir pentagramas, otro para imprimir las cabezas de las
+notas, otro para las plicas, otro para las barras, etc, etc.  ¡En
+total hay más de 120 grabadores!  Afortunadamente, para la mayor
+parte de las partituras no es necesario conocer más que algunos,
+y para partituras sencillas no tenemos que saber nada de ninguno
+de ellos.
+
+Los grabadores residen y operan dentro de Contextos.  Los
+grabadores como el grabador de la indicación metronómica,
+@code{Metronome_mark_engraver}, cuya acción y resultado se
+aplican a la partitura como un todo, operan en el contexto del
+nivel más alto: el contexto de partitura @code{Score}.
 
 El grabador de la clave @code{Clef_engraver} y el de la armadura
-@code{Key_engraver} se encuentran probablemente en todos los contextos
-de pentagrama (@code{Staff}), pues los distintos pentagramas podrían
-requerir diferentes claves y armaduras.
+@code{Key_engraver} se encuentran probablemente en todos los
+contextos de pentagrama (@code{Staff}), pues los distintos
+pentagramas podrían requerir diferentes claves y armaduras.
 
-El grabador de las cabezas de nota @code{Note_heads_engraver} y el de
-las plicas @code{Stem_engraver} viven en cada uno de los contextos de
-voz @code{Voice}, el contexto de nivel más bajo de todos.
+El grabador de las cabezas de nota @code{Note_heads_engraver} y
+el de las plicas @code{Stem_engraver} viven en cada uno de los
+contextos de voz @code{Voice}, el contexto de nivel más bajo de
+todos.
 
 Cada grabador procesa los objetos particulares asociados con su
-función, y mantiene las propiedades que están relacionadas con dicha
-función.  Estas propiedades, como las que están asociadas con los
-contextos, se pueden modificar para cambiar el funcionamiento del
-grabador o el aspecto de esos elementos en la partitura impresa.
-
-Todos los grabadores tienen nombres compuestos de varias palabras que
-describen su función.  Sólo está en mayúsculas la inicial de la
-primera palabra, y el resto se le une mediante guiones bajos.  Así, el
-grabador @code{Staff_symbol_engraver} es responsable de la creación de
-las líneas del pentagrama, y el @code{Clef_engraver} determina y
-establece la altura o el punto de referencia sobre el pentagrama
-dibujando un símbolo de clave.
+función, y mantiene las propiedades que están relacionadas con
+dicha función.  Estas propiedades, como las que están asociadas
+con los contextos, se pueden modificar para cambiar el
+funcionamiento del grabador o el aspecto de esos elementos en la
+partitura impresa.
+
+Todos los grabadores tienen nombres compuestos de varias palabras
+que describen su función.  Sólo está en mayúsculas la inicial de
+la primera palabra, y el resto se le une mediante guiones bajos.
+Así, el grabador @code{Staff_symbol_engraver} es responsable de
+la creación de las líneas del pentagrama, y el
+@code{Clef_engraver} determina y establece la altura o el punto
+de referencia sobre el pentagrama dibujando un símbolo de clave.
 
 A continuación presentamos algunos de los grabadores más comunes,
-junto a su función.  Podrá comprobar que es fácil adivinar la función
-a partir del nombre (en inglés), y viceversa.
+junto a su función.  Podrá comprobar que es fácil adivinar la
+función a partir del nombre (en inglés), y viceversa.
 
 @multitable @columnfractions .3 .7
 @headitem Grabador
@@ -1737,25 +1778,26 @@ Referencia de funcionamiento interno:
 @funindex \unset
 @funindex unset
 
-Los contextos se responsabilizan de mantener los valores de un cierto
-número de @emph{properties} de contexto.  Muchas de ellas se pueden
-cambiar para influir en la interpretación del código de entrada y
-cambiar así la apariencia de la salida impresa.  Se modifican mediante
-la instrucción @code{\set}.  Esta instrucción toma la forma siguiente:
+Los contextos se responsabilizan de mantener los valores de un
+cierto número de @emph{properties} de contexto.  Muchas de ellas
+se pueden cambiar para influir en la interpretación del código de
+entrada y cambiar así la apariencia de la salida impresa.  Se
+modifican mediante la instrucción @code{\set}.  Esta instrucción
+toma la forma siguiente:
 
 @example
 \set @emph{NombreDelContexto}.@emph{nombreDeLaPropiedad} = #@emph{valor}
 @end example
 
 Donde el @emph{NombreDelContexto} es normalmente @code{Score},
-@code{Staff} o @code{Voice}.  Se puede omitir, en cuyo caso se supone
-que es el contexto en curso (normalmente @code{Voice}).
+@code{Staff} o @code{Voice}.  Se puede omitir, en cuyo caso se
+supone que es el contexto en curso (normalmente @code{Voice}).
 
 Los nombres de las propiedades de contexto consisten en palabras
 unidas sin ningún guión o barra baja, y donde todas las palabras
-excepto la primera empiezan en mayúscula.  A continuación podemos ver
-algunos ejemplos de nombres de propiedades utilizadas con frecuencia.
-Hay muchas más que las que se muestran aquí.
+excepto la primera empiezan en mayúscula.  A continuación podemos
+ver algunos ejemplos de nombres de propiedades utilizadas con
+frecuencia.  Hay muchas más que las que se muestran aquí.
 
 @c attempt to force this onto a new page
 @need 50
@@ -1792,28 +1834,28 @@ Hay muchas más que las que se muestran aquí.
 
 @noindent
 donde un valor Booleano es verdadero (@code{#t}, True) o falso
-(@code{#f}, False), un Entero es un número entero positivo, un número
-Real es un número decimal positivo o negativo, y el texto se encierra
-entre comillas dobles.  Observe la aparición de signos de cuadradillo,
-(@code{#}), en dos lugares diferentes: como parte del valor Booleano
-antes de la @code{t} o la @code{f}, y antes del @emph{valor} dentro de
-la sentencia @code{\set}.  Así pues, cuando se está escribiendo un
-valor Booleano, hay que escribir dos signos de cuadradillo, por
-ejemplo: @code{##t}.
+(@code{#f}, False), un Entero es un número entero positivo, un
+número Real es un número decimal positivo o negativo, y el texto
+se encierra entre comillas dobles.  Observe la aparición de
+signos de cuadradillo, (@code{#}), en dos lugares diferentes:
+como parte del valor Booleano antes de la @code{t} o la @code{f},
+y antes del @emph{valor} dentro de la sentencia @code{\set}.  Así
+pues, cuando se está escribiendo un valor Booleano, hay que
+escribir dos signos de cuadradillo, por ejemplo: @code{##t}.
 
 @cindex propiedades que funcionan en contextos
 @cindex establecer propiedades en contextos
 
-Antes de poder establecer cualquiera de estas propiedades, tenemos que
-saber en qué contexto operan.  A veces es algo obvio, pero en
-ocasiones puede ser algo enrevesado.  Si especificamos un contexto
-equivocado, no se produce ningún mensaje de error, pero el
-funcionamiento esperado no tendrá lugar.  Por ejemplo, la propiedad
-@code{instrumentName} (nombre del instrumento) vive claramente dentro
-del contexto de @code{Staff}, puesto que es el pentagrama el que debe
-ser nombrado.  En este ejemplo, el primer pentagrama resulta
-etiquetado, pero no el segundo, porque hemos omitido el nombre del
-contexto.
+Antes de poder establecer cualquiera de estas propiedades,
+tenemos que saber en qué contexto operan.  A veces es algo obvio,
+pero en ocasiones puede ser algo enrevesado.  Si especificamos un
+contexto equivocado, no se produce ningún mensaje de error, pero
+el funcionamiento esperado no tendrá lugar.  Por ejemplo, la
+propiedad @code{instrumentName} (nombre del instrumento) vive
+claramente dentro del contexto de @code{Staff}, puesto que es el
+pentagrama el que debe ser nombrado.  En este ejemplo, el primer
+pentagrama resulta etiquetado, pero no el segundo, porque hemos
+omitido el nombre del contexto.
 
 @lilypond[quote,verbatim,ragged-right]
 <<
@@ -1828,38 +1870,41 @@ contexto.
 >>
 @end lilypond
 
-Recuerde que el nombre del contexto predeterminado es @code{Voice},
-así que la segunda instrucción @code{\set} establece la propiedad
-@code{instrumentName} del contexto @code{Voice} a @qq{Alto}, pero como
-LilyPond no busca esta propiedad en el contexto @code{Voice}, no se
-realiza ninguna acción.  Esto no es un error, y no se registra ningún
-mensaje en el archivo Log de registro de errores.
-
-De forma parecida, si el nombre de la propiedad se escribe con alguna
-falta, no se produce ningún mensaje de error, y claramente la acción
-esperada no puede tener lugar.  De hecho, se puede establecer
-cualquier @q{property} (ficticia) usando cualquier nombre que queramos
-en cualquier contexto que exista, mediante el uso de la instrucción
-@code{\set}.  Pero si el nombre no es conocido para LilyPond, no
-producirá ninguna acción.  Algunos editores de texto que apoyan a los
-archivos de entrada de LilyPond de manera especial, documentan los
-nombres de propiedades con viñetas cuando pasamos sobre ellos con el
-puntero del ratón, como JEdit con la extensión LilyPondTool, o
-resaltan los nombres de propiedades desconocidas de manera diferente,
-como ConTEXT.  Si no se utiliza un editor con tales posibilidades, se
-recomienda comprobar la corrección del nombre de la propiedad en el
-manual de Referencia de funcionamiento interno: véase
+Recuerde que el nombre del contexto predeterminado es
+@code{Voice}, así que la segunda instrucción @code{\set}
+establece la propiedad @code{instrumentName} del contexto
+@code{Voice} a @qq{Alto}, pero como LilyPond no busca esta
+propiedad en el contexto @code{Voice}, no se realiza ninguna
+acción.  Esto no es un error, y no se registra ningún mensaje en
+el archivo Log de registro de errores.
+
+De forma parecida, si el nombre de la propiedad se escribe con
+alguna falta, no se produce ningún mensaje de error, y claramente
+la acción esperada no puede tener lugar.  De hecho, se puede
+establecer cualquier @q{property} (ficticia) usando cualquier
+nombre que queramos en cualquier contexto que exista, mediante el
+uso de la instrucción @code{\set}.  Pero si el nombre no es
+conocido para LilyPond, no producirá ninguna acción.  Algunos
+editores de texto que apoyan a los archivos de entrada de
+LilyPond de manera especial, documentan los nombres de
+propiedades con viñetas cuando pasamos sobre ellos con el puntero
+del ratón, como JEdit con la extensión LilyPondTool, o resaltan
+los nombres de propiedades desconocidas de manera diferente, como
+ConTEXT.  Si no se utiliza un editor con tales posibilidades, se
+recomienda comprobar la corrección del nombre de la propiedad en
+el manual de Referencia de funcionamiento interno: véase
 @rinternals{Tunable context properties} o @rinternals{Contexts}.
 
 La propiedad @code{instrumentName} tendrá efecto solamente si se
-establece dentro del contexto @code{Staff}, pero algunas propiedades
-se pueden establecer en más de un contexto.  Por ejemplo, la propiedad
-@code{extraNatural} está establecida por defecto al valor @code{##t}
-(verdadero) para todos los pentagramas.  Si se establece a @code{##f}
-(falso) en un contexto de @code{Staff} determinado, se aplicará
-solamente a las alteraciones de ese pentagrama.  Si se establece a
-falso en el contexto de la partitura, @code{Score}, se aplicará a
-todos los pentagramas.
+establece dentro del contexto @code{Staff}, pero algunas
+propiedades se pueden establecer en más de un contexto.  Por
+ejemplo, la propiedad @code{extraNatural} está establecida por
+defecto al valor @code{##t} (verdadero) para todos los
+pentagramas.  Si se establece a @code{##f} (falso) en un contexto
+de @code{Staff} determinado, se aplicará solamente a las
+alteraciones de ese pentagrama.  Si se establece a falso en el
+contexto de la partitura, @code{Score}, se aplicará a todos los
+pentagramas.
 
 Así, esto desactivará los becuadros adicionales en un pentagrama:
 
@@ -1890,25 +1935,26 @@ y esto los desactivará en todos los pentagramas:
 >>
 @end lilypond
 
-Como un ejemplo más, si se establece @code{clefTransposition} dentro del
-contexto de @code{Score}, éste cambia inmediatamente el valor de la
-transposición en todos los pentagramas en curso y establece un nuevo
-valor predeterminado que se aplicará a todos los pentagramas.
+Como un ejemplo más, si se establece @code{clefTransposition}
+dentro del contexto de @code{Score}, éste cambia inmediatamente
+el valor de la transposición en todos los pentagramas en curso y
+establece un nuevo valor predeterminado que se aplicará a todos
+los pentagramas.
 
-La instrucción opuesta, @code{\unset}, tiene el efecto de suprimir la
-propiedad del contexto, lo que ocasiona que la mayoría de las
-propiedades vuelvan a su valor predeterminado.  Normalmente no es
-necesario el uso de @code{\unset}, pues una nueva instrucción
-@code{\set} hará el ajuste deseado.
+La instrucción opuesta, @code{\unset}, tiene el efecto de
+suprimir la propiedad del contexto, lo que ocasiona que la
+mayoría de las propiedades vuelvan a su valor predeterminado.
+Normalmente no es necesario el uso de @code{\unset}, pues una
+nueva instrucción @code{\set} hará el ajuste deseado.
 
 Las instrucciones @code{\set} y @code{\unset} pueden aparecer en
-cualquier lugar del archivo de entrada y tendrán efecto a partir del
-tiempo en que se encuentran y hasta el final de la partitura o hasta
-que la propiedad se establezca de nuevo mediante @code{\set} o
-@code{\unset}.  Probemos a modificar el tamaño de la fuente
-tipográfica, lo que afecta al tamaño de las cabezas de las notas
-(entre otras cosas) varias veces.  El cambio se toma a partir del
-valor predeterminado, no el valor en curso.
+cualquier lugar del archivo de entrada y tendrán efecto a partir
+del tiempo en que se encuentran y hasta el final de la partitura
+o hasta que la propiedad se establezca de nuevo mediante
+@code{\set} o @code{\unset}.  Probemos a modificar el tamaño de
+la fuente tipográfica, lo que afecta al tamaño de las cabezas de
+las notas (entre otras cosas) varias veces.  El cambio se toma a
+partir del valor predeterminado, no el valor en curso.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -1926,13 +1972,14 @@ valor predeterminado, no el valor en curso.
 @end lilypond
 
 Hemos podido ver cómo establecer los valores de diversos tipos de
-propiedad diferentes.  Observe que los números enteros y reales van
-siempre precedidos de un símbolo de cuadradillo, @code{#}, mientras
-que un valor booleano verdadero o falso se especifica mediante
-@code{##t} y @code{##f}, con dos cuadradillos.  Una propiedad de texto
-se debe encerrar entre comillas dobles, como antes, aunque veremos más
-adelante que el texto realmente se puede especificar de una forma
-mucho más general utilizando la potentísima instrucción @code{markup}.
+propiedad diferentes.  Observe que los números enteros y reales
+van siempre precedidos de un símbolo de cuadradillo, @code{#},
+mientras que un valor booleano verdadero o falso se especifica
+mediante @code{##t} y @code{##f}, con dos cuadradillos.  Una
+propiedad de texto se debe encerrar entre comillas dobles, como
+antes, aunque veremos más adelante que el texto realmente se
+puede especificar de una forma mucho más general utilizando la
+potentísima instrucción @code{markup}.
 
 @subsubheading Cambiar las propiedades de un contexto con @code{\with}
 
@@ -1940,15 +1987,16 @@ mucho más general utilizando la potentísima instrucción @code{markup}.
 @funindex with
 @cindex contexto, propiedades de, establecimiento con \with
 
-El valor predeterminado de las propiedades de contexto se puede establecer en el momento
-en que se crea el contexto.  A veces esta forma de establecer el valor
-de una propiedad es mucho más clara, si ha de quedar fijo durante todo
-el tiempo que dure el contexto.  Cuando se crea un contexto con una
-instrucción @code{\new} puede ir inmediatamente seguido de un bloque
-@code{\with @{ @dots{} @}} en el que se establecen los valores predeterminados de las
-propiedades.  Por ejemplo, si queremos suprimir la impresión de
-becuadros adicionales para toda la duración de un pentagrama, podemos
-escribir:
+El valor predeterminado de las propiedades de contexto se puede
+establecer en el momento en que se crea el contexto.  A veces
+esta forma de establecer el valor de una propiedad es mucho más
+clara, si ha de quedar fijo durante todo el tiempo que dure el
+contexto.  Cuando se crea un contexto con una instrucción
+@code{\new} puede ir inmediatamente seguido de un bloque
+@code{\with @{ @dots{} @}} en el que se establecen los valores
+predeterminados de las propiedades.  Por ejemplo, si queremos
+suprimir la impresión de becuadros adicionales para toda la
+duración de un pentagrama, podemos escribir:
 
 @example
 \new Staff \with @{ extraNatural = ##f @}
@@ -1974,8 +2022,8 @@ de la siguiente forma:
 
 Las propiedades ajustadas de esta manera aún pueden cambiarse
 dinámicamente utilizando @code{\set} y ser devueltas al valor
-predeterminados que se estableció en el bloque @code{\with} mediante
-@code{\unset}.
+predeterminados que se estableció en el bloque @code{\with}
+mediante @code{\unset}.
 
 @cindex fontSize (tamaño de la tipografía)
 @cindex fuente, tamaño de la
@@ -1983,9 +2031,9 @@ predeterminados que se estableció en el bloque @code{\with} mediante
 
 Así pues, si la propiedad @code{fontSize} se ajusta dentro de una
 cláusula @code{\with}, tiene el efecto de reiniciar el valor
-predeterminado del tamaño de la fuente tipográfica.  Si más tarde se
-modifica con @code{\set}, este nuevo valor predeterminado puede
-restablecerse con la instrucción @code{\unset fontSize}.
+predeterminado del tamaño de la fuente tipográfica.  Si más tarde
+se modifica con @code{\set}, este nuevo valor predeterminado
+puede restablecerse con la instrucción @code{\unset fontSize}.
 
 @subsubheading Cambiar las propiedades de un contexto con @code{\context}
 
@@ -1993,18 +2041,19 @@ restablecerse con la instrucción @code{\unset fontSize}.
 @funindex \context
 @funindex context
 
-Los valores de propiedad de los contextos se pueden establecer para
-@emph{todos} los contextos de un tipo determinado, como por ejemplo
-todos los contextos de @code{Staff}, con una única instrucción.  El
-tipo de contexto se identifica mediante la utilización del nombre de
-su tipo, como @code{Staff}, precedido de una barra invertida:
-@code{\Staff}.  El enunciado que establece el valor de la propiedad es
-el mismo que el que está en un bloque @code{\with}, presentado
-anteriormente.  Se coloca en un bloque @code{\context} dentro de un
-bloque @code{\layout}.  Cada bloque @code{\context} afecta a todos los
-contextos del tipo especificado a lo largo del bloque @code{\score} o
-@code{\book} en el que aparece el bloque @code{\layout}.  A
-continuación presentamos un ejemplo que muestra el formato:
+Los valores de propiedad de los contextos se pueden establecer
+para @emph{todos} los contextos de un tipo determinado, como por
+ejemplo todos los contextos de @code{Staff}, con una única
+instrucción.  El tipo de contexto se identifica mediante la
+utilización del nombre de su tipo, como @code{Staff}, precedido
+de una barra invertida: @code{\Staff}.  El enunciado que
+establece el valor de la propiedad es el mismo que el que está en
+un bloque @code{\with}, presentado anteriormente.  Se coloca en
+un bloque @code{\context} dentro de un bloque @code{\layout}.
+Cada bloque @code{\context} afecta a todos los contextos del tipo
+especificado a lo largo del bloque @code{\score} o @code{\book}
+en el que aparece el bloque @code{\layout}.  A continuación
+presentamos un ejemplo que muestra el formato:
 
 @lilypond[verbatim,quote]
 \score {
@@ -2050,8 +2099,9 @@ pentagramas de la partitura:
 @noindent
 Las propiedades de contexto establecidas de esta forma se pueden
 sobreescribir para ejemplares concretos de contextos mediante
-enunciados dentro de un bloque @code{\with}, y mediante instrucciones
-@code{\set} intercaladas dentro de enunciados musicales.
+enunciados dentro de un bloque @code{\with}, y mediante
+instrucciones @code{\set} intercaladas dentro de enunciados
+musicales.
 
 
 @seealso
@@ -2080,22 +2130,23 @@ Referencia de funcionamiento interno:
 @funindex \remove
 @funindex remove
 
-Hemos visto que cada uno de los contextos contiene varios grabadores,
-cada uno de los cuales a su vez es responsable de la producción de una
-fracción particular del resultado impreso, como líneas divisorias,
-pentagramas, cabezas, plicas, etc.  Si un grabador es eliminado de un
-contexto, ya no podrá producir su salida impresa.  Es una forma algo
-radical de modificar la salida, pero a veces puede ser útil.
+Hemos visto que cada uno de los contextos contiene varios
+grabadores, cada uno de los cuales a su vez es responsable de la
+producción de una fracción particular del resultado impreso, como
+líneas divisorias, pentagramas, cabezas, plicas, etc.  Si un
+grabador es eliminado de un contexto, ya no podrá producir su
+salida impresa.  Es una forma algo radical de modificar la
+salida, pero a veces puede ser útil.
 
 @subsubheading Cambiar un solo contexto
 
-Para eliminar un grabador de un contexto único, usamos la instrucción
-@code{\with} situada inmediatamente después de la instrucción que crea
-el contexto, como en la sección anterior.
+Para eliminar un grabador de un contexto único, usamos la
+instrucción @code{\with} situada inmediatamente después de la
+instrucción que crea el contexto, como en la sección anterior.
 
-Como ilustración, repitamos un ejemplo extraído de la sección anterior
-con las líneas del pentagrama eliminadas.  Recuerde que las líneas del
-pentagrama están dibujadas por el grabador
+Como ilustración, repitamos un ejemplo extraído de la sección
+anterior con las líneas del pentagrama eliminadas.  Recuerde que
+las líneas del pentagrama están dibujadas por el grabador
 @code{Staff_symbol_engraver}.
 
 @lilypond[quote,verbatim,ragged-right]
@@ -2115,18 +2166,18 @@ pentagrama están dibujadas por el grabador
 
 @cindex ámbito, grabador del
 
-Los grabadores también se pueden añadir a los contextos individuales
-La instrucción que lo hace es
+Los grabadores también se pueden añadir a los contextos
+individuales La instrucción que lo hace es
 
 @code{\consists @var{Nombre_del_grabador}},
 
-situada dentro de un bloque @code{\with}.  Ciertas partituras vocales
-tienen una indicación de ámbito o tesitura situada al principio del
-pentagrama para indicar el ámbito de notas en dicho pentagrama, véase
-@rglos{ambitus}.  El ambitus se produce por parte del grabador
-@code{Ambitus_engraver}, que normalmente no está incluido en ningún
-contexto.  Si lo añadimos al contexto @code{Voice}, calcula el rango a
-partir de esa única voz:
+situada dentro de un bloque @code{\with}.  Ciertas partituras
+vocales tienen una indicación de ámbito o tesitura situada al
+principio del pentagrama para indicar el ámbito de notas en dicho
+pentagrama, véase @rglos{ambitus}.  El ambitus se produce por
+parte del grabador @code{Ambitus_engraver}, que normalmente no
+está incluido en ningún contexto.  Si lo añadimos al contexto
+@code{Voice}, calcula el rango a partir de esa única voz:
 
 @lilypond[quote,verbatim,ragged-right]
 \new Staff <<
@@ -2148,9 +2199,9 @@ partir de esa única voz:
 @end lilypond
 
 @noindent
-pero si añadimos el grabador de ámbito al contexto de @code{Staff},
-calcula el rango de todas las notas en todas las voces de ese
-pentagrama:
+pero si añadimos el grabador de ámbito al contexto de
+@code{Staff}, calcula el rango de todas las notas en todas las
+voces de ese pentagrama:
 
 @lilypond[quote,verbatim,ragged-right]
 \new Staff \with {
@@ -2178,12 +2229,12 @@ pentagrama:
 @funindex layout
 
 Los ejemplos anteriores muestran la manera de eliminar o añadir
-grabadores a los contextos individuales.  También es posible eliminar
-o añadir grabadores a todos los contextos de un tipo específico,
-situando las instrucciones en el contexto correspondiente dentro de un
-bloque @code{\layout}.  Por ejemplo, si queremos mostrar los rangos de
-tesitura para todos los pentagramas de una partitura de cuatro pautas,
-podemos escribir
+grabadores a los contextos individuales.  También es posible
+eliminar o añadir grabadores a todos los contextos de un tipo
+específico, situando las instrucciones en el contexto
+correspondiente dentro de un bloque @code{\layout}.  Por ejemplo,
+si queremos mostrar los rangos de tesitura para todos los
+pentagramas de una partitura de cuatro pautas, podemos escribir
 
 @lilypond[quote,verbatim,ragged-right]
 \score {
@@ -2222,9 +2273,9 @@ podemos escribir
 
 @noindent
 Los valores predeterminados de las propiedades de los contextos
-también se pueden establecer para todos los contextos de un tipo en
-particular incluyendo la instrucción @code{\set} dentro de un bloque
-@code{\context} de la misma forma.
+también se pueden establecer para todos los contextos de un tipo
+en particular incluyendo la instrucción @code{\set} dentro de un
+bloque @code{\context} de la misma forma.
 
 
 @seealso
@@ -2233,23 +2284,24 @@ Referencia de la notación:
 @ruser{Cambiar los valores por omisión de los contextos}.
 
 @knownissues
-Los grabadores @code{Stem_engraver} y @code{Beam_engraver}
-(de plica y de barra) adjuntan a la cabeza de las notas
-los objetos que crean.  Si se suprime el grabador de cabezas de nota
-@code{Note_heads_engraver}, no se produce ninguna cabeza y por tanto
-no se crean tampoco plicas ni barras.
+Los grabadores @code{Stem_engraver} y @code{Beam_engraver} (de
+plica y de barra) adjuntan a la cabeza de las notas los objetos
+que crean.  Si se suprime el grabador de cabezas de nota
+@code{Note_heads_engraver}, no se produce ninguna cabeza y por
+tanto no se crean tampoco plicas ni barras.
 
 
 @node Extender las plantillas
 @section Extender las plantillas
 @translationof Extending the templates
 
-Ha leído el tutorial y ahora sabe escribir música.  Pero ¿cómo puede
-poner los pentagramas que quiere?  Las plantillas están muy bien, pero
-¿qué ocurre si quiere algo que no está en una de ellas?  Bien, puede
-encontrar montañas de plantillas (véase @ref{Plantillas}) que le pueden
-servir como punto de partida.  Pero ¿y si quiere algo que no está
-contemplado aquí? Continúe leyendo.
+Ha leído el tutorial y ahora sabe escribir música.  Pero ¿cómo
+puede poner los pentagramas que quiere?  Las plantillas están muy
+bien, pero ¿qué ocurre si quiere algo que no está en una de
+ellas?  Bien, puede encontrar montañas de plantillas (véase
+@ref{Plantillas}) que le pueden servir como punto de partida.
+Pero ¿y si quiere algo que no está contemplado aquí? Continúe
+leyendo.
 
 
 @menu
@@ -2267,10 +2319,10 @@ contemplado aquí? Continúe leyendo.
 @cindex plantilla, modificar
 @cindex modificar plantillas
 
-Para empezar, tome la plantilla que le parezca más parecida a aquello
-que quiere conseguir.  Digamos que quiere escribir algo para soprano y
-cello.  En este caso comenzaríamos con la plantilla @q{Notas y letra}
-(para la parte de soprano).
+Para empezar, tome la plantilla que le parezca más parecida a
+aquello que quiere conseguir.  Digamos que quiere escribir algo
+para soprano y cello.  En este caso comenzaríamos con la
+plantilla @q{Notas y letra} (para la parte de soprano).
 
 @example
 \version @w{"@version{}"}
@@ -2298,8 +2350,8 @@ texto = \lyricmode @{
 @}
 @end example
 
-Ahora queremos añadir una parte de violoncello.  Veamos el ejemplo
-@q{Sólo notas}:
+Ahora queremos añadir una parte de violoncello.  Veamos el
+ejemplo @q{Sólo notas}:
 
 @example
 \version @w{"@version{}"}
@@ -2317,22 +2369,22 @@ melodia = \relative @{
 @}
 @end example
 
-No necesitamos dos instrucciones @code{\version}.  Vamos a necesitar
-la sección @code{melodia}.  No queremos dos secciones @code{\score}
-(si tuviésemos dos @code{\score}s, acabaríamos con las dos particellas
-por separado.  Queremos las dos juntas, como un dúo.  Dentro de la
-sección @code{\score}, no nos hacen falta dos @code{\layout} ni dos
-@code{\midi}.
+No necesitamos dos instrucciones @code{\version}.  Vamos a
+necesitar la sección @code{melodia}.  No queremos dos secciones
+@code{\score} (si tuviésemos dos @code{\score}s, acabaríamos con
+las dos particellas por separado.  Queremos las dos juntas, como
+un dúo.  Dentro de la sección @code{\score}, no nos hacen falta
+dos @code{\layout} ni dos @code{\midi}.
 
 Si nos limitásemos a copiar y pegar la sección @code{melodia},
-acabaríamos con dos secciones @code{melodia} separadas, así que vamos
-a cambiarles el nombre.  Llamaremos @code{musicaSoprano} a la sección
-de la soprano y @code{musicaCello} a la sección del violoncello.  Al
-mismo tiempo cambiaremos el nombre de @code{texto} a
-@code{letraSoprano}.  Recuerde cambiar el nombre a las dos apariciones
-de todos estos nombres -- tanto la definición inicial (la parte
-@code{melodia = relative c' @{ }) -- como el uso de ese nombre (en la
-sección @code{\score}).
+acabaríamos con dos secciones @code{melodia} separadas, así que
+vamos a cambiarles el nombre.  Llamaremos @code{musicaSoprano} a
+la sección de la soprano y @code{musicaCello} a la sección del
+violoncello.  Al mismo tiempo cambiaremos el nombre de
+@code{texto} a @code{letraSoprano}.  Recuerde cambiar el nombre a
+las dos apariciones de todos estos nombres -- tanto la definición
+inicial (la parte @code{melodia = \relative @{ }) -- como el uso
+de ese nombre (en la sección @code{\score}).
 
 También aprovecharemos para cambiar el pentagrama de la parte del
 cello (los violoncellos se escriben normalmente en clave de Fa).
@@ -2371,10 +2423,10 @@ musicaCello = \relative @{
 @}
 @end example
 
-Esto tiene una apariencia prometedora, pero la parte del cello no sale
-en la partitura (no la hemos puesto en la sección @code{\score}).  Si
-queremos que la parte del cello aparezca debajo de la de soprano,
-tenemos que añadir
+Esto tiene una apariencia prometedora, pero la parte del cello no
+sale en la partitura (no la hemos puesto en la sección
+@code{\score}).  Si queremos que la parte del cello aparezca
+debajo de la de soprano, tenemos que añadir
 
 @example
 \new Staff \musicaCello
@@ -2382,10 +2434,10 @@ tenemos que añadir
 
 @noindent
 justo debajo de todo lo de la soprano.  También tenemos que poner
-@code{<<} y @code{>>} antes y después de la música -- lo que indica a
-LilyPond que hay más de una cosa (en este caso, @code{Staff})
-sucediendo al mismo tiempo --.  La @code{\score} se parecerá ahora a
-esto:
+@code{<<} y @code{>>} antes y después de la música -- lo que
+indica a LilyPond que hay más de una cosa (en este caso,
+@code{Staff}) sucediendo al mismo tiempo --.  La @code{\score} se
+parecerá ahora a esto:
 
 @c Indentation in this example is deliberately poor
 @example
@@ -2406,9 +2458,9 @@ esto:
 @end example
 
 @noindent
-Esto parece un poco enrevesado; los márgenes están descuadrados.  Esto
-tiene fácil solución.  Presentamos aquí la plantilla completa para
-soprano y cello.
+Lo anterior parece un poco enrevesado; los márgenes están
+descuadrados.  Esto tiene fácil solución.  Presentamos aquí la
+plantilla completa para soprano y cello.
 
 @lilypond[quote,verbatim,ragged-right,addversion]
 sopranoMusic = \relative {
@@ -2455,12 +2507,12 @@ Las plantillas de inicio se pueden encontrar en el apéndice
 @subsection Partitura vocal a cuatro voces SATB
 @translationof Four-part SATB vocal score
 
-La mayor parte de las partituras vocales escritas para coro mixto a
-cuatro voces con acompañamiento orquestal, como el «Elías» de
+La mayor parte de las partituras vocales escritas para coro mixto
+cuatro voces con acompañamiento orquestal, como el «Elías» de
 Mendelssohn o el «Mesías» de Haendel, tienen la música coral y la
-letra en cuatro pentagramas para S, A, T y B, respectivamente, con una
-reducción de piano del acompañamiento de orquesta, por debajo. He aquí
-un ejemplo del «Mesías» de Haendel:
+letra en cuatro pentagramas para S, A, T y B, respectivamente,
+con una reducción de piano del acompañamiento de orquesta, por
+debajo. He aquí un ejemplo del «Mesías» de Haendel:
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
@@ -2557,25 +2609,37 @@ lower = \relative {
 }
 @end lilypond
 
-Ninguna de las plantillas proporciona esta disposición con exactitud.
-La más parecida es @ref{Partitura vocal SATB y reducción para piano automática},
-pero necesitamos cambiar la
-disposición y añadir un acompañamiento de piano que no esté derivado
-automáticamente de las partes vocales.  Las variables que contienen la
-música y la letra de las partes vocales es adecuada, pero tendremos
-que añadir variables para la reducción de piano.
+@warning{Esta disposición se puede conseguir muy fácilmente
+usando la plantilla incorporada: @code{satb.ly}, véase
+@ref{Plantillas incorporadas}.  Pero para mayor facilidad de uso,
+esta plantilla oculta deliberadamente la necesaria estructura de
+contexto, proporcionándola automáticamente en vez de ello.  Así
+pues, para nuestro objetivo de aprendizaje, veamos cómo construir
+la estructura partiendo de cero.  Quizá necesite hacerlo cada vez
+que la plantilla incorporada no cumpla sus necesidades
+completamente.}
+
+La plantilla (no incorporada: de copiar y editar) más parecida a
+esta disposición es
+@ref{Partitura vocal SATB y reducción para piano automática},
+pero necesitamos cambiar la disposición y añadir un
+acompañamiento de piano que no esté derivado automáticamente de
+las partes vocales.  Las variables que contienen la música y la
+letra de las partes vocales es adecuada, pero tendremos que
+añadir variables para la reducción de piano.
 
 El orden en que aparecen los contextos en el ChoirStaff de la
-plantilla no se corresponde con el orden de la partitura vocal que
-hemos mostrado más arriba.  Tenemos que reordenarlas para que haya
-cuatro pentagramas con la letra escrita directamente bajo las notas de
-cada parte.  Todas las voces deben ser @code{\voiceOne}, que es la
-predeterminada, para que las instrucciones @code{\voiceXXX} se puedan
-eliminar.  También tenemos que especificar la clave de tenor (clave de
-sol octava baja) en las partes de tenor.  Aún no hemos encontrado la
-forma en que la letra se especifica en la plantilla, así que tenemos
-que utilizar el método que nos resulta familiar.  También tenemos que
-escribir los nombres de cada pentagrama.
+plantilla no se corresponde con el orden de la partitura vocal
+que hemos mostrado más arriba.  Tenemos que reordenarlas para que
+haya cuatro pentagramas con la letra escrita directamente bajo
+las notas de cada parte.  Todas las voces deben ser
+@code{\voiceOne}, que es la predeterminada, para que las
+instrucciones @code{\voiceXXX} se puedan eliminar.  También
+tenemos que especificar la clave de tenor (clave de sol octava
+baja) en las partes de tenor.  Aún no hemos encontrado la forma
+en que la letra se especifica en la plantilla, así que tenemos
+que utilizar el método que nos resulta familiar.  También tenemos
+que escribir los nombres de cada pentagrama.
 
 Al hacerlo así obtenemos el ChoirStaff siguiente:
 
@@ -2624,9 +2688,9 @@ Al hacerlo así obtenemos el ChoirStaff siguiente:
 >>  % fin del ChoirStaff
 @end example
 
-A continuación debemos trabajar sobre la parte de piano.  Es fácil:
-tan sólo hay que sacar la parte de piano de la plantilla de @q{Piano
-solista}:
+A continuación debemos trabajar sobre la parte de piano.  Es
+fácil: tan sólo hay que sacar la parte de piano de la plantilla
+de @q{Piano solista}:
 
 @example
 \new PianoStaff <<
@@ -2693,8 +2757,8 @@ Los grupos ChoirStaff y PianoStaff se deben combinar utilizando
 >>
 @end example
 
-Al combinar todo esto junto y escribir la música de los tres compases
-del ejemplo anterior, obtenemos:
+Al combinar todo esto junto y escribir la música de los tres
+compases del ejemplo anterior, obtenemos:
 
 @lilypond[quote,verbatim,ragged-right,addversion]
 global = { \key d \major \time 4/4 }
@@ -2800,24 +2864,26 @@ lower = \relative {
 @cindex partitura, ejemplo de escritura
 
 Después de adquirir algo de soltura en la escritura del código de
-LilyPond, se dará cuenta de que es más fácil construir completamente
-una partitura partiendo de cero, que modificar una plantilla.  También
-puede desarrollar su propio estilo de forma que se adapte al tipo de
-música que le apetezca.  Veamos a continuación cómo confeccionar una
-partitura para un preludio de órgano, como ejemplo.
-
-Comenzamos con una sección para el encabezamiento.  Aquí es donde van
-el título, nombre del compositor, etc., después van las definiciones
-de las variables, y finalmente el bloque de partitura.  Comencemos a
-verlas por encima y más tarde completaremos los detalles.
-
-Utilizaremos los dos primeros compases del preludio de Bach basado en
-@emph{Jesu, meine Freude}, que está escrito para órgano con dos
-manuales y pedal.  Tiene estos dos compases de música al final de la
-sección.  La parte del manual superior tiene dos voces, y el inferior
-y el pedal, una voz cada uno.  Así pues, necesitamos cuatro
-definiciones para la música y una más para definir el compás y la
-tonalidad:
+LilyPond, se dará cuenta de que es más fácil construir
+completamente una partitura partiendo de cero, que modificar una
+plantilla.  También puede desarrollar su propio estilo de forma
+que se adapte al tipo de música que le apetezca.  Veamos a
+continuación cómo confeccionar una partitura para un preludio de
+órgano, como ejemplo.
+
+Comenzamos con una sección para el encabezamiento.  Aquí es donde
+van el título, nombre del compositor, etc., después van las
+definiciones de las variables, y finalmente el bloque de
+partitura.  Comencemos a verlas por encima y más tarde
+completaremos los detalles.
+
+Utilizaremos los dos primeros compases del preludio de Bach
+basado en @emph{Jesu, meine Freude}, que está escrito para órgano
+con dos manuales y pedal.  Tiene estos dos compases de música al
+final de la sección.  La parte del manual superior tiene dos
+voces, y el inferior y el pedal, una voz cada uno.  Así pues,
+necesitamos cuatro definiciones para la música y una más para
+definir el compás y la tonalidad:
 
 @example
 \version @w{"@version{}"}
@@ -2835,16 +2901,17 @@ MusicaPedal = @{ s1 @}
 @}
 @end example
 
-Por el momento hemos escrito tan sólo una nota espaciadora, @code{s1},
-en lugar de la música de verdad.  La añadiremos más adelante.
+Por el momento hemos escrito tan sólo una nota espaciadora,
+@code{s1}, en lugar de la música de verdad.  La añadiremos más
+adelante.
 
 A continuación veamos qué va en el bloque de partitura.
-Sencillamente, reflejaremos la estructura de pentagramas que deseemos.
-La música de órgano se escribe por lo general en tres pentagramas, uno
-para cada uno de los manuales y otro para el pedal.  Los pentagramas
-de los manuales se abarcan con una llave, así que los incluiremos en
-un grupo PianoStaff.  La primera parte de manual tiene dos voces, y la
-segunda sólo una.
+Sencillamente, reflejaremos la estructura de pentagramas que
+deseemos.  La música de órgano se escribe por lo general en tres
+pentagramas, uno para cada uno de los manuales y otro para el
+pedal.  Los pentagramas de los manuales se abarcan con una llave,
+así que los incluiremos en un grupo PianoStaff.  La primera parte
+de manual tiene dos voces, y la segunda sólo una.
 
 @example
 \new PianoStaff <<
@@ -2864,13 +2931,14 @@ segunda sólo una.
 >>  % fin del contexto de PianoStaff
 @end example
 
-Después, tenemos que añadir un pentagrama para el órgano de pedal.
-Esto va por debajo del PianoStaff, pero debe ser simultáneo con él,
-por lo que escribimos dobles ángulos rodeando a los dos.  Si esto se
-nos olvida, se producirá un error en el archivo log de registro.  ¡Es
-un error muy común que cometerá antes o después!  Intente copiar el
-ejemplo final que aparece al final de la sección, borre los dobles
-ángulos y procese el archivo para ver qué error produce.
+Después, tenemos que añadir un pentagrama para el órgano de
+pedal.  Esto va por debajo del PianoStaff, pero debe ser
+simultáneo con él, por lo que escribimos dobles ángulos rodeando
+a los dos.  Si esto se nos olvida, se producirá un error en el
+archivo log de registro.  ¡Es un error muy común que cometerá
+antes o después!  Intente copiar el ejemplo final que aparece al
+final de la sección, borre los dobles ángulos y procese el
+archivo para ver qué error produce.
 
 @example
 <<  % el grupo PianoStaff y el pentagrama de Pedal son simultáneos
@@ -2897,23 +2965,24 @@ ejemplo final que aparece al final de la sección, borre los dobles
 >>
 @end example
 
-No es necesario utilizar la construcción simultánea @code{<< @dots{} >>} para
-el pentagrama del manual dos y el pentagrama del órgano de pedal, ya
-que contienen una única expresión, pero no hace daño, y es una buena
-costumbre utilizar siempre dobles ángulos después de @code{\new Staff}
-cuando hay varias voces.  Lo opuesto es cierto para las voces:
-normalmente deben ir seguidas de llaves @code{@{ @dots{} @}} en caso de que
-tengamos música codificada como distintas variables que se deben
-situar consecutivamente.
+No es necesario utilizar la construcción simultánea @code{<<
+@dots{} >>} para el pentagrama del manual dos y el pentagrama del
+órgano de pedal, ya que contienen una única expresión, pero no
+hace daño, y es una buena costumbre utilizar siempre dobles
+ángulos después de @code{\new Staff} cuando hay varias voces.  Lo
+opuesto es cierto para las voces: normalmente deben ir seguidas
+de llaves @code{@{ @dots{} @}} en caso de que tengamos música
+codificada como distintas variables que se deben situar
+consecutivamente.
 
 Añadamos esta estructura al bloque de partitura, y ajustemos el
 sangrado de los márgenes.  También escribimos las claves
 correspondientes, nos aseguramos de que las plicas y ligaduras de
-unión y de expresión en cada una de las voces del pentagrama superior
-apuntan en la dirección adecuada con @code{\voiceOne} y
-@code{\voiceTwo} y escribimos el compás y la tonalidad en cada uno de
-los pentagramas usando nuestra variable previamente definida
-@code{\TimeKey}.
+unión y de expresión en cada una de las voces del pentagrama
+superior apuntan en la dirección adecuada con @code{\voiceOne} y
+@code{\voiceTwo} y escribimos el compás y la tonalidad en cada
+uno de los pentagramas usando nuestra variable previamente
+definida @code{\TimeKey}.
 
 @example
 \score @{
@@ -2953,16 +3022,17 @@ los pentagramas usando nuestra variable previamente definida
 @cindex ampliabilidad de las pautas
 @cindex pautas, ampliabilidad
 
-La disposición anterior de los pentagramas de órgano es casi perfecta;
-sin embargo, existe un ligero defecto que no es visible cuando se
-observa un solo sistema: la distancia entre el pentagrama de pedal y
-el de la mano izquierda debiera ser aproximadamente la misma que la
-que existe entre los pentagramas de las manos izquierda y derecha.
-Concretamente, la ampliabilidad de los pentagramas dentro de un
-contexto @code{PianoStaff} es limitada (de forma que la distancia
-entre los pentagramas de las manos izquierda y derecha nunca crezcan
-excesivamente), y el pentagrama de los pedales debería comportarse de
-una forma similar.
+La disposición anterior de los pentagramas de órgano es casi
+perfecta; sin embargo, existe un ligero defecto que no es visible
+cuando se observa un solo sistema: la distancia entre el
+pentagrama de pedal y el de la mano izquierda debiera ser
+aproximadamente la misma que la que existe entre los pentagramas
+de las manos izquierda y derecha.  Concretamente, la
+ampliabilidad de los pentagramas dentro de un contexto
+@code{PianoStaff} es limitada (de forma que la distancia entre
+los pentagramas de las manos izquierda y derecha nunca crezcan
+excesivamente), y el pentagrama de los pedales debería
+comportarse de una forma similar.
 
 @cindex sub-propiedades
 @cindex propiedades, sub-propiedades
@@ -2970,22 +3040,22 @@ una forma similar.
 @cindex gráficos, objetos
 @cindex grobs
 
-El grado de ampliabilidad o separabilidad de los pentagramas se puede
-controlar con la propiedad @code{staff-staff-spacing} del @q{objeto
-gráfico} @code{VerticalAxisGroup} (los objetos gráficos reciben por lo
-general el nombre de @q{grob}s en la documentación de lilypond); no se
-preocupe por el momento de los detalles, pues esto se explica más
-tarde de forma exhaustiva.  Los más curiosos pueden echar un vistazo a
-@ruser{Panorámica de la modificación de las propiedades}.  En este
-caso, queremos modificar solamente la sub-propiedad
-@code{stretchability}.
-De nuevo, los curiosos encontrarán los valores
-predeterminados para la propiedad staff-staff-spacing
-en el archivo @file{scm/define-grobs.scm}
-examinando la definición del grob @code{VerticalAxisGroup} grob.  El
-valor de @code{stretchability} se toma de la definición del contexto
-@code{PianoStaff} (en el archivo @file{ly/engraver-init.ly}) de
-forma que los valores sean idénticos.
+El grado de ampliabilidad o separabilidad de los pentagramas se
+puede controlar con la propiedad @code{staff-staff-spacing} del
+@q{objeto gráfico} @code{VerticalAxisGroup} (los objetos gráficos
+reciben por lo general el nombre de @q{grob}s en la documentación
+de lilypond); no se preocupe por el momento de los detalles, pues
+esto se explica más tarde de forma exhaustiva.  Los más curiosos
+pueden echar un vistazo a @ruser{Panorámica de la modificación de
+las propiedades}.  En este caso, queremos modificar solamente la
+sub-propiedad @code{stretchability}.  De nuevo, los curiosos
+encontrarán los valores predeterminados para la propiedad
+staff-staff-spacing en el archivo @file{scm/define-grobs.scm}
+examinando la definición del grob @code{VerticalAxisGroup} grob.
+El valor de @code{stretchability} se toma de la definición del
+contexto @code{PianoStaff} (en el archivo
+@file{ly/engraver-init.ly}) de forma que los valores sean
+idénticos.
 
 @example
 \score @{
@@ -3024,10 +3094,10 @@ forma que los valores sean idénticos.
 @}  % fin del contexto Score
 @end example
 
-Con esto se completa la estructura.  Toda música para órgano de tres
-pentagramas tendrá una estructura similar, aunque el número de voces
-puede variar.  Todo lo que nos queda es añadir la música, y combinar
-todas las partes.
+Con esto se completa la estructura.  Toda música para órgano de
+tres pentagramas tendrá una estructura similar, aunque el número
+de voces puede variar.  Todo lo que nos queda es añadir la
+música, y combinar todas las partes.
 
 @lilypond[quote,verbatim,ragged-right,addversion]
 \header {
@@ -3130,15 +3200,15 @@ violin = \new Staff {
 }
 @end lilypond
 
-Sin embargo también puede usar estos identificadores (que también se
-conocen como variables, macros o instrucciones definidas por el
-usuario) para hacer trucos:
+Sin embargo también puede usar estos identificadores (que también
+se conocen como variables, macros o instrucciones definidas por
+el usuario) para hacer trucos:
 
-@c TODO Avoid padtext - not needed with skylining
 @lilypond[quote,verbatim,ragged-right]
 dolce = \markup { \italic \bold dolce }
 
-padText = { \once \override TextScript.padding = #5.0 }
+centreText = { \once \override TextScript.self-alignment-X = #CENTER }
+
 fthenp =_\markup {
   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
 }
@@ -3146,9 +3216,9 @@ fthenp =_\markup {
 violin = \relative {
   \repeat volta 2 {
     c''4._\dolce b8 a8 g a b |
-    \padText
-    c4.^"hi there!" d8 e' f g d |
-    c,4.\fthenp b8 c4 c-. |
+    \centreText
+    c4.^"hi there!" d8 e f g d |
+    c4.\fthenp b8 c4 c-. |
   }
 }
 
@@ -3156,23 +3226,22 @@ violin = \relative {
   {
     \violin
   }
-  \layout { ragged-right = ##t }
 }
 @end lilypond
 
-Obviamente estos identificadores son útiles para ahorrar tecleo.  Pero
-son dignos de tener en cuenta incluso si se van a utilizar una sola
-vez: reducen la complejidad.  Examinemos el ejemplo anterior reescrito
-sin ningún identificador.  Encontrará que es mucho más difícil de
-leer, sobre todo la última línea.
+Obviamente estos identificadores son útiles para ahorrar tecleo.
+Pero son dignos de tener en cuenta incluso si se van a utilizar
+una sola vez: reducen la complejidad.  Examinemos el ejemplo
+anterior reescrito sin ningún identificador.  Encontrará que es
+mucho más difícil de leer, sobre todo la última línea.
 
 @example
 violin = \relative @{
   \repeat volta 2 @{
     c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript.padding = #5.0
-    c4.^"hi there!" d8 e' f g d |
-    c,4.\markup @{
+    \once \override TextScript.self-alignment-X = #CENTER
+    c4.^"hi there!" d8 e f g d |
+    c4._\markup @{
       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
     @}
     b8 c4 c-. |
@@ -3180,16 +3249,13 @@ violin = \relative @{
 @}
 @end example
 
-@c TODO Replace the following with a better example  -td
-@c Skylining handles this correctly without padText
+Hasta ahora hemos contemplado la sustitución estática: cuando
+LilyPond se encuentra con @code{\centreText}, lo sustituye con
+aquello que hemos definido que sea (es decir, todo lo que está a
+la derecha de @code{centreText=}).
 
-Hasta ahora hemos contemplado la sustitución estática: cuando LilyPond
-se encuentra con @code{\padText}, lo sustituye con aquello que
-hemos definido que sea (es decir, todo lo que está a la derecha de
-@code{padtext=}).
-
-LilyPond también puede manejar sustituciones no estáticas (piense en
-ellas como en funciones).
+LilyPond también puede manejar sustituciones no estáticas (piense
+en ellas como en funciones).
 
 @lilypond[quote,verbatim,ragged-right]
 padText =
@@ -3201,34 +3267,35 @@ padText =
    #})
 
 \relative {
-  c'''4^"piu mosso" b a b |
+  c''4^"piu mosso" b a b
   \padText #1.8
-  c4^"piu mosso" d e f |
+  c4^"piu mosso" b a b
   \padText #2.6
-  c4^"piu mosso" fis a g |
+  c4^"piu mosso" b a b
 }
 @end lilypond
 
 La utilización de identificadores también es una buena forma de
-reducir el trabajo si la sintaxis de entrada de LilyPond cambia (véase
-@rprogram{Actualizar ficheros con convert-ly}).  Si tiene una sola
-definición (como p.ej. @code{\dolce}) para todos sus archivos (ver
-@ref{Hojas de estilo}), y después la sintaxis se modifica, sólo tendrá
-que actualizar su definición @code{\dolce} única, en lugar de tener
-que hacer cambios en cada uno de los archivos @file{.ly}.
-
+reducir el trabajo si la sintaxis de entrada de LilyPond cambia
+(véase @rprogram{Actualizar ficheros con convert-ly}).  Si tiene
+una sola definición (como p.ej. @code{\dolce}) para todos sus
+archivos (ver @ref{Hojas de estilo}), y después la sintaxis se
+modifica, sólo tendrá que actualizar su definición @code{\dolce}
+única, en lugar de tener que hacer cambios en cada uno de los
+archivos @file{.ly}.
 
 
 @node Partituras y particellas
 @subsection Partituras y particellas
 @translationof Scores and parts
 
-En música orquestal, todas las notas se imprimen dos veces.  Una vez
-en las particellas para los músicos, y otra para la partitura del
-director.  Los identificadores se pueden usar para evitar la
-duplicación del trabajo.  La música se escribe una vez y se almacena
-en una variable.  El contenido de dicha variable se usa después para
-generar tanto la particella como la partitura del director.
+En música orquestal, todas las notas se imprimen dos veces.  Una
+vez en las particellas para los músicos, y otra para la partitura
+del director.  Los identificadores se pueden usar para evitar la
+duplicación del trabajo.  La música se escribe una vez y se
+almacena en una variable.  El contenido de dicha variable se usa
+después para generar tanto la particella como la partitura del
+director.
 
 Es muy conveniente definir las notas en un archivo especial.  Por
 ejemplo, supongamos que el archivo @file{trompa.ly} contiene la
@@ -3242,7 +3309,8 @@ notasTrompa = \relative @{
 @end example
 
 @noindent
-Luego se hace una particella escribiendo en un archivo lo siguiente
+Luego se hace una particella escribiendo en un archivo lo
+siguiente
 
 @example
 \include "trompa.ly"
@@ -3263,13 +3331,14 @@ La línea
 @end example
 
 @noindent
-sustituye el contenido de @file{trompa.ly} en esta posición dentro del
-archivo, así que @code{notasTrompa} se define con posterioridad.  La
-instrucción @code{\transpose f@tie{}c'} indica que el argumento
-constituido por @code{\notasTrompa} se debe transponer una quinta
-hacia arriba.  Lo que suena como @code{f} se escribe como @code{c'},
-lo que corresponde con el tono de afinación de una trompa normal
-en@tie{}Fa.  La transposición se puede ver en la siguiente salida
+sustituye el contenido de @file{trompa.ly} en esta posición
+dentro del archivo, así que @code{notasTrompa} se define con
+posterioridad.  La instrucción @code{\transpose f@tie{}c'} indica
+que el argumento constituido por @code{\notasTrompa} se debe
+transponer una quinta hacia arriba.  Lo que suena como @code{f}
+se escribe como @code{c'}, lo que corresponde con el tono de
+afinación de una trompa normal en@tie{}Fa.  La transposición se
+puede ver en la siguiente salida
 
 @lilypond[quote,ragged-right]
 \transpose f c' \relative {
@@ -3282,41 +3351,35 @@ En piezas para conjunto, con frecuencia una de las voces no suena
 durante muchos compases.  Esto queda denotado por un silencio
 especial, el silencio multicompás.  Se introduce con una @code{R}
 mayúscula seguida de una duración (@code{1}@tie{}en el caso de la
-redonda, @code{2}@tie{}en el caso de una blanca, etc.).  Multiplicando
-la duración se pueden construir silencios más largos.  Por ejemplo,
-este silencio ocupa 3@tie{}compases de 2/4
+redonda, @code{2}@tie{}en el caso de una blanca, etc.).
+Multiplicando la duración se pueden construir silencios más
+largos.  Por ejemplo, este silencio ocupa 3@tie{}compases de 2/4
 
 @example
 R2*3
 @end example
 
 Cuando se imprime la particella tienen que comprimirse los silencios
-multicompás.  Esto se hace estableciendo una variable en tiempo de
-ejecución
+multicompás.  Existe una función musical para hacerlo:
 
 @example
-\set Score.skipBars = ##t
+\compressMMRests @{ ... @}
 @end example
 
-@noindent
-Esta instrucción establece el valor de la propiedad @code{skipBars} en
-el contexto de @code{Score} a verdadero (@code{##t}).  Anteponiendo el
-silencio y esta opción a la música anterior, llegamos al siguiente
-resultado
+Applying this to @code{hornNotes} gives:
 
 @lilypond[quote,ragged-right]
-\transpose f c' \relative {
+\compressMMRests \transpose f c' \relative {
   \time 2/4
-  \set Score.skipBars = ##t
   R2*3 |
   r4 f8 a | cis4 f | e4 d |
 }
 @end lilypond
 
-
-Esta partitura se hace combinando toda la música junta.  Suponiendo
-que la otra voz se encuentra dentro de @code{notasFagot} en el archivo
-@file{fagot.ly}, la partitura se hace con
+Esta partitura se hace combinando toda la música junta.
+Suponiendo que la otra voz se encuentra dentro de
+@code{notasFagot} en el archivo @file{fagot.ly}, la partitura se
+hace con
 
 @example
 \include "fagot.ly"
@@ -3348,5 +3411,13 @@ lo que nos lleva a
 >>
 @end lilypond
 
+@seealso
+Manual de aprendizaje:
+@ref{Organizar las piezas mediante variables}.
 
+Referencia de la notación:
+@ruser{Transposición},
+@ruser{Escritura de las particellas},
+@ruser{Silencios de compás completo},
+@ruser{Inclusión de archivos de LilyPond}.
 
index e3aa7301637ad79f595f98e6072ca2e43340dd3c..5cced5c9f8e6194aa80dfe0297ef307ada9bef24 100644 (file)
@@ -1,25 +1,25 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 67a345f965d169bc1acd23ff4160914fb2142f38
+    Translation of GIT committish: f7dfb61e546cb03d61d92271839288c44abf8aed
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.16.0"
+@c \version "2.19.25"
 
 @node Plantillas
 @appendix Plantillas
 @translationof Templates
 
-Esta sección del manual contiene plantillas con la partitura de LilyPond
-ya preparada.  Sólo tiene que escribir las notas, lanzar LilyPond y ¡disfrutar de
-unas hermosas partituras impresas!
-
+Esta sección del manual contiene plantillas con la partitura de
+LilyPond ya preparada.  Sólo tiene que escribir las notas, lanzar
+LilyPond y ¡disfrutar de unas hermosas partituras impresas!
 
 @menu
+* Plantillas incorporadas::
 * Plantillas de pentagrama único::
 * Plantillas de piano::
 * Plantillas de cuarteto de cuerda::
@@ -30,6 +30,335 @@ unas hermosas partituras impresas!
 @end menu
 
 
+@node Plantillas incorporadas
+@appendixsec Plantillas incorporadas
+@translationof Built-in templates
+
+Algunas plantillas que son adecuadas para un abanico de
+posibilidades en música coral, se encuentran incorporadas dentro
+de LilyPond.  Se pueden usar para crear música coral sencilla, con
+o sin acompañamiento de piano, en dos, cuatro u ocho pentagramas.
+A diferencia de otras plantillas, éstas están @q{incorporadas}, lo
+que significa que no tienen que copiarse o editarse: en lugar de
+ello, sencillamente se incluyen con la instrucción
+@code{@bs{}include} dentro del archivo de entrada.
+
+@warning {A diferencia de la mayoría de los archivos de inclusión,
+estas plantillas incorporadas se deben incluir @emph{al final} del
+archivo de entrada.}
+
+Las expresiones musicales necesarias se introducen definiendo
+valores para variables específicas.  Estas definiciones deben ir
+antes del archivo incluido con la instrucción @code{@bs{}include}.
+
+@menu
+* Plantilla coral SATB ::
+* Plantilla coral SSAATTBB::
+@end menu
+
+@node Plantilla coral SATB 
+@appendixsubsec Plantilla coral SATB
+@translationof SATB template
+
+La música se puede disponer con una o dos voces por pentagrama
+fijando el valor de @code{TwoVoicesPerStaff} a @code{##f} o
+@code{##t} respectivamente.
+
+A continuación aparece el archivo de entrada completo que produce
+un arreglo a cuatro voces SATB con letras individuales y
+acompañamiento de piano:
+
+@lilypond[verbatim, quote]
+  SopranoMusic = \relative { a'4\f a8 a a4 a }
+  SopranoLyrics = \lyricmode { Sop -- ra -- no ly -- rics }
+  AltoMusic = \relative { d'4\f d d d }
+  AltoLyrics = \lyricmode { Al -- to ly -- rics }
+  TenorMusic = \relative { a4\p a a a }
+  TenorLyrics = \lyricmode { Te -- nor ly -- rics }
+  BassMusic = \relative { c2\p c4 c }
+  BassLyrics = \lyricmode { Bass ly -- rics }
+  PianoRHMusic = \relative { c' e g c }
+  PianoDynamics = { s2\mp s4 s4 }
+  PianoLHMusic = \relative { c e g c }
+  \include "satb.ly"
+@end lilypond
+
+La misma entrada se puede utilizar para producir una partitura con
+dos voces po pentagrama, tan solo ajustando el valor de
+@code{TwoVoicesPerStaff} a @code{##t}.  De nuevo, cada voz tiene
+su letra individual.
+
+
+@lilypond[verbatim, quote]
+  SopranoMusic = \relative { a'4\f a8 a a4 a }
+  SopranoLyrics = \lyricmode { Sop -- ra -- no ly -- rics }
+  AltoMusic = \relative { d'4\f d d d }
+  AltoLyrics = \lyricmode { Al -- to ly -- rics }
+  TenorMusic = \relative { a4\p a a a }
+  TenorLyrics = \lyricmode { Te -- nor ly -- rics }
+  BassMusic = \relative { c2\p c4 c }
+  BassLyrics = \lyricmode { Bass ly -- rics }
+  PianoRHMusic = \relative { c' e g c }
+  PianoDynamics = { s2\mp s4 s4 }
+  PianoLHMusic = \relative { c e g c }
+  TwoVoicesPerStaff = ##t
+  \include "satb.ly"
+@end lilypond
+
+Cuando se establece el valor de @code{TwoVoicesPerStaff} a falso o
+se deja como predeterminado, cualquiera de las variables musicales
+puede omitirse para producir arreglos con menos voces.  Aquí, por
+ejemplo, aparece la manera en que debe escribirse el archivo de
+entrada para un dúo de Soprano y Bajo:
+
+@lilypond[verbatim,quote]
+  SopranoMusic = \relative { c'' c c c }
+  SopranoLyrics = \lyricmode { High voice ly -- rics }
+  BassMusic = \relative { a a a a }
+  BassLyrics = \lyricmode { Low voice ly -- rics }
+  \include "satb.ly"
+@end lilypond
+
+Se puede añadir a cada una de las partes una segunda estrofa o una
+letra alternativa:
+
+@lilypond[verbatim, quote]
+  SopranoMusic = \relative { a'4 a a a }
+  SopranoLyricsOne = \lyricmode {
+    \set stanza = "1."
+    Words to verse one
+  }
+  SopranoLyricsTwo = \lyricmode {
+    \set stanza = "2."
+    Words to verse two
+  }
+  \include "satb.ly"
+@end lilypond
+
+Cuando las letras y las duraciones son las mismas para todas las
+partes, la música vocal se dispone mejor sobre dos pentagramas con
+dos voces cada uno.  Se ofrece la posibilidad de incluir hasta
+nueve estrofas.  El ejemplo sin acompañamiento que aparece a
+continuación tiene solamente tres estrofas.
+
+@lilypond[verbatim, quote]
+  SopranoMusic = \relative { a' a a a }
+  AltoMusic = \relative { f' f f f }
+  VerseOne = \lyricmode {
+    \set stanza = "1."
+    Words to verse one
+  }
+  VerseTwo = \lyricmode {
+    \set stanza = "2."
+    Words to verse two
+  }
+  VerseThree = \lyricmode {
+    \set stanza = "3."
+    Words to verse three
+  }
+  TenorMusic = \relative { a a a a }
+  BassMusic = \relative { f f f f }
+  TwoVoicesPerStaff = ##t
+  \include "satb.ly"
+@end lilypond
+
+Puede ajustarse el valor de otras variables.  La tonalidad y la
+indicación de compás se pueden modificar a partir de los ajustes
+predeterminados:
+
+@lilypond[verbatim, quote]
+  Key = \key a \major
+  Time = {
+    \time 5/4
+    \tempo "Allegro" 4 = 144
+  }
+  SopranoMusic = \relative { gis' gis gis gis gis }
+  AltoMusic = \relative { cis' cis cis cis cis }
+  VerseOne = \lyricmode { Words to this du -- et }
+  TwoVoicesPerStaff = ##t
+  \include "satb.ly"
+@end lilypond
+
+Los nombres de instrumento y/o los nombres cortos de instrumento
+se pueden modificar también:
+
+@lilypond[verbatim,quote]
+  SopranoMusic = \relative { c'' c c c }
+  SopranoLyrics = \lyricmode { High voice ly -- rics }
+  SopranoInstrumentName = "Soprano 1"
+  SopranoShortInstrumentName = "S1"
+  AltoMusic = \relative { a' a a a }
+  AltoLyrics = \lyricmode { Low voice ly -- rics }
+  AltoInstrumentName = "Soprano 2"
+  AltoShortInstrumentName = "S2"
+  \include "satb.ly"
+@end lilypond
+
+aunque en su lugar podría resultar más fácil usar la plantilla
+@code{ssaattbb.ly}, véase @ref{Plantilla coral SSAATTBB}.
+
+Se puede añadir un discanto definiendo el valor de la variable
+@code{DescantMusic} y se puede añadir una letra para el discanto
+definiendo valores para la variable @code{DescantLyrics}.  De
+manera similar, puede añadirse una parte de solista por encima de
+los pentagramas del coro agrupado definiendo valores para
+@code{SoloMusic} y @code{SoloLyrics}.
+
+Los bloques @code{\header} y @code{\paper} se pueden añadir de la
+forma normal.  Se puede poner un bloque @code{\layout} de la
+manera usual en el nivel superior, y el contenido se combina (pero
+no sobreescribe) con los ajustes predeterminados que se ofrecen en
+la plantilla.  Como alternativa, todos los ajustes predeterminados
+provistos por la plantilla se pueden descartad definiendo una
+variable @code{Layout} que contenga @emph{todos} los ajustes
+requeridos:
+
+@example
+Layout = \layout @{ ... @}
+@end example
+
+El conjunto completo de variables que pueden modificarse se pueden
+consultar en el archivo @file{ly/satb.ly}, véase @ref{Otras
+fuentes de información}.
+
+@seealso
+Manual de aprendizaje:
+@ref{Organizar las piezas mediante variables},
+@ref{Plantillas de conjuntos vocales},
+@ref{Extender las plantillas},
+@ref{Otras fuentes de información}.
+
+@knownissues
+El establecimiento de la variable @code{TwoVoicesPerStaff} tiene
+efecto sobre la duración completa de la partitura: no se pueden
+dar distintos valores en momentos diferentes.
+
+No son posibles arreglos más complejos de música coral SATB con
+esta sencilla plantilla incorporada.
+
+
+@node Plantilla coral SSAATTBB
+@appendixsubsec Plantilla coral SSAATTBB
+@translationof SSAATTBB template
+
+Todas las variables definidas para la plantilla SATB, con la
+excepción de las variables @code{VerseXxx} están asimismo
+disponibles para la plantilla SSAATTBB, véase @ref{Plantilla coral
+SATB}.  Además, la música y la letra de las voces primera y
+segunda en una cualquiera o en las cuatro partes se puede
+especificar dando valores a las variables @code{SopranoOneMusic},
+@code{SopranoTwoMusic}, etc., con las letras en
+@code{SopranoOneLyrics}, @code{SopranoTwoLyrics}, etc.  Se pueden
+definir hasta cuatro estrovas adicionales para todas las partes
+usando las variables @code{SopranoOneLyricsOne}, estando las demás
+definidas de forma análoga.
+
+Si se establece el valor de @code{TwoVoicesPerStaff} a @code{##t},
+@emph{todas} las partes vocales se situarán en pentagramas únicos
+como voces en divisi.  Si @code{TwoVoicesPerStaff} se deja en su
+valor predeterminado o se establece a @code{##f}, entonces las
+partes vocales individuales se pueden disponer sobre uno o dos
+pentagramas de acuerdo al valor de
+@code{SopranoTwoVoicesPerStaff}, @code{MenTwoVoicesPerStaff}, etc.
+
+Como ejemplo, supongamos que tenemos una pieza para soprano y
+contralto que comienza con todas las voces al unísono y continúa
+en una sección con dos partes vocales, soprano y contralto, y
+termina con una sección de cuatro pentagramas.  Se codificaría de
+la siguiente forma:
+
+@lilypond[verbatim,quote]
+Time = { s1 \break s1 \break }
+WomenMusic = \relative { a'4 a a a }
+WomenLyrics = \lyricmode { Wo -- men ly -- rics }
+SopranoMusic = \relative { s1 | c''4 c c c8 c }
+SopranoLyrics = \lyricmode{ So -- pra -- no ly -- rics }
+AltoMusic = \relative { s1 | g'4 g g g }
+AltoLyrics = \lyricmode { Al -- to ly -- rics }
+SopranoOneMusic = \relative { s1 | s1 |e''4 e e e }
+SopranoOneLyrics = \lyricmode { Sop One ly -- rics }
+SopranoTwoMusic = \relative { s1 | s1 | c''4 c c c }
+SopranoTwoLyrics = \lyricmode { Sop Two ly -- rics }
+AltoOneMusic = \relative { s1 | s1 | g'4 g g g8 g }
+AltoOneLyrics = \lyricmode { Al -- to One ly -- rics }
+AltoTwoMusic = \relative { s1 | s1 | e'4 e e e8 e }
+AltoTwoLyrics = \lyricmode { Al -- to Two ly -- rics }
+\layout { ragged-right = ##t }
+\include "ssaattbb.ly"
+@end lilypond
+
+Las voces masculinas se pueden añadir de forma análoga.
+
+Para cambiar la disposición de forma que las voces de soprano en
+divisi utilicen un pentagrama compartido, sencillamente fijamos el
+valor de @code{SopranoTwoVoicesPerStaff} a ##t, dejando todos los
+demás valores sin cambios, así:
+
+@lilypond[verbatim,quote]
+SopranoTwoVoicesPerStaff = ##t
+Time = { s1 \break s1 \break }
+WomenMusic = \relative { a'4 a a a }
+WomenLyrics = \lyricmode { Wo -- men ly -- rics }
+SopranoMusic = \relative { s1 | c''4 c c c8 c }
+SopranoLyrics = \lyricmode{ So -- pra -- no ly -- rics }
+AltoMusic = \relative { s1 | g'4 g g g }
+AltoLyrics = \lyricmode { Al -- to ly -- rics }
+SopranoOneMusic = \relative { s1 | s1 |e''4 e e e }
+SopranoOneLyrics = \lyricmode { Sop One ly -- rics }
+SopranoTwoMusic = \relative { s1 | s1 | c''4 c c c }
+SopranoTwoLyrics = \lyricmode { Sop Two ly -- rics }
+AltoOneMusic = \relative { s1 | s1 | g'4 g g g8 g }
+AltoOneLyrics = \lyricmode { Al -- to One ly -- rics }
+AltoTwoMusic = \relative { s1 | s1 | e'4 e e e8 e }
+AltoTwoLyrics = \lyricmode { Al -- to Two ly -- rics }
+\layout { ragged-right = ##t }
+\include "ssaattbb.ly"
+@end lilypond
+
+o bien, para hacer que todas las voces emparejadas compartan un
+solo pentagrama, establezca @code{TwoVoicesPerStaff} al valor ##t:
+
+@lilypond[verbatim,quote]
+TwoVoicesPerStaff = ##t
+Time = { s1 \break s1 \break }
+WomenMusic = \relative { a'4 a a a }
+WomenLyrics = \lyricmode { Wo -- men ly -- rics }
+SopranoMusic = \relative { s1 | c''4 c c c8 c }
+SopranoLyrics = \lyricmode{ So -- pra -- no ly -- rics }
+AltoMusic = \relative { s1 | g'4 g g g }
+AltoLyrics = \lyricmode { Al -- to ly -- rics }
+SopranoOneMusic = \relative { s1 | s1 |e''4 e e e }
+SopranoOneLyrics = \lyricmode { Sop One ly -- rics }
+SopranoTwoMusic = \relative { s1 | s1 | c''4 c c c }
+SopranoTwoLyrics = \lyricmode { Sop Two ly -- rics }
+AltoOneMusic = \relative { s1 | s1 | g'4 g g g8 g }
+AltoOneLyrics = \lyricmode { Al -- to One ly -- rics }
+AltoTwoMusic = \relative { s1 | s1 | e'4 e e e8 e }
+AltoTwoLyrics = \lyricmode { Al -- to Two ly -- rics }
+\layout { ragged-right = ##t }
+\include "ssaattbb.ly"
+@end lilypond
+
+Es posible ver el conjunto completo de variables que se pueden
+cambiar examinando el archivo @file{ly/ssaattbb.ly}, véase
+@ref{Otras fuentes de información}.
+
+@seealso
+Manual de aprendizaje:
+@ref{Organizar las piezas mediante variables},
+@ref{Plantillas de conjuntos vocales},
+@ref{Extender las plantillas},
+@ref{Otras fuentes de información}.
+
+@knownissues
+El valor de las distintas variables @code{...TwoVoicesPerStaff} se
+aplica a toda la duración de la partitura: no pueden recibir
+valores distintos en tiempos diferentes.
+
+No son posibles arreglos de música coral a 8 partes más complejos,
+con esta sencilla plantilla incorporada.
+
+
 @node Plantillas de pentagrama único
 @appendixsec Plantillas de pentagrama único
 @translationof Single staff templates
@@ -130,6 +459,13 @@ unas hermosas partituras impresas!
 @appendixsec Plantillas de conjuntos vocales
 @translationof Vocal ensembles templates
 
+Debemos copiar en nuestra partitura el texto de las plantillas que
+se muestran más abajo, y editarlas alllí.  Si tiene una
+disposición coral SATB relativamente sencilla, quizá prefiera
+utilizar las plantillas incorporadas, que solo necesitan incluirse
+con la instrucción @code{\include}, véase @ref{Plantillas
+incorporadas}.
+
 @menu
 * Partitura vocal SATB::
 * Partitura vocal SATB y reducción para piano automática::
index 2e0199c7121471ecf1201324e7d57d66c10012e3..a8b359b48faeeac5b8357bff447c6690478f33a8 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: d378daa101069ce6497292b0f4a7f6ce2e9b51f0
+    Translation of GIT committish: 88cfc9ee61dece9cffff98ab7f10318633698c39
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -16,7 +16,8 @@
 @chapter Tutorial
 @translationof Tutorial
 
-Este capítulo ofrece una introducción básica al trabajo con LilyPond.
+Este capítulo ofrece una introducción básica al trabajo con
+LilyPond.
 
 @menu
 * Compilación del archivo::
@@ -30,8 +31,8 @@ Este capítulo ofrece una introducción básica al trabajo con LilyPond.
 @translationof Compiling a file
 
 Esta sección presenta el concepto de @qq{compilación}: el
-procesamiento de los documentos de entrada de LilyPond (escritos por
-uno mismo) para producir archivos de salida.
+procesamiento de los documentos de entrada de LilyPond (escritos
+por uno mismo) para producir archivos de salida.
 
 @menu
 * Escritura del código de entrada::
@@ -54,8 +55,8 @@ uno mismo) para producir archivos de salida.
 @end menu
 
 @qq{Compilación} es una palabra que significa procesar un texto de
-entrada en formato de LilyPond para producir un archivo que se puede
-imprimir y (de manera opcional) un archivo MIDI que se puede
+entrada en formato de LilyPond para producir un archivo que se
+puede imprimir y (de manera opcional) un archivo MIDI que se puede
 reproducir.  El primer ejemplo muestra el aspecto de un sencillo
 archivo de texto de entrada.
 
@@ -78,17 +79,17 @@ El resultado tiene este aspecto:
 @end lilypond
 
 @warning{la música y la letra escrita en el código de entrada de
-LilyPond tiene que ir siempre entre @w{@strong{@{ llaves @}}}.  Las llaves
-deberían también estar rodeadas por espacios a no ser que se
-encuentren al principio o al final de una línea, para evitar
-ambigüedades.  Es posible que se omitan en algunos ejemplos del
-presente manual ¡pero no las omita en su propia música!  Para ver más
-información sobre la presentación de los ejemplos del manual, consulte
-@ref{Cómo leer los manuales}.}
-
-Además, la entrada de LilyPond es @strong{sensible a las mayúsculas}.
-@w{@samp{ @{ c d e @}}} es una entrada válida; @w{@samp{@{ C D E @}}} produce
-un mensaje de error.
+LilyPond tiene que ir siempre entre @w{@strong{@{ llaves @}}}.
+Las llaves deberían también estar rodeadas por espacios a no ser
+que se encuentren al principio o al final de una línea, para
+evitar ambigüedades.  Es posible que se omitan en algunos ejemplos
+del presente manual ¡pero no las omita en su propia música!  Para
+ver más información sobre la presentación de los ejemplos del
+manual, consulte @ref{Cómo leer los manuales}.}
+
+Además, la entrada de LilyPond es @strong{sensible a las
+mayúsculas}.  @w{@samp{ @{ c d e @}}} es una entrada válida;
+@w{@samp{@{ C D E @}}} produce un mensaje de error.
 
 @smallspace
 
@@ -124,12 +125,12 @@ sistema operativo y del programa o programas que utilicemos.
 
 @end itemize
 
-Existen varios otros editores de texto con un apoyo específico a la
-edición de texto de LilyPond.  Para ver más información, consulte
-@rweb{Entornos mejorados}.
+Existen varios otros editores de texto con un apoyo específico a
+la edición de texto de LilyPond.  Para ver más información,
+consulte @rweb{Entornos mejorados}.
 
-@warning{La primera vez que ejecute LilyPond, tardará un minuto o dos
-porque todas las tipografías del sistema han de ser analizadas
+@warning{La primera vez que ejecute LilyPond, tardará un minuto o
+dos porque todas las tipografías del sistema han de ser analizadas
 previamente.  ¡Después de esto, LilyPond será mucho más rápido!}
 
 
@@ -164,8 +165,9 @@ previamente.  ¡Después de esto, LilyPond será mucho más rápido!}
 @section Cómo escribir archivos de entrada
 @translationof How to write input files
 
-Esta sección presenta una parte de la sintaxis básica de LilyPond como
-ayuda para que se inicie en la escritura de archivos de entrada.
+Esta sección presenta una parte de la sintaxis básica de LilyPond
+como ayuda para que se inicie en la escritura de archivos de
+entrada.
 
 @menu
 * Notación sencilla::
@@ -190,9 +192,10 @@ ayuda para que se inicie en la escritura de archivos de entrada.
 * Todo junto::
 @end menu
 
-LilyPond añadirá ciertos elementos de notación de manera automática.
-En el siguiente ejemplo hemos especificado solamente cuatro alturas,
-pero LilyPond ha añadido la clave, el compás y las duraciones.
+LilyPond añadirá ciertos elementos de notación de manera
+automática.  En el siguiente ejemplo hemos especificado solamente
+cuatro alturas, pero LilyPond ha añadido la clave, el compás y las
+duraciones.
 
 @lilypond[verbatim,quote]
 {
@@ -201,8 +204,8 @@ pero LilyPond ha añadido la clave, el compás y las duraciones.
 @end lilypond
 
 @noindent
-Este comportamiento se puede modificar, pero en general estos valores
-automáticos son adecuados.
+Este comportamiento se puede modificar, pero en general estos
+valores automáticos son adecuados.
 
 
 @node Alturas
@@ -231,30 +234,41 @@ Glosario musical:
 @rglos{octave},
 @rglos{accidental}.
 
+LilyPond emplea letras minúsculas para las alturas.  Las letras
+desde @code{c} hasta@tie{}@code{b} denotan las alturas de las
+notas de la @q{octava corta} por debajo del @notation{Do central}.
+Los sufijos @code{'} (apóstrofo) o@tie{}@code{,} (coma) se añaden
+para indicar octavas más agudas o más graves.  A continuación se
+muestra una escala que comienza en el @notation{Do central}, y un
+arpegio:
+
+@lilypond[verbatim,quote]
+{ c' d' e' f' g' a' b' c'' g c' e' g' c'' e'' g'' c''' }
+@end lilypond
+
 La manera más sencilla de introducir las notas es mediante la
-utilización del modo @code{\relative} (relativo).  En este modo, se
-elige la octava automáticamente bajo la suposición de que la siguiente
-nota se colocará siempre lo más cerca de la nota actual, es decir, se
-colocará en la octava comprendida dentro de hasta tres espacios de
-pentagrama a partir de la nota anterior.  Comenzaremos por introducir
-el fragmento musical más elemental: una @notation{escala}, donde cada
-nota está comprendida dentro de tan sólo un espacio de pentagrama
-desde la nota anterior.
+utilización del modo @code{\relative} (relativo).  En este modo,
+se elige la octava automáticamente bajo la suposición de que la
+siguiente nota se colocará siempre lo más cerca de la nota actual,
+es decir, se colocará en la octava comprendida dentro de hasta
+tres espacios de pentagrama a partir de la nota anterior.
+Comenzaremos por introducir el fragmento musical más elemental:
+una @notation{escala}, donde cada nota está comprendida dentro de
+tan sólo un espacio de pentagrama desde la nota anterior.
 
 @lilypond[verbatim,quote]
-% set the starting point to middle C
 \relative {
   c' d e f
   g a b c
 }
 @end lilypond
 
-La nota inicial es el @notation{Do central}.  Cada nota sucesiva se
-coloca lo más cerca posible de la nota previa (en otras palabras: la
-primera @samp{c} es el Do más cercano al Do central; a éste le sigue
-el Re más cercano a la nota previa, y así sucesivamente).  Podemos
-crear melodías con intervalos mayores, aún sin dejar de utilizar el
-modo relativo:
+La nota inicial, escrita como @code{c'}, es el @notation{Do
+central}.  Cada nota sucesiva se coloca lo más cerca posible de la
+nota previa (en otras palabras: la primera @samp{c} es el Do más
+cercano al Do central; a éste le sigue el Re más cercano a la nota
+previa, y así sucesivamente).  Podemos crear melodías con
+intervalos mayores, aún sin dejar de utilizar el modo relativo:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -264,32 +278,28 @@ modo relativo:
 @end lilypond
 
 @noindent
-No es necesario que la primera nota de la melodía comience exactamente
-en aquella que especifica la altura de inicio.  En el ejemplo
-anterior, la primera nota (@code{d}) es el Re más cercano al Do
-central.
+En el ejemplo anterior, la primera nota (@code{d'}, con un
+apóstrofo) es el Re que está en la octava que va del Do central al
+Si por encima de él.
 
-Añadiendo (o eliminando) comillas simples @code{'} o comas @code{,} a
-la instrucción @q{@w{@code{@bs{}\relative c'}}}, podemos cambiar la octava
-de inicio:
+Añadiendo (o eliminando) comillas simples @code{'} o comas
+@code{,} a la primera nota, podemos cambiar la octava de inicio:
 
-@c KEEP LY
 @lilypond[verbatim,quote]
-% una octava por encima del Do central
 \relative {
   e'' c a c
 }
 @end lilypond
 
-Al principio, el modo relativo puede resultar algo confuso, pero es la
-forma más sencilla de introducir la mayor parte de las melodías.
-Veamos cómo funciona en la práctica este cálculo relativo.  Comenzando
-por Si, que está situado en la línea central en clave de Sol, podemos
-alcanzar Do, Re y Mi dentro de los tres espacios de pentagrama hacia
-arriba, y La, Sol y Fa dentro de los tres espacios hacia abajo.  Por
-tanto, si la nota siguiente a Si es Do, Re o Mi se supondrá que está
-por encima del Si, mientras que La, Sol o Fa se entenderán situados
-por debajo.
+Al principio, el modo relativo puede resultar algo confuso, pero
+es la forma más sencilla de introducir la mayor parte de las
+melodías.  Veamos cómo funciona en la práctica este cálculo
+relativo.  Comenzando por Si, que está situado en la línea central
+en clave de Sol, podemos alcanzar Do, Re y Mi dentro de los tres
+espacios de pentagrama hacia arriba, y La, Sol y Fa dentro de los
+tres espacios hacia abajo.  Por tanto, si la nota siguiente a Si
+es Do, Re o Mi se supondrá que está por encima del Si, mientras
+que La, Sol o Fa se entenderán situados por debajo.
 
 @c KEEP LY
 @lilypond[verbatim,quote]
@@ -303,17 +313,18 @@ por debajo.
 }
 @end lilypond
 
-Lo mismo exactamente ocurre cuando cualquiera de esas notas llevan un
-sostenido o un bemol.  Las @notation{Alteraciones accidentales} se
-@strong{ignoran totalmente} en el cálculo de la posición relativa.
-Exactamente la misma cuenta de espacios de pentagrama se hace a partir
-de una nota situada en cualquier otro lugar del mismo.
+Lo mismo exactamente ocurre cuando cualquiera de esas notas llevan
+un sostenido o un bemol.  Las @notation{Alteraciones accidentales}
+se @strong{ignoran totalmente} en el cálculo de la posición
+relativa.  Exactamente la misma cuenta de espacios de pentagrama
+se hace a partir de una nota situada en cualquier otro lugar del
+mismo.
 
-Para añadir intervalos mayores de tres espacios de pentagrama, podemos
-elevar la @notation{octava} añadiendo una comilla simple @code{'} (o
-apóstrofo) a continuación del nombre de la nota.  También podemos
-bajar la octava escribiendo una coma @code{,} a continuación del
-nombre de la nota.
+Para añadir intervalos mayores de tres espacios de pentagrama,
+podemos elevar la @notation{octava} añadiendo una comilla simple
+@code{'} (o apóstrofo) a continuación del nombre de la nota.
+También podemos bajar la octava escribiendo una coma @code{,} a
+continuación del nombre de la nota.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -325,7 +336,8 @@ nombre de la nota.
 @noindent
 Para subir o bajar una nota en dos (¡o más!) octavas, utilizamos
 varias @code{''} ó @code{,,} (pero tenga cuidado de utilizar dos
-comillas simples @code{''} ¡y no una comilla doble @code{"}@tie{}!)
+comillas simples @code{''} ¡y no una comilla doble
+@code{"}@tie{}!)
 @c " - keeps quotes in order for context-sensitive editor -td
 
 @node Duraciones (valores rítmicos)
@@ -350,15 +362,15 @@ Glosario musical:
 @rglos{quarter note},
 @rglos{dotted note}.
 
-La @notation{duración} de una nota se especifica mediante un número
-después del nombre de la nota: @code{1} significa @notation{redonda},
-@code{2} significa @notation{blanca}, @code{4} significa
-@notation{negra} y así sucesivamente.  Las @notation{barras de
-corchea} se añaden automáticamente.
+La @notation{duración} de una nota se especifica mediante un
+número después del nombre de la nota: @code{1} significa
+@notation{redonda}, @code{2} significa @notation{blanca}, @code{4}
+significa @notation{negra} y así sucesivamente.  Las
+@notation{barras de corchea} se añaden automáticamente.
 
-Si no especifica una duración, se utiliza la duración previa para la
-nota siguiente.  La figura por omisión de la primera nota es una
-negra.
+Si no especifica una duración, se utiliza la duración previa para
+la nota siguiente.  La figura por omisión de la primera nota es
+una negra.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -368,9 +380,10 @@ negra.
 }
 @end lilypond
 
-Para crear @notation{notas con puntillo}, añada un punto @code{.} al
-número de la duración.  La duración de una nota con puntillo se debe
-especificar de forma explícita (es decir: mediante un número).
+Para crear @notation{notas con puntillo}, añada un punto @code{.}
+al número de la duración.  La duración de una nota con puntillo se
+debe especificar de forma explícita (es decir: mediante un
+número).
 
 @lilypond[verbatim,quote]
 \relative {
@@ -389,8 +402,8 @@ especificar de forma explícita (es decir: mediante un número).
 Glosario musical:
 @rglos{rest}.
 
-Un @notation{silencio} se introduce igual que si fuera una nota con el
-nombre @code{r}@tie{}:
+Un @notation{silencio} se introduce igual que si fuera una nota
+con el nombre @code{r}@tie{}:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -412,8 +425,8 @@ nombre @code{r}@tie{}:
 Glosario musical:
 @rglos{time signature}.
 
-La @notation{indicación de compás} se puede establecer con la orden
-@code{\time} :
+La @notation{indicación de compás} se puede establecer con la
+orden @code{\time} :
 
 @lilypond[verbatim,quote]
 \relative {
@@ -499,8 +512,8 @@ La @notation{clave} se puede establecer utilizando la orden
 @unnumberedsubsubsec Todo junto
 @translationof All together
 
-He aquí un pequeño ejemplo que muestra todos los elementos anteriores
-juntos:
+He aquí un pequeño ejemplo que muestra todos los elementos
+anteriores juntos:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -546,23 +559,25 @@ Referencia de la notación:
 @funindex %
 @funindex %@{ ... %@}
 
-Los archivos de entrada de LilyPond son como los archivos fuente de
-muchos lenguajes de programación corrientes.  Contienen un enunciado
-de versión, son sensibles a las mayúsculas y generalmente los espacios
-se ignoran.  Las expresiones se forman con llaves @w{@code{@{ @}}} y los
-comentarios se denotan por un signo de porcentaje (@code{%}) o por
-@w{@code{%@{ @dots{} %@}}}@tie{}.
+Los archivos de entrada de LilyPond son como los archivos fuente
+de muchos lenguajes de programación corrientes.  Contienen un
+enunciado de versión, son sensibles a las mayúsculas y
+generalmente los espacios se ignoran.  Las expresiones se forman
+con llaves @w{@code{@{ @}}} y los comentarios se denotan por un
+signo de porcentaje (@code{%}) o por @w{@code{%@{ @dots{}
+%@}}}@tie{}.
 
-Si la frase anterior no tiene sentido para usted ¡no se preocupe! A
-continuación explicaremos el significado de todos estos términos:
+Si la frase anterior no tiene sentido para usted ¡no se preocupe!
+A continuación explicaremos el significado de todos estos
+términos:
 
 @itemize
 
 @item
 @strong{Enunciado de la versión}: Todo archivo de LilyPond debe
 contener un enunciado de versión.  Un enunciado de versión es una
-línea que describe la versión de LilyPond para la que se escribió este
-archivo, como en el ejemplo siguiente:
+línea que describe la versión de LilyPond para la que se escribió
+este archivo, como en el ejemplo siguiente:
 
 @example
 \version "@w{@version{}}"
@@ -571,25 +586,26 @@ archivo, como en el ejemplo siguiente:
 Por convenio, el enunciado de versión se coloca al principio del
 archivo de LilyPond.
 
-El enunciado de versión es importante por dos motivos como mínimo.  En
-primer lugar, permite la actualización automática del código de
+El enunciado de versión es importante por dos motivos como mínimo.
+En primer lugar, permite la actualización automática del código de
 entrada conforme se va modificando la sintaxis de LilyPond.  En
 segundo lugar, indica la versión de LilyPond que se necesita para
 compilar el archivo.
 
-Si no se escribe ningún enunciado de versión en el archivo de entrada,
-LilyPond imprime una advertencia durante la compilación del mismo.
+Si no se escribe ningún enunciado de versión en el archivo de
+entrada, LilyPond imprime una advertencia durante la compilación
+del mismo.
 
 @item
-@strong{Sensible a las mayúsculas}: tiene importancia el hecho de que
-introduzca una letra en minúsculas (p.ej. @w{@code{a, b, s, t}}) o en
-mayúsculas (p.ej.  @w{@code{A, B, S, T}}).  Las notas son minúsculas:
-@w{@samp{@{ c d e @}}} es una entrada válida; @w{@samp{@{ C D E @}}}
-produciría un mensaje de error.
+@strong{Sensible a las mayúsculas}: tiene importancia el hecho de
+que introduzca una letra en minúsculas (p.ej. @w{@code{a, b, s, t}})
+o en mayúsculas (p.ej.  @w{@code{A, B, S, T}}).  Las notas son
+minúsculas: @w{@samp{@{ c d e @}}} es una entrada válida;
+@w{@samp{@{ C D E @}}} produciría un mensaje de error.
 
 @item
-@strong{Insensible al número de espacios}: no importa cuántos espacios
-(o saltos de línea o de tabulación) añada.
+@strong{Insensible al número de espacios}: no importa cuántos
+espacios (o saltos de línea o de tabulación) añada.
 @w{@samp{@{ c4 d e @}}} significa lo mismo que
 @w{@samp{@{ c4 @tie{} @tie{} @tie{} d e @}}} y que
 
@@ -610,36 +626,38 @@ tabulación, o bien con dos espacios:
 @end example
 
 Sin embargo, @emph{sí} se necesitan espacios para separar muchos
-elementos sintácticos unos de otros.  En otras palabras, los espacios
-se pueden siempre @emph{añadir}, pero no siempre @emph{eliminar}.
-Dado que la falta de espacios puede dar lugar a extraños errores,
-recomendamos insertar espacios siempre antes y después de cualquier
-elemento sintáctico, por ejemplo, antes y después de las llaves.
+elementos sintácticos unos de otros.  En otras palabras, los
+espacios se pueden siempre @emph{añadir}, pero no siempre
+@emph{eliminar}.  Dado que la falta de espacios puede dar lugar a
+extraños errores, recomendamos insertar espacios siempre antes y
+después de cualquier elemento sintáctico, por ejemplo, antes y
+después de las llaves.
 
 @item
 @strong{Expresiones:} Todo fragmento de código de entrada para
-LilyPond ha de llevar @strong{@{@tie{}llaves@tie{}@}} antes y después de la
-entrada.  Estas llaves le dicen a LilyPond que la entrada es una
-expresión musical unitaria, igual que los paréntesis @samp{()} de las
-matemáticas.  Las llaves deben ir rodeadas de un espacio a no ser que
-se encuentren al comienzo o al final de una línea, para evitar
-cualquier ambigüedad.
+LilyPond ha de llevar @strong{@{@tie{}llaves@tie{}@}} antes y
+después de la entrada.  Estas llaves le dicen a LilyPond que la
+entrada es una expresión musical unitaria, igual que los
+paréntesis @samp{()} de las matemáticas.  Las llaves deben ir
+rodeadas de un espacio a no ser que se encuentren al comienzo o al
+final de una línea, para evitar cualquier ambigüedad.
 
 Una instrucción de LilyPond seguida de una expresión simple entre
-llaves (como por ejemplo @q{@w{@code{@bs{}relative c' @{ @dots{} @}}}}) también es una
-expresión musical unitaria.
+llaves (como por ejemplo @q{@w{@code{@bs{}relative @{ @dots{}
+@}}}}) también es una expresión musical unitaria.
 
 @cindex comentarios
 @cindex comentario de línea
 @cindex comentario de bloque
 @item
-@strong{Comentarios}: Un comentario es una nota para el lector humano
-de la entrada musical; se ignora cuando esta entrada se analiza, de
-manera que no tiene ningún efecto sobre la salida impresa.  Existen
-dos tipos de comentarios.  El símbolo de porcentaje @samp{%} introduce
-un comentario de línea; todo lo que se encuentra después de @samp{%}
-en esa línea se ignora.  Por convenio, una línea de comentario se
-coloca @emph{por encima} del código a que se refiere el comentario.
+@strong{Comentarios}: Un comentario es una nota para el lector
+humano de la entrada musical; se ignora cuando esta entrada se
+analiza, de manera que no tiene ningún efecto sobre la salida
+impresa.  Existen dos tipos de comentarios.  El símbolo de
+porcentaje @samp{%} introduce un comentario de línea; todo lo que
+se encuentra después de @samp{%} en esa línea se ignora.  Por
+convenio, una línea de comentario se coloca @emph{por encima} del
+código a que se refiere el comentario.
 
 @example
 a4 a a a
@@ -647,13 +665,14 @@ a4 a a a
 b2 b
 @end example
 
-Un comentario de bloque marca una sección entera de entrada musical
-como comentario.  Todo lo que está encerrado dentro de @code{%@{} y
-@code{%@}} se ignora (pero los comentarios no pueden anidarse, lo que
-significa que un comentario de bloque no puede incluir otros
-comentarios de bloque).  Si lo hiciera, el primer @code{%@}} daría por
-terminado @emph{los dos} comentarios de bloque.  El siguiente
-fragmento muestra algunos posibles usos para los comentarios:
+Un comentario de bloque marca una sección entera de entrada
+musical como comentario.  Todo lo que está encerrado dentro de
+@code{%@{} y @code{%@}} se ignora (pero los comentarios no pueden
+anidarse, lo que significa que un comentario de bloque no puede
+incluir otros comentarios de bloque).  Si lo hiciera, el primer
+@code{%@}} daría por terminado @emph{los dos} comentarios de
+bloque.  El siguiente fragmento muestra algunos posibles usos para
+los comentarios:
 
 @example
 % a continuación van las notas de campanitas del lugar
@@ -691,11 +710,11 @@ pudiera encontrar.
 @translationof General troubleshooting tips
 
 La solución de problemas en LilyPond puede ser un desafío para las
-personas acostumbradas a los interfaces gráficos, porque es posible
-crear archivos de entrada inválidos.  Cuando esto ocurre, la mejor
-forma de identificar y resolver el problema es aplicar un enfoque
-lógico.  Se dan algunas guías para ayudarle a aprender a hacerlo, en
-@rprogram{Solución de problemas}.
+personas acostumbradas a los interfaces gráficos, porque es
+posible crear archivos de entrada inválidos.  Cuando esto ocurre,
+la mejor forma de identificar y resolver el problema es aplicar un
+enfoque lógico.  Se dan algunas guías para ayudarle a aprender a
+hacerlo, en @rprogram{Solución de problemas}.
 
 
 @node Algunos errores comunes
@@ -705,18 +724,18 @@ lógico.  Se dan algunas guías para ayudarle a aprender a hacerlo, en
 @cindex comunes, errores
 @cindex errores comunes
 
-Existen algunos errores comunes que son difíciles de solucionar si nos
-basamos solamente en los mensajes de error que se nos presentan.
-Éstos se describen en @rprogram{Errores comunes}.
+Existen algunos errores comunes que son difíciles de solucionar si
+nos basamos solamente en los mensajes de error que se nos
+presentan.  Éstos se describen en @rprogram{Errores comunes}.
 
 
 @node Cómo leer los manuales
 @section Cómo leer los manuales
 @translationof How to read the manuals
 
-Esta sección muestra cómo leer la documentación de forma eficiente, y
-presenta algunas interesantes funcionalidades interactivas de la
-versión en línea.
+Esta sección muestra cómo leer la documentación de forma
+eficiente, y presenta algunas interesantes funcionalidades
+interactivas de la versión en línea.
 
 @menu
 * Material omitido::
@@ -741,31 +760,19 @@ versión en línea.
 @cindex archivos, consejos para construir
 
 Como ya vimos en @ref{Trabajar sobre los archivos de entrada}, el
-código de entrada de LilyPond debe estar rodeado de llaves @code{@{ @}} o de
-@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}}.  Durante el resto del presente
-manual, la mayor parte de los ejemplos omitirán las llaves.  Para
-reproducir los ejemplos, deberá copiar y pegar la entrada que se
-muestra, pero @strong{deberá} escribir el @q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}},
-de la siguiente forma:
+código de entrada de LilyPond debe estar rodeado de llaves
+@code{@{ @}} o de @q{@w{@code{@bs{}relative @{ @dots{} @}}}}.
+Durante el resto del presente manual, ciertos ejemplos breves
+omitirán las llaves.  Para reproducir estos ejemplos puede copiar
+la entrada que se muestra, pero debe pegarla entre @code{@{} y
+@code{@}} dentro del archivo de entrada.
 
 @example
-\relative c'' @{
+@{
   @dots{}aquí va el ejemplo@dots{}
 @}
 @end example
 
-¿Por qué omitir las llaves? Casi todos los ejemplos del presente
-manual se pueden insertar en medio de un fragmento mayor de música.
-Para estos ejemplos no tiene ningún sentido añadir
-@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}}
-(¡no debería poner un @code{\relative} dentro de otro
-@code{\relative}!); si hubiésemos incluido
-@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}}
-rodeando a cada uno de los ejemplos, usted no podría copiar un
-ejemplo pequeño procedente de la documentación y pegarlo dentro de su
-propia pieza.  La mayoría querrá insertar el código dentro de una
-pieza más grande, por eso hemos formateado el manual de esta manera.
-
 Asimismo, recuerde que todo archivo de LilyPond debe llevar un
 enunciado @code{\version}.  Dado que los ejemplos de los manuales
 son fragmentos de código y no archivos completos, el enunciado
@@ -776,14 +783,14 @@ a incluirlo en nuestros documentos.
 @subsection Ejemplos con enlace
 @translationof Clickable examples
 
-@warning{Esta funcionalidad sólo está disponible en los manuales en
-HTML.}
+@warning{Esta funcionalidad sólo está disponible en los manuales
+en HTML.}
 
-Muchas personas aprenden a utilizar programas probando y enredando con
-ellos.  Esto también puede hacerse con LilyPond.  Si hace clic sobre
-una imagen en la versión en HTML de este manual, podrá ver la entrada
-exacta de LilyPond que se utilizó para generar esa imagen.  Pruébelo
-sobre esta imagen:
+Muchas personas aprenden a utilizar programas probando y enredando
+con ellos.  Esto también puede hacerse con LilyPond.  Si hace clic
+sobre una imagen en la versión en HTML de este manual, podrá ver
+la entrada exacta de LilyPond que se utilizó para generar esa
+imagen.  Pruébelo sobre esta imagen:
 
 @c no verbatim here
 @c KEEP LY
@@ -794,10 +801,11 @@ sobre esta imagen:
 @end lilypond
 
 Cortando y pegando todo lo que se encuentra dentro de la sección
-@qq{ly snippet} (fragmento de tipo ly), tendrá una plantilla inicial
-para sus experimentos. Para poder ver exactamente el mismo resultado
-(con igual anchura de línea y todo), copie todo lo que está desde
-@qq{Start cut-&-pastable section} hasta el final del archivo.
+@qq{ly snippet} (fragmento de tipo ly), tendrá una plantilla
+inicial para sus experimentos. Para poder ver exactamente el mismo
+resultado (con igual anchura de línea y todo), copie todo lo que
+está desde @qq{Start cut-&-pastable section} hasta el final del
+archivo.
 
 
 @ignore
@@ -819,10 +827,10 @@ Estamos trabajando sobre esta funcionalidad.
 @subsection Panorámica de los manuales
 @translationof Overview of manuals
 
-Existe abundantísima documentación sobre LilyPond.  Con frecuencia,
-los nuevos usuarios se encuentran desorientados respecto a qué parte o
-partes deben leer, y ocasionalmente pasan por alto la lectura de
-partes de importancia vital.
+Existe abundantísima documentación sobre LilyPond.  Con
+frecuencia, los nuevos usuarios se encuentran desorientados
+respecto a qué parte o partes deben leer, y ocasionalmente pasan
+por alto la lectura de partes de importancia vital.
 
 @warning{Por favor: no se salte las partes importantes de la
 documentación.  Le resultará mucho más difícil comprender las
@@ -832,24 +840,26 @@ secciones subsiguientes.}
 
 @item
 @strong{Antes de intentar hacer @emph{cualquier cosa}}: lea el
-@ref{Tutorial} del manual de Aprendizaje, y la sección @ref{Notación
-corriente}.  Si encuentra términos musicales que no reconoce,
-búsquelos en el @rglosnamed{Top, Glosario}.
+@ref{Tutorial} del manual de Aprendizaje, y la sección
+@ref{Notación corriente}.  Si encuentra términos musicales que no
+reconoce, búsquelos en el @rglosnamed{Top, Glosario}.
 
 @item
-@strong{Antes de tratar de escribir una pieza completa de música}: lea
-la sección @ref{Conceptos fundamentales} del manual de Aprendizaje.
-Después, le vendrá bien consultar las secciones correspondientes de la
-@rusernamed{Top, Referencia de la notación}.
+@strong{Antes de tratar de escribir una pieza completa de música}:
+lea la sección @ref{Conceptos fundamentales} del manual de
+Aprendizaje.  Después, le vendrá bien consultar las secciones
+correspondientes de la @rusernamed{Top, Referencia de la
+notación}.
 
 @item
-@strong{Antes de tratar de modificar los resultados predeterminados}:
-lea la sección @ref{Trucar la salida} del manual de Aprendizaje.
+@strong{Antes de tratar de modificar los resultados
+predeterminados}: lea la sección @ref{Trucar la salida} del manual
+de Aprendizaje.
 
 @item
 @strong{Antes de afrontar un proyecto grande}: lea la sección
-@rprogramnamed{Suggestions for writing files,Sugerencias para escribir
-archivos de entrada de LilyPond} del manual de Utilización del
-programa.
+@rprogramnamed{Suggestions for writing files,Sugerencias para
+escribir archivos de entrada de LilyPond} del manual de
+Utilización del programa.
 
 @end itemize
index cb6b875df47aa11539fec728c817ccce7b4ad072..5b33f851f98c80d41f593cfddb33b5d02c7c58a2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 7fdce4f39834cc8c83f176480cc1d20900eb09f8
+    Translation of GIT committish: 5ae5c88bdb1a478263ed874cb823ec58dafc93f9
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -14,8 +14,9 @@
 @chapter Trucar la salida
 @translationof Tweaking output
 
-Este capítulo trata de cómo modificar la salida.  LilyPond es extremadamente
-configurable; prácticamente todos los fragmentos de la salida se pueden cambiar.
+Este capítulo trata de cómo modificar la salida.  LilyPond es
+extremadamente configurable; prácticamente todos los fragmentos de
+la salida se pueden cambiar.
 
 
 @menu
@@ -46,20 +47,20 @@ configurable; prácticamente todos los fragmentos de la salida se pueden cambiar
 El @q{Trucaje} es un término de LilyPond que denota los diversos
 métodos que el usuario tiene a su disposición para modificar el
 proceso de interpretación del archivo de entrada y cambiar la
-apariencia de la salida impresa.  Algunos trucos son muy fáciles de
-usar; otros son más complejos.  Pero en su conjunto, los métodos de
-trucaje disponibles posibilitan conseguir casi cualquier apariencia
-que deseemos en la música impresa.
+apariencia de la salida impresa.  Algunos trucos son muy fáciles
+de usar; otros son más complejos.  Pero en su conjunto, los
+métodos de trucaje disponibles posibilitan conseguir casi
+cualquier apariencia que deseemos en la música impresa.
 
 En esta sección vamos a estudiar los conceptos básicos que se
 necesitan para comprender el trucaje.  Más tarde daremos un amplio
 abanico de instrucciones listas para usar, que podrá simplemente
 copiar para obtener el mismo efecto en sus partituras, y al mismo
-tiempo mostraremos la forma de construir dichas instrucciones para que
-pueda aprender cómo desarrollar sus propios trucos.
+tiempo mostraremos la forma de construir dichas instrucciones para
+que pueda aprender cómo desarrollar sus propios trucos.
 
-Antes de comenzar con este capítulo, quizá quiera echar un vistazo a
-la sección @ref{Contextos y grabadores}, pues los Contextos, los
+Antes de comenzar con este capítulo, quizá quiera echar un vistazo
+la sección @ref{Contextos y grabadores}, pues los Contextos, los
 Grabadores y las Propiedades que se contienen en ellos son
 fundamentales para comprender y construir los trucos.
 
@@ -81,53 +82,71 @@ interna del programa LilyPond, por lo que en primer lugar
 introduciremos algunos términos que se usan para describir dichas
 operaciones y estructuras internas.
 
-El término @q{Objeto} es un término genérico que se usa para referirse
-a la multitud de estructuras internas que LilyPond construye durante
-el procesado de un archivo de entrada.  Así, cuando se encuentra una
-instrucción como @code{\new Staff}, se construye un objeto nuevo del
-tipo @code{Staff}.  Entonces, este objeto @code{Staff} contiene todas
-las propiedades asociadas con ese pentagrama en particular, por
-ejemplo, su nombre y su armadura, además de otros detalles de los
-grabadores que se han asignado para que operen dentro del contexto del
-pentagrama.  De forma similar, hay objetos que guardan las propiedades
-de todos los demás contextos, como objetos de @code{Voice}, objetos de
+El término @q{Objeto} es un término genérico que se usa para
+referirse a la multitud de estructuras internas que LilyPond
+construye durante el procesado de un archivo de entrada.  Así,
+cuando se encuentra una instrucción como @code{\new Staff}, se
+construye un objeto nuevo del tipo @code{Staff}.  Entonces, este
+objeto @code{Staff} contiene todas las propiedades asociadas con
+ese pentagrama en particular, por ejemplo, su nombre y su
+armadura, además de otros detalles de los grabadores que se han
+asignado para que operen dentro del contexto del pentagrama.  De
+forma similar, hay objetos que guardan las propiedades de todos
+los demás contextos, como objetos de @code{Voice}, objetos de
 @code{Score}, objetos de @code{Lyrics}, así como objetos que
-representan todos los elementos notacionales como líneas divisorias,
-cabezas de las notas, ligaduras, indicaciones dinámicas, etc.  Cada
-objeto tiene su propio conjunto de valores de propiedad.
-
-Ciertos tipos de objetos reciben nombres especiales.  Los objetos que
-representan elementos de notación sobre la salida impresa como cabezas
-de notas, plicas, ligaduras de expresión y de unión, digitaciones,
-claves, etc. reciben el nombre de @q{Objetos de presentación}, a
-menudo conocidos como @q{Objetos gráficos}, o abreviadamente
-@q{Grobs}.  Aún son objetos en el sentido genérico que hemos
-mencionado, y también todos ellos tienen propiedades asociadas, como
-su posición, tamaño, color,etc.
+representan todos los elementos notacionales como líneas
+divisorias, cabezas de las notas, ligaduras, indicaciones
+dinámicas, etc.  Cada objeto tiene su propio conjunto de valores
+de propiedad.
+
+Ciertos tipos de objetos reciben nombres especiales.  Los objetos
+que representan elementos de notación sobre la salida impresa como
+cabezas de notas, plicas, ligaduras de expresión y de unión,
+digitaciones, claves, etc. reciben el nombre de @q{Objetos de
+presentación}, a menudo conocidos como @q{Objetos gráficos}, o
+abreviadamente @q{Grobs}.  Aún son objetos en el sentido genérico
+que hemos mencionado, y también todos ellos tienen propiedades
+asociadas, como su posición, tamaño, color,etc.
 
 Ciertos objetos de presentación son aún más especializados.  Las
-ligaduras de fraseo, los reguladores, las indicaciones de octava alta
-y baja, y muchos otros objetos gráficos no están situados en un solo
-lugar: tienen un punto de inicio, un punto de final, y quizá otras
-propiedades relacionadas con su forma.  Los objetos con una forma
-extendida como estos, reciben el nombre de «Objetos de extensión» o
-@q{Spanners}.
-
-Aún falta por explicar qué son los @q{Interfaces}.  Muchos objetos,
-incluso aunque son bastante diferentes, comparten funcionalidades que
-se deben procesar de la misma manera.  Por ejemplo, todos los objetos
-gráficos tienen un color, un tamaño, una posición, etc., y todas estas
-propiedades se procesan de la misma forma durante la interpretación
-del archivo de entrada por parte de LilyPond.  Para simplificar estas
-operaciones internas, estas acciones y propiedades comunes se agrupan
-en un objeto llamado @code{grob-interface}, interface de grob.  Hay
-muchas otras agrupaciones de propiedades comunes como ésta, y cada
-una recibe un nombre que acaba en @code{interface}.  En total hay más
-de 100 interfaces de éstos.  Veremos más adelante porqué esto es del
-interés y de utilidad para el usuario.
-
-Estos son, en fin, los términos principales relativos a los objetos
-que vamos a utilizar en este capítulo.
+ligaduras de fraseo, los reguladores, las indicaciones de octava
+alta y baja, y muchos otros objetos gráficos no están situados en
+un solo lugar: tienen un punto de inicio, un punto de final, y
+quizá otras propiedades relacionadas con su forma.  Los objetos
+con una forma extendida como estos, reciben el nombre de «Objetos
+de extensión» o @q{Spanners}.
+
+Los «spanners» no se pueden trucar después de haberse creado.
+Ello incluye tanto a @code{StaffSymbol} como a
+@code{LedgerLineSpanner}, que continúan a lo largo de toda la
+partitura (excepto si se les da fin con la instrucción
+@code{\stopStaff} y se vuelven a crear con la instrucción
+@code{\startStaff}.
+
+Es más, existen objetos gráficos @q{abstractos} que no impriman
+nada por sí mismos, sino que más bien recopilan, posicionan y
+gestionan a otros objetos gráficos.  Los ejemplos usuales son
+@code{DynamicLineSpanner}, @code{BreakAlignment},
+@code{NoteColumn}, @code{VerticalAxisGroup},
+@code{NonMusicalPaperColumn} y similares.  Más tarde veremos cómo
+se usan algunos de ellos.
+
+Aún falta por explicar qué son los @q{Interfaces}.  Muchos
+objetos, incluso aunque son bastante diferentes, comparten
+funcionalidades que se deben procesar de la misma manera.  Por
+ejemplo, todos los objetos gráficos tienen un color, un tamaño,
+una posición, etc., y todas estas propiedades se procesan de la
+misma forma durante la interpretación del archivo de entrada por
+parte de LilyPond.  Para simplificar estas operaciones internas,
+estas acciones y propiedades comunes se agrupan en un objeto
+llamado @code{grob-interface}, interface de grob.  Hay muchas
+otras agrupaciones de propiedades comunes como ésta, y cada una
+recibe un nombre que acaba en @code{interface}.  En total hay más
+de 100 interfaces de éstos.  Veremos más adelante porqué esto es
+del interés y de utilidad para el usuario.
+
+Estos son, en fin, los términos principales relativos a los
+objetos que vamos a utilizar en este capítulo.
 
 @node Convenciones de nombres de objetos y propiedades
 @subsection Convenciones de nombres de objetos y propiedades
@@ -177,6 +196,11 @@ objeto se modifican por parte de diferentes instrucciones; así pues,
 es útil poder reconocer los tipos de objetos y propiedades
 a partir de sus nombres.
 
+@seealso
+Referencia de la notación:
+@ruser{Modificar las propiedades}.
+
+
 @node Métodos de trucaje
 @subsection Métodos de trucaje
 @translationof Tweaking methods
@@ -203,19 +227,21 @@ a partir de sus nombres.
 @funindex \override
 @funindex override
 
-Ya hemos visto las instrucciones @code{\set} y @code{\with}, que se
-usan para cambiar las propiedades de los @strong{contextos} y para
-quitar y poner @strong{grabadores}, en @ref{Modificar las propiedades de los contextos}
-y @ref{Añadir y eliminar grabadores}.  Ahora debemos
-examinar algunas otras instrucciones importantes.
-
-La instrucción que cambia las propiedades de los @strong{objetos de
-presentación} es @code{\override}.  Puesto que esta instrucción debe
-modificar propiedades internas que se encuentran en un lugar profundo
-dentro de LilyPond, su sintaxis no es tan simple como la del resto de
-las instrucciones que hemos usado hasta ahora.  Tiene que saber
-exactamente qué propiedad de qué objeto y en qué contexto se debe
-modificar, y cuál debe ser su nuevo valor.  Veamos cómo se hace.
+Ya hemos visto las instrucciones @code{\set} y @code{\with}, que
+se usan para cambiar las propiedades de los @strong{contextos} y
+para quitar y poner @strong{grabadores}, en
+@ref{Modificar las propiedades de los contextos} y
+@ref{Añadir y eliminar grabadores}.  Ahora debemos examinar
+algunas otras instrucciones importantes.
+
+La instrucción que cambia las propiedades de los @strong{objetos
+de presentación} es @code{\override}.  Puesto que esta instrucción
+debe modificar propiedades internas que se encuentran en un lugar
+profundo dentro de LilyPond, su sintaxis no es tan simple como la
+del resto de las instrucciones que hemos usado hasta ahora.  Tiene
+que saber exactamente qué propiedad de qué objeto y en qué
+contexto se debe modificar, y cuál debe ser su nuevo valor.
+Veamos cómo se hace.
 
 La sintaxis genérica de esta instrucción es:
 
@@ -231,16 +257,17 @@ nombre @var{ObjetoDePresentación}, que es miembro del contexto
 @var{Contexto}, al valor @var{valor}.
 
 El @var{contexto} se puede omitir (y normalmente así es) cuando el
-contexto requerido se encuentra implicado sin ambigüedad y es uno de
-los contextos del nivel más bajo, es decir: @code{Voice},
-@code{ChordNames} o @code{Lyrics}, y lo omitiremos en muchos de los
-ejemplos siguientes.  Veremos más tarde cuándo se debe especificar.
-
-Las últimas secciones tratan de forma exhaustiva las propiedades y sus
-valores, véase @ref{Tipos de propiedades}.  Pero en esta sección
-usaremos sólo unas cuantas propiedades y valores
-sencillos que sean fáciles de entender, para ilustrar el formato
-y la utilización de estas instrucciones.
+contexto requerido se encuentra implicado sin ambigüedad y es uno
+de los contextos del nivel más bajo, es decir: @code{Voice},
+@code{ChordNames} o @code{Lyrics}, y lo omitiremos en muchos de
+los ejemplos siguientes.  Veremos más tarde cuándo se debe
+especificar.
+
+Las últimas secciones tratan de forma exhaustiva las propiedades y
+sus valores, véase @ref{Tipos de propiedades}.  Pero en esta
+sección usaremos sólo unas cuantas propiedades y valores sencillos
+que sean fáciles de entender, para ilustrar el formato y la
+utilización de estas instrucciones.
 
 Las expresiones principales de LilyPond son elementos musicales
 como notas, duraciones y elementos de marcado.  Las expresiones
@@ -252,11 +279,10 @@ música de LilyPond, este manual utiliza siempre @samp{#} para la
 escritura, por coherencia.  Para ver más información acerca del
 modo de Scheme, consulte @rextend{Sintaxis del Scheme de LilyPond}.
 
-@code{\override} es la
-instrucción de uso más común dentro del trucaje, y durante la mayor
-parte del resto de este capítulo presentaremos ejemplos de cómo se
-usa.  A continuación hay un ejemplo sencillo para cambiar el color de
-una cabeza:
+@code{\override} es la instrucción de uso más común dentro del
+trucaje, y durante la mayor parte del resto de este capítulo
+presentaremos ejemplos de cómo se usa.  A continuación hay un
+ejemplo sencillo para cambiar el color de una cabeza:
 
 @cindex color, propiedad, ejemplo
 @cindex NoteHead, ejemplo de sobreescritura
@@ -281,12 +307,12 @@ una cabeza:
 @funindex \revert
 @funindex revert
 
-Una vez sobreescrita, la propiedad retiene su nuevo valor hasta que
-se sobreescribe de nuevo o se encuentra una instrucción
+Una vez sobreescrita, la propiedad retiene su nuevo valor hasta
+que se sobreescribe de nuevo o se encuentra una instrucción
 @code{\revert}.  La instrucción @code{\revert} tiene la siguiente
 sintaxis y ocasiona que el valor de la propiedad se devuelva a su
-valor predeterminado original; observe que no es a su valor previo si
-se han utilizado varias instrucciones @code{\override}.
+valor predeterminado original; observe que no es a su valor previo
+si se han utilizado varias instrucciones @code{\override}.
 
 @example
 \revert @var{Contexto}.@var{ObjetoDePresentación}.@var{propiedad-de-presentación}
@@ -295,8 +321,8 @@ se han utilizado varias instrucciones @code{\override}.
 Una vez más, igual que @var{Contexto} dentro de la instrucción
 @code{\override}, con frecuencia no es necesario especificar el
 @var{Contexto}.  Se omitirá en muchos de los ejemplos siguientes.
-Aquí devolvemos el color de la cabeza al valor predeterminado para las
-dos últimas notas:
+Aquí devolvemos el color de la cabeza al valor predeterminado para
+las dos últimas notas:
 
 @cindex color, propiedad, ejemplo
 @cindex NoteHead, ejemplo de sobreescritura
@@ -321,14 +347,14 @@ dos últimas notas:
 @funindex \once
 @funindex once
 
-Tanto la instrucción @code{\override} como @code{\set} se pueden
-preceder por @code{\once}.  Esto ocasiona que la siguiente instrucción
-@code{\override} o @code{\set} sea efectiva solamente durante el
-tiempo musical en curso y antes de que la propiedad vuelva a tener
-otra vez su valor anterior (que puede ser distinto de su valor
-predeterminado si aún se está aplicando otra instrucción
-@code{\override} de sobreescritura).  Utilizando el mismo ejemplo,
-podemos cambiar el color de una sola nota de la siguiente manera:
+@code{\override}, @code{\revert}, @code{\set} y @code{\unset} se
+pueden hacer preceder por @code{\once}.  Esto hace que la
+instrucción sea efectiva solamente durante el tiempo musical en
+curso y antes de que la propiedad vuelva a tener otra vez su valor
+anterior (que puede ser distinto de su valor predeterminado si aún
+se está aplicando otra instrucción @code{\override} de
+sobreescritura).  Utilizando el mismo ejemplo, podemos cambiar el
+color de una sola nota de la siguiente manera:
 
 @cindex color, propiedad, ejemplo
 @cindex NoteHead, ejemplo de sobreescritura
@@ -340,30 +366,27 @@ podemos cambiar el color de una sola nota de la siguiente manera:
   e4 f |
   \once \override NoteHead.color = #green
   g4 a
-  \revert NoteHead.color
+  \once \revert NoteHead.color
   b c |
+  \revert NoteHead.color
+  f2 c |
 }
 @end lilypond
 
 El prefijo @code{\once} también se puede usar delante de muchas
-instrucciones predefinidas para limitar su efecto a un solo momento
-musical:
-
-@lilypond[quote,verbatim,relative=1]
-c4 d
-\once \stemDown
-e4 f |
-g4 a
-\once \hideNotes
-b c |
-@end lilypond
-
-Sin embargo, las instrucciones predefinidas de la forma
-@code{\@dots{}Neutral},
-@code{\@dots{}Off} y @code{\un@dots{}} utilizan
-internamente @code{\revert} en vez de @code{\override}, por lo que
-añadir @code{\once} como prefijo aquí no tiene ningún efecto.
+instrucciones predefinidas para limitar su efecto a un solo
+momento musical:
 
+@lilypond[quote,verbatim]
+\relative {
+  c'4( d)
+  \once \slurDashed
+  e4( f) |
+  g4( a)
+  \once \hideNotes
+  b( c) |
+}
+@end lilypond
 
 @node La instrucción overrideProperty
 @unnumberedsubsubsec La instrucción @code{@bs{}overrideProperty}
@@ -376,8 +399,8 @@ añadir @code{\once} como prefijo aquí no tiene ningún efecto.
 
 Hay otra forma para la instrucción de sobreescritura,
 @code{\overrideProperty}, que ocasionalmente es necesaria.  La
-mencionamos aquí con un propósito de exhaustividad, pero para ver más
-detalles consulte @rextend{Trucos difíciles}.
+mencionamos aquí con un propósito de exhaustividad, pero para ver
+más detalles consulte @rextend{Trucos difíciles}.
 @c Maybe explain in a later iteration  -td
 
 
@@ -390,14 +413,13 @@ detalles consulte @rextend{Trucos difíciles}.
 @funindex \tweak
 @funindex tweak
 
-La última instrucción de trucaje que está disponible es @code{\tweak}.
-Se debe utilizar cuando varios objetos tienen lugar
-en el mismo momento musical pero solo queremos cambiar las propiedades
-de algunos de ellos, como una sola nota dentro de un acorde.
-El uso de
-@code{\override} para la sobreescritura afectaría a todas las notas
-del acorde, mientras que @code{\tweak} afecta solamente al siguiente
-elemento del flujo de entrada.
+La última instrucción de trucaje que está disponible es
+@code{\tweak}.  Se debe utilizar cuando varios objetos tienen
+lugar en el mismo momento musical pero solo queremos cambiar las
+propiedades de algunos de ellos, como una sola nota dentro de un
+acorde.  El uso de @code{\override} para la sobreescritura
+afectaría a todas las notas del acorde, mientras que @code{\tweak}
+afecta solamente al siguiente elemento del flujo de entrada.
 
 He aquí un ejemplo.  Suponga que queremos cambiar el tamaño de la
 cabeza de la nota intermedia (el Mi) en un acorde de Do mayor.  En
@@ -416,21 +438,21 @@ primer lugar, veamos lo que haría @code{\once \override}:
 @end lilypond
 
 Vemos que la sobreescritura con override afecta a @emph{todas} las
-cabezas de las notas del acorde.  Esto es así porque todas las notas
-de un acorde ocurren en el mismo @emph{momento musical}, y la acción
-de @code{\once} es aplicar la sobreescritura a todos los objetos de
-presentación del tipo especificado que ocurren en el mismo momento
-musical que la propia instrucción de sobreescritura @code{\override}.
-
-La instrucción @code{\tweak} opera de una forma distinta.  Actúa sobre
-el elemento inmediatamente siguiente dentro del flujo de entrada.
-En su forma más sencilla es efectivo solamente sobre objetos
-que se crean directamente
-a partir del elemento siguiente, en esencia las cabezas y las
-articulaciones.
-
-Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia
-se cambiaría de la siguiente forma:
+cabezas de las notas del acorde.  Esto es así porque todas las
+notas de un acorde ocurren en el mismo @emph{momento musical}, y
+la acción de @code{\once} es aplicar la sobreescritura a todos los
+objetos de presentación del tipo especificado que ocurren en el
+mismo momento musical que la propia instrucción de sobreescritura
+@code{\override}.
+
+La instrucción @code{\tweak} opera de una forma distinta.  Actúa
+sobre el elemento inmediatamente siguiente dentro del flujo de
+entrada.  En su forma más sencilla es efectivo solamente sobre
+objetos que se crean directamente a partir del elemento siguiente,
+en esencia las cabezas y las articulaciones.
+
+Así pues, volviendo a nuestro ejemplo, el tamaño de la nota
+intermedia se cambiaría de la siguiente forma:
 
 @cindex font-size, propiedad, ejemplo
 @cindex @code{\tweak}, ejemplo
@@ -443,12 +465,12 @@ se cambiaría de la siguiente forma:
 @end lilypond
 
 Observe que la sintaxis de @code{\tweak} no es igual que la de
-@code{\override}.  El contexto no se
-debe especificar; de hecho, generaría un error hacerlo.
-Tanto el contexto como el objeto de presentación
-están implícitos por el siguiente elemento del flujo de entrada.
-Observe también que no debe haber un signo igual. Así que la sintaxis
-de la instrucción @code{\tweak} en su forma sencilla es:
+@code{\override}.  El contexto no se debe especificar; de hecho,
+generaría un error hacerlo.  Tanto el contexto como el objeto de
+presentación están implícitos por el siguiente elemento del flujo
+de entrada.  Observe también que no debe haber un signo igual. Así
+que la sintaxis de la instrucción @code{\tweak} en su forma
+sencilla es:
 
 @example
 \tweak @var{propiedad-de-presentación} #@var{valor}
@@ -467,21 +489,22 @@ a'4^"Black"
 @end lilypond
 
 @noindent
-Observe que la instrucción @code{\tweak} debe venir precedida de una
-marca de articulación porque la propia expresión trucada debe aplicarse
-como una articulación.  En el caso de más de una sobreescritura de dirección
-(@code{^} o @code{_}), gana la sobreescritura situada más a la izquierda
-porque se aplica en último lugar.
+Observe que la instrucción @code{\tweak} debe venir precedida de
+una marca de articulación porque la propia expresión trucada debe
+aplicarse como una articulación.  En el caso de más de una
+sobreescritura de dirección (@code{^} o @code{_}), gana la
+sobreescritura situada más a la izquierda porque se aplica en
+último lugar.
 
 @cindex @code{\tweak}, Accidental
 @cindex @code{\tweak}, specific layout object
 
-Los objetos tales como plicas y alteraciones accidentales se crean más
-tarde, y no directamente a partir del evento que viene a continuación.
-Aún es posible utilizar @code{\tweak} sobre tales objetos creados
-indirectamente mediante el nombrado explícito del objeto de
-presentación, siempre y cuando LilyPond pueda rastrear su origen hasta
-el evento original:
+Los objetos tales como plicas y alteraciones accidentales se crean
+más tarde, y no directamente a partir del evento que viene a
+continuación.  Aún es posible utilizar @code{\tweak} sobre tales
+objetos creados indirectamente mediante el nombrado explícito del
+objeto de presentación, siempre y cuando LilyPond pueda rastrear
+su origen hasta el evento original:
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 <\tweak Accidental.color #red   cis''4
@@ -492,7 +515,8 @@ el evento original:
 Esta forma extensa de la instrucción @code{\tweak} se puede describir
 como
 @example
-\tweak @var{objeto-de-presentación}.@var{propiedad-de-presentación} @var{valor}
+\tweak @var{LayoutObject}.@var{layout-property} #@var{value}
+"ANTES" \tweak @var{objeto-de-presentación}.@var{propiedad-de-presentación} @var{valor}
 @end example
 
 @cindex grupos especiales anidados
@@ -505,16 +529,16 @@ como
 @funindex TupletBracket
 
 La instrucción @code{\tweak} también se debe usar para cambiar la
-apariencia de uno solo de un conjunto de grupos especiales anidados
-que comiencen en el mismo instante musical.  En el siguiente ejemplo,
-el corchete del tresillo largo y el primero de los tres corchetes
-cortos empiezan en el mismo momento musical, y por ello cualquier
-instrucción @code{\override} se aplicaría a los dos.  En el ejemplo se
-usa @code{\tweak} para distinguir entre ellos.  La primera instrucción
-@code{\tweak} especifica que el corchete del tresillo largo se debe
-colocar por encima de las notas y el segundo especifica que el número
-del tresillo se debe imprimir en rojo sobre el corchete del primer
-tresillo corto.
+apariencia de uno solo de un conjunto de grupos especiales
+anidados que comiencen en el mismo instante musical.  En el
+siguiente ejemplo, el corchete del tresillo largo y el primero de
+los tres corchetes cortos empiezan en el mismo momento musical, y
+por ello cualquier instrucción @code{\override} se aplicaría a los
+dos.  En el ejemplo se usa @code{\tweak} para distinguir entre
+ellos.  La primera instrucción @code{\tweak} especifica que el
+corchete del tresillo largo se debe colocar por encima de las
+notas y el segundo especifica que el número del tresillo se debe
+imprimir en rojo sobre el corchete del primer tresillo corto.
 
 @cindex @code{\tweak}, ejemplo
 @cindex direction, propiedad, ejemplo
@@ -532,9 +556,9 @@ tresillo corto.
 }
 @end lilypond
 
-Si los grupos anidados no comienzan en el mismo momento, su apariencia
-se puede modificar de la forma usual mediante instrucciones
-@code{\override}:
+Si los grupos anidados no comienzan en el mismo momento, su
+apariencia se puede modificar de la forma usual mediante
+instrucciones @code{\override}:
 
 @cindex text, propiedad, ejemplo
 @cindex tuplet-number, función, ejemplo
@@ -560,12 +584,71 @@ se puede modificar de la forma usual mediante instrucciones
 Referencia de la notación:
 @ruser{La instrucción tweak}.
 
+@node El prefijo single
+@unnumberedsubsubsec El prefijo @code{@bs{}single}
+@translationof The single prefix
+
+@funindex \single
+@cindex truco, generado a partir de una sobreescritura
+
+Supongamos que queremos enfatizar la cabeza de algunas notas
+trazándolas de color e incrementando su tamaño, y supongamos
+también hemos programado una función para hacer la tarea más
+cómoda:
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+  \override NoteHead.color = #red
+  \override NoteHead.font-size = 2
+}
+\relative {
+  c''4 a \once \emphNoteHead f d |
+}
+@end lilypond
+
+El prefijo @code{\once} funciona perfectamente para enfatizar
+notas únicas o acordes completos, pero no se puede usar para
+enfatizar una sola nota @emph{dentro} de un acorde.  Anteriormente
+vimos cómo se puede usar la instrucción @code{\tweak} para
+hacerlo, véase @ref{La instrucción tweak,,La instrucción
+@code{@bs{}tweak}}.  Pero @code{\tweak} no se puede usar con una
+función; ahí es donde entra la instrucción @code{\single}:
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+  \override NoteHead.color = #red
+  \override NoteHead.font-size = 2
+}
+\relative {
+   <c'' a \single \emphNoteHead f d>4
+}
+@end lilypond
+
+En resumen, @code{\single} convierte las sobreescrituras hechas
+con@code{\override} en trucos hechos con @code{\tweak} de tal
+manera que cuando hay varios objetos en el mismo instante de
+tiempo musical (como las notas de un acorde), @code{\single}
+afecta a una única nota, la que se genera por la expresión que
+sigue inmediatamente, a diferencia de @code{\once} que afecta a
+todos esos objetos.
+
+El uso de @code{\single} de esta forma con una función cualquiera
+que contenga solamente sobreescrituras, puede aplicarse a las
+notas individuales de un acorde.  Sin embargo, @code{\single} no
+convierte @code{\revert}, @code{\set} ni @code{\unset} en trucos
+de @code{\tweak}.
+
+@seealso
+Manual de aprendizaje:
+@ref{La instrucción tweak,,La instrucción @code{@bs{}tweak}},
+@ref{Uso de variables para los ajustes de disposición}.
+
 
 @node Manual de referencia de funcionamiento interno
 @section Manual de referencia de funcionamiento interno
 @translationof The Internals Reference manual
 
-@cindex Internals Reference
+@cindex Referencia de funcionamiento interno
 
 @menu
 * Propiedades de los objetos de presentación::
@@ -583,25 +666,27 @@ Referencia de la notación:
 @cindex presentación, propiedades de los objetos de
 @cindex Referencia de funcionamiento interno
 
-Suponga que tiene una partitura con una ligadura de expresión que para
-su gusto es demasiado fina y quiere trazarla un poco más gruesa. ¿Cómo
-debe proceder?  Ya sabe, por las afirmaciones anteriores acerca de la
-flexibilidad de LilyPond, que tal posibilidad existe, y seguramente
-piensa que una cierta instrucción de sobreescritura @code{\override}
-será necesaria.  Pero ¿existe una propiedad de grosor para las
-ligaduras? y, si la hay, ¿cómo se puede modificar?  Aquí es donde
-interviene el Manual de Funcionamiento Interno.  Contiene toda la
-información que puede necesitar para construir ésta y todas las demás
-instrucciones @code{\override}, de sobreescritura.
+Suponga que tiene una partitura con una ligadura de expresión que
+para su gusto es demasiado fina y quiere trazarla un poco más
+gruesa. ¿Cómo debe proceder?  Ya sabe, por las afirmaciones
+anteriores acerca de la flexibilidad de LilyPond, que tal
+posibilidad existe, y seguramente piensa que una cierta
+instrucción de sobreescritura @code{\override} será necesaria.
+Pero ¿existe una propiedad de grosor para las ligaduras? y, si la
+hay, ¿cómo se puede modificar?  Aquí es donde interviene el Manual
+de Funcionamiento Interno.  Contiene toda la información que puede
+necesitar para construir ésta y todas las demás instrucciones
+@code{\override}, de sobreescritura.
 
 Una advertencia antes de dirigir nuestra mirada a la referencia de
-funcionamiento interno.  Éste es un documento de @strong{referencia},
-lo que significa que hay pocas o ninguna explicación en él: su
-propósito es presentar la información de forma precisa y concisa.  Por
-tanto, podrá parecerle desalentador a primera vista.  ¡No se preocupe!
-La guía y las explicaciones que presentamos aquí le permitirán extraer
-la información de la referencia de funcionamiento interno por sí mismo
-con tan sólo algo de práctica.
+funcionamiento interno.  Éste es un documento de
+@strong{referencia}, lo que significa que hay pocas o ninguna
+explicación en él: su propósito es presentar la información de
+forma precisa y concisa.  Por tanto, podrá parecerle desalentador
+a primera vista.  ¡No se preocupe!  La guía y las explicaciones
+que presentamos aquí le permitirán extraer la información de la
+referencia de funcionamiento interno por sí mismo con tan sólo
+algo de práctica.
 
 @cindex sobreescritura, ejemplo de
 @cindex Referencia de Funcionamiento Interno, ejemplo de utilización
@@ -630,42 +715,44 @@ real:
 Suponga ahora que decidimos que nos gustan las ligaduras algo más
 gruesas.  ¿Es posible?  La ligadura es, ciertamente, un objeto de
 presentación, así que la cuestión es @q{¿Hay una propiedad
-perteneciente a las ligaduras de expresión que controle su grosor?}
-Para responder a esta pregunta debemos mirar el manual de Referencia
-de Funcionamiento Interno, abreviadamente RFI@footnote{@strong{IR}
-(Internals Reference) en inglés}.
-
-El RFI de la versión de LilyPond que está usando se puede encontrar en
-la página web de LilyPond en @uref{http://lilypond.org}.  Vaya a la
-página de la documentación y siga el enlace Manual de Referencia de
-Funcionamiento Interno (RFI).  Para nuestros propósitos pedagógicos
-sería mejor que utilizase la versión en HTML, no la @q{en una sola
-página} ni el PDF.  Para que los siguientes párrafos tengan algún
-sentido deberá consultarlo realmente al tiempo que lee.
+perteneciente a las ligaduras de expresión que controle su
+grosor?}  Para responder a esta pregunta debemos mirar el manual
+de Referencia de Funcionamiento Interno, abreviadamente
+RFI@footnote{@strong{IR} (Internals Reference) en inglés}.
+
+El RFI de la versión de LilyPond que está usando se puede
+encontrar en la página web de LilyPond en
+@uref{http://lilypond.org}.  Vaya a la página de la documentación
+y siga el enlace Manual de Referencia de Funcionamiento Interno
+(RFI).  Para nuestros propósitos pedagógicos sería mejor que
+utilizase la versión en HTML, no la @q{en una sola página} ni el
+PDF.  Para que los siguientes párrafos tengan algún sentido deberá
+consultarlo realmente al tiempo que lee.
 
 @c Link names in English as those pages are not yet translated. FV
 Bajo el encabezamiento @strong{Top} podrá ver cinco enlaces.
 Seleccione el enlace @emph{Backend}, que es donde se encuentra la
-información sobre los objetos de presentación.  Una vez allí, bajo el
-encabezamiento @strong{Backend}, siga el enlace @emph{All layout
-objects}.  La página que aparece relaciona todos los objetos de
-presentación que se usan en su versión de LilyPond, en orden
-alfabético.  Siga el enlace Slur (ligadura de expresión), y aparecerán
-relacionadas las propiedades de las ligaduras de expresión o Slurs.
+información sobre los objetos de presentación.  Una vez allí, bajo
+el encabezamiento @strong{Backend}, siga el enlace @emph{All
+layout objects}.  La página que aparece relaciona todos los
+objetos de presentación que se usan en su versión de LilyPond, en
+orden alfabético.  Siga el enlace Slur (ligadura de expresión), y
+aparecerán relacionadas las propiedades de las ligaduras de
+expresión o Slurs.
 
 Una forma alternativa de encontrar esta página es a partir de la
-Referencia de la Notación.  En una de las páginas que tratan de las
-ligaduras de expresión podrá encontrar un enlace al manual de
+Referencia de la Notación.  En una de las páginas que tratan de
+las ligaduras de expresión podrá encontrar un enlace al manual de
 referencia del funcionamiento interno.  Este enlace le llevará
-directamente a esta página, aunque si tiene una idea del nombre del
-objeto de presentación que pretende trucar, le resultará más fácil ir
-directamente al RFI y buscar allí.
+directamente a esta página, aunque si tiene una idea del nombre
+del objeto de presentación que pretende trucar, le resultará más
+fácil ir directamente al RFI y buscar allí.
 
-Esta página sobre las ligaduras de expresión dentro del manual RFI nos
-dice en primer lugar que los objetos Slur se crean por el grabador
-Slur_engraver.  A continuación relaciona los ajustes estándar.
-Navegue por ellos buscando una propiedad que pudiera controlar
-el grosor de las ligaduras, y encontrará
+Esta página sobre las ligaduras de expresión dentro del manual RFI
+nos dice en primer lugar que los objetos Slur se crean por el
+grabador Slur_engraver.  A continuación relaciona los ajustes
+estándar.  Navegue por ellos buscando una propiedad que pudiera
+controlar el grosor de las ligaduras, y encontrará
 
 @example
 @code{thickness} (number)
@@ -673,37 +760,37 @@ el grosor de las ligaduras, y encontrará
      Line thickness, generally measured in @code{line-thickness}
 @end example
 
-Esto promete ser una buena opción para cambiar el grosor.  Nos dice
-que el valor de @code{thickness} es un simple @emph{número}, que el
-valor predeterminado es 1.2, y que las unidades están dentro de otra
-propiedad llamada @code{line-thickness}.
+Esto promete ser una buena opción para cambiar el grosor.  Nos
+dice que el valor de @code{thickness} es un simple @emph{número},
+que el valor predeterminado es 1.2, y que las unidades están
+dentro de otra propiedad llamada @code{line-thickness}.
 
 Como dijimos con anterioridad, existen entre pocas y ninguna
 explicación en el RFI, pero ya tenemos información suficiente para
-probar a cambiar el grosor de la ligadura.  Vemos que el nombre del
-objeto de presentación es @code{Slur}, que el nombre de la propiedad
-que debemos cambiar es @code{thickness} y que el nuevo valor debe ser
-un número algo más grande que 1.2 si queremos hacer las ligaduras más
-gruesas.
+probar a cambiar el grosor de la ligadura.  Vemos que el nombre
+del objeto de presentación es @code{Slur}, que el nombre de la
+propiedad que debemos cambiar es @code{thickness} y que el nuevo
+valor debe ser un número algo más grande que 1.2 si queremos hacer
+las ligaduras más gruesas.
 
 Ahora podemos construir la instrucción de sobreescritura
-@code{\override} simplemente mediante la sustitución de los valores
-que hemos encontrado para los nombres, omitiendo el contexto.
-Usaremos un valor muy grande para el grosor al principio, para estar
-seguros de que la instrucción está funcionando.  Obtenemos lo
-siguiente:
+@code{\override} simplemente mediante la sustitución de los
+valores que hemos encontrado para los nombres, omitiendo el
+contexto.  Usaremos un valor muy grande para el grosor al
+principio, para estar seguros de que la instrucción está
+funcionando.  Obtenemos lo siguiente:
 
 @example
 \override Slur.thickness = #5.0
 @end example
 
-¡No olvide el @code{#'} antes del nombre de la propiedad y@tie{}@code{#}
-antes del valor nuevo!
+¡No olvide el @code{#'} antes del nombre de la propiedad
+y@tie{}@code{#} antes del valor nuevo!
 
 La pregunta final es @q{¿Dónde se debe colocar esta instrucción?}
 Aunque nos falta seguridad y estamos todavía aprendiendo, la mejor
-respuesta es: @q{Dentro de la música, antes de la primera ligadura y
-cerca de ella.}  Hagámoslo así:
+respuesta es: @q{Dentro de la música, antes de la primera ligadura
+cerca de ella.}  Hagámoslo así:
 
 @cindex Slur, ejemplo de sobreescritura
 @cindex thickness, propiedad, ejemplo
@@ -733,8 +820,8 @@ Así pues, ésta es la forma básica de construir instrucciones
 complicaciones más con las que nos encontraremos en secciones
 posteriores, pero ahora conoce todos los principios esenciales que
 necesita para hacerlo por sí mismo (aunque aún necesita algo de
-práctica).  La cual vendrá proporcionada por los ejemplos que vienen a
-continuación.
+práctica).  La cual vendrá proporcionada por los ejemplos que
+vienen a continuación.
 
 @subsubsubheading Búsqueda del contexto
 
@@ -743,21 +830,22 @@ continuación.
 
 Pero en primer lugar ¿qué habría pasado si hubiésemos tenido que
 especificar el contexto? ¿Cuál sería?  Podemos suponer que las
-ligaduras están en el contexto de Voz, por estar claramente asociados
-de manera estrecha con las líneas individuales de música, pero
-¿podemos estar seguros?  Para averiguarlo, vayamos de nuevo al inicio
-de la página del RFI que describe las ligaduras (Slur), donde dice
-@q{Slur objects are created by: Slur engraver} («Los objetos de
-ligadura de expresión se crean por: el grabador Slur»).  Así pues, las
-ligaduras de expresión se crean en cualquier contexto en el que se
-encuentre el grabador @code{Slur_engraver}.  Siga el enlace a la
-página del grabador @code{Slur_engraver}.  Al final del todo, dice que
-el grabador @code{Slur_engraver} es parte de siete contextos de voz,
-incluido el contexto de voz estándar, @code{Voice}, por lo que nuestra
-suposición era acertada.  Y a causa de que @code{Voice} es uno de los
-contextos de más bajo nivel que se encuentra implícito sin ambigüedad
-por el hecho de que estamos escribiendo notas, podemos omitirlo en
-este lugar concreto.
+ligaduras están en el contexto de Voz, por estar claramente
+asociados de manera estrecha con las líneas individuales de
+música, pero ¿podemos estar seguros?  Para averiguarlo, vayamos de
+nuevo al inicio de la página del RFI que describe las ligaduras
+(Slur), donde dice @q{Slur objects are created by: Slur engraver}
+(«Los objetos de ligadura de expresión se crean por: el grabador
+Slur»).  Así pues, las ligaduras de expresión se crean en
+cualquier contexto en el que se encuentre el grabador
+@code{Slur_engraver}.  Siga el enlace a la página del grabador
+@code{Slur_engraver}.  Al final del todo, dice que el grabador
+@code{Slur_engraver} es parte de siete contextos de voz, incluido
+el contexto de voz estándar, @code{Voice}, por lo que nuestra
+suposición era acertada.  Y a causa de que @code{Voice} es uno de
+los contextos de más bajo nivel que se encuentra implícito sin
+ambigüedad por el hecho de que estamos escribiendo notas, podemos
+omitirlo en este lugar concreto.
 
 @subsubsubheading Sobreescritura por una sola vez
 
@@ -770,14 +858,14 @@ este lugar concreto.
 Como puede ver, @emph{todas} las ligaduras son más gruesas en el
 último ejemplo.  Pero ¿y si quisiéramos que solamente la primera
 ligadura fuese más gruesa?  Esto se consigue con la instrucción o
-prefijo @code{\once}.  Colocado inmediatamente antes de la instrucción
-@code{\override} ocasiona que solamente cambie la ligadura que
-comienza en la nota @strong{inmediata siguiente}.  Si la nota
-inmediata siguiente no da inicio a una ligadura, la instrucción no
-tiene ningún efecto en absoluto: no se recuerda hasta que se
-encuentre alguna ligadura, sino que simplemente se ignora.  Así pues,
-la instrucción que lleva @code{\once} se debe reposicionar de la forma
-siguiente:
+prefijo @code{\once}.  Colocado inmediatamente antes de la
+instrucción @code{\override} ocasiona que solamente cambie la
+ligadura que comienza en la nota @strong{inmediata siguiente}.  Si
+la nota inmediata siguiente no da inicio a una ligadura, la
+instrucción no tiene ningún efecto en absoluto: no se recuerda
+hasta que se encuentre alguna ligadura, sino que simplemente se
+ignora.  Así pues, la instrucción que lleva @code{\once} se debe
+reposicionar de la forma siguiente:
 
 @cindex Slur, ejemplo de sobreescritura
 @cindex thickness, propiedad, ejemplo
@@ -801,10 +889,11 @@ siguiente:
 @end lilypond
 
 @noindent
-Hemos hecho que ahora solamente la primera ligadura sea más gruesa.
+Hemos hecho que ahora solamente la primera ligadura sea más
+gruesa.
 
-La instrucción o prefijo @code{\once} también se puede usar antes de
-la instrucción @code{\set}.
+La instrucción o prefijo @code{\once} también se puede usar antes
+de la instrucción @code{\set}.
 
 @subsubsubheading Recuperación del ajuste
 
@@ -814,11 +903,11 @@ la instrucción @code{\set}.
 @funindex \revert
 @funindex revert
 
-Finalmente ¿y si quisiéramos que solamente las dos primeras ligaduras
-fuesen más gruesas?  En fin; podríamos usar dos instrucciones, cada
-una de ellas precedida por el prefijo @code{\once}, situadas
-inmediatamente antes de cada una de las notas en que comienzan las
-ligaduras:
+Finalmente ¿y si quisiéramos que solamente las dos primeras
+ligaduras fuesen más gruesas?  En fin; podríamos usar dos
+instrucciones, cada una de ellas precedida por el prefijo
+@code{\once}, situadas inmediatamente antes de cada una de las
+notas en que comienzan las ligaduras:
 
 @cindex Slur, ejemplo de sobreescritura
 @cindex thickness, propiedad, ejemplo
@@ -844,10 +933,10 @@ ligaduras:
 @end lilypond
 
 @noindent
-o podríamos omitir la instrucción prefija @code{\once} y utilizar la
-instrucción @code{\revert} (restablecer) para devolver la propiedad
-del grosor, @code{thickness}, a su valor predeterminado después de la
-segunda ligadura:
+o podríamos omitir la instrucción prefija @code{\once} y utilizar
+la instrucción @code{\revert} (restablecer) para devolver la
+propiedad del grosor, @code{thickness}, a su valor predeterminado
+después de la segunda ligadura:
 
 @cindex Slur, ejemplo de sobreescritura
 @cindex thickness, propiedad, ejemplo
@@ -876,16 +965,16 @@ segunda ligadura:
 @noindent
 la instrucción @code{\revert} se puede utilizar para devolver
 cualquier propiedad que se haya cambiado con @code{\override} a su
-valor predeterminado.  Puede utilizar el método que mejor se adapte a
-aquello que quiere hacer.
+valor predeterminado.  Puede utilizar el método que mejor se
+adapte a aquello que quiere hacer.
 
-Así finaliza nuestra introducción al manual de RFI, y el método básico
-de trucaje.  A continuación, en las últimas secciones de este capítulo
-encontrará varios ejemplos, en parte para introducirle en algunas de
-las posibilidades adicionales del manual RFI, y en parte para
-proporcionarle más práctica en cómo extraer información de él.  Estos
-ejemplos irán conteniendo cada vez menos palabras de guía y
-explicación.
+Así finaliza nuestra introducción al manual de RFI, y el método
+básico de trucaje.  A continuación, en las últimas secciones de
+este capítulo encontrará varios ejemplos, en parte para
+introducirle en algunas de las posibilidades adicionales del
+manual RFI, y en parte para proporcionarle más práctica en cómo
+extraer información de él.  Estos ejemplos irán conteniendo cada
+vez menos palabras de guía y explicación.
 
 @node Propiedades de los interfaces
 @subsection Propiedades de los interfaces
@@ -895,31 +984,32 @@ explicación.
 @cindex propiedades de los interfaces
 @cindex interfaces, propiedades
 
-Suponga ahora que queremos imprimir la letra de la canción en cursiva.
-¿Qué forma de instrucción @code{\override} necesitamos para hacerlo?
-En primer lugar miramos en la página del RFI que relaciona todos los
-objetos, @q{All layout objects}, como antes, y buscamos un objeto que
-pueda controlar la letra de la canción.  Encontramos @code{LyricText},
-que parece adecuado.  Al seguir este enlace se presentan las
-propiedades ajustables para el texto de la letra.  Estos incluyen
-@code{font-series} y @code{font-size}, pero nada que pudiera aplicar
-una forma cursiva.  Esto es porque la propiedad de la forma es común a
-todos los objetos de fuente tipográfica, y por tanto, en vez de
-incluirlo en cada uno de los objetos de presentación, se agrupa junto
-con otras propiedades comunes similares y se deposita en un
-@strong{Interface}, el interface de las fuentes tipográficas
-@code{font-interface}.
-
-Por tanto, ahora necesitamos aprender cómo encontrar las propiedades
-de los interfaces, y descubrir qué objetos usan estas propiedades de
-interface.
-
-Mire de nuevo la página del RFI que describe a LyricText.  Al final de
-la página hay una lista de enlaces a los interfaces que LyricText
-contempla.  La lista tiene siete elementos, entre ellos
+Suponga ahora que queremos imprimir la letra de la canción en
+cursiva.  ¿Qué forma de instrucción @code{\override} necesitamos
+para hacerlo?  En primer lugar miramos en la página del RFI que
+relaciona todos los objetos, @q{All layout objects}, como antes, y
+buscamos un objeto que pueda controlar la letra de la canción.
+Encontramos @code{LyricText}, que parece adecuado.  Al seguir este
+enlace se presentan las propiedades ajustables para el texto de la
+letra.  Estos incluyen @code{font-series} y @code{font-size}, pero
+nada que pudiera aplicar una forma cursiva.  Esto es porque la
+propiedad de la forma es común a todos los objetos de fuente
+tipográfica, y por tanto, en vez de incluirlo en cada uno de los
+objetos de presentación, se agrupa junto con otras propiedades
+comunes similares y se deposita en un @strong{Interface}, el
+interface de las fuentes tipográficas @code{font-interface}.
+
+Por tanto, ahora necesitamos aprender cómo encontrar las
+propiedades de los interfaces, y descubrir qué objetos usan estas
+propiedades de interface.
+
+Mire de nuevo la página del RFI que describe a LyricText.  Al
+final de la página hay una lista de enlaces a los interfaces que
+LyricText contempla.  La lista tiene siete elementos, entre ellos
 @code{font-interface}.  Al seguir este enlace llegamos a las
-propiedades asociadas con este interface, que también son propiedades
-de todos los objetos que lo llevan, entre ellos LyricText.
+propiedades asociadas con este interface, que también son
+propiedades de todos los objetos que lo llevan, entre ellos
+LyricText.
 
 Ahora vemos todas las propiedades ajustables por el usuario que
 controlan las tipografías, entre ellas @code{font-shape(symbol)},
@@ -927,23 +1017,23 @@ donde @code{symbol} se puede establecer a @code{upright} (recta),
 @code{italics} (cursiva)o @code{caps} (mayúsculas pequeñas).
 
 Observará que @code{font-series} y @code{font-size} también se
-encuentran aquí relacionadas.  Esto inmediatamente hace que surja la
-pregunta: ¿Por qué están las propiedades comunes de tipografía
+encuentran aquí relacionadas.  Esto inmediatamente hace que surja
+la pregunta: ¿Por qué están las propiedades comunes de tipografía
 @code{font-series} y @code{font-size} relacionadas bajo
-@code{LyricText} así como bajo el interface @code{font-interface} pero
-@code{font-shape} no lo está?  La respuesta es que @code{font-series}
-y @code{font-size} se cambian a partir de sus valores predeterminados
-globales cuando se crea un objeto @code{LyricText}, pero
-@code{font-shape} no lo hace.  Entonces los elementos de la lista
-@code{LyricText} le dicen los valores para esas dos propiedades que
-son de aplicación para @code{LyricText}.  Otros objetos que contemplan
-@code{font-interface} establecerán dichas propiedades de forma
-diferente cuando se crean.
-
-Veamos si ahora podemos construir la instrucción @code{\override} para
-cambiar la letra a cursiva.  El objeto es @code{LyricText}, la
-propiedad es @code{font-shape} y el valor es @code{italic}.  Igual que
-antes, omitiremos el contexto.
+@code{LyricText} así como bajo el interface @code{font-interface}
+pero @code{font-shape} no lo está?  La respuesta es que
+@code{font-series} y @code{font-size} se cambian a partir de sus
+valores predeterminados globales cuando se crea un objeto
+@code{LyricText}, pero @code{font-shape} no lo hace.  Entonces los
+elementos de la lista @code{LyricText} le dicen los valores para
+esas dos propiedades que son de aplicación para @code{LyricText}.
+Otros objetos que contemplan @code{font-interface} establecerán
+dichas propiedades de forma diferente cuando se crean.
+
+Veamos si ahora podemos construir la instrucción @code{\override}
+para cambiar la letra a cursiva.  El objeto es @code{LyricText},
+la propiedad es @code{font-shape} y el valor es @code{italic}.
+Igual que antes, omitiremos el contexto.
 
 Como nota aparte, aunque es importante, observe que ciertas
 propiedades toman valores que son símbolos, como @code{italic}, y
@@ -954,16 +1044,16 @@ aparecerían como @code{"una cadena de texto"}; para ver más
 detalles sobre los símbolos y las cadenas, consulte
 @rextend{Tutorial de Scheme}.
 
-Así pues, la instrucción @code{\override} necesaria para imprimir la
-letra en cursiva, es:
+Así pues, la instrucción @code{\override} necesaria para imprimir
+la letra en cursiva, es:
 
 @example
 \override LyricText.font-shape = #'italic
 @end example
 
 @noindent
-Esto debe escribirse justo delante de la letra a la que debe afectar,
-de esta forma:
+Esto debe escribirse justo delante de la letra a la que debe
+afectar, de esta forma:
 
 @cindex font-shape, propiedad, ejemplo
 @cindex italic, ejemplo
@@ -1006,16 +1096,17 @@ Manual de Extensión:
 
 Hasta ahora hemos visto dos tipos de propiedad:: @code{número} y
 @code{símbolo}.  Para que sea válido, el valor que se da a una
-propiedad debe ser del tipo correcto y obedecer las reglas de dicho
-tipo.  El tipo de la propiedad se muestra siempre entre paréntesis
-después del nombre de la propiedad en el RFI.  He aquí una lista de
-los tipos que podrá necesitar, junto con las reglas de dicho tipo, y
-algunos ejemplos.  Debe escribir siempre un símbolo de almohadilla,
-@code{#}, por supuesto, delante de estos valores cuando se introducen
-en la instrucción @code{\override}, incluso si el propio valor ya
-comienza por@tie{}@code{#}.  Solamente ofrecemos aquí ejemplos para
-constantes; si quiere calcular un valor usando Scheme, consulte
-@rextend{Cálculos en Scheme}.
+propiedad debe ser del tipo correcto y obedecer las reglas de
+dicho tipo.  El tipo de la propiedad se muestra siempre entre
+paréntesis después del nombre de la propiedad en el RFI.  He aquí
+una lista de los tipos que podrá necesitar, junto con las reglas
+de dicho tipo, y algunos ejemplos.  Debe escribir siempre un
+símbolo de almohadilla, @code{#}, por supuesto, delante de estos
+valores cuando se introducen en la instrucción @code{\override},
+incluso si el propio valor ya comienza por@tie{}@code{#}.
+Solamente ofrecemos aquí ejemplos para constantes; si quiere
+calcular un valor usando Scheme, consulte @rextend{Cálculos en
+Scheme}.
 
 @multitable @columnfractions .2 .45 .35
 @headitem Tipo de propiedad
@@ -1091,39 +1182,40 @@ cambiar el aspecto de la música impresa.
 @subsection Visibilidad y color de los objetos
 @translationof Visibility and color of objects
 
-Dentro de un uso educativo de la música, podríamos desear imprimir una
-partitura con ciertos elementos omitidos como ejercicio para el
-alumno, a quien se le pide que los complete.  A la manera de ejemplo
-sencillo, supongamos que el ejercicio es escribir las líneas
-divisorias que faltan en un fragmento musical.  Pero las líneas
-divisorias normalmente se insertan automáticamente. ¿Cómo hacemos para
-que no se impriman?
-
-Antes de enredarnos con esto, recordemos que las propiedades de los
-objetos se agrupan en lo que hemos llamado @emph{interfaces} (véase
-@ref{Propiedades de los interfaces}).  Esto es simplemente agrupar
-las propiedades que se pueden usar juntas para trucar un objeto
-gráfico: si una de ellas se necesita para un objeto, también las
-otras.  Así, ciertos objetos usan las propiedades de algunos
-interfaces, otros usan las de otros interfaces.  Los interfaces que
-contienen las propiedades que un determinado grob necesita se
-encuentran relacionadas en el manual RFI al final de la página que
-describe dicho grob, y esas propiedades se pueden ver mirando dichos
-interfaces.
+Dentro de un uso educativo de la música, podríamos desear imprimir
+una partitura con ciertos elementos omitidos como ejercicio para
+el alumno, a quien se le pide que los complete.  A la manera de
+ejemplo sencillo, supongamos que el ejercicio es escribir las
+líneas divisorias que faltan en un fragmento musical.  Pero las
+líneas divisorias normalmente se insertan automáticamente. ¿Cómo
+hacemos para que no se impriman?
+
+Antes de enredarnos con esto, recordemos que las propiedades de
+los objetos se agrupan en lo que hemos llamado @emph{interfaces}
+(véase @ref{Propiedades de los interfaces}).  Esto es simplemente
+agrupar las propiedades que se pueden usar juntas para trucar un
+objeto gráfico: si una de ellas se necesita para un objeto,
+también las otras.  Así, ciertos objetos usan las propiedades de
+algunos interfaces, otros usan las de otros interfaces.  Los
+interfaces que contienen las propiedades que un determinado grob
+necesita se encuentran relacionadas en el manual RFI al final de
+la página que describe dicho grob, y esas propiedades se pueden
+ver mirando dichos interfaces.
 
 Hemos explicado cómo encontrar información sobre los grobs en
 @ref{Propiedades de los objetos de presentación}.  Usando el mismo
 enfoque, vamos al RFI para buscar el objeto de presentación que
-imprime las líneas divisorias.  A través del enlace @emph{Backend} y
-@emph{All layout objects} encontramos que hay un objeto de
+imprime las líneas divisorias.  A través del enlace @emph{Backend}
+@emph{All layout objects} encontramos que hay un objeto de
 presentación llamado @code{BarLine}.  Entre sus propiedades se
-encuentran dos que controlan la visibilidad: @code{break-visibility} y
-@code{stencil}.  Las líneas divisorias también contemplan un número de
-interfaces, entre ellos el @code{grob-interface}, donde podemos
-encontrar las propiedades @code{transparent} y @code{color}.  Todas
-ellas pueden afectar la visibilidad de las barras de compás (y, por
-supuesto, por extensión, también la de muchos otros objetos de
-presentación).  Vamos a considerar cada uno de ellos por orden.
+encuentran dos que controlan la visibilidad:
+@code{break-visibility} y @code{stencil}.  Las líneas divisorias
+también contemplan un número de interfaces, entre ellos el
+@code{grob-interface}, donde podemos encontrar las propiedades
+@code{transparent} y @code{color}.  Todas ellas pueden afectar la
+visibilidad de las barras de compás (y, por supuesto, por
+extensión, también la de muchos otros objetos de presentación).
+Vamos a considerar cada uno de ellos por orden.
 
 @menu
 * La propiedad stencil (sello)::
@@ -1138,11 +1230,12 @@ presentación).  Vamos a considerar cada uno de ellos por orden.
 
 @cindex stencil (sello), propiedad
 
-Esta propiedad controla la apariencia de las barras de compás mediante
-la especificación del símbolo (o «glifo») que se debe imprimir.  Igual
-que como otras muchas propiedades, se puede establecer de forma que no
-imprima nada ajustando su valor a @code{#f}.  Vamos a probarlo, como
-antes, omitiendo el Contexto implícito, @code{Voice}:
+Esta propiedad controla la apariencia de las barras de compás
+mediante la especificación del símbolo (o «glifo») que se debe
+imprimir.  Igual que como otras muchas propiedades, se puede
+establecer de forma que no imprima nada ajustando su valor a
+@code{#f}.  Vamos a probarlo, como antes, omitiendo el Contexto
+implícito, @code{Voice}:
 
 @cindex BarLine, ejemplo de sobreescritura
 @cindex stencil, propiedad, ejemplo
@@ -1157,20 +1250,21 @@ antes, omitiendo el Contexto implícito, @code{Voice}:
 }
 @end lilypond
 
-Las barras de compás todavía se imprimen.  ¿Qué es lo que está mal?
-Vuelva al RFI y mire de nuevo la página que ofrece las propiedades del
-objeto BarLine.  Al principio de la página dice @qq{Barline objects
-are created by: Bar_engraver} (los objetos Barline se crean por el
-grabador Bar_engraver).  Vaya a la página del grabador
-@code{Bar_engraver} siguiendo el enlace.  Al final da una lista de
-contextos en los que el grabador de líneas divisorias opera.  Todos
-ellos son del tipo @code{Staff}, y así la razón de que la instrucción
-@code{\override} no funcionara como esperábamos, es porque
-@code{Barline} no se encuentra en el contexto predeterminado
-@code{Voice}.  Si el contexto no se especifica correctamente, la
-instrucción simplemente no funciona.  No se produce ningún mensaje de
-error, y no se registra nada en el archivo log de registro.  Vamos a
-intentar corregirlo escribiendo el contexto correcto:
+Las barras de compás todavía se imprimen.  ¿Qué es lo que está
+mal?  Vuelva al RFI y mire de nuevo la página que ofrece las
+propiedades del objeto BarLine.  Al principio de la página dice
+@qq{Barline objects are created by: Bar_engraver} (los objetos
+Barline se crean por el grabador Bar_engraver).  Vaya a la página
+del grabador @code{Bar_engraver} siguiendo el enlace.  Al final da
+una lista de contextos en los que el grabador de líneas divisorias
+opera.  Todos ellos son del tipo @code{Staff}, y así la razón de
+que la instrucción @code{\override} no funcionara como
+esperábamos, es porque @code{Barline} no se encuentra en el
+contexto predeterminado @code{Voice}.  Si el contexto no se
+especifica correctamente, la instrucción simplemente no funciona.
+No se produce ningún mensaje de error, y no se registra nada en el
+archivo log de registro.  Vamos a intentar corregirlo escribiendo
+el contexto correcto:
 
 @cindex BarLine, ejemplo de sobreescritura
 @cindex stencil, propiedad, ejemplo
@@ -1203,11 +1297,12 @@ frecuente que existe una abreviatura para ella, llamada
 
 Sin embargo, observe que el establecimiento de la propiedad
 @code{stencil} al valor @code{#f} produce errores cuando las se
-requieren las dimensiones del objeto para un procesamiento correcto.
-Por ejemplo, se generan errores si la propiedad @code{stencil} del
-objeto @code{NoteHead} se establece al valor @code{#f}.  Si es el
-caso, podemos en vez de ello utilizar la función @code{point-stencil},
-que establece el sello a un objeto con tamaño nulo:
+requieren las dimensiones del objeto para un procesamiento
+correcto.  Por ejemplo, se generan errores si la propiedad
+@code{stencil} del objeto @code{NoteHead} se establece al valor
+@code{#f}.  Si es el caso, podemos en vez de ello utilizar la
+función @code{point-stencil}, que establece el sello a un objeto
+con tamaño nulo:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -1262,17 +1357,17 @@ Y podemos ver que esto también quita todas las líneas divisorias.
 
 En la relación de propiedades que se especifican en la página del
 @code{grob-interface} del RFI podemos ver que la propiedad
-@code{transparent} es un valor booleano.  Esto se debe establecer a
-@code{#t} para hacer que el grob sea transparente.  En el ejemplo
-siguiente vamos a hacer que la indicación de compás, y no las líneas
-divisorias, sea transparente.  Para hacerlo tenemos que buscar el
-nombre del grob de la indicación de compás.  Volviendo a la página
-@q{All layout objects} del RFI, buscamos las propiedades del objeto de
-presentación @code{TimeSignature}.  Se produce por parte del grabador
-@code{Time_signature_engraver} que como puede comprobar vive dentro
-del contexto de @code{Staff} y también contempla el interface
-@code{grob-interface}.  Así pues, la instrucción que hace transparente
-a la indicación de compás es:
+@code{transparent} es un valor booleano.  Esto se debe establecer
+a @code{#t} para hacer que el grob sea transparente.  En el
+ejemplo siguiente vamos a hacer que la indicación de compás, y no
+las líneas divisorias, sea transparente.  Para hacerlo tenemos que
+buscar el nombre del grob de la indicación de compás.  Volviendo a
+la página @q{All layout objects} del RFI, buscamos las propiedades
+del objeto de presentación @code{TimeSignature}.  Se produce por
+parte del grabador @code{Time_signature_engraver} que como puede
+comprobar vive dentro del contexto de @code{Staff} y también
+contempla el interface @code{grob-interface}.  Así pues, la
+instrucción que hace transparente a la indicación de compás es:
 
 @cindex TimeSignature, ejemplo de sobreescritura
 @cindex transparent, propiedad, ejemplo
@@ -1339,23 +1434,24 @@ lo hacemos invisible.
 @cindex color, propiedad
 
 Para finalizar, intentemos hacer invisibles las barras de compás
-pintándolas de color blanco (hay un problema relacionado, que consiste
-en que la línea divisoria blanca puede tapar o no tapar las líneas del
-pentagrama a las que cruza.  Podrá observar en algunos de los ejemplos
-que aparecen a continuación, que esto sucede de forma impredecible.
-Los detalles sobre por qué esto ocurre así, y cómo controlarlo, se
-estudian en @ruser{Pintar los objetos de blanco}; de momento estamos
-estudiando el color, por lo que le rogamos que acepte esta limitación
-por ahora).
+pintándolas de color blanco (hay un problema relacionado, que
+consiste en que la línea divisoria blanca puede tapar o no tapar
+las líneas del pentagrama a las que cruza.  Podrá observar en
+algunos de los ejemplos que aparecen a continuación, que esto
+sucede de forma impredecible.  Los detalles sobre por qué esto
+ocurre así, y cómo controlarlo, se estudian en @ruser{Pintar los
+objetos de blanco}; de momento estamos estudiando el color, por lo
+que le rogamos que acepte esta limitación por ahora).
 
 El interface @code{grob-interface} especifica que la propiedad del
-color es una lista, pero no hay ninguna explicación sobre lo que debe
-ir en esa lista.  La lista que requiere es realmente una lista de
-valores en unidades internas, pero para evitar tener que saber cuáles
-son, se ofrecen varias vías para la especificación de los colores.  La
-primera forma es utilizar uno de los colores @q{normales} que están
-relacionados en la primera tabla de la @ruser{Lista de colores}.  Para
-poner las líneas divisorias de color blanco, escribimos:
+color es una lista, pero no hay ninguna explicación sobre lo que
+debe ir en esa lista.  La lista que requiere es realmente una
+lista de valores en unidades internas, pero para evitar tener que
+saber cuáles son, se ofrecen varias vías para la especificación de
+los colores.  La primera forma es utilizar uno de los colores
+@q{normales} que están relacionados en la primera tabla de la
+@ruser{Lista de colores}.  Para poner las líneas divisorias de
+color blanco, escribimos:
 
 @cindex BarLine, ejemplo de sobreescritura
 @cindex color, propiedad, ejemplo
@@ -1371,13 +1467,14 @@ poner las líneas divisorias de color blanco, escribimos:
 @end lilypond
 
 @noindent
-y de nuevo podemos comprobar que las barras de compás no son visibles.
-Observe que @emph{white} no viene precedido de un apóstrofo: no es un
-símbolo, sino una @emph{variable}.  Cuando se evalúa, proporciona la
-lista de valores internos que se requieren para establecer el color a
-blanco.  Los otros colores de la lista normal también son variables.
-Para convencerse de que esto funciona, quizá quiera cambiar el color a
-una de las otras variables de la lista.
+y de nuevo podemos comprobar que las barras de compás no son
+visibles.  Observe que @emph{white} no viene precedido de un
+apóstrofo: no es un símbolo, sino una @emph{variable}.  Cuando se
+evalúa, proporciona la lista de valores internos que se requieren
+para establecer el color a blanco.  Los otros colores de la lista
+normal también son variables.  Para convencerse de que esto
+funciona, quizá quiera cambiar el color a una de las otras
+variables de la lista.
 
 @cindex colores de X11
 @cindex X11, colores de
@@ -1417,11 +1514,11 @@ paréntesis.
 @funindex rgb-color
 
 Aún existe otra función, que convierte valores RGB en colores
-internos: la función @code{rgb-color}.  Toma tres argumentos que dan
-las intensidades de rojo, verde y azul.  Cada uno de ellos puede tomar
-valores entre 0 y 1.  Por lo tanto, para establecer el color a rojo el
-valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser
-@code{(rgb-color 1 1 1)}:
+internos: la función @code{rgb-color}.  Toma tres argumentos que
+dan las intensidades de rojo, verde y azul.  Cada uno de ellos
+puede tomar valores entre 0 y 1.  Por lo tanto, para establecer el
+color a rojo el valor debe ser @code{(rgb-color 1 0 0)} y para
+blanco debe ser @code{(rgb-color 1 1 1)}:
 
 @cindex BarLine, ejemplo de sobreescritura
 @cindex color, propiedad, ejemplo
@@ -1438,9 +1535,9 @@ valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser
 
 Finalmente, existe también una escala de grises como parte del
 conjunto de colores de X11.  Varían desde el negro, @code{'grey0},
-hasta el blanco, @code{'grey100}, en pasos de 1.  Vamos a ilustrar esto
-estableciendo todos los objetos de presentación de nuestro ejemplo a
-varias gradaciones de gris:
+hasta el blanco, @code{'grey100}, en pasos de 1.  Vamos a ilustrar
+esto estableciendo todos los objetos de presentación de nuestro
+ejemplo a varias gradaciones de gris:
 
 @cindex StaffSymbol, ejemplo de sobreescritura
 @cindex TimeSignature, ejemplo de sobreescritura
@@ -1468,13 +1565,13 @@ varias gradaciones de gris:
 
 @noindent
 Observe los contextos asociados con cada uno de los objetos de
-presentación.  Es importante que estén correctamente escritos, o las
-instrucciones ¡no funcionarán!  Recuerde que el contexto es aquel en
-que se encuentra el grabador correspondiente.  El contesto
-predeterminado para los grabadores puede encontrarse empezando por el
-objeto de presentación, de ahí al grabador que lo produce, y en la
-página del grabador del RFI aparece en qué contexto se puede encontrar
-normalmente el grabador.
+presentación.  Es importante que estén correctamente escritos, o
+las instrucciones ¡no funcionarán!  Recuerde que el contexto es
+aquel en que se encuentra el grabador correspondiente.  El
+contesto predeterminado para los grabadores puede encontrarse
+empezando por el objeto de presentación, de ahí al grabador que lo
+produce, y en la página del grabador del RFI aparece en qué
+contexto se puede encontrar normalmente el grabador.
 
 
 @node Tamaño de los objetos
@@ -1509,10 +1606,11 @@ introducir un pentagrama temporal, como en un @rglos{ossia}.
 }
 @end lilypond
 
-Los fragmentos de Ossia se escriben normalmente sin clave ni compás, y
-por lo normal se imprimen más pequeños que el pentagrama principal.
-Ya sabemos cómo quitar la clave y el compás: simplemente establecemos
-el sello de cada uno de ellos a @code{#f}, como sigue:
+Los fragmentos de Ossia se escriben normalmente sin clave ni
+compás, y por lo normal se imprimen más pequeños que el pentagrama
+principal.  Ya sabemos cómo quitar la clave y el compás:
+simplemente establecemos el sello de cada uno de ellos a
+@code{#f}, como sigue:
 
 @cindex alignAboveContext, propiedad, ejemplo
 @cindex @code{\with}, ejemplo
@@ -1542,38 +1640,38 @@ el sello de cada uno de ellos a @code{#f}, como sigue:
 @end lilypond
 
 @noindent
-donde el par de llaves adicional después de la cláusula @code{\with}
-es necesario para asegurar que la sobreescritura encerrada y la música
-se aplican al pentagrama de ossia.
-
-Pero ¿cuál es la diferencia entre modificar el contexto de pentagrama
-usando @code{\with} y modificar los sellos de clave y de compás con
-\override, o en este caso
-@code{\omit}?  La diferencia principal es que los cambios que se realizan
-en una cláusula @code{\with} se hacen en el momento en que se crea el
-contexto, y permanecen activos como valores @strong{predeterminados}
-durante toda la duración de dicho contexto, mientras que las
-instrucciones @code{\set} o @code{\override} incluidas dentro de la
-música son dinámicas: hacen cambios sincronizados con un punto
-concreto de la música.  Si los cambios se deshacen o se devuelven
-mediante @code{\unset} o @code{\revert} volverán a su valor
-predeterminado que será el establecido en la cláusula @code{\with}, o
-si no se ha establecido ninguno en este lugar, los valores
-predeterminados normales.
-
-Ciertas propiedades de contexto se pueden modificar solamente dentro
-de cláusulas @code{\with}.  Son aquellas propiedades que no se pueden
-cambiar después de que el contexto se ha creado.
-@code{alignAboveContext} y su compañero, @code{alignBelowContext}, son
-dos de tales propiedades: una vez que el pentagrama se ha creado, su
-alineación está decidida y no tendría sentido intentar cambiarla más
-tarde.
+donde el par de llaves adicional después de la cláusula
+@code{\with} es necesario para asegurar que la sobreescritura
+encerrada y la música se aplican al pentagrama de ossia.
+
+Pero ¿cuál es la diferencia entre modificar el contexto de
+pentagrama usando @code{\with} y modificar los sellos de clave y
+de compás con \override, o en este caso @code{\omit}?  La
+diferencia principal es que los cambios que se realizan en una
+cláusula @code{\with} se hacen en el momento en que se crea el
+contexto, y permanecen activos como valores
+@strong{predeterminados} durante toda la duración de dicho
+contexto, mientras que las instrucciones @code{\set} o
+@code{\override} incluidas dentro de la música son dinámicas:
+hacen cambios sincronizados con un punto concreto de la música.
+Si los cambios se deshacen o se devuelven mediante @code{\unset} o
+@code{\revert} volverán a su valor predeterminado que será el
+establecido en la cláusula @code{\with}, o si no se ha establecido
+ninguno en este lugar, los valores predeterminados normales.
+
+Ciertas propiedades de contexto se pueden modificar solamente
+dentro de cláusulas @code{\with}.  Son aquellas propiedades que no
+se pueden cambiar después de que el contexto se ha creado.
+@code{alignAboveContext} y su compañero, @code{alignBelowContext},
+son dos de tales propiedades: una vez que el pentagrama se ha
+creado, su alineación está decidida y no tendría sentido intentar
+cambiarla más tarde.
 
 Los valores predeterminados de las propiedades de los objetos de
 presentación también se pueden establecer dentro de cláusulas
 @code{\with}.  Simplemente utilice la instrucción @code{\override}
-normal dejando aparte el nombre del contexto, ya que está definido sin
-ambigüedad como el contexto que la cláusula @code{\with} está
+normal dejando aparte el nombre del contexto, ya que está definido
+sin ambigüedad como el contexto que la cláusula @code{\with} está
 modificando.  De hecho, se producirá un error si se especifica un
 contexto en este lugar.
 
@@ -1631,24 +1729,24 @@ resultado siguiente:
 }
 @end lilypond
 
-Finalmente llegamos a la forma de cambiar el tamaño de los objetos de
-presentación.
-
-Ciertos objetos de presentación se crean como glifos sacados de una
-fuente tipográfica.  Entre ellos se encuentran las cabezas,
-alteraciones, elementos de marcado, claves, indicaciones de compás,
-indicaciones dinámicas y la letra de las canciones.  Su tamaño se
-cambia mediante la modificación de la propiedad @code{font-size}, como
-veremos en breve.  Otros objetos de presentación como ligaduras de
-unión y de expresión (en general, objetos de extensión) se trazan
-individualmente, por lo que no hay un tamaño de tipografía
-@code{font-size} asociado a ellos.  Estos objetos generalmente derivan
-su tamaño de los objetos a los que están adosados, y por ello
-normalmente no hay necesidad de cambiarles el tamaño manualmente.  Aún
-otras propiedades como la longitud de las plicas y las barras de
-compás, el grosor de las barras de corchea y otras líneas, y la
-separación de las líneas del pentagrama se deben modificar de otras
-formas especiales.
+Finalmente llegamos a la forma de cambiar el tamaño de los objetos
+de presentación.
+
+Ciertos objetos de presentación se crean como glifos sacados de
+una fuente tipográfica.  Entre ellos se encuentran las cabezas,
+alteraciones, elementos de marcado, claves, indicaciones de
+compás, indicaciones dinámicas y la letra de las canciones.  Su
+tamaño se cambia mediante la modificación de la propiedad
+@code{font-size}, como veremos en breve.  Otros objetos de
+presentación como ligaduras de unión y de expresión (en general,
+objetos de extensión) se trazan individualmente, por lo que no hay
+un tamaño de tipografía @code{font-size} asociado a ellos.  Estos
+objetos generalmente derivan su tamaño de los objetos a los que
+están adosados, y por ello normalmente no hay necesidad de
+cambiarles el tamaño manualmente.  Aún otras propiedades como la
+longitud de las plicas y las barras de compás, el grosor de las
+barras de corchea y otras líneas, y la separación de las líneas
+del pentagrama se deben modificar de otras formas especiales.
 
 Volviendo al ejemplo del ossia, vamos a cambiar en primer lugar el
 tamaño de la tipografía.  Podemos hacerlo de dos formas.  Podemos
@@ -1659,18 +1757,18 @@ objeto como las cabezas (@code{NoteHead}s) con instrucciones como
 \override NoteHead.font-size = #-2
 @end example
 
-o podemos cambiar el tamaño de todas las tipografías estableciendo una
-propiedad especial, @code{fontSize}, utilizando @code{\set}, o
-mediante su inclusión dentro de una cláusula @code{\with} (pero sin el
-@code{\set}).
+o podemos cambiar el tamaño de todas las tipografías estableciendo
+una propiedad especial, @code{fontSize}, utilizando @code{\set}, o
+mediante su inclusión dentro de una cláusula @code{\with} (pero
+sin el @code{\set}).
 
 @example
 \set fontSize = #-2
 @end example
 
 Los dos enunciados producirían una reducción del tamaño de la
-tipografía en dos pasos a partir de su valor previo, donde cada paso
-reduce o aumenta el tamaño aproximadamente en un 12%.
+tipografía en dos pasos a partir de su valor previo, donde cada
+paso reduce o aumenta el tamaño aproximadamente en un 12%.
 
 Vamos a probarlo en nuestro ejemplo del ossia:
 
@@ -1701,11 +1799,12 @@ Vamos a probarlo en nuestro ejemplo del ossia:
 }
 @end lilypond
 
-Aún no está demasiado bien.  Las cabezas y los corchetes de las notas
-son más pequeños, pero las plicas son demasiado largas en proporción,
-y las líneas del pentagrama están demasiado separadas entre sí.  Se
-debe reducir su escala en proporción a la reducción de la tipografía.
-El siguiente apartado trata sobre cómo se hace esto.
+Aún no está demasiado bien.  Las cabezas y los corchetes de las
+notas son más pequeños, pero las plicas son demasiado largas en
+proporción, y las líneas del pentagrama están demasiado separadas
+entre sí.  Se debe reducir su escala en proporción a la reducción
+de la tipografía.  El siguiente apartado trata sobre cómo se hace
+esto.
 
 @node Longitud y grosor de los objetos
 @subsection Longitud y grosor de los objetos
@@ -1721,23 +1820,24 @@ El siguiente apartado trata sobre cómo se hace esto.
 
 Las distancias y longitudes en LilyPond se miden generalmente en
 espacios de pentagrama, la distancia entre líneas adyacentes de la
-pauta (o de manera ocasional medios espacios), mientras que la mayoría
-de las propiedades de @code{thickness} (grosor) se miden en unidades
-de una propiedad interna llamada @code{line-thickness.}  Por ejemplo,
-de forma predeterminada, a las líneas de los reguladores se les da un
-grosor de 1 unidad de @code{line-thickness}, mientras que el
-@code{thickness} de una plica es 1.3.  Observe sin embargo que ciertas
-propiedades de grosor son diferentes; por ejemplo, el grosor de las
-barras de corchea se controla por medio del valor de
-@code{beam-thickness}, que se mide en espacios de pentagrama.
-
-Entonces ¿cómo se tienen que escalar las longitudes en proporción al
-tamaño de la tipografía?  Se puede hacer con la ayuda de una función
-especial que se llama @code{magstep}, pensada especialmente para este
-propósito.  Toma un argumento, el cambio de tamaño de la tipografía
-(#-2 en nuestro ejemplo) y devuelve un factor de escalado adecuado
-para reducir otros objetos en la misma proporción.  Se usa de la
-siguiente forma:
+pauta (o de manera ocasional medios espacios), mientras que la
+mayoría de las propiedades de @code{thickness} (grosor) se miden
+en unidades de una propiedad interna llamada
+@code{line-thickness.}  Por ejemplo, de forma predeterminada, a
+las líneas de los reguladores se les da un grosor de 1 unidad de
+@code{line-thickness}, mientras que el @code{thickness} de una
+plica es 1.3.  Observe sin embargo que ciertas propiedades de
+grosor son diferentes; por ejemplo, el grosor de las barras de
+corchea se controla por medio del valor de @code{beam-thickness},
+que se mide en espacios de pentagrama.
+
+Entonces ¿cómo se tienen que escalar las longitudes en proporción
+al tamaño de la tipografía?  Se puede hacer con la ayuda de una
+función especial que se llama @code{magstep}, pensada
+especialmente para este propósito.  Toma un argumento, el cambio
+de tamaño de la tipografía (#-2 en nuestro ejemplo) y devuelve un
+factor de escalado adecuado para reducir otros objetos en la misma
+proporción.  Se usa de la siguiente forma:
 
 @cindex alignAboveContext, propiedad, ejemplo
 @cindex @code{\with}, ejemplo
@@ -1773,16 +1873,16 @@ siguiente forma:
 
 @noindent
 Puesto que la longitud de las plicas y muchas otras propiedades
-relacionadas con la longitudes calculan siempre con relación al valor
-de la propiedad @code{staff-space}, su longitud también ve reducida su
-escala automáticamente.  Observe que esto afecta solamente a la escala
-vertical del ossia: la escala horizontal se determina por medio de la
-disposición de la música principal con el objeto de mantenerse en
-sincronía con ella, de forma que no resulte afectada por ninguno de
-estos cambios de tamaño.  Por supuesto, si la escala de toda la música
-principal se cambiase de esta forma, entonces el espaciado horizontal
-se vería afectado.  Trataremos de esto más tarde en la sección sobre
-la disposición.
+relacionadas con la longitudes calculan siempre con relación al
+valor de la propiedad @code{staff-space}, su longitud también ve
+reducida su escala automáticamente.  Observe que esto afecta
+solamente a la escala vertical del ossia: la escala horizontal se
+determina por medio de la disposición de la música principal con
+el objeto de mantenerse en sincronía con ella, de forma que no
+resulte afectada por ninguno de estos cambios de tamaño.  Por
+supuesto, si la escala de toda la música principal se cambiase de
+esta forma, entonces el espaciado horizontal se vería afectado.
+Trataremos de esto más tarde en la sección sobre la disposición.
 
 Esto, en fin, completa la creación de un ossia.  Los tamaños y
 longitudes del resto de los objetos se pueden modificar de manera
@@ -1790,14 +1890,15 @@ análoga.
 
 Para cambios de escala pequeños, como en el ejemplo de arriba, el
 grosor de las diversas líneas dibujadas como divisorias, barras de
-corchea, reguladores, ligaduras, etc, no requieren normalmente ningún
-ajuste global.  Si el grosor de cualquier objeto de presentación en
-particular necesita ajustarse, se puede hacer mejor mediante la
-sobreescritura de su propiedad @code{thickness}.  Anteriormente
-mostramos un ejemplo de cambio de grosor en las ligaduras, en
-@ref{Propiedades de los objetos de presentación}.  El grosor de todos los objetos
-trazados (es decir, aquellos que no se producen a partir de una
-tipografía) se pueden cambiar de la misma forma.
+corchea, reguladores, ligaduras, etc, no requieren normalmente
+ningún ajuste global.  Si el grosor de cualquier objeto de
+presentación en particular necesita ajustarse, se puede hacer
+mejor mediante la sobreescritura de su propiedad @code{thickness}.
+Anteriormente mostramos un ejemplo de cambio de grosor en las
+ligaduras, en @ref{Propiedades de los objetos de presentación}.
+El grosor de todos los objetos trazados (es decir, aquellos que no
+se producen a partir de una tipografía) se pueden cambiar de la
+misma forma.
 
 
 @node Colocación de los objetos
@@ -1820,46 +1921,47 @@ tipografía) se pueden cambiar de la misma forma.
 @cindex objetos dentro del pentagrama
 @cindex objetos fuera del pentagrama
 
-Hay ciertos objetos en notación musical que pertenecen al pentagrama y
-otros cuyo lugar se sitúa fuera del pentagrama.  Reciben el nombre de
-objetos dentro-del-pentagrama y objetos fuera-del-pentagrama,
-respectivamente.
+Hay ciertos objetos en notación musical que pertenecen al
+pentagrama y otros cuyo lugar se sitúa fuera del pentagrama.
+Reciben el nombre de objetos dentro-del-pentagrama y objetos
+fuera-del-pentagrama, respectivamente.
 
 Los objetos dentro-del-pentagrama son los que se sitúan sobre la
-pauta: cabezas, plicas, alteraciones, etc.  Sus posiciones normalmente
-se fijan por la propia música; se posicionan verticalmente sobre
-líneas específicas del pentagrama o están unidos a otros objetos
-posicionados de esta forma.  Las colisiones entre cabezas, plicas y
-alteraciones en acordes de notas muy juntas, normalmente se evitan
-automáticamente.  Hay instrucciones y sobreescrituras que pueden
-modificar este comportamiento automático, como veremos en breve.
-
-Entre los objetos que pertenecen al exterior de la pauta se encuentran
-cosas como las marcas de ensayo, las marcas de texto y las de
-dinámica.  La regla de LilyPond para la colocación vertical de los
-objetos fuera-de-pentagrama es colocarlos tan cerca del pentagrama
-como sea posible, pero no tan cerca como para que puedan chocar con
-algún otro objeto.  LilyPond utiliza la propiedad
-@code{outside-staff-priority} para determinar el orden en que se deben
-situar los objetos, como veremos ahora.
+pauta: cabezas, plicas, alteraciones, etc.  Sus posiciones
+normalmente se fijan por la propia música; se posicionan
+verticalmente sobre líneas específicas del pentagrama o están
+unidos a otros objetos posicionados de esta forma.  Las colisiones
+entre cabezas, plicas y alteraciones en acordes de notas muy
+juntas, normalmente se evitan automáticamente.  Hay instrucciones
+y sobreescrituras que pueden modificar este comportamiento
+automático, como veremos en breve.
+
+Entre los objetos que pertenecen al exterior de la pauta se
+encuentran cosas como las marcas de ensayo, las marcas de texto y
+las de dinámica.  La regla de LilyPond para la colocación vertical
+de los objetos fuera-de-pentagrama es colocarlos tan cerca del
+pentagrama como sea posible, pero no tan cerca como para que
+puedan chocar con algún otro objeto.  LilyPond utiliza la
+propiedad @code{outside-staff-priority} para determinar el orden
+en que se deben situar los objetos, como veremos ahora.
 
 En primer lugar, LilyPond sitúa todos los objetos
 dentro-del-pentagrama.  Después ordena los objetos
 fuera-del-pentagrama de acuerdo con su prioridad
-@code{outside-staff-priority}.  Los objetos fuera-del-pentagrama se
-toman de uno en uno, comenzando por el que tiene la prioridad
-@code{outside-staff-priority} más baja, y se sitúan de forma que no
-colisionen con ningún objeto que se haya colocado ya. Esto es, si dos
-grobs fuera-del-pentagrama compiten por el mismo espacio, el que tiene
-la prioridad @code{outside-staff-priority} más baja se colocará más
-cerca del pentagrama.  Si dos objetos tienen la misma
-@code{outside-staff-priority}, el que se ha encontrado primero se
-situará más cerca de la pauta.
-
-En el siguiente ejemplo, todos los textos de marcado tienen la misma
-prioridad (pues no se ha establecido explícitamente).  Observe que
-@q{Text3} se posiciona de nuevo automáticamente cerca del pentagrama,
-acomodado por debajo de @q{Text2}.
+@code{outside-staff-priority}.  Los objetos fuera-del-pentagrama
+se toman de uno en uno, comenzando por el que tiene la prioridad
+@code{outside-staff-priority} más baja, y se sitúan de forma que
+no colisionen con ningún objeto que se haya colocado ya. Esto es,
+si dos grobs fuera-del-pentagrama compiten por el mismo espacio,
+el que tiene la prioridad @code{outside-staff-priority} más baja
+se colocará más cerca del pentagrama.  Si dos objetos tienen la
+misma @code{outside-staff-priority}, el que se ha encontrado
+primero se situará más cerca de la pauta.
+
+En el siguiente ejemplo, todos los textos de marcado tienen la
+misma prioridad (pues no se ha establecido explícitamente).
+Observe que @q{Text3} se posiciona de nuevo automáticamente cerca
+del pentagrama, acomodado por debajo de @q{Text2}.
 
 @cindex markup, ejemplo
 
@@ -1870,13 +1972,13 @@ c''2^"Text3"
 c''2^"Text4" |
 @end lilypond
 
-Los pentagramas también se posicionan, de forma predeterminada, tan
-cerca unos de otros como sea posible (sujeto a una separación mínima).
-Si las notas se proyectan muy lejos en dirección a un pentagrama
-adyacente, forzarán a alejarse a los pentagramas sólo si en caso
-contrario fuese a ocurrir un solapamiento de la notación.  El ejemplo
-siguiente muestra esta acomodación @q{nestling} de las notas sobre
-pentagramas adyacentes:
+Los pentagramas también se posicionan, de forma predeterminada,
+tan cerca unos de otros como sea posible (sujeto a una separación
+mínima).  Si las notas se proyectan muy lejos en dirección a un
+pentagrama adyacente, forzarán a alejarse a los pentagramas sólo
+si en caso contrario fuese a ocurrir un solapamiento de la
+notación.  El ejemplo siguiente muestra esta acomodación
+@q{nestling} de las notas sobre pentagramas adyacentes:
 
 @lilypond[quote,ragged-right,verbatim]
 <<
@@ -1894,26 +1996,26 @@ pentagramas adyacentes:
 @subsection Objetos interiores al pentagrama
 @translationof Within-staff objects
 
-Ya hemos visto cómo las instrucciones @code{\voiceXXX} afectan a la
-dirección de las ligaduras de expresión y de unión, digitaciones y
-todo lo demás que dependa de la dirección de las plicas (véase
-@ref{Voces explícitas}).  Cuando se
-escribe música polifónica, estas instrucciones son esenciales para que
-puedan distinguirse varias líneas melódicas entrelazadas.  Pero
-ocasionalmente puede ser necesario sobreescribir este comportamiento
-automático.  Se puede hacer por secciones de música completas o
-incluso para una nota individual.  La propiedad que controla este
-comportamiento es la propiedad de @code{direction} (dirección) de cada
-objeto de presentación.  En primer lugar explicaremos qué hace esto, y
-luego introduciremos algunas instrucciones listas para usar que le
-evitarán tener que codificar sobreescrituras explícitas para las
-modificaciones más comunes.
+Ya hemos visto cómo las instrucciones @code{\voiceXXX} afectan a
+la dirección de las ligaduras de expresión y de unión,
+digitaciones y todo lo demás que dependa de la dirección de las
+plicas (véase @ref{Voces explícitas}).  Cuando se escribe música
+polifónica, estas instrucciones son esenciales para que puedan
+distinguirse varias líneas melódicas entrelazadas.  Pero
+ocasionalmente puede ser necesario sobreescribir este
+comportamiento automático.  Se puede hacer por secciones de música
+completas o incluso para una nota individual.  La propiedad que
+controla este comportamiento es la propiedad de @code{direction}
+(dirección) de cada objeto de presentación.  En primer lugar
+explicaremos qué hace esto, y luego introduciremos algunas
+instrucciones listas para usar que le evitarán tener que codificar
+sobreescrituras explícitas para las modificaciones más comunes.
 
 Algunos objetos de presentación como las ligaduras se curvan hacia
-arriba o hacia abajo; otros como las plicas y los corchetes también se
-mueven a la derecha o a la izquierda cuando apuntan hacia arriba o
-hacia abajo.  Esto se controla automáticamente cuando está establecida
-la propiedad @code{direction}.
+arriba o hacia abajo; otros como las plicas y los corchetes
+también se mueven a la derecha o a la izquierda cuando apuntan
+hacia arriba o hacia abajo.  Esto se controla automáticamente
+cuando está establecida la propiedad @code{direction}.
 
 @menu
 * La propiedad direction (dirección)::
@@ -1933,34 +2035,35 @@ la propiedad @code{direction}.
 @cindex center
 @cindex neutral
 
-El ejemplo siguiente muestra en el compás 1 el comportamiento
-predeterminado de las plicas, con las de las notas agudas apuntando
-hacia abajo y las graves hacia arriba, seguidas de cuatro notas con
-todas las plicas forzadas hacia abajo, cuatro notas con las plicas
-forzadas hacia arriba, y por último cuatro notas devueltas al
-comportamiento predeterminado.
+El ejemplo siguiente muestra en el primer compás la colocación
+predeterminada de las ligaduras de expresión, estando por encima
+las que comienzan en notas agudas y por debajo las que comienzan
+en notas graves, seguido de un compás con ambas ligaduras forzadas
+hacia abajo, otro compás con las dos forzadas hacia arriba y por
+último un compás con las ligaduras devueltas a su comportamiento
+predeterminado.
 
-@cindex Stem, ejemplo de sobreescritura
+@cindex Slur, ejemplo de sobreescritura
 @cindex direction, propiedad, ejemplo
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4 g c a |
-\override Stem.direction = #DOWN
-a4 g c a |
-\override Stem.direction = #UP
-a4 g c a |
-\revert Stem.direction
-a4 g c a |
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+\override Slur.direction = #DOWN
+a'4( g') c''( a') |
+\override Slur.direction = #UP
+a'4( g') c''( a') |
+\revert Slur.direction
+a'4( g') c''( a') |
 @end lilypond
 
-Aquí utilizamos las constantes @code{DOWN} (abajo) y @code{UP}
+Aquí hemos usado las constantes @code{DOWN} (abajo) y @code{UP}
 (arriba).  Éstos tienen los valores @w{@code{-1}} y @code{+1}
 respectivamente, y dichos valores numéricos también se pueden usar
 directamente.  El valor @code{0} también se puede usar en algunos
-casos.  Se trata simplemente con el significado de @code{UP} para las
-plicas, pero para algunos objetos tiene el significado de
-@q{centrado}.  Existe una constante @code{CENTER} que tiene el valor
-@code{0}.
+casos.  Se trata simplemente con el significado de @code{UP} para
+las ligaduras de expresión, pero para algunos objetos tiene el
+significado de @q{centrado}.  Existe una constante @code{CENTER}
+que tiene el valor @code{0}.
 
 Sin embargo, estas sobreescrituras no se usan muy a menudo porque
 están disponibles instrucciones predefinidas equivalentes más
@@ -2011,13 +2114,22 @@ menciona el significado de cada una allí donde no es obvio.
 @end multitable
 
 Las variantes neutras o normales de estas instrucciones están
-implementadas usando @code{\revert} y @strong{no} pueden ir
+implementadas usando @code{\revert} y éstas @strong{no} pueden ir
 precedidas de @code{\once}.  Si quiere limitar el efecto de las
 otras instrucciones (que están implementadas usando
 @code{\override}) a un solo paso de tiempo, puede precederla de
 @code{\once} de la misma forma en que lo haría con las
 sobreescrituras explícitas.
 
+O bien, si un único objeto de presentación necesita forzarse hacia
+arriba o hacia abajo, pueden usarse los indicadores de dirección,
+@code{^} o @code{_}:
+
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+a'4^( g') c''_( a') |
+@end lilypond
+
 @node Digitaciones
 @unnumberedsubsubsec Digitaciones
 @translationof Fingering
@@ -2025,12 +2137,13 @@ sobreescrituras explícitas.
 @cindex digitación, colocación
 @cindex digitación de acordes
 
-La colocación de las digitaciones sobre notas sueltas también se puede
-controlar mediante la propiedad @code{direction}, pero los cambios
-sobre @code{direction} no tienen ningún efecto sobre las notas de los
-acordes.  Como veremos, existen instrucciones especiales que permiten
-controlar las digitaciones de notas individuales, situando la
-digitación encima, debajo, a la izquierda o a la derecha de cada nota.
+La colocación de las digitaciones sobre notas sueltas también se
+puede controlar mediante la propiedad @code{direction}, pero los
+cambios sobre @code{direction} no tienen ningún efecto sobre las
+notas de los acordes.  Como veremos, existen instrucciones
+especiales que permiten controlar las digitaciones de notas
+individuales, situando la digitación encima, debajo, a la
+izquierda o a la derecha de cada nota.
 
 En primer lugar, he aquí el efecto de @code{direction} sobre las
 digitaciones aplicadas a notas sueltas.  Se muestra en el primer
@@ -2050,11 +2163,11 @@ siguiente el efecto de especificar @code{DOWN} y @code{UP}:
 }
 @end lilypond
 
-Sin embargo, la sobreescritura de la propiedad @code{direction} no es
-la forma más sencilla de especificar manualmente la digitación por
-encima o por debajo de las notas; suele ser preferible usar @code{_} o
-@code{^} en lugar de @code{-}, antes del número de la digitación.
-Este es el ejemplo anterior utilizando este método:
+Sin embargo, la sobreescritura de la propiedad @code{direction} no
+es la forma más sencilla de especificar manualmente la digitación
+por encima o por debajo de las notas; suele ser preferible usar
+@code{_} o @code{^} en lugar de @code{-}, antes del número de la
+digitación.  Este es el ejemplo anterior utilizando este método:
 
 @cindex fingering, ejemplo
 @cindex digitación, ejemplo
@@ -2069,8 +2182,8 @@ Este es el ejemplo anterior utilizando este método:
 
 La propiedad @code{direction} se ignora para los acordes, pero los
 prefijos direccionales @code{_} y @code{^} sí funcionan.  De forma
-predeterminada, las digitaciones se colocan automáticamente encima y
-debajo de las notas de un acorde, como se muestra aquí:
+predeterminada, las digitaciones se colocan automáticamente encima
+debajo de las notas de un acorde, como se muestra aquí:
 
 @cindex fingering, ejemplo
 @cindex digitación, ejemplo
@@ -2084,8 +2197,8 @@ debajo de las notas de un acorde, como se muestra aquí:
 @end lilypond
 
 @noindent
-pero se puede forzar de manera que todos o algunos de los números de
-digitación estén por encima o por debajo:
+pero se puede forzar de manera que todos o algunos de los números
+de digitación estén por encima o por debajo:
 
 @cindex fingering, ejemplo
 @cindex digitación, ejemplo
@@ -2108,23 +2221,24 @@ fingeringOrientations}.  El formato de esta instrucción es:
 
 @noindent
 se utiliza @code{\set} porque @code{fingeringOrientations} es una
-propiedad del contexto @code{Voice}, creado y usado por el grabador
-@code{New_fingering_engraver}.
-
-La propiedad se puede establecer al valor de una lista de entre uno y
-tres valores.  Controla si las digitaciones se pueden colocar por
-encima (si @code{up} aparece en la lista), por debajo (si aparece
-@code{down}), a la izquierda (si aparece @code{left}) o a la derecha
-(si aparece @code{right}).  A la inversa, si una colocación no está en
-la lista, no se sitúa ninguna digitación en dicho lugar.  LilyPond
-coma estas restricciones y se trabaja la mejor colocación para la
-digitación de las notas de los acordes que siguen.  Observe que
-@code{left} y @code{right} son mutuamente excluyentes: las
-digitaciones pueden situarse en un lado o en el otro, no en los dos.
+propiedad del contexto @code{Voice}, creado y usado por el
+grabador @code{New_fingering_engraver}.
+
+La propiedad se puede establecer al valor de una lista de entre
+uno y tres valores.  Controla si las digitaciones se pueden
+colocar por encima (si @code{up} aparece en la lista), por debajo
+(si aparece @code{down}), a la izquierda (si aparece @code{left})
+o a la derecha (si aparece @code{right}).  A la inversa, si una
+colocación no está en la lista, no se sitúa ninguna digitación en
+dicho lugar.  LilyPond coma estas restricciones y se trabaja la
+mejor colocación para la digitación de las notas de los acordes
+que siguen.  Observe que @code{left} y @code{right} son mutuamente
+excluyentes: las digitaciones pueden situarse en un lado o en el
+otro, no en los dos.
 
 @warning{Para controlar la colocación de la digitación de una sola
-nota usando esta instrucción es necesario escribirla como un acorde de
-una sola nota encerrándola entre ángulos simples.}
+nota usando esta instrucción es necesario escribirla como un
+acorde de una sola nota encerrándola entre ángulos simples.}
 
 Aquí podemos ver algunos ejemplos:
 
@@ -2155,9 +2269,9 @@ Aquí podemos ver algunos ejemplos:
 
 @noindent
 Si la digitación parece un poco superpoblada, se puede reducir el
-tamaño @code{font-size}.  El valor predeterminado puede verse en el
-objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que probaremos
-@w{@code{-7}}:
+tamaño @code{font-size}.  El valor predeterminado puede verse en
+el objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que
+probaremos @w{@code{-7}}:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative {
@@ -2185,9 +2299,9 @@ objeto @code{Fingering} del RFI que es @w{@code{-5}}, así que probaremos
 @subsection Objetos fuera del pentagrama
 @translationof Outside-staff objects
 
-Los objetos fuera-del-pentagrama se sitúan automáticamente para evitar
-las colisiones.  Existen varias formas de sobreescribir la colocación
-automática si el posicionado no resulta óptimo.
+Los objetos fuera-del-pentagrama se sitúan automáticamente para
+evitar las colisiones.  Existen varias formas de sobreescribir la
+colocación automática si el posicionado no resulta óptimo.
 
 @menu
 * La propiedad outside-staff-priority (prioridad fuera del pentagrama)::
@@ -2202,32 +2316,34 @@ automática si el posicionado no resulta óptimo.
 @translationof The outside-staff-priority property
 
 Los objetos fuera-del-pentagrama se colocan automáticamente para
-evitar las colisiones.  Los objetos que tienen el valor más bajo de la
-propiedad @code{outside-staff-priority} se sitúan más cerca del
-pentagrama, y entonces otros objetos fuera-del-pentagrama se elevan
-tanto como sea necesario para evitar la colisión.  La prioridad
-@code{outside-staff-priority} se defina en el @code{grob-interface} y
-así es una propiedad de todos los objetos de presentación.  De forma
-predeterminada se establece a @code{#f} para todos los objetos
-dentro-del-pentagrama, y a un valor numérico adecuado a cada objeto
-fuera-del-pentagrama cuando se crea el objeto.  La tabla siguiente
-presenta los valores numéricos predeterminados para algunos de los
-objetos fuera-del-pentagrama más comunes.
+evitar las colisiones.  Los objetos que tienen el valor más bajo
+de la propiedad @code{outside-staff-priority} se sitúan más cerca
+del pentagrama, y entonces otros objetos fuera-del-pentagrama se
+elevan tanto como sea necesario para evitar la colisión.  La
+prioridad @code{outside-staff-priority} se defina en el
+@code{grob-interface} y así es una propiedad de todos los objetos
+de presentación.  De forma predeterminada se establece a @code{#f}
+para todos los objetos dentro-del-pentagrama, y a un valor
+numérico adecuado a cada objeto fuera-del-pentagrama cuando se
+crea el objeto.  La tabla siguiente presenta los valores numéricos
+predeterminados para algunos de los objetos fuera-del-pentagrama
+más comunes.
 
 @cindex objetos de extensión
 
 Observe los nombres algo inusuales de algunos de los objetos: los
 objetos de extensión se crean automáticamente para controlar el
-posicionamiento vertical de los grobs que (quizá) comienzan y terminan
-en distintos momentos musicales, de manera que cualquier modificación
-a la prioridad @code{outside-staff-priority} del grob subyacente no
-tiene ningún efecto.  Por ejemplo, cambiar la
-@code{outside-staff-priority} del objeto de regulador @code{Hairpin}
-no tiene efecto sobre la posición vertical de los reguladores: en
-lugar de eso, tenemos que cambiar la @code{outside-staff-priority} del
-objeto asociado @code{DynamicLineSpanner}.  Esta sobreescritura se
-debe escribir al comienzo del objeto de extensión, que podría incluir
-varios reguladores o matices dinámicos encadenados.
+posicionamiento vertical de los grobs que (quizá) comienzan y
+terminan en distintos momentos musicales, de manera que cualquier
+modificación a la prioridad @code{outside-staff-priority} del grob
+subyacente no tiene ningún efecto.  Por ejemplo, cambiar la
+@code{outside-staff-priority} del objeto de regulador
+@code{Hairpin} no tiene efecto sobre la posición vertical de los
+reguladores: en lugar de eso, tenemos que cambiar la
+@code{outside-staff-priority} del objeto asociado
+@code{DynamicLineSpanner}.  Esta sobreescritura se debe escribir
+al comienzo del objeto de extensión, que podría incluir varios
+reguladores o matices dinámicos encadenados.
 
 @multitable @columnfractions .3 .3 .3
 @headitem Objeto de presentación
@@ -2265,8 +2381,8 @@ varios reguladores o matices dinámicos encadenados.
   @tab Trinos mantenidos
 @end multitable
 
-He aquí un ejemplo que muestra la situación predeterminada de algunos
-de ellos.
+He aquí un ejemplo que muestra la situación predeterminada de
+algunos de ellos.
 
 @cindex texto, extensiones de
 @cindex octava alta y baja, corchete de
@@ -2302,13 +2418,15 @@ c'4 c' c' c' |
 @end lilypond
 
 Este ejemplo también muestra cómo crear textos con extensión (Text
-Spanners): textos con líneas extensoras por encima de una sección de
-música.  El extensor abarca desde la instrucción @code{\startTextSpan}
-hasta la instrucción @code{\stopTextSpan}, y el formado del texto se
-define por medio de la instrucción @code{\override TextSpanner}.  Para
-ver más detalles, consulte @ruser{Extensiones de texto}.
+Spanners): textos con líneas extensoras por encima de una sección
+de música.  El extensor abarca desde la instrucción
+@code{\startTextSpan} hasta la instrucción @code{\stopTextSpan}, y
+el formado del texto se define por medio de la instrucción
+@code{\override TextSpanner}.  Para ver más detalles, consulte
+@ruser{Extensiones de texto}.
 
-También muestra la manera de crear corchetes de octava alta y baja.
+También muestra la manera de crear corchetes de octava alta y
+baja.
 
 @cindex trucar la situación de los números de compás
 @cindex números de compás, ajustar posición
@@ -2317,15 +2435,15 @@ También muestra la manera de crear corchetes de octava alta y baja.
 @cindex trucar la situación de las letras de ensayo
 @cindex ensayo, letras, trucar la colocación
 
-Si los valores predeterminados de @code{outside-staff-priority} no le
-ofrecen las colocaciones deseadas se puede sobreescribir la prioridad
-de cualquiera de los objetos.  Suponga que quisiéramos que el corchete
-de octava estuviera situado por debajo del elemento extensor de texto
-en el ejemplo de arriba.  Todo lo que debemos hacer es localizar la
-prioridad de @code{OttavaBracket} en el RFI o en las tablas
-anteriores, y reducirlo a un valor inferior al de @code{TextSpanner},
-recordando que @code{OttavaBracket} se crea dentro del contexto de
-@code{Staff}:
+Si los valores predeterminados de @code{outside-staff-priority} no
+le ofrecen las colocaciones deseadas se puede sobreescribir la
+prioridad de cualquiera de los objetos.  Suponga que quisiéramos
+que el corchete de octava estuviera situado por debajo del
+elemento extensor de texto en el ejemplo de arriba.  Todo lo que
+debemos hacer es localizar la prioridad de @code{OttavaBracket} en
+el RFI o en las tablas anteriores, y reducirlo a un valor inferior
+al de @code{TextSpanner}, recordando que @code{OttavaBracket} se
+crea dentro del contexto de @code{Staff}:
 
 @cindex TextSpanner, ejemplo de sobreescritura
 @cindex bound-details, propiedad, ejemplo
@@ -2357,28 +2475,29 @@ c'4 c' c' c' |
 
 Observe que algunos de estos objetos, concretamente los números de
 compás, las indicaciones metronómicas y las letras de ensayo, se
-alojan de forma predeterminada dentro del contexto @code{Score}; así
-pues, debe asegurarse de que utiliza el contexto adecuado cuando se
-sobreescriben sus propiedades.
+alojan de forma predeterminada dentro del contexto @code{Score};
+así pues, debe asegurarse de que utiliza el contexto adecuado
+cuando se sobreescriben sus propiedades.
 
 @cindex ligaduras y outside-staff-priority
 @cindex ligaduras y articulaciones
 @cindex articulaciones y ligaduras
 
-De forma predeterminada, las ligaduras de expresión están clasificadas
-como objetos dentro-del-pentagrama, pero con frecuencia aparecen
-encima del pentagrama si las notas que une son muy agudas.  Ello puede
-empujar a una posición muy elevada a los objetos fuera-del-pentagrama
-como las articulaciones, pues la ligadura se colocará en primer lugar.
-La propiedad @code{avoid-slur} de la articulación se puede establecer
-al valor @code{'inside} (por dentro) para llevarla al interior de la
-ligadura, pero la propiedad @code{avoid-slur} es efectiva solamente si
-la prioridad @code{outside-staff-priority} está también ajustada al
-valor @code{#f}.  De forma alternativa, la prioridad
-@code{outside-staff-priority} de la ligadura se puede fijar en un
-valor numérico para hacer que se sitúe en línea con otros objetos
-fuera del pentagrama de acuerdo con este valor.  He aquí un ejemplo
-que muestra el efecto de los dos métodos:
+De forma predeterminada, las ligaduras de expresión están
+clasificadas como objetos dentro-del-pentagrama, pero con
+frecuencia aparecen encima del pentagrama si las notas que une son
+muy agudas.  Ello puede empujar a una posición muy elevada a los
+objetos fuera-del-pentagrama como las articulaciones, pues la
+ligadura se colocará en primer lugar.  La propiedad
+@code{avoid-slur} de la articulación se puede establecer al valor
+@code{'inside} (por dentro) para llevarla al interior de la
+ligadura, pero la propiedad @code{avoid-slur} es efectiva
+solamente si la prioridad @code{outside-staff-priority} está
+también ajustada al valor @code{#f}.  De forma alternativa, la
+prioridad @code{outside-staff-priority} de la ligadura se puede
+fijar en un valor numérico para hacer que se sitúe en línea con
+otros objetos fuera del pentagrama de acuerdo con este valor.  He
+aquí un ejemplo que muestra el efecto de los dos métodos:
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -2392,14 +2511,15 @@ que muestra el efecto de los dos métodos:
 }
 @end lilypond
 
-Los cambios en @code{outside-staff-priority} también se pueden emplear
-para controlar la situación vertical de los objetos individuales,
-aunque los resultados pueden no siempre ser deseables.  Suponga que
-quiere que @qq{Text3} se sitúe por encima de @qq{Text4} en el ejemplo
-bajo el epígrafe Comportamiento Automático de más arriba (véase
-@ref{Comportamiento automático}).  Todo lo que debemos hacer es localizar la
-prioridad de @code{TextScript} en el RFI o en las tablas de arriba, y
-aumentar la prioridad de @qq{Text3} hasta un valor superior:
+Los cambios en @code{outside-staff-priority} también se pueden
+emplear para controlar la situación vertical de los objetos
+individuales, aunque los resultados pueden no siempre ser
+deseables.  Suponga que quiere que @qq{Text3} se sitúe por encima
+de @qq{Text4} en el ejemplo bajo el epígrafe Comportamiento
+Automático de más arriba (véase @ref{Comportamiento automático}).
+Todo lo que debemos hacer es localizar la prioridad de
+@code{TextScript} en el RFI o en las tablas de arriba, y aumentar
+la prioridad de @qq{Text3} hasta un valor superior:
 
 @cindex TextScript, ejemplo de sobreescritura
 @cindex outside-staff-priority, propiedad, ejemplo
@@ -2412,14 +2532,14 @@ c''2^"Text3"
 c''2^"Text4" |
 @end lilypond
 
-Esto, ciertamente, eleva a @qq{Text3} por encima de @qq{Text4} pero
-también lo eleva por encima de @qq{Text2}, y @qq{Text4} ahora se
-desploma hacia abajo.  Quizá no sea tan buena idea.  ¿Y si lo que
-realmente queremos hacer es posicionar todas las anotaciones a la
-misma distancia por encima del pentagrama?  Para hacerlo, vamos a
-necesitar claramente espaciar las notas en sentido horizontal para
-hacer sitio para el texto.  Esto se hace empleando la instrucción
-@code{textLengthOn}.
+Esto, ciertamente, eleva a @qq{Text3} por encima de @qq{Text4}
+pero también lo eleva por encima de @qq{Text2}, y @qq{Text4} ahora
+se desploma hacia abajo.  Quizá no sea tan buena idea.  ¿Y si lo
+que realmente queremos hacer es posicionar todas las anotaciones a
+la misma distancia por encima del pentagrama?  Para hacerlo, vamos
+a necesitar claramente espaciar las notas en sentido horizontal
+para hacer sitio para el texto.  Esto se hace empleando la
+instrucción @code{textLengthOn}.
 
 @node La instrucción textLengthOn
 @unnumberedsubsubsec La instrucción @code{@bs{}textLengthOn}
@@ -2432,11 +2552,11 @@ hacer sitio para el texto.  Esto se hace empleando la instrucción
 @funindex \textLengthOff
 @funindex textLengthOff
 
-De forma predeterminada, el texto producido mediante marcado no ocupa
-ningún espacio horizontal en cuanto se refiere a la disposición de la
-música.  La instrucción @code{\textLengthOn} invierte este
-comportamiento, ocasionando que las notas resulten tan espaciadas como
-sea necesario para acomodar el texto:
+De forma predeterminada, el texto producido mediante marcado no
+ocupa ningún espacio horizontal en cuanto se refiere a la
+disposición de la música.  La instrucción @code{\textLengthOn}
+invierte este comportamiento, ocasionando que las notas resulten
+tan espaciadas como sea necesario para acomodar el texto:
 
 @lilypond[quote,fragment,ragged-right,verbatim]
 \textLengthOn  % Cause notes to space out to accommodate text
@@ -2448,19 +2568,20 @@ c''2^"Text4" |
 
 La instrucción para volver al comportamiento predeterminado es
 @code{\textLengthOff}.  De forma alternativa, se puede usar
-@code{\once} con @code{\textLengthOn} si el efecto se ha de limitar a
-un solo momento musical.
-The corresponding spacing behavior for rehearsal marks and tempo
-indications is independently controlled with the commands
-@code{\markLengthOn} and @code{\markLengthOff}.
+@code{\once} con @code{\textLengthOn} si el efecto se ha de
+limitar a un solo momento musical.  El comportamiento de espaciado
+correspondiente para las llamadas de ensayo y las indicaciones de
+tempo se controla independientemente con las instrucciones
+@code{\markLengthOn} y @code{\markLengthOff}.
 
 @cindex marcado, texto de, permitir las colisiones en
 
 El texto de marcado también evita las notas que se proyectan por
 encima del pentagrama.  Si esto no es lo que deseamos, el
-desplazamiento automático hacia arriba se puede desactivar mediante el
-establecimiento de la prioridad a @code{#f}.  He aquí un ejemplo que
-muestra cómo el texto de marcado interactúa con tales notas.
+desplazamiento automático hacia arriba se puede desactivar
+mediante el establecimiento de la prioridad a @code{#f}.  He aquí
+un ejemplo que muestra cómo el texto de marcado interactúa con
+tales notas.
 
 @cindex TextScript, ejemplo de sobreescritura
 @cindex outside-staff-priority, propiedad, ejemplo
@@ -2496,13 +2617,13 @@ muestra cómo el texto de marcado interactúa con tales notas.
 @cindex dinámica, trucar la colocación de las indicaciones de
 @cindex matices, trucar la colocación
 
-Las indicaciones de matiz dinámico normalmente se colocarán por debajo
-del pentagrama, pero se pueden posicionar por encima con la
-instrucción @code{\dynamicUp}.  Se situarán verticalmente respecto a la
-nota a la que van adosadas, y flotarán por debajo (o por encima) de
-todos los objetos dentro-del-pentagrama tales como ligaduras de fraseo
-y números de compás.  Esto puede ofrecer resultados bastante
-aceptables, como muestra este ejemplo:
+Las indicaciones de matiz dinámico normalmente se colocarán por
+debajo del pentagrama, pero se pueden posicionar por encima con la
+instrucción @code{\dynamicUp}.  Se situarán verticalmente respecto
+a la nota a la que van adosadas, y flotarán por debajo (o por
+encima) de todos los objetos dentro-del-pentagrama tales como
+ligaduras de fraseo y números de compás.  Esto puede ofrecer
+resultados bastante aceptables, como muestra este ejemplo:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative {
@@ -2515,11 +2636,11 @@ aceptables, como muestra este ejemplo:
 }
 @end lilypond
 
-Sin embargo, si las notas y sus indicaciones dinámicas adosadas están
-muy cerca, la colocación automática evitará las colisiones desplazando
-las marcas dinámicas posteriores más lejos, aunque este puede no ser
-el lugar óptimo, como muestra el siguiente ejemplo más bien
-artificial:
+Sin embargo, si las notas y sus indicaciones dinámicas adosadas
+están muy cerca, la colocación automática evitará las colisiones
+desplazando las marcas dinámicas posteriores más lejos, aunque
+este puede no ser el lugar óptimo, como muestra el siguiente
+ejemplo más bien artificial:
 
 @lilypond[quote,ragged-right,verbatim,fragment]
 \dynamicUp
@@ -2527,14 +2648,14 @@ artificial:
 @end lilypond
 
 @noindent
-Si se presentara una situación similar en música @q{real}, podría ser
-preferible espaciar las notas un poco más entre sí, de forma que todas
-las marcas dinámicas puedan caber a la misma distancia vertical desde
-el pentagrama.  Hemos sido capaces de hacer esto para el texto de
-marcado utilizando la instrucción @code{\textLengthOn}, pero no existe
-una instrucción equivalente para las indicaciones de matiz dinámico.
-Por tanto, tendremos que averiguar cómo hacerlo utilizando
-instrucciones @code{\override}.
+Si se presentara una situación similar en música @q{real}, podría
+ser preferible espaciar las notas un poco más entre sí, de forma
+que todas las marcas dinámicas puedan caber a la misma distancia
+vertical desde el pentagrama.  Hemos sido capaces de hacer esto
+para el texto de marcado utilizando la instrucción
+@code{\textLengthOn}, pero no existe una instrucción equivalente
+para las indicaciones de matiz dinámico.  Por tanto, tendremos que
+averiguar cómo hacerlo utilizando instrucciones @code{\override}.
 
 @node Escalado de un «Grob»
 @unnumberedsubsubsec Escalado de un «Grob»
@@ -2543,17 +2664,18 @@ instrucciones @code{\override}.
 @cindex grob, cambio de tamaño de un
 @cindex escala de los grobs
 
-En primer lugar debemos aprender cómo se especifica el tamaño de los
-grobs.  Todos los grobs tienen un punto de referencia definido dentro
-de ellos que se usa para colocarlos respecto a su objeto padre.
-Entonces, este punto del grob se posiciona a una distancia horizontal,
-@code{X-offset}, y una distancia vertical, @code{Y-offset}, a partir
-de su padre.  La dimensión horizontal del objeto viene dada por una
-pareja de números, @code{X-extent}, que dice dónde están los límites
-izquierdo y derecho respecto del punto de referencia.  La amplitud
-vertical se define de forma similar mediante una pareja de números,
-@code{Y-extent}.  Éstas son propiedades de todos los grobs que
-contemplan el @code{grob-interface}.
+En primer lugar debemos aprender cómo se especifica el tamaño de
+los grobs.  Todos los grobs tienen un punto de referencia definido
+dentro de ellos que se usa para colocarlos respecto a su objeto
+padre.  Entonces, este punto del grob se posiciona a una distancia
+horizontal, @code{X-offset}, y una distancia vertical,
+@code{Y-offset}, a partir de su padre.  La dimensión horizontal
+del objeto viene dada por una pareja de números, @code{X-extent},
+que dice dónde están los límites izquierdo y derecho respecto del
+punto de referencia.  La amplitud vertical se define de forma
+similar mediante una pareja de números, @code{Y-extent}.  Éstas
+son propiedades de todos los grobs que contemplan el
+@code{grob-interface}.
 
 @cindex @code{extra-spacing-width}
 
@@ -2823,35 +2945,38 @@ consulte
 @cindex objetos que colisionan, mover
 @cindex grobs que colisionan, mover
 
-Aunque pueda sorprenderle, LilyPond no es perfecto.  Ciertos elementos
-de notación se pueden superponer, lo que es una lástima, pero en
-realidad es bastante poco frecuente.  Normalmente la necesidad de
-mover objetos es por claridad o razones estéticas: el aspecto es mejor
-con un poco más o un poco menos de espacio de separación.
+Aunque pueda sorprenderle, LilyPond no es perfecto.  Ciertos
+elementos de notación se pueden superponer, lo que es una lástima,
+pero en realidad es bastante poco frecuente.  Normalmente la
+necesidad de mover objetos es por claridad o razones estéticas: el
+aspecto es mejor con un poco más o un poco menos de espacio de
+separación.
 
 Existen tres enfoques principales que llevan a la resolución de
-superposiciones en la notación.  Se deben considerar en el siguiente
-orden:
+superposiciones en la notación.  Se deben considerar en el
+siguiente orden:
 
 @enumerate
 @item
-La @strong{dirección} de uno de los objetos que se superponen se puede
-cambiar usando las instrucciones predefinidas que están relacionadas
-arriba para los objetos dentro-del-pentagrama (véase @ref{Objetos interiores al pentagrama}).
-Se pueden recolocar fácilmente las
-plicas, ligaduras de expresión y de unión, barras de corchea,
-indicaciones dinámicas, texto y grupos de valoración especial de esta
-forma.  La limitación es que sólo tiene la posibilidad de elegir entre
-dos posiciones, y podría ser que ninguna de ellas sea la adecuada.
+La @strong{dirección} de uno de los objetos que se superponen se
+puede cambiar usando las instrucciones predefinidas que están
+relacionadas arriba para los objetos dentro-del-pentagrama (véase
+@ref{Objetos interiores al pentagrama}).  Se pueden recolocar
+fácilmente las plicas, ligaduras de expresión y de unión, barras
+de corchea, indicaciones dinámicas, texto y grupos de valoración
+especial de esta forma.  La limitación es que sólo tiene la
+posibilidad de elegir entre dos posiciones, y podría ser que
+ninguna de ellas sea la adecuada.
 
 @item
 Las @strong{propiedades del objeto}, que LilyPond usa cuando está
-colocando los objetos de presentación, se pueden modificar usando la
-instrucción de sobreescritura @code{\override}.  Las ventadas de hacer
-cambios a este tipo de propiedad son: a) que algún otro objeto se
-moverá automáticamente si es necesario, para dejarle sitio, y b) una
-única sobreescritura se puede aplicar a todas las instancias del mismo
-tipo de objeto.  Entre tales propiedades se encuentran:
+colocando los objetos de presentación, se pueden modificar usando
+la instrucción de sobreescritura @code{\override}.  Las ventadas
+de hacer cambios a este tipo de propiedad son: a) que algún otro
+objeto se moverá automáticamente si es necesario, para dejarle
+sitio, y b) una única sobreescritura se puede aplicar a todas las
+instancias del mismo tipo de objeto.  Entre tales propiedades se
+encuentran:
 
 @itemize
 
@@ -2870,72 +2995,73 @@ Ya se ha estudiado con cierto detalle: véase @ref{Objetos interiores al pentagr
 @cindex right-padding, propiedad
 @cindex staff-padding, propiedad
 
-Según un objeto se está colocando, el valor de su propiedad de relleno
-@code{padding} especifica el espacio intermedio que se debe dejar
-entre él mismo y el límite más próximo del objeto contra el que se
-está colocando.  Observe que es el valor de @code{padding} del objeto
-@strong{que se está colocando} el que se usa; el valor de
-@code{padding} del objeto que ya está colocado se ignora.  Los
-espacios intermedios especificados mediante @code{padding} se pueden
-aplicar a todos los objetos que contemplan el interface
-@code{side-position-interface}.
+Según un objeto se está colocando, el valor de su propiedad de
+relleno @code{padding} especifica el espacio intermedio que se
+debe dejar entre él mismo y el límite más próximo del objeto
+contra el que se está colocando.  Observe que es el valor de
+@code{padding} del objeto @strong{que se está colocando} el que se
+usa; el valor de @code{padding} del objeto que ya está colocado se
+ignora.  Los espacios intermedios especificados mediante
+@code{padding} se pueden aplicar a todos los objetos que
+contemplan el interface @code{side-position-interface}.
 
 En lugar de con @code{padding}, la colocación de los grupos de
-alteraciones se controla con
-@code{right-padding}.  Esta propiedad se encuentra en el objeto
-@code{AccidentalPlacement} que, observe, vive dentro del contexto de
-@strong{Staff}.  Durante el proceso tipográfico, las cabezas de las
-notas se componen tipográficamente en primer lugar, y después las
-alteraciones, si existen, se añaden a la izquierda de las cabezas
-utilizando la propiedad de relleno por la derecha @code{right-padding}
-para determinar la separación entre la alteración y la cabeza, y
-de las alteraciones entre sí.  Así
-pues, sólo la propiedad de relleno por la derecha @code{right-padding}
-del objeto @code{AccidentalPlacement} tiene efecto sobre la colocación
-de las alteraciones.
-
-La propiedad @code{staff-padding} está estrechamente relacionada con
-la propiedad @code{padding}: @code{padding} controla la separación
-mínima entre cualquier objeto que contemple el interface
-@code{side-position-interface} y el objeto más cercano (generalmente
-la nota o las líneas del pentagrama); @code{staff-padding} se aplica
-sólo a los objetos que siempre se sitúan fuera del pentagrama:
-controla la separación mínima entre dicho objeto y el pentagrama.
-Observe que @code{staff-padding} no tiene ningún efecto sobre objetos
-que se posicionan respecto a la nota en vez de hacerlo respecto al
-pentagrama, incluso aunque puede ser sobreescrito sin error por tales
-objetos: simplemente se ignora.
-
-Para descubrir qué propiedad de relleno se necesita para el objeto que
-quiere recolocar, debe volver al manual de RFI y buscar las
+alteraciones se controla con @code{right-padding}.  Esta propiedad
+se encuentra en el objeto @code{AccidentalPlacement} que, observe,
+vive dentro del contexto de @strong{Staff}.  Durante el proceso
+tipográfico, las cabezas de las notas se componen tipográficamente
+en primer lugar, y después las alteraciones, si existen, se añaden
+a la izquierda de las cabezas utilizando la propiedad de relleno
+por la derecha @code{right-padding} para determinar la separación
+entre la alteración y la cabeza, y de las alteraciones entre sí.
+Así pues, sólo la propiedad de relleno por la derecha
+@code{right-padding} del objeto @code{AccidentalPlacement} tiene
+efecto sobre la colocación de las alteraciones.
+
+La propiedad @code{staff-padding} está estrechamente relacionada
+con la propiedad @code{padding}: @code{padding} controla la
+separación mínima entre cualquier objeto que contemple el
+interface @code{side-position-interface} y el objeto más cercano
+(generalmente la nota o las líneas del pentagrama);
+@code{staff-padding} se aplica sólo a los objetos que siempre se
+sitúan fuera del pentagrama: controla la separación mínima entre
+dicho objeto y el pentagrama.  Observe que @code{staff-padding} no
+tiene ningún efecto sobre objetos que se posicionan respecto a la
+nota en vez de hacerlo respecto al pentagrama, incluso aunque
+puede ser sobreescrito sin error por tales objetos: simplemente se
+ignora.
+
+Para descubrir qué propiedad de relleno se necesita para el objeto
+que quiere recolocar, debe volver al manual de RFI y buscar las
 propiedades del objeto.  Tenga cuidado porque las propiedades de
-relleno podrían no estar en el objeto más obvio, así que busque en los
-objetos que puedan tener alguna relación con él.
+relleno podrían no estar en el objeto más obvio, así que busque en
+los objetos que puedan tener alguna relación con él.
 
 Todos los valores de relleno se miden en espacios del pentagrama.
 Para la mayor parte de los objetos el valor se establece de forma
-predeterminada en aproximadamente 1.0 o menos (varía con cada objeto).
-Se puede sobreescribir si se necesita una separación intermedia mayor
-(o menor).
+predeterminada en aproximadamente 1.0 o menos (varía con cada
+objeto).  Se puede sobreescribir si se necesita una separación
+intermedia mayor (o menor).
 
 @item
 @code{self-alignment-X} (Auto-alineamiento en el eje X)
 
 @cindex self-alignment-X, propiedad
 
-Esta propiedad se puede usar para alinear el objeto a la izquierda, a
-la derecha, o centrarlo con respecto al punto de referencia del objeto
-«padre».  Se puede usar con todos los objetos que contemplan el
-interface
-@code{self-alignment-interface}.  En general son objetos que contienen
-texto.  Los valores son @code{LEFT}, @code{RIGHT} o @code{CENTER}.  De
-forma alternativa se puede especificar un valor numérico entre
-@w{@code{-1}} y @code{+1}, donde @w{@code{-1}} es alineado por la izquierda,
-@code{+1} es alineado por la derecha, y los números intermedios mueven
-el texto progresivamente desde alineado por la izquierda hasta alineado
-por la derecha.  Se pueden especificar valores numéricos mayores de
-@code{1} para mover el texto incluso más lejos hacia la izquierda, o
-menos de @w{@code{-1}} para alejarlo más hacia la derecha.  Un cambio en
+Esta propiedad se puede usar para alinear el objeto a la
+izquierda, a la derecha, o centrarlo con respecto al punto de
+referencia del objeto «padre».  Se puede usar con todos los
+objetos que contemplan el interface
+@code{self-alignment-interface}.  En general son objetos que
+contienen texto.  Los valores son @code{LEFT}, @code{RIGHT} o
+@code{CENTER}.  De forma alternativa se puede especificar un valor
+numérico entre @w{@code{-1}} y @code{+1}, donde @w{@code{-1}} es
+alineado por la izquierda, @code{+1} es alineado por la derecha, y
+los números intermedios mueven el texto progresivamente desde
+alineado por la izquierda hasta alineado por la derecha.  Se
+pueden especificar valores numéricos mayores de @code{1} para
+mover el texto incluso más lejos hacia la izquierda, o menos de
+@w{@code{-1}} para alejarlo más hacia la derecha.  Un cambio en
 @code{1} en el valor corresponde a un movimiento de la mitad de la
 longitud total del propio texto.
 
@@ -2944,14 +3070,15 @@ longitud total del propio texto.
 
 @cindex extra-spacing-width, propiedad
 
-Esta propiedad está disponible para todos los objetos que contemplan
-el interface @code{item-interface}.  Toma dos números, el primero se
-suma al límite izquierdo y el segundo se suma al límite derecho.  Los
-números negativos desplazan el límite a la izquierda y los positivos a
-la derecha, por lo que para ensanchar un objeto el primer número debe
-ser negativo y el segundo positivo.  Observe que no todos los objetos
-ostentan los dos números.  Por ejemplo, el objeto @code{Accidental}
-(alteración) sólo toma nota del primer número (el borde izquierdo).
+Esta propiedad está disponible para todos los objetos que
+contemplan el interface @code{item-interface}.  Toma dos números,
+el primero se suma al límite izquierdo y el segundo se suma al
+límite derecho.  Los números negativos desplazan el límite a la
+izquierda y los positivos a la derecha, por lo que para ensanchar
+un objeto el primer número debe ser negativo y el segundo
+positivo.  Observe que no todos los objetos ostentan los dos
+números.  Por ejemplo, el objeto @code{Accidental} (alteración)
+sólo toma nota del primer número (el borde izquierdo).
 
 @item
 @code{staff-position} (posición de pentagrama)
@@ -2959,12 +3086,13 @@ ostentan los dos números.  Por ejemplo, el objeto @code{Accidental}
 @cindex staff-position, propiedad
 
 @code{staff-position} es una propiedad del interface
-@code{staff-symbol-referencer-interface}, que está contemplado por los
-objetos que se colocan con relación al pentagrama.  Especifica la
-posición vertical del objeto con relación a la tercera línea del
-pentagrama en medios espacios de pentagrama.  Es útil en la
-resolución de colisiones entre objetos de presentación como silencios
-multi-compás, ligaduras de unión y notas en distintas voces.
+@code{staff-symbol-referencer-interface}, que está contemplado por
+los objetos que se colocan con relación al pentagrama.  Especifica
+la posición vertical del objeto con relación a la tercera línea
+del pentagrama en medios espacios de pentagrama.  Es útil en la
+resolución de colisiones entre objetos de presentación como
+silencios multi-compás, ligaduras de unión y notas en distintas
+voces.
 
 @item
 @code{horizontal-shift}
@@ -2983,7 +3111,7 @@ multi-compás, ligaduras de unión y notas en distintas voces.
 @funindex \shiftOnnn
 @funindex shiftOnnn
 
-Dentro de una vozm todas las notas que se producen en el mismo
+Dentro de una voz, todas las notas que se producen en el mismo
 moemtno se agrupan en una columna de notas, y se crea un objeto
 @code{NoteColumn} para controlar el posicionamiento horizonal de
 dicho grupo de notas (véase @qq{Columnas de nota} en @ref{Voces
@@ -3032,16 +3160,16 @@ fusión entre cabezas de nota.
 @item
 Finalmente, cuando todo lo demás falla, los objetos se pueden
 reposicionar manualmente con relación a la tercera línea del
-pentagrama verticalmente, o desplazándolas una cierta distancia a una
-nueva posición.  Las desventajas son que los valores correctos para el
-reposicionamiento se deben adivinar, a menudo por ensayo y error, para
-cada objeto individual y, puesto que el movimiento se hace después de
-que LilyPond ha colocado todos los demás objetos es usuario es
-responsable de evitar cualquier colisión que pudiera producirse.  Pero
-la dificultar principal con este enfoque es que los valores de
-reposicionado podrían tener que ser vueltos a calcular si la música se
-modifica más tarde.  Las propiedades que se pueden usar para este tipo
-de posicionamiento manual son:
+pentagrama verticalmente, o desplazándolas una cierta distancia a
+una nueva posición.  Las desventajas son que los valores correctos
+para el reposicionamiento se deben adivinar, a menudo por ensayo y
+error, para cada objeto individual y, puesto que el movimiento se
+hace después de que LilyPond ha colocado todos los demás objetos
+es usuario es responsable de evitar cualquier colisión que pudiera
+producirse.  Pero la dificultar principal con este enfoque es que
+los valores de reposicionado podrían tener que ser vueltos a
+calcular si la música se modifica más tarde.  Las propiedades que
+se pueden usar para este tipo de posicionamiento manual son:
 
 @table @code
 @item extra-offset (desplazamiento adicional)
@@ -3049,43 +3177,45 @@ de posicionamiento manual son:
 @cindex extra-offset, propiedad
 
 Esta propiedad se aplica a cualquier objeto de presentación que
-contemple el @code{grob-interface}.  Toma una pareja de números que
-especifican el desplazamiento adicional en las direcciones horizontal
-y vertical.  Los números negativos mueven el objeto a la izquierda o
-hacia abajo.  Las unidades son espacios de pentagrama.  El
-desplazamiento adicional se hace después de que la composición
-tipográfica de los objetos ha terminado, así que un objeto puede ser
-reposicionado a cualquier lugar sin afectar a ninguna otra cosa.
+contemple el @code{grob-interface}.  Toma una pareja de números
+que especifican el desplazamiento adicional en las direcciones
+horizontal y vertical.  Los números negativos mueven el objeto a
+la izquierda o hacia abajo.  Las unidades son espacios de
+pentagrama.  El desplazamiento adicional se hace después de que la
+composición tipográfica de los objetos ha terminado, así que un
+objeto puede ser reposicionado a cualquier lugar sin afectar a
+ninguna otra cosa.
 
 @item positions (posiciones)
 
 @cindex positions, propiedad
 
-Ésta es de la mayor utilidad para ajustar manualmente la inclinación y
-la altura de las barras de corchea, ligaduras de expresión y corchetes
-de grupos de valoración especial.  Toma una pareja de números que dan
-la posición de los extremos izquierdo y derecho de la barra, ligadura,
-etc. con relación a la tercera línea del pentagrama.  Las unidades son
-espacios de pentagrama.  Observe, sin embargo, que las ligaduras de
-expresión y de fraseo no se pueden reposicionar en cantidades
-arbitrariamente grandes.  LilyPond en primer lugar genera una lista de
-posiciones posibles para la ligadura y de forma predeterminada
-encuentra la ligadura que tiene @qq{mejor aspecto}.  Si la propiedad
-@code{positions} se ha sobreescrito, la ligadura que está más cerca de
-las posiciones que se han solicitado, se selecciona de la lista.
+Ésta es de la mayor utilidad para ajustar manualmente la
+inclinación y la altura de las barras de corchea, ligaduras de
+expresión y corchetes de grupos de valoración especial.  Toma una
+pareja de números que dan la posición de los extremos izquierdo y
+derecho de la barra, ligadura, etc. con relación a la tercera
+línea del pentagrama.  Las unidades son espacios de pentagrama.
+Observe, sin embargo, que las ligaduras de expresión y de fraseo
+no se pueden reposicionar en cantidades arbitrariamente grandes.
+LilyPond en primer lugar genera una lista de posiciones posibles
+para la ligadura y de forma predeterminada encuentra la ligadura
+que tiene @qq{mejor aspecto}.  Si la propiedad @code{positions} se
+ha sobreescrito, la ligadura que está más cerca de las posiciones
+que se han solicitado, se selecciona de la lista.
 @end table
 
 @end enumerate
 
-Un objeto en particular podría no tener todas estas propiedades.  Es
-necesario ir al manual RFI para buscar qué propiedades se encuentran
-disponibles para el objeto en cuestión.
+Un objeto en particular podría no tener todas estas propiedades.
+Es necesario ir al manual RFI para buscar qué propiedades se
+encuentran disponibles para el objeto en cuestión.
 
 
 Aquí presentamos una lista de los objetos que es más probable que
-estén implicados en colisiones, con el nombre del objeto que habría
-que buscar en el RFI para descubrir qué propiedades se deben usar para
-moverlos.
+estén implicados en colisiones, con el nombre del objeto que
+habría que buscar en el RFI para descubrir qué propiedades se
+deben usar para moverlos.
 
 @multitable @columnfractions .5 .5
 @headitem Tipo de objeto           @tab Nombre del objeto
@@ -3106,9 +3236,9 @@ moverlos.
 @subsection Arreglar notación con superposiciones
 @translationof Fixing overlapping notation
 
-Veamos ahora cómo pueden ser de ayuda las propiedades que hemos visto
-en la sección anterior, para resolver problemas de notación que se
-superpone.
+Veamos ahora cómo pueden ser de ayuda las propiedades que hemos
+visto en la sección anterior, para resolver problemas de notación
+que se superpone.
 
 @menu
 * La propiedad padding (relleno)::
@@ -3130,8 +3260,8 @@ superpone.
 @cindex superpuesta, notación
 
 La propiedad @code{padding} se puede ajustar para aumentar (o
-disminuir) la distancia entre símbolos impresos encima o debajo de las
-notas.
+disminuir) la distancia entre símbolos impresos encima o debajo de
+las notas.
 
 @cindex Script, ejemplo de sobreescritura
 @cindex padding, propiedad, ejemplo
@@ -3156,17 +3286,18 @@ c'1 |
 d'1 |
 @end lilypond
 
-Observe en el segundo ejemplo la gran importancia que tiene saber qué
-contexto maneja un determinado objeto.  Puesto que el objeto
-@code{MetronomeMark} se maneja dentro del contexto @code{Score}, los
-cambios de propiedades en el contexto @code{Voice} pasarán
-inadvertidos.  Para ver más detalles, consulte @ruser{Modificar las propiedades}.
+Observe en el segundo ejemplo la gran importancia que tiene saber
+qué contexto maneja un determinado objeto.  Puesto que el objeto
+@code{MetronomeMark} se maneja dentro del contexto @code{Score},
+los cambios de propiedades en el contexto @code{Voice} pasarán
+inadvertidos.
+Para ver más detalles, consulte @ruser{Modificar las propiedades}.
 
-Si la propiedad de relleno @code{padding} de un objeto se incrementa
-cuando dicho objeto se encuentra en una pila de objetos que se están
-colocando de acuerdo a su prioridad @code{outside-staff-priority},
-entonces ese objeto se moverá, y también todos los que están por fuera
-de él.
+Si la propiedad de relleno @code{padding} de un objeto se
+incrementa cuando dicho objeto se encuentra en una pila de objetos
+que se están colocando de acuerdo a su prioridad
+@code{outside-staff-priority}, entonces ese objeto se moverá, y
+también todos los que están por fuera de él.
 
 
 @node La propiedad right-padding (relleno por la derecha)
@@ -3176,12 +3307,12 @@ de él.
 @cindex right-padding, propiedad
 
 La propiedad @code{right-padding} afecta al espaciado entre la
-alteración y la nota a que se aplica.  Normalmente no es necesaria,
-pero el espaciado predeterminado puede estar mal para ciertos glifos
-de alteraciones o combinaciones de glifos que se usan en música
-microtonal.  Éstos tienen que introducirse sobreescribiendo el sello
-de la alteración con un elemento de marcado que contenga los símbolos
-deseados, así:
+alteración y la nota a que se aplica.  Normalmente no es
+necesaria, pero el espaciado predeterminado puede estar mal para
+ciertos glifos de alteraciones o combinaciones de glifos que se
+usan en música microtonal.  Éstos tienen que introducirse
+sobreescribiendo el sello de la alteración con un elemento de
+marcado que contenga los símbolos deseados, así:
 
 @cindex Accidental, ejemplo de sobreescritura
 @cindex text, propiedad, ejemplo
@@ -3208,12 +3339,12 @@ sesquisharp = \markup { \sesquisharp }
 
 @noindent
 Esto utiliza necesariamente una sobreescritura para el sello de la
-alteración que no se estudiará hasta más adelante.  El tipo de sello
-debe ser un procedimiento, aquí modificado para que imprima el
-contenido de la propiedad @code{text} del objeto @code{Accidental},
-que a su vez está establecido como un signo de sesquisostenido.
-Entonces el signo se puede separar de la cabeza de la nota
-sobreescribiendo @code{right-padding}.
+alteración que no se estudiará hasta más adelante.  El tipo de
+sello debe ser un procedimiento, aquí modificado para que imprima
+el contenido de la propiedad @code{text} del objeto
+@code{Accidental}, que a su vez está establecido como un signo de
+sesquisostenido.  Entonces el signo se puede separar de la cabeza
+de la nota sobreescribiendo @code{right-padding}.
 
 @noindent
 
@@ -3224,15 +3355,15 @@ sobreescribiendo @code{right-padding}.
 @cindex alineación de objetos sobre la línea base
 @cindex objetos, alineación sobre la línea base
 
-@code{staff-padding} se puede usar para alinear objetos como matices
-dinámicos a lo largo de una línea de base a una distancia fija del
-pentagrama, siempre que no exista ningún otro elemento de notación
-que fuerce una distancia mayor al pentagrama.  No es una propiedad de
-@code{DynamicText} sino de @code{DynamicLineSpanner}.  Esto es así
-porque la línea de base debe aplicarse por igual a @strong{todas} las
-dinámicas, entre ellas las que se han creado como objetos de
-extensión.  Así que ésta es la forma de alinear las indicaciones de
-matiz en el ejemplo de la sección anterior:
+@code{staff-padding} se puede usar para alinear objetos como
+matices dinámicos a lo largo de una línea de base a una distancia
+fija del pentagrama, siempre que no exista ningún otro elemento de
+notación que fuerce una distancia mayor al pentagrama.  No es una
+propiedad de @code{DynamicText} sino de @code{DynamicLineSpanner}.
+Esto es así porque la línea de base debe aplicarse por igual a
+@strong{todas} las dinámicas, entre ellas las que se han creado
+como objetos de extensión.  Así que ésta es la forma de alinear
+las indicaciones de matiz en el ejemplo de la sección anterior:
 
 @cindex DynamicText, ejemplo de sobreescritura
 @cindex extra-spacing-width, propiedad, ejemplo
@@ -3249,10 +3380,10 @@ matiz en el ejemplo de la sección anterior:
 @unnumberedsubsubsec La propiedad @code{self-alignment-X} (auto-alineación en X)
 @translationof The self-alignment-X property
 
-El ejemplo siguiente muestra cómo ajustar la posición
-de un objeto de digitación de cuerda en relación a la plica de una nota
-mediante el alineamiento del límite derecho con el punto de referencia
-de la nota «padre»:
+El ejemplo siguiente muestra cómo ajustar la posición de un objeto
+de digitación de cuerda en relación a la plica de una nota
+mediante el alineamiento del límite derecho con el punto de
+referencia de la nota «padre»:
 
 @cindex StringNumber, ejemplo de sobreescritura
 @cindex self-alignment-X, propiedad, ejemplo
@@ -3270,24 +3401,25 @@ de la nota «padre»:
 
 @cindex objeto, colisión dentro del pentagrama
 
-Los silencios multi-compás en una voz pueden chocar con las notas en
-otra voz.  Puesto que estos silencios se tipografían centrados entre
-las barras de compás se necesitaría bastante esfuerzo para que
-LilyPond averiguara qué otras notas podrían chocar con él, ya que
-actualmente todo el manejo de colisiones entre notas y silencios se
-hace solamente para notas y silencios que ocurren al mismo tiempo.  He
-aquí un ejemplo de colisión de este tipo:
+Los silencios multi-compás en una voz pueden chocar con las notas
+en otra voz.  Puesto que estos silencios se tipografían centrados
+entre las barras de compás se necesitaría bastante esfuerzo para
+que LilyPond averiguara qué otras notas podrían chocar con él, ya
+que actualmente todo el manejo de colisiones entre notas y
+silencios se hace solamente para notas y silencios que ocurren al
+mismo tiempo.  He aquí un ejemplo de colisión de este tipo:
 
 @lilypond[quote,verbatim,ragged-right]
 << \relative { c'4 c c c } \\ { R1 } >>
 @end lilypond
 
-La mejor solución aquí es mover el silencio multi-compás hacia abajo,
-pues el silencio está en la voz dos.  El ajuste predeterminado para
-@code{\voiceTwo} (es decir, en la segunda voz de una construcción
-@code{<<@{@dots{}@} \\ @{@dots{}@}>>}) es que @code{staff-position} tenga el
-valor -4 para MultiMeasureRest, así que tenemos que bajarlo, digamos,
-cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}.
+La mejor solución aquí es mover el silencio multi-compás hacia
+abajo, pues el silencio está en la voz dos.  El ajuste
+predeterminado para @code{\voiceTwo} (es decir, en la segunda voz
+de una construcción @code{<<@{@dots{}@} \\ @{@dots{}@}>>}) es que
+@code{staff-position} tenga el valor -4 para MultiMeasureRest, así
+que tenemos que bajarlo, digamos, cuatro semi-espacios de
+pentagrama, al valor @w{@code{-8}}.
 
 @cindex MultiMeasureRest, ejemplo de sobreescritura
 @cindex staff-position, propiedad, ejemplo
@@ -3301,8 +3433,9 @@ cuatro semi-espacios de pentagrama, al valor @w{@code{-8}}.
 >>
 @end lilypond
 
-Esto es mejor que utilizar, por ejemplo, @code{extra-offset}, porque
-la línea adicional por encima del silencio se inserta automáticamente.
+Esto es mejor que utilizar, por ejemplo, @code{extra-offset},
+porque la línea adicional por encima del silencio se inserta
+automáticamente.
 
 @node La propiedad extra-offset (desplazamiento adicional)
 @unnumberedsubsubsec La propiedad @code{extra-offset} (desplazamiento adicional)
@@ -3316,17 +3449,17 @@ la línea adicional por encima del silencio se inserta automáticamente.
 La propiedad @code{extra-offset} da un completo control sobre el
 posicionamiento de un objeto tanto vertical como horizontalmente.
 
-En el ejemplo siguiente, la segunda digitación se desplaza ligeramente
-a la izquierda, y 1.8 espacios de pentagrama hacia abajo:
+En el ejemplo siguiente, la segunda digitación se desplaza
+ligeramente a la izquierda, y 1.8 espacios de pentagrama hacia
+abajo:
 
 @cindex fingering (digitación), ejemplo de sobreescritura
 @cindex extra-offset, propiedad, ejemplo
 
-@lilypond[quote,fragment,relative=1,verbatim]
-\stemUp
-f4-5
+@lilypond[quote,fragment,verbatim]
+f'4-5
 \once \override Fingering.extra-offset = #'(-0.3 . -1.8)
-f4-5
+f'4-5
 @end lilypond
 
 
@@ -3342,11 +3475,12 @@ f4-5
 @cindex barras de corchea, control manual
 
 La propiedad @code{positions} permite controlar manualmente la
-posición vertical y de ahí también la inclinación de los tresillos,
-ligaduras de expresión y de fraseo, y barras de corchea.
+posición vertical y de ahí también la inclinación de los
+tresillos, ligaduras de expresión y de fraseo, y barras de
+corchea.
 
-He aquí un ejemplo en el que las ligaduras de fraseo y de expresión
-chocan entre sí:
+He aquí un ejemplo en el que las ligaduras de fraseo y de
+expresión chocan entre sí:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative { a'8 \( ( a'16 ) a \) }
@@ -3356,12 +3490,12 @@ chocan entre sí:
 @cindex positions, propiedad, ejemplo
 
 @noindent
-Una posibilidad sería mover los dos extremos de la ligadura de fraseo
-hacia arriba.  Podemos tratar de establecer el extremo izquierdo a 2.5
-espacios de pentagrama por encima de la tercera línea y el extremo
-derecho a 4.5 también hacia arriba, y LilyPond seleccionaría la
-ligadura de fraseo de entre las candidatas que ha encontrado con sus
-extremos más cercanos a éstos:
+Una posibilidad sería mover los dos extremos de la ligadura de
+fraseo hacia arriba.  Podemos tratar de establecer el extremo
+izquierdo a 2.5 espacios de pentagrama por encima de la tercera
+línea y el extremo derecho a 4.5 también hacia arriba, y LilyPond
+seleccionaría la ligadura de fraseo de entre las candidatas que ha
+encontrado con sus extremos más cercanos a éstos:
 
 @lilypond[quote,verbatim,fragment,ragged-right]
 \once \override PhrasingSlur.positions = #'(2.5 . 4.5)
@@ -3369,73 +3503,91 @@ a'8 \( ( a''16 ) a'' \)
 @end lilypond
 
 Esto supone una mejora, pero ¿por qué no bajar un poco el extremo
-derecho de la ligadura de expresión?  Si lo probamos, veremos que no
-se puede hacer así.  Ello es a causa de que no existen ligaduras de
-expresión candidatas que estén más bajas que la que ya se ha
-seleccionado, y en este caso la propiedad @code{positions} no tiene
-ningún efecto.  Sin embargo, las ligaduras de unión, expresión y
-fraseo @emph{se pueden} colocar y conformar de manera muy exacta
-cuando se necesita.  Para aprender la manera de hacerlo, consulte
-@ruser{Modificación de ligaduras de unión y de expresión}.
-
-Presentamos otro ejemplo.  Vemos que la barra
-choca con las ligaduras:
+derecho de la ligadura de expresión?  Si lo probamos, veremos que
+no se puede hacer así.  Ello es a causa de que no existen
+ligaduras de expresión candidatas que estén más bajas que la que
+ya se ha seleccionado, y en este caso la propiedad
+@code{positions} no tiene ningún efecto.  Sin embargo, las
+ligaduras de unión, expresión y fraseo @emph{se pueden} colocar y
+conformar de manera muy exacta cuando se necesita.  Para aprender
+la manera de hacerlo, consulte @ruser{Modificación de ligaduras de
+unión y de expresión}.
+
+Presentamos otro ejemplo.  Vemos que la barra choca con las
+ligaduras:
 
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
 {
   \time 4/2
   <<
-    { c'1 ~ 2. e'8 f' }
+    \relative { c'1~ 2. e8 f }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    \relative {
+      e''8 e e e
+      e e e e
+      f2 g
+    }
   >>
   <<
-    { c'1 ~ 2. e'8 f' }
+    \relative { c'1~ 2. e8 f }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    \relative {
+      e''8 e e e
+      e e e e
+      f2 g
+    }
   >>
 }
 @end lilypond
 
 @noindent
 Esto se puede resolver manualmente elevando los dos extremos de la
-barra desde su posición a 1.81 espacios de pentagrama bajo la línea
-central hasta, digamos, 1 espacio:
+barra desde su posición a 1.81 espacios de pentagrama bajo la
+línea central hasta, digamos, 1 espacio:
 
 @cindex Beam, ejemplo de sobreescritura
 @cindex positions, propiedad, ejemplo
 
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
 {
   \time 4/2
   <<
-    { c'1 ~ 2. e'8 f' }
+    \relative { c'1~ 2. e8 f }
     \\
-    {
+    \relative {
       \override Beam.positions = #'(-1 . -1)
-      e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
+      e''8 e e e
+      e e e e
+      f2 g
     }
   >>
   <<
-    { c'1 ~ 2. e'8 f' }
+    \relative { c'1~ 2. e8 f }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    \relative {
+      e''8 e e e
+      e e e e
+      f2 g
+      \revert Beam.positions
+    }
   >>
 }
 @end lilypond
 
 @noindent
-Observe que la sobreescritura sigue aplicándose en la primera voz del
-segundo compás de corcheas, pero no a ninguna de las barras de la
-segunda voz.
+Observe que la sobreescritura sigue aplicándose en la segunda voz
+del segundo compás de corcheas, pero no a ninguna de las barras de
+la primera voz, ni siquiera a las que están en el segundo compás,
+que es posterior.  Tan pronto como la sobreescritura no pueda
+tener ningún efecto, debería ser revertida como se muestra.
 
 @node La propiedad force-hshift (forzar desplazamiento horizontal)
 @unnumberedsubsubsec La propiedad @code{force-hshift} (forzar desplazamiento horizontal)
 @translationof The force-hshift property
 
-Ahora podremos ver cómo aplicar las correcciones finales al ejemplo de
-Chopin que presentamos al final de @ref{Oigo voces}, que
-dejamos con este aspecto:
+Ahora podremos ver cómo aplicar las correcciones finales al
+ejemplo de Chopin que presentamos al final de @ref{Oigo voces},
+que dejamos con este aspecto:
 
 @lilypond[quote,verbatim,fragment,ragged-right]
 \new Staff \relative {
@@ -3455,11 +3607,7 @@ dejamos con este aspecto:
 @noindent
 Es necesario que la nota interior del primer acorde (el La bemol
 de la cuarta voz) no se aparte de la columna vertical de la nota
-aguda.  Podríamos esperar corregirlo mediante el uso de
-@code{\shiftOff}, pero esto produce advertencias sobre columnas de
-notas que colisionan.  En lugar de ello, ajustamos a cero el valor
-para esta nota de @code{force-hshift}, que es una propiedad de
-@code{NoteColumn}.
+aguda, por lo que usamos @code{\shiftOff}.
 
 En el segundo acorde preferimos que el Fa esté alineado con el La
 bemol y que la nota grave se coloque ligeramente a la derecha para
@@ -3486,8 +3634,7 @@ Presentamos a continuación el resultado final:
     { <ees, c>2 \once \override NoteColumn.force-hshift = 0.5 des }
     \\
     \\
-    { \once \override NoteColumn.force-hshift = 0 aes'2
-      \once \override NoteColumn.force-hshift = 0 f4 fes }
+    { \once \shiftOff aes'2 \once \shiftOff f4 fes }
   >> |
   <c ees aes c>1 |
 }
@@ -3498,20 +3645,22 @@ Presentamos a continuación el resultado final:
 @subsection Ejemplos reales de música
 @translationof Real music example
 
-Finalizaremos esta sección sobre los trucos mostrando los pasos que se
-deben tomar para tratar con un ejemplo complicado que necesita varios
-trucos para producir el resultado deseado.  El ejemplo se ha escogido
-deliberadamente para ilustrar el uso de la Referencia de la Notación
-para resolver problemas de notación poco comunes.  No es
-representativo del proceso de grabado más usual, por lo que ¡le
-recomendamos que no deje que estas dificultades le desanimen!
-¡Afortunadamente, las dificultades como éstas no son muy comunes!
+Finalizaremos esta sección sobre los trucos mostrando los pasos
+que se deben tomar para tratar con un ejemplo complicado que
+necesita varios trucos para producir el resultado deseado.  El
+ejemplo se ha escogido deliberadamente para ilustrar el uso de la
+Referencia de la Notación para resolver problemas de notación poco
+comunes.  No es representativo del proceso de grabado más usual,
+por lo que ¡le recomendamos que no deje que estas dificultades le
+desanimen!  ¡Afortunadamente, las dificultades como éstas no son
+muy comunes!
 
 El ejemplo está extraído de la Primera Balada de Chopin, Op. 23,
-compases 6 al 9, la transición entre el Lento inicial y el Moderato.
-Presentamos en primer lugar el aspecto que queremos que tenga el
-resultado, pero para evitar complicar demasiado el ejemplo hemos
-quitado las indicaciones dinámicas, las digitaciones y el pedal.
+compases 6 al 9, la transición entre el Lento inicial y el
+Moderato.  Presentamos en primer lugar el aspecto que queremos que
+tenga el resultado, pero para evitar complicar demasiado el
+ejemplo hemos quitado las indicaciones dinámicas, las digitaciones
+y el pedal.
 
 @c The following should appear as music without code
 @c This example should not be indexed
@@ -3526,7 +3675,7 @@ rhMusic = \relative {
     \time 6/4
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     <<
       { c,8 d fis bes a }
       \new Voice {
@@ -3581,22 +3730,23 @@ lhMusic = \relative {
 }
 @end lilypond
 
-Observamos en primer lugar que la parte de la mano derecha del tercer
-compás requiere cuatro voces.  Son las cinco corcheas unidas por una
-barra, la nota Do ligada, el Re blanca que se funde con el Re corchea,
-y el Fa sostenido negra con puntillo, que también está fundida con la
-corchea de su misma altura.  Todo lo demás está en una sola voz, así
-que lo más fácil es introducir estas tres voces adicionales, en el
-momento en que se necesiten y de forma temporal.  Si ha olvidado cómo
-hacerlo, lea las secciones @ref{Oigo voces} y @ref{Voces explícitas}.
-Aquí tomamos la decisión de utilizar voces instanciadas explícitamente
-para el pasaje polifónico, dado que LilyPond es más probable que pueda
-evitar las colisiones si todas las voces se instancian explícitamente
-de esta forma.
+Observamos en primer lugar que la parte de la mano derecha del
+tercer compás requiere cuatro voces.  Son las cinco corcheas
+unidas por una barra, la nota Do ligada, el Re blanca que se funde
+con el Re corchea, y el Fa sostenido negra con puntillo, que
+también está fundida con la corchea de su misma altura.  Todo lo
+demás está en una sola voz, así que lo más fácil es introducir
+estas tres voces adicionales, en el momento en que se necesiten y
+de forma temporal.  Si ha olvidado cómo hacerlo, lea las secciones
+@ref{Oigo voces} y @ref{Voces explícitas}.  Aquí tomamos la
+decisión de utilizar voces instanciadas explícitamente para el
+pasaje polifónico, dado que LilyPond es más probable que pueda
+evitar las colisiones si todas las voces se instancian
+explícitamente de esta forma.
 
 Vamos a comenzar introduciendo las notas como dos variables y
-disponiendo la estructura de pentagramas en un bloque Score, y veremos
-qué produce LilyPond de forma predeterminada:
+disponiendo la estructura de pentagramas en un bloque Score, y
+veremos qué produce LilyPond de forma predeterminada:
 
 @c line-width ensures no break
 @lilypond[quote,verbatim,ragged-right,line-width=6\in]
@@ -3649,12 +3799,12 @@ lhMusic = \relative {
 @end lilypond
 
 Todas las notas son correctas, pero el aspecto está lejos de ser
-satisfactorio.  La ligadura de unión choca con el cambio de compás,
-ciertas notas no se funden correctamente, y faltan algunos elementos de
-notación.  En primer lugar trataremos con lo más fácil.  Podemos
-añadir fácilmente la ligadura de expresión de la mano izquierda y la
-ligadura de fraseo de la mano derecha, pues todo ello se estudió en el
-Tutorial.  Al hacerlo así obtenemos:
+satisfactorio.  La ligadura de unión choca con el cambio de
+compás, ciertas notas no se funden correctamente, y faltan algunos
+elementos de notación.  En primer lugar trataremos con lo más
+fácil.  Podemos añadir fácilmente la ligadura de expresión de la
+mano izquierda y la ligadura de fraseo de la mano derecha, pues
+todo ello se estudió en el Tutorial.  Al hacerlo así obtenemos:
 
 @c line-width ensures no break
 @lilypond[quote,verbatim,ragged-right,line-width=6\in]
@@ -3707,24 +3857,24 @@ lhMusic = \relative {
 @end lilypond
 
 El primer compás ahora es correcto.  El segundo compás contiene un
-arpegio y acaba en una doble barra.  ¿Cómo los hacemos, pues no han
-sido mencionados en este Manual de Aprendizaje?  Aquí es donde tenemos
-que volver e la Referencia de la Notación.  Buscando la palabra
-@q{arpegio} y @q{línea divisoria} en el índice nos muestra rápidamente
-que un arpegio se hace añadiendo @code{\arpeggio} a un acorde, y la
-doble barra se produce por medio de la instrucción @code{\bar "||"}.
-Esto podemos hacerlo fácilmente.  A continuación tenemos que corregir
-la colisión entre la ligadura de unión y la indicación de compás.
-Esto se hace mejor moviendo la ligadura hacia arriba.  Estudiamos cómo
-mover objetos anteriormente en @ref{Mover objetos}, donde dice que
-los objetos que están situados de forma relativa al pentagrama se
-pueden mover verticalmente
-sobreescribiendo su propiedad @code{staff-position}, que
-se especifica en unidades de medio espacio de pentagrama respecto de
-la línea central del pentagrama.  Así pues, la sobreescritura
-siguiente colocada justo antes de la primera nota ligada subirá la
-ligadura 3.5 medios espacios de pentagrama por encima de la línea
-central:
+arpegio y acaba en una doble barra.  ¿Cómo los hacemos, pues no
+han sido mencionados en este Manual de Aprendizaje?  Aquí es donde
+tenemos que volver e la Referencia de la Notación.  Buscando la
+palabra @q{arpegio} y @q{línea divisoria} en el índice nos muestra
+rápidamente que un arpegio se hace añadiendo @code{\arpeggio} a un
+acorde, y la doble barra se produce por medio de la instrucción
+@code{\bar "||"}.  Esto podemos hacerlo fácilmente.  A
+continuación tenemos que corregir la colisión entre la ligadura de
+unión y la indicación de compás.  Esto se hace mejor moviendo la
+ligadura hacia arriba.  Estudiamos cómo mover objetos
+anteriormente en @ref{Mover objetos}, donde dice que los objetos
+que están situados de forma relativa al pentagrama se pueden mover
+verticalmente sobreescribiendo su propiedad @code{staff-position},
+que se especifica en unidades de medio espacio de pentagrama
+respecto de la línea central del pentagrama.  Así pues, la
+sobreescritura siguiente colocada justo antes de la primera nota
+ligada subirá la ligadura 3.5 medios espacios de pentagrama por
+encima de la línea central:
 
 @code{\once \override Tie.staff-position = #3.5}
 
@@ -3782,18 +3932,19 @@ lhMusic = \relative {
 }
 @end lilypond
 
-Vayamos ahora al tercer compás y comienzo de la sección Moderato.  El
-tutorial nos enseñó cómo escribir texto en negrita mediante la
-instrucción @code{\markup}, por lo que añadir @qq{Moderato} en negrita
-es fácil.  Pero ahora ¿cómo fundimos notas que están en distintas
-voces?  Aquí es donde debemos volver a buscar ayuda en el manual de
-Referencia de la notación. Al buscar la palabra @qq{merge} (mezcla) en
-el índice de la Referencia de la notación llegamos rápidamente a las
-instrucciones para mezclar notas con distinta cabeza y con o sin
-puntillo, en @ruser{Resolución de las colisiones}.  En nuestro ejemplo tenemos
-que fusionar ambos tipos de nota en el transcurso de la sección
-polifónica del compás 3; por tanto, en virtud de la información que
-aparece en la Referencia de la Notación, escribimos
+Vayamos ahora al tercer compás y comienzo de la sección Moderato.
+El tutorial nos enseñó cómo escribir una indicación de tempo
+mediante la instrucción @code{\tempo}, por lo que añadir
+@qq{Moderato} es fácil.  Pero ahora ¿cómo fundimos notas que están
+en distintas voces?  Aquí es donde debemos volver a buscar ayuda
+en el manual de Referencia de la notación. Al buscar la palabra
+@qq{merge} (mezcla) en el índice de la Referencia de la notación
+llegamos rápidamente a las instrucciones para mezclar notas con
+distinta cabeza y con o sin puntillo, en @ruser{Resolución de las
+colisiones}.  En nuestro ejemplo tenemos que fusionar ambos tipos
+de nota en el transcurso de la sección polifónica del compás 3;
+por tanto, en virtud de la información que aparece en la
+Referencia de la Notación, escribimos
 
 @example
 \mergeDifferentlyHeadedOn
@@ -3820,7 +3971,7 @@ rhMusic = \relative {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -3867,21 +4018,21 @@ lhMusic = \relative {
 }
 @end lilypond
 
-Estas sobreescrituras han fundido los dos Fa sostenido, pero no los
-dos Re.  ¿Por qué no?  La respuesta está en la misma sección de la
-Referencia de la Notación: las notas que se fusionan deben tener las
-plicas en direcciones opuestas y dos notas no se pueden fusionar bien
-si hay una tercera nota en la misma columna.  Aquí los dos Re tienen
-las plicas hacia arriba y hay una tercera nota: el Do.  Sabemos cómo
-cambiar la dirección de la plica usando @code{\stemDown}, y la
-Referencia de la Notación también explica cómo mover el Do: aplicar un
-desplazamiento usando una de las instrucciones @code{\shift}.  Pero
-¿cuál?  El Do está en la voz dos que tiene desactivado el
-desplazamiento, y los dos Re están en las voces uno y tres, que tienen
-el desplazamiento desactivado y activado, respectivamente.  Por ello
-tenemos que desplazar el Do un nivel más todavía, usando
-@code{\shiftOnn} para evitar que interfiera con los dos Re.  Al
-aplicar estos cambios obtenemos:
+Estas sobreescrituras han fundido los dos Fa sostenido, pero no
+los dos Re.  ¿Por qué no?  La respuesta está en la misma sección
+de la Referencia de la Notación: las notas que se fusionan deben
+tener las plicas en direcciones opuestas y dos notas no se pueden
+fusionar bien si hay una tercera nota en la misma columna.  Aquí
+los dos Re tienen las plicas hacia arriba y hay una tercera nota:
+el Do.  Sabemos cómo cambiar la dirección de la plica usando
+@code{\stemDown}, y la Referencia de la Notación también explica
+cómo mover el Do: aplicar un desplazamiento usando una de las
+instrucciones @code{\shift}.  Pero ¿cuál?  El Do está en la voz
+dos que tiene desactivado el desplazamiento, y los dos Re están en
+las voces uno y tres, que tienen el desplazamiento desactivado y
+activado, respectivamente.  Por ello tenemos que desplazar el Do
+un nivel más todavía, usando @code{\shiftOnn} para evitar que
+interfiera con los dos Re.  Al aplicar estos cambios obtenemos:
 
 @cindex Tie, ejemplo de sobreescritura
 @cindex staff-position, propiedad, ejemplo
@@ -3895,7 +4046,7 @@ rhMusic = \relative {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -3945,12 +4096,12 @@ lhMusic = \relative {
 }
 @end lilypond
 
-Ya casi está.  Solamente quedan dos problemas: la plica hacia abajo
-sobre el Re fusionado no tendría que estar ahí, y el Do estaría mejor
-colocado a la derecha de los Re.  Sabemos cómo hacer las dos cosas a
-partir de trucos anteriores: hacemos la plica transparente, y movemos
-el Do con la propiedad @code{force-hshift}.  Aquí tenemos el resultado
-final:
+Ya casi está.  Solamente quedan dos problemas: la plica hacia
+abajo sobre el Re fusionado no tendría que estar ahí, y el Do
+estaría mejor colocado a la derecha de los Re.  Sabemos cómo hacer
+las dos cosas a partir de trucos anteriores: hacemos la plica
+transparente, y movemos el Do con la propiedad
+@code{force-hshift}.  Aquí tenemos el resultado final:
 
 @cindex NoteColumn, ejemplo de sobreescritura
 @cindex force-hshift, propiedad, ejemplo
@@ -3966,7 +4117,7 @@ rhMusic = \relative {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -4046,14 +4197,8 @@ lhMusic = \relative {
 * Simulación de un calderón en el MIDI::
 @end menu
 
-@cindex transparent, uso de la propiedad
-@cindex objetos, hace invisibles
 @cindex eliminar objetos
 @cindex objetos, eliminar
-@cindex objetos, ocultar
-@cindex ocultar objetos
-@cindex invisibles, objetos
-@cindex objetos invisibles
 
 @node Unir notas entre voces distintas
 @unnumberedsubsubsec Unir notas entre voces distintas
@@ -4062,78 +4207,42 @@ lhMusic = \relative {
 @cindex ligar notas entre voces distintas
 
 El ejemplo siguiente muestra cómo conectar notas que están en
-distintas voces utilizando ligaduras de unión.  Normalmente sólo se
-pueden conectar mediante ligaduras de unión dos notas que estén en la
-misma voz.  Usando dos voces, con las notas ligadas en una de ellas:
+distintas voces utilizando ligaduras de unión.  Normalmente sólo
+se pueden conectar mediante ligaduras de unión notas que estén en
+la misma voz.  Usando dos voces, con las notas ligadas en una de
+ellas:
 
 @lilypond[quote]
 << { b'8~ 8\noBeam } \\ { b'8[ g'] } >>
 @end lilypond
 
 @noindent
-y borrando la primera plica hacia arriba en esa voz, da la impresión
-de que la ligadura se cruza entre las voces:
+y borrando la primera plica (con su corchete) hacia arriba en esa
+voz, da la impresión de que la ligadura se cruza entre las voces:
 
-@cindex Stem, ejemplo de sobreescritura
-@cindex transparent, propiedad, ejemplo
-
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
-  {
-    \tweak Stem.transparent ##t
-    b8~ 8\noBeam
-  }
-\\
-  { b8[ g] }
->>
-@end lilypond
-
-Para estar seguros de que la plica que acabamos de borrar no aprieta
-demasiado a la ligadura, podemos alargar la plica estableciendo su
-valor de longitud @code{length} a @code{8},
+@funindex \omit
+@cindex Stem, example of removing
+@cindex Flag, example of removing
+@cindex @code{\omit}, example
+@cindex example of @code{\omit}
 
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,verbatim]
 <<
   {
-    \tweak Stem.transparent ##t
-    \tweak Stem.length #8
-    b8~ 8\noBeam
+    \once \omit Stem
+    \once \omit Flag
+    b'8~ 8\noBeam
   }
 \\
-  { b8[ g] }
+  { b'8[ g'] }
 >>
 @end lilypond
 
-@funindex \single
-@cindex tweak, generado a partir de una sobreescritura
-Ahora bien, para la @emph{sobreescritura} de la transparencia de
-un objeto gráfico, podríamos haber usado la abreviatura
-@code{\hide} como se explicó anteriormente.  El trucaje mediante
-@qq{tweak} es una operación diferente que afecta solamente a las
-propiedades generadas a partir de una sola expresión musical.
-Resulta que podemos convertir los overrides o sobreescrituras en
-tweaks o trucajes utilizando @code{\single}, haciendo posible
-volver a escribir el ejemplo anterior como
-
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
-  {
-    \single \hide Stem
-    \single \hide Flag
-    \tweak Stem.length #8
-    b8~ 8\noBeam
-  }
-\\
-  { b8[ g] }
->>
-@end lilypond
+@seealso
+Manual de aprendizaje
+@ref{El prefijo once,,El prefijo @code{@bs{}once}},
+@ref{La propiedad stencil (sello)}.
 
-En este caso particular, la diferencia con @code{\once \hide} no
-es muy apreciable.  Es importante cuando existen varios objetos en
-el mismo punto del tiempo musical (como las notas de un acorde).
-En tal caso, @code{\once} afecta a todos los objetos, mientras que
-@code{\single} solo afecta a uno, aquél que se genera por parte de
-la expresión musical que le sigue inmediatamente.
 
 @node Simulación de un calderón en el MIDI
 @unnumberedsubsubsec Simulación de un calderón en el MIDI
@@ -4143,21 +4252,22 @@ la expresión musical que le sigue inmediatamente.
 @cindex fermata, realización en MIDI
 
 Para los objetos fuera-del-pentagrama, normalmente es mejor
-sobreescribir la propiedad @code{stencil} («sello») del objeto que su
-propiedad @code{transparent} cuando desee quitarlos de la salida
-impresa.  Mediante el establecimiento de la propiedad @code{stencil}
-de un objeto al valor @code{#f} podemos quitar el objeto por completo
-de la salida impresa.  Esto significa que no tiene efecto sobre la
-colocación de otros objetos que pudieran colocarse en relación a él.
-
-Por ejemplo, si quisiéramos cambiar la indicación metronómica con el
-propósito de simular un calderón en la salida MIDI, seguramente no
-querríamos que la indicación metronómica apareciese en la salida
-impresa, y no querríamos influir sobre la separación entre los dos
-sistemas ni sobre la colocación de las anotaciones adyacentes sobre el
-pentagrama.  Por lo tanto, establecer su propiedad @code{stencil} al
-valor @code{#f} sería la mejor manera.  Mostramos aquí el efecto de
-los dos métodos:
+sobreescribir la propiedad @code{stencil} («sello») del objeto que
+su propiedad @code{transparent} cuando desee quitarlos de la
+salida impresa.  Mediante el establecimiento de la propiedad
+@code{stencil} de un objeto al valor @code{#f} podemos quitar el
+objeto por completo de la salida impresa.  Esto significa que no
+tiene efecto sobre la colocación de otros objetos que pudieran
+colocarse en relación a él.
+
+Por ejemplo, si quisiéramos cambiar la indicación metronómica con
+el propósito de simular un calderón en la salida MIDI, seguramente
+no querríamos que la indicación metronómica apareciese en la
+salida impresa, y no querríamos influir sobre la separación entre
+los dos sistemas ni sobre la colocación de las anotaciones
+adyacentes sobre el pentagrama.  Por lo tanto, establecer su
+propiedad @code{stencil} al valor @code{#f} sería la mejor manera.
+Mostramos aquí el efecto de los dos métodos:
 
 @cindex MetronomeMark, ejemplo de sobreescritura
 @cindex transparent, propiedad, ejemplo
@@ -4190,7 +4300,7 @@ los dos métodos:
     % Visible tempo marking
     \tempo 4=120
     a'4 a a
-    \once \override Score.MetronomeMark.stencil = ##f
+    \once \omit Score.MetronomeMark
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
     a4\fermata |
@@ -4204,11 +4314,12 @@ los dos métodos:
 @end lilypond
 
 @noindent
-Ambos métodos quitan de la salida impresa la indicación metronómica
-que alarga el calderón, y los dos afectan al tempo del MIDI tal y como
-queríamos, pero la indicación metronómica transparente de la primera
-línea fuerza una colocación muy alta de la indicación de tempo que
-sigue, mientras que la segunda (con el sello suprimido) no lo hace.
+Ambos métodos quitan de la salida impresa la indicación
+metronómica que alarga el calderón, y los dos afectan al tempo del
+MIDI tal y como queríamos, pero la indicación metronómica
+transparente de la primera línea fuerza una colocación muy alta de
+la indicación de tempo que sigue, mientras que la segunda (con el
+sello suprimido) no lo hace.
 
 @seealso
 Glosario musical:
@@ -4224,19 +4335,20 @@ Glosario musical:
 @cindex ajustes de disposición, usar variables para hacer
 
 Las instrucciones de sobreescritura son con frecuencia largas y
-tediosas de escribir, y se tienen que escribir de forma absolutamente
-correcta.  Si las mismas sobreescrituras se van a utilizar muchas
-veces, podría merecer la pena definir variables para guardarlas.
-
-Supongamos que queremos realzar ciertas palabras de la letra de una
-canción imprimiéndolas en cursiva y negrita.  Las instrucciones
-@code{\italic} y @code{\bold} sólo funcionan dentro de la letra de las
-canciones si están incluidas, junto con la palabra o palabras que se
-pretenden modificar, dentro de un @code{\markup}, lo que las hace
-tediosas de escribir. La necesidad de incluir las propias palabras
-impide que se puedan usar en variables simples. ¿Podríamos, como
-alternativa, utilizar las instrucciones @code{\override} y
-@code{\revert}?
+tediosas de escribir, y se tienen que escribir de forma
+absolutamente correcta.  Si las mismas sobreescrituras se van a
+utilizar muchas veces, podría merecer la pena definir variables
+para guardarlas.
+
+Supongamos que queremos realzar ciertas palabras de la letra de
+una canción imprimiéndolas en cursiva y negrita.  Las
+instrucciones @code{\italic} y @code{\bold} sólo funcionan dentro
+de la letra de las canciones si están incluidas, junto con la
+palabra o palabras que se pretenden modificar, dentro de un
+@code{\markup}, lo que las hace tediosas de escribir. La necesidad
+de incluir las propias palabras impide que se puedan usar en
+variables simples. ¿Podríamos, como alternativa, utilizar las
+instrucciones @code{\override} y @code{\revert}?
 
 @example
 @code{\override Lyrics.LyricText.font-shape = #'italic}
@@ -4246,15 +4358,16 @@ alternativa, utilizar las instrucciones @code{\override} y
 @code{\revert Lyrics.LyricText.font-series}
 @end example
 
-Estas instrucciones también serían extremadamente tediosas de escribir
-si hubiera muchas palabras que quisiéramos subrayar.  Pero sí
-@emph{podemos} definirlas como dos variables y usarlas para delimitar
-las palabras que destacar.  Otra ventaja de la utilización de
-variables para estas sobreescrituras es que ya no son necesarios los
-espacios que rodean al punto, puesto que no se interpretan
-directamente en el modo @code{\lyricmode}.  He aquí un ejemplo de
-esto, aunque en la práctica quizá elegiríamos unos nombres de variable
-más cortos para que fueran más rápidos de teclear:
+Estas instrucciones también serían extremadamente tediosas de
+escribir si hubiera muchas palabras que quisiéramos subrayar.
+Pero sí @emph{podemos} definirlas como dos variables y usarlas
+para delimitar las palabras que destacar.  Otra ventaja de la
+utilización de variables para estas sobreescrituras es que ya no
+son necesarios los espacios que rodean al punto, puesto que no se
+interpretan directamente en el modo @code{\lyricmode}.  He aquí un
+ejemplo de esto, aunque en la práctica quizá elegiríamos unos
+nombres de variable más cortos para que fueran más rápidos de
+teclear:
 
 @cindex LyricText, ejemplo de sobreescritura
 @cindex font-shape, propiedad, ejemplo
@@ -4320,15 +4433,15 @@ VerseFour = \lyricmode {
 @translationof Style sheets
 
 La salida que produce LilyPond se puede modificar profundamente;
-consulte @ref{Trucar la salida} para leer detalles sobre este asunto.
-Pero ¿qué ocurre si tiene muchos archivos a los que les quiere aplicar
-sus propios trucos?  O ¿qué ocurre si, sencillamente, quiere separar
-los trucos de la propia música?  Todo esto es bastante fácil de
-conseguir.
+consulte @ref{Trucar la salida} para leer detalles sobre este
+asunto.  Pero ¿qué ocurre si tiene muchos archivos a los que les
+quiere aplicar sus propios trucos?  O ¿qué ocurre si,
+sencillamente, quiere separar los trucos de la propia música?
+Todo esto es bastante fácil de conseguir.
 
-Veamos un ejemplo.  No se preocupe si no entiende
-las partes que tienen todos los @code{#()}.  Esto se explicará en
-@ref{Trucos avanzados con Scheme}.
+Veamos un ejemplo.  No se preocupe si no entiende las partes que
+tienen todos los @code{#()}.  Esto se explicará en @ref{Trucos
+avanzados con Scheme}.
 
 @lilypond[quote,verbatim,ragged-right]
 mpdolce =
@@ -4353,13 +4466,13 @@ inst =
 @end lilypond
 
 Hagamos algo respecto a las definiciones @code{mpdolce} e
-@code{inst}.  Éstas producen la salida que deseamos, pero quizá las
-querríamos utilizar en otra pieza.  Podríamos simplemente copiarlas y
-pegarlas al principio de cada archivo, pero sería bastante molesto.
-También hace que se queden las definiciones a la vista dentro de
-nuestros archivos de música, y yo personalmente encuentro todos los
-@code{#()} bastante poco estéticos.  Los vamos a esconder dentro de
-otro archivo:
+@code{inst}.  Éstas producen la salida que deseamos, pero quizá
+las querríamos utilizar en otra pieza.  Podríamos simplemente
+copiarlas y pegarlas al principio de cada archivo, pero sería
+bastante molesto.  También hace que se queden las definiciones a
+la vista dentro de nuestros archivos de música, y yo personalmente
+encuentro todos los @code{#()} bastante poco estéticos.  Los vamos
+a esconder dentro de otro archivo:
 
 @example
 %%% guardar esto en un archivo con el nombre "definiciones.ily"
@@ -4377,10 +4490,10 @@ inst =
 
 Haremos referencia a este archivo utilizando la instrucción
 @code{\include} al principio del archivo de música (la extensión
-@code{.ily} se utiliza para distinguir este archivo de inclusión --que
-se supone que no debe ser procesado de forma independiente-- del
-archivo principal).  Ahora modificaremos la música (guardemos este
-archivo como @file{musica.ly}).
+@code{.ily} se utiliza para distinguir este archivo de inclusión
+--que se supone que no debe ser procesado de forma independiente--
+del archivo principal).  Ahora modificaremos la música (guardemos
+este archivo como @file{musica.ly}).
 
 @c  We have to do this awkward example/lilypond-non-verbatim
 @c  because we can't do the \include stuff in the manual.
@@ -4423,9 +4536,9 @@ inst =
 Eso tiene mejor aspecto, pero haremos algunos cambios más.  El
 glissando es difícil de ver, así que lo haremos más grueso y lo
 acercaremos a las cabezas de las notas.  Pondremos la indicación
-metronómica encima de la clave, en lugar de ir encima de la primera
-nota.  Y por último, mi profesor de composición odia las indicaciones
-de compás @q{C}, así que la convertiremos en @q{4/4}.
+metronómica encima de la clave, en lugar de ir encima de la
+primera nota.  Y por último, mi profesor de composición odia las
+indicaciones de compás @q{C}, así que la convertiremos en @q{4/4}.
 
 Sin embargo, no debemos cambiar el archivo @file{musica.ly}.
 Sustituyamos nuestro archivo @file{definiciones.ily} con éste:
@@ -4500,13 +4613,13 @@ inst =
 }
 @end lilypond
 
-¡Eso tiene un aspecto mucho mejor!  Ahora suponga que quiere publicar
-esta pieza.  A mi profesor de composición no le gustan las
-indicaciones de compás @q{C}, pero yo les tengo cierto cariño.
+¡Eso tiene un aspecto mucho mejor!  Ahora suponga que quiere
+publicar esta pieza.  A mi profesor de composición no le gustan
+las indicaciones de compás @q{C}, pero yo les tengo cierto cariño.
 Copiaremos el archivo actual @file{definiciones.ily} a
-@file{publicar-web.ily} y modificaremos éste.  Como el propósito de
-esta música es producir un PDF que va a mostrarse en la pantalla,
-también vamos a aumentar el tamaño general de la salida.
+@file{publicar-web.ily} y modificaremos éste.  Como el propósito
+de esta música es producir un PDF que va a mostrarse en la
+pantalla, también vamos a aumentar el tamaño general de la salida.
 
 @example
 %%%  publicar-web.ily
@@ -4577,8 +4690,8 @@ inst =
 
 Ahora, en la música, simplemente sustituyo @code{\include
 "definiciones.ily"} por @code{\include "publicar-web.ily"}.  Por
-supuesto, podríamos hacer esto aún más práctico.  Podríamos hacer un
-archivo @file{definiciones.ily} que contuviera solamente las
+supuesto, podríamos hacer esto aún más práctico.  Podríamos hacer
+un archivo @file{definiciones.ily} que contuviera solamente las
 definiciones de @code{mpdolce} y de @code{inst}, un archivo
 @file{publicar-web.ily} que contuviera solamente la sección
 @code{\layout} que se mostró en el ejemplo, y un archivo
@@ -4594,10 +4707,11 @@ producir la salida que le gusta a mi profesor.  El comienzo de
 %\include "universidad.ily"
 @end example
 
-Este enfoque puede ser útil incluso si va a producir sólo un conjunto
-de particellas.  Yo utilizo media docena de archivos de @q{hojas de
-estilo} para mis proyectos.  Comienzo todos los archivos de música con
-@code{\include "../global.ily"}, que contiene
+Este enfoque puede ser útil incluso si va a producir sólo un
+conjunto de particellas.  Yo utilizo media docena de archivos de
+@q{hojas de estilo} para mis proyectos.  Comienzo todos los
+archivos de música con @code{\include "../global.ily"}, que
+contiene
 
 @example
 %%%   global.ily
@@ -4616,16 +4730,17 @@ estilo} para mis proyectos.  Comienzo todos los archivos de música con
 @subsection Otras fuentes de información
 @translationof Other sources of information
 
-La documentación del manual de Referencia de Funcionamiento Interno
-contiene montañas de información sobre LilyPond, pero se puede obtener
-más información aún leyendo los archivos internos de LilyPond.  Para
-echarles un vistazo, en primer lugar debe buscar la carpeta
-correspondiente a su sistema.  La ubicación de esta carpeta depende
-(a) de si consiguió el programa LilyPond descargando un binario
-precompilado desde el sitio web lilypond.org o si lo instaló mediante
-un gestor de paquetes (es decir, distribuido con GNU/Linux, o instalado
-bajo fink o cygwin) o fue compilado a partir de la fuente, y (b) de
-qué sistema operativo está utilizando:
+La documentación del manual de Referencia de Funcionamiento
+Interno contiene montañas de información sobre LilyPond, pero se
+puede obtener más información aún leyendo los archivos internos de
+LilyPond.  Para echarles un vistazo, en primer lugar debe buscar
+la carpeta correspondiente a su sistema.  La ubicación de esta
+carpeta depende (a) de si consiguió el programa LilyPond
+descargando un binario precompilado desde el sitio web
+lilypond.org o si lo instaló mediante un gestor de paquetes (es
+decir, distribuido con GNU/Linux, o instalado bajo fink o cygwin)
+o fue compilado a partir de la fuente, y (b) de qué sistema
+operativo está utilizando:
 
 @subsubsubheading Descargado de lilypond.org
 
@@ -4645,9 +4760,9 @@ Diríjase a
 @end example
 
 bien haciendo @code{cd} hacia este directorio desde el Terminal, o
-bien manteniendo pulsada la tecla de Control y haciendo click sobre la
-aplicación de LilyPond, y allí eligiendo @q{Mostrar el contenido del
-paquete}.
+bien manteniendo pulsada la tecla de Control y haciendo click
+sobre la aplicación de LilyPond, y allí eligiendo @q{Mostrar el
+contenido del paquete}.
 
 @item Windows
 
@@ -4660,11 +4775,10 @@ Mediante el Explorador de Windows, diríjase a
 
 @subsubsubheading Instalado mediante un gestor de paquetes o compilado a partir de la fuente
 
-Diríjase a
-@file{@var{PREFIJO}/share/lilypond/@var{X.Y.Z}/}, donde @var{PREFIJO}
-se encuentra determinado por su administrador de paquetes o guión
-@code{configure}, y @var{X.Y.Z} es el número de la versión de
-LilyPond.
+Diríjase a @file{@var{PREFIJO}/share/lilypond/@var{X.Y.Z}/}, donde
+@var{PREFIJO} se encuentra determinado por su administrador de
+paquetes o guión @code{configure}, y @var{X.Y.Z} es el número de
+la versión de LilyPond.
 
 @smallspace
 
@@ -4675,14 +4789,15 @@ Dentro de esta carpeta, las dos subcarpetas interesantes son
 @item @file{scm/} - contiene archivos en formato Scheme
 @end itemize
 
-Vamos a comenzar observando algunos archivos que están en @file{ly/}.
-Abra @file{ly/property-init.ly} con un editor de textos.  El mismo que
-usaría normalmente para los archivos @file{.ly} servirá perfectamente.
-Este archivo contiene las definiciones de todas las instrucciones
-estándar predefinidas de LilyPond, como por ejemplo @code{\stemUp} y
-@code{\slurDotted}.  Podrá ver que no son nada más que definiciones de
-variables que contienen una o varias instrucciones @code{\override}.
-Por ejemplo, @code{/tieDotted} está definido de tal forma que su valor
+Vamos a comenzar observando algunos archivos que están en
+@file{ly/}.  Abra @file{ly/property-init.ly} con un editor de
+textos.  El mismo que usaría normalmente para los archivos
+@file{.ly} servirá perfectamente.  Este archivo contiene las
+definiciones de todas las instrucciones estándar predefinidas de
+LilyPond, como por ejemplo @code{\tieUp} y @code{\slurDotted}.
+Podrá ver que no son nada más que definiciones de variables que
+contienen una o varias instrucciones @code{\override}.  Por
+ejemplo, @code{\tieDotted} está definido de tal forma que su valor
 es:
 
 @example
@@ -4714,15 +4829,16 @@ Los siguientes son los archivos más útiles que se encuentran en
   @tab Definiciones de las instrucciones predefinidas relacionadas con los objetos de extensión
 @end multitable
 
-Otros ajustes (como las definiciones de las instrucciones de marcado)
-se almacenan como archivos @file{.scm} (de Scheme).  El lenguaje de
-programación Scheme se utiliza para proporcionar un interfaz
-programable en el funcionamiento interno de LilyPond.  Cualquier
-explicación adicional sobre estos archivos se encuentra por el momento
-fuera del ámbito de este manual, porque se requieren conocimientos del
-lenguaje Scheme.  Se advierte a los usuarios que se necesita una
-importante cantidad de conocimientos técnicos o de tiempo para
-comprender el lenguaje Scheme y estos archivos (véase @rextend{Tutorial de Scheme}).
+Otros ajustes (como las definiciones de las instrucciones de
+marcado) se almacenan como archivos @file{.scm} (de Scheme).  El
+lenguaje de programación Scheme se utiliza para proporcionar un
+interfaz programable en el funcionamiento interno de LilyPond.
+Cualquier explicación adicional sobre estos archivos se encuentra
+por el momento fuera del ámbito de este manual, porque se
+requieren conocimientos del lenguaje Scheme.  Se advierte a los
+usuarios que se necesita una importante cantidad de conocimientos
+técnicos o de tiempo para comprender el lenguaje Scheme y estos
+archivos (véase @rextend{Tutorial de Scheme}).
 
 Si ya tiene estos conocimientos, los archivos de Scheme que pueden
 interesarle son:
@@ -4753,21 +4869,23 @@ interesarle son:
 
 Aunque es posible hacer muchas cosas con las instrucciones
 @code{\override} y @code{\tweak} , tenemos una forma incluso más
-poderosa de modificar el funcionamiento de LilyPond, a través de un
-interface programable hacia las operaciones internas de LilyPond.  Se
-puede incorporar código escrito en el lenguaje de programación Scheme,
-directamente en el mecanismo de funcionamiento de LilyPond.  Por
-supuesto, para hacer esto se necesitan al menos unos conocimientos
-básicos de programación en Scheme, y damos una introducción en el
-@rextend{Tutorial de Scheme}.
-
-Como ejemplo que ilustra una de las muchas posibilidades, en lugar de
-dar a una propiedad un valor constante, se puede establecer al
+poderosa de modificar el funcionamiento de LilyPond, a través de
+un interface programable hacia las operaciones internas de
+LilyPond.  Se puede incorporar código escrito en el lenguaje de
+programación Scheme, directamente en el mecanismo de
+funcionamiento de LilyPond.  Por supuesto, para hacer esto se
+necesitan al menos unos conocimientos básicos de programación en
+Scheme, y damos una introducción en el @rextend{Tutorial de
+Scheme}.
+
+Como ejemplo que ilustra una de las muchas posibilidades, en lugar
+de dar a una propiedad un valor constante, se puede establecer al
 resultado de un procedimiento de Scheme que se invoca cada vez que
-LilyPond accede a esta propiedad.  La propiedad se puede establecer
-dinámicamente a un valor determinado por el procedimiento en el
-momento en que se invoca.  En este ejemplo damos a las cabezas de las
-notas un color que depende de su posición dentro del pentagrama.
+LilyPond accede a esta propiedad.  La propiedad se puede
+establecer dinámicamente a un valor determinado por el
+procedimiento en el momento en que se invoca.  En este ejemplo
+damos a las cabezas de las notas un color que depende de su
+posición dentro del pentagrama.
 
 @cindex x11-color, función, ejemplo de utilización
 @cindex NoteHead, ejemplo de sobreescritura
@@ -4796,7 +4914,7 @@ notas un color que depende de su posición dentro del pentagrama.
 }
 @end lilypond
 
-Se pueden encontrar ejemplos adicionales que muestran la utilización
-de estos interfaces programables, en
+Se pueden encontrar ejemplos adicionales que muestran la
+utilización de estos interfaces programables, en
 @rextendnamed{Callback functions,Funciones de callback}.
 
index b187a81e0f82371c1534f4a82fc559f4b3b09bff..a70efba00cb2209b6598f67464106565771d25dd 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 00cd4ff0b8dc4978344ba966bec06ddbc445f7e9
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -20,7 +20,12 @@ lector está familiarizado con el material que hay en
 @rlearningnamed{Top, Manual de aprendizaje}.
 @end macro
 
-@c `Notation Reference' was born 1999-10-11 with git commit 940dda0...
+@c `Notation Reference' was born 1998-08-14 with this commit:
+@c release: 1.0.2
+@c author: Han-Wen Nienhuys
+@c commit: a3a44f9f3c581b6824b3a65f9039656693e09bbf
+@c   file: Documentation/tex/refman.yo
+
 @macro copyrightDeclare
 Copyright @copyright{} 1999--2015 por los autores.
 @end macro
@@ -89,12 +94,12 @@ Apéndices
 @translationof LilyPond command index
 
 Este índice relaciona todas las instrucciones y palabras clave de
-LilyPond, con enlaces a aquellas secciones del manual que describen o
-se ocupan de su uso.  Cada uno de los enlaces consta de dos partes.
-La primera parte apunta a la situación exacta del manual en que
-aparece la instrucción o palabra clave; la segunda parte apunta al
-comienzo de la sección correspondiente del manual en la que aparece la
-instrucción o palabra clave.
+LilyPond, con enlaces a aquellas secciones del manual que
+describen o se ocupan de su uso.  Cada uno de los enlaces consta
+de dos partes.  La primera parte apunta a la situación exacta del
+manual en que aparece la instrucción o palabra clave; la segunda
+parte apunta al comienzo de la sección correspondiente del manual
+en la que aparece la instrucción o palabra clave.
 
 @printindex ky
 
@@ -102,14 +107,14 @@ instrucción o palabra clave.
 @appendix Índice de LilyPond
 @translationof LilyPond index
 
-Además de todas las instrucciones y palabras clave de LilyPond, este
-índice es una lista de términos musicales y las palabras que tienen
-relación con cada uno de ellos, con enlaces a aquellas secciones del
-manual que describen o se ocupan de dicho término.  Cada uno de los
-enlaces consta de dos partes.  La primera parte apunta a la situación
-exacta del manual en que aparece el término; la segunda parte apunta
-al comienzo de la sección correspondiente del manual en la que se
-discute dicho término.
+Además de todas las instrucciones y palabras clave de LilyPond,
+este índice es una lista de términos musicales y las palabras que
+tienen relación con cada uno de ellos, con enlaces a aquellas
+secciones del manual que describen o se ocupan de dicho término.
+Cada uno de los enlaces consta de dos partes.  La primera parte
+apunta a la situación exacta del manual en que aparece el término;
+la segunda parte apunta al comienzo de la sección correspondiente
+del manual en la que se discute dicho término.
 
 @printindex cp
 
index 91ddd9ab3e47b390736cd2aa0e0f405a852b9963..8e102bf6559fc3de85dbca4a6f96ca1045875d87 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-Translation of GIT committish: a43fe59b0205af99f84532935b103d0c064b4526
+Translation of GIT committish: 28add695953862ef4a87f9fbeadd1d02dc299244
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -14,35 +14,38 @@ Translation of GIT committish: a43fe59b0205af99f84532935b103d0c064b4526
 @chapter Cambiar los valores por omisión
 @translationof Changing defaults
 
-El objetivo del diseño de LilyPond es proporcionar la más alta calidad
-de los resultados, de forma predeterminada.  A pesar de ello, podría
-tener que cambiar este resultado predeterminado.  La disposición sobre
-el papel se controla a través de un amplio número de @q{botones e
-interruptores} llamados en su conjunto @q{propiedades}.  En el Manual
-de aprendizaje podemos encontrar una introducción en forma de tutorial
-al acceso y modificación de estas propiedades, véase
-@rlearning{Trucar la salida}.  Éste debería leerse en primer lugar.
-Este capítulo cubre un terreno similar, pero con un estilo más
-adecuado para un manual de referencia.
+El objetivo del diseño de LilyPond es proporcionar la más alta
+calidad de los resultados, de forma predeterminada.  A pesar de
+ello, podría tener que cambiar este resultado predeterminado.  La
+disposición sobre el papel se controla a través de un amplio
+número de @q{botones e interruptores} llamados en su conjunto
+@q{propiedades}.  En el Manual de aprendizaje podemos encontrar
+una introducción en forma de tutorial al acceso y modificación de
+estas propiedades, véase @rlearning{Trucar la salida}.  Éste
+debería leerse en primer lugar.  Este capítulo cubre un terreno
+similar, pero con un estilo más adecuado para un manual de
+referencia.
 
 @cindex Referencia de funcionamiento interno
 
-La descripción definitiva de los controles que están disponibles para
-su ajuste fino están en un documento aparte: la
-@rinternalsnamed{Top,Referencia de funcionamiento interno}.
-Dicho manual relaciona todas
-las variables, funciones y opciones que se encuentran disponibles en
-LilyPond.  Está escrito como un documento HTML, que se puede encontrar
+La descripción definitiva de los controles que están disponibles
+para su ajuste fino están en un documento aparte: la
+@rinternalsnamed{Top,Referencia de funcionamiento interno}.  Dicho
+manual relaciona todas las variables, funciones y opciones que se
+encuentran disponibles en LilyPond.  Está escrito como un
+documento HTML, que se puede encontrar
 @c leave the @uref as one long line.
 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,en@tie{}línea},
-pero que también va incluido en el paquete de la documentación de LilyPond.
+pero que también va incluido en el paquete de la documentación de
+LilyPond.
 
 Internamente, LilyPond utiliza el lenguaje Scheme (un dialecto de
 LISP) para aportar la infraestructura.  La sobreescritura de las
-decisiones de disposición da acceso efectivo a las interioridades del
-programa, lo que requiere código de Scheme como entrada.  Los
-elementos de Scheme se inauguran dentro de un archivo @file{.ly} con
-el símbolo de cuadradillo@tie{}@code{#}.@footnote{@rextend{Tutorial de Scheme}
+decisiones de disposición da acceso efectivo a las interioridades
+del programa, lo que requiere código de Scheme como entrada.  Los
+elementos de Scheme se inauguran dentro de un archivo @file{.ly}
+con el símbolo de
+cuadradillo@tie{}@code{#}.@footnote{@rextend{Tutorial de Scheme}
 contiene un breve tutorial sobre la introducción de números,
 listas, cadenas y símbolos en Scheme.}
 
@@ -159,10 +162,11 @@ Archivos instalados:
 @translationof Score - the master of all contexts
 
 Este es el contexto de notación del nivel más alto.  Ningún otro
-contexto puede contener a un contexto Score.  De forma predeterminada,
-el contexto Score maneja la administración de las indicaciones de
-compás y se asegura de que ciertos elementos como claves, compases y
-armaduras están siempre alineados entre los distintos pentagramas.
+contexto puede contener a un contexto Score.  De forma
+predeterminada, el contexto Score maneja la administración de las
+indicaciones de compás y se asegura de que ciertos elementos como
+claves, compases y armaduras están siempre alineados entre los
+distintos pentagramas.
 
 Se crea implícitamente una instancia del contexto Score cuando se
 procesa un bloque @code{\score @{@dots{}@}}.
@@ -174,27 +178,27 @@ procesa un bloque @code{\score @{@dots{}@}}.
 
 @strong{@emph{StaffGroup}}
 
-Agrupa pentagramas y añade un corchete en la parte izquierda, formando
-un grupo.  Las líneas divisorias de los pentagramas contenidos se
-conectan verticalmente.  @code{StaffGroup} sólo consiste en una
-colección de pentagramas, con un corchete delante y líneas divisorias
-de arriba a abajo.
+Agrupa pentagramas y añade un corchete en la parte izquierda,
+formando un grupo.  Las líneas divisorias de los pentagramas
+contenidos se conectan verticalmente.  @code{StaffGroup} sólo
+consiste en una colección de pentagramas, con un corchete delante
+y líneas divisorias de arriba a abajo.
 
 @strong{@emph{ChoirStaff}}
 
-Idéntico a @code{StaffGroup} excepto que las barras de compás de los
-pentagramas contenidos no se conectan verticalmente.
+Idéntico a @code{StaffGroup} excepto que las barras de compás de
+los pentagramas contenidos no se conectan verticalmente.
 
 @strong{@emph{GrandStaff}}
 
 Un grupo de pentagramas, con una llave en la parte izquierda que
-abarca el grupo.  Las barras de compás de los pentagramas contenidos
-se conectan verticalmente.
+abarca el grupo.  Las barras de compás de los pentagramas
+contenidos se conectan verticalmente.
 
 @strong{@emph{PianoStaff}}
 
-Igual que @code{GrandStaff}, pero contempla la posibilidad de poner el
-nombre del instrumento a la izquierda del sistema.
+Igual que @code{GrandStaff}, pero contempla la posibilidad de
+poner el nombre del instrumento a la izquierda del sistema.
 
 
 @node Contextos de nivel intermedio. Pentagramas
@@ -208,10 +212,9 @@ accidentales.  Puede contener contextos de @code{Voice}.
 
 @strong{@emph{RhythmicStaff}}
 
-Como @code{Staff}, pero para imprimir ritmos.  Al imprimir
-se ignoran las alturas de las notas; las notas se imprimen
-sobre una línea.  La salida de MIDI conserva las alturas
-sin modificación.
+Como @code{Staff}, pero para imprimir ritmos.  Al imprimir se
+ignoran las alturas de las notas; las notas se imprimen sobre una
+línea.  La salida de MIDI conserva las alturas sin modificación.
 
 @strong{@emph{TabStaff}}
 
@@ -256,13 +259,13 @@ voces en el mismo pentagrama.
 
 @strong{@emph{VaticanaVoice}}
 
-Lo mismo que @code{Voice}, excepto que está diseñado para tipografiar
-piezas en estilo gregoriano.
+Lo mismo que @code{Voice}, excepto que está diseñado para
+tipografiar piezas en estilo gregoriano.
 
 @strong{@emph{MensuralVoice}}
 
-Lo mismo que @code{Voice}, con modificaciones para el tipografiado de
-piezas en estilo mensural.
+Lo mismo que @code{Voice}, con modificaciones para el tipografiado
+de piezas en estilo mensural.
 
 @strong{@emph{Lyrics}}
 
@@ -275,8 +278,8 @@ El contexto de voz utilizado en una pauta de percusión.
 
 @strong{@emph{FiguredBass}}
 
-El contexto en que los objetos @code{BassFigure} se crean a partir de
-la entrada escrita en el modo @code{\figuremode}.
+El contexto en que los objetos @code{BassFigure} se crean a partir
+de la entrada escrita en el modo @code{\figuremode}.
 
 @strong{@emph{TabVoice}}
 
@@ -337,7 +340,7 @@ para crear partituras con muchos pentagramas:
   }
   \new Staff \relative {
     d''4 d
-}
+  }
 >>
 @end lilypond
 
@@ -492,12 +495,14 @@ consulte @ref{Duración automática de las sílabas}.
 
 Las propiedades de todos los contextos de un tipo en particular se
 pueden modificar dentro de un bloque @code{\layout} (con una
-sintaxis diferente), véase @ref{Cambiar todos los contextos del mismo tipo}.
+sintaxis diferente), véase
+@ref{Cambiar todos los contextos del mismo tipo}.
 
 Esta construcción también ofrece una forma de mantener las
 instrucciones de disposición separadas del contenido musical.  Si
 se va a modificar un solo contexto, debe usarse un bloque
-@code{\with}, véase @ref{Cambiar solamente un contexto determinado}.
+@code{\with}, véase
+@ref{Cambiar solamente un contexto determinado}.
 
 @seealso
 Manual de aprendizaje:
@@ -526,26 +531,32 @@ pentagramas con instrucciones @code{\change}, asociar letra con una
 voz mediante instrucciones @code{\lyricsto}, o cuando se añaden
 eventos musicales adicionales a un contexto anterior.
 
-Existe una excepción a esta regla general: precisamente uno de los
-contextos de @code{Voice} que están dentro de un contexto de
-@code{Staff} o de una construcción @code{<<@dots{}>>} persiste siempre
-hasta el final de, contexto de @code{Staff} circundante o la
-construcción @code{<<@dots{}>>}, incluso aunque puede haber períodos en
-que no tiene nada que hacer.  El contexto que persiste de esta forma
-será el primero que se encuentre en la primera construcción encerrada
-entre llaves @code{@{@dots{}@}}, ignorando cualquiera que se encuentre
-dentro de construcciones encerradas por ángulos dobles @code{<<@dots{}>>}.
+Existe una excepción a esta regla general: dentro de una
+construcción @code{@{@dots{}@}} (música secuencial), la noción que
+la construcción tiene del @qq{contexto actual} descenderá un nivel
+cada vez que un elemento de la secuencia finaliza en un
+subcontexto del contexto anterior.  Esto evita la creación espúrea
+de contextos implícitos en ciertas situaciones, pero significa que
+el primer contexto dentro del que se desciende, se va a mantener
+vivo hasta el final de la expresión.
+
+Como contraste, los contextos de una expresión hecha con la
+construcción @code{<<@dots{}>>} (música simultánea) no se
+prolongan, por lo que si una instrucción que crea un contexto se
+encierra en otro par de @code{<<@dots{}>>}, se impedirá que el
+contexto persista durante toda la duración de la secuencia
+@code{@{@dots{}@}} que lo contiene.
 
 Cualquier contexto se puede mantener vivo si nos aseguramos de que
 tiene algo que hacer en cualquier momento musical dado.  Los
-contextos de @code{Staff} se mantienen con vida si nos aseguramos de
-que una de sus voces se mantiene viva.  Una manera de hacerlo es
-añadir silencios de separación a una voz en paralelo con la música
-real.  Éstos deben añadirse a todos y cada uno de los contextos de
-@code{Voice} que se hayan de mantener vivos.  Si se van a usar
-esporádicamente varias voces, es más seguro mantenerlas todas vivas en
-lugar de tratar de confiar en las excepciones que hemos mencionado
-arriba.
+contextos de @code{Staff} se mantienen con vida si nos aseguramos
+de que una de sus voces se mantiene viva.  Una manera de hacerlo
+es añadir silencios de separación a una voz en paralelo con la
+música real.  Éstos deben añadirse a todos y cada uno de los
+contextos de @code{Voice} que se hayan de mantener vivos.  Si se
+van a usar esporádicamente varias voces, es más seguro mantenerlas
+todas vivas en lugar de tratar de confiar en las excepciones que
+hemos mencionado arriba.
 
 En el ejemplo siguiente, tanto la voz A como la voz B se mantienen
 vivas de esta manera durante la duración de la pieza:
@@ -584,10 +595,10 @@ music = {
 
 @cindex letra, alineación con melodía esporádica
 
-El ejemplo siguiente muestra cómo se puede escribir una línea melódica
-esporádica con letra utilizando este enfoque.  Por supuesto, en una
-situación real la melodía y el acompañamiento consistirían en varias
-secciones diferentes.
+El ejemplo siguiente muestra cómo se puede escribir una línea
+melódica esporádica con letra utilizando este enfoque.  Por
+supuesto, en una situación real la melodía y el acompañamiento
+consistirían en varias secciones diferentes.
 
 @lilypond[quote,verbatim]
 melody = \relative { a'4 a a a }
@@ -671,13 +682,13 @@ words = \lyricmode { These words fol -- low the mel -- o -- dy }
 
 @c TODO Should this be Modifying engravers or Modifying contexts?
 
-Los contextos de notación (como @code{Score} y @code{Staff}) no sólo
-almacenan propiedades, también contienen «plug-ins» o complementos
-llamados @q{grabadores} que crean elementos de notación.  Por ejemplo,
-el contexto @code{Voice} contiene un grabador
-@code{Note_heads_engraver} que crea las cabezas de nota y el contexto
-@code{Staff} contiene un grabador @code{Key_engraver} que
-crea la armadura.
+Los contextos de notación (como @code{Score} y @code{Staff}) no
+sólo almacenan propiedades, también contienen «plug-ins» o
+complementos llamados @q{grabadores} que crean elementos de
+notación.  Por ejemplo, el contexto @code{Voice} contiene un
+grabador @code{Note_heads_engraver} que crea las cabezas de nota y
+el contexto @code{Staff} contiene un grabador @code{Key_engraver}
+que crea la armadura.
 
 Para ver una descripción completa de todos y cada uno de los
 complementos, consulte
@@ -697,9 +708,9 @@ Referencia de funcionamiento interno @expansion{} Traducción @expansion{} Conte
 relaciona los grabadores que se usan para ese contexto.
 
 
-Puede ser de utilidad jugar un poco con estos complementos.  Se hace
-iniciando un contexto nuevo con @code{\new} o @code{\context} y
-modificándolo:
+Puede ser de utilidad jugar un poco con estos complementos.  Se
+hace iniciando un contexto nuevo con @code{\new} o @code{\context}
+modificándolo:
 
 @funindex \with
 
@@ -717,10 +728,10 @@ modificándolo:
 @end example
 
 @noindent
-donde los @dots{} deben ser el nombre de un grabador.  Aquí tenemos un
-ejemplo sencillo que suprime los grabadores
-@code{Time_signature_engraver} y @code{Clef_engraver} de un contexto
-@code{Staff}:
+donde los @dots{} deben ser el nombre de un grabador.  Aquí
+tenemos un ejemplo sencillo que suprime los grabadores
+@code{Time_signature_engraver} y @code{Clef_engraver} de un
+contexto @code{Staff}:
 
 @lilypond[quote,verbatim]
 <<
@@ -736,22 +747,23 @@ ejemplo sencillo que suprime los grabadores
 >>
 @end lilypond
 
-En el segundo pentagrama no hay indicación de compás ni clave.  Éste
-es un método bastante rudimentario de hacer que desaparezcan los
-objetos porque afecta a todo el pentagrama.  Este método también
-afecta al espaciado, lo que puede ser deseable o no serlo.  Se
-muestran métodos más sofisticados para quitar objetos en
+En el segundo pentagrama no hay indicación de compás ni clave.
+Éste es un método bastante rudimentario de hacer que desaparezcan
+los objetos porque afecta a todo el pentagrama.  Este método
+también afecta al espaciado, lo que puede ser deseable o no serlo.
+Se muestran métodos más sofisticados para quitar objetos en
 @rlearning{Visibilidad y color de los objetos}.
 
-El ejemplo siguiente muestra una aplicación práctica.  Normalmente las
-líneas divisorias y las indicaciones de compás están sincronizadas a
-lo largo de toda la partitura.  Lo hacen los grabadores
-@code{Timing_translator} y @code{Default_bar_line_engraver}.  Estos
-complementos mantienen al día la administración de las indicaciones de
-compás, posición dentro del compás, etc.  Moviendo estos grabadores
-desde el contexto de @code{Score} al de @code{Staff}, podemos
-conseguir una partitura en la que cada pentagrama tiene su propio
-compás independiente.
+El ejemplo siguiente muestra una aplicación práctica.  Normalmente
+las líneas divisorias y las indicaciones de compás están
+sincronizadas a lo largo de toda la partitura.  Lo hacen los
+grabadores @code{Timing_translator} y
+@code{Default_bar_line_engraver}.  Estos complementos mantienen al
+día la administración de las indicaciones de compás, posición
+dentro del compás, etc.  Moviendo estos grabadores desde el
+contexto de @code{Score} al de @code{Staff}, podemos conseguir una
+partitura en la que cada pentagrama tiene su propio compás
+independiente.
 
 @cindex polimétricas, partituras
 @cindex compases distintos al mismo tiempo
@@ -788,12 +800,12 @@ compás independiente.
 
 @knownissues
 
-El orden en que los grabadores se especifican es el orden en que se
-llaman para realizar su tarea de procesamiento.  Normalmente, el orden
-en que se especifican los grabadores no tiene importancia, pero en
-algunos casos especiales sí la tiene, por ejemplo donde un grabador
-escribe una propiedad y otro la lee, o donde un grabador crea un groby
-otro debe procesarlo.
+El orden en que los grabadores se especifican es el orden en que
+se llaman para realizar su tarea de procesamiento.  Normalmente,
+el orden en que se especifican los grabadores no tiene
+importancia, pero en algunos casos especiales sí la tiene, por
+ejemplo donde un grabador escribe una propiedad y otro la lee, o
+donde un grabador crea un groby otro debe procesarlo.
 
 Las siguientes ordenaciones son importantes:
 
@@ -808,8 +820,8 @@ antes del grabador @code{Script_column_engraver} de columnas de
 inscripciones,
 
 @item
-el @code{Timing_translator} debe ir antes del grabador de números de
-compás @code{Bar_number_engraver}.
+el @code{Timing_translator} debe ir antes del grabador de números
+de compás @code{Bar_number_engraver}.
 
 @end itemize
 
@@ -826,17 +838,18 @@ Archivos instalados:
 @cindex contexto, cambiar propiedades predeterminadas de
 
 Se pueden cambiar las propiedades de contexto y de grob con las
-instrucciones @code{\set} y @code{\override}, tal y como se describe
-en @ref{Modificar las propiedades}.  Estas instrucciones crean eventos
-musicales, haciendo que los cambios tengan efecto en el punto temporal
-en que la música se está procesando.
+instrucciones @code{\set} y @code{\override}, tal y como se
+describe en @ref{Modificar las propiedades}.  Estas instrucciones
+crean eventos musicales, haciendo que los cambios tengan efecto en
+el punto temporal en que la música se está procesando.
 
 Por contra, esta sección explica la forma de cambiarlos valores
-@emph{predeterminados} de las propiedades de contexto y de grob en el
-momento en que se crea el contexto.  Existen dos formas de hacerlo.
-Una modifica los valores predeterminados en todos los contextos de un
-tipo dado, y el otro modifica los valores predeterminados solamente en
-una instancia concreta de un contexto.
+@emph{predeterminados} de las propiedades de contexto y de grob en
+el momento en que se crea el contexto.  Existen dos formas de
+hacerlo.  Una modifica los valores predeterminados en todos los
+contextos de un tipo dado, y el otro modifica los valores
+predeterminados solamente en una instancia concreta de un
+contexto.
 
 @menu
 * Cambiar todos los contextos del mismo tipo::
@@ -852,19 +865,18 @@ una instancia concreta de un contexto.
 @funindex \context
 @funindex \layout
 
-Los ajustes de contexto predeterminados que se han de usar para la composición
-tipográfica dentro de @code{Score}, @code{Staff}, @code{Voice} y otros contextos
-se pueden especificar en un bloque @code{\context} dentro de cualquier
-bloque @code{\layout}.
+Los ajustes de contexto predeterminados que se han de usar para la
+composición tipográfica dentro de @code{Score}, @code{Staff},
+@code{Voice} y otros contextos se pueden especificar en un bloque
+@code{\context} dentro de cualquier bloque @code{\layout}.
 
 Los ajustes para la salida MIDI, al contrario que para la
 composición tipográfica, se tendrán que especificar aparte en
 bloques @code{\midi} (véase
 @ref{Definiciones de salida - estructura de los contextos}).
 
-El bloque @code{\layout} se debe colocar
-dentro del bloque @code{\score} al que se aplica, después de la
-música.
+El bloque @code{\layout} se debe colocar dentro del bloque
+@code{\score} al que se aplica, después de la música.
 
 @example
 \layout @{
@@ -883,7 +895,8 @@ Se pueden especificar los siguientes tipos de ajustes:
 
 @itemize
 @item
-Una instrucción @code{\override}, pero omitiendo el nombre del contexto
+Una instrucción @code{\override}, pero omitiendo el nombre del
+contexto
 
 @lilypond[quote,verbatim]
 \score {
@@ -919,8 +932,8 @@ Estableciendo una propiedad de contexto directamente
 @end lilypond
 
 @item
-Una instrucción predefinida tal como @code{\dynamicUp} o una expresión
-musical como @code{\accidentalStyle dodecaphonic}
+Una instrucción predefinida tal como @code{\dynamicUp} o una
+expresión musical como @code{\accidentalStyle dodecaphonic}
 
 @lilypond[quote,verbatim]
 \score {
@@ -969,16 +982,17 @@ StaffDefaults = \with {
 
 @end itemize
 
-Las instrucciones de ajuste de propiedades se pueden disponer dentro
-de un bloque @code{\layout} sin que estén encerradas en un bloque
-@code{\context}.  Tales ajustes son equivalentes a incluir las mismas
-instrucciones de ajuste de propiedades al comienzo de cada uno de los
-contextos del tipo especificado.  Si no se especifica ningún contexto,
-@emph{todos y cada uno} de los contextos del nivel inferior quedan
-afectados, véase @ref{Contextos del nivel más bajo. Voces}.  La
-sintaxis de una instrucción de ajuste de propiedades dentro de un
-bloque @code{\layout} es la misma que si la misma instrucción
-estuviera escrita en el propio flujo musical.
+Las instrucciones de ajuste de propiedades se pueden disponer
+dentro de un bloque @code{\layout} sin que estén encerradas en un
+bloque @code{\context}.  Tales ajustes son equivalentes a incluir
+las mismas instrucciones de ajuste de propiedades al comienzo de
+cada uno de los contextos del tipo especificado.  Si no se
+especifica ningún contexto, @emph{todos y cada uno} de los
+contextos del nivel inferior quedan afectados, véase
+@ref{Contextos del nivel más bajo. Voces}.  La sintaxis de una
+instrucción de ajuste de propiedades dentro de un bloque
+@code{\layout} es la misma que si la misma instrucción estuviera
+escrita en el propio flujo musical.
 
 @lilypond[quote,verbatim]
 \score {
@@ -1004,13 +1018,14 @@ estuviera escrita en el propio flujo musical.
 @cindex \with
 @funindex \with
 
-Las propiedades de contexto de una única instancia de contexto pueden
-cambiarse dentro de un bloque @code{\with}.  Todas las demás
-instancias de contexto del mismo tipo retienen los ajustes
-predeterminados que LilyPond tiene programados y que se modifican por
-parte de cualquier bloque @code{\layout} que se encuentre dentro del
-ámbito.  El bloque @code{\with} se debe situar inmediatamente después
-de las instrucciones @code{\new} @var{context-type}:
+Las propiedades de contexto de una única instancia de contexto
+pueden cambiarse dentro de un bloque @code{\with}.  Todas las
+demás instancias de contexto del mismo tipo retienen los ajustes
+predeterminados que LilyPond tiene programados y que se modifican
+por parte de cualquier bloque @code{\layout} que se encuentre
+dentro del ámbito.  El bloque @code{\with} se debe situar
+inmediatamente después de las instrucciones @code{\new}
+@var{context-type}:
 
 @example
 \new Staff \with @{ [ajustes de contexto para esta instancia de contexto solamente] @}
@@ -1102,8 +1117,8 @@ Una instrucción predefinida tal como @code{\dynamicUp}
 @unnumberedsubsubsec Orden de precedencia
 @translationof Order of precedence
 
-El valor de una propiedad que se aplica en un momento determinado se
-determina de la siguiente forma:
+El valor de una propiedad que se aplica en un momento determinado
+se determina de la siguiente forma:
 
 @itemize
 @item
@@ -1111,12 +1126,14 @@ si está en efecto una instrucción @code{\override} o @code{\set}
 dentro del flujo musical, se usa dicho valor,
 
 @item
-de lo contrario, se usa el valor predeterminado tomado de un enunciado
-@code{\with} en las instrucciones de inicio del contexto,
+de lo contrario, se usa el valor predeterminado tomado de un
+enunciado @code{\with} en las instrucciones de inicio del
+contexto,
 
 @item
-de lo contrario, se usa el valor tomado del bloque @code{\context} más
-reciente que corresponda dentro de los bloques @code{\layout} o @code{\midi},
+de lo contrario, se usa el valor tomado del bloque @code{\context}
+más reciente que corresponda dentro de los bloques @code{\layout}
+o @code{\midi},
 
 @item
 de lo contrario se usa el valor predeterminado que LilyPond lleva
@@ -1156,14 +1173,15 @@ Referencia de la notación:
 @funindex denies
 
 Los contextos específicos, como @code{Staff} y @code{Voice}, están
-construidos a partir de bloques sencillos.  Es posible crear nuevos
-tipos de contextos con combinaciones distintas de añadidos grabadores.
+construidos a partir de bloques sencillos.  Es posible crear
+nuevos tipos de contextos con combinaciones distintas de añadidos
+grabadores.
 
 El siguiente ejemplo muestra cómo construir un tipo diferente de
 contexto de @code{Voice} partiendo de cero.  Será parecido a
 @code{Voice}, pero imprime solamente cabezas centradas en forma de
-barra inclinada.  Se puede usar para indicar improvisación en piezas
-de jazz,
+barra inclinada.  Se puede usar para indicar improvisación en
+piezas de jazz,
 
 @lilypond[quote,ragged-right]
 \layout { \context {
@@ -1190,8 +1208,8 @@ de jazz,
 @end lilypond
 
 
-Estos ajustes se definen dentro de un bloque @code{\context} que a su
-vez está dentro de un bloque @code{\layout},
+Estos ajustes se definen dentro de un bloque @code{\context} que a
+su vez está dentro de un bloque @code{\layout},
 
 @example
 \layout @{
@@ -1204,7 +1222,8 @@ vez está dentro de un bloque @code{\layout},
 En el siguiente análisis, la entrada de ejemplo que se muestra debe ir
 en el lugar de los puntos suspensivos @dots{} del fragmento anterior.
 
-En primer lugar es necesario definir un nombre para el nuevo contexto:
+En primer lugar es necesario definir un nombre para el nuevo
+contexto:
 
 @example
 \name ImproVoice
@@ -1285,9 +1304,9 @@ Al juntarlo todo, obtenemos
 
 @funindex \accepts
 Los contextos dan lugar a jerarquías.  Queremos poner el contexto
-@code{ImproVoice} dentro del contexto @code{Staff}, igual que los contextos
-de voz normales.  Por tanto, modificamos la definición de
-@code{Staff} con la instrucción @code{\accepts} (acepta),
+@code{ImproVoice} dentro del contexto @code{Staff}, igual que los
+contextos de voz normales.  Por tanto, modificamos la definición
+de @code{Staff} con la instrucción @code{\accepts} (acepta),
 
 @example
 \context @{
@@ -1296,12 +1315,41 @@ de voz normales.  Por tanto, modificamos la definición de
 @}
 @end example
 
+@funindex \inherit-acceptability
+Con frecuencia, al reutilizar una definición de contexto
+existente, el contexto resultante se puede usar en cualquier lugar
+donde el contexto original hubiera podido hacerlo.
+
+@example
+\layout @{
+  @dots{}
+  \inherit-acceptability @var{to} @var{from}
+@}
+@end example
+
+@noindent
+consigue que tengamos contextos del tipo @var{to} aceptados por
+todos los contextos que asimismo aceptan @var{from}.  Por ejemplo,
+usar
+
+@example
+\layout @{
+  @dots{}
+  \inherit-acceptability "ImproVoice" "Voice"
+@}
+@end example
+
+@noindent
+añade un @code{\accepts} para @code{ImproVoice} tanto a la
+definición de @code{Staff} como a la de @code{RhythmicStaff}.
+
 @funindex \denies
-Lo opuesto a @code{\accepts} (acepta) es @code{\denies} (deniega), lo
-que a veces se necesita cuando se están reutilizando definiciones de
-contexto existentes.
+Lo opuesto a @code{\accepts} (acepta) es @code{\denies} (deniega),
+lo que a veces se necesita cuando se están reutilizando
+definiciones de contexto existentes.
 
-Ponemos ambos dentro de un bloque @code{\layout}, como
+Organizar las piezas requeridas dentro de un bloque @code{\layout}
+nos deja con
 
 @example
 \layout @{
@@ -1309,10 +1357,7 @@ Ponemos ambos dentro de un bloque @code{\layout}, como
     \name ImproVoice
     @dots{}
   @}
-  \context @{
-    \Staff
-    \accepts "ImproVoice"
-  @}
+  \inherit-acceptability "ImproVoice" "Voice"
 @}
 @end example
 
@@ -1353,15 +1398,15 @@ Referencia de funcionamiento interno:
 @funindex \accepts
 @funindex \denies
 
-Los contextos se disponen en un sistema normalmente desde arriba hacia
-abajo en el orden en que se encuentran en el archivo de entrada.
-Cuando los contextos se anidan unos dentro de otros, el contexto
-exterior incluye a los contextos anidados tal y como se especifica en
-el archivo de entrada, siempre y cuando los contextos interiores estén
-incluidos en la lista @qq{accepts} del contexto externo.  Los
-contextos anidados que no está nincluidos en la lista @qq{accepts} del
-contexto externo se recolocan debajo del contexto externo en lugar de
-anidarse dentro de él.
+Los contextos se disponen en un sistema normalmente desde arriba
+hacia abajo en el orden en que se encuentran en el archivo de
+entrada.  Cuando los contextos se anidan unos dentro de otros, el
+contexto exterior incluye a los contextos anidados tal y como se
+especifica en el archivo de entrada, siempre y cuando los
+contextos interiores estén incluidos en la lista @qq{accepts} del
+contexto externo.  Los contextos anidados que no está nincluidos
+en la lista @qq{accepts} del contexto externo se recolocan debajo
+del contexto externo en lugar de anidarse dentro de él.
 
 La lista @qq{accepts} de un contexto se puede cambiar con las
 instrucciones @code{\accepts} (acepta) o @code{\denies} (niega).
@@ -1407,11 +1452,11 @@ añadir un @code{StaffGroup} al contexto @code{GrandStaff}:
 }
 @end lilypond
 
-@code{\denies} se usa principalmente cuando un contexto nuevo se está
-basando en otro, pero los anidamientos requeridos difieren.  Por
-ejemplo, el contexto @code{VaticanaStaff} está basado en el contexto
-@code{Staff}, pero con el contexto @code{VaticanaVoice} sustituido por
-el contexto @code{Voice} en la lista @qq{accepts}.
+@code{\denies} se usa principalmente cuando un contexto nuevo se
+está basando en otro, pero los anidamientos requeridos difieren.
+Por ejemplo, el contexto @code{VaticanaStaff} está basado en el
+contexto @code{Staff}, pero con el contexto @code{VaticanaVoice}
+sustituido por el contexto @code{Voice} en la lista @qq{accepts}.
 
 
 @cindex contextos implícitos
@@ -1504,10 +1549,8 @@ Archivos instalados:
 Supongamos que queremos mover la indicación de digitación del
 fragmento siguiente:
 
-@lilypond[quote,relative=2,verbatim]
-c-2
-\stemUp
-f
+@lilypond[quote,fragment,verbatim]
+c''-2
 @end lilypond
 
 Si hace una visita a la documentación en busca de instrucciones de
@@ -1522,14 +1565,14 @@ Referencia de funcionamiento interno: @rinternals{Fingering}.
 
 @ifnothtml
 La referencia del programador se encuentra disponible en forma de
-documento HTML.  Se recomienda mucho que lo lea en la forma HTML, bien
-en línea o bien descargando los archivos de la documentación HTML.
-Esta sección sería mucho más difícil de entender si está utilizando el
-manual en formato PDF.
+documento HTML.  Se recomienda mucho que lo lea en la forma HTML,
+bien en línea o bien descargando los archivos de la documentación
+HTML.  Esta sección sería mucho más difícil de entender si está
+utilizando el manual en formato PDF.
 @end ifnothtml
 
-Siga el enlace que lleva a @rinternals{Fingering}.  Al principio de la
-página, puede ver
+Siga el enlace que lleva a @rinternals{Fingering}.  Al principio
+de la página, puede ver
 
 @quotation
 Los objetos de digitación se crean por parte de:
@@ -1537,7 +1580,8 @@ Los objetos de digitación se crean por parte de:
 @end quotation
 
 Siguiendo los enlaces relacionados dentro de la referencia del
-programa, podemos seguir el flujo de información dentro del programa:
+programa, podemos seguir el flujo de información dentro del
+programa:
 
 @itemize
 
@@ -1553,23 +1597,23 @@ El tipo de evento musical @code{fingering-event} está descrito en
 Expresiones musicales con el nombre de @rinternals{FingeringEvent}
 @end itemize
 
-Este camino se recorre en contra de la corriente de información del
-programa: comienza por la salida y acaba en el evento de entrada.
-También podríamos haber empezado por un evento de la entrada, y leído
-siguiendo el flujo de información terminando en su caso en el objeto
-(u objetos) de la salida.
+Este camino se recorre en contra de la corriente de información
+del programa: comienza por la salida y acaba en el evento de
+entrada.  También podríamos haber empezado por un evento de la
+entrada, y leído siguiendo el flujo de información terminando en
+su caso en el objeto (u objetos) de la salida.
 
-La referencia del programa también se puede examinar como un documento
-normal.  Contiene capítulos que tratan de
+La referencia del programa también se puede examinar como un
+documento normal.  Contiene capítulos que tratan de
 @ifhtml
 @rinternals{Music definitions},
 @end ifhtml
 @ifnothtml
 @code{Music definitions}
 @end ifnothtml
-de la @rinternals{Translation}, y del @rinternals{Backend}.  Cada uno
-de los capítulos relaciona todas las definiciones utilizadas y todas
-las propiedades que se pueden ajustar.
+de la @rinternals{Translation}, y del @rinternals{Backend}.  Cada
+uno de los capítulos relaciona todas las definiciones utilizadas y
+todas las propiedades que se pueden ajustar.
 
 
 @node Interfaces de la presentación
@@ -1581,13 +1625,14 @@ las propiedades que se pueden ajustar.
 @cindex grob
 
 La página HTML que pudimos ver en la sección anterior describe el
-objeto de presentación llamado @rinternals{Fingering}.  Dicho objeto
-es un símbolo dentro de la partitura.  Tiene propiedades que guardan
-números (como grosores y direcciones), pero también punteros a objetos
-relacionados.  Un objeto de presentación también se llama un
-@emph{Grob}, que es una abreviatura de Graphical Object (objeto
-gráfico).  Para ver más detalles acerca de los objetos gráficos o
-Grobs, consulte @rinternals{grob-interface}.
+objeto de presentación llamado @rinternals{Fingering}.  Dicho
+objeto es un símbolo dentro de la partitura.  Tiene propiedades
+que guardan números (como grosores y direcciones), pero también
+punteros a objetos relacionados.  Un objeto de presentación
+también se llama un @emph{Grob}, que es una abreviatura de
+Graphical Object (objeto gráfico).  Para ver más detalles acerca
+de los objetos gráficos o Grobs, consulte
+@rinternals{grob-interface}.
 
 La página dedicada a @code{Fingering} relaciona las definiciones del
 objeto @code{Fingering}.  Por ejemplo, la página dice
@@ -1603,25 +1648,25 @@ lo que significa que el número se mantendrá a una distancia de al
 menos 0.5 de la cabeza de la nota.
 
 
-Cada objeto de presentación puede tener varias funciones como elemento
-notacional o tipográfico.  Por ejemplo, el objeto de digitación
-Fingering tiene los siguientes aspectos
+Cada objeto de presentación puede tener varias funciones como
+elemento notacional o tipográfico.  Por ejemplo, el objeto de
+digitación Fingering tiene los siguientes aspectos
 
 @itemize
 @item
-Su tamaño es independiente del espaciado horizontal, al contrario de
-las ligaduras o las barras de las figuras.
+Su tamaño es independiente del espaciado horizontal, al contrario
+de las ligaduras o las barras de las figuras.
 
 @item
 Es un elemento de texto.  Casi seguro que es un texto muy corto.
 
 @item
-este elemento de texto se tipografía con un tipo de letra, no como las
-ligaduras o las barras de las figuras.
+este elemento de texto se tipografía con un tipo de letra, no como
+las ligaduras o las barras de las figuras.
 
 @item
-Horizontalmente, el centro del símbolo se debe alinear con el centro
-de la cabeza de la nota.
+Horizontalmente, el centro del símbolo se debe alinear con el
+centro de la cabeza de la nota.
 
 @item
 Verticalmente, el símbolo se coloca cerca de la nota y del pentagrama.
@@ -1647,8 +1692,8 @@ Este objeto contempla los siguientes interfaces:
 Al pulsar sobre cualquiera de los enlaces nos desplazaremos a la
 página del respectivo interfaz del objeto.  Cada interfaz tiene un
 cierto número de propiedades.  Algunas de ellas no son para que el
-usuario las pueda ajustar (@q{Propiedades internas}), pero otras sí se
-pueden modificar.
+usuario las pueda ajustar (@q{Propiedades internas}), pero otras
+sí se pueden modificar.
 
 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
 realmente esto no significa mucho.  El archivo de inicialización
@@ -1679,9 +1724,9 @@ realmente esto no significa mucho.  El archivo de inicialización
 @end example
 
 @noindent
-Como podemos ver, el objeto @code{Fingering} no es más que un montón
-de valores de variables, y la página web de la Referencia de
-funcionamiento interno se genera directamente a partir de esta
+Como podemos ver, el objeto @code{Fingering} no es más que un
+montón de valores de variables, y la página web de la Referencia
+de funcionamiento interno se genera directamente a partir de esta
 definición.
 
 
@@ -1691,16 +1736,14 @@ definición.
 
 Recordemos que queríamos cambiar la posición del @b{2} en
 
-@lilypond[quote,relative=2,verbatim]
-c-2
-\stemUp
-f
+@lilypond[quote,fragment,verbatim]
+c''-2
 @end lilypond
 
-Puesto que el @b{2} se encuentra colocado verticalmente sobre su nota,
-tenemos que negociar con el interfaz asociado con esta colocación.
-Esto se hace usando @code{side-position-interface}.  La página que
-describe este interface dice:
+Puesto que el @b{2} se encuentra colocado verticalmente sobre su
+nota, tenemos que negociar con el interfaz asociado con esta
+colocación.  Esto se hace usando @code{side-position-interface}.
+La página que describe este interface dice:
 
 @quotation
 @code{side-position-interface}
@@ -1714,16 +1757,16 @@ derecha, encima o debajo?)
 @cindex relleno
 @cindex padding (relleno)
 @noindent
-Debajo de esta descripción, la variable @code{padding} (relleno) se
-describe como
+Debajo de esta descripción, la variable @code{padding} (relleno)
+se describe como
 
 @quotation
 @table @code
 @item padding
 (dimensión, en espacios de pentagrama)
 
-Añadir esta cantidad de espacio adicional entre objetos que están unos
-junto a otros.
+Añadir esta cantidad de espacio adicional entre objetos que están
+unos junto a otros.
 @end table
 @end quotation
 
@@ -1746,9 +1789,10 @@ c-2
 f
 @end lilypond
 
-En este caso, el contexto de este truco es @code{Voice}.  Este hecho
-se puede deducir también a partir de la referencia del programa, ya
-que la página dedicada al añadido @rinternals{Fingering_engraver} dice
+En este caso, el contexto de este truco es @code{Voice}.  Este
+hecho se puede deducir también a partir de la referencia del
+programa, ya que la página dedicada al añadido
+@rinternals{Fingering_engraver} dice
 
 @quotation
 El grabador Fingering_engraver es parte de los contextos: @dots{}
@@ -1802,21 +1846,23 @@ Preguntas aún sin respuesta
 @translationof Overview of modifying properties
 
 Cada contexto es responsable de la creación de ciertos tipos de
-objetos gráficos.  Los ajustes que se usan para imprimir estos objetos
-también se almacenan por contexto.  Mediante la modificación de estos
-ajustes, se puede alterar la apariencia de los objetos.
+objetos gráficos.  Los ajustes que se usan para imprimir estos
+objetos también se almacenan por contexto.  Mediante la
+modificación de estos ajustes, se puede alterar la apariencia de
+los objetos.
 
 Existen dos tipos diferentes de propiedades almacenadas en los
-contextos: las propiedades de contexto y las propiedades de grob.  Las
-propiedades de contexto son propiedades que se aplican al contexto
-como un todo y controlan la forma en que el propio contexto se
-imprime.  Por contra, las propiedades de grob se aplican a los tipos
-de grob específicos que se imprimirán dentro del contexto.
-
-Las instrucciones @code{\set} y @code{\unset} se usan para cambiar los
-valores de las propiedades de contexto.  Las instrucciones
-@code{\override} y @code{\revert} se usan para cambiar los valores de
-las propiedades de grob.
+contextos: las propiedades de contexto y las propiedades de grob.
+Las propiedades de contexto son propiedades que se aplican al
+contexto como un todo y controlan la forma en que el propio
+contexto se imprime.  Por contra, las propiedades de grob se
+aplican a los tipos de grob específicos que se imprimirán dentro
+del contexto.
+
+Las instrucciones @code{\set} y @code{\unset} se usan para cambiar
+los valores de las propiedades de contexto.  Las instrucciones
+@code{\override} y @code{\revert} se usan para cambiar los valores
+de las propiedades de grob.
 
 @ignore
 La sintaxis de esto es
@@ -1926,10 +1972,10 @@ Referencia de funcionamiento interno:
 @rinternals{PropertySet}.
 
 @knownissues
-El «back-end» o motor de salida no es muy estricto en la comprobación
-de tipos de las propiedades de objetos.  Las referencias cíclicas en
-valores Scheme de propiedades pueden producir cuelgues o salidas
-abruptas, o las dos cosas.
+El «back-end» o motor de salida no es muy estricto en la
+comprobación de tipos de las propiedades de objetos.  Las
+referencias cíclicas en valores Scheme de propiedades pueden
+producir cuelgues o salidas abruptas, o las dos cosas.
 
 
 @node La instrucción set
@@ -1941,30 +1987,31 @@ abruptas, o las dos cosas.
 @cindex cambiar propiedades
 
 Cada contexto puede tener distintas @emph{propiedades}, variables
-contenidas dentro de ese contexto.  Se pueden cambiar mientras dura el
-paso de interpretación.  Se consigue insertando la instrucción
-@code{\set} dentro de la música:
+contenidas dentro de ese contexto.  Se pueden cambiar mientras
+dura el paso de interpretación.  Se consigue insertando la
+instrucción @code{\set} dentro de la música:
 
 @example
 \set @var{contexto}.@var{propiedad} = #@var{valor}
 @end example
 
-@var{valor} es un objeto de Scheme, razón por la que va precedido del
-carácter almohadilla,@tie{}@code{#}.
+@var{valor} es un objeto de Scheme, razón por la que va precedido
+del carácter almohadilla,@tie{}@code{#}.
 
-El nombre de las propiedades de contexto suele ir en minúsculas con
-mayúscula en medio.  Controlan sobre todo la traducción de la música a
-la notación, p.ej. @code{localAlterations} (para determinar si hay
-que impriir alteraciones o no), o @code{measurePosition} (para
-determinar cuándo hay que imprimir una línea divisoria).  El valor de
-las propiedades de contexto puede modifcarse con el tiempo durante la
-interpretación de la música; un ejemplo obvio es
-@code{measurePosition}.  Las propiedades de contexto se modifican
-mediante la instrucción @code{\set}.
+El nombre de las propiedades de contexto suele ir en minúsculas
+con mayúscula en medio.  Controlan sobre todo la traducción de la
+música a la notación, p.ej. @code{localAlterations} (para
+determinar si hay que impriir alteraciones o no), o
+@code{measurePosition} (para determinar cuándo hay que imprimir
+una línea divisoria).  El valor de las propiedades de contexto
+puede modifcarse con el tiempo durante la interpretación de la
+música; un ejemplo obvio es @code{measurePosition}.  Las
+propiedades de contexto se modifican mediante la instrucción
+@code{\set}.
 
-Por ejemplo, los silencios multicompás se combinan en un solo compás
-si el valor de la propiedad de contexto @code{skipBars} se establece a
-@code{#t} (verdadero):
+Por ejemplo, los silencios multicompás se combinan en un solo
+compás si el valor de la propiedad de contexto @code{skipBars} se
+establece a @code{#t} (verdadero):
 
 @lilypond[quote,fragment,verbatim]
 R1*2
@@ -1988,14 +2035,15 @@ contexto actual de nivel más bajo (normalmente @code{ChordNames},
 }
 @end lilypond
 
-El cambio se aplica @q{al vuelo}, mientras dura la música, de forma
-que el ajuste sólo afecta al segundo grupo de corcheas.
+El cambio se aplica @q{al vuelo}, mientras dura la música, de
+forma que el ajuste sólo afecta al segundo grupo de corcheas.
 
 Observe que el contexto del nivel más bajo no siempre contiene la
-propiedad que querríamos modificar: por ejemplo, intentar ajustar el
-valor de la propiedad @code{skipBars} del contexto predeterminado del
-nivel más bajo, que en este caso es @code{Voice}, no tendrá ningún
-efecto, porque skipBars es una propiedad del contexto @code{Score}.
+propiedad que querríamos modificar: por ejemplo, intentar ajustar
+el valor de la propiedad @code{skipBars} del contexto
+predeterminado del nivel más bajo, que en este caso es
+@code{Voice}, no tendrá ningún efecto, porque skipBars es una
+propiedad del contexto @code{Score}.
 
 @lilypond[quote,fragment,verbatim]
 R1*2
@@ -2035,8 +2083,8 @@ not be altered by an unset in an enclosed context:
 @end lilypond
 
 Como @code{\set}, el argumento @var{contexto} no se tiene que
-especificar para un contexto del nivel más bajo, por lo que los dos
-enunciados
+especificar para un contexto del nivel más bajo, por lo que los
+dos enunciados
 
 @example
 \set Voice.autoBeaming = ##t
@@ -2048,8 +2096,9 @@ son equivalentes si el contexto inferior en curso es @code{Voice}.
 
 
 @cindex \once
-Los ajustes que se aplican solamente a un único paso de tiempo se
-pueden escribir con @code{\once}, por ejemplo en
+Los ajustes con @code{\set} o @code{\unset} que se aplican
+solamente a un único paso de tiempo se pueden escribir con
+@code{\once}, por ejemplo en
 
 @lilypond[quote,fragment,verbatim]
 c''4
@@ -2059,8 +2108,8 @@ c''4
 @end lilypond
 
 En el manual de Referencia de funcionamiento interno hay una
-descripción completa de todas las propiedades de contexto disponibles,
-consulte
+descripción completa de todas las propiedades de contexto
+disponibles, consulte
 @ifhtml
 @rinternals{Tunable context properties}.
 @end ifhtml
@@ -2081,13 +2130,14 @@ Referencia de funcionamiento interno:
 @cindex propiedades de grob
 @funindex \override
 
-Existe un tipo especial de propiedad de contexto: la descripción de
-los grobs.  Las decscripciones de los grobs reciben un nombre en
-@code{MayúsculasDeCamello} (empezando en mayúscula).  Contienen los
-@q{ajustes predeterminados} para un tipo particular de grob, en forma
-de lista asociativa.  Consulte @file{scm/define-grobs.scm} para
-ver los ajustes de cada descripción de grob.  Las descripciones de
-grob se modifican con @code{\override}.
+Existe un tipo especial de propiedad de contexto: la descripción
+de los grobs.  Las decscripciones de los grobs reciben un nombre
+en @code{MayúsculasDeCamello} (empezando en mayúscula).  Contienen
+los @q{ajustes predeterminados} para un tipo particular de grob,
+en forma de lista asociativa.  Consulte
+@file{scm/define-grobs.scm} para ver los ajustes de cada
+descripción de grob.  Las descripciones de grob se modifican con
+@code{\override}.
 
 La sintaxis de la instrucción @code{\override} es
 
@@ -2163,9 +2213,9 @@ Por ejemplo,
 }
 @end lilypond
 
-Los efectos de @code{\override} y @code{\revert} se aplican a todos
-los grobs del contexto afectado partiendo del momento actual y hacia
-adelante:
+Los efectos de @code{\override} y @code{\revert} se aplican a
+todos los grobs del contexto afectado partiendo del momento actual
+y hacia adelante:
 
 @lilypond[quote,verbatim]
 <<
@@ -2185,8 +2235,8 @@ adelante:
 @funindex \once
 @cindex sobreescritura para un solo momento
 
-Se puede usar @code{\once} con @code{\override} para afectar solamente
-al instante de tiempo actual:
+Se puede usar @code{\once} con @code{\override} o @code{\revert}
+para afectar solamente al instante de tiempo actual:
 
 @lilypond[quote,verbatim]
 <<
@@ -2326,11 +2376,12 @@ pero esto no funciona:
 Para ver una introducción a la sintaxis y los usos de la instrucción tweak,
 consulte @rlearning{Métodos de trucaje}.
 
-Si se colocan varios elementos similares en el mismo momento musical,
-la instrucción @code{\override} no se puede usar para modificar uno
-solo de ellos: aquí es donde se debe usar la instrucción
-@code{\tweak}.  Entre los elementos que pueden aparecer más de una vez
-en el mismo momento musical están los siguientes:
+Si se colocan varios elementos similares en el mismo momento
+musical, la instrucción @code{\override} no se puede usar para
+modificar uno solo de ellos: aquí es donde se debe usar la
+instrucción @code{\tweak}.  Entre los elementos que pueden
+aparecer más de una vez en el mismo momento musical están los
+siguientes:
 
 @c TODO expand to include any further uses of \tweak
 @itemize
@@ -2344,8 +2395,8 @@ en el mismo momento musical están los siguientes:
 
 @cindex acorde, modificación de una nota
 
-En este ejemplo se modifican el color de una cabeza y el tipo de otra,
-dentro del mismo acorde:
+En este ejemplo se modifican el color de una cabeza y el tipo de
+otra, dentro del mismo acorde:
 
 @lilypond[verbatim,fragment,quote]
 < c''
@@ -2377,17 +2428,17 @@ partir de eventos dentro del @code{EventChord}:
 <\tweak color #red c'' e''>4
 @end lilypond
 
-La instrucción @code{\tweak} sencilla no se puede usar para modificar
-ningún objeto que no se haya creado directamente a partir de la entrada.
-Concretamente, no afecta a las plicas, barras automáticas ni
-alteraciones, porque éstos se generan posteriormente por
-parte de objetos de presentación @code{NoteHead}
-más que por elementos musicales del
-flujo de entrada.
+La instrucción @code{\tweak} sencilla no se puede usar para
+modificar ningún objeto que no se haya creado directamente a
+partir de la entrada.  Concretamente, no afecta a las plicas,
+barras automáticas ni alteraciones, porque éstos se generan
+posteriormente por parte de objetos de presentación
+@code{NoteHead} más que por elementos musicales del flujo de
+entrada.
 
-Tales objetos de presentación creados indirectamente se pueden trucar
-usando la forma de la instrucción @code{\tweak} en que el nombre
-del grob se especifica de forma explícita:
+Tales objetos de presentación creados indirectamente se pueden
+trucar usando la forma de la instrucción @code{\tweak} en que el
+nombre del grob se especifica de forma explícita:
 
 @lilypond[fragment,verbatim,quote]
 \tweak Stem.color #red
@@ -2414,11 +2465,12 @@ c'
 f''
 @end lilypond
 
-El flujo musical que se genera a partir de una sección de un archivo
-de entrada (incluido cualquier elemento insertado automáticamente)
-puede examinarse, véase @rextend{Presentación de las expresiones musicales}.
-Esto puede ser de utilidad en la determinación de lo que
-puede modificarse por medio de una instrucción @code{\tweak}.
+El flujo musical que se genera a partir de una sección de un
+archivo de entrada (incluido cualquier elemento insertado
+automáticamente) puede examinarse, véase
+@rextend{Presentación de las expresiones musicales}.  Esto puede
+ser de utilidad en la determinación de lo que puede modificarse
+por medio de una instrucción @code{\tweak}.
 
 @seealso
 Manual de aprendizaje:
@@ -2433,9 +2485,9 @@ Manual de extensión:
 @cindex control, trucar puntos de
 
 No se puede usar la instrucción @code{\tweak} para modificar los
-puntos de control de una sola de varias ligaduras de unión dentro de
-un acorde, aparte de la primera que se encuentre en el código de
-entrada.
+puntos de control de una sola de varias ligaduras de unión dentro
+de un acorde, aparte de la primera que se encuentre en el código
+de entrada.
 
 
 @node set frente a override
@@ -2452,40 +2504,44 @@ cuenta la jerarquía de contextos: las propiedades no establecidas en
 el propio contexto presentan los valores del contexto padre
 respectivo.
 
-El valor y la duración en el tiempo de las propiedades de contexto son
-dinámicos y están disponibles solamente cuando la música se está
-interpretando o @q{iterando}.  En el momento de la creación del
-contexto, se inicializan las propiedades a partir de la definición de
-contexto correspondiente y las posibles modificaciones de contexto.
-Después de esto, cualquier cambio se obtiene a través de instrucciones
-de establecimiento de propiedades dentro de la propia música.
-
-Ahora bien, las definiciones de grob (objetos gráficos) son una clase
-especial de propiedades de contexto.  Dado que su estructura,
-mantenimiento y utilización es distinta de las propiedades de contexto
-ordinarias, se accede a ellas con un conjunto de instrucciones
-diferente, y se estudian por separado dentro de la documentación.
-
-A diferencia de las propiedades de contexto normales, las definiciones
-de grob están subdivididas en propiedades de grob.  Un @qq{grob}
-(objeto gráfico) se crea normalmente por parte de un grabador en el
-momento de la interpretación de una expresión musical y recibe sus
-propiedades iniciales de la definición de grob en curso del contexto
-del grabador.  El grabador (u otras partes del @q{backend} de
-LilyPond) pueden después añadir o modificar propiedades del grob, pero
-ello no afecta a la definición de grob del contexto.
+El valor y la duración en el tiempo de las propiedades de contexto
+son dinámicos y están disponibles solamente cuando la música se
+está interpretando o @q{iterando}.  En el momento de la creación
+del contexto, se inicializan las propiedades a partir de la
+definición de contexto correspondiente y las posibles
+modificaciones de contexto.  Después de esto, cualquier cambio se
+obtiene a través de instrucciones de establecimiento de
+propiedades dentro de la propia música.
+
+Ahora bien, las definiciones de grob (objetos gráficos) son una
+clase especial de propiedades de contexto.  Dado que su
+estructura, mantenimiento y utilización es distinta de las
+propiedades de contexto ordinarias, se accede a ellas con un
+conjunto de instrucciones diferente, y se estudian por separado
+dentro de la documentación.
+
+A diferencia de las propiedades de contexto normales, las
+definiciones de grob están subdivididas en propiedades de grob.
+Un @qq{grob} (objeto gráfico) se crea normalmente por parte de un
+grabador en el momento de la interpretación de una expresión
+musical y recibe sus propiedades iniciales de la definición de
+grob en curso del contexto del grabador.  El grabador (u otras
+partes del @q{backend} de LilyPond) pueden después añadir o
+modificar propiedades del grob, pero ello no afecta a la
+definición de grob del contexto.
 
 Lo que conocemos como @q{propiedades de grob} en el contexto del
 trucaje a nivel de usuario son en realidad las propiedades de la
-definición de grob de un contexto.  A diferencia de las propiedades de
-contexto normales, las definiciones de grob mantienen la contabilidad
-necesaria para seguir la pista de sus partes, las propiedades de grob
-individuales (e incluso subpropiedades de éstos), de forma separada,
-de forma que es posible definir dichas partes dentro de contextos
-diferentes y hacer que la definición de grob en su conjunto, en el
-momento de la creación del grob, se monte a partir de las piezas
-proporcionadas en diferentes contextos entre el contexto actual y sus
-contextos padre.
+definición de grob de un contexto.  A diferencia de las
+propiedades de contexto normales, las definiciones de grob
+mantienen la contabilidad necesaria para seguir la pista de sus
+partes, las propiedades de grob individuales (e incluso
+subpropiedades de éstos), de forma separada, de forma que es
+posible definir dichas partes dentro de contextos diferentes y
+hacer que la definición de grob en su conjunto, en el momento de
+la creación del grob, se monte a partir de las piezas
+proporcionadas en diferentes contextos entre el contexto actual y
+sus contextos padre.
 
 Las definiciones de grob se manipulan usando @code{\override} y
 @code{\revert} y tienen un nombre que empieza con una letra mayúscula
@@ -2507,10 +2563,10 @@ o son de un tipo en particular, respectivamente.
 @subsection Modificación de las listas-A
 @translationof Modifying alists
 
-Ciertas propiedades configurables por parte del usuario se representan
-internamente como @emph{listas-A} (listas asociativas), que almacenan
-duplas de @emph{claves} y @emph{valores}.  La estructura de una
-lista-A es la siguiente:
+Ciertas propiedades configurables por parte del usuario se
+representan internamente como @emph{listas-A} (listas
+asociativas), que almacenan duplas de @emph{claves} y
+@emph{valores}.  La estructura de una lista-A es la siguiente:
 
 @example
 '((@var{clave1} . @var{valor1})
@@ -2520,19 +2576,18 @@ lista-A es la siguiente:
 @end example
 
 Si una lista-A es una propiedad de un grob o una variable de
-@code{\paper}, sus claves se pueden modificar individualmente sin que
-afecte a las otras claves.
+@code{\paper}, sus claves se pueden modificar individualmente sin
+que afecte a las otras claves.
 
 Por ejemplo, para reducir el espacio entre pentagramas adyacentes
 dentro de un grupo, use la propiedad @code{staff-staff-spacing}
-del grob @code{StaffGrouper}.  La propiedad es una lista-A con cuatro
-claves: @code{basic-distance} (distancia básica),
-@code{minimum-distance} (distancia mínima), @code{padding} (relleno)
-y @code{stretchability} (ampliabilidad).
-Los ajustes estándar para esta propiedad
-se relacionan en la sección
-@qq{Backend} de la Referencia de Funcionamiento Interno
-(véase @rinternals{StaffGrouper}):
+del grob @code{StaffGrouper}.  La propiedad es una lista-A con
+cuatro claves: @code{basic-distance} (distancia básica),
+@code{minimum-distance} (distancia mínima), @code{padding}
+(relleno) y @code{stretchability} (ampliabilidad).  Los ajustes
+estándar para esta propiedad se relacionan en la sección
+@qq{Backend} de la Referencia de Funcionamiento Interno (véase
+@rinternals{StaffGrouper}):
 
 @example
 '((basic-distance . 9)
@@ -2541,11 +2596,11 @@ se relacionan en la sección
   (stretchability . 5))
 @end example
 
-Una forma de acercar los pentagramas entre sí es reducir el valor de
-la clave @code{basic-distance} (@code{9}) para que se corresponda con
-el valor de @code{minimum-distance} (@code{7}).  Para modificar una
-única clave de forma individual, utilice una @emph{declaración
-anidada}:
+Una forma de acercar los pentagramas entre sí es reducir el valor
+de la clave @code{basic-distance} (@code{9}) para que se
+corresponda con el valor de @code{minimum-distance} (@code{7}).
+Para modificar una única clave de forma individual, utilice una
+@emph{declaración anidada}:
 
 @lilypond[quote,verbatim]
 % default space between staves
@@ -2566,16 +2621,16 @@ anidada}:
 
 La utilización de una declaración anidada actualiza la clave
 especificada (como @code{basic-distance} en el ejemplo anterior)
-sin alterar ninguna
-de las otras claves que ya se habían establecido para la misma
-propiedad.
+sin alterar ninguna de las otras claves que ya se habían
+establecido para la misma propiedad.
 
-Ahora, supongamos que deseamos que los pentagramas estén tan próximos
-como sea posible sin que se superpongan.  La manera más sencilla de
-hacerlo es establecer las cuatro claves de la lista-A a cero.  Sin
-embargo, no es necesario escribir cuatro declaraciones anidadas, una
-por cada clave.  En lugar de eso, se puede redefinir completamente la
-propiedad con una sola declaración, como una lista-A:
+Ahora, supongamos que deseamos que los pentagramas estén tan
+próximos como sea posible sin que se superpongan.  La manera más
+sencilla de hacerlo es establecer las cuatro claves de la lista-A
+a cero.  Sin embargo, no es necesario escribir cuatro
+declaraciones anidadas, una por cada clave.  En lugar de eso, se
+puede redefinir completamente la propiedad con una sola
+declaración, como una lista-A:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
@@ -2591,12 +2646,12 @@ propiedad con una sola declaración, como una lista-A:
 @end lilypond
 
 Observe que cualquier clave que no haya sido relacionada
-explícitamente en la definición de la lista-A, será reiniciada a sus
-valores @emph{predeterminados si no se han fijado}.  En el caso de
-@code{staff-staff-spacing}, el valor de cualquier clave no fijada se
-reiniciaría a cero (excepto @code{stretchability}, que toma el valor
-de @code{basic-distance} si no se fija).  Así, las dos declaraciones
-siguientes son equivalentes:
+explícitamente en la definición de la lista-A, será reiniciada a
+sus valores @emph{predeterminados si no se han fijado}.  En el
+caso de @code{staff-staff-spacing}, el valor de cualquier clave no
+fijada se reiniciaría a cero (excepto @code{stretchability}, que
+toma el valor de @code{basic-distance} si no se fija).  Así, las
+dos declaraciones siguientes son equivalentes:
 
 @example
 \override StaffGrouper.staff-staff-spacing =
@@ -2611,19 +2666,20 @@ siguientes son equivalentes:
 
 Una consecuencia de esto (posiblemente no intencionada) es la
 eliminación de cualquier valor estándar que se establezca en un
-archivo de inicio y que se carga cada vez que se compila un archivo de
-entrada.  En el ejemplo anterior, los ajustes estándar para
-@code{padding} y @code{minimum-distance} (definidos en
+archivo de inicio y que se carga cada vez que se compila un
+archivo de entrada.  En el ejemplo anterior, los ajustes estándar
+para @code{padding} y @code{minimum-distance} (definidos en
 @file{scm/define-grobs.scm}) se reinician a sus valores
-predeterminados si no se han fijado (cero para las dos claves).  La
-definición de una propiedad o variable como una lista-A (de cualquier
-tamaño) siempre reinicia todos los valores de clave no establecidos a
-sus valores predeterminados si no se han fijado.  Ano ser que este sea
-el resultado deseado, es más seguro actualizar los valores de clave
-individualmente con una declaración anidada.
-
-@warning{Las declaraciones anidadas no funcionan para las listas-A de
-propiedades de contexto (como @code{beamExceptions},
+predeterminados si no se han fijado (cero para las dos claves).
+La definición de una propiedad o variable como una lista-A (de
+cualquier tamaño) siempre reinicia todos los valores de clave no
+establecidos a sus valores predeterminados si no se han fijado.
+Ano ser que este sea el resultado deseado, es más seguro
+actualizar los valores de clave individualmente con una
+declaración anidada.
+
+@warning{Las declaraciones anidadas no funcionan para las listas-A
+de propiedades de contexto (como @code{beamExceptions},
 @code{keyAlterations}, @code{timeSignatureSettings}, etc.).  Estas
 propiedades sólo se pueden modificar redefiniéndolas completamente
 como listas-A.}
@@ -2638,6 +2694,7 @@ como listas-A.}
 * Modos de entrada::
 * Dirección y posición::
 * Distancias y medidas::
+* Dimensiones::
 * Propiedades del símbolo del pentagrama::
 * Objetos de extensión::
 * Visibilidad de los objetos::
@@ -2651,34 +2708,37 @@ como listas-A.}
 @translationof Input modes
 
 La forma en que se interpreta la notación contenida dentro de un
-archivo de entrada, está determinada por el modo de entrada en curso.
+archivo de entrada, está determinada por el modo de entrada en
+curso.
 
-@strong{Modo de acordes}
+@subsubsubheading Modo de acordes
 
 Se activa con la instrucción @code{\chordmode} y produce que la
-entrada se interprete con al sintaxis de la notación de acordes, véase
-@ref{Notación de acordes}.  Los acordes se imprimen como notas sobre un
-pentagrama.
+entrada se interprete con al sintaxis de la notación de acordes,
+véase @ref{Notación de acordes}.  Los acordes se imprimen como
+notas sobre un pentagrama.
 
 El modo de acordes se activa también con la instrucción
-@code{\chords}.  Esto crea también un contexto @code{ChordNames} nuevo
-y produce que el código que sigue se interprete con la sintaxis de la
-notación de acordes y se imprima como nombres de acorde dentro del
-contexto @code{ChordNames}, véase @ref{Impresión de los nombres de acorde}.
+@code{\chords}.  Esto crea también un contexto @code{ChordNames}
+nuevo y produce que el código que sigue se interprete con la
+sintaxis de la notación de acordes y se imprima como nombres de
+acorde dentro del contexto @code{ChordNames}, véase @ref{Impresión
+de los nombres de acorde}.
 
-@strong{Modo de percusión}
+@subsubsubheading Modo de percusión
 
-Se activa con la instrucción @code{\drummode} y produce que el código
-de entrada se interprete con la sintaxis de la notación de percusión,
-véase @ref{Notación básica de percusión}.
+Se activa con la instrucción @code{\drummode} y produce que el
+código de entrada se interprete con la sintaxis de la notación de
+percusión, véase @ref{Notación básica de percusión}.
 
 El modo de percusión también se activa con la instrucción
-@code{\drums}.  También crea un contexto @code{DrumStaff} nuevo y hace
-que el código que sigue se interprete con la sintaxis de la notación
-de percusión y se imprima como símbolos de percusión sobre un
-pentagrama de percusión, véase @ref{Notación básica de percusión}.
+@code{\drums}.  También crea un contexto @code{DrumStaff} nuevo y
+hace que el código que sigue se interprete con la sintaxis de la
+notación de percusión y se imprima como símbolos de percusión
+sobre un pentagrama de percusión, véase @ref{Notación básica de
+percusión}.
 
-@strong{Modo de cifras}
+@subsubsubheading Modo de cifras
 
 Se activa con la instrucción @code{\figuremode} y hace que el código
 de entrada se interprete con la sintaxis del bajo cifrado, véase
@@ -2691,7 +2751,7 @@ con la sintaxis del bajo cifrado y se imprima como símbolos de
 bajo cifrado dentro del contexto @code{FiguredBass}, véase
 @ref{Introducción al bajo cifrado}.
 
-@strong{Modos de traste y tablatura}
+@subsubsubheading Modos de traste y tablatura
 
 No existen modos de entrada especiales para introducir símbolos de
 trastes y de tablatura.
@@ -2700,29 +2760,30 @@ Para crear diagramas de trastes, escriba las notas o acordes en el
 modo de notas e imprímalos dentro de un contexto @code{TabStaff},
 véase @ref{Tablaturas predeterminadas}.
 
-Para crear diagramas de trastes encima de un pentagrama, escríbalos
-como elementos de marcado encima de las notas utilizando la
-instrucción @code{\fret-diagram}, véase @ref{Marcas de diagramas de trastes}.
+Para crear diagramas de trastes encima de un pentagrama,
+escríbalos como elementos de marcado encima de las notas
+utilizando la instrucción @code{\fret-diagram}, véase @ref{Marcas
+de diagramas de trastes}.
 
-@strong{Modo de letra}
+@subsubsubheading Modo de letra
 
-Se activa con la instrucción @code{\lyricmode}, y hace que la entrada
-se interprete como sílabas de la letra de la canción con duraciones
-opcionales y modificadores de letra asociados, véase @ref{Música vocal}.
+Se activa con la instrucción @code{\lyricmode}, y hace que la
+entrada se interprete como sílabas de la letra de la canción con
+duraciones opcionales y modificadores de letra asociados, véase
+@ref{Música vocal}.
 
 El modo de letra también se habilita con la instrucción
-@code{\addlyrics}.  Esto también crea un contexto @code{Lyrics} nuevo
-y una instrucción @code{\lyricsto} implícita que asocia la letra que
-viene a continuación con la música precedente.
+@code{\addlyrics}.  Esto también crea un contexto @code{Lyrics}
+nuevo y una instrucción @code{\lyricsto} implícita que asocia la
+letra que viene a continuación con la música precedente.
 
-@strong{Modo de marcado}
+@subsubsubheading Modo de marcado
 
-Se activa con la instrucción @code{\markup}, y hace que la entrada se
-interprete con la sintaxis del marcado, véase @ref{Text markup commands}.
+Se activa con la instrucción @code{\markup}, y hace que la entrada
+se interprete con la sintaxis del marcado, véase @ref{Text markup
+commands}.
 
-@c silly work-around for texinfo broken-ness
-@c (@strong{Note...} causes a spurious cross-reference in Info)
-@b{Modo de notas}
+@subsubsubheading Modo de notas
 
 Es el modo predeterminado o se puede activar con la instrucción
 @code{\notemode}.  La entrada se interpreta como alturas, duraciones,
@@ -2731,38 +2792,23 @@ marcado, etc. y se imprime como notación musical sobre un pentagrama.
 Normalmente no es necesario especificar el modo de notas de forma
 explícita, pero puede ser útil hacerlo en ciertas situaciones, por
 ejemplo si estamos en el modo de letra, en el modo de acordes o en
-otro modo y queremos insertar algo que solamente se puede hacer con la
-sintaxis del modo de notas.
-
-Por ejemplo, para insertar indicaciones dinámicas para las estrofas de
-una pieza coral es necesario entrar en el modo de notas para poder
-interpretar dichas indicaciones:
-
-@lilypond[verbatim,relative=2,quote]
-{ c4 c4 c4 c4 }
-\addlyrics {
-  \notemode{\set stanza = \markup{ \dynamic f 1. } }
-  To be sung loudly
-}
-\addlyrics {
-  \notemode{\set stanza = \markup{ \dynamic p 2. } }
-  To be sung quietly
-}
-@end lilypond
+otro modo y queremos insertar algo que solamente se puede hacer
+con la sintaxis del modo de notas.
 
 
 @node Dirección y posición
 @subsection Dirección y posición
 @translationof Direction and placement
 
-Al tipografiar música, la dirección y colocación de muchos elementos
-es cuestión de elección.  Por ejemplo, las plicas de las notas se
-pueden dirigir hacia arriba o hacia abajo; la letra, las indicaciones
-dinámicas y otras marcas expresivas se pueden colocar encima o debajo
-del pentagrama; el texto se pude alinear a la izquierda, a la derecha
-o centrado; etc.  La mayoría de estas elecciones pueden dejarse que
-LilyPond las determine automáticamente, pero en ciertos casos puede
-ser deseable forzar una dirección o colocación concreta.
+Al tipografiar música, la dirección y colocación de muchos
+elementos es cuestión de elección.  Por ejemplo, las plicas de las
+notas se pueden dirigir hacia arriba o hacia abajo; la letra, las
+indicaciones dinámicas y otras marcas expresivas se pueden colocar
+encima o debajo del pentagrama; el texto se pude alinear a la
+izquierda, a la derecha o centrado; etc.  La mayoría de estas
+elecciones pueden dejarse que LilyPond las determine
+automáticamente, pero en ciertos casos puede ser deseable forzar
+una dirección o colocación concreta.
 
 @menu
 * Indicadores de dirección de las articulaciones::
@@ -2773,21 +2819,22 @@ ser deseable forzar una dirección o colocación concreta.
 @unnumberedsubsubsec Indicadores de dirección de las articulaciones
 @translationof Articulation direction indicators
 
-De forma predeterminada algunas direcciones siempre son hacia arriba o
-siempre hacia abajo (p. ej. los matices o el calderón), mientras que
-otras cosas pueden alternar entre arriba y abajo en función de la
-dirección de las plicas (como las ligaduras o los acentos).
+De forma predeterminada algunas direcciones siempre son hacia
+arriba o siempre hacia abajo (p. ej. los matices o el calderón),
+mientras que otras cosas pueden alternar entre arriba y abajo en
+función de la dirección de las plicas (como las ligaduras o los
+acentos).
 
 @c TODO Add table showing these
 
-Se puede sobreescribir la acción predeterminada mediante el prefijado
-de la articulación por un @emph{indicacor de dirección}.  Están
-disponibles tres indicadores de dirección: @code{^} (que significa
-@qq{arriba}), @code{_} (que significa @qq{abajo}) o @code{-} (que
-significa @qq{usar la dirección predeterminada}).  El indicador de
-dirección se puede normalmente omitir, en cuyo caso se supone el
-indicador predeterminado @code{-}, pero se necesita un indicador de
-dirección @strong{siempre} antes de:
+Se puede sobreescribir la acción predeterminada mediante el
+prefijado de la articulación por un @emph{indicacor de dirección}.
+Están disponibles tres indicadores de dirección: @code{^} (que
+significa @qq{arriba}), @code{_} (que significa @qq{abajo}) o
+@code{-} (que significa @qq{usar la dirección predeterminada}).
+El indicador de dirección se puede normalmente omitir, en cuyo
+caso se supone el indicador predeterminado @code{-}, pero se
+necesita un indicador de dirección @strong{siempre} antes de:
 
 @itemize
 @item las instrucciones @code{\tweak}
@@ -2816,15 +2863,16 @@ Estas indicaciones afectan sólo a la nota siguiente.
 La posición o dirección de muchos objetos de presentación está
 controlada por la propiedad @code{direction}.
 
-El valor de la propiedad @code{direction} se puede establecer al valor
-@code{1}, con el significado de @qq{hacia arriba} o @qq{encima}, o a
-@w{@code{-1}}, con el significado de @qq{hacia abajo} o @qq{debajo}.
-Se pueden usar los símbolos @code{UP} y @code{DOWN} en sustitución de
-@code{1} y @w{@code{-1}} respectivamente.  La dirección predeterminada
-se puede especificar estableciendo @code{direction} a @code{0} ó a
-@code{CENTER}.  De forma alternativa, en muchos casos existen
-instrucciones predefinidas para especificar la dirección.  Todas ellas
-son de la forma:
+El valor de la propiedad @code{direction} se puede establecer al
+valor @code{1}, con el significado de @qq{hacia arriba} o
+@qq{encima}, o a @w{@code{-1}}, con el significado de @qq{hacia
+abajo} o @qq{debajo}.  Se pueden usar los símbolos @code{UP} y
+@code{DOWN} en sustitución de @code{1} y @w{@code{-1}}
+respectivamente.  La dirección predeterminada se puede especificar
+estableciendo @code{direction} a @code{0} ó a @code{CENTER}.  De
+forma alternativa, en muchos casos existen instrucciones
+predefinidas para especificar la dirección.  Todas ellas son de la
+forma:
 
 @example
 @code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral}
@@ -2832,16 +2880,19 @@ son de la forma:
 
 @noindent
 donde @code{\xxxNeutral} significa @qq{utilizar la dirección
-predeterminada}.  Véase @rlearning{Objetos interiores al pentagrama}.
+predeterminada}.  Véase @rlearning{Objetos interiores al
+pentagrama}.
 
-En alguna que otra ocasión como en el arpegio, el
-valor de la propiedad @code{direction} puede especificar si el objeto se debe
-colocar a la izquierda o a la derecha del objeto padre.  En este caso
-@w{@code{-1}} ó @code{LEFT} significan @qq{a la izquierda} y @code{1}
-ó @code{RIGHT} significan @qq{a la derecha}.  @code{0} ó @code{CENTER}
-significan @qq{utilizar la dirección predeterminada}.
+En alguna que otra ocasión como en el arpegio, el valor de la
+propiedad @code{direction} puede especificar si el objeto se debe
+colocar a la izquierda o a la derecha del objeto padre.  En este
+caso @w{@code{-1}} ó @code{LEFT} significan @qq{a la izquierda} y
+@code{1} ó @code{RIGHT} significan @qq{a la derecha}.  @code{0} ó
+@code{CENTER} significan @qq{utilizar la dirección
+predeterminada}.
 
-Estas indicaciones afectan a todas las notas hasta que son canceladas.
+Estas indicaciones afectan a todas las notas hasta que son
+canceladas.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -2854,9 +2905,9 @@ Estas indicaciones afectan a todas las notas hasta que son canceladas.
 }
 @end lilypond
 
-En música polifónica, en general es mejor especificar una voz explícita
-que cambiar la dirección de un objeto.  Para ver más información,
-véase @ref{Varias voces}.
+En música polifónica, en general es mejor especificar una voz
+explícita que cambiar la dirección de un objeto.  Para ver más
+información, véase @ref{Varias voces}.
 
 @seealso
 Manual de aprendizaje:
@@ -2878,46 +2929,50 @@ Referencia de la notación:
 @funindex \in
 @funindex \pt
 
-Las distancias en LilyPond son de dos tipos: absolutas y escaladas.
-
-Las distancias absolutas se usan para especificar márgenes, sangrados
-y otros detalles de diseño de página, y de forma predeterminada se
-especifican en milímetros.  Las distancias se pueden especificar en
-otras unidades escribiendo después de la cifra indicativa de la
-cantidad, @code{\mm}, @code{\cm}, @code{\in}@tie{}(pulgadas), o
-@code{\pt}@tie{}(puntos, 1/72.27 pulgadas).  Las distancias de diseño
-de página se pueden especificar también en unidades escalables (véase
-el párrafo siguiente) adjuntando @code{\staff-space} a la cantidad.
-La disposición de página se describe en detalle en
-@ref{Disposición de la página}.
+Las distancias en LilyPond son de dos tipos: absolutas y
+escaladas.
+
+Las distancias absolutas se usan para especificar márgenes,
+sangrados y otros detalles de diseño de página, y de forma
+predeterminada se especifican en milímetros.  Las distancias se
+pueden especificar en otras unidades escribiendo después de la
+cifra indicativa de la cantidad, @code{\mm}, @code{\cm},
+@code{\in}@tie{}(pulgadas), o @code{\pt}@tie{}(puntos, 1/72.27
+pulgadas).  Las distancias de diseño de página se pueden
+especificar también en unidades escalables (véase el párrafo
+siguiente) adjuntando @code{\staff-space} a la cantidad.  La
+disposición de página se describe en detalle en @ref{Disposición
+de la página}.
 
 Las distancias escaladas siempre se especifican en unidades de un
-espacio del pentagrama o, más raramente, medio espacio del pentagrama.
-El espacio de pentagrama es la distancia entre dos líneas del
-pentagrama adyacentes.  El valor predeterminado se puede cambiar
-globalmente fijando el tamaño global del pentagrama, o se puede
-sobreescribir localmente cambiando la propiedad @code{staff-space} del
-objeto @code{StaffSymbol}.  Las distancias escaladas se escalan
-automáticamente con cualquier cambio al tamaño global del pentagrama o
-a la propiedad @code{staff-space} del objeto @code{StaffSymbol}, pero
-las fuentes tipográficas se escalan solamente con los cambios
-efectuados al tamaño global del pentagrama.  Así, el tamaño global del
-pentagrama posibilita la fácil variación del tamaño general de una
-partitura impresa.  Para ver los métodos de establecimiento del tamaño
-global del pentagrama, véase @ref{Establecer el tamaño del pentagrama}.
+espacio del pentagrama o, más raramente, medio espacio del
+pentagrama.  El espacio de pentagrama es la distancia entre dos
+líneas del pentagrama adyacentes.  El valor predeterminado se
+puede cambiar globalmente fijando el tamaño global del pentagrama,
+o se puede sobreescribir localmente cambiando la propiedad
+@code{staff-space} del objeto @code{StaffSymbol}.  Las distancias
+escaladas se escalan automáticamente con cualquier cambio al
+tamaño global del pentagrama o a la propiedad @code{staff-space}
+del objeto @code{StaffSymbol}, pero las fuentes tipográficas se
+escalan solamente con los cambios efectuados al tamaño global del
+pentagrama.  Así, el tamaño global del pentagrama posibilita la
+fácil variación del tamaño general de una partitura impresa.  Para
+ver los métodos de establecimiento del tamaño global del
+pentagrama, véase @ref{Establecer el tamaño del pentagrama}.
 
 @funindex magstep
 
-Si se necesita dibujar sólo una sección de una partitura a una escala
-distinta, por ejemplo una sección ossia o una nota al pie, no se puede
-simplemente cambiar el tamaño global del pentagrama porque esto
-afectaría a toda la partitura.  En tales casos, el cambio de tamaño se
-hace sobreescribiendo tanto la propiedad @code{staff-space} de
-@code{StaffSymbol} como el tamaño de las fuentes tipográficas.  Está a
-nuestra disposición una función de Scheme, @code{magstep}, para
-convertir de un cambio en el tamaño de la fuente al cambio equivalente
-en @code{staff-space}.  Para ver una explicación y un ejemplo de su
-utilización, consulte @rlearning{Longitud y grosor de los objetos}.
+Si se necesita dibujar sólo una sección de una partitura a una
+escala distinta, por ejemplo una sección ossia o una nota al pie,
+no se puede simplemente cambiar el tamaño global del pentagrama
+porque esto afectaría a toda la partitura.  En tales casos, el
+cambio de tamaño se hace sobreescribiendo tanto la propiedad
+@code{staff-space} de @code{StaffSymbol} como el tamaño de las
+fuentes tipográficas.  Está a nuestra disposición una función de
+Scheme, @code{magstep}, para convertir de un cambio en el tamaño
+de la fuente al cambio equivalente en @code{staff-space}.  Para
+ver una explicación y un ejemplo de su utilización, consulte
+@rlearning{Longitud y grosor de los objetos}.
 
 @seealso
 Manual de aprendizaje:
@@ -2928,6 +2983,38 @@ Referencia de la notación:
 @ref{Establecer el tamaño del pentagrama}.
 
 
+@node Dimensiones
+@subsection Dimensiones
+@translationof Dimensions
+
+@cindex dimensiones
+@cindex caja circundante
+
+Las dimensiones de un objeto gráfico especifican las posiciones de
+los límites izquierdo y derecho, así como los límites inferior y
+superior de las cajas limítrofes de los objetos como distancias a
+partir del punto de referencia del objeto en unidades de espacios
+de pentagrama.  Estas posiciones se codifican frecuentemente como
+dos parejas de valores de Scheme.  Por ejemplo, la instrucción de
+marcado de texto @code{\with-dimensions} toma tres argumentos, de
+los cuales los dos primeros son una pareja de Scheme que da las
+posiiciones de los bordes izquierdo y derecho y otra pareja de
+Scheme que da las posiciones de los límites inferior y superior:
+
+@example
+\with-dimensions #'(-5 . 10) #'(-3 . 15) @var{arg}
+@end example
+
+Esto especifica una caja circundante para @var{arg} con su límite
+izquierdo en -5, su límite derecho en 10, el inferior en -3 y el
+superior e 15, todos ellos medidos a partir del punto de
+referencia del objeto en unidades de espacios de pentagrama.
+
+@seealso
+Referencia de la notación:
+@ref{Distancias y medidas}.
+
+
 @node Propiedades del símbolo del pentagrama
 @subsection Propiedades del símbolo del pentagrama
 @translationof Staff symbol properties
@@ -2941,15 +3028,15 @@ Referencia de la notación:
 @c      is used in a snippet to thicken centre line.
 @c      If retained, add @ref to here in 1.6.2  -td
 
-Se puede definir al mismo tiempo la posición vertical de las líneas de
-la pauta y el número de líneas de la misma.  Como muestra el siguiente
-ejemplo, las posiciones de las notas no están influidas por las
-posiciones de las líneas de la pauta.
+Se puede definir al mismo tiempo la posición vertical de las
+líneas de la pauta y el número de líneas de la misma.  Como
+muestra el siguiente ejemplo, las posiciones de las notas no están
+influidas por las posiciones de las líneas de la pauta.
 
 @warning{La propiedad @code{'line-positions} sobreescribe a la
-propiedad @code{'line-count}.  El número de líneas de la pauta está
-definido implícitamente por el número de elementos de la lista de
-valores de @code{'line-positions}.}
+propiedad @code{'line-count}.  El número de líneas de la pauta
+está definido implícitamente por el número de elementos de la
+lista de valores de @code{'line-positions}.}
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -2958,9 +3045,9 @@ valores de @code{'line-positions}.}
 \relative { a4 e' f b | d1 }
 @end lilypond
 
-Se puede modificar la anchura de la pauta.  Las unidades son espacios
-de pentagrama.  El espaciado de los objetos dentro del pentagrama no
-resulta afectado por este ajuste.
+Se puede modificar la anchura de la pauta.  Las unidades son
+espacios de pentagrama.  El espaciado de los objetos dentro del
+pentagrama no resulta afectado por este ajuste.
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -2976,16 +3063,17 @@ resulta afectado por este ajuste.
 
 Muchos objetos de notación musical abarcan varias notas o incluso
 varios compases.  Son ejemplos los crescendi, trinos, corchetes de
-grupo especial y corchetes de primera y segunda vez.  Estos objetos se
-llaman @qq{spanners} u «objetos de extensión», y tienen propiedades
-especiales para controlar su apariencia y comportamiento.  Algunas de
-estas propiedades son comunes a todos los objetos de extensión; otras
-se limitan a un subconjunto de los extensores.
+grupo especial y corchetes de primera y segunda vez.  Estos
+objetos se llaman @qq{spanners} u «objetos de extensión», y tienen
+propiedades especiales para controlar su apariencia y
+comportamiento.  Algunas de estas propiedades son comunes a todos
+los objetos de extensión; otras se limitan a un subconjunto de los
+extensores.
 
 Todos los objetos de extensión contemplan el interface
-@code{spanner-interface}.  Algunos, básicamente aquellos que trazan
-una línea recta entre los dos objetos, contemplan también el interface
-@code{line-spanner-interface}.
+@code{spanner-interface}.  Algunos, básicamente aquellos que
+trazan una línea recta entre los dos objetos, contemplan también
+el interface @code{line-spanner-interface}.
 
 @menu
 * Uso del spanner-interface::
@@ -3030,33 +3118,36 @@ Works not at all for:
 
 @end ignore
 
-@lilypond[verbatim,quote,relative=2]
-a~ a
-a
+@lilypond[verbatim,quote,fragment]
+a'~ a'
+a'
 % increase the length of the tie
 -\tweak minimum-length #5
-~ a
+~ a'
 @end lilypond
 
-@lilypond[verbatim,quote,relative=2]
-a1
-\compressFullBarRests
-R1*23
-% increase the length of the rest bar
-\once \override MultiMeasureRest.minimum-length = #20
-R1*23
-a1
+@lilypond[verbatim,quote]
+\relative \compressMMRests {
+  a'1
+  R1*23
+  % increase the length of the rest bar
+  \once \override MultiMeasureRest.minimum-length = #20
+  R1*23
+  a1
+}
 @end lilypond
 
-@lilypond[verbatim,quote,relative=2]
-a \< a a a \!
-% increase the length of the hairpin
-\override Hairpin.minimum-length = #20
-a \< a a a \!
+@lilypond[verbatim,quote]
+\relative {
+  a' \< a a a \!
+  % increase the length of the hairpin
+  \override Hairpin.minimum-length = #20
+  a \< a a a \!
+}
 @end lilypond
 
-Esta sobreescritura se puede usar también para aumentar la longitud de
-las ligaduras de expresión y de fraseo:
+Esta sobreescritura se puede usar también para aumentar la
+longitud de las ligaduras de expresión y de fraseo:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -3073,12 +3164,12 @@ las ligaduras de expresión y de fraseo:
 @end lilypond
 
 Para algunos objetos de presentación, la propiedad
-@code{minimum-length} es efectiva sólo si se llama explícitamente al
-procedimiento @code{set-spacing-rods}.  Para hacerlo, se debe fijar la
-propiedad @code{springs-and-rods} al valor
-@code{ly:spanner::set-spacing-rods}.  Por ejemplo, la longitud mínima
-de un glissando no tiene efecto a no ser que se establezca la
-propiedad @code{springs-and-rods}:
+@code{minimum-length} es efectiva sólo si se llama explícitamente
+al procedimiento @code{set-spacing-rods}.  Para hacerlo, se debe
+fijar la propiedad @code{springs-and-rods} al valor
+@code{ly:spanner::set-spacing-rods}.  Por ejemplo, la longitud
+mínima de un glissando no tiene efecto a no ser que se establezca
+la propiedad @code{springs-and-rods}:
 
 @lilypond[verbatim,fragment,quote]
 % default
@@ -3111,11 +3202,11 @@ e'8 e' e' e'
 
 La segunda propiedad útil del @code{spanner-interface} es
 @code{to-barline}.  De forma predeterminada tiene el valor cierto,
-haciendo que los reguladores y otros objetos de extensión que terminan
-sobre la primera nota de un compás, en vez de eso terminen en la línea
-divisoria inmediatamente precedente.  Si se establece al valor falso,
-el extensor llegará más allá de la barra de compás y terminará
-exactamente sobre la nota:
+haciendo que los reguladores y otros objetos de extensión que
+terminan sobre la primera nota de un compás, en vez de eso
+terminen en la línea divisoria inmediatamente precedente.  Si se
+establece al valor falso, el extensor llegará más allá de la barra
+de compás y terminará exactamente sobre la nota:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -3125,10 +3216,11 @@ exactamente sobre la nota:
 }
 @end lilypond
 
-Esta propiedad no es efectiva para todos los extensores.  Por ejemplo,
-su establecimiento a @code{#t} no tienen ningún efecto sobre las
-ligaduras de expresión o de fraseo, o sobre otros extensores para los
-que terminar en la barra de compás no tendría ningún significado.
+Esta propiedad no es efectiva para todos los extensores.  Por
+ejemplo, su establecimiento a @code{#t} no tienen ningún efecto
+sobre las ligaduras de expresión o de fraseo, o sobre otros
+extensores para los que terminar en la barra de compás no tendría
+ningún significado.
 
 @node Uso del line-spanner-interface
 @unnumberedsubsubsec Uso del @code{line-spanner-interface}
@@ -3146,10 +3238,10 @@ Entre los objetos que contemplan el interface
 @end itemize
 
 La rutina responsable de dibujar los sellos de estos extensores es
-@code{ly:line-interface::print}.  esta rutina determina la
-localización exacta de los dos puntos extremos y traza una línea entre
-ellos, en el estilo solicitado.  Las posiciones de los dos puntos
-extremos del extensor se calculan al vuelo, pero es posible
+@code{ly:line-spanner::print}.  esta rutina determina la
+localización exacta de los dos puntos extremos y traza una línea
+entre ellos, en el estilo solicitado.  Las posiciones de los dos
+puntos extremos del extensor se calculan al vuelo, pero es posible
 sobreescribir sus coordenadas Y.  Las propiedades que se deben
 especificar están anidadas a dos niveles de profundidad en la
 jerarquía de propiedades, pero la sintaxis de la instrucción
@@ -3165,11 +3257,12 @@ e''2 \glissando b'
 Las unidades para la propiedad @code{Y} son @code{staff-space}s,
 siendo el punto del cero la línea central del pentagrama.  Para el
 glissando, esto es el valor de @code{Y} en la coordenada X que
-corresponde al punto central de cada cabeza de nota si nos imaginamos
-que la línea se extiende hasta allí.
+corresponde al punto central de cada cabeza de nota si nos
+imaginamos que la línea se extiende hasta allí.
 
 Si no está fijado @code{Y}, su valor se calcula a partir de la
-posición vertical del punto de anclaje correspondiente del extensor.
+posición vertical del punto de anclaje correspondiente del
+extensor.
 
 En caso de salto de línea, los valores para los puntos extremos se
 especifican por las sub-listas @code{left-broken} y
@@ -3182,39 +3275,39 @@ c''1 \glissando \break
 f''1
 @end lilypond
 
-Un número de propiedades adicionales de las sub-listas @code{left} y
-@code{right} de la propiedad @code{bound-details} se pueden
+Un número de propiedades adicionales de las sub-listas @code{left}
+@code{right} de la propiedad @code{bound-details} se pueden
 especificar de la misma forma que @code{Y}:
 
 @table @code
 @item Y
 Establece la coordenada Y del punto extremo, en desplazamientos de
-@code{staff-space}s desde la línea central del pentagrama.  De forma
-predeterminada es el centro del objeto ancla, y así un glissando
-apunta al centro vertical de la cabeza de la nota.
+@code{staff-space}s desde la línea central del pentagrama.  De
+forma predeterminada es el centro del objeto ancla, y así un
+glissando apunta al centro vertical de la cabeza de la nota.
 
 Para extensores horizontales como los extensores de texto y los
 trinos, está inamoviblemente codificado como 0.
 
 @item attach-dir (dirección de anclaje)
 Determina dónde comienza y termina la línea en la dirección X, con
-relación al objeto ancla.  Sí, un valor de @w{@code{-1}} (o @code{LEFT},
-izquierda) hace que la línea comience o termine en el lado izquierdo
-de la cabeza de la nota a la que está anclado.
+relación al objeto ancla.  Sí, un valor de @w{@code{-1}} (o
+@code{LEFT}, izquierda) hace que la línea comience o termine en el
+lado izquierdo de la cabeza de la nota a la que está anclado.
 
 @item X
-Es la coordenada X absoluta del punto extremo.  Se suele calcular al
-vuelo, y su sobreescritura no tiene un efecto útil.
+Es la coordenada X absoluta del punto extremo.  Se suele calcular
+al vuelo, y su sobreescritura no tiene un efecto útil.
 
 @item stencil (sello)
-Los extensores de línea pueden tener símbolos al comienzo o al final,
-lo que está contenido en esta sub-propiedad.  Esto es para uso
-interno; se recomienda en su lugar el uso de @code{text}.
+Los extensores de línea pueden tener símbolos al comienzo o al
+final, lo que está contenido en esta sub-propiedad.  Esto es para
+uso interno; se recomienda en su lugar el uso de @code{text}.
 
 @item text (texto)
-Es un elemento de marcado que se evalúa para dar lugar al sello.  Se
-usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
-de extensión horizontales.
+Es un elemento de marcado que se evalúa para dar lugar al sello.
+Se usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los
+objetos de extensión horizontales.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 \override TextSpanner.bound-details.left.text
@@ -3224,11 +3317,12 @@ de extensión horizontales.
 
 @item stencil-align-dir-y (alineación del sello en y)
 @item stencil-offset (desplazamiento del sello)
-Si no se modifican uno u otro, el sello se coloca sencillamente en el
-punto extremo, centrado sobre la línea, como viene definido por las
-subpropiedades @code{X} e @code{Y}.  Si se fijan
+Si no se modifican uno u otro, el sello se coloca sencillamente en
+el punto extremo, centrado sobre la línea, como viene definido por
+las subpropiedades @code{X} e @code{Y}.  Si se fijan
 @code{stencil-align-dir-y} o @code{stencil-offset} se moverá el
-símbolo del borde verticalmente con relación al extremo de la línea:
+símbolo del borde verticalmente con relación al extremo de la
+línea:
 
 @lilypond[quote,fragment,verbatim]
 \override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
@@ -3240,11 +3334,12 @@ símbolo del borde verticalmente con relación al extremo de la línea:
 \relative { c'4^\startTextSpan c c c \stopTextSpan }
 @end lilypond
 
-Observe que los valores negativos mueven el texto @emph{hacia arriba},
-al contrario de lo que podría esperarse, pues el valor de @w{@code{-1}} o
-@code{DOWN} (abajo) significa alinear el borde @emph{inferior} del
-texto con la línea de extensión.  Un valor de @code{1} o @code{UP}
-(arriba) alinea el borde superior del texto con la línea extensora.
+Observe que los valores negativos mueven el texto @emph{hacia
+arriba}, al contrario de lo que podría esperarse, pues el valor de
+@w{@code{-1}} o @code{DOWN} (abajo) significa alinear el borde
+@emph{inferior} del texto con la línea de extensión.  Un valor de
+@code{1} o @code{UP} (arriba) alinea el borde superior del texto
+con la línea extensora.
 
 @item arrow (flecha)
 Al establecer esta sub-propiedad a @code{#t} se produce una punta de
@@ -3252,13 +3347,14 @@ flecha en el extremo de la línea.
 
 @item padding (relleno)
 Esta sub-propiedad controla el espacio entre el punto extremo
-especificado de la línea y el extremo real.  Sin relleno, un glissando
-empezaría y terminaría en el centro de la cabeza de las notas.
+especificado de la línea y el extremo real.  Sin relleno, un
+glissando empezaría y terminaría en el centro de la cabeza de las
+notas.
 
 @end table
 
-La función musical @code{\endSpanners} finaliza de forma prematura el
-extensor que comienza sobre la nota que sigue inmediatamente a
+La función musical @code{\endSpanners} finaliza de forma prematura
+el extensor que comienza sobre la nota que sigue inmediatamente a
 continuación.  Se termina después de una nota exactamente, o en la
 siguiente barra de compás si @code{to-barline} es verdadero y se
 produce una divisoria antes de la siguiente nota.
@@ -3272,8 +3368,9 @@ produce una divisoria antes de la siguiente nota.
 }
 @end lilypond
 
-Si se usa @code{\endSpanners} no es necesario cerrar \startTextSpan
-con \stopTextSpan, ni cerrar los reguladores con @code{\!}.
+Si se usa @code{\endSpanners} no es necesario cerrar
+\startTextSpan con \stopTextSpan, ni cerrar los reguladores con
+@code{\!}.
 
 @seealso
 Referencia de funcionamiento interno:
@@ -3292,17 +3389,18 @@ Referencia de funcionamiento interno:
 @cindex grobs, visibilidad de
 @cindex visibilidad de los objetos
 
-Hay cuatro formas principales en que se puede controlar la visibilidad
-de los objetos de presentación: se puede eliminar su sello, se pueden
-volver transparentes, se pueden pintar de blanco, o se puede
-sobreescribir su propiedad @code{break-visibility}.  Las tres primeras
-se aplican a todos los objetos de presentación; la última sólo a unos
-pocos: los objetos @emph{divisibles}.  El Manual de aprendizaje
-introduce estas cuatro técnicas,
-véase @rlearning{Visibilidad y color de los objetos}.
+Hay cuatro formas principales en que se puede controlar la
+visibilidad de los objetos de presentación: se puede eliminar su
+sello, se pueden volver transparentes, se pueden pintar de blanco,
+o se puede sobreescribir su propiedad @code{break-visibility}.
+Las tres primeras se aplican a todos los objetos de presentación;
+la última sólo a unos pocos: los objetos @emph{divisibles}.  El
+Manual de aprendizaje introduce estas cuatro técnicas, véase
+@rlearning{Visibilidad y color de los objetos}.
 
 Hay también algunas otras técnicas que son específicas de ciertos
-objetos de presentación.  Se estudian bajo Consideraciones especiales.
+objetos de presentación.  Se estudian bajo Consideraciones
+especiales.
 
 @menu
 * Eliminar el sello::
@@ -3320,11 +3418,11 @@ objetos de presentación.  Se estudian bajo Consideraciones especiales.
 @cindex sello, eliminar
 @funindex \omit
 
-Todo objeto de presentación tiene una propiedad stencil (sello).  De
-forma predeterminada está establecida a la función específica que
-dibuja ese objeto.  Si se sobreescribe esta propiedad a @code{#f} no
-se llama a ninguna función y el objeto no se dibuja.  La acción
-predeterminada se puede recuperar con @code{\revert}.
+Todo objeto de presentación tiene una propiedad stencil (sello).
+De forma predeterminada está establecida a la función específica
+que dibuja ese objeto.  Si se sobreescribe esta propiedad a
+@code{#f} no se llama a ninguna función y el objeto no se dibuja.
+La acción predeterminada se puede recuperar con @code{\revert}.
 
 @lilypond[quote,fragment,verbatim]
 a1 a
@@ -3334,8 +3432,8 @@ a a
 a a a
 @end lilypond
 
-Esta operación, bastante común, tiene la forma abreviada @code{\omit}
-como atajo:
+Esta operación, bastante común, tiene la forma abreviada
+@code{\omit} como atajo:
 
 @lilypond[quote,fragment,verbatim]
 a1 a
@@ -3355,8 +3453,8 @@ a a a
 
 Todo objeto de presentación tiene una propiedad transparent
 (transparente) que de forma predeterminada está establecida a
-@code{#f}.  Si se fija a @code{#t} el objeto aún ocupa espacio pero es
-invisible.
+@code{#f}.  Si se fija a @code{#t} el objeto aún ocupa espacio
+pero es invisible.
 
 @lilypond[quote,fragment,verbatim]
 a'4 a'
@@ -3386,38 +3484,38 @@ a' a'
 @cindex objetos, sobreescritura de
 @cindex grobs, sobreescritura de
 
-Todo objeto de presentación tiene una propiedad de color que de forma
-predeterminada está establecida a @code{black} (negro).  Si se
-sobreescribe a @code{white} (blanco) el objeto será indistinguible del
-fondo blanco.  Sin embargo, si el objeto cruza a otros objetos, el
-color de los puntos de cruce queda determinado por el orden en que se
-dibujan estos objetos, lo que puede dejar una imagen fantasma del
-objeto blanco, como puede verse aquí:
+Todo objeto de presentación tiene una propiedad de color que de
+forma predeterminada está establecida a @code{black} (negro).  Si
+se sobreescribe a @code{white} (blanco) el objeto será
+indistinguible del fondo blanco.  Sin embargo, si el objeto cruza
+a otros objetos, el color de los puntos de cruce queda determinado
+por el orden en que se dibujan estos objetos, lo que puede dejar
+una imagen fantasma del objeto blanco, como puede verse aquí:
 
 @lilypond[quote,fragment,verbatim]
 \override Staff.Clef.color = #white
 a'1
 @end lilypond
 
-Se puede evitar esto cambiando el orden de impresión de los objetos.
-Todos los objetos de presentación tienen una propiedad @code{layer}
-(capa) que se debe establecer a un valor entero.  Los objetos con el
-valor de @code{layer} más bajo se dibujan primero, después se dibujan
-los objetos con valores progresivamente mayores, y así los objetos con
-valores más altos se dibujan encima de los que tienen valores más
-bajos.  De forma predeterminada, casi todos los objetos tienen
-asignado un valor @code{layer} de @code{1}, aunque algunos objetos,
-entre ellos el pentagrama y las líneas divisorias, @code{StaffSymbol}
-y @code{BarLine}, tienen asignado un calor de @code{0}.  El orden de
-impresión de los objetos con el mismo valor de @code{layer} es
-indeterminado.
-
-En el ejemplo de arriba, la clave blanca, con un valor @code{layer}
-predeterminado de @code{1}, se dibuja después de las líneas del
-pentagrama (valor @code{layer} predeterminado de @code{0}),
-sobreimpresionándolas.  Para cambiarlo, se debe dar al objeto
-@code{Clef} un valor de @code{layer} más bajo, digamos @w{@code{-1}},
-para que se dibuje antes:
+Se puede evitar esto cambiando el orden de impresión de los
+objetos.  Todos los objetos de presentación tienen una propiedad
+@code{layer} (capa) que se debe establecer a un valor entero.  Los
+objetos con el valor de @code{layer} más bajo se dibujan primero,
+después se dibujan los objetos con valores progresivamente
+mayores, y así los objetos con valores más altos se dibujan encima
+de los que tienen valores más bajos.  De forma predeterminada,
+casi todos los objetos tienen asignado un valor @code{layer} de
+@code{1}, aunque algunos objetos, entre ellos el pentagrama y las
+líneas divisorias, @code{StaffSymbol} y @code{BarLine}, tienen
+asignado un calor de @code{0}.  El orden de impresión de los
+objetos con el mismo valor de @code{layer} es indeterminado.
+
+En el ejemplo de arriba, la clave blanca, con un valor
+@code{layer} predeterminado de @code{1}, se dibuja después de las
+líneas del pentagrama (valor @code{layer} predeterminado de
+@code{0}), sobreimpresionándolas.  Para cambiarlo, se debe dar al
+objeto @code{Clef} un valor de @code{layer} más bajo, digamos
+@w{@code{-1}}, para que se dibuje antes:
 
 @lilypond[quote,fragment,verbatim]
 \override Staff.Clef.color = #white
@@ -3434,58 +3532,59 @@ a'1
 
 @cindex break-visibility
 
-Casi todos los objetos de presentación se imprimen una sola vez, pero
-algunos como las líneas divisorias, claves, indicaciones de compás y
-armaduras de tonalidad, se pueden tener que imprimir dos veces cuando
-se produce un salto de línea : una vez al final de la línea y otra al
-comienzo de la siguiente.  Estos objetos reciben el nombre de
-@emph{divisibles}, y tienen una propiedad, @code{break-visibility}
-(visibilidad en el salto), para controlar su visibilidad en las tres
-posiciones en que pueden aparecer: al comienzo de una línea, dentro de
-la línea si se produce un cambio, y al final de la línea si el cambio
-se produce en ese lugar.
+Casi todos los objetos de presentación se imprimen una sola vez,
+pero algunos como las líneas divisorias, claves, indicaciones de
+compás y armaduras de tonalidad, se pueden tener que imprimir dos
+veces cuando se produce un salto de línea : una vez al final de la
+línea y otra al comienzo de la siguiente.  Estos objetos reciben
+el nombre de @emph{divisibles}, y tienen una propiedad,
+@code{break-visibility} (visibilidad en el salto), para controlar
+su visibilidad en las tres posiciones en que pueden aparecer: al
+comienzo de una línea, dentro de la línea si se produce un cambio,
+y al final de la línea si el cambio se produce en ese lugar.
 
 Por ejemplo, la indicación de compás se imprime de forma
-predeterminada al comienzo de la primera línea y en ningún otro lugar
-a no ser que cambie, en cuyo caso se imprime en el punto en que se
-produce el cambio.  Si este cambio se produce al final de una línea,
-la nueva indicación de compás se imprime al principio de la línea
-siguiente y también al final de la línea anterior como indicación de
-precaución.
+predeterminada al comienzo de la primera línea y en ningún otro
+lugar a no ser que cambie, en cuyo caso se imprime en el punto en
+que se produce el cambio.  Si este cambio se produce al final de
+una línea, la nueva indicación de compás se imprime al principio
+de la línea siguiente y también al final de la línea anterior como
+indicación de precaución.
 
 Este comportamiento se controla por medio de la propiedad
 @code{break-visibility}, que se explica en
 @c Leave this ref on a newline - formats incorrectly otherwise -td
-@rlearning{Visibilidad y color de los objetos}.  Esta propiedad toma un
-vector de tres valores booleanos que, por orden, determinan si el
-objeto se imprime al final, dentro, o al principio de la línea.  O,
-para ser más exactos: antes del salto de línea, si no hay salto, o
-después del salto.
+@rlearning{Visibilidad y color de los objetos}.  Esta propiedad
+toma un vector de tres valores booleanos que, por orden,
+determinan si el objeto se imprime al final, dentro, o al
+principio de la línea.  O, para ser más exactos: antes del salto
+de línea, si no hay salto, o después del salto.
 
 Como alternativa se puede especificar cualquiera de las ocho
-combinaciones mediante funciones predefinidas cuya definición está en
-@file{scm/output-lib.scm}, donde las tres últimas columnas indican si
-los objetos de presentación serán visibles en las posiciones que se
-muestran en el encabezamiento de cada columna:
+combinaciones mediante funciones predefinidas cuya definición está
+en @file{scm/output-lib.scm}, donde las tres últimas columnas
+indican si los objetos de presentación serán visibles en las
+posiciones que se muestran en el encabezamiento de cada columna:
 
-@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {Antes del} {Si no hay} {Después del}
+@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Antes del} {Si no hay} {Después del}
 @headitem Forma                   @tab Forma                  @tab Antes del @tab Si no hay    @tab Después del
 @headitem de función              @tab de vector              @tab salto     @tab salto        @tab salto
 
-@item @code{all-visible}             @tab @code{'#(#t #t #t)}     @tab sí     @tab sí       @tab sí
-@item @code{begin-of-line-visible}   @tab @code{'#(#f #f #t)}     @tab no     @tab no       @tab sí
-@item @code{center-visible}          @tab @code{'#(#f #t #f)}     @tab no     @tab sí       @tab no
-@item @code{end-of-line-visible}     @tab @code{'#(#t #f #f)}     @tab sí     @tab no       @tab no
-@item @code{begin-of-line-invisible} @tab @code{'#(#t #t #f)}     @tab sí     @tab sí       @tab no
-@item @code{center-invisible}        @tab @code{'#(#t #f #t)}     @tab sí     @tab no       @tab sí
-@item @code{end-of-line-invisible}   @tab @code{'#(#f #t #t)}     @tab no     @tab sí       @tab sí
-@item @code{all-invisible}           @tab @code{'#(#f #f #f)}     @tab no     @tab no       @tab no
+@item @code{all-visible}             @tab @code{#(#t #t #t)}     @tab sí     @tab sí       @tab sí
+@item @code{begin-of-line-visible}   @tab @code{#(#f #f #t)}     @tab no     @tab no       @tab sí
+@item @code{center-visible}          @tab @code{#(#f #t #f)}     @tab no     @tab sí       @tab no
+@item @code{end-of-line-visible}     @tab @code{#(#t #f #f)}     @tab sí     @tab no       @tab no
+@item @code{begin-of-line-invisible} @tab @code{#(#t #t #f)}     @tab sí     @tab sí       @tab no
+@item @code{center-invisible}        @tab @code{#(#t #f #t)}     @tab sí     @tab no       @tab sí
+@item @code{end-of-line-invisible}   @tab @code{#(#f #t #t)}     @tab no     @tab sí       @tab sí
+@item @code{all-invisible}           @tab @code{#(#f #f #f)}     @tab no     @tab no       @tab no
 @end multitable
 
-Los ajustes predeterminados de @code{break-visibility} dependen del
-objeto de presentación.  La tabla siguiente muestra todos los objetos
-de presentación de interés que resultan afectados por
-@code{break-visibility} y el ajuste predeterminado de esta propiedad:
+Los ajustes predeterminados de @code{break-visibility} dependen
+del objeto de presentación.  La tabla siguiente muestra todos los
+objetos de presentación de interés que resultan afectados por
+@code{break-visibility} y el ajuste predeterminado de esta
+propiedad:
 
 @multitable @columnfractions .3 .3 .4
 
@@ -3526,10 +3625,11 @@ controlar la visibilidad de las líneas divisorias:
 }
 @end lilypond
 
-Aunque los tres componentes del vector utilizado para sobreescribir
-@code{break-visibility} deben estar presentes, no todos son efectivos
-para todos los objetos de presentación, y algunas combinaciones pueden
-incluso dar errores.  Son de aplicación las siguientes limitaciones:
+Aunque los tres componentes del vector utilizado para
+sobreescribir @code{break-visibility} deben estar presentes, no
+todos son efectivos para todos los objetos de presentación, y
+algunas combinaciones pueden incluso dar errores.  Son de
+aplicación las siguientes limitaciones:
 
 @itemize @bullet
 @item Las líneas divisorias no se pueden imprimir al principio de la línea.
@@ -3555,13 +3655,14 @@ imprimirlas y all-invisible para suprimirlas.
 @cindex clave, visibilidad después de un cambio explícito
 @cindex explicitClefVisibility
 
-La propiedad @code{break-visibility} controla la visibilidad de las
-armaduras y cambios de clave sólo al principio de las líneas, es
-decir, después de un salto.  No tiene ningún efecto sobre la
-visibilidad de la armadura o la clave después de un cambio explícito
-de tonalidad o de clave dentro o al final de una línea.  En el ejemplo
-siguiente la armadura que sigue al cambio explícito de tonalidad a Si
-bemol mayor es visible incluso con @code{all-invisible} establecido.
+La propiedad @code{break-visibility} controla la visibilidad de
+las armaduras y cambios de clave sólo al principio de las líneas,
+es decir, después de un salto.  No tiene ningún efecto sobre la
+visibilidad de la armadura o la clave después de un cambio
+explícito de tonalidad o de clave dentro o al final de una línea.
+En el ejemplo siguiente la armadura que sigue al cambio explícito
+de tonalidad a Si bemol mayor es visible incluso con
+@code{all-invisible} establecido.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3577,21 +3678,22 @@ bemol mayor es visible incluso con @code{all-invisible} establecido.
 }
 @end lilypond
 
-La visibilidad de estos cambios explícitos de tonalidad y de clave se
-controla por medio de las propiedades
-@code{explicitKeySignatureVisibility} y @code{explicitClefVisibility}.
-Son los equivalentes de la propiedad @code{break-visibility} y las dos
-toman un vector de tres valores booleanos o las funciones predefinidas
-relacionadas anteriormente, exactamente igual que
-@code{break-visibility}.  Las dos son propiedades del contexto Staff,
-no de los propios objetos de presentación, y por tanto se establecen
-utilizando la instrucción @code{\set}.  Las dos están establecidas de
-forma predeterminada al valor @code{all-visible}.  Estas propiedades
+La visibilidad de estos cambios explícitos de tonalidad y de clave
+se controla por medio de las propiedades
+@code{explicitKeySignatureVisibility} y
+@code{explicitClefVisibility}.  Son los equivalentes de la
+propiedad @code{break-visibility} y las dos toman un vector de
+tres valores booleanos o las funciones predefinidas relacionadas
+anteriormente, exactamente igual que @code{break-visibility}.  Las
+dos son propiedades del contexto Staff, no de los propios objetos
+de presentación, y por tanto se establecen utilizando la
+instrucción @code{\set}.  Las dos están establecidas de forma
+predeterminada al valor @code{all-visible}.  Estas propiedades
 controlan sólo la visibilidad de las armaduras y las claves que
 resultan de los cambios explícitos y no afectan a las armaduras y
-tonalidades que están al principio de las líneas; para quitarlas, aún
-se debe sobreescribir la propiedad @code{break-visibility} en el
-objeto correspondiente.
+tonalidades que están al principio de las líneas; para quitarlas,
+aún se debe sobreescribir la propiedad @code{break-visibility} en
+el objeto correspondiente.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3608,8 +3710,8 @@ objeto correspondiente.
 
 @subsubsubheading Visibilidad de las alteraciones de precaución
 
-Para eliminar las alteraciones de cancelación que se imprimen en un
-cambio de tonalidad explícito, establezca la propiedad
+Para eliminar las alteraciones de cancelación que se imprimen en
+un cambio de tonalidad explícito, establezca la propiedad
 @code{printKeyCancellation} del contexto Staff a @code{#f}:
 
 @lilypond[quote,verbatim,ragged-right]
@@ -3627,7 +3729,8 @@ cambio de tonalidad explícito, establezca la propiedad
 @end lilypond
 
 Con estas sobreescrituras solamente permanecen las alteraciones
-accidentales delante de las notas para indicar el cambio de tonalidad.
+accidentales delante de las notas para indicar el cambio de
+tonalidad.
 
 Observe que al modificar la tonalidad a Do@tie{}mayor o
 La@tie{}menor, las alteraciones de cancelación serían @emph{la
@@ -3672,15 +3775,16 @@ sobreescriba la visibilidad del grob @code{KeyCancellation}:
 @cindex automaticBars
 @cindex líneas divisorias, eliminación
 
-Como caso especial, la impresión de las líneas divisorias también se
-puede inhabilitar estableciendo la propiedad @code{automaticBars} en
-el contexto Score.  Si se fija a @code{#f}, las barras de compás no se
-imprimen automáticamente; se deben crear explícitamente con una
-instrucción @code{\bar}.  A diferencia de la instrucción predefinida
-@code{\cadenzaOn}, los compases se siguen contando.  La generación de
-compases continúa de acuerdo a esta cuenta si esta propiedad se
-establece posteriormente a @code{#t}.  Si se fija al valor @code{#f},
-sólo pueden producirse saltos de línea en instrucciones @code{\bar}
+Como caso especial, la impresión de las líneas divisorias también
+se puede inhabilitar estableciendo la propiedad
+@code{automaticBars} en el contexto Score.  Si se fija a
+@code{#f}, las barras de compás no se imprimen automáticamente; se
+deben crear explícitamente con una instrucción @code{\bar}.  A
+diferencia de la instrucción predefinida @code{\cadenzaOn}, los
+compases se siguen contando.  La generación de compases continúa
+de acuerdo a esta cuenta si esta propiedad se establece
+posteriormente a @code{#t}.  Si se fija al valor @code{#f}, sólo
+pueden producirse saltos de línea en instrucciones @code{\bar}
 explícitas.
 
 @c TODO Add example
@@ -3713,19 +3817,21 @@ Manual de aprendizaje:
 @translationof Line styles
 
 Ciertas indicaciones de ejecución, p.ej., @i{rallentando},
-@i{accelerando} y los @i{trinos} se escriben como texto y se extienden
-sobre muchos compases mediante líneas, a veces punteadas u onduladas.
-
-Todos ellos usan las mismas rutinas que el glissando para dibujar los
-textos y las líneas, y por ello el ajuste fino de su comportamiento se
-hace de la misma manera. Se hace con un spanner (un objeto de
-extensión), y la rutina responsable de dibujar los objetos de
-extensión es @code{ly:line-interface::print}. Esta rutina determina la
-colocación exacta de los dos @i{extremos del objeto de extensión} y
-dibuja una línea entre ellos, en el estilo solicitado.
-
-He aquí un ejemplo de los distintos estilos de línea disponibles, y
-cómo aplicarles ajustes finos.
+@i{accelerando} y los @i{trinos} se escriben como texto y se
+extienden sobre muchos compases mediante líneas, a veces punteadas
+u onduladas.
+
+Todos ellos usan las mismas rutinas que el glissando para dibujar
+los textos y las líneas, y por ello el ajuste fino de su
+comportamiento se hace de la misma manera. Se hace con un spanner
+(un objeto de extensión), y la rutina responsable de dibujar los
+objetos de extensión es @code{ly:line-spanner::print}. Esta rutina
+determina la colocación exacta de los dos @i{extremos del objeto
+de extensión} y dibuja una línea entre ellos, en el estilo
+solicitado.
+
+He aquí un ejemplo de los distintos estilos de línea disponibles,
+y cómo aplicarles ajustes finos.
 
 @lilypond[ragged-right,verbatim,quote]
 \relative {
@@ -3754,16 +3860,16 @@ posible sobreescribirlos:
 }
 @end lilypond
 
-El valor de @code{Y} está establecido a @w{@code{-2}} para el extremo
-derecho.  El lado izquierdo se puede ajustar de forma similar
-especificando @code{left} en vez de @code{right}.
+El valor de @code{Y} está establecido a @w{@code{-2}} para el
+extremo derecho.  El lado izquierdo se puede ajustar de forma
+similar especificando @code{left} en vez de @code{right}.
 
 Si no está establecido @code{Y}, el valor se computa a partir de la
 posición vertical de los puntos de anclaje izquierdo y derecho del
 extensor.
 
-Son posibles otros ajustes de los extensores, para ver más detalles
-consulte @ref{Objetos de extensión}.
+Son posibles otros ajustes de los extensores, para ver más
+detalles consulte @ref{Objetos de extensión}.
 
 
 @node Rotación de objetos
@@ -3771,8 +3877,8 @@ consulte @ref{Objetos de extensión}.
 @translationof Rotating objects
 
 Tanto los objetos de presentación como los elementos de texto de
-marcado se pueden girar cualquier ángulo respecto a cualquier punto,
-pero difiere el método de hacerlo.
+marcado se pueden girar cualquier ángulo respecto a cualquier
+punto, pero difiere el método de hacerlo.
 
 @menu
 * Rotación de objetos de presentación::
@@ -3788,21 +3894,21 @@ pero difiere el método de hacerlo.
 
 Todos los objetos de presentación que contemplan el interface
 @code{grob-interface} se pueden rotar estableciendo su propiedad
-@code{rotation}.  Acepta una lista de tres elementos: el ángulo de la
-rotación en sentido antihorario, y las coordenadas x e y del punto con
-relación al punto de referencia del objeto, alrededor del que se va a
-realizar la rotación.  El ángulo de rotación se especifica en grados
-y las coordenadas en espacios de pentagrama.
+@code{rotation}.  Acepta una lista de tres elementos: el ángulo de
+la rotación en sentido antihorario, y las coordenadas x e y del
+punto con relación al punto de referencia del objeto, alrededor
+del que se va a realizar la rotación.  El ángulo de rotación se
+especifica en grados y las coordenadas en espacios de pentagrama.
 
-El ángulo de rotación y las coordenadas del punto de rotación se deben
-determinar por ensayo y error.
+El ángulo de rotación y las coordenadas del punto de rotación se
+deben determinar por ensayo y error.
 
 @cindex reguladores en ángulo
 @cindex ángulo, reguladores en
 
 Solamente en ciertas ocasiones es útil la rotación de objetos de
-presentación; el ejemplo siguiente muestra una situación en que puede
-serlo:
+presentación; el ejemplo siguiente muestra una situación en que
+puede serlo:
 
 @lilypond[quote,fragment,verbatim]
 g4\< e' d'' f''\!
@@ -3815,15 +3921,16 @@ g4\< e' d'' f''\!
 @unnumberedsubsubsec Rotación de elementos de marcado
 @translationof Rotating markup
 
-Todos los textos de marcado se pueden rotar para que se dispongan en
-cualquier ángulo precediéndolos de la instrucción @code{\rotate}.  La
-instrucción acepta dos argumentos: el ángulo de rotación en grados en
-sentido antihorario, y el texto que rotar.  Los límites que ocupa el
-texto no se rotan: toman su valor a partir de los extremos de las
-coordenadas x e y del texto rotado.  En el ejemplo siguiente la
-propiedad @code{outside-staff-priority} del texto se establece a
-@code{#f} para desactivar la evitación automática de colisiones, lo
-que empuja al texto a una posición muy alta.
+Todos los textos de marcado se pueden rotar para que se dispongan
+en cualquier ángulo precediéndolos de la instrucción
+@code{\rotate}.  La instrucción acepta dos argumentos: el ángulo
+de rotación en grados en sentido antihorario, y el texto que
+rotar.  Los límites que ocupa el texto no se rotan: toman su valor
+a partir de los extremos de las coordenadas x e y del texto
+rotado.  En el ejemplo siguiente la propiedad
+@code{outside-staff-priority} del texto se establece a @code{#f}
+para desactivar la evitación automática de colisiones, lo que
+empuja al texto a una posición muy alta.
 
 @lilypond[quote,fragment,verbatim]
 \override TextScript.outside-staff-priority = ##f
@@ -3877,48 +3984,49 @@ Referencia de funcionamiento interno:
 @translationof Aligning objects
 
 Los objetos gráficos que soportan el interface
-@code{self-alignment-interface} y/o el @code{side-position-interface}
-se pueden alinear contra un objeto colocado previamente, de diversas
-maneras.  Para ver una lista de estos objetos, consulte
-@rinternals{self-alignment-interface} y
+@code{self-alignment-interface} y/o el
+@code{side-position-interface} se pueden alinear contra un objeto
+colocado previamente, de diversas maneras.  Para ver una lista de
+estos objetos, consulte @rinternals{self-alignment-interface} y
 @rinternals{side-position-interface}.
 
 Todos los objetos gráficos tienen un punto de referencia, una
 extensión horizontal y una extensión vertical.  La extensión
 horizontal es una pareja de números que dan los desplazamientos a
 partir del punto de referencia de los bordes izquierdo y derecho,
-siendo negativos los desplazamientos hacia la izquierda.  La extensión
-vertical es una pareja de números que dan el desplazamiento a partir
-del punto de referencia hasta los bordes inferior y superior, siendo
-negativos los desplazamientos hacia abajo.
+siendo negativos los desplazamientos hacia la izquierda.  La
+extensión vertical es una pareja de números que dan el
+desplazamiento a partir del punto de referencia hasta los bordes
+inferior y superior, siendo negativos los desplazamientos hacia
+abajo.
 
 La posición de un objeto sobre el pentagrama viene dada por los
 valores de las propiedades @code{X-offset} e @code{Y-offset}.  El
-valor de @code{X-offset} da el desplazamiento desde la coordenada X
-del punto de referencia del objeto padre, y el valor de
-@code{Y-offset} da el desplazamiento a partir de la línea central del
-pentagrama.  Los valores de @code{X-offset} y @code{Y-offset} se
-pueden establecer directamente o se puede dejar que se calculen por
-parte de procedimientos para conseguir una alineación con el objeto
-padre.
+valor de @code{X-offset} da el desplazamiento desde la coordenada
+del punto de referencia del objeto padre, y el valor de
+@code{Y-offset} da el desplazamiento a partir de la línea central
+del pentagrama.  Los valores de @code{X-offset} y @code{Y-offset}
+se pueden establecer directamente o se puede dejar que se calculen
+por parte de procedimientos para conseguir una alineación con el
+objeto padre.
 
 @warning{Muchos objetos tienen consideraciones de posicionamiento
 especiales que hacen que se ignore o se modifique cualquier ajuste
 realizado a @code{X-offset} o a @code{Y-offset}, a pesar de que el
 objeto contemple el interface @code{self-alignment-interface}.  La
-sobreescritura de las propiedades @code{X-offset} ó @code{Y-offset} a
-un valor fijo hace que se descarte la respectiva propiedad
-@code{self-alignment}.}
+sobreescritura de las propiedades @code{X-offset} ó
+@code{Y-offset} a un valor fijo hace que se descarte la respectiva
+propiedad @code{self-alignment}.}
 
 Por ejemplo, una alteración accidental se puede reposicionar
 verticalmente estableciendo @code{Y-offset} pero los cambios a
 @code{X-offset} no tienen ningún efecto.
 
 Las letras de ensayo se pueden alinear con objetos divisibles como
-líneas divisorias, claves, armaduras e indicaciones de compás.  Hay
-propiedades especiales que se encuentran en
-@code{break-aligned-interface} para el posicionamiento de las letras
-de ensayo sobre dichos objetos.
+líneas divisorias, claves, armaduras e indicaciones de compás.
+Hay propiedades especiales que se encuentran en
+@code{break-aligned-interface} para el posicionamiento de las
+letras de ensayo sobre dichos objetos.
 
 @seealso
 Referencia de la notación:
@@ -3939,10 +4047,10 @@ Manual de extensión:
 @unnumberedsubsubsec Establecer directamente @code{X-offset} y @code{Y-offset}
 @translationof Setting X-offset and Y-offset directly
 
-Se pueden dar valores numéricos a las propiedades @code{X-offset} y
-@code{Y-offset} de muchos objetos.  El ejemplo siguiente muestra tres
-notas con una digitación en su posición predeterminada y con los
-valores @code{X-offset} y @code{Y-offset} modificados.
+Se pueden dar valores numéricos a las propiedades @code{X-offset}
+y @code{Y-offset} de muchos objetos.  El ejemplo siguiente muestra
+tres notas con una digitación en su posición predeterminada y con
+los valores @code{X-offset} y @code{Y-offset} modificados.
 
 @lilypond[verbatim,fragment,quote]
 a'-3
@@ -3964,12 +4072,12 @@ a'
 @translationof Using the side-position-interface
 
 Un objeto que contempla el @code{side-position-interface} se puede
-colocar junto a su objeto padre de forma que los bordes especificados
-de los dos objetos se toquen.  El objeto se puede situar encima,
-debajo, a la derecha o a la izquierda del objeto padre.  El padre no
-se puede especificar; viene determinado por el orden de los elementos
-en el flujo de entrada.  Casi todos los objetos tienen la cabeza de la
-nota asociada como padre.
+colocar junto a su objeto padre de forma que los bordes
+especificados de los dos objetos se toquen.  El objeto se puede
+situar encima, debajo, a la derecha o a la izquierda del objeto
+padre.  El padre no se puede especificar; viene determinado por el
+orden de los elementos en el flujo de entrada.  Casi todos los
+objetos tienen la cabeza de la nota asociada como padre.
 
 Los valores de las propiedades @code{side-axis} y @code{direction}
 determinan dónde colocar el objeto, como sigue:
@@ -3987,17 +4095,19 @@ determinan dónde colocar el objeto, como sigue:
 
 @end multitable
 
-Si @code{side-axis} es @code{0}, @code{X-offset} se debe establecer al
-procedimiento @code{ly:side-position-interface::x-aligned-side}.  Este
+Si @code{side-axis} es @code{0}, @code{X-offset} se debe
+establecer al procedimiento
+@code{ly:side-position-interface::x-aligned-side}.  Este
 procedimiento devuelve el calor correcto de @code{X-offset} para
-situar el objeto al lado izquierdo o derecho del padre de acuerdo con
-el valor de @code{direction}.
+situar el objeto al lado izquierdo o derecho del padre de acuerdo
+con el valor de @code{direction}.
 
-Si @code{side-axis} es @code{1}, @code{Y-offset} se debe establecer al
-procedimiento @code{ly:side-position-interface::y-aligned-side}.  Este
+Si @code{side-axis} es @code{1}, @code{Y-offset} se debe
+establecer al procedimiento
+@code{ly:side-position-interface::y-aligned-side}.  Este
 procedimiento devuelve el valor correcto de @code{Y-offset} para
-situar el objeto encima o debajo del padre de acuerdo con el valor de
-@code{direction}.
+situar el objeto encima o debajo del padre de acuerdo con el valor
+de @code{direction}.
 
 @c TODO Add examples
 
@@ -4012,22 +4122,23 @@ La alineación horizontal de un objeto que contempla el interface
 @code{self-alignment-interface} está controlada por el valor de la
 propiedad @code{self-alignment-X}, siempre y cuando la propiedad
 @code{X-offset} de este objeto esté establecida a
-@code{ly:self-alignment-interface::x-aligned-on-self}.  Se le puede
-dar a @code{self-alignment-X} cualquier valor real, en unidades de la
-mitad de la extensión X total del objeto.  Los valores negativos
-mueven el objeto a la derecha, los positivos hacia la izquierda.  Un
-valor de @code{0} centra el objeto sobre el punto de referencia de su
-padre, un valor de @w{@code{-1}} alinea el borde izquierdo del objeto
-sobre el punto de referencia de su padre, y un valor de @code{1}
-alinea el borde derecho del objeto sobre el punto de referencia de su
-padre.  Se pueden usar los símbolos @code{LEFT}, @code{CENTER} y
-@code{RIGHT} en sustitución de los valores @w{@code{-1}}, @code{0} y @code{1},
+@code{ly:self-alignment-interface::x-aligned-on-self}.  Se le
+puede dar a @code{self-alignment-X} cualquier valor real, en
+unidades de la mitad de la extensión X total del objeto.  Los
+valores negativos mueven el objeto a la derecha, los positivos
+hacia la izquierda.  Un valor de @code{0} centra el objeto sobre
+el punto de referencia de su padre, un valor de @w{@code{-1}}
+alinea el borde izquierdo del objeto sobre el punto de referencia
+de su padre, y un valor de @code{1} alinea el borde derecho del
+objeto sobre el punto de referencia de su padre.  Se pueden usar
+los símbolos @code{LEFT}, @code{CENTER} y @code{RIGHT} en
+sustitución de los valores @w{@code{-1}}, @code{0} y @code{1},
 respectivamente.
 
-Normalmente se usaría la instrucción @code{\override} para modificar
-el valor de @code{self-alignment-X}, pero se puede usar la instrucción
-@code{\tweak} para alinear varias anotaciones por separado sobre una
-sola nota:
+Normalmente se usaría la instrucción @code{\override} para
+modificar el valor de @code{self-alignment-X}, pero se puede usar
+la instrucción @code{\tweak} para alinear varias anotaciones por
+separado sobre una sola nota:
 
 @lilypond[quote,verbatim,fragment]
 a'
@@ -4065,8 +4176,8 @@ padre.  Se pueden usar los símbolos @code{DOWN}, @code{CENTER},
 Estableciendo tanto @code{X-offset} como @code{Y-offset}, se puede
 alinear un objeto en las dos direcciones simultáneamente.
 
-El ejemplo siguiente muestra cómo ajustar una digitación de forma que
-se acerque a la cabeza de la nota.
+El ejemplo siguiente muestra cómo ajustar una digitación de forma
+que se acerque a la cabeza dela nota.
 
 @lilypond[quote,verbatim,fragment]
 a'
@@ -4114,10 +4225,10 @@ example shows the difference:
 @cindex break-align-symbols
 
 Las letras de ensayo se pueden alinear con objetos de notación
-distintos a las barras de compás.  Estos objetos son @code{ambitus},
-@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
-@code{left-edge}, @code{key-cancellation}, @code{key-signature} y
-@code{time-signature}.
+distintos a las barras de compás.  Estos objetos son
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature} y @code{time-signature}.
 
 Cada tipo de objeto tiene su propio punto de referencia
 predeterminado, con el que se alinean las marcas de ensayo:
@@ -4146,14 +4257,15 @@ e'1
 \mark "↓"
 @end lilypond
 
-Se puede especificar una lista de posibles objetos para la alineación.
-Si algunos de los objetos son invisibles en ese punto debido al valor
-de @code{break-visibility} o a valores de visibilidad explícitos para
-las armaduras y las claves, la letra de ensayo o número de compás se
-alinean con el primer objeto de la lista que sea visible.  Si ningún
-objeto de la lista es visible, el objeto se alinea con la línea
-divisoria.  Si la línea divisoria es invisible, el objeto se alinea
-con el punto en el que se encontraría la línea divisoria.
+Se puede especificar una lista de posibles objetos para la
+alineación.  Si algunos de los objetos son invisibles en ese punto
+debido al valor de @code{break-visibility} o a valores de
+visibilidad explícitos para las armaduras y las claves, la letra
+de ensayo o número de compás se alinean con el primer objeto de la
+lista que sea visible.  Si ningún objeto de la lista es visible,
+el objeto se alinea con la línea divisoria.  Si la línea divisoria
+es invisible, el objeto se alinea con el punto en el que se
+encontraría la línea divisoria.
 
 @lilypond[verbatim,quote,fragment]
 % The rehearsal mark will be aligned to the right edge of the Key Signature
@@ -4179,10 +4291,10 @@ gis,1
 e'1
 @end lilypond
 
-La alineación de la letra de ensayo con relación al objeto de notación
-se puede cambiar, como se ve en el ejemplo siguiente.  En una
-partitura con varios pentagramas, este ajuste se debe hacer para todos
-los pentagramas.
+La alineación de la letra de ensayo con relación al objeto de
+notación se puede cambiar, como se ve en el ejemplo siguiente.  En
+una partitura con varios pentagramas, este ajuste se debe hacer
+para todos los pentagramas.
 
 @lilypond[verbatim,quote,fragment]
 % The RehearsalMark will be aligned with the right edge of the Key Signature
@@ -4235,9 +4347,10 @@ Los grobs (objetos gráficos) @code{VerticalAlignment} y
 @code{VerticalAxisGroup} trabajan de manera coordinada.
 @code{VerticalAxisGroup} agrupa distintos grobs como @code{Staff},
 @code{Lyrics}, etc.  Después, @code{VerticalAlignment} alinea los
-distintos grobs agrupados previamente por @code{VerticalAxisGroup}.
-Normalmente sólo existe un @code{VerticalAlignment} por cada
-partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
+distintos grobs agrupados previamente por
+@code{VerticalAxisGroup}.  Normalmente sólo existe un
+@code{VerticalAlignment} por cada partitura, pero cada
+@code{Staff}, @code{Lyrics}, etc. tiene su propio
 @code{VerticalAxisGroup}.
 
 
@@ -4245,29 +4358,31 @@ partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
 @subsection Modificación de los sellos
 @translationof Modifying stencils
 
-Todos los objetos de presentación tienen una propiedad @code{stencil}
-que es parte del @code{grob-interface}.  De forma predeterminada, esta
-propiedad suele estar establecida a una función específica del objeto
-que está hecha a medida para disponer el símbolo que lo representa en
-la salida.  Por ejemplo, el ajuste estándar para la propiedad
-@code{stencil} del objeto @code{MultiMeasureRest} es
-@code{ly:multi-measure-rest::print}.
-
-El símbolo estándar de cualquier objeto se puede sustituir modificando
-la propiedad @code{stencil} para que haga referencia a un
-procedimiento diferente escrito especialmente.  Esto requiere un alto
-nivel de conocimiento del funcionamiento interno de LilyPond, pero hay
-una forma más fácil que a menudo puede dar resultados adecuados.
+Todos los objetos de presentación tienen una propiedad
+@code{stencil} que es parte del @code{grob-interface}.  De forma
+predeterminada, esta propiedad suele estar establecida a una
+función específica del objeto que está hecha a medida para
+disponer el símbolo que lo representa en la salida.  Por ejemplo,
+el ajuste estándar para la propiedad @code{stencil} del objeto
+@code{MultiMeasureRest} es @code{ly:multi-measure-rest::print}.
+
+El símbolo estándar de cualquier objeto se puede sustituir
+modificando la propiedad @code{stencil} para que haga referencia a
+un procedimiento diferente escrito especialmente.  Esto requiere
+un alto nivel de conocimiento del funcionamiento interno de
+LilyPond, pero hay una forma más fácil que a menudo puede dar
+resultados adecuados.
 
 El procedimiento es establecer la propiedad @code{stencil} al
-procedimiento que imprime texto (@code{ly:text-interface::print}) y
-añadir una propiedad @code{text} al objeto ajustada para que contenga
-el texto de marcado que produce el símbolo requerido.  Debido a la
-flexibilidad del marcado, se pueden conseguir muchas cosas; en
-particular, consulte @ref{Notación gráfica dentro de elementos de marcado}.
+procedimiento que imprime texto (@code{ly:text-interface::print})
+y añadir una propiedad @code{text} al objeto ajustada para que
+contenga el texto de marcado que produce el símbolo requerido.
+Debido a la flexibilidad del marcado, se pueden conseguir muchas
+cosas; en particular, consulte @ref{Notación gráfica dentro de
+elementos de marcado}.
 
-El ejemplo siguiente muestra esto cambiando el símbolo de la cabeza de
-la nota a unas aspas dentro de una circunferencia.
+El ejemplo siguiente muestra esto cambiando el símbolo de la
+cabeza de la nota a unas aspas dentro de una circunferencia.
 
 @lilypond[verbatim,quote]
 XinO = {
@@ -4283,8 +4398,9 @@ XinO = {
 }
 @end lilypond
 
-Cualquiera de los glifos de la fuente tipográfica Feta se puede pasar
-a la instrucción de marcado @code{\musicglyph}: véase @ref{La tipografía Feta}.
+Cualquiera de los glifos de la fuente tipográfica Feta se puede
+pasar a la instrucción de marcado @code{\musicglyph}: véase
+@ref{La tipografía Feta}.
 
 @c TODO Add inserting eps files or ref to later
 
@@ -4569,13 +4685,13 @@ Referencia de funcionamiento interno:
 @cindex divididos, modificación de objetos de extensión
 @funindex \alterBroken
 
-Cuando un @qq{spanner} u objeto extenso atraviesa uno o varios saltos
-de línea, cada fragmento hereda los atributos del objeto de extensión
-original.  Así, el trucado ordinario de un objeto dividido aplica las
-mismas modificaciones a todos y cada uno de sus segmentos.  En el
-ejemplo que aparece a continuación, la sobreescritura de
-@code{thickness} (grosor) afecta a la ligadura a ambos lados del salto
-de línea.
+Cuando un @qq{spanner} u objeto extenso atraviesa uno o varios
+saltos de línea, cada fragmento hereda los atributos del objeto de
+extensión original.  Así, el trucado ordinario de un objeto
+dividido aplica las mismas modificaciones a todos y cada uno de
+sus segmentos.  En el ejemplo que aparece a continuación, la
+sobreescritura de @code{thickness} (grosor) afecta a la ligadura a
+ambos lados del salto de línea.
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -4589,9 +4705,9 @@ de línea.
 
 Es posible modificar de forma independiente el aspecto de los
 fragmentos individuales de un objeto de extensión dividido, con la
-instrucción @code{\alterBroken}.  Esta instrucción puede producir un
-@code{\override} o bien un @code{\tweak} de una propiedad del objeto
-de extensión.
+instrucción @code{\alterBroken}.  Esta instrucción puede producir
+un @code{\override} o bien un @code{\tweak} de una propiedad del
+objeto de extensión.
 
 La sintaxis de @code{\alterBroken} es
 
@@ -4600,23 +4716,23 @@ La sintaxis de @code{\alterBroken} es
 @end example
 
 El argumento @var{valores} es una lista de valores, uno por cada
-fragmento.  Si @var{elemento} el el nombre de un grob como @code{Slur}
-o @code{Staff.PianoPedalBracket}, el resultado es una instrucción de
-sobreescritura @code{\override} del tipo de grob especificado.  Si
-@var{elemento} es una expresión musical como @qq{(} o @qq{[} el
-resultado es la misma expresión musical con el correspondiente truco
-aplicado.
+fragmento.  Si @var{elemento} el el nombre de un grob como
+@code{Slur} o @code{Staff.PianoPedalBracket}, el resultado es una
+instrucción de sobreescritura @code{\override} del tipo de grob
+especificado.  Si @var{elemento} es una expresión musical como
+@qq{(} o @qq{[} el resultado es la misma expresión musical con el
+correspondiente truco aplicado.
 
 El guión inicial se debe utilizar con la forma de trucaje,
-@code{\tweak}.  No lo escriba cuando utilice @code{\alterBroken} como
-una operación de sobreescritura, @code{\override}.
+@code{\tweak}.  No lo escriba cuando utilice @code{\alterBroken}
+como una operación de sobreescritura, @code{\override}.
 
 En su uso como @code{\override}, @code{\alterBroken} puede ir
 precedido de @code{\once} o @code{\temporary} y ser revertido con
 @code{\revert} con el argumento @var{propiedad}.
 
-EL código siguiente aplica un @code{\override} independiente a cada
-uno de los fragmentos de la ligadura del ejemplo anterior:
+EL código siguiente aplica un @code{\override} independiente a
+cada uno de los fragmentos de la ligadura del ejemplo anterior:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -4628,14 +4744,14 @@ uno de los fragmentos de la ligadura del ejemplo anterior:
 }
 @end lilypond
 
-La instrucción @code{\alterBroken} se puede usar con cualquier objeto
-de extensión, incluidos @code{Tie}, @code{PhrasingSlur}, @code{Beam} y
-@code{TextSpanner}.  Por ejemplo, un editor que está preparando una
-edición académica podría desear indicar la ausencia de parte de una
-ligadura de fraseo en una fuente haciendo discontinuo solamente el
-segmento que se ha añadido.  El siguiente ejemplo ilustra de qué
-manera se puede hacer esto, en este caso usando la forma @code{\tweak}
-de la instrucción:
+La instrucción @code{\alterBroken} se puede usar con cualquier
+objeto de extensión, incluidos @code{Tie}, @code{PhrasingSlur},
+@code{Beam} y @code{TextSpanner}.  Por ejemplo, un editor que está
+preparando una edición académica podría desear indicar la ausencia
+de parte de una ligadura de fraseo en una fuente haciendo
+discontinuo solamente el segmento que se ha añadido.  El siguiente
+ejemplo ilustra de qué manera se puede hacer esto, en este caso
+usando la forma @code{\tweak} de la instrucción:
 
 @lilypond[verbatim,quote,ragged-right]
 % The empty list is conveniently used below, because it is the
@@ -4647,24 +4763,25 @@ de la instrucción:
 }
 @end lilypond
 
-Es importante comprender que @code{\alterBroken} fija cada pieza del
-objeto fragmentado al valor correspondiente dentro del argumento
-@var{valores}.  Cuando hay menos valores que piezas, cualquier
-fragmento adicional recibe la asignación de la lista vacía.  Esto
-puede conllevar resultados no deseados si la propiedad de disposición
-no está establecida a la lista vacía de forma predeterminada.  En
-estos casos, se debe asignar a cada segmento un valor adecuado.
+Es importante comprender que @code{\alterBroken} fija cada pieza
+del objeto fragmentado al valor correspondiente dentro del
+argumento @var{valores}.  Cuando hay menos valores que piezas,
+cualquier fragmento adicional recibe la asignación de la lista
+vacía.  Esto puede conllevar resultados no deseados si la
+propiedad de disposición no está establecida a la lista vacía de
+forma predeterminada.  En estos casos, se debe asignar a cada
+segmento un valor adecuado.
 
 @knownissues
-Los saltos de línea pueden ocurrir en distintos lugares según cambia
-la disposición de la música.  Los ajustes elegidos para
+Los saltos de línea pueden ocurrir en distintos lugares según
+cambia la disposición de la música.  Los ajustes elegidos para
 @code{\alterBroken} podrían no ser adecuados para un objeto de
-extensión que ya no está dividido o que se fragmenta en más piezas que
-antes.  El uso explícito (manual) de saltos de línea mediante
+extensión que ya no está dividido o que se fragmenta en más piezas
+que antes.  El uso explícito (manual) de saltos de línea mediante
 @code{\break} puede prevenir situaciones como ésta.
 
-La instrucción @code{\alterBroken} no es efectiva para propiedades de
-los objetos extensos accedidas antes del salto de línea, como
+La instrucción @code{\alterBroken} no es efectiva para propiedades
+de los objetos extensos accedidas antes del salto de línea, como
 @code{direction}.
 
 @seealso
@@ -4682,35 +4799,37 @@ Extender LilyPond:
 @cindex no-puros: contenedores de Scheme
 @cindex horizontal, sobreescribir el espaciado
 
-Los contenedores @q{unpure-pure} (pura y no pura) son útiles para la
-sobreescritura de los cálculos del espaciado en el @emph{eje Y}
-(concretamente @code{Y-offset} e @code{Y-extent}) con una función de
-Scheme en lugar de un literal, es decir, un número o una pareja de
-números.
-
-Para ciertos objetos gráficos, las dimensiones @code{Y-extent} están
-basadas en la propiedad @code{stencil}, la sobreescritura de la
-propiedad de sello de éstos requiere una sobreescritura adicional de
-@code{Y-extent} con un contenedor unpure-pure.  Cuando una función
-sobreescribe una dimensión @code{Y-offset} y/o @code{Y-extent} se
-supone que esto dispara los cálculos de los saltos de línea
-prematuramente durante la compilación.  Así pues, la función no se
-evalúa en absoluto (devolviendo por lo general un valor de @samp{0} o
-@samp{'(0 . 0)}) lo que puede dar lugar a colisiones.  Una función
-@q{pura} no afecta a las propiedades, objetos o suicidios de grobs, y
-por ello siempre ven sus valores relacionados con el eje Y evaluados
-correctamente.
-
-Actualmente hay unas treinta funciones que ya se consideran @q{puras}
-y los contenedores Unpure-pure son una manera de establecer funciones
-que no están en esta lista como @q{puras}.  La función @q{pura} se
-evalúa @emph{antes} de cualquier salto de línea y así el espaciado
-horizontal se puede ajustar @q{a tiempo}.  La función @q{impura} se
-evalúa entonces @emph{después} del salto de línea.
-
-@warning{Dado que es difícil saber siempre qué funciones están en esta
-lista, recomendamos que cualquier función @q{pura} que estemos creando
-no utilice los grobs @code{Beam} o @code{VerticalAlignment}.}
+Los contenedores @q{unpure-pure} (pura y no pura) son útiles para
+la sobreescritura de los cálculos del espaciado en el @emph{eje Y}
+(concretamente @code{Y-offset} e @code{Y-extent}) con una función
+de Scheme en lugar de un literal, es decir, un número o una pareja
+de números.
+
+Para ciertos objetos gráficos, las dimensiones @code{Y-extent}
+están basadas en la propiedad @code{stencil}, la sobreescritura de
+la propiedad de sello de éstos requiere una sobreescritura
+adicional de @code{Y-extent} con un contenedor unpure-pure.
+Cuando una función sobreescribe una dimensión @code{Y-offset} y/o
+@code{Y-extent} se supone que esto dispara los cálculos de los
+saltos de línea prematuramente durante la compilación.  Así pues,
+la función no se evalúa en absoluto (devolviendo por lo general un
+valor de @samp{0} o @samp{'(0 . 0)}) lo que puede dar lugar a
+colisiones.  Una función @q{pura} no afecta a las propiedades,
+objetos o suicidios de grobs, y por ello siempre ven sus valores
+relacionados con el eje Y evaluados correctamente.
+
+Actualmente hay unas treinta funciones que ya se consideran
+@q{puras} y los contenedores Unpure-pure son una manera de
+establecer funciones que no están en esta lista como @q{puras}.
+La función @q{pura} se evalúa @emph{antes} de cualquier salto de
+línea y así el espaciado horizontal se puede ajustar @q{a tiempo}.
+La función @q{impura} se evalúa entonces @emph{después} del salto
+de línea.
+
+@warning{Dado que es difícil saber siempre qué funciones están en
+esta lista, recomendamos que cualquier función @q{pura} que
+estemos creando no utilice los grobs @code{Beam} o
+@code{VerticalAlignment}.}
 
 Un contenedor @q{unpure-pure} se contruye de la manera siguiente:
 
@@ -4723,14 +4842,14 @@ etiqueta como @q{pura} que toma @var{n + 2} argumentos.  De nuevo, el
 primer argumento debe ser siempre el grob pero los argumentos segundo
 y tercero son argumentos de @q{inicio} y de @q{final}.
 
-@var{inicio} y @var{final} son, a todos los efectos, valores mudos que
-sólo tienen importancia para los @code{objetos de extensión} (o sea:
-@code{Hairpin}, regulador, o @code{Beam}, barra), que pueden devolver
-distintas estimaciones de altura basadas en una columna de inicio y
-una de final.
+@var{inicio} y @var{final} son, a todos los efectos, valores mudos
+que sólo tienen importancia para los @code{objetos de extensión}
+(o sea: @code{Hairpin}, regulador, o @code{Beam}, barra), que
+pueden devolver distintas estimaciones de altura basadas en una
+columna de inicio y una de final.
 
-El resto son los otros argumentos para la primera función (que puede
-no ser ninguno si @var{n = 1}).
+El resto son los otros argumentos para la primera función (que
+puede no ser ninguno si @var{n = 1}).
 
 El resultado de la segunda función se usa como una aproximación del
 valor necesario, que se usa entonces por la primera función para
@@ -4767,20 +4886,23 @@ smartSquareLineCircleSpace = {
 }
 @end lilypond
 
-En el primer compás, sin el contenedor @emph{unpure-pure}, el motor de
-espaciado no conoce la anchura de la cabeza de la nota y permite que
-colisione con las alteraciones accidentales.  En el segundo compás, el
-motor de espaciado conoce la anchura de las cabezas de las notas y
-evita la colisión mediante el alargamiento de la línea en la medida
-adecuada.
+En el primer compás, sin el contenedor @emph{unpure-pure}, el
+motor de espaciado no conoce la anchura de la cabeza de la nota y
+permite que colisione con las alteraciones accidentales.  En el
+segundo compás, el motor de espaciado conoce la anchura de las
+cabezas de las notas y evita la colisión mediante el alargamiento
+de la línea en la medida adecuada.
 
 Normalmente, para cálculos simples se pueden usar funciones casi
-idénticas tanto para las partes @q{no pura} y @q{pura}, simplemente
-cambiando el número de argumentos que se pasan a, y el ámbito de, la
-función.
+idénticas tanto para las partes @q{no pura} y @q{pura},
+simplemente cambiando el número de argumentos que se pasan a, y el
+ámbito de, la función.  Este caso de utilización es lo bastante
+frecuente como para que @code{ly:make-unpure-pure-container}
+construya dicha segunda función de forma predeterminada cuando se
+llama con solo un argumento de función.
 
-@warning{Si una función está caracterizada como @q{pura} y resulta que
-no lo es, el resultado puede ser inesperado.}
+@warning{Si una función está caracterizada como @q{pura} y resulta
+que no lo es, el resultado puede ser inesperado.}
 
 
 @node Uso de las funciones musicales
@@ -4792,10 +4914,10 @@ no lo es, el resultado puede ser inesperado.}
 Dondequiera que se necesite reutilizar trucos con distintas
 expresiones musicales, con frecuencia conviene hacer que el truco
 forme parte de una @emph{función musical}.  En esta sección
-estudiaremos solamente las funciones de @emph{sustitución}, en las que
-el objeto es sustituir una variable dentro de un fragmento de código
-de entrada de LilyPond.  Se describen otras funciones más complejas en
-@rextend{Funciones musicales}.
+estudiaremos solamente las funciones de @emph{sustitución}, en las
+que el objeto es sustituir una variable dentro de un fragmento de
+código de entrada de LilyPond.  Se describen otras funciones más
+complejas en @rextend{Funciones musicales}.
 
 @menu
 * Sintaxis de las funciones de sustitución::
@@ -4807,8 +4929,8 @@ de entrada de LilyPond.  Se describen otras funciones más complejas en
 @subsection Sintaxis de las funciones de sustitución
 @translationof Substitution function syntax
 
-Es fácil hacer una función que sustituya una variable dentro de código
-de LilyPond.  La forma general de estas funciones es
+Es fácil hacer una función que sustituya una variable dentro de
+código de LilyPond.  La forma general de estas funciones es
 
 @example
 funcion =
@@ -4833,18 +4955,13 @@ debe devolver @code{#t}.
 
 @item @code{@var{@dots{}música@dots{}}}
 @tab código de entrada normal de LilyPond, que utiliza @code{$} (en los
-lugares en que sólo se permiten construcciones de Lilypond) o @code{#}
-(para usarlo como un valor de Scheme o un argumento de función musical
-o música dentro de listas de música) para referenciar argumentos
-(p.ej. @samp{#arg1}).
+lugares en que sólo se permiten construcciones de Lilypond) o
+@code{#} (para usarlo como un valor de Scheme o un argumento de
+función musical o música dentro de listas de música) para
+referenciar argumentos (p.ej. @samp{#arg1}).
 @end multitable
 
-Los argumentos @code{parser} y @code{location} son necesarios, y se
-utilizan en algunas situaciones avanzadas como se encuentra descrito
-en @rextend{Sintaxis de las funciones musicales}.  Para las funciones
-de sustitución, tan sólo hemos de asegurarnos de incluirlos.
-
-También es necesaria la lista de predicados de tipo.  Algunos de los
+Es necesaria la lista de predicados de tipo.  Algunos de los
 predicados de tipo más comunes que se utilizan en las funciones
 musicales son:
 
@@ -4883,12 +5000,13 @@ Archivos instalados:
 @subsection Ejemplos de funciones de sustitución
 @translationof Substitution function examples
 
-Esta sección presenta algunos ejemplos de funciones de sustitución.
-No pretenden ser exhaustivas, sino demostrar algunas de las
-posibilidades de las funciones de sustitución sencillas.
+Esta sección presenta algunos ejemplos de funciones de
+sustitución.  No pretenden ser exhaustivas, sino demostrar algunas
+de las posibilidades de las funciones de sustitución sencillas.
 
-En el primer ejemplo se define una función que simplifica el ajuste
-del relleno de un elemento de inscripción de texto TextScript:
+En el primer ejemplo se define una función que simplifica el
+ajuste del relleno de un elemento de inscripción de texto
+TextScript:
 
 @lilypond[quote,verbatim,ragged-right]
 padText =
@@ -4927,7 +5045,41 @@ custosNote =
 \relative { c'4 d e f \custosNote g }
 @end lilypond
 
-Se pueden definir funciones de sustitución con más de un argumento:
+@funindex \etc
+Ambas funciones son expresiones únicas sencillas en las que solo
+falta el último elemento de una lamada de función o
+sobreescritura.  Para estas definiciones de función en particular,
+existe una sintaxis alternativa más simple que consiste
+simplemente en escribir la parte constante de la expresión y
+sustituir el elemento final que falta por @code{\etc}:
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+  \once \override TextScript.padding = \etc
+
+\relative {
+  c''4^"piu mosso" b a b
+  \padText #1.8
+  c4^"piu mosso" b a b
+  \padText #2.6
+  c4^"piu mosso" b a b
+}
+@end lilypond
+
+@lilypond[quote,verbatim,ragged-right]
+custosNote =
+  \tweak NoteHead.stencil #ly:text-interface::print
+  \tweak NoteHead.text
+     \markup \musicglyph #"custodes.mensural.u0"
+  \tweak Stem.stencil ##f
+  \etc
+
+\relative { c'4 d e f \custosNote g }
+@end lilypond
+
+
+Se pueden definir funciones de sustitución con más de un
+argumento:
 
 @lilypond[quote,verbatim,ragged-right]
 tempoPadded =
index 8d6b154dd1e73252b0bc1cb733f50385a54cac14..72e0b7fbaecdfe91c334f0a2c0b2850de6735414 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is included from notation.itely
 @ignore
-    Translation of GIT committish: ed1acf4b9b63f6acdb4feb24eb4acf3f83548319
+    Translation of GIT committish: a22f2ad68fccb81e52f805ba69cb8c0e6bf8cd82
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -16,8 +16,8 @@
 
 @lilypondfile[quote]{editorial-headword.ly}
 
-Esta sección trata de las diversas maneras de modificar el aspecto de
-las notas y de aplicar énfasis analítico o educativo.
+Esta sección trata de las diversas maneras de modificar el aspecto
+de las notas y de aplicar énfasis analítico o educativo.
 
 @menu
 * Dentro del pentagrama::
@@ -29,8 +29,8 @@ las notas y de aplicar énfasis analítico o educativo.
 @subsection Dentro del pentagrama
 @translationof Inside the staff
 
-Esta sección trata sobre cómo aplicar énfasis a los elementos situados
-dentro del pentagrama.
+Esta sección trata sobre cómo aplicar énfasis a los elementos
+situados dentro del pentagrama.
 
 @menu
 * Seleccionar el tamaño de la tipografía para la notación::
@@ -52,65 +52,230 @@ dentro del pentagrama.
 
 @funindex fontSize
 @funindex font-size
+@funindex magnification->font-size
 @funindex magstep
-@funindex \huge
-@funindex \large
+@funindex magnifyMusic
+@funindex teeny
+@funindex tiny
+@funindex small
+@funindex normalsize
+@funindex large
+@funindex huge
+@funindex \magnifyMusic
+@funindex \teeny
+@funindex \tiny
 @funindex \normalsize
 @funindex \small
-@funindex \tiny
-@funindex \teeny
-@funindex huge
-@funindex large
-@funindex normalsize
-@funindex small
-@funindex tiny
-@funindex teeny
+@funindex \large
+@funindex \huge
+
+@warning{@*
+Para el tamaño de la tipografía del texto, consulte @ref{Seleccionar la tipografía y su tamaño}.@*
+Para el tamaño del pentagrama, consulte @ref{Establecer el tamaño del pentagrama}.@*
+Para las notas guía, consulte @ref{Formateo de las notas guía}.@*
+Para los pentagramas de Ossia, consulte @ref{Pentagramas de Ossia}.}
 
-Se puede alterar el tamaño de la fuente tipográfica de los elementos
-de notación.  Esto no cambia el tamaño de los símbolos variables, como
-las barras de corchea o las ligaduras.
-
-@warning{Para los tamaños de tipografía del texto, consulte
-@ref{Seleccionar la tipografía y su tamaño}.}
-
-@lilypond[verbatim,quote,relative=2]
-\huge
-c4.-> d8---3
-\large
-c4.-> d8---3
-\normalsize
-c4.-> d8---3
-\small
-c4.-> d8---3
-\tiny
-c4.-> d8---3
-\teeny
-c4.-> d8---3
+Para modificar el tamaño de la notación sin cambiar el tamaño del
+pentagrama, especifique un factor de ampliación con la instrucción
+@code{\magnifyMusic}:
+
+@c Grieg Piano Concerto (mvt.1 cadenza)
+@lilypond[verbatim,quote]
+\new Staff <<
+  \new Voice \relative {
+    \voiceOne
+    <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
+  }
+  \new Voice \relative {
+    \voiceTwo
+    \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
+      r32 c'' a c a c a c r c a c a c a c
+      r c a c a c a c a c a c a c a c
+    }
+  }
+>>
 @end lilypond
 
-Internamente, esto establece un valor para la propiedad
-@code{fontSize}.  Esto, a su vez, hace que se establezca el valor de
-la propiedad @code{font-size} de todos los objetos de presentación.
-El valor de @code{font-size} es un número que indica el tamaño con
-relación al tamaño estándar para la altura vigente del pentagrama.
-Cada unidad hacia arriba es un incremento de un 12% del tamaño de la
-fuente, aproximadamente.  Seis unidades son exactamente un factor de
-dos.  La función de Scheme @code{magstep} convierte un número de
-tamaño @code{font-size} a un factor de escalado.  La propiedad
-@code{font-size} también se puede establecer directamente, de forma
-que queden afectados solamente determinados objetos gráficos.
-
-@lilypond[verbatim,quote,relative=2]
-\set fontSize = #3
-c4.-> d8---3
-\override NoteHead.font-size = #-4
-c4.-> d8---3
-\override Script.font-size = #2
-c4.-> d8---3
-\override Stem.font-size = #-5
-c4.-> d8---3
+El @code{\override} del ejemplo anterior es una solución
+provisional para solventar un fallo del programa.  Consulte el
+apartado de @qq{Problemas y advertencias conocidos} al final de
+esta sección.
+
+Si una figura con un tamaño normal de cabeza se mezcla con otra
+más pequeña, el tamaño de la menor podría necesitar reiniciarse
+(con @w{@samp{\once@tie{}\normalsize}}) para que las plicas y las
+alteraciones accidentales mantengan una buena alineación:
+
+@c Chopin Prelude op.28 no.8
+@lilypond[verbatim,quote]
+\new Staff <<
+  \key fis \minor
+  \mergeDifferentlyDottedOn
+  \new Voice \relative {
+    \voiceOne
+    \magnifyMusic 0.63 {
+      \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
+      \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d'
+      \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis'
+      \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis'
+      \once \normalsize a, a' bis, d cis b \once \normalsize gis gis')
+    }
+  }
+  \new Voice \relative {
+    \voiceTwo
+    cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16
+  }
+>>
 @end lilypond
 
+La instrucción @code{\magnifyMusic} no está pensada para las notas
+guía, de adorno, o para los pentagramas de Ossia; existen métodos
+más apropiados para la introducción de cada uno de esos elementos.
+En vez de ello, es útil cuando el tamaño de la notación cambia
+dentro de una sola parte instrumental sobre un pentagrama, y
+cuando las notas de adorno no son adecuadas, como en pasajes de
+tipo cadencial o en casos como los de los ejemplos anteriores.
+Establecer el valor de @code{\magnifyMusic} a 0.63 duplica las
+dimensiones del contexto @code{CueVoice}.
+
+@warning{La instrucción @code{@bs{}magnifyMusic} @i{no} debe
+utilizarse si se está cambiando el tamaño del pentagrama al mismo
+tiempo.  Consulte @ref{Establecer el tamaño del pentagrama}.}
+
+
+@subsubsubheading Cambiar el temaño de los objetos individuales
+
+Un objeto de presentación individual se puede cambiar de tamaño
+usando las instrucciones @code{\tweak} u @code{\override} para
+ajustar su propiedad @code{font-size}:
+
+@lilypond[quote,verbatim]
+\relative {
+  % resize a note head
+  <f' \tweak font-size -4 b e>-5
+  % resize a fingering
+  bes-\tweak font-size 0 -3
+  % resize an accidental
+  \once \override Accidental.font-size = -4 bes!-^
+  % resize an articulation
+  \once \override Script.font-size = 4 bes!-^
+}
+@end lilypond
+
+El valor predeterminado de @code{font-size} para cada objeto de
+presentación está relacionado en el Manual de Referencia de
+funcionamiento interno.  La propiedad @code{font-size} solamente
+se puede fijar para los objetos de presentación que contemplan la
+interfaz de presentación @code{font-interface}.  Si no está
+especificado @code{font-size} en la lista de
+@q{Ajustes@tie{}estándar} del objeto, su valor es 0.  Véase
+@rinternals{All layout objects}.
+
+
+@subsubsubheading Comprensión de la propiedad @code{fontSize}
+
+La propiedad de contexto @code{fontSize} ajusta el tamaño relativo
+de todos los elementos de notación basados en glifos dentro de un
+contexto:
+
+@lilypond[verbatim,quote]
+\relative {
+  \time 3/4
+  d''4---5 c8( b a g) |
+  \set fontSize = -6
+  e'4-- c!8-4( b a g) |
+  \set fontSize = 0
+  fis4---3 e8( d) fis4 |
+  g2.
+}
+@end lilypond
+
+El valor de @code{fontSize} es un número que indica el tamaño
+relativo al tamaño estándar para la altura actual del pentagrama.
+El valor predeterminado de @code{fontSize} es 0; la adición de 6 a
+cualquier valor de @code{fontSize} duplica el tamaño impreso de
+los glifos, y la sustracción de 6 reduce el tamaño a la mitad.
+Cada paso aumenta el tamaño en un 12% aproximadamente.
+
+La función de Scheme @code{magnification->font-size} se provee por
+conveniencia, pues las unidades logarítmicas de la propiedad
+@code{font-size} no son totalmente intuitivas.  Por ejemplo, para
+ajustar la notación musical al 75% del tamaño predeterminado,
+usamos:
+
+@example
+\set fontSize = #(magnification->font-size 0.75)
+@end example
+
+La función de Scheme @code{magstep} tiene el efecto opuesto:
+convierte un valor de @code{font-size} en un factor de ampliación.
+
+La propiedad @code{fontSize} no afecta solamente a los elementos
+notacionales que se dibujan con glifos, como la cabeza de las
+figuras, las alteraciones accidentales, las inscripciones
+textuales, etc.  No afecta al tamaño de la propia pauta, ni cambia
+la escala de las plicas, barras, o espaciado horizontal.  Para
+cambiar la escala de las plicas, barras y el espaciado horizontal
+junto con el tamaño de la notación (sin cambiar el tamaño de la
+pauta), use la instrucción @code{\magnifyMusic} que se ha
+explicado anteriormente.  Para cambiar la escala del tamaño de
+todo, incluida la pauta, véase
+@ref{Establecer el tamaño del pentagrama}.
+
+Siempre que se establece el valor de la @i{propiedad de contexto}
+@code{fontSize}, su valor se añade al valor de la @i{propiedad de
+objeto gráfico} @code{font-size} para los objetos de presentación
+individuales, antes de que se imprima cualquiera de los glifos.
+Esto puede causar confusión cuando se fija el valor de las
+propiedades @code{font-size} individuales mientras @code{fontSize}
+ya está fijado:
+
+@lilypond[verbatim,quote,fragment]
+% the default font-size for NoteHead is 0
+% the default font-size for Fingering is -5
+c''4-3
+
+\set fontSize = -3
+% the effective font size for NoteHead is now -3
+% the effective font size for Fingering is now -8
+c''4-3
+
+\override Fingering.font-size = 0
+% the effective font size for Fingering is now -3
+c''4-3
+@end lilypond
+
+Las siguientes instrucciones de atajo también están disponibles:
+
+@multitable @columnfractions .2 .4 .4
+@item @b{Instrucción} @tab @b{Equivalente a} @tab @b{Tamaño relativo}
+@item @code{\teeny}      @tab @code{\set fontSize = -3} @tab 71%
+@item @code{\tiny}       @tab @code{\set fontSize = -2} @tab 79%
+@item @code{\small}      @tab @code{\set fontSize = -1} @tab 89%
+@item @code{\normalsize} @tab @code{\set fontSize = 0} @tab 100%
+@item @code{\large}      @tab @code{\set fontSize = 1} @tab 112%
+@item @code{\huge}       @tab @code{\set fontSize = 2} @tab 126%
+@end multitable
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \teeny
+  c4.-> d8---3
+  \tiny
+  c4.-> d8---3
+  \small
+  c4.-> d8---3
+  \normalsize
+  c4.-> d8---3
+  \large
+  c4.-> d8---3
+  \huge
+  c4.-> d8---3
+}
+@end lilypond
+
+
 @cindex estándar, tamaño de la tipografía (de notación)
 @cindex fuente tipográfica (de notación), tamaño estándar de
 
@@ -118,16 +283,15 @@ c4.-> d8---3
 @funindex font-size
 
 Los cambios en el tamaño de la fuente se obtienen por medio del
-escalado del tamaño del diseño que se encuentra más cerca del tamaño
-deseado.  El tamaño estándar para la tipografía (para @code{font-size
-= #0}), depende de la altura estándar del pentagrama.  Para un
-pentagrama de 20 puntos, se selecciona una fuente de 11 puntos.
+escalado del tamaño del diseño que se encuentra más cerca del
+tamaño deseado.  El tamaño estándar para la tipografía (para
+@w{@code{font-size = 0}}) depende de la altura estándar del
+pentagrama.  Para un pentagrama de 20 puntos, se selecciona una
+fuente de 11 puntos.
 
-La propiedad @code{font-size} sólo se puede establecer en objetos
-gráficos que utilicen fuentes tipográficas.  Éstos son los que
-contemplan el interfaz de presentación @code{font-interface}.
 
 @predefined
+@code{\magnifyMusic},
 @code{\teeny} (enano),
 @code{\tiny} (muy pequeño),
 @code{\small} (pequeño),
@@ -137,12 +301,45 @@ contemplan el interfaz de presentación @code{font-interface}.
 @endpredefined
 
 @seealso
+Notation Reference:
+@ref{Seleccionar la tipografía y su tamaño},
+@ref{Establecer el tamaño del pentagrama},
+@ref{Formateo de las notas guía},
+@ref{Pentagramas de Ossia}.
+
+Installed Files:
+@file{ly/music-functions-init.ly},
+@file{ly/property-init.ly}.
+
 Fragmentos de código:
 @rlsr{Editorial annotations}.
 
 Referencia de funcionamiento interno:
 @rinternals{font-interface}.
 
+@c The two issues mentioned below:
+@c http://code.google.com/p/lilypond/issues/detail?id=3987
+@c http://code.google.com/p/lilypond/issues/detail?id=3990
+@knownissues
+Actualmente hay dos falos del programa que impiden un correcto
+espaciado horizontal al usar @code{\magnifyMusic}.  Solamente
+existe una forma de circunventarlo, y su funcionamiento correcto
+no está garantizado en todos los casos.  En el ejemplo que aparece
+a continuación, sustituya la variable @var{mag} con su valor
+preferido.  También puede tratar de quitar una o ambas
+instrucciones @code{\newSpacingSection}, y/o las instrucciones
+@code{\override} y @code{\revert}:
+
+@example
+\magnifyMusic @var{mag} @{
+  \newSpacingSection
+  \override Score.SpacingSpanner.spacing-increment = #(* 1.2 @var{mag})
+  [@var{music}]
+  \newSpacingSection
+  \revert Score.SpacingSpanner.spacing-increment
+@}
+@end example
+
 
 @node Indicaciones de digitación
 @unnumberedsubsubsec Indicaciones de digitación
@@ -161,7 +358,8 @@ Las instrucciones de digitación se pueden introducir usando
 \relative { c''4-1 d-2 f-4 e-3 }
 @end lilypond
 
-Para los cambios de dedo se pueden usar elementos de marcado de texto o de cadenas de caracteres.
+Para los cambios de dedo se pueden usar elementos de marcado de
+texto o de cadenas de caracteres.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -174,8 +372,8 @@ Para los cambios de dedo se pueden usar elementos de marcado de texto o de caden
 @funindex \thumb
 @funindex thumb
 
-Puede usar la articulación de pulgar para indicar que una nota se debe
-tocar con el pulgar (p.ej. en música de violoncello).
+Puede usar la articulación de pulgar para indicar que una nota se
+debe tocar con el pulgar (p.ej. en música de violoncello).
 
 @lilypond[verbatim,quote]
 \relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }
@@ -185,8 +383,8 @@ tocar con el pulgar (p.ej. en música de violoncello).
 @cindex digitación, instrucciones de, para acordes
 @cindex acordes, digitación de
 
-Las digitaciones para los acordes también se pueden añadir a las notas
-individuales escribiéndolas después de las alturas.
+Las digitaciones para los acordes también se pueden añadir a las
+notas individuales escribiéndolas después de las alturas.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -194,8 +392,8 @@ individuales escribiéndolas después de las alturas.
 }
 @end lilypond
 
-Las indicaciones de digitación se pueden situar manualmente encima o
-debajo del pentagrama, véase @ref{Dirección y posición}.
+Las indicaciones de digitación se pueden situar manualmente encima
+debajo del pentagrama, véase @ref{Dirección y posición}.
 
 @snippets
 
@@ -240,7 +438,8 @@ Referencia de funcionamiento interno:
 @funindex unHideNotes
 
 Las notas ocultas (o invisibles, o transparentes) pueden ser de
-utilidad en la preparación de ejercicios de teoría o de composición.
+utilidad en la preparación de ejercicios de teoría o de
+composición.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -257,9 +456,9 @@ utilidad en la preparación de ejercicios de teoría o de composición.
 @end lilypond
 
 La cabeza, la plica y el corchete de las figuras, así como los
-silencios, son invisibles.  Las barras son invisibles si comienzan en
-una nota oculta.  Los objetos de notación que están anclados a notas
-invisibles, son a pesar de ello visibles.
+silencios, son invisibles.  Las barras son invisibles si comienzan
+en una nota oculta.  Los objetos de notación que están anclados a
+notas invisibles, son a pesar de ello visibles.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -269,6 +468,7 @@ invisibles, son a pesar de ello visibles.
 }
 @end lilypond
 
+
 @predefined
 @code{\hideNotes},
 @code{\unHideNotes}.
@@ -312,8 +512,9 @@ Referencia de funcionamiento interno:
 @funindex with-color
 @funindex x11-color
 
-Se pueden asignar colores a los objetos individuales.  Los nombres de
-color válidos se encuentran relacionados en la @ref{Lista de colores}.
+Se pueden asignar colores a los objetos individuales.  Los nombres
+de color válidos se encuentran relacionados en la @ref{Lista de
+colores}.
 
 @lilypond[verbatim,quote,fragment]
 \override NoteHead.color = #red
@@ -325,15 +526,16 @@ e''
 @end lilypond
 
 Se puede acceder al espectro completo de colores definido para X11
-usando la función de Scheme x11-color.  Esta función acepta un único
-argumento; éste puede ser un símbolo de la forma @code{@var{'FulanoMengano}}
-o una cadena de la forma @code{"@var{FulanoMengano}"}.  La primera forma es
-más rápida de escribir y también más eficiente.  Sin embargo, al usar
-la segunda forma es posible acceder a los colores de X11 por medio de
-la forma del nombre que tiene varias palabras.
+usando la función de Scheme x11-color.  Esta función acepta un
+único argumento; éste puede ser un símbolo de la forma
+@code{@var{'FulanoMengano}} o una cadena de la forma
+@code{"@var{FulanoMengano}"}.  La primera forma es más rápida de
+escribir y también más eficiente.  Sin embargo, al usar la segunda
+forma es posible acceder a los colores de X11 por medio de la
+forma del nombre que tiene varias palabras.
 
-Si @code{x11-color} no entiende el parámetro, el color predeterminado
-que se devuelve es el negro.
+Si @code{x11-color} no entiende el parámetro, el color
+predeterminado que se devuelve es el negro.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -396,18 +598,20 @@ Fragmentos de código:
 @funindex x11-color
 
 @knownissues
-Un color de X11 no es necesariamente de la misma tonalidad exacta que
-un color normal de nombre similar.
+Un color de X11 no es necesariamente de la misma tonalidad exacta
+que un color normal de nombre similar.
 
 No todos los colores de X11 se distinguen entre sí en un navegador
 web, es decir, un navegador de web podría no mostrar ninguna
-diferencia entre @code{LimeGreen} (verde lima) y @code{ForestGreen}
-(verde bosque).  Para la web se recomiendan los colores normales (o
-sea: @code{blue}, azul, @code{green}, verde, @code{red}, rojo).
+diferencia entre @code{LimeGreen} (verde lima) y
+@code{ForestGreen} (verde bosque).  Para la web se recomiendan los
+colores normales (o sea: @code{blue}, azul, @code{green}, verde,
+@code{red}, rojo).
 
-Las notas de un acorde no se pueden colorear con @code{\override}; en
-su lugar utilice @code{\tweak}.  Consulte @ref{La instrucción tweak} para
-ver más detalles.
+Las notas de un acorde no se pueden colorear individualmente con
+@code{\override}; en su lugar utilice @code{\tweak} o su
+equivalente @code{\single\override} antes de la nota respectiva.
+Consulte @ref{La instrucción tweak} para ver más detalles.
 
 
 @node Paréntesis
@@ -425,8 +629,8 @@ ver más detalles.
 
 Los objetos se pueden encerrar entre paréntesis anteponiendo
 @code{\parenthesize} al evento musical.  Si se aplica a un acorde,
-encierra cada nota dentro de un par de paréntesis.  También se pueden
-poner entre paréntesis las notas individuales de un acorde.
+encierra cada nota dentro de un par de paréntesis.  También se
+pueden poner entre paréntesis las notas individuales de un acorde.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -436,9 +640,9 @@ poner entre paréntesis las notas individuales de un acorde.
 }
 @end lilypond
 
-Los objetos que no son notas también se pueden poner entre paréntesis.
-Para las articulaciones se necesita un guión antes de la instrucción
-@code{\parenthesize}.
+Los objetos que no son notas también se pueden poner entre
+paréntesis.  Para las articulaciones se necesita un guión antes de
+la instrucción @code{\parenthesize}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -457,9 +661,9 @@ Referencia de funcionamiento interno:
 @rinternals{parentheses-interface}.
 
 @knownissues
-Al poner un acorde entre paréntesis, se encierra cada una de las notas
-individuales entre paréntesis, en vez de un solo paréntesis grande
-rodeando al acorde completo.
+Al poner un acorde entre paréntesis, se encierra cada una de las
+notas individuales entre paréntesis, en vez de un solo paréntesis
+grande rodeando al acorde completo.
 
 
 @node Plicas
@@ -481,12 +685,12 @@ rodeando al acorde completo.
 @funindex \stemNeutral
 @funindex stemNeutral
 
-Cuando se encuentra con una nota, se crea automáticamente un objeto
-@code{Stem} (plica).  Para las redondas y los silencios, también se
-crean pero se hacen invisibles.
+Cuando se encuentra con una nota, se crea automáticamente un
+objeto @code{Stem} (plica).  Para las redondas y los silencios,
+también se crean pero se hacen invisibles.
 
-Se puede hacer manualmente que las plicas apunten hacia arriba o hacia
-abajo; véase @ref{Dirección y posición}.
+Se puede hacer manualmente que las plicas apunten hacia arriba o
+hacia abajo; véase @ref{Dirección y posición}.
 
 @predefined
 @code{\stemUp},
@@ -494,6 +698,7 @@ abajo; véase @ref{Dirección y posición}.
 @code{\stemNeutral}.
 @endpredefined
 
+
 @snippets
 
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
@@ -519,8 +724,8 @@ Referencia de funcionamiento interno:
 @subsection Fuera del pentagrama
 @translationof Outside the staff
 
-Esta sección trata sobre cómo enfatizar elementos que están dentro del
-pentagrama, desde fuera del pentagrama.
+Esta sección trata sobre cómo enfatizar elementos que están dentro
+del pentagrama, desde fuera del pentagrama.
 
 @menu
 * Globos de ayuda::
@@ -547,9 +752,9 @@ pentagrama, desde fuera del pentagrama.
 @funindex \balloonLengthOff
 @funindex balloonLengthOff
 
-Los elementos de notación se pueden marcar y nombrar con la ayuda de
-un cartel o globo de ayuda rectangular.  El propósito principal de
-esta funcionalidad es la explicación de la notación.
+Los elementos de notación se pueden marcar y nombrar con la ayuda
+de un cartel o globo de ayuda rectangular.  El propósito principal
+de esta funcionalidad es la explicación de la notación.
 
 @c KEEP LY
 @lilypond[verbatim,quote]
@@ -564,13 +769,13 @@ esta funcionalidad es la explicación de la notación.
 @end lilypond
 
 Existen dos funciones musicales, @code{balloonGrobText} y
-@code{balloonText}; el primero se usa como @code{\once\override} para
-adjuntar un texto a cualquier grob, y el último se usa como
-@code{\tweak}, normalmente dentro de acordes, para adjuntar un texto a
-una nota individual.
+@code{balloonText}; el primero se usa como @code{\once\override}
+para adjuntar un texto a cualquier grob, y el último se usa como
+@code{\tweak}, normalmente dentro de acordes, para adjuntar un
+texto a una nota individual.
 
-Los textos de globo no influyen en el espaciado de las notas,
-pero esto puede cambiarse:
+Los textos de globo no influyen en el espaciado de las notas, pero
+esto puede cambiarse:
 
 @c KEEP LY
 @lilypond[verbatim,quote]
@@ -619,11 +824,12 @@ sincronizadas con las notas.
 Se debe usar el grabador @code{Grid_point_engraver} para crear los
 puntos extremos de las líneas, mientras que el grabador
 @code{Grid_line_span_engraver} se debe utilizar para trazar
-efectivamente las líneas.  De forma predeterminada, esto centra las
-líneas de rejilla horizontalmente debajo y al lado izquierdo de la
-cabeza de las notas.  Las líneas de rejilla se extienden a partir de
-línea media de los pentagramas.  El intervalo @code{gridInterval} debe
-especificar la duración entre las líneas de rejilla.
+efectivamente las líneas.  De forma predeterminada, esto centra
+las líneas de rejilla horizontalmente debajo y al lado izquierdo
+de la cabeza de las notas.  Las líneas de rejilla se extienden a
+partir de línea media de los pentagramas.  El intervalo
+@code{gridInterval} debe especificar la duración entre las líneas
+de rejilla.
 
 @lilypond[verbatim,quote]
 \layout {
@@ -690,9 +896,9 @@ Referencia de funcionamiento interno:
 @funindex \stopGroup
 @funindex stopGroup
 
-Los corchetes se usan en análisis musical para indicar la estructura
-de las piezas musicales.  Están contemplados los corchetes
-horizontales simples.
+Los corchetes se usan en análisis musical para indicar la
+estructura de las piezas musicales.  Están contemplados los
+corchetes horizontales simples.
 
 @lilypond[verbatim,quote]
 \layout {
index bd60012b69a3b1f567292395677e48eb349fc941..f569690a31300bb01624829d691568513816580f 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 48a57a1c8feb426029e059d9fbf8aaf1b14f0ff8
+    Translation of GIT committish: 21be03e4b893ec2bbea745a713360310931337b9
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -29,9 +29,9 @@ crear en un a partitura.
 @subsection Expresiones adosadas a las notas
 @translationof Expressive marks attached to notes
 
-Esta sección explica cómo crear marcas expresivas que están aplicadas
-a notas: articulaciones, ornamentos y matices.  También se tratan los
-métodos para crear las nuevas marcas dinámicas.
+Esta sección explica cómo crear marcas expresivas que están
+aplicadas a notas: articulaciones, ornamentos y matices.  También
+se tratan los métodos para crear las nuevas marcas dinámicas.
 
 @menu
 * Articulaciones y ornamentos::
@@ -148,15 +148,15 @@ La lista de los posibles valores de @code{@var{nombre}} está en
 @cindex portato
 
 
-Algunas de estas articulaciones tienen abreviaturas que facilitan su
-escritura.  Las abreviaturas se escriben detrás del nombre de la nota,
-y su sintaxis consiste en un guión @code{-} seguido de un símbolo que
-especifica la articulación.  Existen abreviaturas predefinidas para el
-@notation{marcato}, @notation{stopped} (nota apagada),
-@notation{tenuto}, @notation{staccatissimo}, @notation{accent}
-(acento), @notation{staccato} (picado), y @notation{portato}.  La
-salida correspondiente a estas articulaciones aparece de la siguiente
-manera:
+Algunas de estas articulaciones tienen abreviaturas que facilitan
+su escritura.  Las abreviaturas se escriben detrás del nombre de
+la nota, y su sintaxis consiste en un guión @code{-} seguido de un
+símbolo que especifica la articulación.  Existen abreviaturas
+predefinidas para el @notation{marcato}, @notation{stopped} (nota
+apagada), @notation{tenuto}, @notation{staccatissimo},
+@notation{accent} (acento), @notation{staccato} (picado), y
+@notation{portato}.  La salida correspondiente a estas
+articulaciones aparece de la siguiente manera:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -278,14 +278,14 @@ Referencia de funcionamiento interno:
 @funindex rfz
 
 Las marcas dinámicas de matiz absoluto se especifican usando una
-instrucción después de una nota: @code{c4\ff}.  Las marcas dinámicas
-disponibles son @code{\ppppp}, @code{\pppp}, @code{\ppp}, @code{\pp},
-@code{\p}, @code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, @code{\fff},
-@code{\ffff}, @code{\fffff}, @code{\fp}, @code{\sf}, @code{\sff},
-@code{\sp}, @code{\spp}, @code{\sfz} y @code{\rfz}.  Las indicaciones
-dinámicas se pueden colocar manualmente por encima o por debajo del
-pentagrama; para ver más detalles, consulte @ref{Dirección y
-posición}.
+instrucción después de una nota: @code{c4\ff}.  Las marcas
+dinámicas disponibles son @code{\ppppp}, @code{\pppp},
+@code{\ppp}, @code{\pp}, @code{\p}, @code{\mp}, @code{\mf},
+@code{\f}, @code{\ff}, @code{\fff}, @code{\ffff}, @code{\fffff},
+@code{\fp}, @code{\sf}, @code{\sff}, @code{\sp}, @code{\spp},
+@code{\sfz} y @code{\rfz}.  Las indicaciones dinámicas se pueden
+colocar manualmente por encima o por debajo del pentagrama; para
+ver más detalles, consulte @ref{Dirección y posición}.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -308,14 +308,15 @@ posición}.
 @funindex \decr
 @funindex decr
 
-Una indicación de @notation{crescendo} se comienza con @code{\<} y se
-termina con @code{\!}, con un matiz absoluto o con otra indicación de
-crescendo o de decrescendo.  Una indicación de @notation{decrescendo}
-comienza con @code{\>} y se termina también con @code{\!}, con un
-matiz dinámico absoluto o con otra indicación de crescendo o de
-decrescendo.  Se pueden usar @code{\cr} y @code{\decr} en lugar de
-@code{\<} y @code{\>}.  De forma predeterminada, se tipografían
-reguladores en ángulo cuando se utiliza esta notación.
+Una indicación de @notation{crescendo} se comienza con @code{\<} y
+se termina con @code{\!}, con un matiz absoluto o con otra
+indicación de crescendo o de decrescendo.  Una indicación de
+@notation{decrescendo} comienza con @code{\>} y se termina también
+con @code{\!}, con un matiz dinámico absoluto o con otra
+indicación de crescendo o de decrescendo.  Se pueden usar
+@code{\cr} y @code{\decr} en lugar de @code{\<} y @code{\>}.  De
+forma predeterminada, se tipografían reguladores en ángulo cuando
+se utiliza esta notación.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -335,9 +336,8 @@ que esté terminado con el comienzo de otra indicación
 @notation{crescendo} o @notation{decrescendo}, terminará en el
 centro de la nota que tiene adosada la siguiente indicación
 @code{\<} ó @code{\>}.  El regulador siguiente empezará entonces
-en el borde derecho de la misma nota en lugar del borde
-izquierdo, como sería usual si hubiese terminado con @code{\!}
-previamente.
+en el borde derecho de la misma nota en lugar del borde izquierdo,
+como sería usual si hubiese terminado con @code{\!}  previamente.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -396,9 +396,11 @@ articulación, no como una expresión dinámica.
 @funindex decresc
 @funindex \dim
 @funindex dim
-Las indicaciones de crescendo textuales se inician con @code{\cresc}.
-Los decrescendos textuales se inician con @code{\decresc} o con @code{\dim}.
-Se trazan líneas extensoras cuando es necesario.
+
+Las indicaciones de crescendo textuales se inician con
+@code{\cresc}.  Los decrescendos textuales se inician con
+@code{\decresc} o con @code{\dim}.  Se trazan líneas extensoras
+cuando es necesario.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -441,16 +443,17 @@ por cambios de dinámica textuales:
 @end lilypond
 
 
-Para crear nuevas indicaciones de matiz absoluto o de texto que deba
-alinearse con los matices; véase @ref{Indicaciones dinámicas contemporáneas}.
+Para crear nuevas indicaciones de matiz absoluto o de texto que
+deba alinearse con los matices; véase
+@ref{Indicaciones dinámicas contemporáneas}.
 
 @cindex matices, posición vertical
 @cindex dinámica, posición vertical
 @cindex vertical, posición, de las indicaciones dinámicas
 @funindex DynamicLineSpanner
 
-La colocación vertical de las indicaciones de dinámica se maneja por
-parte de @rinternals{DynamicLineSpanner}.
+La colocación vertical de las indicaciones de dinámica se maneja
+por parte de @rinternals{DynamicLineSpanner}.
 
 @funindex \dynamicUp
 @funindex dynamicUp
@@ -460,12 +463,13 @@ parte de @rinternals{DynamicLineSpanner}.
 @funindex dynamicNeutral
 
 Está disponible un contexto @code{Dynamics} para tipografiar las
-indicaciones de matiz dinámico en su propia línea horizontal.  Utilice
-silencios de separación para indicar los tiempos (las notas que están
-dentro de un contexto @code{Dynamics} también ocupan tiempo musical,
-pero no se imprimen).  El contexto @code{Dynamics} puede contener
-otros elementos como inscripciones textuales, objetos extensores de
-texto e indicaciones de pedal de piano.
+indicaciones de matiz dinámico en su propia línea horizontal.
+Utilice silencios de separación para indicar los tiempos (las
+notas que están dentro de un contexto @code{Dynamics} también
+ocupan tiempo musical, pero no se imprimen).  El contexto
+@code{Dynamics} puede contener otros elementos como inscripciones
+textuales, objetos extensores de texto e indicaciones de pedal de
+piano.
 
 @lilypond[verbatim,quote]
 <<
@@ -543,8 +547,8 @@ Manual de aprendizaje:
 Referencia de la notación:
 @ref{Dirección y posición},
 @ref{Indicaciones dinámicas contemporáneas},
-@ref{¿Qué sale por el MIDI?},
-@ref{Control de los matices en el MIDI}.
+@ref{Enriquecimiento de la salida MIDI},
+@ref{Control de las dinámicas del MIDI}.
 
 Fragmentos de código:
 @rlsr{Expressive marks}.
@@ -563,8 +567,8 @@ Referencia de funcionamiento interno:
 @cindex indicaciones dinámicas nuevas
 @cindex dinámicas, indicaciones, nuevas
 
-La manera más fácil de crear indicaciones dinámicas es usar objetos de
-marcado (@code{\markup}).
+La manera más fácil de crear indicaciones dinámicas es usar
+objetos de marcado (@code{\markup}).
 
 @lilypond[verbatim,quote]
 moltoF = \markup { molto \dynamic f }
@@ -584,8 +588,8 @@ moltoF = \markup { molto \dynamic f }
 @funindex dynamic
 
 En el modo de marcado se pueden crear indicaciones dinámicas
-editoriales (entre paréntesis o corchetes).  La sintaxis del modo de
-marcado se describe en @ref{Formatear el texto}.
+editoriales (entre paréntesis o corchetes).  La sintaxis del modo
+de marcado se describe en @ref{Formatear el texto}.
 
 @lilypond[verbatim,quote]
 roundF = \markup {
@@ -601,8 +605,8 @@ boxF = \markup { \bracket { \dynamic f } }
 @cindex make-dynamic-script
 @funindex make-dynamic-script
 
-Las indicaciones dinámicas sencillas y centradas se crean fácilmente
-con la función @code{make-dynamic-script}.
+Las indicaciones dinámicas sencillas y centradas se crean
+fácilmente con la función @code{make-dynamic-script}.
 
 @lilypond[verbatim,quote]
 sfzp = #(make-dynamic-script "sfzp")
@@ -611,17 +615,17 @@ sfzp = #(make-dynamic-script "sfzp")
 }
 @end lilypond
 
-En general @code{make-dynamic-script} toma cualquier objeto de marcado
-como argumento.  La fuente tipográfica de matices sólo contiene los
-caracteres @code{f, m, p, r, s} y @code{z}, por lo que si se desea
-obtener una indicación dinámica que incluya texto normal o signos de
-puntuación, es necesario utilizar instrucciones de marcado que
-devuelvan los ajustes de la familia de fuente tipográfica y su
-codificación a las del texto normal, por ejemplo @code{\normal-text}.
-El interés de la utilización de @code{make-dynamic-script} en lugar de
-un elemento de marcado corriente está en asegurar la alineación
-vertical de los objetos de marcado y reguladores que se aplican a la
-misma cabeza de nota.
+En general @code{make-dynamic-script} toma cualquier objeto de
+marcado como argumento.  La fuente tipográfica de matices sólo
+contiene los caracteres @code{f, m, p, r, s} y @code{z}, por lo
+que si se desea obtener una indicación dinámica que incluya texto
+normal o signos de puntuación, es necesario utilizar instrucciones
+de marcado que devuelvan los ajustes de la familia de fuente
+tipográfica y su codificación a las del texto normal, por ejemplo
+@code{\normal-text}.  El interés de la utilización de
+@code{make-dynamic-script} en lugar de un elemento de marcado
+corriente está en asegurar la alineación vertical de los objetos
+de marcado y reguladores que se aplican a la misma cabeza de nota.
 
 @lilypond[verbatim,quote]
 roundF = \markup { \center-align \concat {
@@ -643,8 +647,9 @@ mfEspressDynamic = #(make-dynamic-script mfEspress)
 }
 @end lilypond
 
-Se puede utilizar en su lugar la forma Scheme del modo de marcado.  Su
-sintaxis se explica en @rextend{Construcción del marcado en Scheme}.
+Se puede utilizar en su lugar la forma Scheme del modo de marcado.
+Su sintaxis se explica en @rextend{Construcción del marcado en
+Scheme}.
 
 @lilypond[verbatim,quote]
 moltoF = #(make-dynamic-script
@@ -677,8 +682,8 @@ describen en @ref{Seleccionar la tipografía y su tamaño}.
 Referencia de la notación:
 @ref{Formatear el texto},
 @ref{Seleccionar la tipografía y su tamaño},
-@ref{¿Qué sale por el MIDI?},
-@ref{Control de los matices en el MIDI}.
+@ref{Enriquecimiento de la salida MIDI},
+@ref{Control de las dinámicas del MIDI}.
 
 Extender LilyPond:
 @rextend{Construcción del marcado en Scheme}.
@@ -709,7 +714,8 @@ elevaciones de tono.
 
 @cindex ligaduras de expresión
 
-Las @notation{Ligaduras de expresión} se introducen utilizando paréntesis:
+Las @notation{Ligaduras de expresión} se introducen utilizando
+paréntesis:
 
 @warning{En música polifónica, las ligaduras de expresión deben
 terminar en la misma voz en la que empiezan.}
@@ -730,8 +736,9 @@ terminar en la misma voz en la que empiezan.}
 @funindex \slurNeutral
 @funindex slurNeutral
 
-Las ligaduras de expresión se pueden colocar manualmente por encima o
-por debajo de las notas; véase @ref{Dirección y posición}.
+Las ligaduras de expresión se pueden colocar manualmente por
+encima o por debajo de las notas; véase
+@ref{Dirección y posición}.
 
 @cindex fraseo, ligadura de
 @cindex varias ligaduras de expresión
@@ -740,11 +747,21 @@ por debajo de las notas; véase @ref{Dirección y posición}.
 @cindex ligaduras de expresión, varias
 @cindex ligaduras de expresión simultáneas
 
-No están permitidas las ligaduras de expresión simultáneas o
-solapadas, pero una ligadura de fraseo se puede solapar con una
-ligadura de expresión.  Esto hace posible imprimir dos ligaduras
-distintas al mismo tiempo.  Para ver más detalles, consulte
-@ref{Ligaduras de fraseo}.
+Debe tenerse cuidado con las ligaduras de expresión simultáneas o
+superpuestas.  En casi todos los casos, las ligaduras de expresión
+externas indican, ciertamente, fraseo, y las ligaduras de fraseo
+pueden superponerse a las ligaduras de expresión normales, véase
+@ref{Ligaduras de fraseo}.  Cuando se necesitan varias ligaduras
+de expresión normales dentro de una sola voz, los comienzos y
+finales correspondientes de las ligaduras deben etiquetarse
+precediéndolos por @code{\=} seguido de un número o cadena de
+caracteres que la identifique.
+
+@lilypond[verbatim,quote]
+\fixed c' {
+  <c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
+}
+@end lilypond
 
 @cindex ligadura de expresión, estilo
 @cindex ligadura continua
@@ -763,8 +780,8 @@ distintas al mismo tiempo.  Para ver más detalles, consulte
 @funindex slurSolid
 
 Las ligaduras de expresión pueden ser continuas, discontinuas o de
-puntos.  El estilo predeterminado de las ligaduras de expresión es el
-continuo:
+puntos.  El estilo predeterminado de las ligaduras de expresión es
+el continuo:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -880,9 +897,9 @@ Referencia de funcionamiento interno:
 @funindex \(
 @funindex \)
 
-Las @notation{ligaduras de fraseo} (o marcas de fraseo) que indican
-una frase musical se escriben usando las instrucciones @code{\(} y
-@code{\)} respectivamente:
+Las @notation{ligaduras de fraseo} (o marcas de fraseo) que
+indican una frase musical se escriben usando las instrucciones
+@code{\(} y @code{\)} respectivamente:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -898,11 +915,12 @@ una frase musical se escriben usando las instrucciones @code{\(} y
 @funindex \phrasingSlurNeutral
 @funindex phrasingSlurNeutral
 
-Tipográficamente, la ligadura de fraseo se comporta casi exactamente
-igual que una ligadura de expresión normal.  Sin embargo, se tratan
-como objetos diferentes.  Una @code{\slurUp} no tendrá ningún efecto
-sobre una ligadura de fraseo.  El fraseo se puede situar manualmente
-por encima o por debajo de las notas; véase @ref{Dirección y posición}.
+Tipográficamente, la ligadura de fraseo se comporta casi
+exactamente igual que una ligadura de expresión normal.  Sin
+embargo, se tratan como objetos diferentes.  Una @code{\slurUp} no
+tendrá ningún efecto sobre una ligadura de fraseo.  El fraseo se
+puede situar manualmente por encima o por debajo de las notas;
+véase @ref{Dirección y posición}.
 
 @cindex simultáneas, ligaduras de fraseo
 @cindex varias ligaduras de fraseo
@@ -911,7 +929,9 @@ por encima o por debajo de las notas; véase @ref{Dirección y posición}.
 @cindex fraseo, ligaduras de, simultáneas
 @cindex fraseo, ligaduras de, varias
 
-No se pueden tener varias ligaduras de fraseo simultáneas o solapadas.
+Las ligaduras de fraseo simultáneas o superpuestas se introducen
+usando @code{\=} igual que se hace con las ligaduras de expresión
+normales, véase @ref{Ligaduras de expresión}.
 
 @cindex fraseo, ligaduras de, discontinuas
 @cindex discontinuas, ligaduras de fraseo
@@ -927,8 +947,9 @@ No se pueden tener varias ligaduras de fraseo simultáneas o solapadas.
 @funindex \phrasingSlurSolid
 @funindex phrasingSlurSolid
 
-Las ligaduras de fraseo pueden ser continuas, de puntos o de rayas.
-El estilo predeterminado para las ligaduras de fraseo es el continuo:
+Las ligaduras de fraseo pueden ser continuas, de puntos o de
+rayas.  El estilo predeterminado para las ligaduras de fraseo es
+el continuo:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -989,10 +1010,10 @@ fraseo:
 @end lilypond
 
 Las definiciones de patrones de discontinuidad tienen la misma
-estructura que las definiciones de patrones de discontinuidad de las
-ligaduras de expresión.  Para ver más información acerca de patrones
-de discontinuidad complejos, consulte los fragmentos de código bajo
-@ref{Ligaduras de expresión}.
+estructura que las definiciones de patrones de discontinuidad de
+las ligaduras de expresión.  Para ver más información acerca de
+patrones de discontinuidad complejos, consulte los fragmentos de
+código bajo @ref{Ligaduras de expresión}.
 
 @predefined
 @code{\phrasingSlurUp},
@@ -1036,8 +1057,17 @@ Las respiraciones se introducen utilizando @code{\breathe}:
 { c''2. \breathe d''4 }
 @end lilypond
 
-Las marcas de respiración dan por terminadas las barras automáticas;
-para sobreescribir este comportamiento, consulte @ref{Barras manuales}.
+A diferencia de otras marcas de expresión, los símbolos de
+respiración no están asociados con la nota anterior, sino que son
+eventos independientes.  Por ello, todas las marcas de expresión
+que están adjuntas a la nota anterior, cualquier corchete recto
+que indique barrado manual, y cualquier paréntesis que indique
+ligaduras de expresión y de fraseo, deben escribirse antes de
+@code{\breathe}.
+
+Las marcas de respiración dan por terminadas las barras
+automáticas; para sobreescribir este comportamiento, consulte
+@ref{Barras manuales}.
 
 @lilypond[verbatim,quote]
 \relative { c''8 \breathe d e f g2 }
@@ -1092,9 +1122,9 @@ Referencia de funcionamiento interno:
 
 Se pueden expresar @notation{caídas} y @notation{subidas} de tono
 (falls y doits) añadidas a las notas mediante la instrucción
-@code{\bendAfter}. La dirección de la caída o elevación se indica con
-un signo más o menos (arriba o abajo).  El número indica el intervalo
-de alturas sobre el que se extiende la caída o elevación
+@code{\bendAfter}. La dirección de la caída o elevación se indica
+con un signo más o menos (arriba o abajo).  El número indica el
+intervalo de alturas sobre el que se extiende la caída o elevación
 @emph{partiendo de} la nota principal.
 
 @lilypond[verbatim,quote]
@@ -1144,8 +1174,8 @@ siguen un camino lineal: glissandi, arpegios y trinos.
 @funindex \glissando
 @funindex glissando
 
-Se crea un @notation{glissando} añadiendo @code{\glissando} después de
-la nota:
+Se crea un @notation{glissando} añadiendo @code{\glissando}
+después de la nota:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1174,11 +1204,11 @@ Un glissando puede conectar notas de un pentagrama a otro:
 @end lilypond
 
 Un glissando puede conectar las notas dentro de un acorde.  Si se
-necesita hacer algo que no sea una conexión de una nota con otra entre
-los dos acordes, las conexiones entre las notas vienen definidas por
-medio de @code{\glissandoMap}, donde las notas de un acorde se suponen
-numeradas, empezando en cero, en el orden en que aparecen en el código
-de entrada del archivo @file{.ly}.
+necesita hacer algo que no sea una conexión de una nota con otra
+entre los dos acordes, las conexiones entre las notas vienen
+definidas por medio de @code{\glissandoMap}, donde las notas de un
+acorde se suponen numeradas, empezando en cero, en el orden en que
+aparecen en el código de entrada del archivo @file{.ly}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1198,8 +1228,8 @@ de entrada del archivo @file{.ly}.
 }
 @end lilypond
 
-Se pueden crear distintos tipos de glissando.  Para ver más detalles,
-consulte @ref{Estilos de línea}.
+Se pueden crear distintos tipos de glissando.  Para ver más
+detalles, consulte @ref{Estilos de línea}.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
@@ -1228,8 +1258,8 @@ Referencia de funcionamiento interno:
 @rinternals{Glissando}.
 
 @knownissues
-La impresión de texto sobre la línea (como @notation{gliss.}) no está
-contemplada.
+La impresión de texto sobre la línea (como @notation{gliss.}) no
+está contemplada.
 
 
 @node Arpegio
@@ -1249,9 +1279,9 @@ contemplada.
 @funindex \arpeggioNormal
 @funindex arpeggioNormal
 
-Un signo de @notation{acorde arpegiado} (conocido también como acorde
-quebrado) sobre un acorde, se denota adjuntando @code{\arpeggio} al
-acorde:
+Un signo de @notation{acorde arpegiado} (conocido también como
+acorde quebrado) sobre un acorde, se denota adjuntando
+@code{\arpeggio} al acorde:
 
 @lilypond[verbatim,quote]
 \relative { <c' e g c>1\arpeggio }
@@ -1309,8 +1339,9 @@ Las propiedades de discontinuidad del paréntesis del arpegio se
 controlan mediante la propiedad @code{'dash-definition}, que se
 describe en @ref{Ligaduras de expresión}.
 
-Los acordes arpegiados se pueden desarrollar explícitamente utilizando
-@notation{ligaduras de unión}.  Véase @ref{Ligaduras de unión}.
+Los acordes arpegiados se pueden desarrollar explícitamente
+utilizando @notation{ligaduras de unión}.  Véase
+@ref{Ligaduras de unión}.
 
 @predefined
 @code{\arpeggio},
@@ -1390,9 +1421,8 @@ hacen con @code{\startTrillSpan} y @code{\stopTrillSpan}:
 }
 @end lilypond
 
-Un trino extendido que atraviesa un salto de línea
-recomienza exactamente encima de la primera nota
-de la nueva línea.
+Un trino extendido que atraviesa un salto de línea recomienza
+exactamente encima de la primera nota de la nueva línea.
 
 @lilypond[ragged-right,verbatim,quote]
 \relative {
@@ -1406,7 +1436,8 @@ de la nueva línea.
 
 Los trinos extendidos consecutivos funcionan sin necesidad de
 instrucciones @code{\stopTrillSpan} explícitas, porque cada trino
-se convertirá automáticamente en el borde derecho del trino anterior.
+se convertirá automáticamente en el borde derecho del trino
+anterior.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1438,9 +1469,9 @@ las notas de adorno con precisión están descritos en
 
 Los trinos que se tienen que ejecutar sobre notas auxiliares
 explícitas se pueden tipografiar con la instrucción
-@code{pitchedTrill}.  El primer argumento es la nota principal, y el
-segundo es la nota @emph{trinada}, que se imprime como una cabeza de
-nota, sin plica y entre paréntesis.
+@code{pitchedTrill}.  El primer argumento es la nota principal, y
+el segundo es la nota @emph{trinada}, que se imprime como una
+cabeza de nota, sin plica y entre paréntesis.
 
 @lilypond[verbatim,quote]
 \relative {
index abe7941049cf98ee6c6d29d2447c5a29c778f096..43df988df232b0aa788c59f99227a445e0db72ad 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 18f6f13f39b25f28679fe2073763151008ca3366
+    Translation of GIT committish: 8016f31ef2a25bf9492a6ba65dc627622beac4af
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @chapter Entrada y salida generales
 @translationof General input and output
 
-Esta sección trata de asuntos relacionados con la entrada y salida
-generales de LilyPond, más que con la notación específica.
+Esta sección trata de asuntos relacionados con la entrada y
+salida generales de LilyPond, más que con la notación específica.
 
 @menu
 * Estructura del código de entrada::
 * Títulos y encabezamientos::
 * Trabajar sobre los archivos de entrada::
 * Controlar la salida::
-* Salida MIDI::
+* Creación de salida MIDI::
 * Extraer información musical::
 @end menu
 
@@ -31,8 +31,9 @@ generales de LilyPond, más que con la notación específica.
 @section Estructura del código de entrada
 @translationof Input structure
 
-El formato principal de entrada para LilyPond son archivos de texto.
-Por convenio, el nombre de estos archivos termina en @file{.ly}.
+El formato principal de entrada para LilyPond son archivos de
+texto.  Por convenio, el nombre de estos archivos termina en
+@file{.ly}.
 
 @menu
 * Estructura de una partitura::
@@ -62,9 +63,10 @@ delimitada por un par de llaves:
 @warning{Sólo puede haber @strong{una} expresión musical dentro del
 bloque @code{\score}, y @strong{debe} estar encerrada entre llaves.}
 
-Esta expresión musical única puede tener cualquier tamaño, y puede
-contener otras expresiones musicales hasta cualquier grado de
-complejidad.  Todos los siguientes ejemplos son expresiones musicales:
+Esta expresión musical única puede tener cualquier tamaño, y
+puede contener otras expresiones musicales hasta cualquier grado
+de complejidad.  Todos los siguientes ejemplos son expresiones
+musicales:
 
 @example
 @{ c'4 c' c' c' @}
@@ -99,25 +101,27 @@ complejidad.  Todos los siguientes ejemplos son expresiones musicales:
 @}
 @end example
 
-Los comentarios son una excepción a esta regla general (para ver otras
-excepciones, consulte @ref{Estructura del archivo}).  Tanto los comentarios de
-una línea como los que están delimitados por @code{%@{ @dots{} %@}} se
-pueden escribir en cualquier lugar dentro del archivo de entrada.  Se
-pueden escribir dentro o fuera del bloque @code{\score}, y dentro o
-fuera de la expresión musical única dentro del bloque @code{\score}.
-
-Recuerde que incluso dentro de un archivo que contenga solamente un
-bloque @code{\score}, éste se encuentra incluido implícitamente dentro
-de un bloque @code{\book}.  Un bloque @code{\book} dentro de un
-archivo fuente produce al menos un archivo de salida, y de forma
-predeterminada el nombre del archivo de salida que se produce está
-derivado del nombre del archivo de entrada, de forma que
-@file{fandangoforelephants.ly} da como resultado
-@file{fandangoforelephants.pdf}.
-
-(Para ver más detalles acerca de los bloques @code{\book}, consulte
-@ref{Varias partituras en un libro}, @ref{Varios archivos de salida a
-partir de uno de entrada} y @ref{Estructura del archivo}.)
+Los comentarios son una excepción a esta regla general (para ver
+otras excepciones, consulte @ref{Estructura del archivo}).  Tanto
+los comentarios de una línea como los que están delimitados por
+@code{%@{ @dots{} %@}} se pueden escribir en cualquier lugar
+dentro del archivo de entrada.  Se pueden escribir dentro o fuera
+del bloque @code{\score}, y dentro o fuera de la expresión
+musical única dentro del bloque @code{\score}.
+
+Recuerde que incluso dentro de un archivo que contenga solamente
+un bloque @code{\score}, éste se encuentra incluido
+implícitamente dentro de un bloque @code{\book}.  Un bloque
+@code{\book} dentro de un archivo fuente produce al menos un
+archivo de salida, y de forma predeterminada el nombre del
+archivo de salida que se produce está derivado del nombre del
+archivo de entrada, de forma que @file{fandangoforelephants.ly}
+da como resultado @file{fandangoforelephants.pdf}.
+
+(Para ver más detalles acerca de los bloques @code{\book},
+consulte @ref{Varias partituras en un libro},
+@ref{Varios archivos de salida a partir de uno de entrada} y
+@ref{Estructura del archivo}.)
 
 @seealso
 Manual de aprendizaje:
@@ -155,8 +159,8 @@ y los textos se introducen con un bloque @code{\markup}:
 @funindex \book
 
 Todos los movimientos y textos que aparecen en el mismo archivo
-@file{.ly} se tipografían normalmente en la forma de un solo archivo
-de salida.
+@file{.ly} se tipografían normalmente en la forma de un solo
+archivo de salida.
 
 @example
 \score @{
@@ -176,11 +180,11 @@ bloque @code{\book}, pues en caso contrario sólo aparecerá en la
 salida el primer @code{\score} o @code{\markup}.
 
 El encabezamiento de cada pieza se puede poner dentro del bloque
-@code{\score}.  Antes de cada movimiento, se imprime el nombre de la
-pieza (@code{piece}) extraído del encabezamiento.  El título del libro
-entero se puede poner dentro del bloque @code{\book}, pero si no está
-presente se inserta el encabezamiento @code{\header} que está al
-principio del archivo.
+@code{\score}.  Antes de cada movimiento, se imprime el nombre de
+la pieza (@code{piece}) extraído del encabezamiento.  El título
+del libro entero se puede poner dentro del bloque @code{\book},
+pero si no está presente se inserta el encabezamiento
+@code{\header} que está al principio del archivo.
 
 @example
 \header @{
@@ -205,11 +209,11 @@ principio del archivo.
 
 @funindex \bookpart
 
-Se pueden agrupar distintas piezas de música en partes de un libro
-utilizando bloques @code{\bookpart}.  Las partes de libro se separan
-por medio de saltos de página, y pueden dar comienzo con un título,
-como el libro propiamente dicho, mediante la especificación del bloque
-@code{\header}.
+Se pueden agrupar distintas piezas de música en partes de un
+libro utilizando bloques @code{\bookpart}.  Las partes de libro
+se separan por medio de saltos de página, y pueden dar comienzo
+con un título, como el libro propiamente dicho, mediante la
+especificación del bloque @code{\header}.
 
 @example
 \bookpart @{
@@ -235,23 +239,25 @@ como el libro propiamente dicho, mediante la especificación del bloque
 @translationof Multiple output files from one input file
 
 Si queremos varios archivos de salida a partir del mismo archivo
-@file{.ly}, podemos escribir varios bloques @code{\book}, donde cada
-uno de estos bloques @code{\book} dará como resultado un archivo de
-salida distinto.  Si no especificamos ningún bloque @code{\book} en el
-archivo, LilyPond trata implícitamente todo el archivo como un solo
-bloque @code{\book}, véase @ref{Estructura del archivo}.
+@file{.ly}, podemos escribir varios bloques @code{\book}, donde
+cada uno de estos bloques @code{\book} dará como resultado un
+archivo de salida distinto.  Si no especificamos ningún bloque
+@code{\book} en el archivo, LilyPond trata implícitamente todo el
+archivo como un solo bloque @code{\book}, véase @ref{Estructura
+del archivo}.
 
 Al producir varios archivos a partir de un solo archivo fuente,
-Lilypond se asegura de que ninguno de los archivos de salida de ningún
-bloque @code{\book} sobreescribe el archivo de salida producido por un
-@code{\book} anterior del mismo archivo de entrada.
+Lilypond se asegura de que ninguno de los archivos de salida de
+ningún bloque @code{\book} sobreescribe el archivo de salida
+producido por un @code{\book} anterior del mismo archivo de
+entrada.
 
-Lo hace añadiendo un sufijo al nombre de la salida para cada libro
-@code{\book} que utiliza el nombre del archivo de salida
+Lo hace añadiendo un sufijo al nombre de la salida para cada
+libro @code{\book} que utiliza el nombre del archivo de salida
 predeterminado, derivado del archivo fuente de entrada.
 
-El comportamiento predeterminado es añadir un sufijo con el número de
-versión para cada nombre que pueda coincidir; así:
+El comportamiento predeterminado es añadir un sufijo con el
+número de versión para cada nombre que pueda coincidir; así:
 
 @example
 \book @{
@@ -288,14 +294,15 @@ en el archivo fuente @file{eightminiatures.ly}, produce
 @funindex \bookOutputName
 
 Lilypond le ofrece unos mecanismos que le permiten controlar los
-nombres de archivo que se utilizan por parte de los diversos motores
-finales al producir los archivos de salida.
-
-En la sección anterior vimos cómo Lilypond evita las coincidencias de
-nombres al producir varias salidas a partir de un único archivo fuente
-de entrada.  También podemos especificar nuestros propios sufijos para
-cada bloque @code{\book}, de manera que podemos producir, por ejemplo,
-archivos con los nombres @file{eightminiatures-Romanze.pdf},
+nombres de archivo que se utilizan por parte de los diversos
+motores finales al producir los archivos de salida.
+
+En la sección anterior vimos cómo Lilypond evita las
+coincidencias de nombres al producir varias salidas a partir de
+un único archivo fuente de entrada.  También podemos especificar
+nuestros propios sufijos para cada bloque @code{\book}, de manera
+que podemos producir, por ejemplo, archivos con los nombres
+@file{eightminiatures-Romanze.pdf},
 @file{eightminiatures-Menuetto.pdf} y
 @file{eightminiatures-Nocturne.pdf} añadiendo una declaración
 @code{\bookOutputSuffix} dentro de cada bloque @code{\book}.
@@ -318,9 +325,9 @@ archivos con los nombres @file{eightminiatures-Romanze.pdf},
 @}
 @end example
 
-También podemos especificar un nombre de archivo de salida diferente
-para cada bloque @code{book}, mediante la utilización de declaraciones
-@code{\bookOutputName}:
+También podemos especificar un nombre de archivo de salida
+diferente para cada bloque @code{book}, mediante la utilización
+de declaraciones @code{\bookOutputName}:
 
 @example
 \book @{
@@ -364,19 +371,19 @@ El código anterior produce los siguientes archivos de salida:
 @funindex \book
 @funindex \bookpart
 
-Un archivo @file{.ly} puede contener cualquier número de expresiones
-del nivel superior, donde una expresión del nivel superior es una de
-las siguientes posibilidades:
+Un archivo @file{.ly} puede contener cualquier número de
+expresiones del nivel superior, donde una expresión del nivel
+superior es una de las siguientes posibilidades:
 
 @itemize
 @item
 Una definición de salida, como @code{\paper}, @code{\midi} y
 @code{\layout}.  Tal definición en el nivel más alto cambia los
-ajustes predeterminados para todo el libro.  Si se introduce más de
-una de estas definiciones del mismo tipo en el nivel más alto, las
-definiciones se combinan, pero en situaciones de conflicto las
-definiciones más tardías tienen preferencia.  Para ver los detalles
-sobre cómo afecta al bloque @code{\layout}, consulte
+ajustes predeterminados para todo el libro.  Si se introduce más
+de una de estas definiciones del mismo tipo en el nivel más alto,
+las definiciones se combinan, pero en situaciones de conflicto
+las definiciones más tardías tienen preferencia.  Para ver los
+detalles sobre cómo afecta al bloque @code{\layout}, consulte
 @ref{El bloque layout,,El bloque @code{@bs{}layout}}.
 
 @item
@@ -385,42 +392,45 @@ Una expresión directa de Scheme, como
 @code{#(ly:set-option 'point-and-click #f)}.
 
 @item
-Un bloque @code{\header}.  Esto establece el bloque de encabezamiento
-global (es decir, al principio del archivo).  Es el bloque que
-contiene los ajustes predeterminados de los campos de encabezamientos
-como el compositor, título, etc. para todos los libros que están
-dentro del archivo (véase @ref{Explicación de los títulos}).
+Un bloque @code{\header}.  Esto establece el bloque de
+encabezamiento global (es decir, al principio del archivo).  Es
+el bloque que contiene los ajustes predeterminados de los campos
+de encabezamientos como el compositor, título, etc. para todos
+los libros que están dentro del archivo (véase
+@ref{Explicación de los títulos}).
 
 @item
-Un bloque @code{\score}.  Esta partitura se reúne con otras partituras
-del nivel superior, y se combina con ellas formando un @code{\book}
-(libro) único.  Este comportamiento se puede cambiar estableciendo el
-valor de la variable @code{toplevel-score-handler} en el nivel
-superior.  El @emph{handler} predeterminado se define en el archivo de
-inicio @file{../scm/lily.scm}.
+Un bloque @code{\score}.  Esta partitura se reúne con otras
+partituras del nivel superior, y se combina con ellas formando un
+@code{\book} (libro) único.  Este comportamiento se puede cambiar
+estableciendo el valor de la variable
+@code{toplevel-score-handler} en el nivel superior.  El
+@emph{handler} predeterminado se define en el archivo de inicio
+@file{../scm/lily.scm}.
 
 @item
 Un bloque @code{\book} combina lógicamente varios movimientos (es
-decir, varios bloques @code{\score}) en un solo documento.  Si hay
-varias partituras @code{\score}, se crea un solo archivo de salida
-para cada bloque @code{\book}, en el que se concatenan todos los
-movimientos correspondientes.  La única razón para especificar
-explícitamente bloques @code{\book} en un archivo de entrada
-@file{.ly} es si queremos crear varios archivos de salida a partir de
-un único archivo de entrada.  Una excepción se da dentro de los
-documentos de lilypond-book, en los que tenemos que escribir
-explícitamente un bloque @code{\book} si queremos tener más de una
-única partitura @code{\score} o marcado @code{\markup} en el mismo
-ejemplo.  Se puede cambiar este comportamiento estableciendo el valor
-de la variable @code{toplevel-book-handler} en el nivel superior.  El
+decir, varios bloques @code{\score}) en un solo documento.  Si
+hay varias partituras @code{\score}, se crea un solo archivo de
+salida para cada bloque @code{\book}, en el que se concatenan
+todos los movimientos correspondientes.  La única razón para
+especificar explícitamente bloques @code{\book} en un archivo de
+entrada @file{.ly} es si queremos crear varios archivos de salida
+a partir de un único archivo de entrada.  Una excepción se da
+dentro de los documentos de lilypond-book, en los que tenemos que
+escribir explícitamente un bloque @code{\book} si queremos tener
+más de una única partitura @code{\score} o marcado @code{\markup}
+en el mismo ejemplo.  Se puede cambiar este comportamiento
+estableciendo el valor de la variable
+@code{toplevel-book-handler} en el nivel superior.  El
 @emph{handler} predeterminado se define en el archivo de inicio
 @file{../scm/lily.scm}.
 
 @item
 Un bloque @code{\bookpart}.  Un libro puede dividirse en varias
-partes, utilizando bloques @code{\bookpart}, con objeto de facilitar
-la inserción de saltos de página o usar distintos ajustes de
-@code{\paper} en las distintas partes.
+partes, utilizando bloques @code{\bookpart}, con objeto de
+facilitar la inserción de saltos de página o usar distintos
+ajustes de @code{\paper} en las distintas partes.
 
 @item
 Una expresión musical compuesta, como
@@ -428,10 +438,11 @@ Una expresión musical compuesta, como
 @{ c'4 d' e'2 @}
 @end example
 
-Esto añade la pieza al @code{\score} y la conforma dentro de un libro
-único junto a todas las demás partituras @code{\score} y expresiones
-musicales del nivel superior.  En otras palabras, un archivo que
-contiene sólo la expresión musical anterior se traduce a
+Esto añade la pieza al @code{\score} y la conforma dentro de un
+libro único junto a todas las demás partituras @code{\score} y
+expresiones musicales del nivel superior.  En otras palabras, un
+archivo que contiene sólo la expresión musical anterior se
+traduce a
 
 @example
 \book @{
@@ -462,7 +473,8 @@ Un texto de marcado, por ejemplo una estrofa
 @end example
 
 Los textos de marcado se colocan encima, en medio o debajo de las
-partituras o expresiones musicales, según donde aparezcan escritos.
+partituras o expresiones musicales, según donde aparezcan
+escritos.
 
 @cindex variables
 
@@ -473,13 +485,13 @@ fulano = @{ c4 d e d @}
 @end example
 
 Esto se puede utilizar más tarde en el archivo escribiendo
-@code{\fulano}.  El nombre de las variables ha de ser exclusivamente
-alfabético; sin números, guiones ni barras bajas.
+@code{\fulano}.  El nombre de las variables ha de ser
+exclusivamente alfabético; sin números, guiones ni barras bajas.
 
 @end itemize
 
-El ejemplo siguiente muestra tres cosas que se pueden introducir en el
-nivel superior:
+El ejemplo siguiente muestra tres cosas que se pueden introducir
+en el nivel superior:
 
 @example
 \layout @{
@@ -494,28 +506,30 @@ nivel superior:
 @{ c'4 d' e2 @}
 @end example
 
-En cualquier punto del archivo se pueden introducir cualquiera de las
-instrucciones léxicas siguientes:
+En cualquier punto del archivo se pueden introducir cualquiera de
+las instrucciones léxicas siguientes:
 
 @itemize
 @item @code{\version}
 @item @code{\include}
 @item @code{\sourcefilename}
 @item @code{\sourcefileline}
-@item
-Un comentario de una línea, determinado por un símbolo @code{%} al principio.
+@item Un comentario de una línea, determinado por un símbolo @code{%}
+al principio.
 
 @item
-Un comentario de varias líneas, delimitado por @code{%@{ @dots{} %@}}.
+Un comentario de varias líneas, delimitado por @code{%@{ @dots{}
+%@}}.
 
 @end itemize
 
 @cindex espacios en blanco
 
-Por lo general se ignoran los espacios entre elementos del flujo de
-entrada, y se pueden omitir o aumentar tranquilamente para mejorar la
-legibilidad.  Sin embargo, los espacios se deben utilizar siempre para
-evitar errores, en las siguientes situaciones:
+Por lo general se ignoran los espacios entre elementos del flujo
+de entrada, y se pueden omitir o aumentar tranquilamente para
+mejorar la legibilidad.  Sin embargo, los espacios se deben
+utilizar siempre para evitar errores, en las siguientes
+situaciones:
 
 @itemize
 
@@ -527,8 +541,8 @@ todos los elementos que comienzan con un signo @code{\} de barra
 invertida.
 
 @item A continuación de todo elemento que se deba interpretar
-como expresión de Scheme, es decir, todo elemento que comience por
-un signo@tie{}@code{#}.
+como expresión de Scheme, es decir, todo elemento que comience
+por un signo@tie{}@code{#}.
 
 @item Para separar los elementos de una expresión de Scheme.
 
@@ -550,12 +564,17 @@ Referencia de la notación:
 @section Títulos y encabezamientos
 @translationof Titles and headers
 
+@cindex títulos
+@cindex encabezamientos
+@cindex pies de página
+
 Casi toda la música impresa tiene un título y el nombre del
 compositor; ciertas piezas tienen mucha más información.
 
 @menu
 * Crear títulos encabezamientos y pies de página::
 * Títulos encabezamientos y pies de página personalizados::
+* Creación de metadatos de PDF::
 * Crear notas al pie::
 * Referencia a números de página::
 * Índice general::
@@ -579,21 +598,21 @@ compositor; ciertas piezas tienen mucha más información.
 
 Cada bloque @code{\book} de un solo archivo de entrada produce un
 archivo de salida distinto, véase @ref{Estructura del archivo}.
-Dentro de cada archivo de salida están disponibles tres tipos de zonas
-para títulos: @emph{Títulos de libro} al principio de cada libro,
-@emph{Títulos de parte de libro} al principio de cada
-parte de un libro y @emph{Títulos de partitura} al comienzo de una
-partitura.
-
-Los valores de los campos para encabezamientos tales como @code{title}
-(para el título) y @code{composer} (para el autor) se establecen en
-bloques @code{\header} (para ver la sintaxis de los bloques
-@code{\header} y una lista completa de los campos disponibles de forma
-predeterminada, consulte @ref{Presentación predeterminada de los
-títulos de partes de libro y partitura}).  Tanto los títulos de libro como
-los títulos de parte de libro y los títulos de partitura pueden
-contener los mismos
-campos, aunque de forma predeterminada los campos de los títulos de
+Dentro de cada archivo de salida están disponibles tres tipos de
+zonas para títulos: @emph{Títulos de libro} al principio de cada
+libro, @emph{Títulos de parte de libro} al principio de cada
+parte de un libro y @emph{Títulos de partitura} al comienzo de
+una partitura.
+
+Los valores de los campos para encabezamientos tales como
+@code{title} (para el título) y @code{composer} (para el autor)
+se establecen en bloques @code{\header} (para ver la sintaxis de
+los bloques @code{\header} y una lista completa de los campos
+disponibles de forma predeterminada, consulte @ref{Presentación
+predeterminada de los títulos de partes de libro y partitura}).
+Tanto los títulos de libro como los títulos de parte de libro y
+los títulos de partitura pueden contener los mismos campos,
+aunque de forma predeterminada los campos de los títulos de
 partitura se limitan a @code{piece} (pieza) y @code{opus}.
 
 Los bloques @code{\header} se pueden situar en cuatro lugares
@@ -619,68 +638,69 @@ Después de la expresión musical de un bloque @code{\score}.
 
 @end itemize
 
-Los valores de los campos se fitran a través de esta jerarquía,
-persistiendo aquellos que se establecen más arriba a no ser que se
-sobreescriban por un valor establecido más abajo en la jerarquía, y
-así:
+Los valores de los campos se filtran a través de esta jerarquía,
+persistiendo aquellos que se establecen más arriba a no ser que
+se sobreescriban por un valor establecido más abajo en la
+jerarquía, y así:
 
 @itemize
 
 @item
 El título de un libro deriva de los campos establecidos al
 principio del archivo de entrada, modificado por campos
-establecidos en el bloque @code{\book}.  Los campos resultantes se
-usan para imprimir el título de libro para dicho libro, siempre y
-cuando haya otro material que genere una página al comienzo del
-libro, antes de la primera parte de libro.  Es suficiente una sola
-instrucción @code{\pageBreak}.
+establecidos en el bloque @code{\book}.  Los campos resultantes
+se usan para imprimir el título de libro para dicho libro,
+siempre y cuando haya otro material que genere una página al
+comienzo del libro, antes de la primera parte de libro.  Es
+suficiente una sola instrucción @code{\pageBreak}.
 
 @item
 Un título de parte de libro se deriva de los campos fijados al
 principio del archivo de entrada, modificado por los campos
 establecidos dentro del bloque @code{\book}, y posteriormente
 modificado por los campos que se fijan dentro del bloque
-@code{\bookpart}.  Los valores resultantes se usan para imprimir el
-título de parte de libro para esa parte.
+@code{\bookpart}.  Los valores resultantes se usan para imprimir
+el título de parte de libro para esa parte.
 
 @item
 Un título de partitura se deriva de los campos que se fijan al
-principio del archivo de entrada, modificados por los campos fijados
-dentro del bloque @code{\book}, posteriormente modificados por los
-campos que se fijan dentro del bloque @code{\bookpart} y finalmente
-modificados por los campos establecidos dentro del bloque
-@code{\score}.  Los valores restulantes se utilizan para imprimir el
-título de partitura.  Observe, sin embargo, que de forma
-predeterminada solamente se imprimen los campos @code{piece} y
-@code{opus} en los títulos de partitura a no ser que la variable de
-@code{\paper}, @code{print-all-headers}, tenga el valor @code{#t}.
+principio del archivo de entrada, modificados por los campos
+fijados dentro del bloque @code{\book}, posteriormente
+modificados por los campos que se fijan dentro del bloque
+@code{\bookpart} y finalmente modificados por los campos
+establecidos dentro del bloque @code{\score}.  Los valores
+resultantes se utilizan para imprimir el título de partitura.
+Observe, sin embargo, que de forma predeterminada solamente se
+imprimen los campos @code{piece} y @code{opus} en los títulos de
+partitura a no ser que la variable de @code{\paper},
+@code{print-all-headers}, tenga el valor @code{#t}.
 
 @end itemize
 
-@warning{Recuerde que al poner un bloque @bs{}@code{header} dentro de
-un bloque @bs{}@code{score}, la expresión musical debe aparecer antes
-del bloque @bs{}@code{header}.}
+@warning{Recuerde que al poner un bloque @bs{}@code{header}
+dentro de un bloque @bs{}@code{score}, la expresión musical debe
+aparecer antes del bloque @bs{}@code{header}.}
 
-No es necesario aportar bloques @code{\header} en los cuatro lugares:
-cualquiera de ellos o incluso todos pueden omitirse.  De forma
-similar, los archivos de entrada sencillos pueden omitir los bloques
-@code{\book} y @code{\bookpart}, dejando que se creen de forma
-implícita.
+No es necesario aportar bloques @code{\header} en los cuatro
+lugares: cualquiera de ellos o incluso todos pueden omitirse.  De
+forma similar, los archivos de entrada sencillos pueden omitir
+los bloques @code{\book} y @code{\bookpart}, dejando que se creen
+de forma implícita.
 
-Si el lobro solamente tiene una partitura, el bloque @code{\header}
-debiera situarse normalmente al principio del archivo de forma que
-solamente se produce una zona de título de parte de libro, haciendo
-que estén disponibles para su uso todos los títulos de
-encabezamientos.
+Si el libro solamente tiene una partitura, el bloque
+@code{\header} debiera situarse normalmente al principio del
+archivo de forma que solamente se produce una zona de título de
+parte de libro, haciendo que estén disponibles para su uso todos
+los títulos de encabezamientos.
 
 Si el libro tiene varias partituras, son posibles distintas
-combinaciones de bloques @code{\header}, según los distintos tipos de
-publicaciones musicales.  Por ejemplo, si la publicación contiene
-varias piezas del mismo autor, un bloque @code{\header} colocado al
-principio del archivo que especifique el título del libro y el autor,
-con bloques @code{\header} en cada bloque @code{\score} que
-especifique la @code{piece} y/o el @code{opus} sería lo más adecuado,
-como aquí:
+combinaciones de bloques @code{\header}, según los distintos
+tipos de publicaciones musicales.  Por ejemplo, si la publicación
+contiene varias piezas del mismo autor, un bloque @code{\header}
+colocado al principio del archivo que especifique el título del
+libro y el autor, con bloques @code{\header} en cada bloque
+@code{\score} que especifique la @code{piece} y/o el @code{opus}
+sería lo más adecuado, como aquí:
 
 @lilypond[papersize=a5,quote,verbatim,noragged-right]
 \header {
@@ -714,10 +734,10 @@ como aquí:
 }
 @end lilypond
 
-Son posibles disposiciones más complejas.  Por ejemplo, los campos de
-texto extraídos del bloque @code{\header} de un libro se pueden
-imprimir en todos los títulos de partitura, con ciertos campos
-sobreescritos y otros suprimidos manualmente:
+Son posibles disposiciones más complejas.  Por ejemplo, los
+campos de texto extraídos del bloque @code{\header} de un libro
+se pueden imprimir en todos los títulos de partitura, con ciertos
+campos sobreescritos y otros suprimidos manualmente:
 
 @lilypond[papersize=a5,quote,verbatim,noragged-right]
 \book {
@@ -727,7 +747,7 @@ sobreescritos y otros suprimidos manualmente:
   \header {
     title = "DAS WOHLTEMPERIRTE CLAVIER"
     subtitle = "TEIL I"
-    % Do not display the tagline for this book
+    % Do not display the default LilyPond footer for this book
     tagline = ##f
   }
   \markup { \vspace #1 }
@@ -770,7 +790,7 @@ Referencia de la notación:
 @unnumberedsubsubsec Presentación predeterminada de los títulos de partes de libro y partitura
 @translationof Default layout of bookpart and score titles
 
-Este ejemplo muestra todas las variables de @code{\header}:
+Este ejemplo muestra todas las variables impresas de @code{\header}:
 
 @c KEEP LY
 @lilypond[papersize=a6landscape,quote,verbatim,noragged-right]
@@ -790,8 +810,8 @@ Este ejemplo muestra todas las variables de @code{\header}:
     meter = "Meter (metro)"
     arranger = "Arranger (arreglista)"
       % Los siguientes campos están centrados en la parte inferior
-    tagline = "la tagline o línea de etiqueta va al final de la úitlma página"
-    copyright = "el copyright va al final de la primera página"
+    tagline = "La tagline o línea de etiqueta va al final de la última página"
+    copyright = "El copyright va al final de la primera página"
   }
   \score {
     { s1 }
@@ -828,20 +848,22 @@ Observe que
 El nombre de instrumento se repite en todas las páginas.
 
 @item
-Solamente @code{piece} (la pieza) y @code{opus} se imprimen en una
-@code{\score} cuando la variable de papel @code{print-all-headers} se
-establece a @code{##f} (el valor predeterminado).
+Solamente @code{piece} (la pieza) y @code{opus} se imprimen en
+una @code{\score} cuando la variable de papel
+@code{print-all-headers} se establece a @code{##f} (el valor
+predeterminado).
 
 @item
 @c Is the bit about \null markups true? -mp
-Los campos de texto que se dejan sin establecer dentro de un bloque
-@code{\header} se sustituyen por elementos de marcado nulos
-@code{\null} de manera que no ocupen espacio innecesariamente.
+Los campos de texto que se dejan sin establecer dentro de un
+bloque @code{\header} se sustituyen por elementos de marcado
+nulos @code{\null} de manera que no ocupen espacio
+innecesariamente.
 
 @item
-Los ajustes predeterminados para @code{scoreTitleMarkup} sitúan los
-campos de texto @code{piece} y @code{opus} en extremos opuestos de la
-misma línea.
+Los ajustes predeterminados para @code{scoreTitleMarkup} sitúan
+los campos de texto @code{piece} y @code{opus} en extremos
+opuestos de la misma línea.
 
 @end itemize
 
@@ -857,10 +879,11 @@ título de libro, inicie el bloque @code{\book} con algún material
 de marcado o con una instrucción @code{\pageBreak}.
 
 Utilice la variable @code{breakbefore} dentro de un bloque
-@code{\header} que está propiamente dentro de un bloque @code{\score}
-para hacer que los títulos del bloque @code{\header} del nivel
-superior aparezcan ocupando toda la primera página, empezando la
-música (definida en el bloque @code{\score}) en la página siguiente.
+@code{\header} que está propiamente dentro de un bloque
+@code{\score} para hacer que los títulos del bloque
+@code{\header} del nivel superior aparezcan ocupando toda la
+primera página, empezando la música (definida en el bloque
+@code{\score}) en la página siguiente.
 
 @c KEEP LY
 @lilypond[papersize=c7landscape,verbatim,noragged-right]
@@ -896,10 +919,10 @@ Archivos de inicio:
 @unnumberedsubsubsec Disposición predeterminada de las cabeceras y pies de página
 @translationof Default layout of headers and footers
 
-Las @emph{cabeceras} y los @emph{pies} de página son líneas de texto
-que aparecen en la parte más alta y en la más baja de las páginas
-separadas del texto principal de un libro.  Se controlan mediante las
-siguientes variables de @code{\paper}:
+Las @emph{cabeceras} y los @emph{pies} de página son líneas de
+texto que aparecen en la parte más alta y en la más baja de las
+páginas separadas del texto principal de un libro.  Se controlan
+mediante las siguientes variables de @code{\paper}:
 
 @itemize
 @item @code{oddHeaderMarkup} (marcado de cabecera impar)
@@ -908,25 +931,25 @@ siguientes variables de @code{\paper}:
 @item @code{evenFooterMarkup} (marcado de pie par)
 @end itemize
 
-Estas variables de marcado sólo pueden acceder a los campos de texto
-extraídos de bloques @code{\header} del nivel superior (que se aplican
-a todas las partituras del libro) y se definen en el archivo
-@file{ly/titling-init.ly}.  De forma predeterminada:
+Estas variables de marcado sólo pueden acceder a los campos de
+texto extraídos de bloques @code{\header} del nivel superior (que
+se aplican a todas las partituras del libro) y se definen en el
+archivo @file{ly/titling-init.ly}.  De forma predeterminada:
 
 @itemize
 
 @item
-los números de página se sitúan automáticamente en el extremo superior
-izquierdo (si es par) o superior derecho (si es impar), a partir de la
-segunda página.
+los números de página se sitúan automáticamente en el extremo
+superior izquierdo (si es par) o superior derecho (si es impar),
+a partir de la segunda página.
 
 @item
 el campo de texto @code{instrument} se sitúa en el centro en cada
 página, a partir de la segunda página.
 
 @item
-el texto de @code{copyright} se centra en la parte baja de la primera
-página.
+el texto de @code{copyright} se centra en la parte baja de la
+primera página.
 
 @item
 la línea @code{tagline} se centra al final de la última página, y
@@ -934,8 +957,9 @@ debajo del texto de @code{copyright} si sólo hay una página.
 
 @end itemize
 
-La línea de etiqueta tagline predeterminada se puede cambiar añadiendo un campo
-@code{tagline} en el bloque @code{\header} del nivel superior.
+La línea predeterminada de pie de página de LilyPond se puede
+cambiar añadiendo un campo @code{tagline} en el bloque
+@code{\header} del nivel superior.
 
 @lilypond[papersize=a8landscape,verbatim]
 \book {
@@ -950,8 +974,8 @@ La línea de etiqueta tagline predeterminada se puede cambiar añadiendo un camp
 }
 @end lilypond
 
-Para eliminar la línea @code{tagline}, establezca su valor a
-@code{##f}.
+Para eliminar la línea de pie de página predeterminada de
+LilyPond, establezca el valor de @code{tagline} a @code{##f}.
 
 
 @node Títulos encabezamientos y pies de página personalizados
@@ -972,9 +996,9 @@ Para eliminar la línea @code{tagline}, establezca su valor a
 @unnumberedsubsubsec Formateo personalizado del texto de los bloques de título
 @translationof Custom text formatting for titles
 
-Se pueden usar instrucciones @code{\markup} estándar para personalizar
-el texto de cualquier cabecera, pie o título dentro del bloque
-@code{\header}.
+Se pueden usar instrucciones @code{\markup} estándar para
+personalizar el texto de cualquier cabecera, pie o título dentro
+del bloque @code{\header}.
 
 @lilypond[quote,verbatim,noragged-right]
 \score {
@@ -1000,11 +1024,11 @@ Referencia de la notación:
 @funindex bookTitleMarkup
 @funindex scoreTitleMarkup
 
-Las instrucciones @code{\markup} dentro del bloque @code{\header} son
-útiles para dar un formato simple al texto, pero no permiten un
-control preciso sobre la colocación de los títulos.  Para personalizar
-la colocación de los campos de texto, cambie una o las dos variables de
-@code{\paper} siguientes:
+Las instrucciones @code{\markup} dentro del bloque @code{\header}
+son útiles para dar un formato simple al texto, pero no permiten
+un control preciso sobre la colocación de los títulos.  Para
+personalizar la colocación de los campos de texto, cambie una o
+las dos variables de @code{\paper} siguientes:
 
 @itemize
 @item @code{bookTitleMarkup} (marcado de título del libro)
@@ -1012,12 +1036,12 @@ la colocación de los campos de texto, cambie una o las dos variables de
 @end itemize
 
 La colocación de los títulos cuando se utilizan los valores
-predeterminados de estas variables de @code{\markup} se muestra en los
-ejemplos de
+predeterminados de estas variables de @code{\markup} se muestra
+en los ejemplos de
 @ref{Presentación predeterminada de los títulos de partes de libro y partitura}.
 
-Los ajustes predeterminados para @code{scoreTitleMarkup} tal y como
-están definidos en el archivo @file{ly/titling-init.ly} son:
+Los ajustes predeterminados para @code{scoreTitleMarkup} tal y
+como están definidos en el archivo @file{ly/titling-init.ly} son:
 
 @example
 scoreTitleMarkup = \markup @{ \column @{
@@ -1043,9 +1067,9 @@ opuestos de la misma línea:
 }
 @end lilypond
 
-Este ejemplo redefine @code{scoreTitleMarkup} de manera que el campo
-de texto @code{piece} aparece centrado y en un tipo de letra grande y
-en negrita.
+Este ejemplo redefine @code{scoreTitleMarkup} de manera que el
+campo de texto @code{piece} aparece centrado y en un tipo de
+letra grande y en negrita.
 
 @lilypond[papersize=a5,quote,verbatim,noragged-right]
 \book {
@@ -1070,21 +1094,21 @@ en negrita.
 }
 @end lilypond
 
-Los campos de texto que normalmente no son efectivos
-dentro de los bloques @code{\header} de una partitura
-se pueden imprimir el la zona del Título de la partitura
-si se coloca @code{print-all-headers} dentro del bloque @code{\paper}.
-Una desventaja de la
-utilización de este método es que los campos de texto que están
-orientados específicamente para la zona del título de parte de libro
-han de suprimirse manualmente en cada uno de los bloques
-@code{\score}.  Véase @ref{Explicación de los títulos}.
+Los campos de texto que normalmente no son efectivos dentro de
+los bloques @code{\header} de una partitura se pueden imprimir el
+la zona del Título de la partitura si se coloca
+@code{print-all-headers} dentro del bloque @code{\paper}.  Una
+desventaja de la utilización de este método es que los campos de
+texto que están orientados específicamente para la zona del
+título de parte de libro han de suprimirse manualmente en cada
+uno de los bloques @code{\score}.  Véase @ref{Explicación de los
+títulos}.
 
 Para evitarlo, añada el campo de texto deseado a la definición de
-@code{scoreTitleMarkup}.  En el ejemplo siguiente, el campo de texto
-@code{composer} (asociado normalmente con @code{bookTitleMarkup}) se
-añade a @code{scoreTitleMarkup}, permitiendo que cada partitura
-muestre un compositor diferente:
+@code{scoreTitleMarkup}.  En el ejemplo siguiente, el campo de
+texto @code{composer} (asociado normalmente con
+@code{bookTitleMarkup}) se añade a @code{scoreTitleMarkup},
+permitiendo que cada partitura muestre un compositor diferente:
 
 @lilypond[papersize=a5,quote,verbatim,noragged-right]
 \book {
@@ -1116,8 +1140,9 @@ muestre un compositor diferente:
 }
 @end lilypond
 
-También podemos crear nuestros propios campos de texto personalizados,
-y referirnos a ellos en la definición del elemento de marcado.
+También podemos crear nuestros propios campos de texto
+personalizados, y referirnos a ellos en la definición del
+elemento de marcado.
 
 @lilypond[papersize=a5,quote,verbatim,noragged-right]
 \book {
@@ -1162,11 +1187,12 @@ Referencia de la notación:
 @c can make-header and make-footer be removed from
 @c paper-defaults-init.ly? -mp
 
-Las instrucciones @code{\markup} dentro del bloque @code{\header} son
-de utilidad para dar formato al texto de una manera sencilla, pero no
-permiten un control preciso sobre la colocación de las cabeceras y los
-pies de página.  Para personalizar la colocación de los campos de
-texto, use una o más de las siguientes variables de @code{\paper}:
+Las instrucciones @code{\markup} dentro del bloque @code{\header}
+son de utilidad para dar formato al texto de una manera sencilla,
+pero no permiten un control preciso sobre la colocación de las
+cabeceras y los pies de página.  Para personalizar la colocación
+de los campos de texto, use una o más de las siguientes variables
+de @code{\paper}:
 
 @itemize
 @item @code{oddHeaderMarkup} (marcado de encabezamiento impar)
@@ -1179,10 +1205,10 @@ texto, use una o más de las siguientes variables de @code{\paper}:
 @cindex on-the-fly
 @funindex \on-the-fly
 
-La instrucción de marcado @code{\on-the-fly} se puede utilizar para
-añadir elementos de forma condicional al texto de encabezamiento y pie
-de página definido dentro del bloque @code{\paper}, usando la sintaxis
-siguiente:
+La instrucción de marcado @code{\on-the-fly} se puede utilizar
+para añadir elementos de forma condicional al texto de
+encabezamiento y pie de página definido dentro del bloque
+@code{\paper}, usando la sintaxis siguiente:
 
 @example
 @code{variable} = @code{\markup} @{
@@ -1192,11 +1218,11 @@ siguiente:
 @}
 @end example
 
-El @var{procedimiento} se llama cada vez que se evalúa la instrucción
-@code{\markup} en que ésta aparece.  El @var{procedimiento} debería
-comprobar si se cumple una condición determinada e interpretar (es
-decir: imprimir) el argumento @var{marcado} si, y sólo si, la
-condición es verdadera.
+El @var{procedimiento} se llama cada vez que se evalúa la
+instrucción @code{\markup} en que ésta aparece.  El
+@var{procedimiento} debería comprobar si se cumple una condición
+determinada e interpretar (es decir: imprimir) el argumento
+@var{marcado} si, y sólo si, la condición es verdadera.
 
 Se proveen un cierto número de procedimientos ya hechos para la
 comprobación de diversas condiciones:
@@ -1220,13 +1246,14 @@ comprobación de diversas condiciones:
 @end multitable
 @end quotation
 
-El ejemplo siguiente centra los números de página en la parte baja de
-las páginas.  En primer lugar, los ajustes predeterminados para
-@code{oddHeaderMarkup} y @code{evenHeaderMarkup} se eliminan
-definiéndolos como un marcado @emph{nulo}.  Después de esto, se
-redefine @code{oddFooterMarkup} con el número de página centrado.
-Finalmente, @code{evenFooterMarkup} recibe la misma disposición
-definiéndola como @code{\oddFooterMarkup}:
+El ejemplo siguiente centra los números de página en la parte
+baja de las páginas.  En primer lugar, los ajustes
+predeterminados para @code{oddHeaderMarkup} y
+@code{evenHeaderMarkup} se eliminan definiéndolos como un marcado
+@emph{nulo}.  Después de esto, se redefine @code{oddFooterMarkup}
+con el número de página centrado.  Finalmente,
+@code{evenFooterMarkup} recibe la misma disposición definiéndola
+como @code{\oddFooterMarkup}:
 
 @lilypond[papersize=a8,quote,verbatim,noragged-right]
 \book {
@@ -1249,8 +1276,8 @@ definiéndola como @code{\oddFooterMarkup}:
 }
 @end lilypond
 
-Se pueden combinar varias condiciones de @code{\on-the-fly} con un
-operador @q{and}, por ejemplo:
+Se pueden combinar varias condiciones de @code{\on-the-fly} con
+un operador @q{and}, por ejemplo:
 
 @example
   @code{\on-the-fly \first-page}
@@ -1268,6 +1295,52 @@ Referencia de la notación:
 Archivos instalados:
 @file{../ly/titling-init.ly}.
 
+@node Creación de metadatos de PDF
+@subsection Creación de metadatos de PDF
+@translationof Creating PDF metadata
+
+@cindex metadatos de PDF
+
+Además de mostrarse en la salida impresa, las variables de
+encabezamiento de @code{\header} se usan para establecer los
+metadatos de PDF (la información que muestran los lectores de PDF
+como @code{propiedades} del archivo).  Por ejemplo, si se
+establece la propiedad @code{title} del bloque @code{header} como
+@q{Sinfonía núm. 1}, el documento PDF llevará también este
+título.
+
+@example
+  @code{\header@{}
+    @code{title = "Sinfonía núm. 1"}
+  @code{@}}
+@end example
+
+Si quiere fijar el título de la salida impresa con un texto pero
+quiere que la propiedad de título del PDF tenga un texto
+diferente, puede usar @code{pdftitle} como se muestra a
+continuación.
+
+@example
+  @code{\header@{}
+    @code{title = "Sinfonía núm. 1"}
+    @code{pdftitle = "Sinfonía núm. 1 de Beethoven"}
+  @code{@}}
+@end example
+
+Todas las variables @code{title}, @code{subject},
+@code{keywords}, @code{subtitle}, @code{composer},
+@code{arranger}, @code{poet}, @code{author} y @code{copyright}
+establecen propiedades del PDF y pueden hacerse preceder de
+@q{pdf} para fijar una propiedad del archivo PDF a un valor
+distinto del de la salida impresa.
+
+La propiedad de PDF @code{Creator} se fija automáticamente a
+@q{LilyPond} más la versión actual de LilyPond, y las variables
+@code{CreationDate} y @code{ModDate} se fijan a la fecha y hora
+actuales.  Se puede sobreescribir @code{ModDate} mediante el
+establecimiento de un valor para la variable de cabecera
+@code{moddate} (o @code{pdfmoddate}) a una cadena de fecha de PDF
+válida.
 
 @node Crear notas al pie
 @subsection Crear notas al pie
@@ -1291,16 +1364,17 @@ Se pueden crear dos tipos de notas al pie: automáticas y manuales.
 
 @subsubsubheading Panorámica de las notas al pie
 
-Las notas al pie dentro de expresiones musicales caen dentro de dos
-categorías:
+Las notas al pie dentro de expresiones musicales caen dentro de
+dos categorías:
 
 @table @emph
 @item Notas al pie basadas en eventos
-Se adjuntan a un evento en particular.  Son ejemplos de tales eventos
-las notas sueltas, las articulaciones (como indicaciones de digitación,
-acentos, indicaciones dinámicas) y los post-eventos (como las ligaduras de expresión
-y las barras de corchea manuales).  La forma general de las notas
-al pie basadas en eventos es como sigue:
+Se adjuntan a un evento en particular.  Son ejemplos de tales
+eventos las notas sueltas, las articulaciones (como indicaciones
+de digitación, acentos, indicaciones dinámicas) y los
+post-eventos (como las ligaduras de expresión y las barras de
+corchea manuales).  La forma general de las notas al pie basadas
+en eventos es como sigue:
 
 @example
 [@var{dirección}] \footnote [@var{marca}] @var{desplazamiento} @var{texto-de-la-nota} @var{música}
@@ -1308,13 +1382,13 @@ al pie basadas en eventos es como sigue:
 
 @item Notas al pie basadas en tiempo
 Se ligan a un punto temporal determinado, dentro de un contexto
-musical.  Algunas instrucciones como @code{\time} y @code{\clef} en
-realidad no usan eventos para crear objetos como la indicación de
-compás y la clave.  Un acorde tampoco crea un evento por sí mismo: su
-plica o corchete se crea al final de un paso de tiempo (nominalmente,
-a través de uno de los eventos de nota que contiene).  Una nota al pie
-basada en tiempo permite anotar tales objetos de presentación sin
-referirse a ningún evento.
+musical.  Algunas instrucciones como @code{\time} y @code{\clef}
+en realidad no usan eventos para crear objetos como la indicación
+de compás y la clave.  Un acorde tampoco crea un evento por sí
+mismo: su plica o corchete se crea al final de un paso de tiempo
+(nominalmente, a través de uno de los eventos de nota que
+contiene).  Una nota al pie basada en tiempo permite anotar tales
+objetos de presentación sin referirse a ningún evento.
 
 Una nota al pie basada en tiempo permite que tales objetos de
 presentación se puedan anotar sin hacer referencia a un evento.
@@ -1331,42 +1405,45 @@ Los elementos para las dos formas son como sigue:
 @table @var
 
 @item dirección
-Si (y sólo si) el @code{\footnote} se está aplicando a un post-evento
-o articulación, debe ir precedida de un indicador de dirección
-(@code{-, _, ^}) con el objeto de adjuntar la @var{música} (con una
-marca de nota al pie) a la nota o silencio precedente.
+Si (y sólo si) el @code{\footnote} se está aplicando a un
+post-evento o articulación, debe ir precedida de un indicador de
+dirección (@code{-, _, ^}) con el objeto de adjuntar la
+@var{música} (con una marca de nota al pie) a la nota o silencio
+precedente.
 
 @item marca
-es un elemento de marcado o cadena de caracteres que especifica la
-marca de nota al pie que se usa para marcar tanto el punto de
+es un elemento de marcado o cadena de caracteres que especifica
+la marca de nota al pie que se usa para marcar tanto el punto de
 referencia como la propia nota al pie en la parte inferior de la
-página.  Se puede omitir (o, de forma equivalente, sustituirse por
-@code{\default}) en cuyo caso se genera un número secuencialmente de
-forma automática.  Tales secuencias numéricas se reinician en cada
-página que contiene una nota al pie.
+página.  Se puede omitir (o, de forma equivalente, sustituirse
+por @code{\default}) en cuyo caso se genera un número
+secuencialmente de forma automática.  Tales secuencias numéricas
+se reinician en cada página que contiene una nota al pie.
 
 @item desplazamiento
-es una pareja de números tal como @samp{#(2 . 1)} que especifica los
-desplazamientos en X y en Y en unidades de espacios de pentagrama a
-partir del límite del objeto en que se desea situar la marca.  Los
-valores de desplazamiento positivos se toman a partir del borde
-superior derecho, los valores negativos a partir del borde inferior
-izquierdo y cero implica que la marca se centra sobre el borde.
+es una pareja de números tal como @samp{#(2 . 1)} que especifica
+los desplazamientos en X y en Y en unidades de espacios de
+pentagrama a partir del límite del objeto en que se desea situar
+la marca.  Los valores de desplazamiento positivos se toman a
+partir del borde superior derecho, los valores negativos a partir
+del borde inferior izquierdo y cero implica que la marca se
+centra sobre el borde.
 
 @item Contexto
 es el contexto en que se crea el grob que recibe la nota al pie.
 Se puede omitir si el grob está en un contexto del nivel inferior,
-p.ej un contexto @code{Voice}.
+p. ej. un contexto @code{Voice}.
 
 @item Nombre-del-Grob
 especifica un tipo de grob que marcar (como @samp{Flag} para el
-corchete).  Si se da, la nota al pie no se adjunta a una expresión
-musical en particular, sino a todos los grobs del tipo
+corchete).  Si se da, la nota al pie no se adjunta a una
+expresión musical en particular, sino a todos los grobs del tipo
 especificado que ocurren en dicho momento de tiempo musical.
 
 @item texto-de-la-nota
-es el elemento de marccado o cadena de caracteres que especifica el
-texto de la nota al pie que utilizar en la parte baja de la página.
+es el elemento de marcado o cadena de caracteres que especifica
+el texto de la nota al pie que utilizar en la parte baja de la
+página.
 
 @item música
 es el evento musical, post-evento o articulación que se
@@ -1399,11 +1476,11 @@ sintaxis siguiente:
 }
 @end lilypond
 
-No es posible marcar un acrode @emph{completo} con una nota al pie
-basada en evento: un acorde, incluso aquel que contiene una sola
-nota, no produce un verdadero evento por sí mismo.  Sin embargo,
-las notas individuales que están @emph{dentro} del acorde sí se
-pueden marcar:
+No es posible marcar un acorde @emph{completo} con una nota al
+pie basada en evento: un acorde, incluso aquel que contiene una
+sola nota, no produce un verdadero evento por sí mismo.  Sin
+embargo, las notas individuales que están @emph{dentro} del
+acorde sí se pueden marcar:
 
 @c KEEP LY
 @lilypond[quote,verbatim,papersize=a8landscape]
@@ -1419,11 +1496,11 @@ pueden marcar:
 
 Si se desea que la nota al pie se adjunte a un post-evento o
 articulación, la instrucción @code{\footnote} @emph{debe} ir
-precedida por un indicador de dirección, @code{-, _, ^}, y seguida
-por el post-evento o articulación que se desea anotar como
-argumento @var{música}.  En esta forma, la @code{\footnote} se
-puede considerar como una simple copia de su último argumento con
-una marca de nota al pie adjunta.  La sintaxis es:
+precedida por un indicador de dirección, @code{-, _, ^}, y
+seguida por el post-evento o articulación que se desea anotar
+como argumento @var{música}.  En esta forma, la @code{\footnote}
+se puede considerar como una simple copia de su último argumento
+con una marca de nota al pie adjunta.  La sintaxis es:
 
 @example
 @var{dirección} \footnote [@var{marca}] @var{desplazamiento} @var{texto-de-la-nota} @var{música}
@@ -1451,8 +1528,8 @@ Si el objeto de presentación que recibe la nota al pie está
 causado @emph{indirectamente} por un evento (como un objeto
 @code{Accidental}, alteración, o @code{Stem}, plica, causados por
 un evento @code{NoteHead}, cabeza de nota), el nombre del grob
-@var{GrobName} del objeto de presentación es necesario después del
-texto de la nota al pie, en lugar de @var{música}:
+@var{GrobName} del objeto de presentación es necesario después
+del texto de la nota al pie, en lugar de @var{música}:
 
 @c KEEP LY
 @lilypond[quote,verbatim,papersize=a8landscape]
@@ -1490,22 +1567,22 @@ Una nota dentro de un acorde puede recibir una nota al pie
 individual, basada en evento.  El único grob causado directamente
 por una nota de un acorde es @samp{NoteHead}, por lo que la
 instrucción de nota al pie basada en evento @emph{solamente} es
-apta para añadir una nota al pie a la @samp{NoteHead} dentro de un
-acorde.  Todos los demás grobs de notas de acorde están causados
-indirectamente. La propia instrucción @code{\footnote} no ofrece
-ninguna sintaxis para especificar al mismo tiempo un tipo concreto
-de grob @emph{y también} un evento concreto al que adjuntar la
-nota.  Sin embargo, se puede usat una instrucción @code{\footnote}
-basada en tiempo para especificar el tipo de grob, y luego añadir
-la instrucción @code{\single} como prefijo, con el objeto de que
-se aplique solamente al evento siguiente:
+apta para añadir una nota al pie a la @samp{NoteHead} dentro de
+un acorde.  Todos los demás grobs de notas de acorde están
+causados indirectamente. La propia instrucción @code{\footnote}
+no ofrece ninguna sintaxis para especificar al mismo tiempo un
+tipo concreto de grob @emph{y también} un evento concreto al que
+adjuntar la nota.  Sin embargo, se puede usar una instrucción
+@code{\footnote} basada en tiempo para especificar el tipo de
+grob, y luego añadir la instrucción @code{\single} como prefijo,
+con el objeto de que se aplique solamente al evento siguiente:
 
 @c KEEP LY
 @lilypond[quote,verbatim,papersize=a8landscape]
 \book {
   \header { tagline = ##f }
   \relative c'' {
-    < \footnote #'(1 . -2) "An A" a
+    < \footnote #'(1 . -2) "Un La" a
       \single \footnote #'(-1 . -1) "Un sostenido" Accidental
       cis
       \single \footnote #'(0.5 . 0.5) "Un bemol" Accidental
@@ -1515,28 +1592,29 @@ se aplique solamente al evento siguiente:
 }
 @end lilypond
 
-@warning {Cuando las notas al pie se adjuntan a varios elementos musicales que
-están dentro del mismo momento musical, como ocurre en el ejemplo
-anterior, las notas al pie se numeran desde los elementos más
-altos a los más bajos tal y como aparecen en la salida impresa, no
-en el orden en que se escriben en el flujo de entrada.}
+@warning{Cuando las notas al pie se adjuntan a varios elementos musicales
+que están dentro del mismo momento musical, como ocurre en el
+ejemplo anterior, las notas al pie se numeran desde los elementos
+más altos a los más bajos tal y como aparecen en la salida
+impresa, no en el orden en que se escriben en el flujo de
+entrada.}
 
 Los objetos de presentación como las claves y las armaduras de
 cambio de tonalidad están, más bien, causadas por propiedades que
 cambian, y no por eventos.  Otros, como las líneas divisorias y
 los números de compás, son una consecuencia directa del paso del
 tiempo.  Por esta razón, las notas al pie sobre tales objetos
-tienen que basarse en su tiempo musical.  Las notas al pie basadas
-en tiempo so preferibles también cuando se marcan cosas como las
-plicas y las barras de corchea en @emph{acordes}: dado que estas
-funcionalidades de cada acorde individual están asignadas
-normalmente a @emph{un solo} evento dentro del acorde, sería
-imprudente descansar en una elección particular.
-
-En las notas al pie basadas en tiempo, siempre se debe especificar
-explícitamente el objeto de presentación en cuestión, y si el grob
-se crea dentro de un contexto distinto al de nivel más bajo, debe
-especificarse el contexto apropiado.
+tienen que basarse en su tiempo musical.  Las notas al pie
+basadas en tiempo so preferibles también cuando se marcan cosas
+como las plicas y las barras de corchea en @emph{acordes}: dado
+que estas funcionalidades de cada acorde individual están
+asignadas normalmente a @emph{un solo} evento dentro del acorde,
+sería imprudente descansar en una elección particular.
+
+En las notas al pie basadas en tiempo, siempre se debe
+especificar explícitamente el objeto de presentación en cuestión,
+y si el grob se crea dentro de un contexto distinto al de nivel
+más bajo, debe especificarse el contexto apropiado.
 
 @c KEEP LY
 @lilypond[quote,verbatim,papersize=a8landscape]
@@ -1589,19 +1667,19 @@ Se muestran más ejemplos de marcas personalizadas en
 @cindex notas al pie en texto independiente
 
 Se utilizan dentro de un elemento de marcado fuera de cualquier
-expresión musical.  No se traza una líne hasta el punto de referencia:
-la marca simplemente sigue al elemento de marcado que se referencia.
-Se pueden insertar las marcas automáticamente, en cuyo caso son
-numéricas.  De forma alternativa, se pueden aportar manualmente marcas
-personalizadas.
+expresión musical.  No se traza una línea hasta el punto de
+referencia: la marca simplemente sigue al elemento de marcado que
+se referencia.  Se pueden insertar las marcas automáticamente, en
+cuyo caso son numéricas.  De forma alternativa, se pueden aportar
+manualmente marcas personalizadas.
 
-Las notas al pie para texto independiente con marcas automáticas y
-personalizadas se crean de distintas formas.
+Las notas al pie para texto independiente con marcas automáticas
+personalizadas se crean de distintas formas.
 
 @subsubsubheading Notas al pie en texto independiente con marcas automáticas
 
-La sintaxis de una nota al pue sobre texto independiente con marcas
-automáticas es
+La sintaxis de una nota al pie sobre texto independiente con
+marcas automáticas es
 
 @example
 \markup @{ @dots{} \auto-footnote @var{texto} @var{nota} @dots{} @}
@@ -1612,11 +1690,13 @@ Los elementos son:
 @table @var
 
 @item texto
-es el elemento de marcado o cadena de caracteres que se desea anotar.
+es el elemento de marcado o cadena de caracteres que se desea
+anotar.
 
 @item nota
-es el elemento de marcado o cadena de caracteres que especifica el
-texto de la nota al pie que utilizar en la parte baja de la página.
+es el elemento de marcado o cadena de caracteres que especifica
+el texto de la nota al pie que utilizar en la parte baja de la
+página.
 
 @end table
 
@@ -1640,8 +1720,8 @@ Por ejemplo:
 
 @subsubsubheading Notas al pie sobre texto independiente con marcas personalizadas
 
-La sintaxis de una nota al pie sobre texto independiente con marcas
-personalizadas es
+La sintaxis de una nota al pie sobre texto independiente con
+marcas personalizadas es
 
 @example
 \markup @{ @dots{} \footnote @var{marca} @var{nota} @dots{} @}
@@ -1652,15 +1732,15 @@ Los elementos son:
 @table @var
 
 @item marca
-es un elemento de marcado o cadena de caracteres que especifica la
-marca que se usa para señalar el punto de referencia.  Observe que
-esta marca @emph{no} se inserta automáticamente antes de la propia
-nota al pie.
+es un elemento de marcado o cadena de caracteres que especifica
+la marca que se usa para señalar el punto de referencia.  Observe
+que esta marca @emph{no} se inserta automáticamente antes de la
+propia nota al pie.
 
 @item nota
-es el elemento de marcado o cadena de caracteres que especifica el
-texto de la nota que aparece en la parte baja de la página, precedida
-por la @var{marca} especificada.
+es el elemento de marcado o cadena de caracteres que especifica
+el texto de la nota que aparece en la parte baja de la página,
+precedida por la @var{marca} especificada.
 
 @end table
 
@@ -1718,7 +1798,7 @@ Manual de aprendizaje:
 Referencia de la notación:
 @ref{ASCII aliases},
 @ref{Globos de ayuda},
-@ref{List of special characters},
+@ref{Lista de caracteres especiales},
 @ref{Indicaciones de texto},
 @ref{Guiones de texto},
 @ref{Unicode}.
@@ -1730,8 +1810,8 @@ Referencia de funcionamiento interno:
 @rinternals{Footnote_engraver}.
 
 @knownissues
-Varias notas al pie en la misma página solo pueden ir apiladas unas
-sobre otras; no se pueden imprimir en la misma línea.
+Varias notas al pie en la misma página solo pueden ir apiladas
+unas sobre otras; no se pueden imprimir en la misma línea.
 
 Las notas al pie no se pueden adjuntar a @code{MultiMeasureRests}
 (silencios multicompás), a barras de corchea automáticas ni a la
@@ -1747,11 +1827,11 @@ anotación.
 @translationof Reference to page numbers
 
 Un lugar determinado de una partitura puede señalizarse usando la
-instrucción @code{\label} (etiqueta), ya sea en el nivel superior o
-dentro de la música.  Podemos referirnos a esta etiqueta más tarde
-dentro de un elemento de marcado, para obtener el número de la página
-en la que se sitúa el punto señalizado, usando la instrucción de
-marcado @code{\page-ref}.
+instrucción @code{\label} (etiqueta), ya sea en el nivel superior
+o dentro de la música.  Podemos referirnos a esta etiqueta más
+tarde dentro de un elemento de marcado, para obtener el número de
+la página en la que se sitúa el punto señalizado, usando la
+instrucción de marcado @code{\page-ref}.
 
 @c KEEP LY
 @lilypond[verbatim,papersize=a8landscape]
@@ -1772,20 +1852,20 @@ marcado @code{\page-ref}.
 
 La instrucción de marcado @code{\page-ref} toma tres argumentos:
 @enumerate
-@item la etiqueta, un símbolo de scheme, p.ej. @code{#'firstScore};
+@item la etiqueta, un símbolo de Scheme, p.ej. @code{#'firstScore};
 @item un elemento de marcado que se usará como medidor para estimar las dimensiones del marcado;
 @item un elemento de marcado que se utilizará en sustitución del número de página si la etiqueta es desconocida.
 @end enumerate
 
-El motivo de que se necesite un medidor es que en el momento en que se
-están interpretando los marcados, los saltos de página aún no se han
-producido y por tanto los números de página no se conocen todavía.
-Para sortear este inconveniente, la interpretación real del marcado se
-retrasa hasta un momento posterior; sin embargo, las dimensiones del
-marcado se tienen que conocer de antemano, así que se usa el medidor
-para decidir estas dimensiones.  Si el libro tiene entre 10 y 99
-páginas, el medidor puede ser "00", es decir, un número de dos
-dígitos.
+El motivo de que se necesite un medidor es que en el momento en
+que se están interpretando los marcados, los saltos de página aún
+no se han producido y por tanto los números de página no se
+conocen todavía.  Para sortear este inconveniente, la
+interpretación real del marcado se retrasa hasta un momento
+posterior; sin embargo, las dimensiones del marcado se tienen que
+conocer de antemano, así que se usa el medidor para decidir estas
+dimensiones.  Si el libro tiene entre 10 y 99 páginas, el medidor
+puede ser "00", es decir, un número de dos dígitos.
 
 @predefined
 @funindex \label
@@ -1799,11 +1879,12 @@ dígitos.
 @subsection Índice general
 @translationof Table of contents
 
-Se puede insertar un índice general o tabla de contenidos utilizando
-la instrucción @code{\markuplist \table-of-contents}.  Los elementos
-que deben aparecer en la tabla de contenidos se introducen con la
-instrucción @code{\tocItem}, que se puede usar en el nivel más alto de
-la jerarquía del código, o dentro de una expresión musical.
+Se puede insertar un índice general o tabla de contenidos
+utilizando la instrucción @code{\markuplist \table-of-contents}.
+Los elementos que deben aparecer en la tabla de contenidos se
+introducen con la instrucción @code{\tocItem}, que se puede usar
+en el nivel más alto de la jerarquía del código, o dentro de una
+expresión musical.
 
 @verbatim
 \markuplist \table-of-contents
@@ -1827,40 +1908,94 @@ la jerarquía del código, o dentro de una expresión musical.
 @end verbatim
 
 Los elementos de marcado que se usan para dar formato al índice
-general se encuentran definidos dentro del bloque @code{\paper}.  Los
-elementos predeterminados son @code{tocTitleMarkup}, para dar formato
-al título de la tabla, y @code{tocItemMarkup}, para aplicar formato a
-los elementos del índice, que consisten en el título del elemento y el
-número de página.  Estas variables se pueden cambiar por parte del
-usuario:
+general o tabla de contenidos se encuentran definidos dentro del
+bloque @code{\paper}.  Hay dos elementos de marcado
+@q{predefinidos} disponibles:
+
+@itemize
+
+@item
+@code{tocTitleMarkup}
+
+@noindent
+Utilizado para dar formato al título del índice general.
+
+@verbatim
+tocTitleMarkup = \markup \huge \column {
+  \fill-line { \null "Índice general" \null }
+  \null
+}
+@end verbatim
+
+@item
+@code{tocItemMarkup}
+
+@noindent
+Usado para dar formato a los elementos del índice general.
+
+@verbatim
+tocItemMarkup = \markup \fill-line {
+  \fromproperty #'toc:text \fromproperty #'toc:page
+}
+@end verbatim
+
+@end itemize
+
+@noindent
+Ambas variables pueden modificarse.
+
+He aquí un ejemplo que modifica el título del índice general para
+que aparezca en francés:
 
 @verbatim
 \paper {
-  %% Traducir el título del índice al español:
   tocTitleMarkup = \markup \huge \column {
-    \fill-line { \null "Índice general" \null }
+    \fill-line { \null "Table des matières" \null }
     \hspace #1
   }
-  %% usar una fuente mayor
-  tocItemMarkup = \markup \large \fill-line {
-    \fromproperty #'toc:text \fromproperty #'toc:page
-  }
+@end verbatim
+
+A continuación aparece un ejemplo que modifica el tamaño de
+fuente tipográfica de los elementos del índice general:
+
+@verbatim
+tocItemMarkup = \markup \large \fill-line {
+  \fromproperty #'toc:text \fromproperty #'toc:page
 }
 @end verbatim
 
-Observe la forma en que nos referimos al texto y al número de página
-del elemento de índice, dentro de la definición @code{tocItemMarkup}.
+Observe la forma en que nos referimos al texto y al número de
+página del elemento de índice, dentro de la definición
+@code{tocItemMarkup}.
 
-También se pueden definir nuevas instrucciones y elementos de
-marcado para crear índices generales más elaborados:
-@itemize
-@item en primer lugar, defina una variable de marcado nueva dentro del bloque @code{\paper}
-@item luego defina una función de música cuyo propósito es añadir un elemento al índice general
-utilizando esta variable de marcado del bloque @code{\paper}.
-@end itemize
+La instrucción @code{\tocItemWithDotsMarkup} se puede incluir
+dentro de @code{tocItemMarkup} para llenar la línea con puntos
+entre un elemento del índice general y su número de página
+correspondiente:
 
-En el ejemplo siguiente se define un estilo nuevo para introducir los
-nombres de los actos de una ópera en el índice general:
+@lilypond[verbatim,line-width=10.0\cm]
+\header { tagline = ##f }
+\paper {
+  tocItemMarkup = \tocItemWithDotsMarkup
+}
+
+\book {
+  \markuplist \table-of-contents
+  \tocItem \markup { Allegro }
+  \tocItem \markup { Largo }
+  \markup \null
+}
+@end lilypond
+
+Las instrucciones predefinidas con sus propios marcados pueden
+definirse también para que construyan un índice general más
+complejo.  En el ejemplo siguiente se define un estilo nuevo para
+introducir los nombres de los actos de una ópera en el índice
+general:
+
+@noindent
+Una nueva variable de marcado (llamada @code{tocActMarkup}) se
+define en el bloque @code{\paper}:
 
 @verbatim
 \paper {
@@ -1870,12 +2005,23 @@ nombres de los actos de una ópera en el índice general:
     \hspace #1
   }
 }
+@end verbatim
+
+@noindent
+A continuación se crea una función musical personalizada
+(@code{tocAct}), que usa la nueva definición de marcado
+@code{tocActMarkup}.
 
+@verbatim
 tocAct =
-#(define-music-function (text) (markup?)
-   (add-toc-item! 'tocActMarkup text))
+  #(define-music-function (text) (markup?)
+     (add-toc-item! 'tocActMarkup text))
 @end verbatim
 
+@noindent
+Un archivo de entrada de LilyPond que use estas definiciones
+personalizadas tendría el aspecto siguiente:
+
 @lilypond[line-width=10.0\cm]
 \header { tagline = ##f }
 \paper {
@@ -1902,21 +2048,19 @@ tocAct =
 }
 @end lilypond
 
-Se pueden añadir puntos de relleno entre un elemento y su número de página:
 
-@lilypond[verbatim,line-width=10.0\cm]
-\header { tagline = ##f }
-\paper {
-  tocItemMarkup = \tocItemWithDotsMarkup
-}
+He aquí un ejemplo de la instrucción @code{\fill-with-pattern}
+usada dentro del contexto de un índice general:
 
-\book {
-  \markuplist \table-of-contents
-  \tocItem \markup { Allegro }
-  \tocItem \markup { Largo }
-  \markup \null
+@verbatim
+\paper {
+  tocItemMarkup = \markup { \fill-line {
+    \override #'(line-width . 70)
+    \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page
+    }
+  }
 }
-@end lilypond
+@end verbatim
 
 @seealso
 Archivos de inicio:
@@ -1955,26 +2099,29 @@ referirse a otro archivo, utilice
 \include "otroarchivo.ly"
 @end example
 
-La línea @code{\include "otroarchivo.ly"} equivale a pegar todo el
-contenido de @file{otroarchivo.ly} en el archivo actual en el lugar en
-que aparece el @code{\include}.  Por ejemplo, en un proyecto grande
-podríamos querer archivos distintos para cada parte instrumental y
-crear un archivo de @qq{partitura completa} que reúne los archivos
-individuales de los instrumentos.  Normalmente el archivo incluido
-define un cierto número de variables que a partir de entonces quedan
-disponibles para poderlas utilizar en el archivo de la partitura
-completa.  En los archivos incluidos se pueden marcar las secciones
-etiquetadas para ayudar a hacerlas utilizables en distintos lugares de
-la partitura, véase @ref{Distintas ediciones a partir de una misma fuente}.
-
-Los archivos que están en el directorio de trabajo actual se pueden
-referenciar simplemente especificando el nombre después de la
-instrucción @code{\include}.  Los archivos en otros lugares se pueden
-incluir proporcionando una referencia de ruta completa o una ruta
-relativa (pero utilice la barra inclinada normal del UNIX, /, no la
-barra invertida de DOS/Windows, \, como separador de directorio).  Por
-ejemplo, si @file{material.ly} está situado un directorio por encima
-del directorio de trabajo actual, utilice
+La línea @code{\include "otroarchivo.ly"} equivale a pegar todo
+el contenido de @file{otroarchivo.ly} en el archivo actual en el
+lugar en que aparece el @code{\include}.  Por ejemplo, en un
+proyecto grande podríamos querer archivos distintos para cada
+parte instrumental y crear un archivo de @qq{partitura completa}
+que reúne los archivos individuales de los instrumentos.
+Normalmente el archivo incluido define un cierto número de
+variables que a partir de entonces quedan disponibles para
+poderlas utilizar en el archivo de la partitura completa.  En los
+archivos incluidos se pueden marcar las secciones etiquetadas
+para ayudar a hacerlas utilizables en distintos lugares de la
+partitura, véase @ref{Distintas ediciones a partir de una misma
+fuente}.
+
+Los archivos que están en el directorio de trabajo actual se
+pueden referenciar simplemente especificando el nombre después de
+la instrucción @code{\include}.  Los archivos en otros lugares se
+pueden incluir proporcionando una referencia de ruta completa o
+una ruta relativa (pero utilice la barra inclinada normal del
+UNIX, /, no la barra invertida de DOS/Windows, \, como separador
+de directorio).  Por ejemplo, si @file{material.ly} está situado
+un directorio por encima del directorio de trabajo actual,
+utilice
 
 @example
 \include "../material.ly"
@@ -1992,32 +2139,35 @@ directorio actual, use
 @end example
 
 Los archivos de inclusión también pueden contener enunciados
-@code{\include} a su vez.  De forma predeterminada, estos enunciados
-@code{\include} de segundo nivel no se interpretan hasta que se
-incorporan al archivo principal, por lo que los nombres de archivo que
-especifican deben ser relativos al directorio que contiene el archivo
-principal, no al directorio que contiene el archivo incluido.  Sin
-embargo, este comportamiento se puede modificar globalmente pasando la
-opción @option{-drelative-includes} en la línea de órdenes (o mediante
+@code{\include} a su vez.  De forma predeterminada, estos
+enunciados @code{\include} de segundo nivel no se interpretan
+hasta que se incorporan al archivo principal, por lo que los
+nombres de archivo que especifican deben ser relativos al
+directorio que contiene el archivo principal, no al directorio
+que contiene el archivo incluido.  Sin embargo, este
+comportamiento se puede modificar globalmente pasando la opción
+@option{-drelative-includes} en la línea de órdenes (o mediante
 la adición de @code{#(ly:set-option 'relative-includes #t)} al
 principio del archivo principal de entrada).
 
-Cuando @code{relative-includes} está establecido al valor @code{#t},
-la ruta de cada instrucción @code{\include} se considera relativa al
-archivo que contiene dicha instrucción.  Este comportamiento es el
-recomendado y se convertirá en el comportamiento predeterminado en una
-versión futura de lilypond.
-
-Tanto los archivos relativos al directorio principal como los archivos
-relativos a algún otro directorio se pueden @code{\include}ar mediante
-el establecimiento de @code{relative-includes} al valor @code{#t} o a
-@code{#f} en los lugares apropiados dentro de los archivos.  Por
-ejemplo, si se ha creado una biblioteca genérica, libA, que a su vez
-utiliza sub-archivos que se @code{\include}an por medio del archivo de
+Cuando @code{relative-includes} está establecido al valor
+@code{#t}, la ruta de cada instrucción @code{\include} se
+considera relativa al archivo que contiene dicha instrucción.
+Este comportamiento es el recomendado y se convertirá en el
+comportamiento predeterminado en una versión futura de lilypond.
+
+Tanto los archivos relativos al directorio principal como los
+archivos relativos a algún otro directorio se pueden
+@code{\include}ar mediante el establecimiento de
+@code{relative-includes} al valor @code{#t} o a @code{#f} en los
+lugares apropiados dentro de los archivos.  Por ejemplo, si se ha
+creado una biblioteca genérica, libA, que a su vez utiliza
+sub-archivos que se @code{\include}an por medio del archivo de
 entrada de dicha biblioteca, esas instrucciones @code{\include}
 tendrán que venir precedidas por @code{#(ly:set-option
-#relative-includes #t)} de manera que se interpreten correctamente al
-construir el archivo de entrada @code{.ly} principal, de esta forma:
+#relative-includes #t)} de manera que se interpreten
+correctamente al construir el archivo de entrada @code{.ly}
+principal, de esta forma:
 
 @example
 libA/
@@ -2049,13 +2199,14 @@ completa, simplemente con
 Se pueden usar estructuras de archivo más complejas instando los
 cambios en los lugares adecuados.
 
-También se pueden incluir archivos de un directorio que está en una
-ruta de búsqueda especificada como opción al invocar a LilyPond desde
-la línea de órdenes.  Los archivos incluidos se especifican usando
-solamente su nombre de archivo.  Por ejemplo, para compilar mediante
-este método un archivo @file{principal.ly} que incluye archivos
-situados en un subdirectorio llamado @file{partes}, cambie al
-directorio que contiene @file{principal.ly} e introduzca
+También se pueden incluir archivos de un directorio que está en
+una ruta de búsqueda especificada como opción al invocar a
+LilyPond desde la línea de órdenes.  Los archivos incluidos se
+especifican usando solamente su nombre de archivo.  Por ejemplo,
+para compilar mediante este método un archivo @file{principal.ly}
+que incluye archivos situados en un subdirectorio llamado
+@file{partes}, cambie al directorio que contiene
+@file{principal.ly} e introduzca
 
 @example
 lilypond --include=partes principal.ly
@@ -2069,27 +2220,27 @@ y en @file{principal.ly} escriba
 @dots{} etc.
 @end example
 
-Los archivos que se incluyen en muchas partituras se pueden poner en
-el directorio de LilyPond @file{../ly} (la localización de este
-directorio depende de la instalación: véase
-@rlearning{Otras fuentes de información}).  Estos archivos se pueden
-incluir sencillamente por su nombre en un enunciado @code{\include}.
-De esta forma se incluyen los archivos dependientes del idioma como
+Los archivos que se incluyen en muchas partituras se pueden poner
+en el directorio de LilyPond @file{../ly} (la localización de
+este directorio depende de la instalación: véase @rlearning{Otras
+fuentes de información}).  Estos archivos se pueden incluir
+sencillamente por su nombre en un enunciado @code{\include}.  De
+esta forma se incluyen los archivos dependientes del idioma como
 @file{espanol.ly}.
 
-LilyPond incluye de forma predeterminada ciertos archivos cuando se
-inicia el programa.  Estas inclusiones no son visibles para el
+LilyPond incluye de forma predeterminada ciertos archivos cuando
+se inicia el programa.  Estas inclusiones no son visibles para el
 usuario, pero los archivos se pueden identificar ejecutando
-@code{lilypond --verbose} desde la línea de órdenes.  Esto presentará
-una lista de rutas y archivos que utiliza LilyPond, junto a muchas
-otras indicaciones.  De forma alternativa, pueden verse explicaciones
-sobre los archivos más importantes de este conjunto en
-@rlearning{Otras fuentes de información}.  Estos archivos se pueden
-editar, pero los cambios realizados sobre ellos se perderán al
-instalar una nueva versión de LilyPond.
-
-Pueden verse ejemplos sencillos sobre el uso de @code{\include} en
-@rlearning{Partituras y particellas}.
+@code{lilypond --verbose} desde la línea de órdenes.  Esto
+presentará una lista de rutas y archivos que utiliza LilyPond,
+junto a muchas otras indicaciones.  De forma alternativa, pueden
+verse explicaciones sobre los archivos más importantes de este
+conjunto en @rlearning{Otras fuentes de información}.  Estos
+archivos se pueden editar, pero los cambios realizados sobre
+ellos se perderán al instalar una nueva versión de LilyPond.
+
+Pueden verse ejemplos sencillos sobre el uso de @code{\include}
+en @rlearning{Partituras y particellas}.
 
 @seealso
 Manual de aprendizaje:
@@ -2098,25 +2249,25 @@ Manual de aprendizaje:
 
 @knownissues
 Si un archivo incluido recibe un nombre igual al de uno de los
-archivos de instalación de LilyPond, el archivo que tiene prioridad es
-el de los archivos de instalación de LilyPond.
+archivos de instalación de LilyPond, el archivo que tiene
+prioridad es el de los archivos de instalación de LilyPond.
 
 
 @node Distintas ediciones a partir de una misma fuente
 @subsection Distintas ediciones a partir de una misma fuente
 @translationof Different editions from one source
 
-Se pueden usar varios métodos para generar la producción de distintas
-versiones de una partitura a partir de la misma fuente musical.  Las
-variables son quizá el más útil para combinar secciones extensas de
-música y/o anotaciones.  Las etiquetas son más útiles para seleccionar
-una sección de entre varias secciones de música alternativas, más
-cortas, y se pueden usar también para dividir piezas de música en
-distintos trozos.
+Se pueden usar varios métodos para generar la producción de
+distintas versiones de una partitura a partir de la misma fuente
+musical.  Las variables son quizá el más útil para combinar
+secciones extensas de música y/o anotaciones.  Las etiquetas son
+más útiles para seleccionar una sección de entre varias secciones
+de música alternativas, más cortas, y se pueden usar también para
+dividir piezas de música en distintos trozos.
 
-Cualquiera que sea el método utilizado, la separación de la notación
-de la estructura de la partitura hará que sea más fácil cambiar la
-estructura dejando intacta la notación.
+Cualquiera que sea el método utilizado, la separación de la
+notación de la estructura de la partitura hará que sea más fácil
+cambiar la estructura dejando intacta la notación.
 
 @menu
 * Uso de las variables::
@@ -2132,12 +2283,13 @@ estructura dejando intacta la notación.
 
 Si las secciones de la música se definen dentro de variables, se
 pueden reutilizar en distintas partes de la partitura, véase
-@rlearning{Organizar las piezas mediante variables}.  Por ejemplo, una
-partitura vocal @notation{a cappella} con frecuencia incluye una
-reducción de piano de las partes para ensayar que es idéntica a la
-música vocal, por lo que ésta sólo se tiene que escribir una vez.  Se
-puede combinar sobre un solo pentagrama la música de dos variables,
-véase @ref{Combinación automática de las partes}.  He aquí un ejemplo:
+@rlearning{Organizar las piezas mediante variables}.  Por
+ejemplo, una partitura vocal @notation{a cappella} con frecuencia
+incluye una reducción de piano de las partes para ensayar que es
+idéntica a la música vocal, por lo que ésta sólo se tiene que
+escribir una vez.  Se puede combinar sobre un solo pentagrama la
+música de dos variables, véase @ref{Combinación automática de las
+partes}.  He aquí un ejemplo:
 
 @lilypond[verbatim,quote]
 sopranoMusic = \relative { a'4 b c b8( a) }
@@ -2178,12 +2330,13 @@ allLyrics = \lyricmode {King of glo -- ry }
 >>
 @end lilypond
 
-Se pueden producir partituras distintas que presenten sólo las partes
-vocales o sólo la parte de piano, cambiando solamente los enunciados
-estructurales, sin modificar la notación musical.
+Se pueden producir partituras distintas que presenten sólo las
+partes vocales o sólo la parte de piano, cambiando solamente los
+enunciados estructurales, sin modificar la notación musical.
 
-Para partituras extensas, las definiciones de variable se pueden poner
-en archivos separados que se incluyen más tarde, véase @ref{Inclusión de archivos de LilyPond}.
+Para partituras extensas, las definiciones de variable se pueden
+poner en archivos separados que se incluyen más tarde, véase
+@ref{Inclusión de archivos de LilyPond}.
 
 
 @node Uso de etiquetas
@@ -2193,19 +2346,16 @@ en archivos separados que se incluyen más tarde, véase @ref{Inclusión de arch
 @funindex \tag
 @funindex \keepWithTag
 @funindex \removeWithTag
-@funindex \pushToTag
-@funindex \appendToTag
 @cindex etiqueta
 @cindex mantener música etiquetada
 @cindex quitar música etiquetada
-@cindex división en música etiquetada
 
-La instrucción @code{\tag #'@var{parteA}} marca una expresión musical
-con el nombre @var{parteA}.  Las expresiones etiquetadas de esta
-manera se pueden seleccionar o filtrar más tarde por su nombre, usando
-bien @code{\keepWithTag #'@var{nombre}} o bien @code{\removeWithTag
-#'@var{nombre}}.  El resultado de la aplicación de estos filtros a la
-música etiquetada es como sigue:
+La instrucción @code{\tag #'@var{parteA}} marca una expresión
+musical con el nombre @var{parteA}.  Las expresiones etiquetadas
+de esta manera se pueden seleccionar o filtrar más tarde por su
+nombre, usando bien @code{\keepWithTag #'@var{nombre}} o bien
+@code{\removeWithTag #'@var{nombre}}.  El resultado de la
+aplicación de estos filtros a la música etiquetada es como sigue:
 
 @multitable @columnfractions .5 .5
 @headitem Filtro
@@ -2217,8 +2367,8 @@ o de @code{\keepWithTag #'(@var{nombre1} @var{nombre2}@dots{})}
 el nombre o nombres de etiqueta dados; se excluye la música
 etiquetada con cualquier otro nombre de etiqueta.
 @item
-Música etiquetada precedida de 
-@code{\removeWithTag #'@var{nombre}} o 
+Música etiquetada precedida de
+@code{\removeWithTag #'@var{nombre}} o
 @code{\removeWithTag #'(@var{nombre1} @var{nombre2}@dots{})}
 @tab
 Se incluye la música no etiquetada y la música que no está
@@ -2230,13 +2380,22 @@ Música etiquetada no precedida de @code{\keepWithTag} ni de
 @tab Se incluye toda la música etiquetada y no etiquetada.
 @end multitable
 
-Los argumentos de las instrucciones @code{\tag}, @code{\keepWithTag} y
-@code{\removeWithTag} deben ser un símbolo (como @code{#'partitura} o
-@code{#'parte}), seguido de una expresión musical.
-
-En el ejemplo siguiente vemos dos versiones de una pieza musical, una
-que muestra trinos con la notación usual y otra con los trinos
-expandidos explícitamente:
+Los argumentos de las instrucciones @code{\tag},
+@code{\keepWithTag} y @code{\removeWithTag} deben ser un símbolo
+o lista de símbolos (como @code{#'score} o @code{#'(violinI
+violinII}), seguida de una expresión musical.  Si @emph{y solo
+si} los símbolos son identificadores de LilyPond válidos
+(caracteres alfabéticos solamente, sin números, guiones bajos ni
+guiones normales) que no puedan confundirse con notas, la porción
+@code{#'} se puede omitir y, como abreviatura, una lista de
+símbolos puede usar el separador de punto, es decir: @code{\tag
+#'(violinI violinII)} se puede escribir como @code{\tag
+violinI.violinII}.  Lo mismo vale para @code{\keepWithTag} y
+@code{\removeWithTag}.
+
+En el ejemplo siguiente vemos dos versiones de una pieza musical,
+una que muestra trinos con la notación usual y otra con los
+trinos expandidos explícitamente:
 
 @lilypond[verbatim,quote]
 music = \relative {
@@ -2291,8 +2450,9 @@ c1-\tag #'finger ^4
 c1-\tag #'warn ^"¡Ojo!"
 @end example
 
-Se pueden poner varias etiquetas sobre expresiones con varias entradas
-de @code{\tag}, o combinando varias etiquetas en una lista de símbolos:
+Se pueden poner varias etiquetas sobre expresiones con varias
+entradas de @code{\tag}, o combinando varias etiquetas en una
+lista de símbolos:
 
 @lilypond[quote,verbatim]
 music = \relative c'' {
@@ -2332,17 +2492,52 @@ expresión musical producen la eliminación de @emph{todas} las
 secciones etiquetadas, porque el primer filtro quita todas las
 secciones etiquetadas excepto la que se nombra, y el segundo
 filtro elimina incluso esa sección etiquetada.  Por lo general,
-querrá usar una sola instrucción @code{\keepWithTag} con una lista
-de varias etiquetas: de esta forma solamente se suprimirán las
-secciones etiquetadas que no aparezcan en @emph{ninguna} de las
+querrá usar una sola instrucción @code{\keepWithTag} con una
+lista de varias etiquetas: de esta forma solamente se suprimirán
+las secciones etiquetadas que no aparezcan en @emph{ninguna} de
+las etiquetas.
+
+@cindex grupos de etiquetas
+@funindex \tagGroup
+Aunque @code{\keepWithTag} es útil para el manejo de @emph{un
+solo} conjunto de alternativas, la eliminación de música
+etiquetada con otras etiquetas @emph{no relacionadas} es
+problemática si se utilizan para más de un propósito. Por tal
+motivo pueden declararse @q{grupos de etiquetas} relacionadas:
+
+@example
+\tagGroup #'(violinI violinII viola cello)
+@end example
+
+declara las etiquetas respectivas como pertenecientes a un grupo
+de etiquetas.
+
+@example
+\keepWithTag #'violinI @dots{}
+@end example
+
+se ocupará solamente de las etiquetas del grupo @code{violinI}:
+cualquier elemento de la música incluida que lleve una o más
+etiquetas de este conjunto pero @emph{no} con la etiqueta
+@code{violinI} resultará suprimida.
+
+Para cualquier instrucción @code{\keepWithTag}, solamente son
+visibles las etiquetas de los grupos de aquellas etiquetas dadas
+en la propia instrucción.
+
+Las etiquetas no pueden ser miembros de más de un grupo de
 etiquetas.
 
+@funindex \pushToTag
+@funindex \appendToTag
+@cindex dividir en música etiquetada
+
 A veces podemos desear dividir la música en un determinado lugar
 dentro de una expresión musical existente.  Podemos usar
 @code{\pushToTag} y @code{\appendToTag} para añadir material
 delante o al final de los @code{elements} de una construcción
 musical existente.  No toda construcción musical tiene la parte
-@code{elements}, pero las músicas secuenciaes y simultáneas son
+@code{elements}, pero las músicas secuenciales y simultáneas son
 dos apuestas seguras:
 
 @lilypond[verbatim,quote]
@@ -2358,10 +2553,9 @@ test = { \tag #'here { \tag #'here <<c''>> } }
 }
 @end lilypond
 
-Las dos instrucciones admiten una etiqueta, el material que dividir en
-cada ocurrencia de la etiqueta, y la expresión etiquetada.  Las
-instrucciones aseguran que se copia todo lo que cambian, de forma que
-el código original @code{\test} retiene su significado.
+Las dos instrucciones admiten una etiqueta, el material que
+dividir en cada ocurrencia de la etiqueta, y la expresión
+etiquetada.
 
 @seealso
 Manual de aprendizaje:
@@ -2376,11 +2570,12 @@ Al llamar a @code{\relative} sobre una expresión musical obtenida
 mediante el filtrado de música con las instrucciones
 @code{\keepWithTag} o @code{\removeWithTag}, podría ocurrir que
 cambiaran las relaciones de octava, dado que solo se tendrán en
-cuenta las alturas de las notas que efectivamente permanecen en la
-expresión filtrada.  La aplicación de @code{\relative} en primer
-lugar, antes de @code{\keepWithTag} o de @code{\removeWithTag},
-evita este peligro porque en este caso @code{\relative} actúa
-sobre todas las notas tal y como se introducen.
+cuenta las alturas de las notas que efectivamente permanecen en
+la expresión filtrada.  La aplicación de @code{\relative} en
+primer lugar, antes de @code{\keepWithTag} o de
+@code{\removeWithTag}, evita este peligro porque en este caso
+@code{\relative} actúa sobre todas las notas tal y como se
+introducen.
 
 
 @node Uso de ajustes globales
@@ -2389,15 +2584,16 @@ sobre todas las notas tal y como se introducen.
 
 @cindex include-settings
 
-Se pueden incluir ajustes globales a partir de un archivo distinto:
+Se pueden incluir ajustes globales a partir de un archivo
+distinto:
 
 @example
 lilypond -dinclude-settings=MIS_AJUSTES.ly MI_PARTITURA.ly
 @end example
 
-En archivos diferentes se pueden almacenar  grupos de ajustes como
+En archivos diferentes se pueden almacenar grupos de ajustes como
 el tamaño de la página o las fuentes tipográficas.  Ello permite
-hacer diferentes ediciones de la mism a partitura así como aplicar
+hacer diferentes ediciones de la misma partitura así como aplicar
 ajustes estándar a muchas partituras, simplemente por medio de la
 especificación del archivo de ajustes adecuado.
 
@@ -2434,38 +2630,41 @@ Referencia de la notación:
 @cindex UTF-8
 
 LilyPond usa el conjunto de caracteres definido por el consorcio
-Unicode y la norma ISO/IEC 10646.  Define un nombre único y un código
-para los conjuntos de caracteres que se utilizan en prácticamente
-todos los idiomas modernos y también en muchos otros.  Unicode se
-puede implementar utilizando varios esquemas de codificación
-distintos.  LilyPond usa la codificación UTF-8 (UTF son las siglas de
-@emph{Unicode Transformation Format}, o formato de transformación de
-Unicode) que representa todos los caracteres comunes de Latin en un
-solo byte, y representa otros caracteres usando un formato de longitud
+Unicode y la norma ISO/IEC 10646.  Define un nombre único y un
+código para los conjuntos de caracteres que se utilizan en
+prácticamente todos los idiomas modernos y también en muchos
+otros.  Unicode se puede implementar utilizando varios esquemas
+de codificación distintos.  LilyPond usa la codificación UTF-8
+(UTF son las siglas de @emph{Unicode Transformation Format}, o
+formato de transformación de Unicode) que representa todos los
+caracteres comunes de la codificación Latin en un solo byte, y
+representa otros caracteres usando un formato de longitud
 variable de hasta cuatro bytes.
 
-El aspecto visual real de los caracteres viene determinado por los
-glifos que se definen en las fuentes tipográficas concretas que se
-tengan disponibles: una fuente tipográfica define la asignación de un
-subconjunto de los códigos de Unicode a glifos.  LilyPond usa la
-biblioteca Pango para representar y disponer tipográficamente textos
-multilingües.
+El aspecto visual real de los caracteres viene determinado por
+los glifos que se definen en las fuentes tipográficas concretas
+que se tengan disponibles: una fuente tipográfica define la
+asignación de un subconjunto de los códigos de Unicode a glifos.
+LilyPond usa la biblioteca Pango para representar y disponer
+tipográficamente textos multilingües.
 
 LilyPond no realiza ninguna conversión en la codificación de la
 entrada.  Esto significa que cualquier text, ya sea el título, la
-letra de la canción o una instrucción musical que contenga caracteres
-distintos a los del conjunto ASCII, se deben codificar en UTF-8.  La
-forma más fácil de escribir dicho texto es utilizar un editor
-preparado para Unicode y guardar el archivo con la codificación UTF-8.
-Casi todos los editores modernos populares contemplan el UTF-8, por
-ejemplo lo hacen vim, Emacs, jEdit, y GEdit.  Todos los sistemas MS
-Windows posteriores a NT usan Unicode como codificación de caracteres
-nativa, de manera que incluso el accesorio Bloc de Notas (Notepad)
-puede editar y guardar un archivo en el formato UTF-8.  Una
-alternativa más funcional para Windows es BabelPad.
-
-Si un archivo de entrada que contiene un carácter que no es ASCII, no
-se guarda en el formato UTF-8, se genera el mensaje de error
+letra de la canción o una instrucción musical que contenga
+caracteres distintos a los del conjunto ASCII, se deben codificar
+en UTF-8.  La forma más fácil de escribir dicho texto es utilizar
+un editor preparado para Unicode y guardar el archivo con la
+codificación UTF-8.  Casi todos los editores modernos populares
+contemplan el UTF-8, por ejemplo lo hacen vim, Emacs, jEdit, y
+GEdit.  Todos los sistemas MS Windows posteriores a NT usan
+Unicode como codificación de caracteres nativa, de manera que
+incluso el accesorio Bloc de Notas (Notepad) puede editar y
+guardar un archivo en el formato UTF-8.  Una alternativa más
+funcional para Windows es BabelPad.
+
+Si un archivo de entrada que contiene un carácter que no es
+ASCII, no se guarda en el formato UTF-8, se genera el mensaje de
+error
 
 @example
 FT_Get_Glyph_Name () error: argumento inválido
@@ -2516,33 +2715,34 @@ portuguese = \lyricmode {
 
 @cindex Unicode
 
-Para introducir un carácter aislado para el que se conoce el punto de
-código Unicode pero no está disponible en el editor que se está
-usando, use @code{\char ##xhhhh} o bien @code{\char #dddd} dentro de
-un bloque @code{\markup}, donde @code{hhhh} es el código hexadecimal
-del carácter en cuestión y @code{dddd} es su valor decimal
-correspondiente.  Pueden omitirse los ceros iniciales, pero es
-costumbre indicar los cuatro caracteres en la representación
-hexadecimal (observe que @emph{no} debe utilizarse la codificación
-UTF-8 del punto de código Unicode después de @code{\char}, pues la
-codificación UTF-8 contiene bits adicionales que indican el número de
-octetos).  Hay tablas de códigos Unicode y un índice de nombres de
-caracteres que da el punto de código en hexadecimal para cualquier
-carácter en el portal del Consorcio Unicode,
-@uref{http://www.unicode.org/}.
+Para introducir un carácter aislado para el que se conoce el
+punto de código Unicode pero no está disponible en el editor que
+se está usando, use @code{\char ##xhhhh} o bien @code{\char
+#dddd} dentro de un bloque @code{\markup}, donde @code{hhhh} es
+el código hexadecimal del carácter en cuestión y @code{dddd} es
+su valor decimal correspondiente.  Pueden omitirse los ceros
+iniciales, pero es costumbre indicar los cuatro caracteres en la
+representación hexadecimal (observe que @emph{no} debe utilizarse
+la codificación UTF-8 del punto de código Unicode después de
+@code{\char}, pues la codificación UTF-8 contiene bits
+adicionales que indican el número de octetos).  Hay tablas de
+códigos Unicode y un índice de nombres de caracteres que da el
+punto de código en hexadecimal para cualquier carácter en el
+portal del Consorcio Unicode, @uref{http://www.unicode.org/}.
 
 Por ejemplo, tanto @code{\char ##x03BE} como @code{\char #958}
 insertan el carácter Unicode U+03BE, que tiene el nombre Unicode
 @qq{Letra griega Xi pequeña}.
 
-Se puede escribir de esta forma cualquier punto de código Unicode, y
-si todos los caracteres especiales se escriben en este formato no es
-necesario guardar el archivo de entrada en formato UTF-8.  Por
-supuesto, debe estar instalada y estar disponible para LilyPond una
-fuente tipográfica que contenga codificados todos estos caracteres.
+Se puede escribir de esta forma cualquier punto de código
+Unicode, y si todos los caracteres especiales se escriben en este
+formato no es necesario guardar el archivo de entrada en formato
+UTF-8.  Por supuesto, debe estar instalada y estar disponible
+para LilyPond una fuente tipográfica que contenga codificados
+todos estos caracteres.
 
-El ejemplo siguiente muestra valores hexadecimales Unicode que se usan
-en cuatro lugares: en una llamada de ensayo, como texto de
+El ejemplo siguiente muestra valores hexadecimales Unicode que se
+usan en cuatro lugares: en una llamada de ensayo, como texto de
 articulación, en la letra y como texto independiente bajo la
 partitura:
 
@@ -2596,7 +2796,7 @@ especiales:
 }
 @end lilypond
 
-También podemos hacer nuestros propios alias, ya sea de forma global:
+También podemos hacer nuestros propios alias, ya sea de forma global,
 
 @lilypond[quote,verbatim]
 \paper {
@@ -2633,44 +2833,57 @@ Archivos instalados:
 * Sustituir la tipografía de la notación::
 @end menu
 
+@funindex clip-regions
+@cindex fragmentos de música
+@cindex música, fragmentos
 
 @node Extracción de fragmentos de música
 @subsection Extracción de fragmentos de música
 @translationof Extracting fragments of music
 
-Es posible citar pequeños fragmentos de una partitura grande
-directamente a partir de la salida.  Puede compararse con la
-separación de una pieza de una partitura, recortándola con tijeras.
-
-Esto se hace definiendo los compases que se deben recortar.  Por
-ejemplo, la inclusión de la siguiente definición
+Es posible producir en la salida uno o más fragmentos de una
+partitura mediante la definición de la situación explícita de la
+música que se quiere extraer dentro del bloque @code{\layout} del
+archivo de entrada, utilizando la función @code{clip-regions}, y
+a continuación ejecutando LilyPond con la opción
+@option{-dclip-systems}.
 
-@verbatim
-\layout {
+@example
+\layout @{
   clip-regions
   = #(list
       (cons
        (make-rhythmic-location 5 1 2)
        (make-rhythmic-location 7 3 4)))
-}
-@end verbatim
+@}
+@end example
 
 @noindent
-extrae un fragmento empezando por la mitad del quinto compás y
-finalizando en el séptimo compás.  El significado de @code{5 1 2} es:
-después de una blanca (1/2) en el compás 5, y el de @code{7 3 4}
-después de tres negras del compás 7.
+Este ejemplo extrae un solo fragmento del archivo de entrada
+@emph{comenzando} después de la duración de una blanca en el
+quinto compás (@code{5 1 2}) y @emph{terminando} después de la
+tercera negra del compás séptimo (@code{7 3 4}).
+
+Se pueden extraer fragmentos adicionales añadiendo más pares de
+entradas de @code{make-rhythmic-location} a la lista
+@code{clip-regions} dentro del bloque @code{\layout}.
+
+De forma predeterminada, cada fragmento de música se obtendrá en
+la salida como un archivo @code{EPS} distinto, pero también se
+pueden crear otros formatos como @code{PDF} o @code{PNG} si es
+necesario.  La música extraída se obtiene en la salida como si
+hubiera sido literalmente @q{cortada} de la partitura original
+impresa, de forma que si un fragmento se extiende sobre una o más
+líneas, se genera un archivo de salida distinto por cada línea
+generada.
 
-Se pueden definir más zonas de recorte añadiendo más parejas de
-definición de tiempo rhythmic-location a la lista.
+@seealso
+Referencia de la notación:
+@ref{El bloque layout}.
 
-Para poder utilizar esta funcionalidad, LilyPond se debe invocar con
-la opción @option{-dclip-systems}.  Los recortes aparecen en la salida
-como archivos EPS, y se convierten en PDF y PNG si estos formatos
-también están activados.
+Manual de utilización:
+@rprogram{Utilización desde la línea de órdenes}.
 
-Para ver más información sobre los formatos de salida, consulte
-@rprogram{Invocar a LilyPond}.
 
 
 @node Saltar la música corregida
@@ -2681,11 +2894,11 @@ Para ver más información sobre los formatos de salida, consulte
 @funindex showFirstLength
 @funindex showLastLength
 
-Al escribir o copiar música, normalmente sólo es interesante de ver y
-corregir la música cercana al final (donde estamos añadiendo las
-notas).  Para acelerar este proceso de corrección, es posible saltar
-la composición tipográfica de todos excepto unos pocos de los últimos
-compases.  Esto se consigue poniendo
+Al escribir o copiar música, normalmente sólo es interesante de
+ver y corregir la música cercana al final (donde estamos
+añadiendo las notas).  Para acelerar este proceso de corrección,
+es posible saltar la composición tipográfica de todos excepto
+unos pocos de los últimos compases.  Esto se consigue poniendo
 
 @example
 showLastLength = R1*5
@@ -2693,36 +2906,39 @@ showLastLength = R1*5
 @end example
 
 @noindent
-en nuestro archivo fuente.  Esto hará que se tracen sólo los últimos
-cinco compases (suponiendo un compás de 4/4) de cada una de las
-partituras @code{\score} del archivo de entrada.  Para piezas largas,
-el tipografiado de únicamente una parte pequeña es con frecuencia un
-orden de magnitud más rápido que el de la obra completa.  Si estamos
-trabajando sobre el principio de una partitura que ya hemos
-tipografiado (p.ej., para añadir una parte instrumental nueva),
-también puede ser útil la propiedad @code{showFirstLength}.
+en nuestro archivo fuente.  Esto hará que se tracen sólo los
+últimos cinco compases (suponiendo un compás de 4/4) de cada una
+de las partituras @code{\score} del archivo de entrada.  Para
+piezas largas, el tipografiado de únicamente una parte pequeña es
+con frecuencia un orden de magnitud más rápido que el de la obra
+completa.  Si estamos trabajando sobre el principio de una
+partitura que ya hemos tipografiado (p.ej., para añadir una parte
+instrumental nueva), también puede ser útil la propiedad
+@code{showFirstLength}.
 
 Este mecanismo de pasar por alto partes de un partitura se puede
 controlar con un grano más fino mediante la propiedad
-@code{Score.skipTypesetting}.  Cuando su valor está establecido, no se
-lleva a cabo ningún tipografiado en absoluto.
+@code{Score.skipTypesetting}.  Cuando su valor está establecido,
+no se lleva a cabo ningún tipografiado en absoluto.
 
-Esta propiedad se usa también para controlar la salida al archivo
-MIDI.  Observe que pasa por alto todos los eventos, incluidos el tempo
-y los cambios de instrumento.  Está usted advertido.
+Esta propiedad se usa también para controlar la salida hacia el
+archivo MIDI.  Observe que pasa por alto todos los eventos,
+incluidos el tempo y los cambios de instrumento.  Está usted
+advertido.
 
 @lilypond[quote,ragged-right,verbatim]
-\relative {
-  c''8 d
+\relative c' {
+  c1
   \set Score.skipTypesetting = ##t
-  e8 e e e e e e e
+  \tempo 4 = 80
+  c4 c c c
   \set Score.skipTypesetting = ##f
-  c8 d b bes a g c2
+  d4 d d d
 }
 @end lilypond
 
-En música polifónica, @code{Score.skipTypesetting} afecta a todas las
-voces y pentagramas, ahorrando más tiempo incluso.
+En música polifónica, @code{Score.skipTypesetting} afecta a todas
+las voces y pentagramas, ahorrando más tiempo incluso.
 
 
 @node Formatos de salida alternativos
@@ -2735,20 +2951,21 @@ voces y pentagramas, ahorrando más tiempo incluso.
 @cindex EPS, salida
 @cindex PostScript encapsulado, salida de
 
-Los formatos de salida predeterminados para la partitura impresa son
-el formato de documento portátil (PDF) y PostScript (PS).  Los
-formatos de salida Gráficos de vector escalables (SVG), PostScript
-encapsulado (EPS) y Gráficos de red portátiles (PNG) también están
-disponibles a través de opciones de la línea de órdenes, véase
-@rprogram{Opciones básicas de la línea de órdenes para LilyPond}.
+Los formatos de salida predeterminados para la partitura impresa
+son el formato de documento portátil (PDF) y PostScript (PS).
+Los formatos de salida Gráficos de vector escalables (SVG),
+PostScript encapsulado (EPS) y Gráficos de red portátiles (PNG)
+también están disponibles a través de opciones de la línea de
+órdenes, véase @rprogram{Opciones básicas de la línea de órdenes
+para LilyPond}.
 
 
 @node Sustituir la tipografía de la notación
 @subsection Sustituir la tipografía de la notación
 @translationof Replacing the notation font
 
-Gonville es una alternativa a la tipografía Feta que se utiliza en
-LilyPond y se puede descargar de:
+Gonville es una alternativa a la tipografía Feta que se utiliza
+en LilyPond y se puede descargar de:
 @example
 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
 @end example
@@ -2760,678 +2977,810 @@ fuente Gonville:
 @c       for the font comparison.  -gp
 @sourceimage{Gonville_after,15cm,,}
 
-Aquí hay unos compases de muestra tipografiados en la fuente Feta de
-LilyPond:
+Aquí hay unos compases de muestra tipografiados en la fuente Feta
+de LilyPond:
 
 @sourceimage{Gonville_before,15cm,,}
 
 @subsubheading Instrucciones de instalación para MacOS
 
-Descargue y extraiga el archivo zip. Copie la carpeta @code{lilyfonts}
-a @file{@var{SHARE_DIR}/lilypond/current}; para más información,
-consulte @rlearning{Otras fuentes de información}.  Renombre la carpeta
-@code{fonts} existente a @code{fonts_orig} y la carpeta
-@code{lilyfonts} a @code{fonts}.  Para volver a la fuente Feta,
-invierta el proceso.
+Descargue y extraiga el archivo zip. Copie la carpeta
+@code{lilyfonts} a @file{@var{SHARE_DIR}/lilypond/current}; para
+más información, consulte @rlearning{Otras fuentes de
+información}.  Renombre la carpeta @code{fonts} existente a
+@code{fonts_orig} y la carpeta @code{lilyfonts} a @code{fonts}.
+Para volver a la fuente Feta, invierta el proceso.
 
 @seealso
 Manual de aprendizaje:
 @rlearning{Otras fuentes de información}.
 
 @knownissues
-
 Gonville no se puede usar para tipografiar notación de @q{Música
 Antigua} y es probable que cualquier nuevo glifo en versiones
-posteriores de LilyPond no existan en la familia
-tipográfica Gonville.  Diríjase a la página web del autor para obtener más
+posteriores de LilyPond no existan en la familia tipográfica
+Gonville.  Diríjase a la página web del autor para obtener más
 información sobre éste y otros asuntos, entre ellos el régimen de
 licencias de Gonville.
 
 
-@node Salida MIDI
-@section Salida MIDI
-@translationof MIDI output
+@node Creación de salida MIDI
+@section Creación de salida MIDI
+@translationof Creating MIDI output
 
 @cindex sonido
 @cindex MIDI
 
-El MIDI (Musical Instrument Digital Interface, Interfase Digital para
-Instrumentos Musicales) es un estándar para interconectar y controlar
-instrumentos musicales electrónicos.  Un archivo o secuencia MIDI es
-una serie de notas dentro de un conjunto de pistas.  No es un archivo
-de sonidos reales; se necesita un programa reproductor especial para
-traducir la serie de notas en sonidos de verdad.
-
-Cualquier música se puede convertir a archivos MIDI, de manera que
-podamos escuchar lo que hayamos introducido.  Esto es muy conveniente
-para comprobar la corrección de la música; las octavas equivocadas o
-las alteraciones erróneas se ponen de relieve muy claramente al
-escuchar la salida MIDI.
+LilyPond puede producir archivos que siguen el estándar MIDI
+(Musical Instrument Digital Interface; interfaz digital para
+instrumentos musicales) y permitir así comprobar la música por el
+oído (con la ayuda de alguna aplicación o dispositivo que
+entienda el MIDI).  La escucha de la salida MIDI también puede
+ser de ayuda en la localización de errores tales como notas que
+se han introducido incorrectamente, alteraciones omitidas y otros
+casos por el estilo.
 
-La salida estándar de MIDI es un poco primitiva; de forma opcional, se
-encuentra disponible una salida MIDI mejorada y mucho más realista,
-por medio de @ref{El script Articulate}.
-
-La salida MIDI reserva un canal por cada pentagrama, y reserva
-el canal 10 para la percusión.  Sólo hay 16 canales MIDI por cada
-dispositivo, por lo que si la partitura tiene más de 15 pautas, los
-canales MIDI se reutilizarán.
+Los archivos MIDI no contienen sonido (como los archivos AAC, MP3
+o Vorbis) pero requieren software adicional para producir el
+sonido a partir de ellos.
 
 @menu
-* Crear archivos MIDI::
-* Instrumentos MIDI::
-* ¿Qué sale por el MIDI?::
-* Repeticiones y MIDI::
-* Control de los matices en el MIDI::
-* Percusión en MIDI::
+* Notación contemplada por el MIDI::
+* Notación no contemplada en el MIDI::
+* El bloque MIDI::
+* Control de las dinámicas del MIDI::
+* Uso de los instrumentos MIDI::
+* Uso de las repeticiones con el MIDI::
+* Asignación de canales MIDI::
+* Propiedades de contexto para efectos MIDI::
+* Enriquecimiento de la salida MIDI::
 * El script Articulate::
 @end menu
 
-@node Crear archivos MIDI
-@subsection Crear archivos MIDI
-@translationof Creating MIDI files
+@cindex MIDI, notación contemplada
+
+@node Notación contemplada por el MIDI
+@subsection Notación contemplada por el MIDI
+@translationof Supported notation for MIDI
+
+Se puede usar la notación musical siguiente con las posibilidades
+predeterminadas de LilyPond para producir salida MIDI:
+
+@itemize
+@item Marcas de respiración
+@item Acordes introducidos como nombres de acorde
+@item Crescendos y decrescendos sobre más de una nota.  El volumen se altera de forma lineal entre los dos extremos
+@item Indicadores dinámicos desde @code{ppppp} hasta @code{fffff}, incluyendo @code{mp}, @code{mf} y @code{sf}
+@item Microtonos, pero @emph{no} acordes microtonales.  Se necesita también un reproductor de MIDI capaz de ejecutar eventos de rueda de tono.
+@item Letra de las canciones
+@item Altura de las notas
+@item Ritmo introducido como duraciones de las notas, incluidos los grupos de valoración especial como los tresillos
+@item Articulaciones @q{sencillas}; picado, staccato, acento, marcato y portato
+@item Cambios de tempo introducidos con la función @code{\tempo}
+@item Ligaduras de unión
+@item Trémolos que  @emph{not} se hayan introducido como un valor del tipo @q{@code{:}[@var{número}]}
+@end itemize
+
+También se pueden controlar el panorama, el balance, la expresión
+y los efectos de reverberación y chorus mediante el
+establecimiento de propiedades de contexto, véase
+@ref{Propiedades de contexto para efectos MIDI}.
 
-@cindex MIDI, bloque
-Para crear un MIDI a partir de un archivo de LilyPond, inserte un
-bloque @code{\midi} dentro de un bloque @code{\score};
+Si se combina con el script @file{articulate}, es posible
+producir la salida por el MIDI de los siguientes elementos
+adicionales de notación musical:
+
+@itemize
+@item Appogiaturas (apoyaturas).  Se les da la mitad de la duración de la nota siguiente (sin tener en cuenta los puntillos).  Por ejemplo:
 
 @example
-\score @{
-  @var{@dots{}música@dots{}}
-  \layout @{ @}
-  \midi @{ @}
-@}
+\appoggiatura c8 d2.
 @end example
 
-Si hay @emph{solamente} un bloque @code{\midi} dentro de un
-@code{\score} (es decir, sin ningún bloque @code{\layout}),
-entonces @emph{solamente} se producirá MIDI.  No se produce
-ninguna salida impresa de notación musical.
+@noindent
+El Do toma la duración de una negra.
+
+@item Notas y grupos de adorno (mordentes de una nota, trinos, grupetos circulares, etc.)
+@item Rallentando, accelerando, ritardando y a tempo
+@item Ligaduras de expresión y de fraseo
+@item Tenuto
+@end itemize
+
+@noindent
+Véase @ref{Enriquecimiento de la salida MIDI}.
+
+@cindex MIDI, notación no contemplada
+
+@node Notación no contemplada en el MIDI
+@subsection Notación no contemplada en el MIDI
+@translationof Unsupported notation for MIDI
+
+Los siguientes elementos de notación musical no se pueden hacer
+salir por el MIDI:
+
+@itemize
+@item Articulaciones distintas al picado, staccato, acento, marcato y portato
+@item Crescendos y decrescendos sobre una @emph{sola} nota
+@item Calderón
+@item Bajo cifrado
+@item Glissandos
+@item Caídas y elevaciones
+@item Acordes microtonales
+@item Duraciones introducidas como anotaciones, p.ej. el swing
+@item Cambios de tempo sin @code{\tempo} (p.ej., introducidas como anotaciones)
+@item Trémolos que @emph{se introducen} con la notación de la forma @q{@code{:}[@var{número}]}
+@end itemize
+
+
+@node El bloque MIDI
+@subsection El bloque MIDI
+@translationof The MIDI block
+
+@cindex bloque MIDI
+
+Para crear un archivo de salida MIDI a partir de un archivo de
+entrada de LilyPond, introduzca un bloque @code{\midi}, que puede
+estar vacío, dentro del bloque @code{\score}:
 
 @example
 \score @{
-  @var{@dots{}música@dots{}}
+  @var{@dots{} música @dots{}}
+  \layout @{ @}
   \midi @{ @}
 @}
 @end example
 
-Se traducen correctamente a la salida MIDI la altura y duración de
-las notas, las ligaduras de unión, matices y cambios de tempo. Las
-@q{marcas} dinámicas se traducen a niveles de volumen con una
-@q{fracción fija} del rango de volumen MIDI disponible; Los
-crescendi y decrescendi hacen que el volumen varíe linealmente
-entre sus dos extremos.
+@warning{ Un bloque @code{@bs{}score} que, además de la música,
+contiene solamente un bloque @code{@bs{}midi} (o sea, @emph{sin}
+el bloque @code{@bs{}layout}), solo produce archivos de salida
+MIDI; no se imprime ninguna notación musical.}
 
-Se reflejan en la salida de MIDI todas las indicaciones de
-@code{\tempo}, incluidos todos los cambios de tempo siguientes,
-especificados dentro de la notación musical.
+La extensión predeterminada para los archivos de salida
+(@code{.midi}) se puede cambiar usando la opción
+@code{-dmidi-extension} con la instrucción @code{lilypond}:
 
-Por lo general basta con dejar vacío el bloque @code{\midi}, pero
-puede contener disposiciones distintas de los contextos,
-definiciones de contexto nuevas o código que establezca valores
-para propiedades.  En el ejemplo que aparece a continuación se
-fija el tempo a 72 negras por minuto, pero @emph{solamente} para
-la reproducción de audio a través de MIDI.
+@example
+lilypond -dmidi-extension=mid Archivo.ly
+@end example
+
+Como alternativa, puede añadirse la siguiente expresión de Scheme
+antes del comienzo de uno de los bloques @code{\book},
+@code{\bookpart} o @code{\score}.  Véase @ref{Estructura del archivo}.
 
 @example
-\score @{
-  @var{@dots{}music@dots{}}
-  \midi @{
-    \tempo 4 = 72
-  @}
-@}
+#(ly:set-option 'midi-extension "mid")
 @end example
 
-Observe que @code{\tempo} es en realidad una instrucción para
-establecer valores para propiedades durante la interpretación de
-la música, y en el contexto de las definiciones de salida, como un
-bloque @code{\midi}, se reinterpreta como si fuese una
-modificación de contexto.
+@seealso
+Referencia de la notación:
+@ref{Estructura del archivo}.
+
+Archivos instalados:
+@file{scm/midi.scm}.
 
-@cindex MIDI, definiciones de contexto
+@knownissues
+Están disponibles 15 canales MIDI y un canal adicional (el número
+10) para la percusión.  Los pentagramas se asignan a los canales
+por orden, de forma que una partitura que contenga más de 15
+pentagramas da como resultado que los pentagramas adicionales
+comparten (pero no sobreescriben) el mismo canal MIDI.  Esto
+puede ser problemático si los pentagramas que comparten canal
+tienen establecidas propiedades MIDI, basadas en canal, en mutuo
+conflicto (como distintos instrumentos MIDI).
+
+
+@node Control de las dinámicas del MIDI
+@subsection Control de las dinámicas del MIDI
+@translationof Controlling MIDI dynamics
+
+Es posible controlar el volumen MIDI general, el volumen relativo
+de las indicaciones de matiz dinámico y el volumen relativo de
+los distintos instrumentos.
+
+Las indicaciones matiz dinámico se traducen automáticamente a
+niveles de volumen dentro del rango de volúmenes MIDI disponible
+mientras que los crescendos y decrescendos varían el volumen
+linealmente entre sus dos extremos.  Es posible controlar el
+volumen relativo de las indicaciones de matiz dinámico, y el
+volumen general de los diferentes instrumentos.
+
+@menu
+* Indicaciones de matiz dinámico en el MIDI::
+* Establecimiento del volumen MIDI::
+* Establecimiento de las propiedades del bloque MIDI::
+@end menu
+
+@cindex MIDI, volumen
+@cindex MIDI, ecualización
+@cindex MIDI, matices dinámicos
+@cindex dinámica del MIDI
+
+
+@node Indicaciones de matiz dinámico en el MIDI
+@unnumberedsubsubsec Indicaciones de matiz dinámico en el MIDI
+@translationof Dynamic marks in MIDI
+
+Solo las marcas de dinámica desde @code{ppppp} hasta
+@code{fffff}, incluidos @code{mp}, @code{mf} y @code{sf} tienen
+valores asignados.  Este valor se aplica a continuación al valor
+del rango de volumen MIDI general para obtener el volumen final
+que se incluye en la salida MIDI para esa indicación de matiz
+dinámico en particular.  Las fracciones predeterminadas varían
+desde 0.25 para el @notation{ppppp} hasta 0.95 para el
+@notation{fffff}. El conjunto completo de las indicaciones de
+matiz dinámico pueden verse en el archivo @file{scm/midi.scm}.
+
+
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{creating-custom-dynamics-in-midi-output.ly}
+
+Archivos instalados:
+@file{ly/script-init.ly}
+@file{scm/midi.scm}.
+
+Fragmentos de código:
+@rlsr{MIDI}.
+
+Referencia de funcionamiento interno:
+@rinternals{Dynamic_performer}.
+
+
+@node Establecimiento del volumen MIDI
+@unnumberedsubsubsec Establecimiento del volumen MIDI
+@translationof Setting MIDI volume
+
+Los volúmenes generales mínimo y máximo de las indicaciones de
+matiz dinámico MIDI se controlan estableciendo las propiedades
+@code{midiMinimumVolume} y @code{midiMaximumVolume} en el nivel
+del bloque @code{Score}.  Estas propiedades tienen efecto
+solamente al comienzo de una vos y sobre las indicaciones
+dinámicas.  La fracción que corresponde a cada indicación
+dinámica se modifica con esta fórmula:
+
+@example
+midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracción
+@end example
 
-Las definiciones de contexto siguen la misma sintaxis que las de
-un bloque @code{\layout};
+En el ejemplo siguiente, el rango dinámico del volumen MIDI
+general se limita al intervalo entre @code{0.2} y @code{0.5}.
 
 @example
 \score @{
-  @var{@dots{}música@dots{}}
+  <<
+    \new Staff @{
+      \set Staff.midiInstrument = #"flute"
+      @var{@dots{} music @dots{}}
+    @}
+    \new Staff @{
+      \set Staff.midiInstrument = #"clarinet"
+      @var{@dots{} music @dots{}}
+    @}
+  >>
   \midi @{
     \context @{
-      \Voice
-      \remove "Dynamic_performer"
+      \Score
+      midiMinimumVolume = #0.2
+      midiMaximumVolume = #0.5
     @}
   @}
 @}
 @end example
 
-elimina de la salida MIDI el efecto de los matices dinámicos.  Los
-módulos de traducción para el sonido se llaman @q{performers}
-(intérpretes).
-
-@snippets
-
-@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
-{changing-midi-output-to-one-channel-per-voice.ly}
-
-@knownissues
-
-Algunos sistemas operativos requieren una extensión de archivo
-@emph{específica} para los archivos MIDI.  Si se prefiere una
-extensión distinta, inserte la línea siguiente en el nivel
-superior del archivo de entrada, antes del comienzo de cualquier
-bloque @code{\book}, @code{\bookpart} o @code{\score};
+Se puede obtener una ecualización sencilla de instrumentos MIDI
+estableciendo las propiedades @code{midiMinimumVolume} y
+@code{midiMaximumVolume} dentro del contexto @code{Staff}.
 
 @example
-#(ly:set-option 'midi-extension "mid")
+\score @{
+  \new Staff @{
+    \set Staff.midiInstrument = #"flute"
+    \set Staff.midiMinimumVolume = #0.7
+    \set Staff.midiMaximumVolume = #0.9
+    @var{@dots{} music @dots{}}
+  @}
+  \midi @{ @}
+@}
 @end example
 
-De esta manera quedará establecida la extensión predeterminada
-para los archivos MIDI a @code{.mid}.
-
-De forma alternativa, se puede proporcionar una opción en la línea
-de órdenes de la consola:
+Para partituras con más de un pentagrama y más de un instrumento
+MIDI, se pueden fijar individualmente los volúmenes relativos de
+cada instrumento:
 
 @example
-lilypond -dmidi-extension=mid MiArchivo.ly
+\score @{
+  <<
+    \new Staff @{
+      \set Staff.midiInstrument = #"flute"
+      \set Staff.midiMinimumVolume = #0.7
+      \set Staff.midiMaximumVolume = #0.9
+      @var{@dots{} music @dots{}}
+    @}
+    \new Staff @{
+      \set Staff.midiInstrument = #"clarinet"
+      \set Staff.midiMinimumVolume = #0.3
+      \set Staff.midiMaximumVolume = #0.6
+      @var{@dots{} music @dots{}}
+    @}
+  >>
+  \midi @{ @}
+@}
 @end example
 
-Los cambios del volumen MIDI sólo tienen lugar al principio de la
-nota, por lo que los crescendi y decrescendi no pueden afectar al
-volumen de una sola nota.
+En este ejemplo el volumen del clarinete se reduce de forma
+relativa al volumen de la flauta.
 
-Puede que algunos propgramas reproductores de MIDI no siempre
-manejen correctamente los cambios de tempo en la salida MIDI.
+Si no se establecen estas propiedades de volumen, LilyPond aún
+aplica un @q{pequeño grado} de ecualización a ciertos
+instrumentos.  Véase @file{scm/midi.scm}.
 
-@seealso
 Archivos instalados:
-@file{../ly/performer-init.ly}.
+@file{scm/midi.scm}.
 
-Manual de aprendizaje:
-@rlearning{Otras fuentes de información}.
+@seealso
+Referencia de la notación:
+@ref{Disposición de la partitura}.
 
+Referencia de funcionamiento interno:
+@rinternals{Dynamic_performer}.
 
-@node Instrumentos MIDI
-@subsection Instrumentos MIDI
-@translationof MIDI Instruments
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{replacing-default-midi-instrument-equalization.ly}
 
-@cindex instrumento, nombres de
-@funindex Staff.midiInstrument
+@knownissues
+Los cambios en el volumen del MIDI solamente tienen lugar en el
+comienzo de una nota, por lo que los crescendos y decrescendos no
+afectan al volumen de una sola nota.
 
-El instrumento MIDI que se quiere utilizar se establece fijando la
-propiedad @code{Staff.midiInstrument} al nombre del instrumento.
-El nombre se debe elegir de entre los que están en la lista que
-aparece en @ref{instrumentos MIDI}.
+@node Establecimiento de las propiedades del bloque MIDI
+@unnumberedsubsubsec Establecimiento de las propiedades del bloque MIDI
+@translationof Setting MIDI block properties
 
-@example
-\new Staff @{
-  \set Staff.midiInstrument = #"glockenspiel"
-  @var{@dots{}notas@dots{}}
-@}
-@end example
+El bloque @code{\midi} puede contener distintas disposiciones de
+los contextos, definiciones de contexto nuevas o código que fija
+los valores de ciertas propiedades.
 
 @example
-\new Staff \with @{midiInstrument = #"cello"@} @{
-  @var{@dots{}notas@dots{}}
+\score @{
+  @var{@dots{} music @dots{}}
+  \midi @{
+    \tempo 4 = 72
+  @}
 @}
 @end example
 
-Si el instrumento elegido no coincide exactamente con uno de los
-instrumentos de la lista de instrumentos MIDI, se usará el
-instrumento Piano de Cola (@code{"acoustic grand"}).
-
+Aquí, el tempo se establece a 72 pulsos de negra por minuto.  La
+indicación de tempo dentro del bloque @code{\midi} no aparece en
+la partitura impresa.  Aunque cualquier otra indicación de
+@code{\tempo} que se especifique dentro del bloque @code{\score}
+también se reflejará en la salida MIDI.
 
-@node ¿Qué sale por el MIDI?
-@subsection ¿Qué sale por el MIDI?
-@translationof What goes into the MIDI output?
+Dentro de un bloque @code{\midi}, la instrucción @code{\tempo}
+está estableciendo propiedades durante la interpretación de la
+música y en el contexto de las definiciones de salida; así, se
+interpreta @emph{como si} fuera una modificación de contesto.
 
-@menu
-* Contemplado en el MIDI::
-* No contemplado en el MIDI::
-@end menu
-
-@node Contemplado en el MIDI
-@unnumberedsubsubsec Contemplado en el MIDI
-@translationof Supported in MIDI
-
-@cindex alturas en MIDI
-@cindex MIDI, alturas
-@cindex cuartos de tono en MIDI
-@cindex MIDI, cuartos de tono
-@cindex microtonos en MIDI
-@cindex MIDI, microtonos
-@cindex acordes, nombres de, en MIDI
-@cindex MIDI, nombres de
-@cindex duraciones en MIDI
-@cindex MIDI, duraciones
-@cindex Articlulate, scripts
-@cindex MIDI, articulaciones
-@cindex articulaciones en MIDI
-@cindex trinos en MIDI
-@cindex grupetos en MIDI
-@cindex rallentando en MIDI
-@cindex accelerando en MIDI
-@c TODO etc
-
-Los siguientes elementos de notación se reflejan en la salida MIDI:
-
-@itemize
-@item Alturas
-@item Microtonos (véase @ref{Alteraciones accidentales}. La reproducción necesita un reproductor que contemple la curvatura de tono o @emph{pitch bend}.)
-@item Acordes escritos como nombres de acorde
-@item Ritmos escritos como duraciones de las notas, incluidos los grupos de valoración especial
-@item Trémolos escritos sin @q{@code{:}[@var{número}]}
-@item Ligaduras de unión
-@item Matices o indicaciones de dinámica
-@item Crescendi y decrescendi sobre varias notas
-@item Cambios de tempo insertados con una marca metronómica
-@item Letra de las canciones
-@end itemize
+@cindex MIDI, definiciones de contexto
+@cindex contexto, definiciones con  MIDI
 
-Utilizando @ref{El script Articulate}, a la lista anterior se añaden
-una serie de elementos:
+Las definiciones de contexto siguen la misma sintaxis que las del
+bloque @code{\layout}:
 
-@itemize
-@item Articulaciones (ligaduras de expresión, picados, etc)
-@item Trinos, mordentes circulares
-@item Rallentando y accelerando
-@end itemize
+@example
+\score @{
+  @var{@dots{} music @dots{}}
+  \midi @{
+    \context @{
+      \Voice
+      \remove "Dynamic_performer"
+    @}
+  @}
+@}
+@end example
 
+Este ejemplo suprime el efecto de las indicaciones dinámicas
+sobre la salida MIDI.  Nota: los módulos de traducción de
+LilyPond usados para el sonido se llaman @q{performers}.
 
-@node No contemplado en el MIDI
-@unnumberedsubsubsec No contemplado en el MIDI
-@translationof Unsupported in MIDI
+@seealso
+Manual de aprendizaje:
+@rlearning{Otras fuentes de información}.
 
-@c TODO index as above
+Referencia de la notación:
+@ref{Expresiones},
+@ref{Disposición de la partitura}.
 
-Los siguientes elementos de notación no tienen ningún efecto sobre la
-salida MIDI, a no ser que utilicemos @ref{El script Articulate}:
+Archivos instalados:
+@file{ly/performer-init.ly}.
 
-@itemize
-@item Duraciones escritas como anotaciones, p.ej. el swing
-@item Cambios de tempo escritos como anotaciones sin marca de tempo
-@item Staccato y otras articulaciones y ornamentos
-@item Ligaduras de expresión y de fraseo
-@item Crescendi y decrescendi sobre una nota única
-@item Trémolos introducidos con @q{@code{:}[@var{número}]}
-@item Bajo cifrado
-@item Acordes microtonales
-@end itemize
+Fragmentos de código:
+@rlsr{MIDI}.
 
+Referencia de funcionamiento interno:
+@rinternals{Dynamic_performer}.
 
-@node Repeticiones y MIDI
-@subsection Repeticiones y MIDI
-@translationof Repeats in MIDI
+@knownissues
+Ciertos reproductores de MIDI no siempre maneja correctamente los
+cambios de tempo en la salida MIDI.
 
-@cindex repeticiones, expandir
-@funindex \unfoldRepeats
+Los cambios efectuados al @code{midiInstrument}, así como ciertas
+opciones MIDI, al @emph{comienzo} de un pentagrama pueden
+aparecer dos veces en la salida MIDI.
 
-Con un poco de trucaje, se puede hacer que cualquier tipo de
-repetición esté presente en la salida MIDI.  Esto se consigue mediante
-la aplicación de la función musical @code{\unfoldRepeats}.  Esta
-función cambia todas las repeticiones a repeticiones desplegadas.
 
-@lilypond[quote,verbatim]
-\unfoldRepeats {
-  \repeat tremolo 8 { c'32 e' }
-  \repeat percent 2 { c''8 d'' }
-  \repeat volta 2 { c'4 d' e' f' }
-  \alternative {
-    { g' a' a' g' }
-    { f' e' d' c' }
-  }
-}
-\bar "|."
-@end lilypond
 
-En partituras con varias voces, el desplegado de las repeticiones en
-la salida MIDI solo se produce correctamente si @emph{todas y cada
-una} de las voces incluye las repeticiones de manera completa y
-explícita.
+@node Uso de los instrumentos MIDI
+@subsection Uso de los instrumentos MIDI
+@translationof Using MIDI instruments
 
-Al crear un archivo de partitura que use @code{\unfoldRepeats} para el
-MIDI, es necesario hacer dos bloques @code{\score}: uno para el MIDI
-(con repeticiones desplegadas) y otro para la notación impresa (con
-repeticiones de volta --primera y segunda vez--, tremolo --trémolo--,
-y percent --repetición de compases--).  Por ejemplo,
+Los instrumentos MIDI se establecen usando la propiedad
+@code{midiInstrument} dentro de un contexto @code{Staff}.
 
 @example
 \score @{
-  @var{@dots{}música@dots{}}
-  \layout @{ @dots{} @}
+  \new Staff @{
+    \set Staff.midiInstrument = #"glockenspiel"
+    @var{@dots{} music @dots{}}
+  @}
+  \midi @{ @}
 @}
+@end example
+
+o
+
+@example
 \score @{
-  \unfoldRepeats @var{@dots{}música@dots{}}
-  \midi @{ @dots{} @}
+  \new Staff \with @{midiInstrument = #"cello"@} @{
+    @var{@dots{} music @dots{}}
+  @}
+  \midi @{ @}
 @}
 @end example
 
+Si el instrumento elegido no coincide exactamente con uno de los
+instrumentos de la lista de la sección @q{instrumentos MIDI}, se
+usará el instrumento Piano de Cola (@code{"acoustic grand"}).
+Véase @ref{Instrumentos MIDI}.
 
-@node Control de los matices en el MIDI
-@subsection Control de los matices en el MIDI
-@translationof Controlling MIDI dynamics
-
-La dinámica en el MIDI está implementada por medio del intérprete
-Dynamic_performer que reside de forma predeterminada dentro del
-contexto Voice.  Es posible controlar el volumen MIDI general, el
-volumen relativo de los matices dinámicos y el volumen relativo de los
-distintos instrumentos.
+@seealso
+Manual de aprendizaje:
+@rlearning{Otras fuentes de información}.
 
-@menu
-* Indicaciones dinámicas::
-* Volumen maestro MIDI::
-* Balance entre instrumentos (i)::
-* Balance entre instrumentos (ii)::
-@end menu
+Referencia de la notación:
+@ref{Instrumentos MIDI},
+@ref{Disposición de la partitura}.
 
-@node Indicaciones dinámicas
-@unnumberedsubsubsec Indicaciones dinámicas
-@translationof Dynamic marks
-
-Los matices o indicaciones de dinámica se traducen a una fracción
-fija del rango de volumen MIDI disponible.  Las fracciones
-predeterminadas se extienden desde 0.25 para @notation{ppppp}
-hasta 0.95 para @notation{fffff}.  El conjunto de indicaciones
-dinámicas y las fracciones asociadas pueden verse en
-@file{../scm/midi.scm}, véase @rlearning{Otras fuentes de
-información}.  Este conjunto de fracciones se puede cambiar o
-extender proporcionando una función que toma como argumento una
-indicación dinámica y devuelve la fracción requerida, y
-estableciendo @code{Score.dynamicAbsoluteVolumeFunction} a esta
-función.
-
-Por ejemplo, si se requiere una indicación dinámica
-@notation{rinforzando}, @code{\rfz}, ésta no tiene ningún efecto
-predeterminado sobre el volumen MIDI, pues no está incluida en el
-conjunto predeterminado.  De igual manera, si se define una
-indicación dinámica nueva con @code{make-dynamic-script}, ésta
-tampoco estará incluida en el conjunto predeterminado.  El ejemplo
-siguiente muestra cómo hay que añadir el volumen MIDI para estas
-indicaciones dinámicas.  La función Scheme establece la fracción a
-0.9 si se encuentra una indicación dinámica rfz, y en caso
-contrario llama a la función predeterminada.
+Archivos instalados:
+@file{scm/midi.scm}.
 
-@lilypond[verbatim,quote]
-#(define (myDynamics dynamic)
-    (if (equal? dynamic "rfz")
-      0.9
-      (default-dynamic-absolute-volume dynamic)))
+@knownissues
+Los instrumentos de percusión cuya notación está en un contexto
+@code{DrumStaff} se encontrará a la salida, correctamente, sobre
+el canal MIDI número@tie{}10 pero ciertos instrumentos de
+percusión afinada como el xilófono, el vibráfono o los timbales,
+se tratan como instrumentos @qq{normales}, de forma que la música
+de éstos se debe introducir en un contexto @code{Staff} (no
+@code{DrumStaff}) para obtener una salida MIDI correcta.  Hay una
+lista completa de entradas de los @code{sets de percusión del
+canal 10} en el archivo @file{scm/midi.scm}.  Véase
+@rlearning{Otras fuentes de información}.
 
-\score {
-  \new Staff {
-    \set Staff.midiInstrument = #"cello"
-    \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
-    \new Voice {
-      \relative {
-        a'4\pp b c-\rfz
-      }
-    }
-  }
-  \layout {}
-  \midi {}
-}
-@end lilypond
 
-Como alternativa, si se necesitara redefinir la tabla completa de
-fracciones, sería mejor usar el procedimiento
-@notation{default-dynamic-absolute-volume} que aparece en
-@file{../scm/midi.scm} y la tabla asociada como modelo.  El último
-ejemplo de esta sección muestra cómo se puede hacer esto.
+@node Uso de las repeticiones con el MIDI
+@subsection Uso de las repeticiones con el MIDI
+@translationof Using repeats with MIDI
 
-@node Volumen maestro MIDI
-@unnumberedsubsubsec Volumen maestro MIDI
-@translationof Overall MIDI volume
+@cindex repeticiones en MIDI
+@cindex MIDI con repeticiones
+@funindex \unfoldRepeats
 
-El volumen general máximo y mínimo de las indicaciones dinámicas
-de MIDI se controla estableciendo valores para las propiedades
-@code{midiMinimumVolume} y @code{midiMaximumVolume} en el nivel de
-@code{Score}.  Estas propiedades tienen efecto solamente al inicio
-de una voz y sobre las indicaciones dinámicas.  La fracción que
-corresponde a cada indicación dinámica se modifica con esta
-fórmula:
+Las repeticiones se pueden representar en la salida MIDI
+aplicando la instrucción @code{\unfoldRepeats}.
 
 @example
-midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracción
+\score @{
+  \unfoldRepeats @{
+    \repeat tremolo 8 @{ c'32 e' @}
+    \repeat percent 2 @{ c''8 d'' @}
+    \repeat volta 2 @{ c'4 d' e' f' @}
+    \alternative @{
+      @{ g' a' a' g' @}
+      @{ f' e' d' c' @}
+    @}
+  @}
+  \midi @{ @}
+@}
 @end example
 
-En el ejemplo siguiente, el rango de intensidad dinámica del
-volumen general MIDI está limitado al intervalo desde 0.2 hasta
-0.5.
-
-@lilypond[verbatim,quote]
-\score {
-  <<
-    \new Staff {
-      \key g \major
-      \time 2/2
-      \set Staff.midiInstrument = #"flute"
-      \new Voice \relative {
-        r2 g''\mp g fis~
-        4 g8 fis e2~
-        4 d8 cis d2
-      }
-    }
-    \new Staff {
-      \key g \major
-      \set Staff.midiInstrument = #"clarinet"
-      \new Voice \relative {
-        b'1\p a2. b8 a
-        g2. fis8 e
-        fis2 r
-      }
-    }
-  >>
-  \layout {}
-  \midi {
-    \tempo 2 = 72
-    \context {
-      \Score
-      midiMinimumVolume = #0.2
-      midiMaximumVolume = #0.5
-    }
-  }
-}
-@end lilypond
-
-@node Balance entre instrumentos (i)
-@unnumberedsubsubsec Balance entre instrumentos (i)
-@translationof Equalizing different instruments (i)
-
-Si las propiedades de volumen MIDI máximo y mínimo están
-establecidas en el contexto @code{Staff} se pueden controlar los
-volúmenes relativos de los instrumentos MIDI.  Esto proporciona un
-ecualizador de instrumentos básico que puede realzar
-significativamente la calidad de la salida MIDI.
+Para restringir el efecto de @code{\unfoldRepeats} a la salida
+MIDI únicamente, y al mismo tiempo genera partituras imprimibles,
+es necesario hacer @emph{dos} bloques @code{\score}: uno para el
+MIDI (con las repeticiones desplegadas) y otro para la notación
+(con repeticiones de primera y segunda vez, trémolos y del tipo
+porcentaje);
 
-En este ejemplo se reduce el volumen del clarinete con relación al
-de la flauta.
-
-@lilypond[verbatim,quote]
-\score {
-  <<
-    \new Staff {
-      \key g \major
-      \time 2/2
-      \set Staff.midiInstrument = #"flute"
-      \set Staff.midiMinimumVolume = #0.7
-      \set Staff.midiMaximumVolume = #0.9
-      \new Voice \relative {
-        r2 g''\mp g fis~
-        4 g8 fis e2~
-        4 d8 cis d2
-      }
-    }
-    \new Staff {
-      \key g \major
-      \set Staff.midiInstrument = #"clarinet"
-      \set Staff.midiMinimumVolume = #0.3
-      \set Staff.midiMaximumVolume = #0.6
-      \new Voice \relative {
-        b'1\p a2. b8 a
-        g2. fis8 e
-        fis2 r
-      }
-    }
-  >>
-  \layout {}
-  \midi {
-    \tempo 2 = 72
-  }
-}
-@end lilypond
+@example
+\score @{
+  @var{@dots{} music @dots{}}
+  \layout @{ @}
+@}
+\score @{
+  \unfoldRepeats @{
+    @var{@dots{} music @dots{}}
+  @}
+  \midi @{ @}
+@}
+@end example
 
+Si se usan varias voces, cada una de ellas debe contener las
+repeticiones completamente desplegadas para poder obtener una
+salida MIDI correcta.
 
-@node Balance entre instrumentos (ii)
-@unnumberedsubsubsec Balance entre instrumentos (ii)
-@translationof Equalizing different instruments (ii)
-
-Si las propiedades de volumen MIDI máximo y mínimo no están
-establecidas, de forma predeterminada LilyPond aplica un pequeño
-grado de ecualización a algunos instrumentos.  Los instrumentos y
-la ecualización que se aplica se muestra en la tabla
-@notation{instrument-equalizer-alist} en @file{../scm/midi.scm}.
-
-El ecualizador básico predeterminado se puede sustituir
-estableciendo @code{instrumentEqualizer} en el contexto
-@code{Score} a un procedimiento Scheme nuevo que acepte el nombre
-de un instrumento MIDI como único argumento y devuelva un par de
-fracciones que dan los volúmenes máximo y mínimo que se aplican a
-dicho instrumento.  Esta sustitución se hace de la misma forma que
-mostramos para restablecer la fracción de volumen absoluto
-@code{dynamicAbsoluteVolumeFunction} al comienzo de esta sección.
-El ecualizador predeterminado,
-@notation{default-instrument-equalizer}, en
-@file{../scm/midi.scm}, muestra cómo se puede escribir tal
-procedimiento.
-
-El ejemplo siguiente establece los volúmenes relativos de la
-flauta y del clarinete a los mismos valores que el ejemplo
-anterior.
+@seealso
+Referencia de la notación:
+@ref{Repeticiones}.
+
+
+@node Asignación de canales MIDI
+@subsection Asignación de canales MIDI
+@translationof MIDI channel mapping
+
+@cindex MIDI, canales
+@cindex MIDI, pistas
+@funindex midiChannelMapping
+
+Cuando se está generando un archivo MIDI de una partitura,
+LilyPond asigna cada nota de la partitura automáticamente a un
+canal MIDI, aquel en que se tocaría cuando se envía hacia un
+dispositivo MIDI.  Un canal MIDI tiene una cierta cantidad de
+controles disponibles para seleccionar, por ejemplo, el
+instrumento que usar para reproducir las notas en ese canal, u
+ordenar al dispositivo MIDI que aplique diversos efectos al
+sonido producido sobre el canal.  En todo momento, cada control
+de un canal MIDI solo puede tener asignado un valor único (que
+sin embargo se puede modificar, por ejemplo, para cambiar a otro
+instrumento en mitad de una partitura).
+
+El estándar MIDI contempla solamente 16 canales por dispositivo
+MIDI.  Este límite en el número de canales limita también el
+número de instrumentos diferentes que pueden estar tocando al
+mismo tiempo.
+
+LilyPond crea pistas MIDI separadas para cada pentagrama (o
+instrumento o voz, según el valor de
+@code{Score.midiChannelMapping}), y también para cada contexto de
+letra.  No hay un límite para el número de pistas.
+
+Para solventar el número limitado de canales MIDI, LilyPond
+contempla algunos modos diferentes para la asignación de canales
+MIDI, que se seleccionan usando la propiedad de contexto
+@code{Score.midiChannelMapping}.  En cada caso, si se necesitan
+más canales MIDI que el límite, los números de canal asignados
+vuelven a contar desde cero, causando posiblemente una asignación
+incorrecta de instrumento a algunas notas.  Esta propiedad de
+contexto se puede fijar a uno de los siguientes valores:
 
-@lilypond[verbatim,quote]
-#(define my-instrument-equalizer-alist '())
+@table @var
 
-#(set! my-instrument-equalizer-alist
-  (append
-    '(
-      ("flute" . (0.7 . 0.9))
-      ("clarinet" . (0.3 . 0.6)))
-    my-instrument-equalizer-alist))
+@item @code{'staff}
+
+Reservar un canal MIDI distinto para cada uno de los pentagramas
+de la partitura (es el ajuste predeterminado).  Todas las notas
+de todas las voces comparten el canal MIDI del pentagrama que las
+encierra, y todas se codifican dentro de la misma pista MIDI.
+
+El límite de 16 canales se aplica al número total de contextos de
+pentagrama y de letra, incluso aunque las letras del MIDI no
+consumen un canal MIDI.
+
+@item @code{'instrument}
+
+Reservar un canal MIDI distinto a cada uno de los instrumentos
+diferentes especificados en la partitura.  Esto significa que
+todas las notas reproducidas con el mismo instrumento MIDI
+comparten el mismo canal MIDI (y la misma pista), incluso aunque
+las notas provengan de diferentes voces o pentagramas.
+
+En este caso los contextos de letra no cuentan para el límite de
+16 canales MIDI (ya que no se asignan a un instrumento MIDI), de
+forma que este ajuste puede permitir una mejor distribución de
+los canales MIDI cuando el número de contextos de pentagrama y de
+letra en la partitura excede la cantidad de 16.
+
+@item @code{'voice}
+
+Reservar un canal MIDI distinto a cada voz de la partitura que
+tenga un nombre único entre las voces de su pentagrama
+circundante.  Las voces de los distintos pentagramas siempre se
+asignan a distintos canales MIDI pero dos voces cualesquiera
+contenidas dentro del mismo pentagrama comparten el mismo canal
+MIDI sin tienen el mismo nombre.  A causa de que
+@code{midiInstrument} y los diversos controles MIDI para los
+efectos son propiedades del contexto de pentagrama, no se pueden
+fijar independientemente para cada voz. La primera voz se
+reproduce con el instrumento y los efectos especificados para el
+pentagrama, y las voces con un nombre distinto de la primera
+recibirán el instrumento y los efectos predeterminados.
+
+Nota: se pueden asignar distintos instrumentos y/o efectos a
+varias voces dentro del mismo pentagrama moviendo el
+@code{Staff_performer} del contexto @code{Staff} al contexto
+@code{Voice}, y dejando que @code{midiChannelMapping} conserve su
+valor predeterminado de @code{'staff} o se fije al valor
+@code{'instrument}; véase el fragmento de código siguiente.
 
-#(define (my-instrument-equalizer s)
-  (let ((entry (assoc s my-instrument-equalizer-alist)))
-    (if entry
-      (cdr entry))))
+@end table
 
-\score {
-  <<
-    \new Staff {
-      \key g \major
-      \time 2/2
-      \set Score.instrumentEqualizer = #my-instrument-equalizer
-      \set Staff.midiInstrument = #"flute"
-      \new Voice \relative {
-        r2 g''\mp g fis~
-        4 g8 fis e2~
-        4 d8 cis d2
-      }
-    }
-    \new Staff {
-      \key g \major
-      \set Staff.midiInstrument = #"clarinet"
-      \new Voice \relative {
-        b'1\p a2. b8 a
-        g2. fis8 e
-        fis2 r
-      }
-    }
-  >>
-  \layout { }
-  \midi {
-    \tempo 2 = 72
-  }
-}
-@end lilypond
+Por ejemplo, la asignación predeterminada de canal MIDI de una
+partitura puede cambiarse al ajuste @code{'instrument} como se
+muestra a continuación:
 
-@ignore
-@c Delete when satisfied this is adequately covered elsewhere -td
+@example
+\score @{
+  ...music...
+  \midi @{
+    \context @{
+      \Score
+      midiChannelMapping = #'instrument
+    @}
+  @}
+@}
+@end example
 
-@n ode Microtones in MIDI
-@s ubsection Microtones in MIDI
+@snippets
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{changing-midi-output-to-one-channel-per-voice.ly}
 
-@cindex microtones in MIDI
 
-Microtones consisting of half sharps and half flats are exported
-to the MIDI file and render correctly in MIDI players which support
-pitch bending.  See @ref{Nombres de las notas en otros idiomas}.  Here is
-an example showing all the half sharps and half flats.  It can be
-copied out and compiled to test microtones in your MIDI player.
+@node Propiedades de contexto para efectos MIDI
+@subsection Propiedades de contexto para efectos MIDI
+@translationof Context properties for MIDI effects
+
+@cindex Efectos en MIDI
+@cindex Panorama en MIDI
+@cindex Balance en MIDI
+@cindex Estéreo, balance en MIDI
+@cindex Expresión en  MIDI
+@cindex Reverberación en  MIDI
+@cindex Chorus en MIDI
+@funindex midiPanPosition
+@funindex midiBalance
+@funindex midiExpression
+@funindex midiReverbLevel
+@funindex midiChorusLevel
+
+Se pueden usar las siguientes propiedades de contexto para
+aplicar diversos efectos MIDI a las notas que se reproducen sobre
+el canal MIDI asociado con el pentagrama, instrumento MIDI o voz
+actual (dependiendo del valor de la propiedad de contexto
+@code{Score.midiChannelMapping} y del contexto en que está
+situado el @code{Staff_performer}; véase @ref{Asignación de
+canales MIDI}).
+
+Los cambios en estas propiedades de contexto afectan a todas las
+notas que se reproducen sobre el canal después del cambio, aunque
+algunos de los efectos se pueden incluso aplicar también a notas
+que están ya sonando en ese momento (dependiendo de la
+implementación del dispositivo de salida MIDI).
+
+Se contemplan las siguientes propiedades de contexto:
 
-@lilypond[verbatim,quote]
-\score {
-  \relative {
-    c'4 cih cis cisih
-    d4 dih ees eeh
-    e4 eih f fih
-    fis4 fisih g gih
-    gis4 gisih a aih
-    bes4 beh b bih
-  }
-  \layout {}
-  \midi {}
-}
-@end lilypond
-@end ignore
+@table @var
 
+@item @code{Staff.midiPanPosition}
+
+La posición de panorama controla cómo se distribuye el sonido de
+un canal MIDI entre las salidas estéreo izquierda y derecha.  La
+propiedad de contexto acepta un número entre -1.0 (@code{#LEFT})
+y 1.0 (@code{#RIGHT}); el valor -1.0 pone toda la potencia de
+sonido en la salida estéreo izquierda (dejando la salida derecha
+en completo silencio), el valor 0.0 (@code{#CENTER}) distribuye
+el sonido por igual entre las salidas estéreo izquierda y
+derecha, y el valor 1.0 mueve todo el sonido a la salida estéreo
+derecha.  Los valores entre -1.0 y 1.0 se pueden usar para
+obtener distribuciones mezcladas entre las salidas estéreo
+izquierda y derecha.
+
+@item @code{Staff.midiBalance}
+
+Equilibrio estéreo de un canal MIDI.  De forma similar a la
+posición de panorama esta propiedad de contexto acepta un número
+entre -1.0 (@code{#LEFT}) y 1.0 (@code{#RIGHT}).  Varía el
+volumen relativo que se envía a los dos altavoces estéreo sin
+afectar a la distribución de las propias señales estéreo.
+
+@item @code{Staff.midiExpression}
+
+Nivel de expresión (como una fracción del nivel máximo
+disponible) que se aplica a un canal MIDI.  Un dispositivo MIDI
+combina el nivel de expresión del canal MIDI con el nivel actual
+de dinámica de una voz (controlado mediante las instrucciones de
+dinámica como @code{\p} o @code{\ff}) para obtener el volumen
+total de cada nota dentro de la voz.  El control de expresión se
+puede usar, por ejemplo, para implementar efectos de crescendo y
+decrescendo sobre notas mantenidas (algo que LilyPond no
+contempla de forma automática).
+
+@c Issue 4059 contains an attached snippet which shows how this might
+@c be done, but this is too large and complex for the NR, even as a
+@c referenced snippet.  It could be added to the LSR.
+
+El rango de los niveles de expresión se extiende desde 0.0
+(ninguna expresión, lo que significa un volumen nulo) hasta 1.0
+(expresión al máximo).
+
+@item @code{Staff.midiReverbLevel}
+
+El nivel de reverberación (cono una fracción del máximo nivel
+disponible) que se aplica a un canal MIDI.  Esta propiedad acepta
+números entre 0.0 (sin reverberación) y 1.0 (efecto máximo).
+
+@item @code{Staff.midiChorusLevel}
+
+Nivel del efecto Chorus (como una fracción del máximo nivel
+disponible) que se aplica a un canal MIDI.  Esta propiedad acepta
+números entre 0.0 (sin efecto de chorus) y 1.0 (efecto al
+máximo).
 
-@node Percusión en MIDI
-@subsection Percusión en MIDI
-@translationof Percussion in MIDI
+@end table
 
-La notación de los instrumentos de percusión se realiza
-normalmente en un contexto @code{DrumStaff} y cuando se hace de
-esta forma se les da salida correctamente por el canal
-MIDI@tie{}10, pero ciertos instrumentos de percusión de altura
-determinada, como el xilófono, marimba, vibráfono, timbales, etc.,
-se tratan como instrumentos @qq{normales} y la música para estos
-instrumentos se debe introducir en contextos de @code{Staff}
-normales, no en un contexto @code{DrumStaff}, para obtener la
-salida MIDI correcta.
 
-Ciertos sonidos de altura indeterminada que están incluidos en el
-estándar General MIDI, como el tom melódico, el tambor taiko, los
-tambores sintéticos, etc., no se pueden acceder a través del canal
-MIDI@tie{}10, por lo que la notación para dichos instrumentos se
-debe introducir también en un contexto normal de @code{Staff},
-utilizando las alturas normales adecuadas.
+@knownissues
 
-Muchos instrumentos de percusión no están incluidos dentro del
-estándar General MIDI, p.ej. las castañuelas.  El método más fácil
-(aunque no satisfactorio) de producir una salida MIDI al escribir
-para estos instrumentos es sustituirlos por el sonido más parecido
-del conjunto estándar.
+Dado que los archivos MIDI no contienen en realidad ninguna
+información sonora, los cambios en estas propiedades de contexto
+solamente se convierten en peticiones para que cambien los
+controles de canal MIDI dentro de los archivos MIDI emitidos.  Si
+un dispositivo MIDI determinado (como un reproductor MIDI por
+software) puede de hecho manejar cualquiera de estas solicitudes
+de un archivo MIDI, es algo que depende totalmente de la
+implementación del mismo: un dispositivo podría optar por ignorar
+algunas o todas estas solicitudes.  Asimismo, la forma en que un
+dispositivo MIDI interpreta los diferentes valores de estos
+controles (generalmente, el estándar MIDI determina el
+comportamiento solamente en los puntos extremos del rango de
+valores disponibles para cada control), y el hecho de si un
+cambio en el valor de un control afecta a las notas que ya se
+están reproduciendo sobre ese canal MIDI o no, también son
+aspectos específicos de la implementación del dispositivo MIDI.
+
+Al generar archivos MIDI, LilyPond sencillamente convierte de
+forma lineal los valores fraccionarios dentro de cada rango (7
+bits, o 14 bits para los controles de canal MIDI que admiten
+resolución fina) en valores enteros dentro del rango
+correspondiente (de 0 a 127 o de 0 a 32767, respectivamente),
+redondeando los valores fraccionarios hacia el entero más próximo
+en dirección opuesta al cero.  Los valores enteros convertidos se
+almacenan tal cual en el archivo MIDI generado.  Consulte la
+documentación de su dispositivo MIDI para ver información acerca
+de cómo interpreta estos valores.
+
+
+@node Enriquecimiento de la salida MIDI
+@subsection Enriquecimiento de la salida MIDI
+@translationof Enhancing MIDI output
 
-@c TODO Expand with examples, and any other issues
+@menu
+* El script Articulate::
+@end menu
 
-@knownissues
+La salida MIDI predeterminada es muy básica, pero se puede
+mejorar mediante la selección de los instrumentos MIDI las
+propiedades del bloque @code{\midi} y/o usando el script
+@file{articulate}.
 
-Debido a que el estándar General MIDI no contiene golpes de aro
-(@emph{rim shots}), para este propósito se utiliza en su lugar el
-golpe lateral de baqueta (@emph{sidestick}).
+@cindex instrumentos, nombres
+@cindex MIDI, instrumentos
+@cindex articulate, script
+@cindex articulate.ly
+@funindex Staff.midiInstrument
 
 
 @node El script Articulate
 @subsection El script Articulate
 @translationof The Articulate script
 
-Es posible obtener una salida MIDI más real si se utiliza el
-script Articulate.  Éste trata de tener en cuenta las
-articulaciones (ligaduras de expresión, picados, etc), mediante la
-sustitución de las notas con secuencias musicales de silencios y
-notas escaladas en el tiempo de forma apropiada.  También trata de
-desplegar los trinos, grupetos circulares, etc. y responder a las
-indicaciones de rallentando y accelerando.
-
 Para utilizar el script Articulate, tenemos que incluirlo al
 principio de nuestro archivo de entrada:
 
@@ -3439,27 +3788,44 @@ principio de nuestro archivo de entrada:
 \include "articulate.ly"
 @end example
 
-y en la sección @code{\score}, hacer lo siguiente:
+El script crea una salida MIDI en que las notas tienen una
+duración ajustada en el tiempo de forma que se correspondan con
+una serie de indicaciones de articulación y de tempo.  Sin
+embargo, la salida tipografiada también se altera para reflejar
+literalmente el contenido de la salida MIDI.
 
 @example
-\unfoldRepeats \articulate <<
-       resto de la partitura@dots{}
->>
+\score @{
+  \articulate <<
+    @var{@dots{} music @dots{}}
+  >>
+  \midi @{ @}
+@}
 @end example
 
-Después de alterar el código de entrada de esta manera el
-resultado visual se altera profundamente, pero el bloque
-@code{\midi} estándar produce un archivo MIDI mejorado.
+La instrucción @code{\articulate} habilita el procesado de las
+abreviaturas como trinos y mordentes de varias notas.  En el
+propio script puede verse una lista completa de los elementos que
+están previstos.  Véase @file{ly/articulate.ly}.
 
-Si bien no es esencial para que funcione el script Articulate,
-podemos insertar la instrucción @code{\unfoldRepeats} según
-aparece en el ejemplo anterior, dado que habilita la ejecución de
-abreviaturas tales como los @notation{trinos}.
+@seealso
+Manual de aprendizaje:
+@rlearning{Otras fuentes de información}.
 
-@knownissues
+Referencia de la notación:
+@ref{Score layout}.
+
+Archivos instalados:
+@file{ly/articulate.ly}.
+
+@warning{El script @file{articulate} puede acortar los acordes,
+lo que podría no ser adecuado para algunos tipos de instrumento,
+como el órgano.  Las notas que no tienen ninguna articulación
+también se pueden acortar; así, para moderar este efecto limite
+el uso de de la función @code{\articulate} a segmentos de música
+más breves o modifique los valores de las variables definidas
+dentro del script @file{articulate}.}
 
-Articulate acorta los acordes, y ciertos fragmentos de música
-(especialmente la música de órgano) es posible que suene peor.
 
 
 @node Extraer información musical
@@ -3508,6 +3874,21 @@ hacia un archivo.
 lilypond archivo.ly >resultado.txt
 @end example
 
+@funindex \void
+Observe que Lilypond no se limita a mostrar la expresión musical,
+sino que también la interpreta (porque @code{\displayLilyMusic}
+la devuelve además de mostrarla).  La conveniencia de esto es que
+podemos simplemente insertar @code{\displayLilyMusic} dentro de
+una música existente con el objeto de obtener información sobre
+ella.  Si no queremos que Lilypond, además de mostrar la música,
+la interprete, podemos hacer que la ignore usando @code{\void}:
+
+@example
+@{
+  \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+@}
+@end example
+
 
 @node Impresión de las expresiones musicales de Scheme
 @subsection Impresión de las expresiones musicales de Scheme
@@ -3520,8 +3901,8 @@ Véase @rextend{Presentación de las expresiones musicales}.
 @subsection Guardar los eventos musicales en un archivo
 @translationof Saving music events to a file
 
-Los eventos musicales se pueden guardar en un archivo pentagrama a
-pentagrama mediante la inclusión de un archivo en nuestra
+Los eventos musicales se pueden guardar en un archivo pentagrama
+pentagrama mediante la inclusión de un archivo en nuestra
 partitura principal.
 
 @example
@@ -3530,10 +3911,10 @@ partitura principal.
 
 De esta forma se crean uno o más archivos llamados
 @file{FILENAME-STAFFNAME.notes} ó
-@file{FILENAME-unnamed-staff.notes} para cada pentagrama.  Observe
-que si tiene más de un pentagrama sin nombre, los eventos de todos
-los pentagramas se mezclarán entre sí dentro del mismo archivo.
-El resultado tiene el aspecto siguiente:
+@file{FILENAME-unnamed-staff.notes} para cada pentagrama.
+Observe que si tiene más de un pentagrama sin nombre, los eventos
+de todos los pentagramas se mezclarán entre sí dentro del mismo
+archivo.  El resultado tiene el aspecto siguiente:
 
 @example
 0.000   note     57       4   p-c 2 12
@@ -3550,13 +3931,13 @@ tabulación, con dos campos fijos en cada línea seguidos de
 parámetros opcionales.
 
 @example
-@var{tiempo}  @var{tipo}  @var{@dots{}parámetros@dots{}}
+@var{tiempo} @var{tipo} @var{@dots{}parámetros@dots{}}
 @end example
 
 Esta información se puede leer fácilmente por parte de otros
 programas como guiones de Python, y pueden ser muy útiles para
 aquellos investigadores que desean realizar un análisis musical o
-hacer experimientos de reproducción con LilyPond.
+hacer experimentos de reproducción con LilyPond.
 
 @knownissues
 No todos los eventos musicales de lilypond están contemplados por
index 3611fc38ab8a122864313acc392a5549b96814e5..ad03fb2d8be3905683eb91d5ac124a079f7bdbcd 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 4cd16b30ea12e67d0c67c3e5663db113ae95db5f
+    Translation of GIT committish: dbe1fd47441d21aadd5669e9e69edfecb38ae45a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 * Afinaciones de cuerdas predefinidas::
 * Diagramas predefinidos de posiciones::
 * Tamaños de página predefinidos::
-* instrumentos MIDI::
+* Instrumentos MIDI::
 * Lista de colores::
 * La tipografía Feta::
 * Estilos de cabezas de nota::
+* Estilos de clave::
 * Instrucciones de marcado de texto::
 * Instrucciones de listas de marcado de texto::
 * Lista de caracteres especiales::
@@ -54,8 +55,8 @@ nombres de los acordes, junto a las notas que representan.
 @appendixsec Modificadores de acorde más usuales
 @translationof Common chord modifiers
 
-La tabla siguiente presenta los modificadores de acorde que se pueden
-usar para generar las estructuras de acordes estándar.
+La tabla siguiente presenta los modificadores de acorde que se
+pueden usar para generar las estructuras de acordes estándar.
 
 @multitable @columnfractions .2 .25 .2 .15 .2
 
@@ -503,7 +504,8 @@ Quinta justa, @*octava
 @appendixsec Afinaciones de cuerdas predefinidas
 @translationof Predefined string tunings
 
-El cuadro de abajo muestra las afinaciones predefinidas de cuerdas.
+El cuadro de abajo muestra las afinaciones predefinidas de
+cuerdas.
 
 @lilypondfile{display-predefined-string-tunings.ly}
 
@@ -786,16 +788,16 @@ Los tamaños de página se definen en el archivo @file{scm/paper.scm}
 (74 x 52 mm)
 @end table
 
-@c lowercase to avoid duplicate node. FV
-@node instrumentos MIDI
-@appendixsec instrumentos MIDI
+
+@node Instrumentos MIDI
+@appendixsec Instrumentos MIDI
 @translationof MIDI instruments
 
-A continuación figura una lista con los nombres que se pueden utilizar
-para la propiedad @code{midiInstrument} (instrumento MIDI).  El orden
-de los instrumentos que aparece aquí, de arriba a abajo empezando por
-la columna de la izquierda, corresponde a los 128 números de programa
-del estándar General MIDI.
+A continuación figura una lista con los nombres que se pueden
+utilizar para la propiedad @code{midiInstrument} (instrumento
+MIDI).  El orden de los instrumentos que aparece aquí, de arriba a
+abajo empezando por la columna de la izquierda, corresponde a los
+128 números de programa del estándar General MIDI.
 
 @example
 acoustic grand            contrabass           lead 7 (fifths)
@@ -850,7 +852,8 @@ cello                     lead 6 (voice)
 
 @subsubheading Colores normales
 
-La sintaxis para el uso de colores se encuentra detallada en @ref{Colorear objetos}.
+La sintaxis para el uso de colores se encuentra detallada en
+@ref{Colorear objetos}.
 
 @cindex lista de colores
 @cindex colores, lista de
@@ -868,13 +871,15 @@ darkcyan    darkmagenta    darkyellow
 Los nombres de los colores de X admiten algunas variantes:
 
 Un nombre que se escribe como una palabra única con mayúsculas
-intercaladas (p.ej. @q{LightSlateBlue}) se puede escribir también como
-palabras separadas por espacios y sin mayúsculas (p.ej. @q{light slate
-blue}).
+intercaladas (p.ej. @q{LightSlateBlue}) se puede escribir también
+como palabras separadas por espacios y sin mayúsculas
+(p.ej. @q{light slate blue}).
 
-La palabra @q{grey} siempre se puede escribir como @q{gray} (p.ej. @q{DarkSlateGray}).
+La palabra @q{grey} siempre se puede escribir como @q{gray}
+(p.ej. @q{DarkSlateGray}).
 
-Algunos nombres admiten un sufijo numérico (p.ej. @q{LightSalmon4}).
+Algunos nombres admiten un sufijo numérico
+(p.ej. @q{LightSalmon4}).
 
 
 @subsubheading Nombres de los colores sin sufijo numérico:
@@ -954,13 +959,13 @@ donde N es un número entre 0 y 100.
 @cindex Feta, tipografía
 @cindex tipografía Feta
 
-Los símbolos siguientes están disponibles en la tipografía Emmentaler
-y es posible acceder a ellos directamente utilizando elementos de
-marcado textual con el nombre del glifo
-tal y como se muestra en las tablas de abajo,
-por ejemplo @code{g^\markup @{\musicglyph #"scripts.segno" @}} ó
-@code{\markup @{\musicglyph #"five"@}}.  Para ver más información,
-consulte @ref{Formatear el texto}.
+Los símbolos siguientes están disponibles en la tipografía
+Emmentaler y es posible acceder a ellos directamente utilizando
+elementos de marcado textual con el nombre del glifo tal y como se
+muestra en las tablas de abajo, por ejemplo @code{g^\markup
+@{\musicglyph #"scripts.segno" @}} ó @code{\markup @{\musicglyph
+#"five"@}}.  Para ver más información, consulte @ref{Formatear el
+texto}.
 
 @menu
 * Glifos de clave::
@@ -1271,11 +1276,248 @@ consulte @ref{Formatear el texto}.
 @translationof Note head styles
 
 @cindex nota, estilos de cabeza
-Se pueden usar los siguientes estilos para las cabezas de las notas.
+Se pueden usar los siguientes estilos para las cabezas de las
+notas.
 
 @lilypondfile[noindent]{note-head-style.ly}
 
 
+@node Estilos de clave
+@appendixsec Estilos de clave
+@translationof Clef styles
+
+La tabla siguiente presenta los distintos estilos de clave
+posibles y el lugar del @emph{Do central} en cada una.
+
+@multitable @columnfractions .30 .2 .30 .2
+
+@headitem
+Ejemplo
+@tab
+Salida
+@tab
+Ejemplo
+@tab
+Salida
+
+
+@item
+@code{\clef G}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef G c1
+@end lilypond
+
+@tab
+@code{\clef "G2"}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef "G2"
+c1
+@end lilypond
+
+@item
+@code{\clef treble}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef treble
+c1
+@end lilypond
+
+@tab
+@code{\clef violin}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef violin
+c1
+@end lilypond
+
+@item
+@code{\clef french}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef french
+c1
+@end lilypond
+
+@tab
+@code{\clef GG}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef GG
+c1
+@end lilypond
+
+@item
+@code{\clef tenorG}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenorG
+c1
+@end lilypond
+
+@tab
+@code{\clef soprano}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef soprano
+c1
+@end lilypond
+
+@item
+@code{\clef mezzosoprano}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef mezzosoprano
+c1
+@end lilypond
+
+@tab
+@code{\clef C}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef C
+c1
+@end lilypond
+
+@item
+@code{\clef alto}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef alto
+c1
+@end lilypond
+
+@tab
+@code{\clef tenor}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenor
+c1
+@end lilypond
+
+@item
+@code{\clef baritone}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritone
+c1
+@end lilypond
+
+@tab
+@code{\clef varC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef varC
+c1
+@end lilypond
+
+@item
+@code{\clef altovarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef altovarC
+c1
+@end lilypond
+
+@tab
+@code{\clef tenorvarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef tenorvarC
+c1
+@end lilypond
+
+@item
+@code{\clef baritonevarC}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritonevarC
+c1
+@end lilypond
+
+@tab
+@code{\clef varbaritone}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef varbaritone
+c1
+@end lilypond
+
+@item
+@code{\clef baritonevarF}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef baritonevarF
+c1
+@end lilypond
+
+@tab
+@code{\clef F}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef F
+c1
+@end lilypond
+
+@item
+@code{\clef bass}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef bass
+c1
+@end lilypond
+
+@tab
+@code{\clef subbass}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef subbass
+c1
+@end lilypond
+
+@item
+@code{\clef percussion}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\clef percussion
+c1
+@end lilypond
+
+@tab
+@c @example does not work as expected within multitables
+@code{
+\new TabStaff @{ @*
+@ @ \clef tab @*
+@}
+}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\new TabStaff {
+  \clef tab
+  c1
+}
+@end lilypond
+
+@item
+@c @example does not work as expected within multitables
+@code{
+\new TabStaff @{ @*
+@ @ \clef moderntab @*
+@}
+}
+@tab
+@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
+\new TabStaff {
+  \clef moderntab
+  c1
+}
+@end lilypond
+
+
+@end multitable
+
+
 @node Instrucciones de marcado de texto
 @appendixsec Instrucciones de marcado de texto
 @translationof Text markup commands
@@ -1297,15 +1539,15 @@ Se puede usar cualquiera de las siguientes instrucciones con
 @appendixsec Lista de caracteres especiales
 @translationof List of special characters
 
-Se pueden usar las siguientes referencias a carcteres especiales; para
-ver más detalles, consulte @ref{Alias de ASCII}.
+Se pueden usar las siguientes referencias a carcteres especiales;
+para ver más detalles, consulte @ref{Alias de ASCII}.
 
 Se usa la sintaxis del HTML y casi todas estas referencias son las
 mismas que en el HTML.  El resto están inspiradas en @LaTeX{}.
 
-Los caracteres están enmarcados en un rectángulo de forma que pueda
-verse el tamaño que tienen. Se ha añadido un pequeño relleno de
-separación entre el carácter y el rectángulo para mejorar la
+Los caracteres están enmarcados en un rectángulo de forma que
+pueda verse el tamaño que tienen. Se ha añadido un pequeño relleno
+de separación entre el carácter y el rectángulo para mejorar la
 legibilidad.
 
 @lilypond[quote]
@@ -1317,63 +1559,12 @@ legibilidad.
 @appendixsec Lista de articulaciones
 @translationof List of articulations
 
-@cindex acento
-@cindex apagado
-@cindex arco abajo
-@cindex arco arriba
-@cindex calderón
-@cindex circulus
-@cindex coda
-@cindex downbow
-@cindex downmordent
-@cindex downprall
-@cindex espressivo
-@cindex fermata
-@cindex flageolet
-@cindex grupeto circular
-@cindex grupeto circular invertido
-@cindex halfopen
-@cindex ictus
-@cindex indicación de pulgar
-@cindex lheel
-@cindex lineprall
-@cindex longfermata
-@cindex ltoe
-@cindex marcas de pie
-@cindex marcato
-@cindex mordent
-@cindex open
-@cindex órgano, indicaciones de pedal de
-@cindex pedal, indicaciones de
-@cindex portato
-@cindex prall
-@cindex pralldown
-@cindex prallmordent
-@cindex prallprall
-@cindex prallup
-@cindex pulgar, indicación de
-@cindex reverseturn
-@cindex rheel
-@cindex rtoe
-@cindex segno
-@cindex semicirculus
-@cindex semitrino
-@cindex semitrino descendente
-@cindex shortfermata
-@cindex signumcongruentiae
-@cindex snappizzicato
-@cindex staccatissimo
-@cindex staccato
-@cindex tenuto
-@cindex trill
-@cindex trino
-@cindex upmordent
-@cindex upprall
-@cindex varcoda
-@cindex verylongfermata
 
-Las siguientes inscripciones están disponibles en la tipografía Feta y
-se pueden adjuntar a las notas (p.ej. @samp{c\accent}).
+Las listas siguientes relacionan todos los símbolos de la
+tipografía Feta que se pueden adjuntar a las notas
+(p. ej. @samp{f\accent} o @samp{f->}).  Cada ejemplo muestra el
+símbolo en las posiciones @emph{superior}, @emph{inferior} y
+@emph{neutra}, respectivamente.
 
 @c Articulations and ornamentations
 @c Fingering instructions (for "thumb")
@@ -1394,73 +1585,809 @@ se pueden adjuntar a las notas (p.ej. @samp{c\accent}).
 * Indicaciones antiguas::
 @end menu
 
+@ignore
+The @multitable @columnfraction value discrepancy between the first and
+the remaining columns is deliberate; it seems (at least visually
+anyway) the gap (after building the documentation) between first and
+second column examples was always larger than between the remaining
+columns - JL
+@end ignore
+
+@cindex accent
+@cindex espressivo
+@cindex marcato
+@cindex portato
+@cindex staccatissimo
+@cindex staccato
+@cindex tenuto
+@cindex thumb
 
 @node Indicaciones de articulación
 @unnumberedsubsec Indicaciones de articulación
 @translationof Articulation scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #articulations }
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\accent} or @code{->}
+@lilypond[notime,relative=2]
+f^\accent e,_\accent b'\accent
+@end lilypond
+@tab
+@code{\espressivo}
+@lilypond[notime,relative=2]
+f^\espressivo e,_\espressivo b'\espressivo
+@end lilypond
+@tab
+@code{\marcato} or @code{-^}
+@lilypond[notime,relative=2]
+f^\marcato e,_\marcato b'\marcato
+@end lilypond
+@tab
+@code{\portato} or @code{-_}
+@lilypond[notime,relative=2]
+f^\portato e,_\portato b'\portato
+@end lilypond
+
+@item
+@code{\staccatissimo} @* or @code{-!}
+@lilypond[notime,relative=2]
+f^\staccatissimo e,_\staccatissimo b'\staccatissimo
+@end lilypond
+@tab
+@code{\staccato} or @code{-.}
+@lilypond[notime,relative=2]
+f^\staccato e,_\staccato b'\staccato
+@end lilypond
+@tab
+@code{\tenuto} or @code{--}
+@lilypond[notime,relative=2]
+f^\tenuto e,_\tenuto b'\tenuto
 @end lilypond
 
+@end multitable
+
+@cindex prall
+@cindex prallup
+@cindex pralldown
+@cindex upprall
+@cindex downprall
+@cindex prallprall
+@cindex lineprall
+@cindex prallmordent
+@cindex mordent
+@cindex upmordent
+@cindex downmordent
+@cindex trill
+@cindex turn
+@cindex reverseturn
 
 @node Indicaciones de adornos
 @unnumberedsubsec Indicaciones de adornos
 @translationof Ornament scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #ornaments }
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\prall}
+@lilypond[notime,relative=2]
+f^\prall e,_\prall b'\prall
+@end lilypond
+@tab
+@code{\prallup}
+@lilypond[notime,relative=2]
+f^\prallup e,_\prallup b'\prallup
+@end lilypond
+@tab
+@code{\pralldown}
+@lilypond[notime,relative=2]
+f^\pralldown e,_\pralldown b'\pralldown
+@end lilypond
+@tab
+@code{\upprall}
+@lilypond[notime,relative=2]
+f^\upprall e,_\upprall b'\upprall
 @end lilypond
 
+@item
+@code{\downprall}
+@lilypond[notime,relative=2]
+f^\downprall e,_\downprall b'\downprall
+@end lilypond
+@tab
+@code{\prallprall}
+@lilypond[notime,relative=2]
+f^\prallprall e,_\prallprall b'\prallprall
+@end lilypond
+@tab
+@code{\lineprall}
+@lilypond[notime,relative=2]
+f^\lineprall e,_\lineprall b'\lineprall
+@end lilypond
+@tab
+@code{\prallmordent}
+@lilypond[notime,relative=2]
+f^\prallmordent e,_\prallmordent b'\prallmordent
+@end lilypond
+
+@item
+@code{\mordent}
+@lilypond[notime,relative=2]
+f^\mordent e,_\mordent b'\mordent
+@end lilypond
+@tab
+@code{\upmordent}
+@lilypond[notime,relative=2]
+f^\upmordent e,_\upmordent b'\upmordent
+@end lilypond
+@tab
+@code{\downmordent}
+@lilypond[notime,relative=2]
+f^\downmordent e,_\downmordent b'\downmordent
+@end lilypond
+@tab
+@code{\trill}
+@lilypond[notime,relative=2]
+f^\trill e,_\trill b'\trill
+@end lilypond
+
+@item
+@code{\turn}
+@lilypond[notime,relative=2]
+f^\turn e,_\turn b'\reverseturn
+@end lilypond
+@tab
+@code{\reverseturn}
+@lilypond[notime,relative=2]
+f^\reverseturn e,_\reverseturn b'\reverseturn
+@end lilypond
+
+@end multitable
+
+@cindex fermata
+@cindex shortfermata
+@cindex longfermata
+@cindex verylongfermata
 
 @node Indicaciones de calderón
 @unnumberedsubsec Indicaciones de calderón
 @translationof Fermata scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #fermatas }
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\shortfermata}
+@lilypond[notime,relative=2]
+f^\shortfermata e,_\shortfermata b'\shortfermata
+@end lilypond
+@tab
+@code{\fermata}
+@lilypond[notime,relative=2]
+f^\fermata e,_\fermata b'\fermata
+@end lilypond
+@tab
+@code{\longfermata}
+@lilypond[notime,relative=2]
+f^\longfermata e,_\longfermata b'\longfermata
+@end lilypond
+@tab
+@code{\verylongfermata}
+@lilypond[notime,relative=2]
+f^\verylongfermata e,_\verylongfermata b'\verylongfermata
 @end lilypond
 
+@end multitable
+
+@cindex upbow
+@cindex downbow
+@cindex flageolet
+@cindex open
+@cindex halfopen
+@cindex lheel
+@cindex rheel
+@cindex ltoe
+@cindex rtoe
+@cindex snappizzicato
+@cindex stopped
 
 @node Indicaciones específicas de ciertos instrumentos
 @unnumberedsubsec Indicaciones específicas de ciertos instrumentos
 @translationof Instrument-specific scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #instrument-specific }
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\upbow}
+@lilypond[notime,relative=2]
+f^\upbow e,_\upbow b'\upbow
+@end lilypond
+@tab
+@code{\downbow}
+@lilypond[notime,relative=2]
+f^\downbow e,_\downbow b'\downbow
+@end lilypond
+@tab
+@code{\flageolet}
+@lilypond[notime,relative=2]
+f^\flageolet e,_\flageolet b'\flageolet
+@end lilypond
+@tab
+@code{\open}
+@lilypond[notime,relative=2]
+f^\open e,_\open b'\open
 @end lilypond
 
+@item
+@code{\halfopen}
+@lilypond[notime,relative=2]
+f^\halfopen e,_\halfopen b'\halfopen
+@end lilypond
+@tab
+@code{\lheel}
+@lilypond[notime,relative=2]
+f^\lheel e,_\lheel b'\lheel
+@end lilypond
+@tab
+@code{\rheel}
+@lilypond[notime,relative=2]
+f^\rheel e,_\rheel b'\rheel
+@end lilypond
+@tab
+@code{\ltoe}
+@lilypond[notime,relative=2]
+f^\ltoe e,_\ltoe b'\ltoe
+@end lilypond
+
+@item
+@code{\rtoe}
+@lilypond[notime,relative=2]
+f^\rtoe e,_\rtoe b'\rtoe
+@end lilypond
+@tab
+@code{\snappizzicato}
+@lilypond[notime,relative=2]
+f^\snappizzicato e,_\snappizzicato b'\snappizzicato
+@end lilypond
+@tab
+@code{\stopped} or @code{-+}
+@lilypond[notime,relative=2]
+f^\stopped e,_\stopped b'\stopped
+@end lilypond
+
+@end multitable
+
+@cindex segno
+@cindex coda
+@cindex varcoda
 
 @node Indicaciones de repetición
 @unnumberedsubsec Indicaciones de repetición
 @translationof Repeat sign scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
-\new RhythmicStaff { \scriptStaff #repeats }
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\segno}
+@lilypond[notime,relative=2]
+f^\segno e,_\segno b'\segno
+@end lilypond
+@tab
+@code{\coda}
+@lilypond[notime,relative=2]
+f^\coda e,_\coda b'\coda
+@end lilypond
+@tab
+@code{\varcoda}
+@lilypond[notime,relative=2]
+f^\varcoda e,_\varcoda b'\varcoda
 @end lilypond
 
+@end multitable
+
+@cindex accentus
+@cindex circulus
+@cindex ictus
+@cindex semicirculus
+@cindex signumcongruentiae
 
 @node Indicaciones antiguas
 @unnumberedsubsec Indicaciones antiguas
 @translationof Ancient scripts
 
-@lilypond[quote]
-\include "script-chart.ly"
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{\accentus}
+@lilypond[notime]
+\include "gregorian.ly"
+\new VaticanaStaff { e'^\accentus s4 f_\accentus s4 b\accentus}
+@end lilypond
+@tab
+@code{\circulus}
+@lilypond[notime]
+\include "gregorian.ly"
+\new VaticanaStaff { e'^\circulus s4 f_\circulus s4 b\circulus  }
+@end lilypond
+@tab
+@code{\ictus}
+@lilypond[notime]
+\include "gregorian.ly"
+\new VaticanaStaff { e'^\ictus s4 f_\ictus s4 b\ictus}
+@end lilypond
+
+@item
+@code{\semicirculus}
+@lilypond[notime]
 \include "gregorian.ly"
-\new VaticanaStaff { \scriptStaffAncient #ancient }
+\new VaticanaStaff {
+  e'^\semicirculus s4 f_\semicirculus s4 b\semicirculus
+}
 @end lilypond
+@tab
+@code{\signumcongruentiae}
+@lilypond[notime]
+\include "gregorian.ly"
+\new VaticanaStaff {
+  e'^\signumcongruentiae s4
+  f_\signumcongruentiae s4
+  b\signumcongruentiae
+}
+@end lilypond
+
+@end multitable
 
+@cindex drums, various
+@cindex acoustic bass
+@cindex bass
+@cindex snare
+@cindex electric snare
+@cindex acoustic snare
+@cindex tom tom
+@cindex bongo
+@cindex conga
+@cindex timbale
+@cindex sidestick
+@cindex floor tom tom
+@cindex low tom tom
+@cindex high tom tom
+@cindex mid tom tom
+@cindex high hat
+@cindex pedal high hat
+@cindex open high hat
+@cindex half-open high hat
+@cindex cymbal, various
+@cindex crash cymbal
+@cindex ride cymbal
+@cindex chinese cymbal
+@cindex splash cymbal
+@cindex ride bell
+@cindex cowbell
+@cindex agogo
+@cindex high bongo
+@cindex low bongo
+@cindex mute bongo
+@cindex open bongo
+@cindex high conga
+@cindex low conga
+@cindex mute conga
+@cindex open conga
+@cindex high timbale
+@cindex low timbale
+@cindex mute timbale
+@cindex open timbale
+@cindex sidestick
+@cindex guiro
+@cindex cabasa
+@cindex maracas
+@cindex whistle
+@cindex handclap
+@cindex tambourine
+@cindex vibraslap
+@cindex tam tam
+@cindex claves
+@cindex woodblock
+@cindex cuica
+@cindex triangle
 
 @node Notas de percusión
 @appendixsec Notas de percusión
 @translationof Percussion notes
 
-@lilypondfile[quote]{percussion-chart.ly}
+@multitable @columnfractions .22 .25 .25 .25
+
+@item
+@code{bassdrum @* bd @*}
+@lilypond[notime,ragged-right]
+\drums { bd4 bd1 }
+@end lilypond
+@tab
+@code{acousticbassdrum @* bda @*}
+@lilypond[notime,ragged-right]
+\drums { bda4 bda1 }
+@end lilypond
+@tab
+@code{snare @* sn @*}
+@lilypond[notime,ragged-right]
+\drums { sn4 sn1 }
+@end lilypond
+@tab
+@code{acousticsnare @* sna @*}
+@lilypond[notime,ragged-right]
+\drums { sna4 sna1 }
+@end lilypond
+
+@item
+@code{electricsnare @* sne @*}
+@lilypond[notime,ragged-right]
+\drums { sne4 sne1 }
+@end lilypond
+@tab
+@code{lowfloortom @* tomfl @*}
+@lilypond[notime,ragged-right]
+\drums { tomfl4 tomfl1 }
+@end lilypond
+@tab
+@code{highfloortom @* tomfh @*}
+@lilypond[notime,ragged-right]
+\drums { tomfh4 tomfh1 }
+@end lilypond
+@tab
+@code{lowtom @* toml @*}
+@lilypond[notime,ragged-right]
+\drums { toml4 toml1 }
+@end lilypond
+
+@item
+@code{hightom @* tomh @*}
+@lilypond[notime,ragged-right]
+\drums { tomh4 tomh1 }
+@end lilypond
+@tab
+@code{lowmidtom @* tomml @*}
+@lilypond[notime,ragged-right]
+\drums { tomml4 tomml1 }
+@end lilypond
+@tab
+@code{highmidtom @* tommh @*}
+@lilypond[notime,ragged-right]
+\drums { tommh4 tommh1 }
+@end lilypond
+@tab
+@code{highhat @* hh @*}
+@lilypond[notime,ragged-right]
+\drums { hh4 hh1 }
+@end lilypond
+
+@item
+@code{closedhihat @* hhc @*}
+@lilypond[notime,ragged-right]
+\drums { hhc4 hhc1 }
+@end lilypond
+@tab
+@code{openhighhat @* hho @*}
+@lilypond[notime,ragged-right]
+\drums { hho4 hho1 }
+@end lilypond
+@tab
+@code{halfopenhihat @* hhho @*}
+@lilypond[notime,ragged-right]
+\drums { hhho4 hhho1 }
+@end lilypond
+@tab
+@code{pedalhihat @* hhp @*}
+@lilypond[notime,ragged-right]
+\drums { hhp4 hhp1 }
+@end lilypond
+
+
+@item
+@code{crashcymbal @* cymc @*}
+@lilypond[notime,ragged-right]
+\drums { cymc4 cymc1 }
+@end lilypond
+@tab
+@code{crashcymbala @* cymca @*}
+@lilypond[notime,ragged-right]
+\drums { cymca4 cymca1 }
+@end lilypond
+@tab
+@code{crashcymbalb @* cymcb @*}
+@lilypond[notime,ragged-right]
+\drums { cymcb4 cymcb1 }
+@end lilypond
+@tab
+@code{ridecymbal @* cymr @*}
+@lilypond[notime,ragged-right]
+\drums { cymr4 cymr1 }
+@end lilypond
+
+@item
+@code{ridecymbala @* cymra @*}
+@lilypond[notime,ragged-right]
+\drums { cymra4 cymra1 }
+@end lilypond
+@tab
+@code{ridecymbalb @* cymrb @*}
+@lilypond[notime,ragged-right]
+\drums { cymrb4 cymrb1 }
+@end lilypond
+@tab
+@code{chinesecymbal @* cymch @*}
+@lilypond[notime,ragged-right]
+\drums { cymch4 cymch1 }
+@end lilypond
+@tab
+@code{splashcymbal @* cyms @*}
+@lilypond[notime,ragged-right]
+\drums { cyms4 cyms1 }
+@end lilypond
+
+@item
+@code{ridebell @* rb @*}
+@lilypond[notime,ragged-right]
+\drums { rb4 rb1 }
+@end lilypond
+@tab
+@code{cowbell @* cb @*}
+@lilypond[notime,ragged-right]
+\drums { cb4 cb1 }
+@end lilypond
+@tab
+@code{hibongo @* boh @*}
+@lilypond[notime,ragged-right]
+\drums { boh4 boh1 }
+@end lilypond
+@tab
+@code{openhibongo @* boho @*}
+@lilypond[notime,ragged-right]
+\drums { boho4 boho1 }
+@end lilypond
+
+@item
+@code{mutehibongo @* bohm @*}
+@lilypond[notime,ragged-right]
+\drums { bohm4 bohm1 }
+@end lilypond
+@tab
+@code{lobongo @* bol @*}
+@lilypond[notime,ragged-right]
+\drums { bol4 bol1 }
+@end lilypond
+@tab
+@code{openlobongo @* bolo @*}
+@lilypond[notime,ragged-right]
+\drums { bolo4 bolo1 }
+@end lilypond
+@tab
+@code{mutelobongo @* bolm @*}
+@lilypond[notime,ragged-right]
+\drums { bolm4 bolm1 }
+@end lilypond
+
+
+@item
+@code{hiconga @* cgh @*}
+@lilypond[notime,ragged-right]
+\drums { cgh4 cgh1 }
+@end lilypond
+@tab
+@code{openhiconga @* cgho @*}
+@lilypond[notime,ragged-right]
+\drums { cgho4 cgho1 }
+@end lilypond
+@tab
+@code{mutehiconga @* cghm @*}
+@lilypond[notime,ragged-right]
+\drums { cghm4 cghm1 }
+@end lilypond
+@tab
+@code{loconga @* cgl @*}
+@lilypond[notime,ragged-right]
+\drums { cgl4 cgl1 }
+@end lilypond
+
+@item
+@code{openloconga @* cglo @*}
+@lilypond[notime,ragged-right]
+\drums { cglo4 cglo1 }
+@end lilypond
+@tab
+@code{muteloconga @* cglm @*}
+@lilypond[notime,ragged-right]
+\drums { cglm4 cglm1 }
+@end lilypond
+@tab
+@code{hitimbale @* timh @*}
+@lilypond[notime,ragged-right]
+\drums { timh4 timh1 }
+@end lilypond
+@tab
+@code{lotimbale @* timl @*}
+@lilypond[notime,ragged-right]
+\drums { timl4 timl1 }
+@end lilypond
+
+@item
+@code{hiagogo @* agh @*}
+@lilypond[notime,ragged-right]
+\drums { agh4 agh1 }
+@end lilypond
+@tab
+@code{loagogo @* agl @*}
+@lilypond[notime,ragged-right]
+\drums { agl4 agl1 }
+@end lilypond
+@tab
+@code{sidestick @* ss @*}
+@lilypond[notime,ragged-right]
+\drums { ss4 ss1 }
+@end lilypond
+@tab
+@code{hisidestick @* ssh @*}
+@lilypond[notime,ragged-right]
+\drums { ssh4 ssh1 }
+@end lilypond
+
+@item
+@code{losidestick @* ssl @*}
+@lilypond[notime,ragged-right]
+\drums { ssl4 ssl1 }
+@end lilypond
+@tab
+@code{guiro @* gui @*}
+@lilypond[notime,ragged-right]
+\drums { gui4 gui1 }
+@end lilypond
+@tab
+@code{shortguiro @* guis @*}
+@lilypond[notime,ragged-right]
+\drums { guis4 guis1 }
+@end lilypond
+@tab
+@code{longguiro @* guil @*}
+@lilypond[notime,ragged-right]
+\drums { guil4 guil1 }
+@end lilypond
+
+@item
+@code{cabasa @* cab @*}
+@lilypond[notime,ragged-right]
+\drums { cab4 cab1 }
+@end lilypond
+@tab
+@code{maracas @* mar @*}
+@lilypond[notime,ragged-right]
+\drums { mar4 mar1 }
+@end lilypond
+@tab
+@code{shortwhistle @* whs @*}
+@lilypond[notime,ragged-right]
+\drums { whs4 whs1 }
+@end lilypond
+@tab
+@code{longwhistle @* whl @*}
+@lilypond[notime,ragged-right]
+\drums { whl4 whl1 }
+@end lilypond
+
+@item
+@code{handclap @* hc @*}
+@lilypond[notime,ragged-right]
+\drums { hc4 hc1 }
+@end lilypond
+@tab
+@code{tambourine @* tamb @*}
+@lilypond[notime,ragged-right]
+\drums { tamb4 tamb1 }
+@end lilypond
+@tab
+@code{vibraslap @* vibs @*}
+@lilypond[notime,ragged-right]
+\drums { vibs4 vibs1 }
+@end lilypond
+@tab
+@code{tamtam @* tt @*}
+@lilypond[notime,ragged-right]
+\drums { tt4 tt1 }
+@end lilypond
+
+@item
+@code{claves @* cl @*}
+@lilypond[notime,ragged-right]
+\drums { cl4 cl1 }
+@end lilypond
+@tab
+@code{hiwoodblock @* wbh @*}
+@lilypond[notime,ragged-right]
+\drums { wbh4 wbh1 }
+@end lilypond
+@tab
+@code{lowoodblock @* wbl @*}
+@lilypond[notime,ragged-right]
+\drums { wbl4 wbl1 }
+@end lilypond
+@tab
+@code{opencuica @* cuio @*}
+@lilypond[notime,ragged-right]
+\drums { cuio4 cuio1 }
+@end lilypond
+
+@item
+@code{mutecuica @* cuim @*}
+@lilypond[notime,ragged-right]
+\drums { cuim4 cuim1 }
+@end lilypond
+@tab
+@code{triangle @* tri @*}
+@lilypond[notime,ragged-right]
+\drums { tri4 tri1 }
+@end lilypond
+@tab
+@code{opentriangle @* trio @*}
+@lilypond[notime,ragged-right]
+\drums { trio4 trio1 }
+@end lilypond
+@tab
+@code{mutetriangle @* trim}
+@lilypond[notime,ragged-right]
+\drums { trim4 trim1 }
+@end lilypond
+
+@item
+@code{oneup @* ua @*}
+@lilypond[notime,ragged-right]
+\drums { ua4 ua1 }
+@end lilypond
+@tab
+@code{twoup @* ub @*}
+@lilypond[notime,ragged-right]
+\drums { ub4 ub1 }
+@end lilypond
+@tab
+@code{threeup @* uc @*}
+@lilypond[notime,ragged-right]
+\drums { uc4 uc1 }
+@end lilypond
+@tab
+@code{fourup @* ud @*}
+@lilypond[notime,ragged-right]
+\drums { ud4 ud1 }
+@end lilypond
+
+@item
+@code{fiveup @* ue @*}
+@lilypond[notime,ragged-right]
+\drums { ue4 ue1 }
+@end lilypond
+@tab
+@code{onedown @* da @*}
+@lilypond[notime,ragged-right]
+\drums { da4 da1 }
+@end lilypond
+@tab
+@code{twodown @* db @*}
+@lilypond[notime,ragged-right]
+\drums { db4 db1 }
+@end lilypond
+@tab
+@code{threedown @* dc @*}
+@lilypond[notime,ragged-right]
+\drums { dc4 dc1 }
+@end lilypond
+
+@item
+@code{fourdown @* dd @*}
+@lilypond[notime,ragged-right]
+\drums { dd4 dd1 }
+@end lilypond
+@tab
+@code{fivedown @* de @*}
+@lilypond[notime,ragged-right]
+\drums { de4 de1 }
+@end lilypond
+
+
+@end multitable
 
 
 @node Glosario técnico
@@ -1486,7 +2413,6 @@ fuente.
 * parser (analizador sintáctico)::
 * variable del analizador sintáctico::
 * prob (objeto de propiedades)::
-* cerradura simple::
 * smob (objeto de Scheme)::
 * stencil (sello)::
 @end menu
@@ -1500,14 +2426,14 @@ fuente.
 @cindex lista de asociación
 @cindex alist
 
-Una lista asociativa o abreviadamente una @strong{lista-A} (alist en
-inglés) es una pareja de Scheme que asocia un valor con una clave:
-@w{@code{(clave . valor)}}.  Por ejemplo, en @file{scm/lily.scm}, la
-lista-A @w{@qq{type-p-name-alist}} asocia ciertos predicadps de tipo
-(p.ej.@tie{}@code{ly:music?})  con nombres (p.ej.@tie{}@qq{music}) de
-forma que se pueda informar de los fallos de comprobación de tipo con
-un mensaje de consola que incluye el nombre del predicado de tipo
-esperado.
+Una lista asociativa o abreviadamente una @strong{lista-A} (alist
+en inglés) es una pareja de Scheme que asocia un valor con una
+clave: @w{@code{(clave . valor)}}.  Por ejemplo, en
+@file{scm/lily.scm}, la lista-A @w{@qq{type-p-name-alist}} asocia
+ciertos predicadps de tipo (p.ej.@tie{}@code{ly:music?})  con
+nombres (p.ej.@tie{}@qq{music}) de forma que se pueda informar de
+los fallos de comprobación de tipo con un mensaje de consola que
+incluye el nombre del predicado de tipo esperado.
 
 
 @node callback
@@ -1516,13 +2442,14 @@ esperado.
 
 @cindex callback
 
-Una @strong{callback} es una rutina, función o método cuya referencia
-se pasa como argumento en una llamada a otra rutina, permitiendo así
-que la runtina llamada invoque a aquélla.  La técnica permite que una
-capa de software de nivel más bajo llame a una función definida en una
-capa de nivel más alto.  Las funciones de callback se usan ampliamente
-en LilyPond para permitir al código de Scheme del nivel de usuario
-definir cuántas acciones de bajo nivel se llevan a cabo.
+Una @strong{callback} es una rutina, función o método cuya
+referencia se pasa como argumento en una llamada a otra rutina,
+permitiendo así que la runtina llamada invoque a aquélla.  La
+técnica permite que una capa de software de nivel más bajo llame a
+una función definida en una capa de nivel más alto.  Las funciones
+de callback se usan ampliamente en LilyPond para permitir al
+código de Scheme del nivel de usuario definir cuántas acciones de
+bajo nivel se llevan a cabo.
 
 
 @node closure (cerradura)
@@ -1530,26 +2457,19 @@ definir cuántas acciones de bajo nivel se llevan a cabo.
 @translationof closure
 
 @cindex cerradura
-@cindex cerradura simple
-
-En Scheme, se crea una @strong{cerradura} cuando una función, por lo
-general una expresión lambda, se pasa como variable.  La cerradura
-contiene el codigo de la función y referencias a las ligaduras léxicas
-de las variables libres de la función (es decir, las variables que se
-usan en la expresión pero se definen fuera de ella).  Cuando más tarde
-se aplica esta función a diferentes argumentos, las ligaduras de
-variables libres que se capturaron dentro de la cerradura se utilizan
-para obtener los valores de las variables libres que se usarán en el
-cálculo.  Una propiedad útil de las cerraduras es la retención de los
-valores internos de las variables de una invocación a otra,
-permitiendo así que se pueda mantener un estado.
-
-Una @strong{cerradura simple} es una cerradura cuya expresión no tiene
-variables libres y por ello no tiene ligaduras de variables libres.
 
-Una cerradura simple se representa en LilyPond mediante un @q{smob}
-que contiene la expresión y un método para aplicar la expresión a la
-lista de argumentos que se le pasa.
+En Scheme, se crea una @strong{cerradura} cuando una función, por
+lo general una expresión lambda, se pasa como variable.  La
+cerradura contiene el codigo de la función y referencias a las
+ligaduras léxicas de las variables libres de la función (es decir,
+las variables que se usan en la expresión pero se definen fuera de
+ella).  Cuando más tarde se aplica esta función a diferentes
+argumentos, las ligaduras de variables libres que se capturaron
+dentro de la cerradura se utilizan para obtener los valores de las
+variables libres que se usarán en el cálculo.  Una propiedad útil
+de las cerraduras es la retención de los valores internos de las
+variables de una invocación a otra, permitiendo así que se pueda
+mantener un estado.
 
 
 @node glifo
@@ -1561,10 +2481,10 @@ lista de argumentos que se le pasa.
 @cindex tipografía
 
 Un @strong{glifo} es una representación gráfica particular de un
-carácter tipográfico, o una combinación de dos caracteres que forman
-una ligadura.  Un conjunto de glifos con un estilo y forma uniformes
-forman una fuente tipográfica, y un conjunto de fuentes tipográficas
-que abarcan varios estilos forman un tipo.
+carácter tipográfico, o una combinación de dos caracteres que
+forman una ligadura.  Un conjunto de glifos con un estilo y forma
+uniformes forman una fuente tipográfica, y un conjunto de fuentes
+tipográficas que abarcan varios estilos forman un tipo.
 
 @seealso
 Referencia de la notación:
@@ -1580,12 +2500,12 @@ Referencia de la notación:
 @cindex objetos de presentación
 @cindex objetos gráficos
 
-Los objetos de LilyPond que representan elementos de la notación en la
-salida impresa tales como la cabeza y la plica de las notas, ligaduras
-de unión y de expresión, digitaciones, claves, et. se denominan
-@q{objetos de presentación}, a menudo conocidos como @q{OBjetos
-GRáficos}, o abreviadamente @strong{grobs}.  Se representan mediante
-instancias de la clase @code{Grob}.
+Los objetos de LilyPond que representan elementos de la notación
+en la salida impresa tales como la cabeza y la plica de las notas,
+ligaduras de unión y de expresión, digitaciones, claves, et. se
+denominan @q{objetos de presentación}, a menudo conocidos como
+@q{OBjetos GRáficos}, o abreviadamente @strong{grobs}.  Se
+representan mediante instancias de la clase @code{Grob}.
 
 @seealso
 Manual de aprendizaje:
@@ -1606,14 +2526,15 @@ Referencia de funcionamiento interno:
 @cindex propiedades inmutables
 @cindex propiedades compartidas
 
-Un objeto @strong{inmutable} es aquél cuyo estado no se puede
+Un objeto @strong{inmutable} es aquel cuyo estado no se puede
 modificar después de su creación, en contraste con los objetos
 mutables, que se pueden modificar después de su creación.
 
 En LilyPond, las propiedades inmutables o compartidas definen el
-estilo y comportamiento predeterminados de los grobs.  Se comparten
-por parte de muchos objetos.  En aparente contradicción con su nombre,
-se pueden cambiar utilizando @code{\override} y @code{\revert}.
+estilo y comportamiento predeterminados de los grobs.  Se
+comparten por parte de muchos objetos.  En aparente contradicción
+con su nombre, se pueden cambiar utilizando @code{\override} y
+@code{\revert}.
 
 @seealso
 Referencia de la notación:
@@ -1628,9 +2549,9 @@ Referencia de la notación:
 @cindex interfaz de grob
 @cindex interfaces de objetos gráficos
 
-Las acciones y propiedades comunes a un conjunto de grobs se agrupan
-en un objeto denominado @code{interfaz de grob (grob-inerface)}, o
-abreviadamente @q{interfaz}.
+Las acciones y propiedades comunes a un conjunto de grobs se
+agrupan en un objeto denominado @code{interfaz de grob
+(grob-inerface)}, o abreviadamente @q{interfaz}.
 
 @seealso
 Manual de aprendizaje:
@@ -1653,16 +2574,17 @@ Referencia de funcionamiento interno:
 @cindex analizador léxico
 @cindex Flex
 
-Un @strong{lexer} o analizador léxico es un programa que convierte una
-secuencia de caracteres en una secuencia de elementos o tokens, en un
-proceso que se llama análisis léxico.  El analizador léxico de
-LilyPond convierte el flujo obtenido a partir de un archivo de entrada
-@file{.ly} en un flujo descompuesto en tokens más apto para la
-siguiente fase del procesado: el análisis sintáctico, véase
-@ref{parser (analizador sintáctico)}.  El analizador léxico de
-LilyPond lexer está construido con la herramienta Flex a partir del
-archivo de lexer @file{lily/lexer.ll} que contiene las reglas léxicas.
-Este archivo es parte del código fuente y no se incluye dentro de la
+Un @strong{lexer} o analizador léxico es un programa que convierte
+una secuencia de caracteres en una secuencia de elementos o
+tokens, en un proceso que se llama análisis léxico.  El analizador
+léxico de LilyPond convierte el flujo obtenido a partir de un
+archivo de entrada @file{.ly} en un flujo descompuesto en tokens
+más apto para la siguiente fase del procesado: el análisis
+sintáctico, véase @ref{parser (analizador sintáctico)}.  El
+analizador léxico de LilyPond lexer está construido con la
+herramienta Flex a partir del archivo de lexer
+@file{lily/lexer.ll} que contiene las reglas léxicas.  Este
+archivo es parte del código fuente y no se incluye dentro de la
 instalación binaria de LilyPond.
 
 
@@ -1677,9 +2599,10 @@ Un objeto @strong{mutable} es aquél cuyo estado se puede modificar
 después de su creación, en contraste con un objeto inmutable, cuyo
 estado se fija en el momento de la creación.
 
-En LilyPond, las propiedades mutables contienen valores específicos de
-un grob.  Por lo general, las listas de otros objetos o los resultados
-de los cálculos se almacenan en propiedades mutables.
+En LilyPond, las propiedades mutables contienen valores
+específicos de un grob.  Por lo general, las listas de otros
+objetos o los resultados de los cálculos se almacenan en
+propiedades mutables.
 
 @seealso
 Referencia de la notación:
@@ -1710,19 +2633,20 @@ instancias parra los bloques midi, layout y paper.
 
 Un @strong{parser} o analizador sintáctico analiza la secuencia de
 tokens o elementos léxicos producida por un analizador léxico para
-determinar su estructura gramatical, agrupando los elementos léxicos
-en conjuntos mayores según las reglas de la gramática.  Si la
-secuencia de elementos léxicos es válida, el producto final es un
-árbol de tokens cuya raíz es el símbolo inicial de la gramática.  Si
-no se puede conseguir esto, el archivo es inválido y se produce un
-mensaje de error adecuado.  Las agrupaciones sintácticas y las reglas
-para construir estas agrupaciones a partir de sus elementos
-constituyentes para la sintaxis de LilyPond están definidas en
-@file{lily/parser.yy} y se muestran en la forma normal de Backus (BNF)
-dentro de @rcontrib{LilyPond grammar}.  Este archivo se usa para
-construir el analizador sintáctico durante la compilación del programa
-por parte del generador de analizadores sintácticos, Bison.  Es parte
-del código fuente y no se incluye dentro de la instalación binaria de
+determinar su estructura gramatical, agrupando los elementos
+léxicos en conjuntos mayores según las reglas de la gramática.  Si
+la secuencia de elementos léxicos es válida, el producto final es
+un árbol de tokens cuya raíz es el símbolo inicial de la
+gramática.  Si no se puede conseguir esto, el archivo es inválido
+y se produce un mensaje de error adecuado.  Las agrupaciones
+sintácticas y las reglas para construir estas agrupaciones a
+partir de sus elementos constituyentes para la sintaxis de
+LilyPond están definidas en @file{lily/parser.yy} y se muestran en
+la forma normal de Backus (BNF) dentro de @rcontrib{LilyPond
+grammar}.  Este archivo se usa para construir el analizador
+sintáctico durante la compilación del programa por parte del
+generador de analizadores sintácticos, Bison.  Es parte del código
+fuente y no se incluye dentro de la instalación binaria de
 LilyPond.
 
 
@@ -1745,19 +2669,21 @@ LilyPond.
 @cindex showLastLength
 @cindex showFirstLength
 
-Son variables definidas directamente dentro de Scheme.  Su uso directo
-por parte de los usuarios está fuertemente desaconsejado, porque su
-semántica de ámbito puede ser confusa.
+Son variables definidas directamente dentro de Scheme.  Su uso
+directo por parte de los usuarios está fuertemente desaconsejado,
+porque su semántica de ámbito puede ser confusa.
 
 Cuando el valor de una de estas variables se modifica dentro de un
-archivo @file{.ly}, el cambio es global, y a no ser que se revierta
-explícitamente, el nuevo valor persistirá hasta el final del archivo,
-afectando a todos los bloques @code{\score} así como a los archivos
-externos añadidos con la instrucción @code{\include}.  Esto puede
-conducir a consecuencias imprevistas y en proyectos de composición
-tipográfica complejos puede ser difícil de rastrear.
+archivo @file{.ly}, el cambio es global, y a no ser que se
+revierta explícitamente, el nuevo valor persistirá hasta el final
+del archivo, afectando a todos los bloques @code{\score} así como
+a los archivos externos añadidos con la instrucción
+@code{\include}.  Esto puede conducir a consecuencias imprevistas
+y en proyectos de composición tipográfica complejos puede ser
+difícil de rastrear.
 
-LilyPond utiliza las siguientes variables del analizador sintáctico:
+LilyPond utiliza las siguientes variables del analizador
+sintáctico:
 
 @itemize
 @item afterGraceFraction
@@ -1782,20 +2708,13 @@ LilyPond utiliza las siguientes variables del analizador sintáctico:
 @cindex prob
 
 Los OBjetos de PRopiedades, o abreviadamente @strong{probs}, son
-instancias de la clase @code{Prob}, que es una sencilla clase básica
-que tiene listas-A de propiedades mutables e inmutables y los métodos
-para manipularlas.  Las clases @code{Music} y @code{Stream_event}
-derivan de @code{Prob}.  También se crean instancias de la clase
-@code{Prob} para almacenar el contenido formateado de los grobs del
-sistema y los bloques de títulos durante el proceso de disposición de
-la página.
-
-
-@node cerradura simple
-@unnumberedsubsec cerradura simple
-@translationof simple closure
-
-Véase @ref{closure (cerradura)}.
+instancias de la clase @code{Prob}, que es una sencilla clase
+básica que tiene listas-A de propiedades mutables e inmutables y
+los métodos para manipularlas.  Las clases @code{Music} y
+@code{Stream_event} derivan de @code{Prob}.  También se crean
+instancias de la clase @code{Prob} para almacenar el contenido
+formateado de los grobs del sistema y los bloques de títulos
+durante el proceso de disposición de la página.
 
 
 @node smob (objeto de Scheme)
@@ -1805,14 +2724,14 @@ Véase @ref{closure (cerradura)}.
 @cindex smob
 @cindex objeto de Scheme
 
-Los @strong{Smobs}, u OBjetos de ScheMe, forman parte del mecanismo
-utilizado por Guile para exportar objetos de C y de C++ al código de
-Scheme.  En LilyPond, se crean smobs a partir de objetos de C++ por
-medio de macros.  Hay dos tipos de objetos smob: los smobs simples,
-orientados a objetos inmutables simples como números, y los smobs
-complejos, usados para objetos con identidades.  Si tiene acceso a las
-fuentes de LilyPond sources, encontrará más información en
-@file{lily/includes/smob.hh}.
+Los @strong{Smobs}, u OBjetos de ScheMe, forman parte del
+mecanismo utilizado por Guile para exportar objetos de C y de C++
+al código de Scheme.  En LilyPond, se crean smobs a partir de
+objetos de C++ por medio de macros.  Hay dos tipos de objetos
+smob: los smobs simples, orientados a objetos inmutables simples
+como números, y los smobs complejos, usados para objetos con
+identidades.  Si tiene acceso a las fuentes de LilyPond sources,
+encontrará más información en @file{lily/includes/smob.hh}.
 
 
 @node stencil (sello)
@@ -1822,17 +2741,18 @@ fuentes de LilyPond sources, encontrará más información en
 @cindex stencil
 @cindex sello
 
-Las instancias de la clase @strong{stencil} contienen la información
-necesaria para imprimir un objeto tipográfico.  Es un smob simple que
-contiene una caja de confinamiento, que a su vez define las
-dimensiones vertical y horizontal del objeto, y una expresión de
-Scheme que imprime el objeto cuendo se evalúa.  Los stencils o sellos
-se pueden combinar para formar sellos más complejos definidos por un
-árbol de expresiones de Scheme formado a partir de las expresiones de
-Scheme de los sellos que lo componen.
+Las instancias de la clase @strong{stencil} contienen la
+información necesaria para imprimir un objeto tipográfico.  Es un
+smob simple que contiene una caja de confinamiento, que a su vez
+define las dimensiones vertical y horizontal del objeto, y una
+expresión de Scheme que imprime el objeto cuendo se evalúa.  Los
+stencils o sellos se pueden combinar para formar sellos más
+complejos definidos por un árbol de expresiones de Scheme formado
+a partir de las expresiones de Scheme de los sellos que lo
+componen.
 
-La propiedad @code{stencil}, que conecta a un grob con su sello, se
-define dentro del interfaz @code{grob-interface}.
+La propiedad @code{stencil}, que conecta a un grob con su sello,
+se define dentro del interfaz @code{grob-interface}.
 
 @seealso
 Referencia de funcionamiento interno:
@@ -1864,9 +2784,9 @@ Referencia de funcionamiento interno:
 @appendixsec Identificadores de modificación de contextos
 @translationof Context modification identifiers
 
-Se definen las siguientes instrucciones
-para su uso como modificaciones de contexto dentro de un
-bloque @code{\layout} o @code{\with}.
+Se definen las siguientes instrucciones para su uso como
+modificaciones de contexto dentro de un bloque @code{\layout} o
+@code{\with}.
 
 @include context-mod-identifiers.tely
 
index c83c4a4c934325eee52fdbe662b7db4213965100..c2ed998cf0a046a2fc74b7e989b67ba14a5f8249 100644 (file)
@@ -52,7 +52,7 @@ ritmo; esto se estudia en @ref{Mostrar los ritmos de la melodía} y
 @ref{Crear instancias de pentagramas nuevos}.
 
 @item
-La salida MIDI se trata en una sección aparte; véase @ref{Percusión en MIDI}.
+La salida MIDI se trata en una sección aparte; véase @ref{Instrumentos MIDI}.
 
 @end itemize
 
@@ -60,7 +60,7 @@ La salida MIDI se trata en una sección aparte; véase @ref{Percusión en MIDI}.
 Referencia de la notación:
 @ref{Mostrar los ritmos de la melodía},
 @ref{Crear instancias de pentagramas nuevos}.
-@ref{Percusión en MIDI}.
+@ref{Instrumentos MIDI}.
 
 Fragmentos de código:
 @rlsr{Percussion}.
@@ -121,11 +121,11 @@ explícitamente o utilizar otras claves.
 
 Hay ciertos detalles respecto a cómo está contemplado el MIDI para los
 instrumentos de percusión; para ver los detalles consulte
-@ref{Percusión en MIDI}.
+@ref{Instrumentos MIDI}.
 
 @seealso
 Referencia de la notación:
-@ref{Percusión en MIDI},
+@ref{Instrumentos MIDI},
 @ref{Notas de percusión}.
 
 Archivos de inicio:
@@ -194,7 +194,7 @@ normales.  Esto se estudia en otras secciones del manual.
 @c "percussion in MIDI" gets a separate subsubsection for
 @c pitched percussion sounds.  -gp
 Referencia de la notación:
-@ref{Percusión en MIDI}.
+@ref{Instrumentos MIDI}.
 
 Fragmentos de código:
 @rlsr{Percussion}.
index 89412928638c0505421b2e4c4a6929bb339d2b4d..81fb3778d563a237ca53599a08fc8dc4b3c31cb5 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: fa12d929326daf49f84838a95b0570b32e4b3400
+    Translation of GIT committish: cca3c4542eded4f78aad08ed0928c368d7695e9a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -16,8 +16,9 @@
 
 @lilypondfile[quote]{pitches-headword.ly}
 
-En esta sección se discute cómo especificar la altura de las notas.
-Este proceso se compone de tres fases: entrada, modificación y salida.
+En esta sección se discute cómo especificar la altura de las
+notas.  Este proceso se compone de tres fases: entrada,
+modificación y salida.
 
 @menu
 * Escritura de notas::
@@ -31,10 +32,10 @@ Este proceso se compone de tres fases: entrada, modificación y salida.
 @subsection Escritura de notas
 @translationof Writing pitches
 
-En esta sección se describe la manera de introducir la altura de las
-notas.  Existen dos formas distintas de colocar las notas en su octava
-correspondiente: el modo absoluto y el relativo.  En casi todas las
-ocasiones, será más práctico el modo relativo.
+En esta sección se describe la manera de introducir la altura de
+las notas.  Existen dos formas distintas de colocar las notas en
+su octava correspondiente: el modo absoluto y el relativo.  En
+casi todas las ocasiones, será más práctico el modo relativo.
 
 @menu
 * Escritura de octava absoluta::
@@ -56,9 +57,10 @@ ocasiones, será más práctico el modo relativo.
 @cindex absoluta, introducción, de la octava
 @cindex octava, introducción absoluta
 
-El nombre de una nota se especifica usando las letras minúsculas de la
-@code{a} a la @code{g}.  Las notas cuyos nombres van desde @code{c}
-hasta @code{b} se imprimen en la octava inferior al Do central.
+El nombre de una nota se especifica usando las letras minúsculas
+de la @code{a} a la @code{g}.  Las notas cuyos nombres van desde
+@code{c} hasta @code{b} se imprimen en la octava inferior al Do
+central.
 
 @c don't use c' here.
 @lilypond[verbatim,quote]
@@ -77,31 +79,47 @@ hasta @code{b} se imprimen en la octava inferior al Do central.
 
 Se pueden especificar otras octavas mediante una comilla simple
 quote@tie{}(@code{'}) o una coma@tie{}(@code{,}) .
-Cada@tie{}@code{'} eleva la altura en una octava; cada@tie{}@code{,}
-baja la altura una octava.
+Cada@tie{}@code{'} eleva la altura en una octava;
+cada@tie{}@code{,} baja la altura una octava.
 
 @lilypond[verbatim,quote]
 {
   \clef treble
-  c'4 c'' e' g
-  d''4 d' d c
+  c'4 e' g' c''
+  c'4 g b c'
   \clef bass
-  c,4 c,, e, g
-  d,,4 d, d c
+  c,4 e, g, c
+  c,4 g,, b,, c,
 }
 @end lilypond
 
-@funindex absolute
-@funindex \absolute
-Se puede indicar explícitamente que la música está en notación de
-octava absoluta si se precede con @code{\absolute}:
+@funindex fixed
+@funindex \fixed
+Las marcas de octava comunes se pueden escribir una sola vez sobre
+una nota de referencia si se emplea @code{\fixed} antes de la
+música.  Las notas dentro de @code{\fixed} solo necesitan las
+marcas de apóstrofo @code{'} o de comoa @tie{}@code{,} cuando
+están por encima o por debajo de la octava de la nota de
+referencia.
 
-@example
-\absolute @var{musicexpr}
-@end example
+@lilypond[verbatim,quote]
+{
+  \fixed c' {
+    \clef treble
+    c4 e g c'
+    c4 g, b, c
+  }
+  \clef bass
+  \fixed c, {
+    c4 e g c'
+    c4 g, b, c
+  }
+}
+@end lilypond
 
-se interpreta en el modo de entrada de octava absoluta
-independientemende de en qué contexto aparece.
+La altura de las notas de la expresión musical que sigue a
+@code{\fixed} no reultan afectadas por un @code{\relative}
+circundante, que se estudia a continuación.
 
 @seealso
 Glosario musical:
@@ -137,21 +155,22 @@ usando la instrucción @code{\relative}:
 \relative @var{altura_inicial} @var{expresión_musical}
 @end example
 
-En el modo relativo, se supone que cada nota se encuentra lo más cerca
-posible de la nota anterior.  Esto significa que la octava de una nota
-que está dentro de @code{@var{expresión_musical}} se calcula como sigue:
+En el modo relativo, se supone que cada nota se encuentra lo más
+cerca posible de la nota anterior.  Esto significa que la octava
+de una nota que está dentro de @code{@var{expresión_musical}} se
+calcula como sigue:
 
 @itemize
 @item
-Si no se usa ninguna marca de cambio de octava en una nota, su octava
-se calcula de forma que el intervalo que forme con la nota anterior
-sea menor de una quinta.  Este intervalo se determina sin considerar
-las alteraciones.
+Si no se usa ninguna marca de cambio de octava en una nota, su
+octava se calcula de forma que el intervalo que forme con la nota
+anterior sea menor de una quinta.  Este intervalo se determina sin
+considerar las alteraciones.
 
 @item
 Se puede añadir una marca de cambio de octava@tie{}@code{'}
-o@tie{}@code{,} para elevar o bajar la altura, respectivamente, en una
-octava más en relación con la altura calculada sin esta marca.
+o@tie{}@code{,} para elevar o bajar la altura, respectivamente, en
+una octava más en relación con la altura calculada sin esta marca.
 
 @item
 Se pueden usar varias marcas de cambio de octava.  Por ejemplo,
@@ -159,8 +178,9 @@ Se pueden usar varias marcas de cambio de octava.  Por ejemplo,
 
 @item
 La altura de la primera nota es relativa a
-@code{@var{altura_inicial}}.  @code{@var{altura_inicial}} se especifica en
-modo de octava absoluta.  ¿Qué opciones tienen sentido?
+@code{@var{altura_inicial}}.  @code{@var{altura_inicial}} se
+especifica en modo de octava absoluta.  ¿Qué opciones tienen
+sentido?
 
 @table @asis
 @item @code{c} (Do), en cualquier octava
@@ -171,18 +191,17 @@ sostenido) por encima de @code{c'''}, tendríamos que escribir algo
 como @code{\relative @{ gis''' @dots{}  @}}
 
 @item una nota que está una o más octavas de la primera nota de dentro
-Escribir @code{\relative @{ gis''' @dots{} @}} hace que sea
-fácil determinar la altura absoluta de la primera nota de dentro.
+Escribir @code{\relative @{ gis''' @dots{} @}} hace que sea fácil
+determinar la altura absoluta de la primera nota de dentro.
 
 @item ninguna altura de inicio explícita
-Esta opción (concretamente, escribir @code{\relative @{ gis'''
-@dots{} @}}) se puede ver como una versión más compacta de la
-opción anterior: la primera nota de dentro se escribe ella misma
-en altura absoluta.  Esto resulta ser equivalente a elegir
-@code{f} (Fa) como la altura de referencia.
+La forma @code{\relative @{ gis''' @dots{} @}} sirve como una
+versión más compacta de la opción anterior: la primera nota de
+dentro se escribe ella misma en altura absoluta (esto resulta ser
+equivalente a elegir @code{f} (Fa) como la altura de referencia).
 @end table
 
-La documentación suele utilizar la primera opción.
+La documentación suele utilizar esta última opción.
 @end itemize
 
 Aquí podemos ver el modo relativo en acción:
@@ -196,8 +215,8 @@ Aquí podemos ver el modo relativo en acción:
 }
 @end lilypond
 
-Las marcas de cambio de octava se utilizan para intervalos mayores de
-la cuarta:
+Las marcas de cambio de octava se utilizan para intervalos mayores
+de la cuarta:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -206,8 +225,8 @@ la cuarta:
 }
 @end lilypond
 
-Una serie de notas sin ninguna marca de octava puede, a pesar de todo,
-abarcar intervalos muy grandes:
+Una serie de notas sin ninguna marca de octava puede, a pesar de
+todo, abarcar intervalos muy grandes:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -216,8 +235,9 @@ abarcar intervalos muy grandes:
 }
 @end lilypond
 
-Cuando hay unos bloques @code{\relative} anidados dentro de otros, es
-de aplicación el bloque @code{\relative} más interno.
+Cuando hay unos bloques @code{\relative} anidados dentro de otros,
+el bloque @code{\relative} más interno comienza con su propia nota
+de referencia independientemente del @code{\relative} exterior.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -228,7 +248,8 @@ de aplicación el bloque @code{\relative} más interno.
 }
 @end lilypond
 
-@code{\relative} no tiene efecto sobre los bloques @code{\chordmode}.
+@code{\relative} no tiene efecto sobre los bloques
+@code{\chordmode}.
 
 @lilypond[verbatim,quote]
 \new Staff {
@@ -242,8 +263,9 @@ de aplicación el bloque @code{\relative} más interno.
 @code{\relative} no se permite dentro de los bloques
 @code{\chordmode}.
 
-La música que esa dentro de un bloque @code{\transpose} es absoluta, a
-no ser que se incluya una instrucción @code{\relative}.
+La música que esa dentro de un bloque @code{\transpose} es
+absoluta, a no ser que se incluya una instrucción
+@code{\relative}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -260,10 +282,10 @@ no ser que se incluya una instrucción @code{\relative}.
 @cindex acordes e introducción relativa de la octava
 @cindex relativa, introducción de la octava, y acordes
 
-Si el elemento anterior es un acorde, la primera nota del acorde se
-utiliza para determinar la primera nota del siguiente acorde.  Dentro
-de los acordes, la siguiente nota siempre está en relación a la
-anterior.
+Si el elemento anterior es un acorde, la primera nota del acorde
+se utiliza para determinar la primera nota del siguiente acorde.
+Dentro de los acordes, la siguiente nota siempre está en relación
+a la anterior.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -277,9 +299,9 @@ anterior.
 Como se explicó más arriba, la octava de las notas se calcula
 solamente a partir de sus nombres, sin tener en cuenta alteración
 alguna.  Por tanto, un Mi doble sostenido después de un Si se
-escribirá más agudo, mientras que un Fa doble sostenido se escribirá
-más grave.  En otras palabras, se considera a la cuarta doble
-aumentada un intervalo menor que la quinta doble disminuida,
+escribirá más agudo, mientras que un Fa doble sostenido se
+escribirá más grave.  En otras palabras, se considera a la cuarta
+doble aumentada un intervalo menor que la quinta doble disminuida,
 independientemente del número de semitonos de cada uno de ellos.
 
 @lilypond[verbatim,quote]
@@ -291,10 +313,6 @@ independientemente del número de semitonos de cada uno de ellos.
 }
 @end lilypond
 
-Es una consecuencia de las reglas expuestas que la primera nota dentro
-de una expresión musical precedida de @code{@w{\relative f}} se
-interpreta igual que si estuviera escrita en el modo de altura
-absoluta.
 
 @seealso
 Glosario musical:
@@ -332,12 +350,12 @@ Referencia de funcionamiento interno:
 
 @c duplicated in Key signature and Accidentals
 @warning{Las alteraciones accidentales y las armaduras son una
-frecuente causa de confusión para los nuevos usuarios.  En LilyPond,
-los nombres de las notas son el código de entrada en bruto; la
-armadura y la clave determinan de qué forma se presenta este código en
-bruto.  Una nota sin alteración como@tie{}@code{c} significa @q{Do
-natural}, si que le afecten la armadura ni la clave.  Para ver más
-información, consulte @rlearning{Alteraciones accidentales y armaduras}.}
+frecuente causa de confusión para los nuevos usuarios.  En
+LilyPond, los nombres de las notas especifican las alturas; la
+armadura y la clave determinan de qué forma se presentan estas
+alturas.  Una nota sin alteración como@tie{}@code{c} significa
+@q{Do natural}, si que le afecten la armadura ni la clave.  Para
+ver más información, consulte @rlearning{Alturas y armaduras}.}
 
 @cindex notas, nombres holandeses de
 @cindex notas, nombres predeterminados
@@ -351,21 +369,22 @@ información, consulte @rlearning{Alteraciones accidentales y armaduras}.}
 @cindex becuadro
 @cindex natural, nota
 
-Se escribe una nota @notation{sostenida} añadiendo @code{is} al nombre
-de la nota, y un @notation{bemol} añadiendo @code{es}.  Como es de
-esperar, un @notation{dobles sostenido} y un @notation{doble bemol} se
-obtiene añadiendo @code{isis} o @code{eses}.  Esta sintaxis deriva de
-los nombres de las notas en holandés.  Para utilizar otros nombres
-para las alteraciones, consulte @ref{Nombres de las notas en otros idiomas}.
+Se escribe una nota @notation{sostenida} añadiendo @code{is} al
+nombre de la nota, y un @notation{bemol} añadiendo @code{es}.
+Como es de esperar, un @notation{dobles sostenido} y un
+@notation{doble bemol} se obtiene añadiendo @code{isis} o
+@code{eses}.  Esta sintaxis deriva de los nombres de las notas en
+holandés.  Para utilizar otros nombres para las alteraciones,
+consulte @ref{Nombres de las notas en otros idiomas}.
 
 @lilypond[verbatim,quote,fragment]
 \relative c'' { ais1 aes aisis aeses }
 @end lilypond
 
-Un becuadro cancelará el efecto de una alteración accidental o de la
-armadura.  Sin embargo, los becuadros no se codifican dentro de la
-sintaxis del nombre de la nota con un sufijo; una nota becuadro se
-muestra como un simple nombre de nota natural:
+Una nota natural se introduce como el nombre de la nota, sin más;
+no se necesita ningún sufijo.  Se impirime un símbolo de becuadro
+si es necesario para cancelar el efecto de una alteración o
+armadura anterior.
 
 @lilypond[verbatim,quote,fragment]
 \relative c'' { a4 aes a2 }
@@ -392,14 +411,13 @@ continuación presentamos una serie de DOs cada vez más agudos:
 @funindex ?
 @funindex !
 
-Normalmente las alteraciones accidentales se imprimen automáticamente,
-pero también puede imprimirlas manualmente.  Un alteración
-recordatoria se puede forzar añadiendo un signo de
-admiración@tie{}@code{!}  después de la altura de la nota.  Se puede
-obtener una alteración de precaución (o sea, una alteración entre
-paréntesis) añadiendo el signo de interrogación@tie{}@code{?} después
-del nombre de la nota.  Estas alteraciones adicionales se pueden usar
-también para producir notas con becuadro.
+Normalmente las alteraciones accidentales se imprimen
+automáticamente, pero también puede imprimirlas manualmente.  Un
+alteración recordatoria se puede forzar añadiendo un signo de
+admiración@tie{}@code{!}  después de la altura de la nota.  Se
+puede obtener una alteración de precaución (o sea, una alteración
+entre paréntesis) añadiendo el signo de
+interrogación@tie{}@code{?} después del nombre de la nota.
 
 @lilypond[verbatim,quote,fragment]
 \relative c'' { cis cis cis! cis? c c c! c? }
@@ -408,8 +426,8 @@ también para producir notas con becuadro.
 @cindex alteración en nota ligada
 @cindex ligadura, alteraciones y
 
-Las alteraciones sobre notas unidas por ligadura sólo se imprimen al
-comienzo de un sistema:
+Las alteraciones sobre notas unidas por ligadura sólo se imprimen
+al comienzo de un sistema:
 
 @lilypond[verbatim,quote,fragment,ragged-right]
 \relative c'' {
@@ -438,7 +456,7 @@ Glosario musical:
 @rglos{quarter tone}.
 
 Manual de aprendizaje:
-@rlearning{Alteraciones accidentales y armaduras}.
+@rlearning{Alturas y armaduras}.
 
 Referencia de la notación:
 @ref{Alteraciones accidentales automáticas},
@@ -458,9 +476,9 @@ Referencia de funcionamiento interno:
 @cindex cuartos de tono, alteraciones
 
 @knownissues
-No existen estándares reconocidos ampliamente para denotar
-los bemoles de tres cuartos, de manera que los símbolos de LilyPond
-no se ajustan a ningún estándar.
+No existen estándares reconocidos ampliamente para denotar los
+bemoles de tres cuartos, de manera que los símbolos de LilyPond no
+se ajustan a ningún estándar.
 
 
 @node Nombres de las notas en otros idiomas
@@ -472,11 +490,11 @@ no se ajustan a ningún estándar.
 @cindex idioma, nombres de nota en otros
 @cindex idioma, alturas en otros
 
-Existen conjuntos predefinidos de nombres de notas y sus alteraciones
-para algunos idiomas aparte del inglés.  La selección del idioma de
-los nombres de las notas se suele hacer al principio del archivo; el
-ejemlo siguiente está escrito utilizando los nombres italianos de las
-notas:
+Existen conjuntos predefinidos de nombres de notas y sus
+alteraciones para algunos idiomas aparte del inglés.  La selección
+del idioma de los nombres de las notas se suele hacer al principio
+del archivo; el ejemlo siguiente está escrito utilizando los
+nombres italianos de las notas:
 
 @lilypond[quote,verbatim]
 \language "italiano"
@@ -486,8 +504,8 @@ notas:
 }
 @end lilypond
 
-Los idiomas disponibles y los nombres de las notas que definen son los
-siguientes:
+Los idiomas disponibles y los nombres de las notas que definen son
+los siguientes:
 
 @quotation
 @multitable {@code{nederlands}} {do re mi fa sol la sib si}
@@ -518,46 +536,47 @@ siguientes:
 @end multitable
 @end quotation
 
-Además de los nombres de las notas, los sufijos de las alteraciones
-pueden también variar dependiendo del idioma:
+Además de los nombres de las notas, los sufijos de las
+alteraciones pueden también variar dependiendo del idioma:
 
 @quotation
-@multitable {@code{nederlands}} {-s/-sharp} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
+@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{ess}/-@code{es}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{essess}/-@code{eses}}
 @headitem Idioma
   @tab sostenido @tab bemol @tab doble sostenido @tab doble bemol
 @item @code{nederlands}
-  @tab -is @tab -es @tab -isis @tab -eses
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
 @item @code{catalan}
-  @tab -d/-s @tab -b @tab -dd/-ss @tab -bb
+  @tab -@code{d}/-@code{s} @tab -@code{b} @tab -@code{dd}/-@code{ss} @tab -@code{bb}
 @item @code{deutsch}
-  @tab -is @tab -es @tab -isis @tab -eses
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
 @item @code{english}
-  @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
-    @tab -ff/-flatflat
-@item @code{espanol} o @code{español}
-  @tab -s @tab -b @tab -ss/-x @tab -bb
-@item @code{italiano} o @code{français}
-  @tab -d @tab -b @tab -dd @tab -bb
+  @tab -@code{s}/-@code{-sharp} @tab -@code{f}/-@code{-flat} @tab -@code{ss}/-@code{x}/-@code{-sharpsharp}
+    @tab -@code{ff}/-@code{-flatflat}
+@item @code{espanol} or @code{español}
+  @tab -@code{s} @tab -@code{b} @tab -@code{ss}/-@code{x} @tab -@code{bb}
+@item @code{italiano} or @code{français}
+  @tab -@code{d} @tab -@code{b} @tab -@code{dd} @tab -@code{bb}
 @item @code{norsk}
-  @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
-    @tab -essess/-eses
+  @tab -@code{iss}/-@code{is} @tab -@code{ess}/-@code{es} @tab -@code{ississ}/-@code{isis}
+    @tab -@code{essess}/-@code{eses}
 @item @code{portugues}
-  @tab -s @tab -b @tab -ss @tab -bb
+  @tab -@code{s} @tab -@code{b} @tab -@code{ss} @tab -@code{bb}
 @item @code{suomi}
-  @tab -is @tab -es @tab -isis @tab -eses
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
 @item @code{svenska}
-  @tab -iss @tab -ess @tab -ississ @tab -essess
+  @tab -@code{iss} @tab -@code{ess} @tab -@code{ississ} @tab -@code{essess}
 @item @code{vlaams}
-  @tab -k @tab -b @tab -kk @tab -bb
+  @tab -@code{k} @tab -@code{b} @tab -@code{kk} @tab -@code{bb}
 @end multitable
 @end quotation
 
-En holandés, @code{aes} se contrae como @code{as}, pero las dos formas
-se aceptan en LilyPond.  De forma similar, se aceptan tanto @code{es}
-como @code{ees}.  Esto se aplica también a
+En holandés, @code{aes} se contrae como @code{as}, pero las dos
+formas se aceptan en LilyPond.  De forma similar, se aceptan tanto
+@code{es} como @code{ees}.  Esto se aplica también a
 @code{aeses}@tie{}/@tie{}@code{ases} y a
-@code{eeses}@tie{}/@tie{}@code{eses}.  A veces se definen solamente
-estos nombres contraídos en los archivos de idioma correspondientes.
+@code{eeses}@tie{}/@tie{}@code{eses}.  A veces se definen
+solamente estos nombres contraídos en los archivos de idioma
+correspondientes.
 
 @lilypond[verbatim,quote,fragment]
 \relative c'' { a2 as e es a ases e eses }
@@ -569,13 +588,13 @@ estos nombres contraídos en los archivos de idioma correspondientes.
 @cindex sesqui-sostenido
 @cindex sesqui-bemol
 
-Algunas músicas utilizan microtonos cuyas alteraciones son fracciones
-de un sostenido o bemol @q{normales}.  La tabla siguiente relacione
-los nombres de las notas para las alteraciones de un cuarto de tono en
-distintos idiomas; aquí, los prefijos @notation{semi-} y
-@notation{sesqui-} respectivamente significan @q{medio} y @q{uno y
-medio}.  Los idiomas que no aparecen en esta tabla no aportan aún
-nombres especiales para las notas.
+Algunas músicas utilizan microtonos cuyas alteraciones son
+fracciones de un sostenido o bemol @q{normales}.  La tabla
+siguiente relacione los nombres de las notas para las alteraciones
+de un cuarto de tono en distintos idiomas; aquí, los prefijos
+@notation{semi-} y @notation{sesqui-} respectivamente significan
+@q{medio} y @q{uno y medio}.  Los idiomas que no aparecen en esta
+tabla no aportan aún nombres especiales para las notas.
 
 @quotation
 @multitable {@code{nederlands}} {@b{semi-sostenido}} {@b{semi-bemol}} {@b{sesqui-sostenido}} {@b{sesqui-bemol}}
@@ -597,11 +616,12 @@ nombres especiales para las notas.
 @end multitable
 @end quotation
 
-Casi todos los idiomas presentados aquí están asociados comúnmente con
-la música clásica occidental, también conocida como @notation{Período
-de la práctica común}.  Sin embargo, también están contempladas las
-alturas y los sistemas de afinación alternativos: véase @ref{Notación
-común para músicas no occidentales}.
+Casi todos los idiomas presentados aquí están asociados comúnmente
+con la música clásica occidental, también conocida como
+@notation{Período de la práctica común}.  Sin embargo, también
+están contempladas las alturas y los sistemas de afinación
+alternativos: véase @ref{Notación común para músicas no
+occidentales}.
 
 @seealso
 Glosario musical:
@@ -646,16 +666,17 @@ Esta sección trata de la manera de modificar las alturas.
 @funindex octaveCheck
 @funindex controlpitch
 
-En el modo relativo, es fácil olvidar una marca de cambio de octava.
-Las comprobaciones de octava hacen más fácil encontrar estos errores,
-mediante la presentación de una advertencia y corrigiendo la octava si
-la nota se encuentra en una octava distinta de lo esperado.
+En el modo relativo, es fácil olvidar una marca de cambio de
+octava.  Las comprobaciones de octava hacen más fácil encontrar
+estos errores, mediante la presentación de una advertencia y
+corrigiendo la octava si la nota se encuentra en una octava
+distinta de lo esperado.
 
-Para comprobar la octava de una nota, especifique la octava absoluta
-después del símbolo@tie{}@code{=}.  Este ejemplo genera un mensaje de
-advertencia (y corrige la altura) porque la segunda nota es la octava
-absoluta @code{d''} en lugar de @code{d'} como indica la corrección de
-octava.
+Para comprobar la octava de una nota, especifique la octava
+absoluta después del símbolo@tie{}@code{=}.  Este ejemplo genera
+un mensaje de advertencia (y corrige la altura) porque la segunda
+nota es la octava absoluta @code{d''} en lugar de @code{d'} como
+indica la corrección de octava.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -664,15 +685,15 @@ octava.
 }
 @end lilypond
 
-La octava de las notas se puede comprobar también con la instrucción
-@code{\octaveCheck@tie{}@var{altura_de_control}}.
-@code{@var{altura_de_control}} se especifica en modo absoluto.  Esto
-comprueba que el intervalo entre la nota anterior y la
-@code{@var{altura_de_control}} se encuentra dentro de una cuarta (es decir, el
-cálculo normal para el modo relativo).  Si esta comprobación fracasa,
-se imprime un mensaje de advertencia, pero la nota previa no se
-modifica.  Las notas posteriores están en relación a la
-@code{@var{altura_de_control}}.
+La octava de las notas se puede comprobar también con la
+instrucción @code{\octaveCheck@tie{}@var{altura_de_control}}.
+@code{@var{altura_de_control}} se especifica en modo absoluto.
+Esto comprueba que el intervalo entre la nota anterior y la
+@code{@var{altura_de_control}} se encuentra dentro de una cuarta
+(es decir, el cálculo normal para el modo relativo).  Si esta
+comprobación fracasa, se imprime un mensaje de advertencia.
+Aunque la nota previa no se modifica, las notas posteriores están
+en relación al valor corregido.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -722,25 +743,26 @@ Referencia de funcionamiento interno:
 @funindex \transpose
 @funindex transpose
 
-Una expresión musical se puede transportar mediante @code{\transpose}.
-La sintaxis es
+Una expresión musical se puede transportar mediante
+@code{\transpose}.  La sintaxis es
 @example
 \transpose @var{nota_origen} @var{nota_destino} @var{expresión_musical}
 @end example
 
-Esto significa que la @code{@var{expresión_musical}} se transporta el
-intervalo que hay entre las notas @code{@var{nota_origen}} y
-@code{@var{nota_destino}}: cualquier nota con la altura de @code{@var{nota_origen}}
-se cambia por @code{@var{nota_destino}} y cualquier otra nota se transporta
-el mismo intervalo.  Las dos notas se introducen en modo absoluto.
+Esto significa que la @code{@var{expresión_musical}} se transporta
+el intervalo que hay entre las notas @code{@var{nota_origen}} y
+@code{@var{nota_destino}}: cualquier nota con la altura de
+@code{@var{nota_origen}} se cambia por @code{@var{nota_destino}} y
+cualquier otra nota se transporta el mismo intervalo.  Las dos
+notas se introducen en modo absoluto.
 
-@warning{La música que está dentro de un bloque @code{@bs{}transpose}
-es absoluta, a no ser que se incluya una instrucción
-@code{@bs{}relative} dentro del bloque.}
+@warning{La música que está dentro de un bloque
+@code{@bs{}transpose} es absoluta, a no ser que se incluya una
+instrucción @code{@bs{}relative} dentro del bloque.}
 
-Por ejemplo, tomemos una pieza escrita en la tonalidad de Re mayor.
-Se puede transportar hacia arriba a Mi mayor; observe que también la
-armadura de la tonalidad se transporta automáticamente.
+Por ejemplo, tomemos una pieza escrita en la tonalidad de Re
+mayor.  Se puede transportar hacia arriba a Mi mayor; observe que
+también la armadura de la tonalidad se transporta automáticamente.
 
 @lilypond[verbatim,quote]
 \transpose d e {
@@ -753,8 +775,9 @@ armadura de la tonalidad se transporta automáticamente.
 
 Si una particella escrita en Do (@notation{afinación de concierto}
 normal) se debe tocar con un clarinete en La (para el que un La se
-escribe como un Do, y que suena una tercera menor por debajo de lo que
-está escrito), la particella correspondiente se produce mediante:
+escribe como un Do, y que suena una tercera menor por debajo de lo
+que está escrito), la particella correspondiente se produce
+mediante:
 
 @lilypond[verbatim,quote]
 \transpose a c' {
@@ -766,15 +789,15 @@ está escrito), la particella correspondiente se produce mediante:
 @end lilypond
 
 @noindent
-Observe que especificamos @code{\key c \major} de forma explícita.  Si
-no especificamos ninguna tonalidad, las notas se transportan pero no
-se imprime la armadura.
+Observe que especificamos @code{\key c \major} de forma explícita.
+Si no especificamos ninguna tonalidad, las notas se transportan
+pero no se imprime la armadura.
 
 @code{\transpose} distingue entre notas enarmónicas: tanto
-@code{\transpose c cis} como @code{\transpose c des} transportan un
-semitono hacia arriba.  La primera versión imprime sostenidos y las
-notas no se mueven de su lugar en la escala, en cambio la segunda
-imprime bemoles de la nota siguiente.
+@code{\transpose c cis} como @code{\transpose c des} transportan
+un semitono hacia arriba.  La primera versión imprime sostenidos y
+las notas no se mueven de su lugar en la escala, en cambio la
+segunda imprime bemoles de la nota siguiente.
 
 @lilypond[verbatim,quote]
 music = \relative { c' d e f }
@@ -787,12 +810,13 @@ music = \relative { c' d e f }
 @cindex transpositores, instrumentos
 @cindex instrumentos transpositores
 
-@code{\transpose} también se puede usar para introducir notas escritas
-para un instrumento transpositor.  Los ejemplos anteriores muestran
-cómo escribir alturas en Do (o en @notation{afinación de concierto}) y
-tipografiarlas para un instrumento transpositor, pero también es
-posible el caso contrario si, por ejemplo, tenemos un conjunto de
-partes instrumentales y quiere hacer un guión en Do para el director.
+@code{\transpose} también se puede usar para introducir notas
+escritas para un instrumento transpositor.  Los ejemplos
+anteriores muestran cómo escribir alturas en Do (o en
+@notation{afinación de concierto}) y tipografiarlas para un
+instrumento transpositor, pero también es posible el caso
+contrario si, por ejemplo, tenemos un conjunto de partes
+instrumentales y quiere hacer un guión en Do para el director.
 Por ejemplo, al introducir música para trompeta en Si bemol que
 comienza por un Mi en la partitura (Re de concierto), se puede
 escribir:
@@ -804,7 +828,8 @@ musicaEnSiBemol = @{ e4 @dots{} @}
 
 @noindent
 Para imprimir esta música en Fa (por ejemplo, al arreglarla para
-trompa) puede envolver la música existente con otro @code{\transpose}:
+trompa) puede envolver la música existente con otro
+@code{\transpose}:
 
 @example
 musicaEnSiBemol = @{ e4 @dots{} @}
@@ -841,14 +866,16 @@ Referencia de funcionamiento interno:
 @funindex relative
 
 @knownissues
-La conversión relativa no afecta a las secciones @code{\transpose},
-@code{\chordmode} ni @code{\relative} dentro de su argumento.  Para
-usar el modo relativo dentro de música transportada, se debe colocar
-otro @code{\relative} dentro de @code{\transpose}.
+La conversión relativa no afecta a las secciones
+@code{\transpose}, @code{\chordmode} ni @code{\relative} dentro de
+su argumento.  Para usar el modo relativo dentro de música
+transportada, se debe colocar otro @code{\relative} dentro de
+@code{\transpose}.
 
 No se imprimen alteraciones accidentales triples cuando se usa
-@code{\transpose}.  En lugar de ello, se usará una nota @q{equivalente
-enarmónicamente} (p.ej., Re bemol en lugar de Mi triple bemol).
+@code{\transpose}.  En lugar de ello, se usará una nota
+@q{equivalente enarmónicamente} (p.ej., Re bemol en lugar de Mi
+triple bemol).
 
 
 @node Inversión
@@ -866,10 +893,10 @@ operación con:
 \inversion @var{nota-pivote} @var{nota-destino} @var{expresión_musical}
 @end example
 
-La @code{@var{expresión_musical}} se invierte intervalo a intervalo
-alrededor de @code{@var{nota-pivote}}, y después se transporta de
-manera que @code{@var{nota-pivote}} se hace corresponder con
-@code{@var{nota-destino}}.
+La @code{@var{expresión_musical}} se invierte intervalo a
+intervalo alrededor de @code{@var{nota-pivote}}, y después se
+transporta de manera que @code{@var{nota-pivote}} se hace
+corresponder con @code{@var{nota-destino}}.
 
 @lilypond[verbatim,quote]
 music = \relative { c' d e f }
@@ -881,8 +908,8 @@ music = \relative { c' d e f }
 @end lilypond
 
 @warning{Los motivos a invertir deberían venir expresados en modo
-absoluto o convertirse previamente a la forma absoluta encerrándolos
-en un bloque @code{\relative}.}
+absoluto o convertirse previamente a la forma absoluta
+encerrándolos en un bloque @code{\relative}.}
 
 @seealso
 Referencia de la notación:
@@ -935,14 +962,15 @@ Referencia de la notación:
 @cindex operaciones modales
 
 En una composición musical que está basada en una escala, con
-frecuencia se transforman los motivos de diversas formas.  Un motivo
-se puede @notation{transportar} para que comience en distintos lugares
-de la escala o puede @notation{invertirse} alrededor de una nota
-pivote de la escala.  También se puede revertir para producir una
-@notation{retrogradación}, véase @ref{Retrogradación}.
+frecuencia se transforman los motivos de diversas formas.  Un
+motivo se puede @notation{transportar} para que comience en
+distintos lugares de la escala o puede @notation{invertirse}
+alrededor de una nota pivote de la escala.  También se puede
+revertir para producir una @notation{retrogradación}, véase
+@ref{Retrogradación}.
 
-@warning{Cualquier nota que no entre en la escada dada, se dejará sin
-transformar.}
+@warning{Cualquier nota que no entre en la escada dada, se dejará
+sin transformar.}
 
 @subsubsubheading Transposición modal
 
@@ -960,8 +988,8 @@ Se puede transportar un motivo dentro de una escala dada con:
 \modalTranspose @var{nota-origen} @var{nota-destino} @var{escala} @var{motivo}
 @end example
 
-Las notas del @var{motivo} se desplazan dentro de la @var{escala} el
-número de grados de la escala dados por el intervalo entre
+Las notas del @var{motivo} se desplazan dentro de la @var{escala}
+el número de grados de la escala dados por el intervalo entre
 @var{nota-destino} y @var{nota-origen}:
 
 @lilypond[verbatim,quote]
@@ -975,8 +1003,8 @@ motif = \relative { c'8 d e f g a b c }
 }
 @end lilypond
 
-Se pueden especificar escalas ascendentes de cualquier longitud y con
-cualesquiera intervalos:
+Se pueden especificar escalas ascendentes de cualquier longitud y
+con cualesquiera intervalos:
 
 @lilypond[verbatim,quote]
 pentatonicScale = \relative { ges aes bes des ees }
@@ -989,8 +1017,9 @@ motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> }
 @end lilypond
 
 Cuando se utiliza con una escala cromática, @code{\modalTranspose}
-tiene un efecto similar a @code{\transpose}, pero con la posibilidad
-de especificar los nombres de las notas que se quieren usar:
+tiene un efecto similar a @code{\transpose}, pero con la
+posibilidad de especificar los nombres de las notas que se quieren
+usar:
 
 @lilypond[verbatim,quote]
 chromaticScale = \relative { c' cis d dis e f fis g gis a ais b }
@@ -1011,8 +1040,8 @@ motif = \relative { c'8 d e f g a b c }
 @funindex \modalInversion
 @funindex modalInversion
 
-Se puede invertir un motivo dentro de una escala dada alrededor de una
-nota pivote dada y transportada al mismo tiempo en una única
+Se puede invertir un motivo dentro de una escala dada alrededor de
+una nota pivote dada y transportada al mismo tiempo en una única
 operación, con:
 
 @example
@@ -1020,10 +1049,10 @@ operación, con:
 @end example
 
 Las notas del @var{motivo} se colocan al mismo número de grados de
-distancia de la escala a partir de la @var{nota-pivote} dentro de la
-@var{escala}, pero en la dirección opuestoa, y el resultado se
-desplaza después dentro de la @var{escala} el número de grados de la
-escala dados por el intervalo entre la @var{nota-destino} y la
+distancia de la escala a partir de la @var{nota-pivote} dentro de
+la @var{escala}, pero en la dirección opuestoa, y el resultado se
+desplaza después dentro de la @var{escala} el número de grados de
+la escala dados por el intervalo entre la @var{nota-destino} y la
 @var{nota-pivote}.
 
 Así pues, para invertir sencillamente alrededor de una nota de la
@@ -1041,9 +1070,10 @@ motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }
 @end lilypond
 
 Para invertir alrededor de una nota pivote entre dos notas de la
-escala, invierta alrededor de una de las notas y después transporte en
-un grado de la escala.  Las dos notas especificadas se pueden
-interpretar como que horquillan entre ellas a la nota pivote:
+escala, invierta alrededor de una de las notas y después
+transporte en un grado de la escala.  Las dos notas especificadas
+se pueden interpretar como que horquillan entre ellas a la nota
+pivote:
 
 @lilypond[verbatim,quote]
 scale = \relative { c' g' }
@@ -1079,8 +1109,8 @@ Referencia de la notación:
 @subsection Imprimir las alturas
 @translationof Displaying pitches
 
-Esta sección trata de cómo alterar la presentación de la altura de las
-notas.
+Esta sección trata de cómo alterar la presentación de la altura de
+las notas.
 
 @menu
 * Clave::
@@ -1126,9 +1156,17 @@ notas.
 @funindex \clef
 @funindex clef
 
-Es posible cambiar la clave. En todos los ejemplos se muestra el Do
-central.  Estos nombres de clave pueden (aunque no necesariamente)
-encerrarse entre comillas.
+Sin ninugna instrucción explícita, la clave predeterminada en
+LilyPond es la clave @qq{treble} (o clave de @emph{Sol}).
+
+@lilypond[verbatim,quote,fragment,ragged-right]
+c'2 c'
+@end lilypond
+
+Sin embargo, se puede cambiar la clave usando la instrucción
+@code{\clef} y el nombre de la clave correspondiente.  En los
+siguientes ejemplos se muestra la posición del @emph{Do central}
+en distintas claves.
 
 @lilypond[verbatim,quote,fragment]
 \clef treble
@@ -1141,36 +1179,21 @@ c'2 c'
 c'2 c'
 @end lilypond
 
-Otras claves son las siguientes:
-
-@lilypond[verbatim,quote,relative=1]
-\clef french
-c2 c
-\clef soprano
-c2 c
-\clef mezzosoprano
-c2 c
-\clef baritone
-c2 c
+Para ver el repertorio completo de los posibles nombes para las
+cllaves, consulte @ref{Estilos de clave}.
 
-\break
+Las claves especiales como las utilizadas en la música
+@emph{antigua}, se describen en @ref{Claves de la música mensural}
+y en @ref{Claves de canto gregoriano}.  La música que requiere
+claves de tablatura se estudia en @ref{Tablaturas predeterminadas}
+y en @ref{Tablaturas personalizadas}.
 
-\clef varbaritone
-c2 c
-\clef subbass
-c2 c
-\clef percussion
-c2 c
+@cindex Claves de guía
+@cindex Claves con notas guía
 
-\break
-
-\clef G   % synonym for treble
-c2 c
-\clef F   % synonym for bass
-c2 c
-\clef C   % synonym for alto
-c2 c
-@end lilypond
+Para emplear claves en las notas guía, véanse las instrucciones
+@code{\cueClef} y @code{\cueDuringWithClef} en
+@ref{Formateo de las notas guía}.
 
 @cindex transpositoras, claves
 @cindex clave transpositora
@@ -1181,9 +1204,9 @@ c2 c
 @cindex tenor, clave de, coral
 
 Al añadir @code{_8} o @code{^8} al nombre de la clave, la clave se
-transpone una octava hacia abajo o hacia arriba, respectivamente, y
-@code{_15} y @code{^15} la transpone dos octavas.  Si es necesario
-se pueden usar otros números enteros.  El argumento
+transpone una octava hacia abajo o hacia arriba, respectivamente,
+y @code{_15} y @code{^15} la transpone dos octavas.  Si es
+necesario se pueden usar otros números enteros.  El argumento
 @var{nombre_de_clave} se debe encerrar entre comillas si contiene
 caracteres no alfabéticos:
 
@@ -1215,12 +1238,60 @@ c'2 c'
 Las alturas se imprimen como si el argumento numérico no tuviera
 los paréntesis o corchetes.
 
-Ciertas claves para usos especiales se describen en @ref{Claves de la
-música mensural}, @ref{Claves de canto gregoriano}, @ref{Tablaturas
-predeterminadas} y @ref{Tablaturas personalizadas}.  Para mezclar
-distintas claves al usar notas guía dentro de una partitura,
-consulte las funciones @code{\cueClef} y @code{\cueDuringWithClef}
-en la sección @ref{Formateo de las notas guía}.
+De forma predeterminada, un cambio de clave que se produce en un
+salto de línea provoca que el símbolo de clave nuevo se imprima al
+final de la línea anterior, como una clave @emph{de cortesía}, así
+como al principio del siguiente.  Esta clave @emph{de cortesía} se
+puede suprimir.
+
+@lilypond[verbatim,quote,fragment]
+\clef treble { c'2 c' } \break
+\clef bass { c'2 c' } \break
+\clef alto
+  \set Staff.explicitClefVisibility = #end-of-line-invisible
+  { c'2 c' } \break
+  \unset Staff.explicitClefVisibility
+\clef bass { c'2 c' } \break
+@end lilypond
+
+De forma predeterminada, una clave que se ha impreso previamente
+no se vuelve a imprimir si se emplea de nuevo la misma instrucción
+@code{\clef}, y se ignora.  La instrucción @code{\set
+Staff.forceClef = ##t} modifica este comportamiento.
+
+@lilypond[verbatim,quote,fragment]
+  \clef treble
+  c'1
+  \clef treble
+  c'1
+  \set Staff.forceClef = ##t
+  c'1
+  \clef treble
+  c'1
+@end lilypond
+
+Cuando hay un cambio de clave manual, el glifo de la clave
+modificada es pás pequeño de lo normal.  Se puede sobreescribir
+este comportamiento.
+
+@lilypond[verbatim,quote,fragment]
+  \clef "treble"
+  c'1
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+  \override Staff.Clef.full-size-change = ##t
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+  \revert Staff.Clef.full-size-change
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+@end lilypond
 
 @snippets
 
@@ -1235,6 +1306,9 @@ Referencia de la notación:
 @ref{Tablaturas personalizadas},
 @ref{Formateo de las notas guía}.
 
+Archivos instalados:
+@file{scm/parser-clef.scm}.
+
 Fragmentos de código:
 @rlsr{Pitches}.
 
@@ -1251,13 +1325,13 @@ grobs distintos.  Así pues, cualquier @code{\override}
 también al grob @var{ClefModifier} como un @code{\override}
 diferente.
 
-@lilypond[fragment,quote,relative=1]
+@lilypond[fragment,quote,verbatim]
 \new Staff \with {
-  \override ClefModifier.color = #red
   \override Clef.color = #blue
+  \override ClefModifier.color = #red
 }
 
-\clef "treble_8" c4
+\clef "treble_8" c'4
 @end lilypond
 
 
@@ -1272,12 +1346,13 @@ diferente.
 
 @c duplicated in Key signature and Accidentals
 @warning{Las alteraciones accidentales y las armaduras son una
-frecuente causa de confusión para los nuevos usuarios.  En LilyPond,
-los nombres de las notas son el código de entrada en bruto; la
-armadura y la clave determinan de qué forma se presenta este código en
-bruto.  Una nota sin alteración como@tie{}@code{c} significa @q{Do
-natural}, si que le afecten la armadura ni la clave.  Para ver más
-información, consulte @rlearning{Alteraciones accidentales y armaduras}.}
+frecuente causa de confusión para los nuevos usuarios.  En
+LilyPond, los nombres de las notas son el código de entrada en
+bruto; la armadura y la clave determinan de qué forma se presenta
+este código en bruto.  Una nota sin alteración como@tie{}@code{c}
+significa @q{Do natural}, si que le afecten la armadura ni la
+clave.  Para ver más información, consulte @rlearning{Alturas y
+armaduras}.}
 
 La armadura indica la tonalidad en que se toca una pieza.  Está
 denotada por un conjunto de alteraciones (bemoles o sostenidos) al
@@ -1320,12 +1395,13 @@ armadura se hace con la instrucción @code{\key}:
 @cindex dórico, modo
 
 @noindent
-Aquí, @code{@var{modo}} debe ser @code{\major} o @code{\minor} para obtener
-la tonalidad @code{@var{nota}} mayor o @code{@var{nota}} menor, respectivamente.
-También puede usar los nombres estándar de modo (también conocidos
-como @notation{modos eclesiásticos}): @code{\ionian} (jónico),
-@code{\dorian} (dórico), @code{\phrygian} (frigio), @code{\lydian}
-(lidio), @code{\mixolydian} (mixolidio), @code{\aeolian} (eolio) y
+Aquí, @code{@var{modo}} debe ser @code{\major} o @code{\minor}
+para obtener la tonalidad @code{@var{nota}} mayor o
+@code{@var{nota}} menor, respectivamente.  También puede usar los
+nombres estándar de modo (también conocidos como @notation{modos
+eclesiásticos}): @code{\ionian} (jónico), @code{\dorian} (dórico),
+@code{\phrygian} (frigio), @code{\lydian} (lidio),
+@code{\mixolydian} (mixolidio), @code{\aeolian} (eolio) y
 @code{\locrian} (locrio).
 
 @lilypond[verbatim,quote,fragment]
@@ -1378,13 +1454,14 @@ de la octava que termina en dicha posición del pentagrama.
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {non-traditional-key-signatures.ly}
 
+
 @seealso
 Glosario musical:
 @rglos{church mode},
 @rglos{scordatura}.
 
 Manual de aprendizaje:
-@rlearning{Alteraciones accidentales y armaduras}.
+@rlearning{Alturas y armaduras}.
 
 Fragmentos de código:
 @rlsr{Pitches}.
@@ -1438,6 +1515,9 @@ de una octava para el pentagrama.
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {adding-an-ottava-marking-to-a-single-voice.ly}
 
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{modifying-the-ottava-spanner-slope.ly}
+
 @seealso
 Glosario musical:
 @rglos{octavation}.
@@ -1466,29 +1546,31 @@ Referencia de funcionamiento interno:
 
 Al tipografiar partituras donde participan instrumentos
 transpositores, ciertas partes se pueden tipografiar en un tono
-distinto del @notation{tono de concierto}.  En estos casos, se debe
-especificar la tonalidad del @notation{instrumento transpositor}; de
-otro modo, la salida MIDI y las notas guía en otras partes producirían
-alturas incorrectas.  Para ver más información sobre partes citadas
-como guía, consulte @ref{Citar otras voces}.
+distinto del @notation{tono de concierto}.  En estos casos, se
+debe especificar la tonalidad del @notation{instrumento
+transpositor}; de otro modo, la salida MIDI y las notas guía en
+otras partes producirían alturas incorrectas.  Para ver más
+información sobre partes citadas como guía, consulte @ref{Citar
+otras voces}.
 
 @example
 \transposition @var{pitch}
 @end example
 
-El tono usado para @code{\transposition} debe corresponderse con el
-sonido real que se oye cuando el instrumento transpositor interpreta
-un Do central @code{c'} escrito en el pentagrama.  Esta nota se
-escribe en altura absoluta, por tanto un instrumento que produce un
-sonido real un tono más agudo que la música impresa (un instrumento en
-Re) debe usar @code{\transposition d'}.  La instrucción
-@code{\transposition} se debe usar @emph{solamente} si las notas
-@emph{no} se van a escribir en afinación de concierto.
-
-A continuación pueden verse algunas notas para violín y para clarinete
-en Si bemol, donde las partes se han introducido usando las notas y la
-armadura tal y como aparecen en la partitura del director.  Lo que
-tocan los dos instrumentos está sonando al unísono.
+El tono usado para @code{\transposition} debe corresponderse con
+el sonido real que se oye cuando el instrumento transpositor
+interpreta un Do central @code{c'} escrito en el pentagrama.  Esta
+nota se escribe en altura absoluta, por tanto un instrumento que
+produce un sonido real un tono más agudo que la música impresa (un
+instrumento en Re) debe usar @code{\transposition d'}.  La
+instrucción @code{\transposition} se debe usar @emph{solamente} si
+las notas @emph{no} se van a escribir en afinación de concierto.
+
+A continuación pueden verse algunas notas para violín y para
+clarinete en Si bemol, donde las partes se han introducido usando
+las notas y la armadura tal y como aparecen en la partitura del
+director.  Lo que tocan los dos instrumentos está sonando al
+unísono.
 
 @lilypond[verbatim,quote]
 \new GrandStaff <<
@@ -1574,9 +1656,10 @@ Fragmentos de código:
 @funindex voice
 @funindex default
 
-Existen muchas convenciones distintas sobre la forma de tipografiar
-las alteraciones.  LilyPond proporciona una función para especificar
-qué estilo de alteraciones usar.  Esta función se invoca como sigue:
+Existen muchas convenciones distintas sobre la forma de
+tipografiar las alteraciones.  LilyPond proporciona una función
+para especificar qué estilo de alteraciones usar.  Esta función se
+invoca como sigue:
 
 @example
 \new Staff <<
@@ -1585,20 +1668,21 @@ qué estilo de alteraciones usar.  Esta función se invoca como sigue:
 >>
 @end example
 
-El estilo de alteraciones se aplica al @code{Staff} en curso de forma
-predeterminada (con la excepción de los estilos @code{piano} y
-@code{piano-cautionary}, que se explican más adelante).
+El estilo de alteraciones se aplica al @code{Staff} en curso de
+forma predeterminada (con la excepción de los estilos @code{piano}
+@code{piano-cautionary}, que se explican más adelante).
 Opcionalmente, la función puede tomar un segundo argumento que
-determina en qué ámbito se debe cambiar el estilo.  Por ejemplo, para
-usar el mismo estilo en todos los pentagramas del @code{StaffGroup} en
-curso, use
+determina en qué ámbito se debe cambiar el estilo.  Por ejemplo,
+para usar el mismo estilo en todos los pentagramas del
+@code{StaffGroup} en curso, use
 
 @example
 \accidentalStyle StaffGroup.voice
 @end example
 
-Están contemplados los siguientes estilos de alteración.  Para dar una
-muestra de cada uno de los estilos, utilizamos el ejemplo siguiente:
+Están contemplados los siguientes estilos de alteración.  Para dar
+una muestra de cada uno de los estilos, utilizamos el ejemplo
+siguiente:
 
 @lilypond[verbatim,quote]
 musicA = {
@@ -1647,9 +1731,9 @@ musicB = {
 }
 @end lilypond
 
-Observe que las últimas líneas de este ejemplo se pueden sustituir por
-las siguientes, siempre y cuando queramos usar el mismo estilo en los
-dos pentagramas.
+Observe que las últimas líneas de este ejemplo se pueden sustituir
+por las siguientes, siempre y cuando queramos usar el mismo estilo
+en los dos pentagramas.
 
 @example
 \new PianoStaff @{
@@ -1676,10 +1760,10 @@ dos pentagramas.
 
 Es el comportamiento de composición tipográfica predeterminado.
 Corresponde a la práctica común del s. XVIII: las alteraciones
-accidentales se recuerdan hasta el final del compás en el que aparecen
-y sólo en la misma octava.  Así, en el ejemplo siguiente, no se
-imprimen becuadros antes del Si natural en el segundo compás ni en el
-último Do:
+accidentales se recuerdan hasta el final del compás en el que
+aparecen y sólo en la misma octava.  Así, en el ejemplo siguiente,
+no se imprimen becuadros antes del Si natural en el segundo compás
+ni en el último Do:
 
 @lilypond[quote]
 musicA = {
@@ -1739,20 +1823,20 @@ musicB = {
 
 @funindex voice
 
-El comportamiento normal es recordar las alteraciones accidentales al
-nivel de @code{Staff}.  En este estilo, sin embargo, se tipografían
-las alteraciones individualmente para cada voz.  Aparte de esto, la
-regla es similar a @code{default}.
+El comportamiento normal es recordar las alteraciones accidentales
+al nivel de @code{Staff}.  En este estilo, sin embargo, se
+tipografían las alteraciones individualmente para cada voz.
+Aparte de esto, la regla es similar a @code{default}.
 
 Como resultado, las alteraciones de una voz no se cancelan en las
-otras voces, lo que con frecuencia lleva a un resultado no deseado: en
-el ejemplo siguiente, es difícil determinar si el segundo La se debe
-tocar natural o sostenido.  Por tanto, la opción @code{voice} se debe
-usar sólo si las voces se van a leer individualmente por músicos
-distintos.  Si el pentagrama va a utilizarse por parte de un solo
-músico (p.ej., un director, o en una partitura de piano), entonces se
-deben usar en su lugar los estilos @code{modern} o
-@code{modern-cautionary}.
+otras voces, lo que con frecuencia lleva a un resultado no
+deseado: en el ejemplo siguiente, es difícil determinar si el
+segundo La se debe tocar natural o sostenido.  Por tanto, la
+opción @code{voice} se debe usar sólo si las voces se van a leer
+individualmente por músicos distintos.  Si el pentagrama va a
+utilizarse por parte de un solo músico (p.ej., un director, o en
+una partitura de piano), entonces se deben usar en su lugar los
+estilos @code{modern} o @code{modern-cautionary}.
 
 @lilypond[quote]
 musicA = {
@@ -1808,16 +1892,17 @@ musicB = {
 
 @funindex modern
 
-Esta regla corresponde a la práctica común del s. XX.  Omite algunos
-becuadros adicionales, que tradicionalmente se imprimían precediendo a
-un sostenido que sigue a un doble sostenido, o a un bemol que sigue
-a un doble bemol.  La regla @code{modern} imprime las mismas
-alteraciones que el estilo @code{default}, con dos adiciones que
-sirven para evitar la ambigüedad: después de alteraciones temporales
-se imprimen indicaciones de cancelación también en el compás siguiente
-(para notas en la misma octava) y, en el mismo compás, para notas en
-octavas distintas.  De aquí los becuadros antes del Si natural y del
-Do en el segundo compás del pentagrama superior:
+Esta regla corresponde a la práctica común del s. XX.  Omite
+algunos becuadros adicionales, que tradicionalmente se imprimían
+precediendo a un sostenido que sigue a un doble sostenido, o a un
+bemol que sigue a un doble bemol.  La regla @code{modern} imprime
+las mismas alteraciones que el estilo @code{default}, con dos
+adiciones que sirven para evitar la ambigüedad: después de
+alteraciones temporales se imprimen indicaciones de cancelación
+también en el compás siguiente (para notas en la misma octava) y,
+en el mismo compás, para notas en octavas distintas.  De aquí los
+becuadros antes del Si natural y del Do en el segundo compás del
+pentagrama superior:
 
 @lilypond[quote]
 musicA = {
@@ -1875,11 +1960,10 @@ musicB = {
 @funindex modern-cautionary
 
 Esta regla es similar a @code{modern}, pero las alteraciones
-@q{añadidas} (las que no se imprimen en el estilo @code{default}) se
-imprimen como alteraciones de precaución.  Se imprimen de forma
-predeterminada con paréntesis, pero también se pueden imprimir en
-tamaño reducido definiendo la propiedad @code{cautionary-style} de
-@code{AccidentalSuggestion}.
+@q{añadidas} se imprimen como alteraciones de precaución (entre
+paréntesis).  También se pueden imprimir en un tamaño distinto
+sobreescribiendo la propiedad @code{font-size} del objeto
+@code{AccidentalCautionary}.
 
 @lilypond[quote]
 musicA = {
@@ -1939,12 +2023,13 @@ musicB = {
 @funindex modern-voice
 
 Esta regla se usa para que puedan leer las alteraciones en varias
-voces, tanto músicos que tocan una voz como músicos que tocan todas
-las voces.  Se imprimen las alteraciones para cada voz, pero @emph{se
-cancelan} entre voces dentro del mismo @code{Staff}.  Por tanto, el La
-en el último compás se cancela porque la cancelación anterior estaba
-en una voz distinta, y el Re en el pentagrama inferior se cancela a
-causa de la alteración en otra voz en el compás previo:
+voces, tanto músicos que tocan una voz como músicos que tocan
+todas las voces.  Se imprimen las alteraciones para cada voz, pero
+@emph{se cancelan} entre voces dentro del mismo @code{Staff}.  Por
+tanto, el La en el último compás se cancela porque la cancelación
+anterior estaba en una voz distinta, y el Re en el pentagrama
+inferior se cancela a causa de la alteración en otra voz en el
+compás previo:
 
 @lilypond[quote]
 musicA = {
@@ -2003,9 +2088,10 @@ musicB = {
 
 Esta regla es la misma que @code{modern-voice}, pero con las
 alteraciones añadidas (las que el estilo @code{voice} no imprime)
-compuestas como de precaución.  Incluso aunque todas las alteraciones
-impresas por el estilo @code{default} @emph{son} impresas con esta
-regla, algunas de ellas se tipografían como de precaución.
+compuestas como de precaución.  Incluso aunque todas las
+alteraciones impresas por el estilo @code{default} @emph{son}
+impresas con esta regla, algunas de ellas se tipografían como de
+precaución.
 
 @lilypond[quote]
 musicA = {
@@ -2062,14 +2148,14 @@ musicB = {
 
 @funindex piano
 
-Esta regla refleja la práctica del s.XX para la notación de piano.  Su
-comportamiento es muy similar al estilo @code{modern}, pero aquí las
-alteraciones también se cancelan entre distintos pentagramas del mismo
-grupo @code{GrandStaff} o @code{PianoStaff}, de ahí todas las
-cancelaciones de las últimas notas.
+Esta regla refleja la práctica del s.XX para la notación de piano.
+Su comportamiento es muy similar al estilo @code{modern}, pero
+aquí las alteraciones también se cancelan entre distintos
+pentagramas del mismo grupo @code{GrandStaff} o @code{PianoStaff},
+de ahí todas las cancelaciones de las últimas notas.
 
-Este estilo de alteración se aplica de manera predeterminada al grupo
-@code{GrandStaff} o @code{PianoStaff} en curso.
+Este estilo de alteración se aplica de manera predeterminada al
+grupo @code{GrandStaff} o @code{PianoStaff} en curso.
 
 @lilypond[quote]
 musicA = {
@@ -2128,8 +2214,8 @@ musicB = {
 
 @funindex piano-cautionary
 
-Igual que @code{\accidentalStyle piano} pero con las
-alteraciones añadidas compuestas como de precaución.
+Igual que @code{\accidentalStyle piano} pero con las alteraciones
+añadidas compuestas como de precaución.
 
 @lilypond[quote]
 musicA = {
@@ -2184,10 +2270,11 @@ musicB = {
 
 @funindex neo-modern
 
-Esta regla reproduce una práctica común en la música contemporánea:
-las alteraciones accidentales se imprimen como en @code{modern}, pero
-se vuelven a imprimir si aparece la misma nota otra vez en el mismo
-compás (excepto si la nota se repite inmediatamente).
+Esta regla reproduce una práctica común en la música
+contemporánea: las alteraciones accidentales se imprimen como en
+@code{modern}, pero se vuelven a imprimir si aparece la misma nota
+otra vez en el mismo compás (excepto si la nota se repite
+inmediatamente).
 
 @lilypond[quote]
 musicA = {
@@ -2244,7 +2331,10 @@ musicB = {
 @funindex neo-modern-cautionary
 
 Esta regla es similar a @code{neo-modern}, pero las alteraciones
-adicionales se imprimen como alteraciones de precaución.
+@q{adicionales} se imprimen como alteraciones de precaución (con
+paréntesis).  También se pueden imprimir en un tamaño distinto
+sobreescribiendo la propiedad @code{font-size} del objeto
+@code{AccidentalCautionary}.
 
 @lilypond[quote]
 musicA = {
@@ -2300,11 +2390,12 @@ musicB = {
 
 @funindex neo-modern-voice
 
-Esta regla se usa para alteraciones accidentales sobre varias voces
-que se han de leer por parte de músicos que tocan una voz, así como
-por músicos que tocan todas las voces.  Las alteraciones se imprimen
-para cada voz como con @code{neo-modern}, pero se cancelan para otras
-voces que están en el mismo pentagrama @code{Staff}.
+Esta regla se usa para alteraciones accidentales sobre varias
+voces que se han de leer por parte de músicos que tocan una voz,
+así como por músicos que tocan todas las voces.  Las alteraciones
+se imprimen para cada voz como con @code{neo-modern}, pero se
+cancelan para otras voces que están en el mismo pentagrama
+@code{Staff}.
 
 @lilypond[quote]
 musicA = {
@@ -2360,8 +2451,9 @@ musicB = {
 
 @funindex neo-modern-voice-cautionary
 
-Esta regla es similar a @code{neo-modern-voice}, pero las alteraciones
-adicionales se imprimen como alteraciones de precaución.
+Esta regla es similar a @code{neo-modern-voice}, pero las
+alteraciones adicionales se imprimen como alteraciones de
+precaución.
 
 @lilypond[quote]
 musicA = {
@@ -2417,10 +2509,10 @@ musicB = {
 
 @funindex dodecaphonic
 
-Esta regla refleja una práctica introducida por los compositores de
-principios del s.XX, en un intento de abolir la jerarquía entre notas
-naturales y alteradas.  Con este estilo, @emph{todas} las notas llevan
-alteración, incluso becuadros.
+Esta regla refleja una práctica introducida por los compositores
+de principios del s.XX, en un intento de abolir la jerarquía entre
+notas naturales y alteradas.  Con este estilo, @emph{todas} las
+notas llevan alteración, incluso becuadros.
 
 @lilypond[quote]
 musicA = {
@@ -2469,6 +2561,126 @@ musicB = {
 }
 @end lilypond
 
+@item dodecaphonic-no-repeat
+
+@cindex dodecaphonic accidental style
+@cindex dodecaphonic style, neo-modern
+
+@funindex dodecaphonic-no-repeat
+
+Como con el estilo de alteraciones dodecafónico @emph{todas} las
+notas llevan una alteración de forma predeterminada, pero las
+alteriaciones se suprimen cuando hay notas repetidas
+inmediatamente en el mismo pentagrama.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle dodecaphonic-no-repeat
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle dodecaphonic-no-repeat
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+
+@item dodecaphonic-first
+
+@cindex dodecaphonic accidental style
+@cindex dodecaphonic style, neo-modern
+
+@funindex dodecaphonic-first
+
+Similar al estilo de alteraciones dodecafónico, @emph{todas} las
+notas llevan una alteración, pero solo la primera vez que se
+encuentran en el compás.  Las alteraciones se recuerdan solamente
+para la octava actual pero a través de las voces.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle dodecaphonic-first
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle dodecaphonic-first
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+
 @item teaching (enseñanza)
 
 @cindex teaching (enseñanza), estilo de alteraciones
@@ -2476,12 +2688,12 @@ musicB = {
 
 @funindex teaching
 
-Esta regla está pensada para estudiantes, y hace más sencillo crear
-hojas de escalas con alteraciones de precaución creadas
+Esta regla está pensada para estudiantes, y hace más sencillo
+crear hojas de escalas con alteraciones de precaución creadas
 automáticamente.  Las alteraciones se imprimen como en el estilo
-@code{modern}, pero se añaden alteraciones de precaución para todas
-las notas sostenidas o bemoles especificadas por la armadura, excepto
-si la nota se repite inmediatamente.
+@code{modern}, pero se añaden alteraciones de precaución para
+todas las notas sostenidas o bemoles especificadas por la
+armadura, excepto si la nota se repite inmediatamente.
 
 @lilypond[quote,staffsize=18]
 musicA = {
@@ -2539,8 +2751,8 @@ musicB = {
 
 @funindex no-reset
 
-Es el mismo que @code{default} pero con alteraciones que duran @q{para
-siempre} y no sólo dentro del mismo compás:
+Es el mismo que @code{default} pero con alteraciones que duran
+@q{para siempre} y no sólo dentro del mismo compás:
 
 @lilypond[quote]
 musicA = {
@@ -2596,10 +2808,10 @@ musicB = {
 
 @funindex forget
 
-Es lo opuesto a @code{no-reset}: Las alteraciones no se recuerdan en
-absoluto: de aquí que todas las alteraciones se compongan
-tipográficamente en relación a la armadura de la tonalidad, sin que
-estén afectadas por lo que viene antes.
+Es lo opuesto a @code{no-reset}: Las alteraciones no se recuerdan
+en absoluto: de aquí que todas las alteraciones se compongan
+tipográficamente en relación a la armadura de la tonalidad, sin
+que estén afectadas por lo que viene antes.
 
 @lilypond[quote]
 musicA = {
@@ -2669,21 +2881,22 @@ Referencia de funcionamiento interno:
 @cindex acordes, alteraciones dentro de
 
 @knownissues
-Las notas simultáneas no se tienen en cuenta para la
-determinación automática de las alteraciones accidentales;
-sólo se consideran las notas anteriores y la armadura de
-la tonalidad.  Puede ser necesario forzar las alteraciones
-accidentales con with@tie{}@code{!} o@tie{}@code{?} cuando
-la misma nota, con el mismo nombre, ocurre simultáneamente
-con distintas alteraciones, como en @samp{<f! fis!>}.
+Las notas simultáneas no se tienen en cuenta para la determinación
+automática de las alteraciones accidentales; sólo se consideran
+las notas anteriores y la armadura de la tonalidad.  Puede ser
+necesario forzar las alteraciones accidentales con
+with@tie{}@code{!} o@tie{}@code{?} cuando la misma nota, con el
+mismo nombre, ocurre simultáneamente con distintas alteraciones,
+como en @samp{<f! fis!>}.
 
 La cancelación de precaución de alteraciones se hace mirando el
 compás previo.  Sin embargo, en el bloque @code{\alternative} que
 sigue a una sección de repetición de primera y segunda vez
-@code{\repeat volta N}, se esperaría que la cancelación se calculase
-utilizando el compás previo @emph{que se ha tocado}, no el compás
-previo @emph{que se ha impreso}.  En el ejemplo siguiente, el Do
-natural de la casilla de segunda vez no necesita becuadro:
+@code{\repeat volta N}, se esperaría que la cancelación se
+calculase utilizando el compás previo @emph{que se ha tocado}, no
+el compás previo @emph{que se ha impreso}.  En el ejemplo
+siguiente, el Do natural de la casilla de segunda vez no necesita
+becuadro:
 
 @lilypond[quote]
 {
@@ -2699,8 +2912,8 @@ natural de la casilla de segunda vez no necesita becuadro:
 }
 @end lilypond
 
-Se puede usar el siguiente rodeo del problema: definir una función que
-cambie localmente el estilo de alteraciones a @code{forget}:
+Se puede usar el siguiente rodeo del problema: definir una función
+que cambie localmente el estilo de alteraciones a @code{forget}:
 
 @lilypond[verbatim,quote]
 forget = #(define-music-function (music) (ly:music?) #{
@@ -2730,15 +2943,15 @@ forget = #(define-music-function (music) (ly:music?) #{
 @cindex tesitura
 
 El término @emph{ambitus} o ámbito, denota el rango de notas que
-abarca una voz dada en una parte musical.  También puede denotar el
-margen de notas que es capaz de tocar un determinado instrumento
-musical.  Los ámbitos se imprimen en las partes vocales de tal manera
-que los intérpretes puedan determinar con facilidad si cumplen con sus
-propias posibilidades.
+abarca una voz dada en una parte musical.  También puede denotar
+el margen de notas que es capaz de tocar un determinado
+instrumento musical.  Los ámbitos se imprimen en las partes
+vocales de tal manera que los intérpretes puedan determinar con
+facilidad si cumplen con sus propias posibilidades.
 
 Los ámbitos se presentan al comienzo de la pieza junto a la clave
-inicial.  El rango se especifica gráficamente mediante dos cabezas de
-nota que representan a las notas inferior y superior.  Sólo se
+inicial.  El rango se especifica gráficamente mediante dos cabezas
+de nota que representan a las notas inferior y superior.  Sólo se
 imprimen alteraciones si no forman parte de la armadura de la
 tonalidad.
 
@@ -2843,9 +3056,10 @@ Para ver todos los estilos de cabeza de las notas, consulte
 
 El estilo @code{cross} (aspas) se usa para representar una amplia
 variedad de intenciones musicales.  Las siguientes instrucciones
-genéricas predefinidas modifican la forma de la cabeza de las figuras
-tanto en el contexto de pentagrama normal como en el de tablatura, y
-se pueden usar para representar cualquier significado musical:
+genéricas predefinidas modifican la forma de la cabeza de las
+figuras tanto en el contexto de pentagrama normal como en el de
+tablatura, y se pueden usar para representar cualquier significado
+musical:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -2857,10 +3071,10 @@ se pueden usar para representar cualquier significado musical:
 }
 @end lilypond
 
-La forma de función musical de esta instrucción predefinida se puede
-usar dentro y fuera de los acordes para generar cabezas de nota en
-aspa, tanto en el contexto de pentagrama normal como en el de
-tablatura:
+La forma de función musical de esta instrucción predefinida se
+puede usar dentro y fuera de los acordes para generar cabezas de
+nota en aspa, tanto en el contexto de pentagrama normal como en el
+de tablatura:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -2870,10 +3084,11 @@ tablatura:
 }
 @end lilypond
 
-Como sinónimos de @code{\xNote}, @code{\xNotesOn} y @code{\xNotesOff},
-se pueden usar @code{\deadNote}, @code{\deadNotesOn} y
-@code{\deadNotesOff}.  El término @notation{dead note} (nota muerta)
-se utiliza corrientemente por parte de los guitarristas.
+Como sinónimos de @code{\xNote}, @code{\xNotesOn} y
+@code{\xNotesOff}, se pueden usar @code{\deadNote},
+@code{\deadNotesOn} y @code{\deadNotesOff}.  El término
+@notation{dead note} (nota muerta) se utiliza corrientemente por
+parte de los guitarristas.
 
 También existe una abreviatura similar para las formas en rombo:
 
@@ -2927,11 +3142,12 @@ Referencia de funcionamiento interno:
 @funindex \easyHeadsOff
 @funindex easyHeadsOff
 
-Las notas con cabeza de @q{notación facilitada} tienen el nombre de la
-nota (en inglés) dentro de la cabeza.  Se usan en la música para
-principiantes.  Para que las letras sean legibles, se deben imprimir
-en un tamaño grande de fuente tipográfica.  Para imprimir con una
-fuente más grande, véase @ref{Establecer el tamaño del pentagrama}.
+Las notas con cabeza de @q{notación facilitada} tienen el nombre
+de la nota (en inglés) dentro de la cabeza.  Se usan en la música
+para principiantes.  Para que las letras sean legibles, se deben
+imprimir en un tamaño grande de fuente tipográfica.  Para imprimir
+con una fuente más grande, véase @ref{Establecer el tamaño del
+pentagrama}.
 
 @lilypond[verbatim,quote]
 #(set-global-staff-size 26)
@@ -3001,12 +3217,12 @@ Referencia de funcionamiento interno:
 @funindex \walkerHeads
 @funindex walkerHeads
 
-En la notación de cabezas con forma, la forma de la cabeza corresponde
-a la función armónica de una nota dentro de la escala. Esta notación
-se hizo popular en los libros americanos de canciones durante el
-s.XIX.  Las cabezas de nota con formas se pueden producir en los
-estilos @q{Sacred Harp}, @q{Southern Harmony},
-Funk (Harmonica Sacra), Walker y Aiken @q{(Christian
+En la notación de cabezas con forma, la forma de la cabeza
+corresponde a la función armónica de una nota dentro de la
+escala. Esta notación se hizo popular en los libros americanos de
+canciones durante el s.XIX.  Las cabezas de nota con formas se
+pueden producir en los estilos @q{Sacred Harp}, @q{Southern
+Harmony}, Funk (Harmonica Sacra), Walker y Aiken @q{(Christian
 Harmony)}:
 
 @lilypond[verbatim,quote]
@@ -3037,10 +3253,10 @@ Harmony)}:
 @funindex \walkerHeadsMinor
 @funindex walkerHeadsMinor
 
-Las formas se determinan en función del grado de la escala, donde la
-tónica está determinada por la instrucción @code{\key} Cuando se
-escribe en un tono menor, la nota de la escala se puede determinar a
-partir del relativo mayor:
+Las formas se determinan en función del grado de la escala, donde
+la tónica está determinada por la instrucción @code{\key} Cuando
+se escribe en un tono menor, la nota de la escala se puede
+determinar a partir del relativo mayor:
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -3108,9 +3324,10 @@ Referencia de funcionamiento interno:
 @funindex \improvisationOff
 @funindex improvisationOff
 
-La improvisación se denota a veces mediante cabezas de nota en forma
-de barra inclinada, donde el ejecutante puede elegir cualquier nota
-pero con el ritmo especificado.  Estas cabezas de nota se crean así:
+La improvisación se denota a veces mediante cabezas de nota en
+forma de barra inclinada, donde el ejecutante puede elegir
+cualquier nota pero con el ritmo especificado.  Estas cabezas de
+nota se crean así:
 
 @lilypond[verbatim,quote]
 \new Voice \with {
index aa21ce274dd380ae2ea02caf2c91eee072b2e8de..f2f8e2b49fe67fa762bd300d57187cf91da5a157 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 873151f815f8b8e27eb5231c74e28392561e4668
+    Translation of GIT committish: c4a960d0461ee5ecd87cd46692ec11682b8969b0
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -21,23 +21,24 @@ siguientes tipos de repetición:
 
 @table @code
 @item volta (primera y segunda vez)
-La repetición de la música no se imprime de forma desarrollada, sino
-que se indica encerrándola entre barras de repetición.  Si el salto de
-la repetición se encuentra al comienzo de una pieza, la barra de
-repetición sólo se imprime al final del fragmento.  Se imprimen una
-serie de finales alternativos (volte) de izquierda a derecha indicados
-mediante corchetes.  Ésta es la notación estándar para las
-repeticiones con finales alternativos.
+La repetición de la música no se imprime de forma desarrollada,
+sino que se indica encerrándola entre barras de repetición.  Si el
+salto de la repetición se encuentra al comienzo de una pieza, la
+barra de repetición sólo se imprime al final del fragmento.  Se
+imprimen una serie de finales alternativos (volte) de izquierda a
+derecha indicados mediante corchetes.  Ésta es la notación
+estándar para las repeticiones con finales alternativos.
 
 @item unfold (desplegada)
-Las música repetida se escribe y se interpreta completamente tantas
-veces como especifique el valor @code{@var{número_de_repeticiones}}.  Es útil
-cuando se está escribiendo música repetitiva.
+Las música repetida se escribe y se interpreta completamente
+tantas veces como especifique el valor
+@code{@var{número_de_repeticiones}}.  Es útil cuando se está
+escribiendo música repetitiva.
 
 @item percent (porcentaje)
-Hacer repeticiones de compases o parte de ellos.  Tienen un aspecto
-semejante a un signo de porcentaje.  Las repeticiones de porcentaje se
-deben declarar dentro de un contexto @code{Voice}.
+Hacer repeticiones de compases o parte de ellos.  Tienen un
+aspecto semejante a un signo de porcentaje.  Las repeticiones de
+porcentaje se deben declarar dentro de un contexto @code{Voice}.
 
 @item tremolo (trémolo)
 Hacer barras de trémolo.
@@ -54,11 +55,12 @@ Hacer barras de trémolo.
 @subsection Repeticiones largas
 @translationof Long repeats
 
-Esta sección trata sobre la forma de introducir repeticiones largas,
-normalmente de varios compases.  Las repeticiones adoptan dos formas:
-repeticiones encerradas entre signos de repetición, o repeticiones
-explícitas, que se usan para escribir música repetitiva.  También se
-pueden controlar manualmente los signos de repetición.
+Esta sección trata sobre la forma de introducir repeticiones
+largas, normalmente de varios compases.  Las repeticiones adoptan
+dos formas: repeticiones encerradas entre signos de repetición, o
+repeticiones explícitas, que se usan para escribir música
+repetitiva.  También se pueden controlar manualmente los signos de
+repetición.
 
 @menu
 * Repeticiones normales::
@@ -102,10 +104,22 @@ Una repetición simple sin finales alternativos:
 }
 @end lilypond
 
-Los filanes alternativos (casillas de primera y segunda vez)
-se pueden generar utilizando @code{\alternative}.  Cada
-grupo de alternativas debe,  a su vez, estar encerrado
-entre llaves curvas.
+De forma predeterminada no se imprimen las dobles barras de
+apertura de repetición en el primer compás completo.  Sin embargo
+es posible imprimirlas usando @code{\bar ".|:"} antes de la
+primera nota.
+
+@lilypond[verbatim,fragment,quote]
+\relative {
+  \repeat volta 2 { \bar ".|:" c''4 d e f }
+  c2 d
+  \repeat volta 2 { d4 e f g }
+}
+@end lilypond
+
+Los finales alternativos (casillas de primera y segunda vez) se
+pueden generar utilizando @code{\alternative}.  Cada grupo de
+alternativas debe, a su vez, estar encerrado entre llaves curvas.
 
 @example
 \repeat volta @var{número_de_repeticiones} @var{expresión_musical}
@@ -117,9 +131,8 @@ entre llaves curvas.
 @noindent
 donde @code{@var{expresión_musical}} es una expresión musical.
 
-Si existen más repeticiones que finales alternativos,
-se asigna el primer final alternativo
-a las repeticiones más antiguas.
+Si existen más repeticiones que finales alternativos, se asigna el
+primer final alternativo a las repeticiones más antiguas.
 
 Repetición única con primera y segunda vez:
 
@@ -161,105 +174,59 @@ Más de una repetición con más de un final alternativo:
 }
 @end lilypond
 
-@warning{Si hay dos o más alternativas, no debe aparecer
-nada entre la llave de cierre de una y la de apertura de la otra
-dentro de un bloque @code{@bs{}alternative}, pues en caso
-contrario no obtendremos el número de finales esperado.}
+@warning{Si hay dos o más alternativas, no debe aparecer nada
+entre la llave de cierre de una y la de apertura de la otra dentro
+de un bloque @code{@bs{}alternative}, pues en caso contrario no
+obtendremos el número de finales esperado.}
 
 @warning{Si incluimos @code{@bs{}relative} dentro de un
-@code{@bs{}repeat} sin instanciar el contexto
-@code{Voice} explícitamente,
-aparecerán pentagramas adicionales no deseados.
+@code{@bs{}repeat} sin instanciar el contexto @code{Voice}
+explícitamente, aparecerán pentagramas adicionales no deseados.
 Véase @rprogram{Aparece un pentagrama de más}.}
 
 @cindex repetición con anacrusa
 @cindex anacrusa en repeticiones
 @funindex \partial
+@cindex comprobación de compás con repeticiones
+@cindex repetición con comprobaciones de compás
 
-Si una repetición comienza en medio de un compás y no tiene finales
-alternativos (primera y segunda vez), normalmente el final de la
-repetición también caerá en el medio de un compás, de forma que el
-comienzo y el final formen un compás completo.  En tales casos, los
-signos de repetición no son verdaderas líneas divisorias.  No utilice
-instrucciones @code{\partial} o comprobaciones de compás en los
-lugares en que se imprimen estos símbolos de repetición:
+Si una repetición sin casillas de primera y segunda vez comienza
+en medio de un compás, normalmente termina en el lugar
+correspondiente en mitad de otro compás posterior (de tal forma
+que los dos suman un compás completo).  En este caso, los símbolos
+de repetición no son @q{verdaderas} líneas divisorias, por lo que
+no deben escribirse en este sitio comprobaciones de compás ni
+instrucciones @code{\partial}:
 
-@lilypond[verbatim,quote]
-\relative { % no \partial here
-  c'4 e g  % no bar check here
-  % no \partial here
-  \repeat volta 4 {
-    e4 |
-    c2 e |
-    % no \partial here
-    g4 g g  % no bar check here
-  }
-  % no \partial here
-  g4 |
-  a2 a |
-  g1 |
+@lilypond[verbatim,quote,relative=1]
+c'4 e g
+\repeat volta 4 {
+  e4 |
+  c2 e |
+  g4 g g
 }
-@end lilypond
-
-De forma similar, si una repetición compienza con el compás de
-anacrusa inicial de una partitura y no tiene finales alternativos, se
-dan las mismas condiciones que en el ejemplo anterior, excepto que en
-este caso se necesita la instrucción @code{\partial} al principio de
-la partitura:
-
-@lilypond[verbatim,quote]
-\relative {
-  \partial 4  % required
-  \repeat volta 4 {
-    e'4 |
-    c2 e |
-    % no \partial here
-    g4 g g  % no bar check here
-  }
-  % no \partial here
   g4 |
   a2 a |
   g1 |
-}
 @end lilypond
 
-Cuando se añaden primera y segunda vez a una repetición que comienza
-con un compás incompleto, se hace necesario establecer la propiedad de
-contexto @code{Timing.measureLength} manualmente, en los siguiente
-lugares específicos:
-
-@itemize
-@item
-en el comienzo de los complases incompletos del bloque
-@code{\alternative}, que normalmente se producen al final de cada
-final alternativo, excepto (en la mayoría de los casos) el último de
-ellos.
-
-@item
-en el comienzo de cada uno de los finales alternativos, excepto el
-primero.
-@end itemize
+Si una repetición que no tiene casillas de primera y segunda vez
+comienza con un compás parcial, entonces se aplica el mismo
+principio, excepto que se requiere una instrucción @code{\partial}
+al comienzo del compás:
 
 @lilypond[verbatim,quote,relative=1]
 \partial 4
-\repeat volta 2 { e4 | c2 e | }
-\alternative {
-  {
-    f2 d |
-    \set Timing.measureLength = #(ly:make-moment 3/4)
-    g4 g g  % optional bar check is allowed here
-  }
-  {
-    \set Timing.measureLength = #(ly:make-moment 4/4)
-    a2 a |
-  }
+\repeat volta 4 {
+  e'4 |
+  c2 e |
+  g4 g g
 }
-g1 |
+  g4 |
+  a2 a |
+  g1 |
 @end lilypond
 
-La propiedad @code{measureLength} se describe en @ref{Gestión del
-tiempo}.
-
 @cindex repeticiones, con ligaduras
 @cindex primera y segunda vez, con ligaduras
 @cindex ligaduras, en repeticiones
@@ -396,6 +363,9 @@ Referencia de la notación:
 @ref{Modificación de ligaduras de unión y de expresión},
 @ref{Gestión del tiempo}.
 
+Archivos instalados:
+@file{ly/engraver-init.ly}.
+
 Fragmentos de código:
 @rlsr{Repeats}.
 
@@ -446,10 +416,10 @@ en una nota de adorno oculta.  Para ver un ejemplo, consulte
 epígrafe Fragmentos de código seleccionados, en @ref{Glissando}.
 
 Si una repetición que comienza con un compás incompleto tiene un
-bloque @code{\alternative} que contiene modificaciones a la propiedad
-@code{measureLength}, la utilización de @code{\unfoldRepeats} dará
-lugar a líneas divisorias erróneamente colocadas y advertencias de
-comprobación de compás.
+bloque @code{\alternative} que contiene modificaciones a la
+propiedad @code{measureLength}, la utilización de
+@code{\unfoldRepeats} dará lugar a líneas divisorias erróneamente
+colocadas y advertencias de comprobación de compás.
 
 Una repetición anidada como
 
@@ -484,16 +454,17 @@ situaciones.
 @funindex repeatCommands
 @funindex start-repeat
 
-@warning{Estos métodos sólo se utilizan para realizar construcciones
-de repetición poco usuales, y pueden tener un comportamiento distinto
-al esperado.  En casi todas las situaciones, se deben crear las
-repeticiones utilizando la instrucción estándar @code{@bs{}repeat} o
-imprimiendo las barras de compás correspondientes.  Para ver más
-información, consulte @ref{Barras de compás}.}
+@warning{Estos métodos sólo se utilizan para realizar
+construcciones de repetición poco usuales, y pueden tener un
+comportamiento distinto al esperado.  En casi todas las
+situaciones, se deben crear las repeticiones utilizando la
+instrucción estándar @code{@bs{}repeat} o imprimiendo las barras
+de compás correspondientes.  Para ver más información, consulte
+@ref{Barras de compás}.}
 
 Se puede usar la propiedad @code{repeatCommands} para controlar la
-disposición de las repeticiones.  Su valor es una lista de Scheme de
-instrucciones de repetición.
+disposición de las repeticiones.  Su valor es una lista de Scheme
+de instrucciones de repetición.
 
 @table @code
 @item start-repeat
@@ -524,9 +495,9 @@ Imprimir una barra de compás @code{:|.}
 @end lilypond
 
 @item (volta @var{number}) @dots{} (volta #f)
-Crear una nueva casilla de repetición con el número que se especifica.
-El corchete de vez se debe terminar de forma explícita, pues en caso
-contrario no se imprime.
+Crear una nueva casilla de repetición con el número que se
+especifica.  El corchete de vez se debe terminar de forma
+explícita, pues en caso contrario no se imprime.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -558,11 +529,11 @@ punto:
 @cindex corchete de casilla de repetición con texto
 @cindex texto en casilla de repetición
 
-Se puede incluir texto dentro de la casilla de primera y segunda vez.
-El texto puede ser un número o números, o un elemento de marcado,
-véase @ref{Formatear el texto}.  La forma más fácil de usar texto de
-marcado es definir el marcado previamente, y luego incluirlo dentro de
-una lista de Scheme.
+Se puede incluir texto dentro de la casilla de primera y segunda
+vez.  El texto puede ser un número o números, o un elemento de
+marcado, véase @ref{Formatear el texto}.  La forma más fácil de
+usar texto de marcado es definir el marcado previamente, y luego
+incluirlo dentro de una lista de Scheme.
 
 @lilypond[verbatim,quote]
 voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
@@ -608,9 +579,9 @@ Referencia de funcionamiento interno:
 @cindex alternativos, finales, en repeticiones explícitas
 @funindex unfold
 
-Mediante la utilización de la instrucción @code{unfold} se pueden usar
-las repeticiones para simplificar la escritura desplegada de música
-repetitiva.  La sintaxis es:
+Mediante la utilización de la instrucción @code{unfold} se pueden
+usar las repeticiones para simplificar la escritura desplegada de
+música repetitiva.  La sintaxis es:
 
 @example
 \repeat unfold @var{número_de_repeticiones} @var{expresión_musical}
@@ -629,8 +600,9 @@ donde @code{@var{expresión_musical}} es una expresión musical y
 @end lilypond
 
 En ciertos casos, especialmente dentro de un contexto
-@code{\relative}, la función @code{\repeat unfold} no es exactamente
-igual que escribir la expresión musical varias veces. P. ej.:
+@code{\relative}, la función @code{\repeat unfold} no es
+exactamente igual que escribir la expresión musical varias
+veces. P. ej.:
 
 @example
 \repeat unfold 2 @{ a'4 b c @}
@@ -656,9 +628,8 @@ Se pueden hacer repeticiones desplegadas con finales alternativos.
 @end lilypond
 
 Si hay más repeticiones que finales alternativos, el primer final
-alternativo se aplica las veces necesarias hasta que
-las alternativas restantes completan el número total
-de repeticiones.
+alternativo se aplica las veces necesarias hasta que las
+alternativas restantes completan el número total de repeticiones.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -672,9 +643,9 @@ de repeticiones.
 }
 @end lilypond
 
-Si existen más finales alternativos que repeticiones,
-se aplican solo los primeros finales alternativos.
-Las alternativas restantes se ignoran y no se imprimen.
+Si existen más finales alternativos que repeticiones, se aplican
+solo los primeros finales alternativos.  Las alternativas
+restantes se ignoran y no se imprimen.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -688,8 +659,8 @@ Las alternativas restantes se ignoran y no se imprimen.
 }
 @end lilypond
 
-Es posible también anidar varias funciones
-@code{unfold} (con  finales alternativos o sin ellos).
+Es posible también anidar varias funciones @code{unfold} (con
+finales alternativos o sin ellos).
 
 @lilypond[verbatim,quote]
 \relative {
@@ -704,9 +675,9 @@ Es posible también anidar varias funciones
 }
 @end lilypond
 
-Las construcciones de acorde se pueden repetir mediante el
-símbolo de repetición de acordes @code{q}.
-Véase @ref{Repetición de acordes}.
+Las construcciones de acorde se pueden repetir mediante el símbolo
+de repetición de acordes @code{q}.  Véase @ref{Repetición de
+acordes}.
 
 @warning{Si pone @code{@bs{}relative} dentro de un bloque
 @code{@bs{}repeat} sin instanciar explícitamente el contexto
@@ -731,11 +702,9 @@ Referencia de funcionamiento interno:
 @translationof Short repeats
 
 Esta sección trata de cómo introducir repeticiones cortas.  Las
-repeticiones cortas pueden adoptar dos formas:
-barras inclinadas o signos de porcentaje
-si estamos representando repeticiones de una
-sola nota, un compás o dos compases,
-y trémolos en caso contrario.
+repeticiones cortas pueden adoptar dos formas: barras inclinadas o
+signos de porcentaje si estamos representando repeticiones de una
+sola nota, un compás o dos compases, y trémolos en caso contrario.
 
 @menu
 * Repeticiones de compás o parte de ellos::
@@ -754,8 +723,8 @@ y trémolos en caso contrario.
 @funindex \repeat percent
 @funindex percent
 
-Los patrones cortos que se repiten se imprimen una sola vez,
-y el patrón repetido se sustituye por un símbolo especial.
+Los patrones cortos que se repiten se imprimen una sola vez, y el
+patrón repetido se sustituye por un símbolo especial.
 
 La sintaxis es:
 
@@ -766,8 +735,8 @@ La sintaxis es:
 @noindent
 donde @code{@var{expresión_musical}} es una expresión musical.
 
-Los patrones más cortos que un compás se sustituyen por
-barras inclinadas.
+Los patrones más cortos que un compás se sustituyen por barras
+inclinadas.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -781,8 +750,8 @@ barras inclinadas.
 }
 @end lilypond
 
-Los patrones de repetición de uno o dos compases se sustituyen
-por signos parecidos al símbolo de porcentaje.
+Los patrones de repetición de uno o dos compases se sustituyen por
+signos parecidos al símbolo de porcentaje.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -841,6 +810,28 @@ Referencia de funcionamiento interno:
 @rinternals{Double_percent_repeat_engraver},
 @rinternals{Slash_repeat_engraver}.
 
+@knownissues
+Las repeticiones de porcentaje no contienen nada más aparte del
+propio signo de porcentaje; especialmente, los cambios de
+indicación de compás no se repiten.
+
+@lilypond[quote,verbatim,relative=2]
+\repeat percent 3 { \time 5/4 c2. 2 \time 4/4 2 2 }
+@end lilypond
+
+@noindent
+Cualquier cambio de compás o instrucción @code{\partial} se tiene
+que producir en pasajes paralelos @emph{fuera} de la repetición de
+porcentaje, p. ej. en una pista especial para la gestión del
+compás.
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  \repeat percent 3 { c2. 2 2 2 }
+  \repeat unfold 3 { \time 5/4 s4*5 \time 4/4 s1 }
+>>
+@end lilypond
+
 
 @node Repeticiones de trémolo
 @unnumberedsubsubsec Repeticiones de trémolo
@@ -852,16 +843,16 @@ Referencia de funcionamiento interno:
 @funindex \repeat tremolo
 @funindex tremolo
 
-Los trémolos pueden adoptar dos formas: alternancia entre dos acordes
-o dos notas, y repetición rápida de una sola nota o acorde.  Los
-trémolos que consisten en una alternancia se indican por medio de la
-adición de barras entre las notas o acordes que se alternan, mientras
-que los trémolos que consisten en la repetición rápida de una sola
-nota se indican mediante la adición de barras cruzadas a una nota
-única.
+Los trémolos pueden adoptar dos formas: alternancia entre dos
+acordes o dos notas, y repetición rápida de una sola nota o
+acorde.  Los trémolos que consisten en una alternancia se indican
+por medio de la adición de barras entre las notas o acordes que se
+alternan, mientras que los trémolos que consisten en la repetición
+rápida de una sola nota se indican mediante la adición de barras
+cruzadas a una nota única.
 
-Para colocar marcas de trémolo entre las notas, use @code{\repeat} con
-el estilo @code{tremolo} (trémolo):
+Para colocar marcas de trémolo entre las notas, use @code{\repeat}
+con el estilo @code{tremolo} (trémolo):
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -873,34 +864,33 @@ el estilo @code{tremolo} (trémolo):
 
 La sintaxis de @code{\repeat tremolo} espera que se escriban
 exactamente dos notas dentro de las llaves, y el número de
-repeticiones debe corresponderse con un valor que se pueda expresar
-con figuras normales o con puntillo.  Así, @code{\repeat tremolo 7} es
-válido y produce una nota con doble puntillo, pero
+repeticiones debe corresponderse con un valor que se pueda
+expresar con figuras normales o con puntillo.  Así, @code{\repeat
+tremolo 7} es válido y produce una nota con doble puntillo, pero
 @code{\repeat tremolo 9} no es válido.
 
-La duración del trémolo es igual a la duración de la expresión entre
-llaves, multiplicada por el número de repeticiones: @code{\repeat
-tremolo 8 @{ c16 d16 @}} da como resultado un trémolo de redonda,
-escrito como dos redondas unidas por barras de trémolo.
+La duración del trémolo es igual a la duración de la expresión
+entre llaves, multiplicada por el número de repeticiones:
+@code{\repeat tremolo 8 @{ c16 d16 @}} da como resultado un
+trémolo de redonda, escrito como dos redondas unidas por barras de
+trémolo.
 
-Existen dos maneras de colocar marcas de trémolo sobre una única nota.
-Incluso aquí se puede utilizar la sintaxis @code{\repeat tremolo}, en
-cuyo caso la nota no debe ir encerrada entre llaves:
+Existen dos maneras de colocar marcas de trémolo sobre una única
+nota.  Incluso aquí se puede utilizar la sintaxis @code{\repeat
+tremolo}, en cuyo caso la nota no debe ir encerrada entre llaves:
 
 @lilypond[quote,verbatim,ragged-right]
 \repeat tremolo 4 c'16
 @end lilypond
 
 @cindex trémolo, indicaciones de
-@funindex tremoloFlags
 @funindex :
 
-El mismo resultado se puede obtener escribiendo
-@code{:@var{N}} después de la nota, donde @code{@var{N}} indica la
-duración de la subdivisión (debe ser 8 como mínimo).  Si @code{@var{N}}
-es 8, se añade una barra de corchea a la plica de la nota.
-Si @code{@var{N}} se omite, se utiliza el último valor (almacenado en
-@code{tremoloFlags}):
+El mismo resultado se puede obtener escribiendo @code{:@var{N}}
+después de la nota, donde @code{@var{N}} indica la duración de la
+subdivisión (debe ser 8 como mínimo).  Si @code{@var{N}} es 8, se
+añade una barra de corchea a la plica de la nota.  Si
+@code{@var{N}} se omite, se utiliza el último valor:
 
 @lilypond[quote,verbatim]
 \relative {
index 46e0f7c3bdb833eb70fcc24238efa96d54fa03e8..7a2c6a24e2c6276e6271eca796341204fc3de353 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 873151f815f8b8e27eb5231c74e28392561e4668
+    Translation of GIT committish: bcd127bc07fc7b53704f9db8a6cf3d53e9d4094a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @node Duraciones
 @section Duraciones
@@ -15,8 +15,8 @@
 
 @lilypondfile[quote]{rhythms-headword.ly}
 
-Esta sección trata de los ritmos, los silencios, las duraciones, las
-barras y los compases.
+Esta sección trata de los ritmos, los silencios, las duraciones,
+las barras y los compases.
 
 @menu
 * Escritura de las duraciones (valores rítmicos)::
@@ -55,15 +55,15 @@ barras y los compases.
 @funindex \maxima
 @funindex maxima
 
-Las duraciones se designan mediante números y puntos. Las duraciones
-se introducen como sus valores recíprocos respecto de la redonda.  Por
-ejemplo, una negra se escribe usando un @code{4} (puesto que es 1/4 de
-redonda), mientras que una blanca se escribe con un @code{2} (por ser
-1/2 de redonda).  Para notas mayores de la redonda se deben usar las
-instrucciones @code{\longa} (que es una breve doble) y
-@code{\breve}. Se pueden especificar duraciones tan cortas como la
-garrapatea (con el número 128).  Son posibles valores más cortos, pero
-sólo como notas unidas por una barra.
+Las duraciones se designan mediante números y puntos. Las
+duraciones se introducen como sus valores recíprocos respecto de
+la redonda.  Por ejemplo, una negra se escribe usando un @code{4}
+(puesto que es 1/4 de redonda), mientras que una blanca se escribe
+con un @code{2} (por ser 1/2 de redonda).  Para notas mayores de
+la redonda se deben usar las instrucciones @code{\longa} (que es
+una breve doble) y @code{\breve}. Se pueden especificar duraciones
+tan cortas como la garrapatea (con el número 128).  Son posibles
+valores más cortos, pero sólo como notas unidas por una barra.
 
 @c Two 64th notes are needed to obtain beams
 @lilypond[quote,verbatim]
@@ -89,22 +89,33 @@ desactivado.
 @end lilypond
 
 Se puede escribir una nota con la duración de una cuádruple breve
-mediante @code{\maxima}, pero esto está contemplado solamente dentro
-de la notación musical antigua.  Para ver más detalles, consulte
-@ref{Notación antigua}.
+mediante @code{\maxima}, pero esto está contemplado solamente
+dentro de la notación musical antigua.  Para ver más detalles,
+consulte @ref{Notación antigua}.
 
 @cindex duración predeterminada
 @cindex predeterminada, duración de la nota
 @cindex nota, duración predeterminada
 
-Si la duración se omite, su valor será el de la duración de la nota
-anterior.  Por omisión, el valor de la primera nota es el de una
-negra.
+Si la duración se omite, su valor será el de la duración de la
+nota anterior.  Por omisión, el valor de la primera nota es el de
+una negra.
 
 @lilypond[quote,verbatim]
 \relative { a' a a2 a a4 a a1 a }
 @end lilypond
 
+Las duraciones aisladas en una secuencia musical toman la altura
+de la nota o acorde anterior.
+
+@lilypond[quote,verbatim]
+\relative {
+  \time 8/1
+  c'' \longa \breve 1 2
+  4 8 16 32 64 128 128
+}
+@end lilypond
+
 @cindex notas, con puntillo
 @cindex puntillo, notas con
 @cindex notas, con doble puntillo
@@ -121,8 +132,9 @@ especifican escribiendo dos puntos, y así sucesivamente.
 @end lilypond
 
 Ciertas duraciones no se pueden representar sólo con duraciones
-binarias y puntillos; la única forma de representarlas es ligando dos
-o más notas.  Para ver más detalles, consulte @ref{Ligaduras de unión}.
+binarias y puntillos; la única forma de representarlas es ligando
+dos o más notas.  Para ver más detalles, consulte @ref{Ligaduras
+de unión}.
 
 Para ver de qué manera se pueden especificar las duraciones de las
 sílabas de la letra y cómo alinear la letra a las notas, consulte
@@ -140,10 +152,10 @@ otros ajustes que controlan la notación proporcional, consulte
 @funindex \dotsNeutral
 @funindex dotsNeutral
 
-Normalmente los puntillos se desplazan hacia arriba para evitar las
-líneas del pentagrama, excepto en situaciones de polifonía. Se pueden
-situar los puntillos manualmente encima o debajo de las líneas de la
-pauta; véase @ref{Dirección y posición}.
+Normalmente los puntillos se desplazan hacia arriba para evitar
+las líneas del pentagrama, excepto en situaciones de polifonía. Se
+pueden situar los puntillos manualmente encima o debajo de las
+líneas de la pauta; véase @ref{Dirección y posición}.
 
 @predefined
 @code{\autoBeamOn},
@@ -189,10 +201,10 @@ Referencia de funcionamiento interno:
 
 @knownissues
 @c Deliberately duplicated in Durations and Rests.  -gp
-No existe un límite fundamental para las duraciones de los silencios
-(tanto para el más largo como para el más corto), pero el numero de
-glifos es limitado: sólo se pueden imprimir desde el silencio de
-garrapatea (128) hasta el de máxima (8 redondas).
+No existe un límite fundamental para las duraciones de los
+silencios (tanto para el más largo como para el más corto), pero
+el numero de glifos es limitado: sólo se pueden imprimir desde el
+silencio de garrapatea (128) hasta el de máxima (8 redondas).
 
 
 @node Grupos especiales
@@ -214,14 +226,16 @@ rapidez de la expresión musical por una fracción:
 @end example
 
 @noindent
-El nomerador de la fracción se imprime encima o debajo de las
+El numerador de la fracción se imprime encima o debajo de las
 notas, opcionalmente con un corchete.  El grupo especial más común
 es el tresillo, en el que 3@tie{}notas tienen el valor que
 normalmente tienen@tie{}2:
 
-@lilypond[quote,verbatim,relative=2]
-a2 \tuplet 3/2 { b4 b b }
-c4 c \tuplet 3/2 { b4 a g }
+@lilypond[quote,verbatim]
+\relative {
+  a'2 \tuplet 3/2 { b4 4 4 }
+  c4 c \tuplet 3/2 { b4 a g }
+}
 @end lilypond
 
 @cindex agrupación de grupes especiales
@@ -248,7 +262,16 @@ música para que así se agrupen automáticamente:
 @funindex tupletNeutral
 
 Se pueden colocar manualmente los corchetes de tresillo encima o
-debajo de la pauta; véase @ref{Dirección y posición}.
+debajo de la pauta:
+
+@lilypond[quote,verbatim]
+\relative {
+  \tupletUp \tuplet 3/2 { c''8 d e }
+  \tupletNeutral \tuplet 3/2 { c8 d e }
+  \tupletDown \tuplet 3/2 { f,8 g a }
+  \tupletNeutral \tuplet 3/2 { f8 g a }
+}
+@end lilypond
 
 Los grupos pueden anidarse unos dentro de otros:
 
@@ -259,11 +282,11 @@ Los grupos pueden anidarse unos dentro de otros:
 }
 @end lilypond
 
-La modificación de los grupos especiales anidados que comienzan en el
-mismo instante musical se debe hacer con @code{\tweak}.
+La modificación de los grupos especiales anidados que comienzan en
+el mismo instante musical se debe hacer con @code{\tweak}.
 
-Para modificar la duración de las notas sin imprimir un corchete de
-grupo especial, véase @ref{Escalar las duraciones}.
+Para modificar la duración de las notas sin imprimir un corchete
+de grupo especial, véase @ref{Escalar las duraciones}.
 
 @predefined
 @code{\tupletUp},
@@ -307,6 +330,7 @@ Manual de aprendizaje:
 @rlearning{Métodos de trucaje}.
 
 Referencia de la notación:
+@ref{Dirección y posición},
 @ref{Gestión del tiempo},
 @ref{Escalar las duraciones},
 @ref{La instrucción tweak},
@@ -320,22 +344,6 @@ Referencia de funcionamiento interno:
 @rinternals{TupletNumber},
 @rinternals{TimeScaledMusic}.
 
-@cindex adorno, notas de, dentro de corchetes de grupo especial
-
-@knownissues
-Las notas de adorno se pueden escribir dentro de los corchetes de
-grupo especial, @emph{excepto} cuando un pentagrama comienza por una
-nota de adorno seguida de un grupo de valoración especial.  En este
-caso concreto, se debe poner la nota de adorno antes de la instrucción
-@code{\tuplet} para evitar errores.
-
-@cindex indicaciones de tempo dentro de corchetes de grupo especial
-
-Cuando se utiliza un grupo de valoración especial al comienzo de una
-pieza con una indicación de @code{\tempo}, la música se debe escribir
-explícitamente dentro de un bloque @code{\new Voice}, tal y como se
-explica en @rlearning{Las voces contienen música}.
-
 
 @node Escalar las duraciones
 @unnumberedsubsubsec Escalar las duraciones
@@ -344,19 +352,20 @@ explica en @rlearning{Las voces contienen música}.
 @cindex escalar las duraciones
 @cindex duraciones, escalado de
 
-La duración de las figuras, silencios o acordes se puede multiplicar
-por un factor @code{N/M} añadiendo @code{*N/M} (o @code{*N} si @code{M} es
-1) a la duración.  Esto no afectará a la apariencia de las notas o
-silencios que se producen, pero la duración alterada se usará para
-calcular la posición dentro del compás y para establecer la duración
-en la salida MIDI.  Los factores de multiplicación se pueden combinar
-en la forma @code{*L*M/N}.  Los factores son parte de la duración: si
-no especificamos una duración para las notas siguientes, la duración
-por omisión que se toma de la nota anterior incluirá cualquier factor
-de escala que se haya aplicado.
+La duración de las figuras, silencios o acordes se puede
+multiplicar por un factor @code{N/M} añadiendo @code{*N/M} (o
+@code{*N} si @code{M} es 1) a la duración.  Esto no afectará a la
+apariencia de las notas o silencios que se producen, pero la
+duración alterada se usará para calcular la posición dentro del
+compás y para establecer la duración en la salida MIDI.  Los
+factores de multiplicación se pueden combinar en la forma
+@code{*L*M/N}.  Los factores son parte de la duración: si no
+especificamos una duración para las notas siguientes, la duración
+por omisión que se toma de la nota anterior incluirá cualquier
+factor de escala que se haya aplicado.
 
-En el siguiente ejemplo las tres primeras notas duran exactamente dos
-partes, pero no se imprime ningún corchete de tresillo.
+En el siguiente ejemplo las tres primeras notas duran exactamente
+dos partes, pero no se imprime ningún corchete de tresillo.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -372,9 +381,9 @@ partes, pero no se imprime ningún corchete de tresillo.
 }
 @end lilypond
 
-La duración de los silencios espaciadores también se puede modificar
-mediante un multiplicador.  Esto es útil para saltar muchos compases,
-como por ejemplo @code{s1*23}.
+La duración de los silencios espaciadores también se puede
+modificar mediante un multiplicador.  Esto es útil para saltar
+muchos compases, como por ejemplo @code{s1*23}.
 
 @cindex compresión de música
 @cindex expansión de música
@@ -384,11 +393,11 @@ como por ejemplo @code{s1*23}.
 
 De la misma forma, se pueden comprimir por una fracción trozos de
 música más largos, como si cada nota, acorde o silencio tuviera la
-fracción como multiplicador.  Esto dejará intacta la apariencia de la
-@emph{música}, pero la duración interna de las notas se multiplicará
-por la fracción @emph{numerador}/@emph{denominador}.
-He aquí un ejemplo que muestra cómo
-se puede comprimir y expandir la música:
+fracción como multiplicador.  Esto dejará intacta la apariencia de
+la @emph{música}, pero la duración interna de las notas se
+multiplicará por la fracción @emph{numerador}/@emph{denominador}.
+He aquí un ejemplo que muestra cómo se puede comprimir y expandir
+la música:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -436,14 +445,14 @@ ningún error.
 
 @funindex ~
 
-Una ligadura de unión conecta dos notas adyacentes de la misma altura.  La ligadura
-en efecto extiende la longitud de una nota.
+Una ligadura de unión conecta dos notas adyacentes de la misma
+altura.  La ligadura en efecto extiende la longitud de una nota.
 
 @warning{No deben confundirse las ligaduras de unión con las
-@emph{ligaduras de expresión}, que indican articulación, ni con las
-@emph{ligaduras de fraseo}, que indican el fraseo musical.  Una
-ligadura de unión es tan sólo una manera de extender la duración de
-una nota, algo parecido a lo que hace el puntillo.}
+@emph{ligaduras de expresión}, que indican articulación, ni con
+las @emph{ligaduras de fraseo}, que indican el fraseo musical.
+Una ligadura de unión es tan sólo una manera de extender la
+duración de una nota, algo parecido a lo que hace el puntillo.}
 
 Se introduce una ligadura de unión escribiendo el símbolo de la
 tilde curva (@code{~}) después de la primera de cada pareja de
@@ -454,6 +463,13 @@ siguiente, que debe tener la misma altura.
 { a'2~ 4~ 16 r r8 }
 @end lilypond
 
+Las ligaduras de unión pueden hacer uso de la interpretación
+@q{última altura explícita} para las duraciones aisladas:
+
+@lilypond[quote,verbatim]
+{ a'2~ 4~ 16 r r8 }
+@end lilypond
+
 Se usan ligaduras de unión bien cuando la nota atraviesa la barra de
 compás o bien cuando no se pueden usar puntillos para denotar el
 ritmo.  También se deben usar ligaduras cuando las notas atraviesan
@@ -461,29 +477,33 @@ subdivisiones del compás de mayor duración:
 
 @c KEEP LY
 @lilypond[verbatim,quote]
-\relative c' {
-  r8^"sí" c~ 2 r4 |
+\relative {
+  r8^"sí" c'~ 2 r4 |
   r8^"no" c2~ 8 r4
 }
 @end lilypond
 
-Si necesitamos ligar muchas notas a través de las líneas divisorias,
-nos podría resultar más fácil utilizar la división automática de las
-notas, véase @ref{División automática de las notas}.  Este mecanismo divide
-automáticamente las notas largas y las liga a través de las barras de
-compás.
+Si necesitamos ligar muchas notas a través de las líneas
+divisorias, nos podría resultar más fácil utilizar la división
+automática de las notas, véase @ref{División automática de las
+notas}.  Este mecanismo divide automáticamente las notas largas y
+las liga a través de las barras de compás.
 
 @cindex ligaduras y acordes
 @cindex acordes y ligaduras
 
-Cuando se aplica una ligadura de unión a un acorde, se conectan todas
-las cabezas de las notas cuyas alturas coinciden.  Si no coincide
-ningún par de cabezas, no se crea ninguna ligadura.  Los acordes se
-pueden ligar parcialmente colocando las ligaduras dentro del acorde.
+Cuando se aplica una ligadura de unión a un acorde, se conectan
+todas las cabezas de las notas cuyas alturas coinciden.  Si no
+coincide ningún par de cabezas, no se crea ninguna ligadura.  Los
+acordes se pueden ligar parcialmente colocando las ligaduras
+dentro del acorde.
 
-@lilypond[quote,verbatim,relative=1]
-<c e g>~ <c e g c>
-<c~ e g~ b> <c e g b>
+@lilypond[quote,verbatim]
+\relative c' {
+  <c e g>2~ 2 |
+  <c e g>4~ <c e g c>
+    <c~ e g~ b> <c e g b> |
+}
 @end lilypond
 
 @cindex repetición, ligaduras de unión en
@@ -516,9 +536,9 @@ es necesario especificar la ligadura repetida como sigue:
 @funindex laissezVibrer
 
 Las ligaduras @notation{L.v.} (@notation{laissez vibrer}, dejar
-vibrar) indican que las notas no se deben apagar al final.  Se usan en
-la notación para piano, arpa y otros instrumentos de cuerda y
-percusión.  Se pueden introducir de la siguiente manera:
+vibrar) indican que las notas no se deben apagar al final.  Se
+usan en la notación para piano, arpa y otros instrumentos de
+cuerda y percusión.  Se pueden introducir de la siguiente manera:
 
 @lilypond[quote,verbatim,fragment]
 <c' f' g'>1\laissezVibrer
@@ -580,15 +600,16 @@ Se pueden especificar patrones de discontinuidad personalizados:
 }
 @end lilypond
 
-Las definiciones de patrones de discontinuidad para las ligaduras de
-unión tienen la misma estructura que las definiciones de patrones de
-discontinuidad para las ligaduras de expresión.  Para ver más
-información acerca de los patrones de discontinuidad complejos,
-consulte los fragmentos de código bajo @ref{Ligaduras de expresión}.
+Las definiciones de patrones de discontinuidad para las ligaduras
+de unión tienen la misma estructura que las definiciones de
+patrones de discontinuidad para las ligaduras de expresión.  Para
+ver más información acerca de los patrones de discontinuidad
+complejos, consulte los fragmentos de código bajo
+@ref{Ligaduras de expresión}.
 
 Sobreescriba las propiedades de disposición @var{whiteout} y
-@var{layer} para las ligaduras de unión que colisionen con otros
-objetos del pentagrama.
+@var{layer} de los objetos que puedan causar una discontinuidad en
+las ligaduras de unión.
 
 @lilypond[verbatim,quote,ragged-right]
 \relative {
@@ -617,6 +638,7 @@ objetos del pentagrama.
 @endpredefined
 
 @snippets
+
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {using-ties-with-arpeggios.ly}
 
@@ -643,12 +665,12 @@ Referencia de funcionamiento interno:
 @rinternals{Tie}.
 
 @knownissues
-Un cambio de pentagrama cuando hay una ligadura activa no producirá
-una ligadura inclinada.
+Un cambio de pentagrama cuando hay una ligadura activa no
+producirá una ligadura inclinada.
 
 Los cambios de clave o de octava durante una ligadura de unión no
-están bien definidos realmente.  En estos casos puede ser preferible
-una ligadura de expresión.
+están bien definidos realmente.  En estos casos puede ser
+preferible una ligadura de expresión.
 
 
 @node Escritura de silencios
@@ -684,8 +706,8 @@ expresiones musicales.
 @funindex \breve
 @funindex breve
 
-Los silencios se introducen como notas con el nombre @code{r}.  Las
-duraciones mayores que la redonda utilizan las instrucciones
+Los silencios se introducen como notas con el nombre @code{r}.
+Las duraciones mayores que la redonda utilizan las instrucciones
 predefinidas que se muestran aquí:
 
 @c \time 16/1 is used to avoid spurious bar lines
@@ -708,24 +730,26 @@ predefinidas que se muestran aquí:
 @cindex silencios multicompás
 @cindex silencios de compás completo
 
-Los silencios de un compás, centrados en medio del compás, se deben
-hacer con silencios multicompás.  Se pueden usar para un solo compás
-así como para muchos compases, y se tratan en @ref{Silencios de compás completo}.
+Los silencios de un compás, centrados en medio del compás, se
+deben hacer con silencios multicompás.  Se pueden usar para un
+solo compás así como para muchos compases, y se tratan en
+@ref{Silencios de compás completo}.
 
 @cindex silencio, especificar la posición vertical
 
-Para especificar explícitamente la posición vertical de un silencio,
-escriba una nota seguida de @code{\rest}.  Se colocará un silencio en
-la posición en que debería aparecer la nota.  Esto posibilita la
-aplicación manual precisa de formato a la música polifónica, ya que el
-formateador automático de colisiones de silencios no mueve estos
-silencios.
+Para especificar explícitamente la posición vertical de un
+silencio, escriba una nota seguida de @code{\rest}.  Se colocará
+un silencio en la posición en que debería aparecer la nota.  Esto
+posibilita la aplicación manual precisa de formato a la música
+polifónica, ya que el formateador automático de colisiones de
+silencios no mueve estos silencios.
 
 @lilypond[quote,verbatim]
 \relative { a'4\rest d4\rest }
 @end lilypond
 
 @snippets
+
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {rest-styles.ly}
 
@@ -747,9 +771,9 @@ Referencia de funcionamiento interno:
 @knownissues
 @c Deliberately duplicated in Durations and Rests.  -gp
 No existe un límite fundamental respecto de las duraciones de los
-silencios (tanto para el más corto como para el más largo), pero el
-número de glifos es limitado: hay silencios desde la garrapatea (128)
-hasta la máxima (8 redondas).
+silencios (tanto para el más corto como para el más largo), pero
+el número de glifos es limitado: hay silencios desde la garrapatea
+(128) hasta la máxima (8 redondas).
 
 
 @node Silencios invisibles
@@ -779,13 +803,14 @@ nombre@tie{}@code{s}:
 
 @cindex letra, desplazamiento de
 
-Los silencios de separación sólo están disponible en el modo de notas
-y en el modo de acordes.  En otras situaciones, por ejemplo, cuando se
-introduce la letra, se usa la instrucción @code{\skip} para producir
-un desplazamiento de una cierta magnitud temporal.  @code{\skip}
-requiere una duración explícita, pero se ignora si las sílabas de la
-letra toman sus duraciones de las notas de una melodía asociada, a
-través de @code{\addlyrics} o de @code{\lyricsto}.
+Los silencios de separación sólo están disponible en el modo de
+notas y en el modo de acordes.  En otras situaciones, por ejemplo,
+cuando se introduce la letra, se usa la instrucción @code{\skip}
+para producir un desplazamiento de una cierta magnitud temporal.
+@code{\skip} requiere una duración explícita, pero se ignora si
+las sílabas de la letra toman sus duraciones de las notas de una
+melodía asociada, a través de @code{\addlyrics} o de
+@code{\lyricsto}.
 
 @lilypond[quote,verbatim]
 <<
@@ -800,8 +825,9 @@ través de @code{\addlyrics} o de @code{\lyricsto}.
 >>
 @end lilypond
 
-Dado que @code{\skip} es una instrucción, no afecta a las duraciones
-por omisión de las notas siguientes, a diferencia de@tie{}@code{s}.
+Dado que @code{\skip} es una instrucción, no afecta a las
+duraciones por omisión de las notas siguientes, a diferencia
+de@tie{}@code{s}.
 
 @lilypond[quote,verbatim]
 <<
@@ -816,15 +842,15 @@ por omisión de las notas siguientes, a diferencia de@tie{}@code{s}.
 @end lilypond
 
 Un silencio de separación produce implícitamente contextos
-@code{Staff} y @code{Voice} si no existe ninguno, igual que las notas
-y los silencios normales:
+@code{Staff} y @code{Voice} si no existe ninguno, igual que las
+notas y los silencios normales:
 
 @lilypond[quote,verbatim]
 { s1 s s }
 @end lilypond
 
-@code{\skip} tan sólo desplaza un tiempo musical; no produce ninguna
-salida, de ninguna clase.
+@code{\skip} tan sólo desplaza un tiempo musical; no produce
+ninguna salida, de ninguna clase.
 
 @lilypond[quote,verbatim]
 % This is valid input, but does nothing
@@ -857,35 +883,40 @@ Referencia de funcionamiento interno:
 @cindex redonda, silencios de, para un compás completo
 @cindex silencios de redonda para un compás completo
 
+@funindex compressMMRests
+@funindex \compressMMRests
 @funindex R
 
-Los silencios de uno o más compases completos se introducen como notas
-con el nombre @code{R} en mayúscula:
+Los silencios de uno o más compases completos se introducen como
+notas con el nombre @code{R} en mayúscula:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
 % Rest measures contracted to single measure
-\compressFullBarRests
-R1*4
-R1*24
-R1*4
-b2^"Tutti" b4 a4
+\compressMMRests {
+  R1*4
+  R1*24
+  R1*4
+  b'2^"Tutti" b'4 a'4
+}
 @end lilypond
 
 La duración de los silencios de compás completo es idéntica a la
-notación de la duración que se usa para las notas.  La duración de un
-silencio multi-compás debe ser siempre un número entero de compases,
-por lo que con frecuencia han de utilizarse puntillos o fracciones:
-
-@lilypond[quote,verbatim,relative=2]
-\compressFullBarRests
-\time 2/4
-R1 | R2 |
-\time 3/4
-R2. | R2.*2 |
-\time 13/8
-R1*13/8 | R1*13/8*12 |
-\time 10/8
-R4*5*4 |
+notación de la duración que se usa para las notas.  La duración de
+un silencio multi-compás debe ser siempre un número entero de
+compases, por lo que con frecuencia han de utilizarse puntillos o
+fracciones:
+
+@lilypond[quote,verbatim]
+\compressMMRests {
+  \time 2/4
+  R1 | R2 |
+  \time 3/4
+  R2. | R2.*2 |
+  \time 13/8
+  R1*13/8 | R1*13/8*12 |
+  \time 10/8
+  R4*5*4 |
+}
 @end lilypond
 
 Un silencio de un compás completo se imprime como un silencio de
@@ -904,27 +935,23 @@ R1*2 |
 @cindex multicompás, silencios, expansión de
 @cindex multicompás, silencios, contracción de
 
-@funindex \expandFullBarRests
-@funindex expandFullBarRests
-@funindex \compressFullBarRests
-@funindex compressFullBarRests
-
 De forma predeterminada un silencio multicompás se expande en la
-partitura impresa para mostrar explícitamente todos los compases de
-silencio.  De forma alternativa, un silencio multicompás se puede
-presentar como un solo compás que contiene un símbolo de silencio
-multicompás, con el número de compases impreso encima del compás:
+partitura impresa para mostrar explícitamente todos los compases
+de silencio.  De forma alternativa, un silencio multicompás se
+puede presentar como un solo compás que contiene un símbolo de
+silencio multicompás, con el número de compases impreso encima del
+compás:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim,fragment]
 % Default behavior
 \time 3/4 r2. | R2.*2 |
 \time 2/4 R2 |
 \time 4/4
 % Rest measures contracted to single measure
-\compressFullBarRests
-r1 | R1*17 | R1*4 |
-% Rest measures expanded
-\expandFullBarRests
+\compressMMRests {
+  r1 | R1*17 | R1*4 |
+}
+% Rest measures expanded again
 \time 3/4
 R2.*2 |
 @end lilypond
@@ -942,22 +969,23 @@ R2.*2 |
 @funindex fermataMarkup
 @funindex MultiMeasureRestText
 
-Se pueden añadir elementos de marcado a los silencios multicompás.  Se
-proporciona la instrucción predefinida @code{\fermataMarkup} para
-añadir calderones.
+Se pueden añadir elementos de marcado a los silencios multicompás.
+Se proporciona la instrucción predefinida @code{\fermataMarkup}
+para añadir calderones.
 
-@lilypond[quote,verbatim,relative=2]
-\compressFullBarRests
-\time 3/4
-R2.*10^\markup { \italic "ad lib." }
-R2.^\fermataMarkup
+@lilypond[quote,verbatim]
+\compressMMRests {
+  \time 3/4
+  R2.*10^\markup { \italic "ad lib." }
+  R2.^\fermataMarkup
+}
 @end lilypond
 
 @warning{Los elementos de marcado que se añaden a un silencio
 multicompás son objetos del tipo @code{MultiMeasureRestText}, no
 @code{TextScript}.  Las sobreescrituras de propiedades deben ir
-dirigidas hacia el objeto correcto, o se ignorarán.  Véase el ejemplo
-siguiente:}
+dirigidas hacia el objeto correcto, o se ignorarán.  Véase el
+ejemplo siguiente:}
 
 @lilypond[quote,verbatim,fragment]
 % This fails, as the wrong object name is specified
@@ -968,9 +996,10 @@ R1^"wrong"
 R1^"right"
 @end lilypond
 
-Cuando un silencio multicompás sigue inmediatamente al establecimiento
-de un compás parcial con @code{\partial}, es posible que no se emitan
-las advertencias correspondientes de comprobación de compás.
+Cuando un silencio multicompás sigue inmediatamente al
+establecimiento de un compás parcial con @code{\partial}, es
+posible que no se emitan las advertencias correspondientes de
+comprobación de compás.
 
 @funindex \textLengthOn
 @funindex textLengthOn
@@ -978,19 +1007,17 @@ las advertencias correspondientes de comprobación de compás.
 @funindex textLengthOff
 @funindex \fermataMarkup
 @funindex fermataMarkup
-@funindex \compressFullBarRests
-@funindex compressFullBarRests
-@funindex \expandFullBarRests
-@funindex expandFullBarRests
+@funindex \compressMMRests
+@funindex compressMMRests
 
 @predefined
 @code{\textLengthOn},
 @code{\textLengthOff},
 @code{\fermataMarkup},
-@code{\compressFullBarRests},
-@code{\expandFullBarRests}.
+@code{\compressMMRests}.
 @endpredefined
 
+
 @snippets
 @cindex eclesiásticos, silencios
 @cindex silencios eclesiásticos
@@ -1037,8 +1064,8 @@ puede chocar con el número del compás.
 @cindex condensar silencios
 @cindex silencio normal, condensar
 
-No hay ninguna forma de condensar automáticamente muchos silencios en
-un solo silencio multicompás.
+No hay ninguna forma de condensar automáticamente muchos silencios
+en un solo silencio multicompás.
 
 @cindex silencio, colisiones de
 
@@ -1077,13 +1104,16 @@ La indicación de compás se establece como sigue:
 \time 3/4 c''2.
 @end lilypond
 
+Se estudian los cambios de indicación de compás en el medio de un
+compás en @ref{Anacrusas}.
+
 @cindex compás, visibilidad de la indicación de
 
-La indicación de compás se imprime al comienzo de una pieza y siempre
-que hay un cambio de compás.  Si se produce un cambio al final de una
-línea, se imprime una indicación de advertencia en dicho lugar.  Se
-puede modificar este comportamiento predeterminado, véase
-@ref{Visibilidad de los objetos}.
+La indicación de compás se imprime al comienzo de una pieza y
+siempre que hay un cambio de compás.  Si se produce un cambio al
+final de una línea, se imprime una indicación de advertencia en
+dicho lugar.  Se puede modificar este comportamiento
+predeterminado, véase @ref{Visibilidad de los objetos}.
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -1139,17 +1169,17 @@ propiedades basadas en el tipo de compás @code{baseMoment},
 predefinidos de estas propiedades están en
 @file{scm/time-signature-settings.scm}.
 
-El valor predeterminado de @code{beatStructure} puede sobreescribirse
-dentro de la propia instrucción @code{\time} escribiéndolo como primer
-argumento opcional:
+El valor predeterminado de @code{beatStructure} puede
+sobreescribirse dentro de la propia instrucción @code{\time}
+escribiéndolo como primer argumento opcional:
 
 @lilypond[quote,verbatim]
 \score {
   \new Staff {
     \relative {
-      \time #'(2 2 3) 7/8
+      \time 2,2,3 7/8
       \repeat unfold 7 { c'8 } |
-      \time #'(3 2 2) 7/8
+      \time 3,2,2 7/8
       \repeat unfold 7 { c8 } |
     }
   }
@@ -1159,10 +1189,10 @@ argumento opcional:
 De forma alternativa, los valores predeterminados de todoas estas
 variables basadas en la indicación de compás, incluidas
 @code{baseMoment} y @code{beamExceptions}, se pueden establecer
-juntas.  Los valores se pueden fijar independientemente para varios
-tipos de compás distintos.  Los nuevos valores tienen efecto cuando se
-ejecuta una instrucción @code{\time} posterior con el mismo valor del
-tipo de compás:
+juntas.  Los valores se pueden fijar independientemente para
+varios tipos de compás distintos.  Los nuevos valores tienen
+efecto cuando se ejecuta una instrucción @code{\time} posterior
+con el mismo valor del tipo de compás:
 
 @lilypond[quote,verbatim]
 \score {
@@ -1171,7 +1201,7 @@ tipo de compás:
       \overrideTimeSignatureSettings
         4/4        % timeSignatureFraction
         1/4        % baseMomentFraction
-        #'(3 1)    % beatStructure
+        3,1        % beatStructure
         #'()       % beamExceptions
       \time 4/4
       \repeat unfold 8 { c8 } |
@@ -1185,13 +1215,13 @@ tipo de compás:
 @enumerate
 
 @item
-@code{@var{timeSignatureFraction}}, una fracción que describe
-el tipo de compás al que se aplican estos valores.
+@code{@var{timeSignatureFraction}}, una fracción que describe el
+tipo de compás al que se aplican estos valores.
 
 @item
 @code{@var{baseMomentFraction}}, una fracción que contiene el
-numerador y denominador de la unidad de medida básica de ese tipo de
-compás.
+numerador y denominador de la unidad de medida básica de ese tipo
+de compás.
 
 @item
 @code{@var{beatStructure}}, una lista de Scheme que indica la
@@ -1210,8 +1240,8 @@ comportamiento de las barras automáticas}.
 @cindex restaurar las propiedades predeterminadas del tipo de compás
 @funindex \revertTimeSignatureSettings
 
-Los valores modificados de las propiedades predeterminadas del tipo de
-compás se pueden restaurar a los valores originales:
+Los valores modificados de las propiedades predeterminadas del
+tipo de compás se pueden restaurar a los valores originales:
 
 @lilypond[quote,verbatim]
 \score{
@@ -1220,7 +1250,7 @@ compás se pueden restaurar a los valores originales:
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1234,8 +1264,8 @@ compás se pueden restaurar a los valores originales:
 Se pueden establecer diferentes valores de las propiedades
 predeterminadas del tipo de compás para los distintos pentagramas
 moviendo el @code{Timing_translator} y el
-@code{Default_bar_line_engraver} del contexto @code{Score} al contexto
-@code{Staff}.
+@code{Default_bar_line_engraver} del contexto @code{Score} al
+contexto @code{Staff}.
 
 @lilypond[quote, verbatim]
 \score {
@@ -1244,7 +1274,7 @@ moviendo el @code{Timing_translator} y el
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1253,7 +1283,7 @@ moviendo el @code{Timing_translator} y el
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1274,10 +1304,10 @@ moviendo el @code{Timing_translator} y el
 }
 @end lilypond
 
-Otro método para cambiar estas variables relacionadas con el tipo de
-compás, que evita la reimpresión de la indicación de compás en el
-momento del cambio, se muestra en
-@ref{Establecer el comportamiento de las barras automáticas}.
+Otro método para cambiar estas variables relacionadas con el tipo
+de compás, que evita la reimpresión de la indicación de compás en
+el momento del cambio, se muestra en @ref{Establecer el
+comportamiento de las barras automáticas}.
 
 @predefined
 @code{\numericTimeSignature},
@@ -1331,8 +1361,8 @@ Es muy sencillo escribir una indicación metronómica básica:
 }
 @end lilypond
 
-También se pueden imprimir indicaciones metronómicas
-como un intervalo entre dos números:
+También se pueden imprimir indicaciones metronómicas como un
+intervalo entre dos números:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1352,8 +1382,9 @@ Se pueden usar indicaciones de tempo con texto:
 }
 @end lilypond
 
-La combinación de una indicación metronómica y un texto hace que la
-marca de metrónomo se encierre entre paréntesis automáticamente:
+La combinación de una indicación metronómica y un texto hace que
+la marca de metrónomo se encierre entre paréntesis
+automáticamente:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1396,16 +1427,17 @@ superpongan, y @code{\markLengthOff} restablece el comportamiento
 predeterminado de ignorar las indicaciones de tempo para el
 espaciado horizontal.
 
-@lilypond[verbatim,quote,relative=0]
-\compressFullBarRests
-\markLengthOn
-\tempo "Molto vivace"
-R1*12
-\tempo "Meno mosso"
-R1*16
-\markLengthOff
-\tempo "Tranquillo"
-R1*20
+@lilypond[verbatim,quote]
+\compressMMRests {
+  \markLengthOn
+  \tempo "Molto vivace"
+  R1*12
+  \tempo "Meno mosso"
+  R1*16
+  \markLengthOff
+  \tempo "Tranquillo"
+  R1*20
+}
 @end lilypond
 
 @snippets
@@ -1432,7 +1464,7 @@ Glosario musical:
 
 Referencia de la notación:
 @ref{Formatear el texto},
-@ref{Salida MIDI}.
+@ref{Creación de salida MIDI}.
 
 Fragmentos de código:
 @rlsr{Staff notation}.
@@ -1450,32 +1482,22 @@ Referencia de funcionamiento interno::
 @cindex compás parcial
 @cindex parcial, compás
 @cindex compás de anacrusa
+@cindex compás, indicación de, en medio de un compás
 
 @funindex measurePosition
 @funindex \partial
 @funindex partial
 
-Los compases parciales como las @emph{anacrusas} o partes
-@emph{al alzar} se escriben usando la instrucción
-@code{\partial}:
+Los compases parciales como las @emph{anacrusas} o partes @emph{al
+alzar} se escriben usando la instrucción @code{\partial}:
 
 @example
 \partial @var{duración}
 @end example
 
-@noindent
-donde @code{@var{duración}} es la longitud @emph{restante}
-del compás parcial @emph{antes} del comienzo del siguiente
-compás completo.
-
-@lilypond[quote,verbatim,relative=1]
-\time 3/4
-\partial 8
-e8 | a4 c8 b c4 |
-@end lilypond
-
-La @var{duración} puede ser cualquier valor menor de un compás
-completo:
+Cuando se usa @code{\partial} al principio de la partitura,
+@code{@var{duración}} es el tiempo de anacrusa, la longitud de la
+música que precede al primer compás.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -1485,28 +1507,46 @@ completo:
 }
 @end lilypond
 
-El @code{\partial @var{duración}} se puede también escribir como:
+Cuando se usa @code{\partial} después del comienzo de la
+partitura, @code{@var{duración}} es la longitud @emph{restante}
+del compás actual.  No crea un nuevo compás con numeración.
 
-@example
-\set Timing.measurePosition -@var{duración}
-@end example
+@lilypond[quote,verbatim]
+\relative {
+  \set Score.barNumberVisibility = #all-bar-numbers-visible
+  \override Score.BarNumber.break-visibility =
+           #end-of-line-invisible
+  \time 9/8
+  d''4.~ 4 d8 d( c) b | c4.~ 4. \bar "||"
+  \time 12/8
+  \partial 4.
+  c8( d) e | f2.~ 4 f8 a,( c) f |
+}
+@end lilypond
 
-Así que el primer ejemplo podría haberse escrito así:
+La instrucción @code{\partial} es @emph{necesaria} cuando cambia
+la indicación de compás en medio de un compás, pero también puede
+usarse sola.
 
-@lilypond[quote,verbatim,relative=1]
-\time 3/4
-\set Timing.measurePosition = #(ly:make-moment -1/8)
-e8 | a4 c8 b c4 |
+@lilypond[quote,verbatim]
+\relative {
+  \set Score.barNumberVisibility = #all-bar-numbers-visible
+  \override Score.BarNumber.break-visibility =
+           #end-of-line-invisible
+  \time 6/8
+  \partial 8
+  e'8 | a4 c8 b[ c b] |
+  \partial 4
+  r8 e,8 | a4 \bar "||"
+  \partial 4
+  r8 e8 | a4
+  c8 b[ c b] |
+}
 @end lilypond
 
-La propiedad @code{measurePosition} contiene un número racional,
-que suele ser positivo y que indica qué porción del compás ha
-transcurrido hasta ahora en este punto.  La instrucción
-@code{\partial @var{duración}} lo establece a un número negativo,
-en cuyo caso tiene un significado distinto: en esta ocasión indica
-que el compás actual (el primero) será @emph{precedido} por un
-compás cero (el compás parcial) con una duración dada por el valor
-@var{duración}.
+La instrucción @code{\partial} fija la propiedad
+@code{Timing.measurePosition}, que un número racional que indica
+cuánto tiempo ha transcurrido dentro del compás actual.
 
 @seealso
 Glosario musical:
@@ -1521,20 +1561,6 @@ Fragmentos de código:
 Referencia de funcionamiento interno:
 @rinternals{Timing_translator}.
 
-@knownissues
-La instrucción @code{\partial} debe usarse solamente en el comienzo de
-una pieza.  Si se emplea después del comienzo se obtendrán varias
-advertencias o efectos desagradables, en este caso utilice en su lugar
-@code{\set Timing.measurePosition}.
-
-@lilypond[quote,verbatim,relative=1]
-\time 6/8
-\partial 8
-e8 | a4 c8 b[ c b] |
-\set Timing.measurePosition = #(ly:make-moment -1/4)
-r8 e,8 | a4 c8 b[ c b] |
-@end lilypond
-
 
 @node Música sin compasear
 @unnumberedsubsubsec Música sin compasear
@@ -1563,12 +1589,11 @@ r8 e,8 | a4 c8 b[ c b] |
 @funindex \cadenzaOff
 @funindex cadenzaOff
 
-En la música medida se insertan líneas divisorias
-y se calculan los números de compás automáticamente.
-En música sin metro (es decir, cadencias), esto no es deseable
-y se puede @q{desactivar} usando la instrucción
-@code{\cadenzaOn}, para despúes @q{reactivarlo} en el lugar
-adecuado usando @code{\cadenzaOff}.
+En la música medida se insertan líneas divisorias y se calculan
+los números de compás automáticamente.  En música sin metro (es
+decir, cadencias), esto no es deseable y se puede @q{desactivar}
+usando la instrucción @code{\cadenzaOn}, para despúes
+@q{reactivarlo} en el lugar adecuado usando @code{\cadenzaOff}.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -1619,9 +1644,8 @@ forzadas o de cortesía, véase @ref{Alteraciones accidentales}.
 @end lilypond
 
 El barrado automático se desactiva mediante @code{\cadenzaOn}.
-Por tanto, todo el barrado en las
-cadencias se debe introducir manualmente.
-Véase @ref{Barras manuales}.
+Por tanto, todo el barrado en las cadencias se debe introducir
+manualmente.  Véase @ref{Barras manuales}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -1635,11 +1659,11 @@ Véase @ref{Barras manuales}.
 }
 @end lilypond
 
-Estas instrucciones predefinidas afectan a todas las
-pautas de la partitura, aunque aparezcan en un solo contexto
-@code{Voice}.  Para cambiar esto, traslade el
-@code{Timing_translator} del contexto @code{Score} al contexto
-@code{Staff}, véase @ref{Notación polimétrica}.
+Estas instrucciones predefinidas afectan a todas las pautas de la
+partitura, aunque aparezcan en un solo contexto @code{Voice}.
+Para cambiar esto, traslade el @code{Timing_translator} del
+contexto @code{Score} al contexto @code{Staff}, véase
+@ref{Notación polimétrica}.
 
 @predefined
 @code{\cadenzaOn},
@@ -1670,11 +1694,10 @@ Fragmentos de código:
 @cindex saltos de página, música sin medida
 
 @knownissues
-Sólo se insertan saltos de línea y de página automáticamente
-en las líneas divisorias,
-por lo que es necesario insertar manualmente líneas divisorias
-@q{invisibles} en fragmentos largos de música sin medir para permitir
-los saltos:
+Sólo se insertan saltos de línea y de página automáticamente en
+las líneas divisorias, por lo que es necesario insertar
+manualmente líneas divisorias @q{invisibles} en fragmentos largos
+de música sin medir para permitir los saltos:
 
 @example
 \bar ""
@@ -1701,26 +1724,26 @@ los saltos:
 @funindex tuplet
 
 Está contemplada la notación polimétrica, ya sea explícitamente o
-mediante la modificación manual de la indicación visible del compás y/o el
-escalado de la duración de las notas.
+mediante la modificación manual de la indicación visible del
+compás y/o el escalado de la duración de las notas.
 
 @subsubsubheading Pentagramas con distintas indicaciones de compás y compases de igual longitud
 
-Establezca una indicación de compás común para cada pentagrama, y fije
-@code{timeSignatureFraction} a la fracción deseada.  Luego use la función
-@code{\scaleDurations} para escalar las duraciones de las notas en cada
-pauta a la indicación de compás común.
+Establezca una indicación de compás común para cada pentagrama, y
+fije @code{timeSignatureFraction} a la fracción deseada.  Luego
+use la función @code{\scaleDurations} para escalar las duraciones
+de las notas en cada pauta a la indicación de compás común.
 
 @cindex barras en música polimétrica
 @cindex polimétrico, metro, barras en 
 
-En el siguiente ejemplo, se usa en paralelo música con compases de 3/4, 9/8 y
-10/8.  En el segundo pentagrama, las duraciones mostradas se
-multiplican por 2/3 (pues 2/3 * 9/8 = 3/4), y en el tercer pentagrama,
-las duraciones que se muestran están multiplicadas por 3/5 (pues 3/5 *
-10/8 = 3/4).  Con frecuencia habrá que insertar las barras de
-forma manual, pues el escalado de las duraciones afecta a las reglas
-de barrado automático.
+En el siguiente ejemplo, se usa en paralelo música con compases de
+3/4, 9/8 y 10/8.  En el segundo pentagrama, las duraciones
+mostradas se multiplican por 2/3 (pues 2/3 * 9/8 = 3/4), y en el
+tercer pentagrama, las duraciones que se muestran están
+multiplicadas por 3/5 (pues 3/5 * 10/8 = 3/4).  Con frecuencia
+habrá que insertar las barras de forma manual, pues el escalado de
+las duraciones afecta a las reglas de barrado automático.
 
 @lilypond[quote,verbatim]
 \relative <<
@@ -1750,8 +1773,8 @@ de barrado automático.
 @subsubsubheading Pentagramas con distintas indicaciones de compás y longitudes de compás distintas
 
 Se puede dar a cada pentagrama su propia indicación de compás
-independiente trasladando los grabadores @code{Timing_translator} y
-@code{Default_bar_line_engraver} al contexto de @code{Staff}.
+independiente trasladando los grabadores @code{Timing_translator}
+@code{Default_bar_line_engraver} al contexto de @code{Staff}.
 
 @lilypond[quote,verbatim]
 \layout {
@@ -1804,8 +1827,8 @@ Se crean usando la función @code{\compoundMeter}.  La sintaxis es:
 @end example
 
 La construcción más simple es una lista única, en la que el
-@emph{último} número indica el denominador de la indicación de compás
-y los anteriores son los numeradores.
+@emph{último} número indica el denominador de la indicación de
+compás y los anteriores son los numeradores.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -1853,11 +1876,11 @@ Referencia de funcionamiento interno:
 
 @knownissues
 Al usar distintos compases en paralelo, las notas que están en el
-mismo instante de tiempo se colocan en la misma posición horizontal.
-Sin embargo, las barras de compás en los distintos pentagramas harán
-que el espaciado de notas sea menos regular en cada pentagrama
-individual de lo que sería normal sin las distintas indicaciones de
-compás.
+mismo instante de tiempo se colocan en la misma posición
+horizontal.  Sin embargo, las barras de compás en los distintos
+pentagramas harán que el espaciado de notas sea menos regular en
+cada pentagrama individual de lo que sería normal sin las
+distintas indicaciones de compás.
 
 
 @node División automática de las notas
@@ -1873,13 +1896,15 @@ compás.
 @funindex Completion_heads_engraver
 @funindex Completion_rest_engraver
 
-Las notas largas se pueden convertir automáticamente en notas ligadas.
-Se hace mediante la sustitución del @code{Note_heads_engraver} por el
-@code{Completion_heads_engraver}.  De forma similar, los silencios largos que
-sobrepasan líneas de compás se dividen automáticamente sustituyendo el
-grabador @code{Rest_engraver} con el grabador @code{Completion_rest_engraver}.
-En el ejemplo siguiente, las notas y los silencios que atraviesan la barra
-de compás se dividen, y además las notas se unen mediante una ligadura.
+Las notas largas se pueden convertir automáticamente en notas
+ligadas.  Se hace mediante la sustitución del
+@code{Note_heads_engraver} por el
+@code{Completion_heads_engraver}.  De forma similar, los silencios
+largos que sobrepasan líneas de compás se dividen automáticamente
+sustituyendo el grabador @code{Rest_engraver} con el grabador
+@code{Completion_rest_engraver}.  En el ejemplo siguiente, las
+notas y los silencios que atraviesan la barra de compás se
+dividen, y además las notas se unen mediante una ligadura.
 
 @lilypond[quote,verbatim]
 \new Voice \with {
@@ -1894,10 +1919,42 @@ de compás se dividen, y además las notas se unen mediante una ligadura.
 @end lilypond
 
 Estos grabadores dividen todas las notas y silencios largos en la
-barra de compás, e inserta ligaduras en las notas.
-Uno de sus usos es depurar partituras complejas:
-si los compases no están completos, las ligaduras mostrarán
-exactamente cuánto le falta a cada compás.
+barra de compás, e inserta ligaduras en las notas.  Uno de sus
+usos es depurar partituras complejas: si los compases no están
+completos, las ligaduras mostrarán exactamente cuánto le falta a
+cada compás.
+
+La propiedad @code{completionUnit} fija una duración preferida
+para las notas divididas.
+
+@lilypond[quote,verbatim]
+\new Voice \with {
+  \remove "Note_heads_engraver"
+  \consists "Completion_heads_engraver"
+} \relative {
+  \time 9/8 g\breve. d''4. \bar "||"
+  \set completionUnit = #(ly:make-moment 3 8)
+  g\breve. d4.
+}
+@end lilypond
+
+Estos grabadores dividen las notas que tienen la duración
+escalada, como las de los tresillos, en notas que tienen el mismo
+factor de escala que la nota original de la entrada.
+
+@lilypond[quote,verbatim]
+\new Voice \with {
+  \remove "Note_heads_engraver"
+  \consists "Completion_heads_engraver"
+} \relative {
+  \time 2/4 r4
+  \tuplet 3/2 {g'4 a b}
+  \scaleDurations 2/3 {g a b}
+  g4*2/3 a b
+  \tuplet 3/2 {g4 a b}
+  r4
+}
+@end lilypond
 
 @seealso
 Glosario musical:
@@ -1918,13 +1975,13 @@ Referencia de funcionamiento interno:
 @rinternals{Forbid_line_break_engraver}.
 
 @knownissues
-No todas las duraciones (sobre todo las que contienen grupos
-especiales) se pueden representar exactamente con notas normales y
-puntillos, pero el grabador @code{Completion_heads_engraver} nunca
-insertará grupos especiales.
-
-@code{Completion_heads_engraver} afecta sólo a las notas; no divide
-silencios.
+Por consistencia con el comportamiento anterior, las notas y
+silencios que tienen una duración mayor de un compás, como
+@code{c1*2}, se dividen en notas sin ningún factor de escala,
+@code{@{ c1 c1 @}}.  La propiedad @code{completionFactor} controla
+este comportamiento, y al darle el valor @code{#f} podemos hacer
+que las notas y silencios divididos tengan el mismo factor de
+escala que las duraciones de las notas originales de la entrada.
 
 
 @node Mostrar los ritmos de la melodía
@@ -1935,9 +1992,9 @@ silencios.
 @cindex duraciones de la melodía, mostrar
 
 A veces podemos querer mostrar solamente el ritmo de una melodía.
-Esto se puede hacer con un pentagrama de ritmo.  Todas las alturas de
-las notas se convierten en barras inclinadas, y el pentagrama tiene
-una sola línea:
+Esto se puede hacer con un pentagrama de ritmo.  Todas las alturas
+de las notas se convierten en barras inclinadas, y el pentagrama
+tiene una sola línea:
 
 @lilypond[quote,verbatim]
 <<
@@ -2047,8 +2104,9 @@ automáticamente:
 @end lilypond
 
 Cuando estas decisiones automáticas no son lo bastante buenas, se
-pueden escribir los barrados de forma explícita; véase @ref{Barras manuales}.  Las barras @emph{se deben} introducir manualmente si se
-quieren extender por encima de los silencios.
+pueden escribir los barrados de forma explícita; véase
+@ref{Barras manuales}.  Las barras @emph{se deben} introducir
+manualmente si se quieren extender por encima de los silencios.
 
 Si no se necesita el barrado automático, se puede desactivar con
 @code{\autoBeamOff} y activarse con @code{\autoBeamOn}:
@@ -2066,15 +2124,16 @@ Si no se necesita el barrado automático, se puede desactivar con
 @cindex melismas, barras en
 @cindex barras y melismas
 
-@warning{Si se usan barras para indicar los melismas de las canciones,
-entonces se debe desactivar el barrado automático con
-@code{@bs{}autoBeamOff} e indicar las barras manualmente.
-La utilización de @code{@bs{}partcombine} con
-@code{@bs{}autoBeamOff} puede producir resultados no deseados.  Véanse
-los fragmentos de código para mayor información.}
+@warning{Si se usan barras para indicar los melismas de las
+canciones, entonces se debe desactivar el barrado automático con
+@code{@bs{}autoBeamOff} e indicar las barras manualmente.  La
+utilización de @code{@bs{}partcombine} con @code{@bs{}autoBeamOff}
+puede producir resultados no deseados.  Véanse los fragmentos de
+código para mayor información.}
 
 Se pueden crear patrones de barrado que difieran de los valores
-automáticos predeterminados; véase @ref{Establecer el comportamiento de las barras automáticas}.
+automáticos predeterminados; véase
+@ref{Establecer el comportamiento de las barras automáticas}.
 
 @predefined
 @code{\autoBeamOff},
@@ -2123,9 +2182,9 @@ Referencia de funcionamiento interno:
 @knownissues
 Las propiedades de una barra vienen determinadas al
 @emph{comienzo} de su construcción y cualquier cambio adicional en
-las propiedades de la barra que se produzca antes de que la barra se ha
-completado no tendrá efecto hasta que inicie la @emph{siguiente}
-barra nueva.
+las propiedades de la barra que se produzca antes de que la barra
+se ha completado no tendrá efecto hasta que inicie la
+@emph{siguiente} barra nueva.
 
 
 @node Establecer el comportamiento de las barras automáticas
@@ -2138,6 +2197,7 @@ barra nueva.
 @funindex autoBeaming
 @funindex baseMoment
 @funindex beamExceptions
+@funindex \beamExceptions
 @funindex beatStructure
 @funindex measureLength
 @funindex \time
@@ -2158,10 +2218,10 @@ en curso, se usa dicha regla para determinar la colocación de las
 barras; se ignoran los valores de @code{baseMoment} y
 @code{beatStructure}.
 
-Si no está definida ninguna regla de
-@code{beamExceptions} para el tipo de compás en curso, la
-colocación de las barras está determinada por los valores de
-@code{baseMoment} y @code{beatStructure}.
+Si no está definida ninguna regla de @code{beamExceptions} para el
+tipo de compás en curso, la colocación de las barras está
+determinada por los valores de @code{baseMoment} y
+@code{beatStructure}.
 
 @subsubsubheading Barrado basado en @code{baseMoment} y @code{beatStructure}
 
@@ -2188,6 +2248,16 @@ De forma predeterminada, @code{baseMoment} es una unidad más que
 el denominador del compás.  De forma predeterminada también, cada
 unidad de longitud @code{baseMoment} es un único pulso.
 
+Observe que existen valores de @code{beatStructure} y de
+@code{baseMoment} diferentes para cada indicación de compás.  Los
+cambios que se hacen a estas variables se aplican solamente al
+tipo de compás en vigor, por lo que dichos cambios se deben
+escribir después de la instrucción @code{\time} que da comienzo a
+una sección nueva con un tipo de compás distinto, no antes.  Los
+valores nuevos que se dan a una indicación de compás concreta se
+retienen y se vuelven a aplicar cuando ese tipo de compás vuelve a
+establecerse.
+
 @lilypond[quote,verbatim]
 \relative c'' {
   \time 5/16
@@ -2195,9 +2265,9 @@ unidad de longitud @code{baseMoment} es un único pulso.
   % beamExceptions are unlikely to be defined for 5/16 time,
   % but let's disable them anyway to be sure
   \set Timing.beamExceptions = #'()
-  \set Timing.beatStructure = #'(2 3)
+  \set Timing.beatStructure = 2,3
   c16^"(2+3)" c c c c |
-  \set Timing.beatStructure = #'(3 2)
+  \set Timing.beatStructure = 3,2
   c16^"(3+2)" c c c c |
 }
 @end lilypond
@@ -2210,21 +2280,22 @@ unidad de longitud @code{baseMoment} es un único pulso.
   % defined for 4/4 time
   \set Timing.beamExceptions = #'()
   \set Timing.baseMoment = #(ly:make-moment 1/4)
-  \set Timing.beatStructure = #'(1 1 1 1)
+  \set Timing.beatStructure = 1,1,1,1
   a8^"changed" a a a a a a a
 }
 @end lilypond
 
-Los cambios en los ajustes de barrado se pueden limitar a contextos
-específicos.  Si no se incluye ningún ajuste en un contexto de nivel
-más bajo, se aplican los ajustes del contexto circundante.
+Los cambios en los ajustes de barrado se pueden limitar a
+contextos específicos.  Si no se incluye ningún ajuste en un
+contexto de nivel más bajo, se aplican los ajustes del contexto
+circundante.
 
 @lilypond[quote, verbatim]
 \new Staff {
   \time 7/8
   % No need to disable beamExceptions
   % as they are not defined for 7/8 time
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   <<
     \new Voice = one {
       \relative {
@@ -2234,7 +2305,7 @@ más bajo, se aplican los ajustes del contexto circundante.
     \new Voice = two {
       \relative {
         \voiceTwo
-        \set Voice.beatStructure = #'(1 3 3)
+        \set Voice.beatStructure = 1,3,3
         f'8 f f f f f f
       }
     }
@@ -2252,99 +2323,84 @@ pentagrama:
 % Change applied to Voice by default --  does not work correctly
 % Because of autogenerated voices, all beating will
 % be at baseMoment (1 . 8)
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 
 % Works correctly with context Staff specified
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 @end lilypond
 
 El valor de @code{baseMoment} se puede ajustar para cambiar el
-comportamiento de las barras, si se desea.  Cuando se hace, el valor
-de @code{beatStructure} se debe fijar de manera que sea compatible con
-el nuevo valor de @code{baseMoment}.
+comportamiento de las barras, si se desea.  Cuando se hace, el
+valor de @code{beatStructure} se debe fijar de manera que sea
+compatible con el nuevo valor de @code{baseMoment}.
 
 @lilypond[quote,verbatim,fragment]
 \time 5/8
 % No need to disable beamExceptions
 % as they are not defined for 5/8 time
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a'16 }
 @end lilypond
 
-@code{baseMoment} es un @i{momento}, una unidad de duración musical.
-Se crea una cantidad del tipo @i{momento} por medio de la función de
-Scheme @code{ly:make-moment}.  Para ver más información acerca de esta
-función, consulte @ref{Gestión del tiempo}.
+@code{baseMoment} es un @i{momento}, una unidad de duración
+musical.  Se crea una cantidad del tipo @i{momento} por medio de
+la función de Scheme @code{ly:make-moment}.  Para ver más
+información acerca de esta función, consulte @ref{Gestión del
+tiempo}.
 
-De forma predeterminada @code{baseMoment} está fijado a una unidad más
-que el denominador del compás.  Todas las excepciones a este valor
-predeterminado están en
+De forma predeterminada @code{baseMoment} está fijado a una unidad
+más que el denominador del compás.  Todas las excepciones a este
+valor predeterminado están en
 @file{scm/time-signature-settings.scm}.
 
 @subsubsubheading Barrado basado en @code{beamExceptions}
 
-Las reglas de autobarrado especiales (distintas de terminar una barra
-sobre un pulso) están definidas en la propiedad @code{beamExceptions}.
-
-@lilypond[quote,relative=2,verbatim]
-\time 3/16
-\set Timing.beatStructure = #'(2 1)
-\set Timing.beamExceptions =
-  #'(                         ;start of alist
-     (end .                   ;entry for end of beams
-      (                       ;start of alist of end points
-       ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
-      )))                     %close all entries
-c16 c c |
-\repeat unfold 6 { c32 } |
-@end lilypond
-
-@code{beamExceptions} es una lista-A con una clave de rule-type y un
-valor de beaming-rules.
-
-En este momento el único valor disponible de rule-type es @code{'end}
-para la terminación de las barras.
-
-Beaming-rules es una lista-A de Scheme (o una lista de parejas) que
-indica el tipo de barra y la agrupación que se aplica a las barras que
-contienen notas con una duración más breve de ese tipo de barra.
-
-@example
-#'((tipo-barra1 . agrupación1)
-   (tipo-barra2 . agrupación2)
-   (tipo-barra3 . agrupación3))
-@end example
+Las reglas de autobarrado especiales (distintas de terminar una
+barra sobre un pulso) están definidas en la propiedad
+@code{beamExceptions}.
 
-Tipo de barra es una dupla de Scheme que indica la duración de la
-barra, p.ej. @code{(1 . 16)}.
+El valor de @code{beamExceptions}, que es una estructura de datos
+de Scheme bastante compleja, se genera fácilmente con la función
+@code{\beamExceptions}.  Esta función recibe uno o más patrones
+rítmicos barrados manualmente y con un compás de duración (los
+compases se deben separar por una barra de comprobación de
+compás@tie{}@code{|} porque la función no tiene otra manera de
+discernir la longitud del compás).  He aquí un ejemplo sencillo:
 
-Agrupación es una lista de Scheme que indica la agrupación que aplicar
-a la barra.  El valor de agrupación está en unidades del tipo de
-barra.
+@lilypond[quote,verbatim]
+\relative c'' {
+  \time 3/16
+  \set Timing.beatStructure = 2,1
+  \set Timing.beamExceptions =
+    \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
+  c16 c c |
+  \repeat unfold 6 { c32 } |
+}
+@end lilypond
 
-@warning{ Un valor de @code{beamExceptions} debe ser una lista de
-excepciones @emph{completa}.  Esto es, toda excepción que se tenga que
-aplicar debe estar incluida en este ajuste.  No es posible añadir,
-eliminar o cambiar sólo una de las excepciones.  Aunque esto puede
-parecer engorroso, significa que no es necesario conocer los ajustes
-de barrado actuales para poder especificar un patrón de barrado
-nuevo.}
+@warning{Un valor de @code{beamExceptions} debe ser una lista de
+excepciones @emph{completa}.  Esto es, toda excepción que se tenga
+que aplicar debe estar incluida en este ajuste.  No es posible
+añadir, eliminar o cambiar sólo una de las excepciones.  Aunque
+esto puede parecer engorroso, significa que no es necesario
+conocer los ajustes de barrado actuales para poder especificar un
+patrón de barrado nuevo.}
 
 Cuando cambia el compás, se fijan los valores predeterminados de
 @code{Timing.baseMoment}, @code{Timing.beatStructure} y
-@code{Timing.beamExceptions}.  Un ajuste en el tipo de compás da como
-resultado un reinicio de los ajustes de barrado automático para el
-contexto @code{Timing} al comportamiento predeterminado.
+@code{Timing.beamExceptions}.  Un ajuste en el tipo de compás da
+como resultado un reinicio de los ajustes de barrado automático
+para el contexto @code{Timing} al comportamiento predeterminado.
 
 @lilypond[quote,verbatim]
 \relative a' {
   \time 6/8
   \repeat unfold 6 { a8 }
   % group (4 + 2)
-  \set Timing.beatStructure = #'(4 2)
+  \set Timing.beatStructure = 4,2
   \repeat unfold 6 { a8 }
   % go back to default behavior
   \time 6/8
@@ -2362,12 +2418,13 @@ Muchos ajustes de barrado automáticos para un tipo de compás
 contienen una entrada para @code{beamExceptions}.  Por ejemplo, el
 compás de 4/4 trata de unir el compás en dos partes si solo hay
 corcheas.  La regla @code{beamExceptions} puede sobreescribir el
-ajuste @code{beatStructure} si no se reinicia @code{beamExceptions}.
+ajuste @code{beatStructure} si no se reinicia
+@code{beamExceptions}.
 
 @lilypond[quote,verbatim,fragment]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % This won't beam (3 3 2) because of beamExceptions
 \repeat unfold 8 {c''8} |
 % This will beam (3 3 2) because we clear beamExceptions
@@ -2375,10 +2432,10 @@ ajuste @code{beatStructure} si no se reinicia @code{beamExceptions}.
 \repeat unfold 8 {c''8}
 @end lilypond
 
-De forma similar, las corcheas en compás de 3/4 se unen mediante una
-sola barra para todo el compás, de forma predeterminada.  Para unir
-las corcheas en 3/4 mediante una barra en cada parte, reinicie
-@code{beamExceptions}.
+De forma similar, las corcheas en compás de 3/4 se unen mediante
+una sola barra para todo el compás, de forma predeterminada.  Para
+unir las corcheas en 3/4 mediante una barra en cada parte,
+reinicie @code{beamExceptions}.
 
 @lilypond[quote,verbatim,fragment]
 \time 3/4
@@ -2390,12 +2447,13 @@ las corcheas en 3/4 mediante una barra en cada parte, reinicie
 @end lilypond
 
 En la música tipografiada de los períodos clásico y romántico, con
-frecuencia las barras comienzan a mitad de un compás en 3/4, pero la
-práctica moderna es evitar la falsa impresión de 6/8 (véase Gould,
-pág. 153).  Se producen situaciones similares en el compás de 3/8.
-Este comportamiento viene controlado mediante la propiedad de contexto
-@code{beamHalfMeasure}, que tiene efecto solamente sobre indicaciones
-de compás que tienen la cifra 3 en el numerador:
+frecuencia las barras comienzan a mitad de un compás en 3/4, pero
+la práctica moderna es evitar la falsa impresión de 6/8 (véase
+Gould, pág. 153).  Se producen situaciones similares en el compás
+de 3/8.  Este comportamiento viene controlado mediante la
+propiedad de contexto @code{beamHalfMeasure}, que tiene efecto
+solamente sobre indicaciones de compás que tienen la cifra 3 en el
+numerador:
 
 @lilypond[quote,verbatim]
 \relative a' {
@@ -2408,41 +2466,43 @@ de compás que tienen la cifra 3 en el numerador:
 
 @subsubsubheading Cómo funciona el barrado automático
 
-Cuando se habilita el barrado automático, la colocación de las barras
-de corchea automáticas viene determinada por las propiedades de
-contexto @code{baseMoment}, @code{beatStructure} y
+Cuando se habilita el barrado automático, la colocación de las
+barras de corchea automáticas viene determinada por las
+propiedades de contexto @code{baseMoment}, @code{beatStructure} y
 @code{beamExceptions}.
 
-Son de aplicación las siguientes reglas, en orden de prioridad, cuando
-se determina el aspecto de las barras:
+Son de aplicación las siguientes reglas, en orden de prioridad,
+cuando se determina el aspecto de las barras:
 
 @itemize
 @item
-Si está especificada una barra manual con @code{[@dots{}]}, fijar la barra
-tal y como se ha especificado; en caso contrario,
+Si está especificada una barra manual con @code{[@dots{}]}, fijar
+la barra tal y como se ha especificado; en caso contrario,
 
 @item
-si está definida en @code{beamExceptions} una regla de barrado para
-este tipo de barra, utilizarla para determinar los lugares válidos en
-que pueden terminar las barras; en caso contrario,
+si está definida en @code{beamExceptions} una regla de barrado
+para este tipo de barra, utilizarla para determinar los lugares
+válidos en que pueden terminar las barras; en caso contrario,
 
 @item
-si está definida en @code{beamExceptions} una regla de final de barra
-para un tipo de barra más largo, utilizarla para determinar los
-lugares válidos en que pueden terminar las barras; en caso contrario,
+si está definida en @code{beamExceptions} una regla de final de
+barra para un tipo de barra más largo, utilizarla para determinar
+los lugares válidos en que pueden terminar las barras; en caso
+contrario,
 
 @item
-usar los valores de @code{baseMoment} y de @code{beatStructure} para
-determinar los finales de los pulsos dentro del compás, y terminar las
-barras al final de los pulsos.
+usar los valores de @code{baseMoment} y de @code{beatStructure}
+para determinar los finales de los pulsos dentro del compás, y
+terminar las barras al final de los pulsos.
 
 @end itemize
 
-En las reglas anteriores, el tipo de barra @emph{beam-type} es
-la duración de la nota más breve dentro del grupo unido por una barra.
+En las reglas anteriores, el tipo de barra @emph{beam-type} es la
+duración de la nota más breve dentro del grupo unido por una
+barra.
 
-Las reglas de barrado predefinidas están
-en el archivo @file{scm/time-signature-settings.scm}.
+Las reglas de barrado predefinidas están en el archivo
+@file{scm/time-signature-settings.scm}.
 
 @snippets
 @cindex barras, subdivisión
@@ -2486,40 +2546,42 @@ Referencia de funcionamiento interno:
 @rinternals{beam-interface}.
 
 @knownissues
-Si una partitura termina mientras una barra de corchea automática no
-ha terminado y aún acepta notas, esta última barra no se imprime en
-absoluto.  Lo mismo sirve para las voces polifónicas introducidas con
-@code{<< @dots{} \\ @dots{} >>}.  Si una voz polifónica termina
-mientras una barra de corchea automática aún admite notas, no se
-imprime.  El rodeo para estos problemas es aplicar el barrado manual a
-la última barra de la voz o partitura.
-
-De forma predeterminada, el traductor @code{Timing} recibe el nombre
-del contexto @code{Score} como alias.  Esto significa que el
-establecimiento del compás en ua pauta afectará al barrado de las
-otras pautas también.  Así, un ajuste en el compás en un pentagrama
-tardío reiniciará el barrado personalizado que se había ajustado en un
-pentagrama más temprano.  Una forma de evitar este problema es ajustar
-la indicación de compás en un pentagrama solamente.
-
-@lilypond[quote,verbatim,relative=2]
+Si una partitura termina mientras una barra de corchea automática
+no ha terminado y aún acepta notas, esta última barra no se
+imprime en absoluto.  Lo mismo sirve para las voces polifónicas
+introducidas con @code{<< @dots{} \\ @dots{} >>}.  Si una voz
+polifónica termina mientras una barra de corchea automática aún
+admite notas, no se imprime.  El rodeo para estos problemas es
+aplicar el barrado manual a la última barra de la voz o partitura.
+
+De forma predeterminada, el traductor @code{Timing} recibe el
+nombre del contexto @code{Score} como alias.  Esto significa que
+el establecimiento del compás en ua pauta afectará al barrado de
+las otras pautas también.  Así, un ajuste en el compás en un
+pentagrama tardío reiniciará el barrado personalizado que se había
+ajustado en un pentagrama más temprano.  Una forma de evitar este
+problema es ajustar la indicación de compás en un pentagrama
+solamente.
+
+@lilypond[quote,verbatim]
 <<
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
-    \repeat unfold 6 { a8 }
+    \set Timing.beatStructure = 1,5
+    \set Timing.beamExceptions = #'()
+    \repeat unfold 6 { a'8 }
   }
   \new Staff {
-    \repeat unfold 6 { a8 }
+    \repeat unfold 6 { a'8 }
   }
 >>
 @end lilypond
 
-Los ajustes de barrado predeterminados para dicho compás también se
-pueden cambiar, de forma que siempre se utilice siempre el barrado
-deseado. La manera de efectuar cambios en los ajustes de barrado
-automático para una indicación de compás se describe en
+Los ajustes de barrado predeterminados para dicho compás también
+se pueden cambiar, de forma que siempre se utilice siempre el
+barrado deseado. La manera de efectuar cambios en los ajustes de
+barrado automático para una indicación de compás se describe en
 @ref{Indicación de compás}.
 
 @lilypond[quote,verbatim]
@@ -2528,7 +2590,7 @@ automático para una indicación de compás se describe en
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
@@ -2552,12 +2614,12 @@ automático para una indicación de compás se describe en
 @funindex [
 
 En ciertos casos puede ser preciso sobreescribir el algoritmo de
-barrado automático.  Por ejemplo, el barrador automático no escribe
-barras por encima de los silencios o las líneas divisorias, y en las
-partituras corales el barrado se ajusta con frecuencia para que siga
-la medida de la letra en vez de la de las notas.  Tales barras se
-especifican manualmente marcando los puntos de comienzo y final con
-@code{[} y @code{]}
+barrado automático.  Por ejemplo, el barrador automático no
+escribe barras por encima de los silencios o las líneas
+divisorias, y en las partituras corales el barrado se ajusta con
+frecuencia para que siga la medida de la letra en vez de la de las
+notas.  Tales barras se especifican manualmente marcando los
+puntos de comienzo y final con @code{[} y @code{]}
 
 @lilypond[quote,verbatim]
 \relative { r4 r8[ g' a r] r g[ | a] r }
@@ -2566,8 +2628,8 @@ especifican manualmente marcando los puntos de comienzo y final con
 @cindex barras manuales, abreviatura de dirección
 @cindex barras manuales, notas de adorno
 
-La dirección de las barras se puede establecer manualmente utilizando
-indicadores de dirección:
+La dirección de las barras se puede establecer manualmente
+utilizando indicadores de dirección:
 
 @lilypond[quote,verbatim]
 \relative { c''8^[ d e] c,_[ d e f g] }
@@ -2576,8 +2638,8 @@ indicadores de dirección:
 @funindex \noBeam
 @funindex noBeam
 
-Se pueden marcar notas individuales con @code{\noBeam} para evitar que
-resulten unidas por una barra:
+Se pueden marcar notas individuales con @code{\noBeam} para evitar
+que resulten unidas por una barra:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -2586,9 +2648,9 @@ resulten unidas por una barra:
 }
 @end lilypond
 
-Se pueden producir al mismo tiempo barras de notas de adorno y barras
-normales.  Las notas de adorno sin barra no se colocan dentro de las
-barras de notas normales.
+Se pueden producir al mismo tiempo barras de notas de adorno y
+barras normales.  Las notas de adorno sin barra no se colocan
+dentro de las barras de notas normales.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -2603,14 +2665,15 @@ barras de notas normales.
 @funindex stemLeftBeamCount
 @funindex stemRightBeamCount
 
-Se puede conseguir un control incluso más estricto sobre las barras
-estableciendo las propiedades @code{stemLeftBeamCount} y
+Se puede conseguir un control incluso más estricto sobre las
+barras estableciendo las propiedades @code{stemLeftBeamCount} y
 @code{stemRightBeamCount}.  Especifican el número de barras que se
 dibujarán en los lados izquierdo y derecho, respectivamente, de la
-nota siguiente.  Si cualquiera de estas dos propiedades está ajustada
-a un valor, dicho valor se usará una sola vez, y luego se borrará.  En
-este ejemplo, el último Fa se imprime con sólo una barra en el lado
-izquierdo, es decir, la barra de corchea del grupo como un todo.
+nota siguiente.  Si cualquiera de estas dos propiedades está
+ajustada a un valor, dicho valor se usará una sola vez, y luego se
+borrará.  En este ejemplo, el último Fa se imprime con sólo una
+barra en el lado izquierdo, es decir, la barra de corchea del
+grupo como un todo.
 
 @lilypond[quote,verbatim]
 \relative a' {
@@ -2629,6 +2692,7 @@ izquierdo, es decir, la barra de corchea del grupo como un todo.
 @endpredefined
 
 @snippets
+
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {flat-flags-and-beam-nibs.ly}
 
@@ -2659,31 +2723,33 @@ Referencia de funcionamiento interno:
 @funindex featherDurations
 @funindex grow-direction
 
-Las barras progresivas se usan para indicar que un pequeño grupo de
-notas se debe tocar a una velocidad creciente (o decreciente), sin
-cambiar el tempo general de la pieza.  El ámbito de la barra progresiva
-se debe indicar manualmente usando @code{[} y @code{]}, el efecto de
-ángulo de la barra se inicia especificando una dirección en la
-propiedad @code{grow-direction} del objeto @code{Beam}.
-
-Si queremos que la colocación de las notas y el sonido de la salida
-MIDI refleje el @emph{ritardando} o @emph{accelerando}
-indicado por la barra
-progresiva, las notas se deben agrupar como una expresión musical
-delimitada por llaves y precedida de una instrucción
-@code{featheredDurations} que especifica la razón entre las duraciones
-de la primera y la última notas dentro del grupo.
+Las barras progresivas se usan para indicar que un pequeño grupo
+de notas se debe tocar a una velocidad creciente (o decreciente),
+sin cambiar el tempo general de la pieza.  El ámbito de la barra
+progresiva se debe indicar manualmente usando @code{[} y @code{]},
+el efecto de ángulo de la barra se inicia especificando una
+dirección en la propiedad @code{grow-direction} del objeto
+@code{Beam}.
+
+Si queremos que la colocación de las notas y el sonido de la
+salida MIDI refleje el @emph{ritardando} o @emph{accelerando}
+indicado por la barra progresiva, las notas se deben agrupar como
+una expresión musical delimitada por llaves y precedida de una
+instrucción @code{featheredDurations} que especifica la razón
+entre las duraciones de la primera y la última notas dentro del
+grupo.
 
 Los corchetes rectos muestran el ámbito de la barra y las llaves
 muestran qué notas han de modificar sus duraciones.  Normalmente
-delimitarían el mismo grupo de notas, pero no es un requisito: las dos
-instrucciones son independientes.
+delimitarían el mismo grupo de notas, pero no es un requisito: las
+dos instrucciones son independientes.
 
-En el ejemplo siguiente las ocho semicorcheas ocupan exactamente el
-mismo tiempo que una blanca, pero la primera nota tiene la mitad de
-duración que la última, con las notas intermedias alargándose
-gradualmente.  Las cuatro primeras fusas se aceleran gradualmente,
-mientras que las últimas cuatro fusas están a un tempo constante.
+En el ejemplo siguiente las ocho semicorcheas ocupan exactamente
+el mismo tiempo que una blanca, pero la primera nota tiene la
+mitad de duración que la última, con las notas intermedias
+alargándose gradualmente.  Las cuatro primeras fusas se aceleran
+gradualmente, mientras que las últimas cuatro fusas están a un
+tempo constante.
 
 @lilypond[verbatim,quote]
 \relative c' {
@@ -2712,9 +2778,9 @@ Fragmentos de código:
 @rlsr{Rhythms}.
 
 @knownissues
-La instrucción @code{\featherDurations} sólo funciona con fragmentos
-musicales muy breves, y cuando los números de la fracción son
-pequeños.
+La instrucción @code{\featherDurations} sólo funciona con
+fragmentos musicales muy breves, y cuando los números de la
+fracción son pequeños.
 
 
 @node Compases
@@ -2744,51 +2810,52 @@ pequeños.
 @funindex \bar
 @funindex bar
 
-Las líneas divisorias delimitan a los compases pero también se pueden
-usar para indicar las repeticiones.  Normalmente, las líneas
-divisorias normales se insertan de manera automática en la salida
-impresa en lugares que están basados en el compás actual.
+Las líneas divisorias delimitan a los compases pero también se
+pueden usar para indicar las repeticiones.  Normalmente, las
+líneas divisorias normales se insertan de manera automática en la
+salida impresa en lugares que están basados en el compás actual.
 
-Las barras de compás sencillas insertadas automáticamente se pueden
-cambiar por otros tipos con la instrucción @code{\bar}.  Por ejemplo,
-se suele poner una doble barra de cierre al final de la pieza:
+Las barras de compás sencillas insertadas automáticamente se
+pueden cambiar por otros tipos con la instrucción @code{\bar}.
+Por ejemplo, se suele poner una doble barra de cierre al final de
+la pieza:
 
 @lilypond[quote,verbatim]
 \relative { e'4 d c2 \bar "|." }
 @end lilypond
 
-No deja de ser válida la última nota de un compás si no termina sobre
-la línea divisoria automática: se supone que la nota se prolonga sobre
-el compás siguiente.  Pero una secuencia larga de dichos compases
-prolongados puede hacer que la música aparezca comprimida o incluso
-que se salga de la página.  Esto es a causa de que los saltos de línea
-automáticos solamente se producen al final de compases completos, es
-decir, cuando todas las notas han finalizado antes de que el compás
-termine.
+No deja de ser válida la última nota de un compás si no termina
+sobre la línea divisoria automática: se supone que la nota se
+prolonga sobre el compás siguiente.  Pero una secuencia larga de
+dichos compases prolongados puede hacer que la música aparezca
+comprimida o incluso que se salga de la página.  Esto es a causa
+de que los saltos de línea automáticos solamente se producen al
+final de compases completos, es decir, cuando todas las notas han
+finalizado antes de que el compás termine.
 
-@warning{Una duración incorrecta puede hacer que se trate de evitar la
-producción de saltos de línea, dando como resultado una línea de
-música con una compresión exagerada o música que se sale de la
-página.}
+@warning{Una duración incorrecta puede hacer que se trate de
+evitar la producción de saltos de línea, dando como resultado una
+línea de música con una compresión exagerada o música que se sale
+de la página.}
 
 @cindex línea, saltos
 @cindex líneas divisorias invisibles
 @cindex compás, barras invisibles de
 
 También se permiten saltos de línea en las barras insertadas
-manualmente incluso dentro de compases incompletos.  Para permitir un
-salto de línea donde no hay ninguna línea divisoria visible, utilice
-lo siguiente:
+manualmente incluso dentro de compases incompletos.  Para permitir
+un salto de línea donde no hay ninguna línea divisoria visible,
+utilice lo siguiente:
 
 @example
 \bar ""
 @end example
 
 @noindent
-De esta manera se insertará una barra invisible de compás y se hará
-posible el salto de línea en este punto, sin forzarlo. No se
-incrementa el contador de los números de compás.  Para forzar un salto
-de línea, consulte @ref{Saltos de línea}.
+De esta manera se insertará una barra invisible de compás y se
+hará posible el salto de línea en este punto, sin forzarlo. No se
+incrementa el contador de los números de compás.  Para forzar un
+salto de línea, consulte @ref{Saltos de línea}.
 
 @cindex manuales, líneas divisorias
 @cindex manuales, barras de compás
@@ -2796,19 +2863,19 @@ de línea, consulte @ref{Saltos de línea}.
 @cindex líneas divisorias manuales
 
 Esta y otras líneas divisorias especiales se pueden insertar
-manualmente en cualquier punto.  Cuando coinciden con el final de un
-compás, sustituyen a la línea divisoria simple que se habría insertado
-automáticamente en dicho lugar.  Cuando no coinciden con el final de
-un compás, se inserta la línea especificada en ese punto en la salida
-impresa.
-
-Observe que las líneas divisorias manuales son puramente visuales.  No
-afectan a ninguna de las propiedades que una barra normal afectaría,
-como a los números de compás, alteraciones, saltos de línea, etc.  No
-afectan tampoco al cálculo y colocación de las líneas divisorias
-subsiguientes.  Cuando una divisoria se coloca manualmente donde ya
-existe una divisoria normal, los efectos de la línea original no se
-alteran.
+manualmente en cualquier punto.  Cuando coinciden con el final de
+un compás, sustituyen a la línea divisoria simple que se habría
+insertado automáticamente en dicho lugar.  Cuando no coinciden con
+el final de un compás, se inserta la línea especificada en ese
+punto en la salida impresa.
+
+Observe que las líneas divisorias manuales son puramente visuales.
+No afectan a ninguna de las propiedades que una barra normal
+afectaría, como a los números de compás, alteraciones, saltos de
+línea, etc.  No afectan tampoco al cálculo y colocación de las
+líneas divisorias subsiguientes.  Cuando una divisoria se coloca
+manualmente donde ya existe una divisoria normal, los efectos de
+la línea original no se alteran.
 
 Están disponibles para su inserción manual dos tipos de líneas
 divisorias simples y cinco tipos de doble barra:
@@ -2856,27 +2923,31 @@ y nueve tipos de barra de repetición:
 @end lilypond
 
 Además se puede imprimir una línea divisoria como una marca corta:
+
 @lilypond[quote,fragment,verbatim]
 f'1 \bar "'" g'1
 @end lilypond
-Sin embargo, dado que las mencionadas marcas se utilizan usualmente en
-el canto gregoriano, es preferible en este caso utilizar
-@code{\divisioMinima}, que se describe en la sección @ref{Divisiones}
-dentro de Canto gregoriano.
+
+Sin embargo, dado que las mencionadas marcas se utilizan
+usualmente en el canto gregoriano, es preferible en este caso
+utilizar @code{\divisioMinima}, que se describe en la sección
+@ref{Divisiones} dentro de Canto gregoriano.
 
 LilyPond contempla la notación del canto kievano y ofrece una
 línea divisoria especial kievana:
+
 @lilypond[quote,fragment,verbatim]
 f'1 \bar "k"
 @end lilypond
+
 Pueden verse más detalles de esta notación explicados en
 @ref{Tipografiado del canto kievano en notación cuadrada}.
 
 @cindex segno
 
-Para los símbolos de segno en línea, existen tres tipos
-de barras de compás que se diferencian en su comportamiento
-en los saltos de línea:
+Para los símbolos de segno en línea, existen tres tipos de barras
+de compás que se diferencian en su comportamiento en los saltos de
+línea:
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -2898,16 +2969,17 @@ en los saltos de línea:
 
 @cindex repeticiones
 
-Aunque se pueden insertar manualmente barras de compás con significado
-de repeticiones, no se reconocen como repeticiones por parte de
-LilyPond.  Las secciones repetidas se introducen mejor utilizando las
-diversas instrucciones de repetición (véase @ref{Repeticiones}), que
-imprimen automáticamente las barras correspondientes.
+Aunque se pueden insertar manualmente barras de compás con
+significado de repeticiones, no se reconocen como repeticiones por
+parte de LilyPond.  Las secciones repetidas se introducen mejor
+utilizando las diversas instrucciones de repetición (véase
+@ref{Repeticiones}), que imprimen automáticamente las barras
+correspondientes.
 
-Además se puede especificar @code{".|:-||"}, que equivale a @code{".|:"}
-excepto en los saltos de línea, en que produce una doble barra al
-final de la línea y una repetición izquierda (de comienzo) al
-principio de la línea siguiente.
+Además se puede especificar @code{".|:-||"}, que equivale a
+@code{".|:"} excepto en los saltos de línea, en que produce una
+doble barra al final de la línea y una repetición izquierda (de
+comienzo) al principio de la línea siguiente.
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -3055,10 +3127,11 @@ sencilla de definirlos.  Para ver más información sobre cómo
 modificar o añadir barras de compás, consulte el archivo
 @file{scm/bar-line.scm}.
 
-En las partituras con muchos pentagramas, una instrucción @code{\bar}
-en uno de ellos se aplica automáticamente a todos los demás.  Las
-líneas resultantes se conectan entre los distintos pentagramas de un
-@code{StaffGroup}, @code{PianoStaff} o @code{GrandStaff}.
+En las partituras con muchos pentagramas, una instrucción
+@code{\bar} en uno de ellos se aplica automáticamente a todos los
+demás.  Las líneas resultantes se conectan entre los distintos
+pentagramas de un @code{StaffGroup}, @code{PianoStaff} o
+@code{GrandStaff}.
 
 @lilypond[quote,verbatim]
 <<
@@ -3083,15 +3156,15 @@ líneas resultantes se conectan entre los distintos pentagramas de un
 @funindex bar
 @funindex bartype
 
-La instrucción @samp{\bar @var{tipo de barra}} es una forma corta de
-hacer @samp{\set Timing.whichBar = @var{tipo de barra}}.  Cuando
-@code{whichBar} se establece con el valor de una cadena, se crea una
-línea divisoria de ese tipo.
+La instrucción @samp{\bar @var{tipo de barra}} es una forma corta
+de hacer @samp{\set Timing.whichBar = @var{tipo de barra}}.
+Cuando @code{whichBar} se establece con el valor de una cadena, se
+crea una línea divisoria de ese tipo.
 
-El tipo de barra predeterminado que se usa para las líneas divisorias
-insertadas automáticamente es @code{"|"}.  Se puede cambiar en
-cualquier momento con
-@samp{\set Timing.defaultBarType = @var{tipo de barra}}.
+El tipo de barra predeterminado que se usa para las líneas
+divisorias insertadas automáticamente es @code{"|"}.  Se puede
+cambiar en cualquier momento con @samp{\set Timing.defaultBarType
+= @var{tipo de barra}}.
 
 @seealso
 Referencia de la notación:
@@ -3121,10 +3194,10 @@ Referencia de funcionamiento interno:
 @funindex currentBarNumber
 
 Por defecto, los números de compás se imprimen al principio de la
-línea, excepto la primera.  El número propiamente dicho se almacena en
-la propiedad @code{currentBarNumber}, que normalmente se actualiza
-automáticamente para cada compás.  También se puede establecer
-manualmente:
+línea, excepto la primera.  El número propiamente dicho se
+almacena en la propiedad @code{currentBarNumber}, que normalmente
+se actualiza automáticamente para cada compás.  También se puede
+establecer manualmente:
 
 @lilypond[verbatim,quote]
 \relative c' {
@@ -3140,26 +3213,28 @@ manualmente:
 @funindex barNumberVisibility
 @funindex BarNumber
 
-Los números de compás se pueden tipografiar a intervalos regulares en
-vez de al principio de cada línea.  Para hacerlo se debe sobreescribir
-el comportamiento predeterminado de forma que se puedan imprimir en
-otros lugares.  Esto viene controlado por la propiedad
-@code{break-visibility} de @code{BarNumber}.  Toma tres valores que se
-pueden fijar al valor @code{#t} o @code{#f} para especificar si el
-número de compás correspondiente es visible o no.  El orden de los
-tres valores es @code{visible al final de la línea}, @code{visible en
-mitad de la línea}, @code{visible al principio de la línea}.  En el
-ejemplo siguiente se imprimen los números de compás en todos los
-sitios posibles:
-
-@lilypond[verbatim,quote,relative=1]
-\override Score.BarNumber.break-visibility = #'#(#t #t #t)
-\set Score.currentBarNumber = #11
-% Permit first bar number to be printed
-\bar ""
-c1 | c | c | c
-\break
-c1 | c | c | c
+Los números de compás se pueden tipografiar a intervalos regulares
+en vez de al principio de cada línea.  Para hacerlo se debe
+sobreescribir el comportamiento predeterminado de forma que se
+puedan imprimir en otros lugares.  Esto viene controlado por la
+propiedad @code{break-visibility} de @code{BarNumber}.  Toma tres
+valores que se pueden fijar al valor @code{#t} o @code{#f} para
+especificar si el número de compás correspondiente es visible o
+no.  El orden de los tres valores es @code{visible al final de la
+línea}, @code{visible en mitad de la línea}, @code{visible al
+principio de la línea}.  En el ejemplo siguiente se imprimen los
+números de compás en todos los sitios posibles:
+
+@lilypond[verbatim,quote]
+\relative c' {
+  \override Score.BarNumber.break-visibility = ##(#t #t #t)
+  \set Score.currentBarNumber = #11
+  % Permit first bar number to be printed
+  \bar ""
+  c1 | c | c | c |
+  \break
+  c1 | c | c | c |
+}
 @end lilypond
 
 @snippets
@@ -3169,6 +3244,9 @@ c1 | c | c | c
 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
 {printing-bar-numbers-at-regular-intervals.ly}
 
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{printing-bar-numbers-with-changing-regular-intervals.ly}
+
 @cindex compás, número de, formato
 @cindex número de compases, formato de
 
@@ -3203,10 +3281,10 @@ Referencia de funcionamiento interno:
 @knownissues
 Los números de compás pueden colisionar con el corchete
 @code{StaffGroup}, si hay uno en la parte de arriba.  Para
-solucionarlo, se puede usar la propiedad de relleno @code{padding} de
-@code{BarNumber} para colocar el número correctamente.
-Consulte @rinternals{StaffGroup} y @rinternals{BarNumber}
-para ver más información.
+solucionarlo, se puede usar la propiedad de relleno @code{padding}
+de @code{BarNumber} para colocar el número correctamente.
+Consulte @rinternals{StaffGroup} y @rinternals{BarNumber} para ver
+más información.
 
 
 @node Comprobación de compás y de número de compás
@@ -3222,49 +3300,61 @@ para ver más información.
 @funindex |
 
 Las comprobaciones de compás ayudan a detectar errores en las
-duraciones.  Una comprobación de compás se escribe usando el símbolo
-de la barra vertical, @code{|}, en cualquier lugar donde se espera que
-caiga una línea divisoria.  Si se encuentran líneas de comprobación de
-compás en otros lugares, se imprime una lista de advertencias en el
-archivo log de registro, mostrando los números de línea y columna en
-que han fallado las comprobaciones de compás.  En el siguiente
-ejemplo, la segunda comprobación de compás avisará de un error
+duraciones.  Una comprobación de compás se escribe usando el
+símbolo de la barra vertical, @code{|}, en cualquier lugar donde
+se espera que caiga una línea divisoria.  Si se encuentran líneas
+de comprobación de compás en otros lugares, se imprime una lista
+de advertencias en el archivo log de registro, mostrando los
+números de línea y columna en que han fallado las comprobaciones
+de compás.  En el siguiente ejemplo, la segunda comprobación de
+compás avisará de un error.
 
 @example
 \time 3/4 c2 e4 | g2 |
 @end example
 
-Las comprobaciones de compás también se pueden usar en la letra de las
-canciones:
+Una duración incorrecta produce una partitura completamente
+desbaratada, especialmente si la partitura es polifónica, de
+manera que la mejor forma de empezar a corregir la entrada es
+buscar sistemáticamente la existencia de comprobaciones de compás
+fallidas y duraciones incorrectas.
+
+Si se producen varias comprobaciones de compás seguidas por valor
+de la misma duración musical, solo aparece el primer mensaje de
+advertencia.  Así se consigue que el mensaje esté concentrado en
+la fuente del error de pulso.
+
+Las comprobaciones de compás también se pueden insertar dentro de
+la letra de las canciones:
 
 @example
 \lyricmode @{
   \time 2/4
-  Bri -- lla, | bri -- lla, |
+  Twin -- kle | Twin -- kle |
 @}
 @end example
 
-Las duraciones incorrectas a menudo desbaratan la partitura
-completamente, sobre todo si la música es polifónica, por ello el
-mejor sitio para empezar a corregir la entrada es hacer un barrido en
-busca de comprobaciones de compás fallidas y duraciones incorrectas.
+Observe que las comprobaciones de compás dentro de la letra de las
+canciones se evalúan en el momento musical de la sílaba
+@emph{siguiente} a la comprobación de compas que se procesa.  Si
+la letra está asociada con las notas de una voz que tiene un
+silencio al principio del compás, no se puede poner ninguna sílaba
+al comienzo de ese compás y se imprimie un mensaje de advertencia
+si se escribe una comprobación de compás dentro de la letra, en
+esa posición.
 
-Si varias comprobaciones de compás corresponden al mismo intervalo
-musical, sólo se imprime el primer mensaje de advertencia.  Esto
-permite que la advertencia se centre en la fuente del error de cuenta
-de tiempo.
 
 @funindex |
 @funindex "|"
 
-También es posible redefinir la acción que se lleva a cabo cuando se
-encuentra una barra vertical o símbolo de comprobación de compás,
-@code{|}, en el código de entrada, de forma que haga algo distinto a
-una comprobación de compás.  Se hace asignando una expresión musical a
-@code{"|"}, el símbolo de barra vertical.  En el ejemplo siguiente se
-establece @code{|} de forma que inserte una doble línea divisoria
-cuando aparece en el código de entrada, en vez de comprobar el final
-de un compás.
+También es posible redefinir la acción que se lleva a cabo cuando
+se encuentra una barra vertical o símbolo de comprobación de
+compás, @code{|}, en el código de entrada, de forma que haga algo
+distinto a una comprobación de compás.  Se hace asignando una
+expresión musical a @code{"|"}, el símbolo de barra vertical.  En
+el ejemplo siguiente se establece @code{|} de forma que inserte
+una doble línea divisoria cuando aparece en el código de entrada,
+en vez de comprobar el final de un compás.
 
 @lilypond[quote,verbatim]
 "|" = \bar "||"
@@ -3279,10 +3369,10 @@ de un compás.
 @funindex \barNumberCheck
 @funindex barNumberCheck
 
-Al copiar piezas musicales grandes puede servir de ayuda comprobar que
-el número de compás de LilyPond corresponde al original desde el que
-está copiando.  Esto se puede comprobar con @code{\barNumberCheck},
-por ejemplo:
+Al copiar piezas musicales grandes puede servir de ayuda comprobar
+que el número de compás de LilyPond corresponde al original desde
+el que está copiando.  Esto se puede comprobar con
+@code{\barNumberCheck}, por ejemplo:
 
 @verbatim
 \barNumberCheck #123
@@ -3319,10 +3409,11 @@ Para imprimir una letra de ensayo, utilice la orden @code{\mark}.
 @end lilypond
 
 @noindent
-La letra de ensayo se incrementa automáticamente si usa @code{\mark
-\default}, pero también puede utilizar un número entero como argumento
-para establecer la indicación manualmente.  El valor que se utilizará
-se almacena dentro de la propiedad @code{rehearsalMark}.
+La letra de ensayo se incrementa automáticamente si usa
+@code{\mark \default}, pero también puede utilizar un número
+entero como argumento para establecer la indicación manualmente.
+El valor que se utilizará se almacena dentro de la propiedad
+@code{rehearsalMark}.
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -3337,9 +3428,9 @@ se almacena dentro de la propiedad @code{rehearsalMark}.
 @noindent
 La letra@tie{}@q{I} se salta de acuerdo con las tradiciones de
 grabado.  Si quiere incluir la letra @q{I}, use una de las
-instrucciones siguientes, según el estilo de marcas de
-ensayo que desee (sólo letras, letras dentro de un rectángulo
-o letras dentro de un círculo).
+instrucciones siguientes, según el estilo de marcas de ensayo que
+desee (sólo letras, letras dentro de un rectángulo o letras dentro
+de un círculo).
 
 @example
 \set Score.markFormatter = #format-mark-alphabet
@@ -3371,13 +3462,13 @@ o letras dentro de un círculo).
 @cindex personalizada, marca de ensayo
 @cindex manual, marca de ensayo
 
-El estilo se define por medio de la propiedad @code{markFormatter}.
-Es una función que toma como argumentos la marca en curso (un número
-entero) y el contexto actual.  Debe devolver un objeto de marcado.  En
-el ejemplo siguiente, se establece @code{markFormatter} con el valor
-de un procedimiento enlatado.  Después de algunos compases, se
-establece con el valor de una función que produce un número encerrado
-en una caja.
+El estilo se define por medio de la propiedad
+@code{markFormatter}.  Es una función que toma como argumentos la
+marca en curso (un número entero) y el contexto actual.  Debe
+devolver un objeto de marcado.  En el ejemplo siguiente, se
+establece @code{markFormatter} con el valor de un procedimiento
+enlatado.  Después de algunos compases, se establece con el valor
+de una función que produce un número encerrado en una caja.
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -3394,15 +3485,16 @@ en una caja.
 @end lilypond
 
 El archivo @file{scm/translation-functions.scm} contiene las
-definiciones de @code{format-mark-numbers} (el formato por omisión),
-@code{format-mark-box-numbers}, @code{format-mark-letters} y
-@code{format-mark-box-letters}.  Se pueden usar éstos como inspiración
-para otras funciones de formateo.
+definiciones de @code{format-mark-numbers} (el formato por
+omisión), @code{format-mark-box-numbers},
+@code{format-mark-letters} y @code{format-mark-box-letters}.  Se
+pueden usar éstos como inspiración para otras funciones de
+formateo.
 
 Podemos utilizar @code{format-mark-barnumbers},
 @code{format-mark-box-barnumbers} y
-@code{format-mark-circle-barnumbers} para obtener números de compás en
-lugar de números o letras secuenciales.
+@code{format-mark-circle-barnumbers} para obtener números de
+compás en lugar de números o letras secuenciales.
 
 Se pueden especificar otros estilos de letra de ensayo de forma
 manual:
@@ -3412,8 +3504,8 @@ manual:
 @end example
 
 @noindent
-Observe que @code{Score.markFormatter} no afecta a las marcas que se
-especifican de esta forma.  Sin embargo, es posible aplicar un
+Observe que @code{Score.markFormatter} no afecta a las marcas que
+se especifican de esta forma.  Sin embargo, es posible aplicar un
 elemento @code{\markup} a la cadena.
 
 @example
@@ -3430,8 +3522,8 @@ elemento @code{\markup} a la cadena.
 @funindex \musicglyph
 @funindex musicglyph
 
-Los glifos musicales (como el segno) se pueden imprimir dentro de un
-elemento @code{\mark}
+Los glifos musicales (como el segno) se pueden imprimir dentro de
+un elemento @code{\mark}
 
 @lilypond[quote,verbatim]
 \relative c' {
@@ -3443,8 +3535,8 @@ elemento @code{\mark}
 @end lilypond
 
 @noindent
-Consulte @ref{La tipografía Feta} para ver una lista de los símbolos que se
-pueden imprimir con @code{\musicglyph}.
+Consulte @ref{La tipografía Feta} para ver una lista de los
+símbolos que se pueden imprimir con @code{\musicglyph}.
 
 Para ver formas comunes de trucar la colocación de las letras de
 ensayo, consulte @ref{Formatear el texto}.  Para un control más
@@ -3453,8 +3545,8 @@ preciso, consulte @code{break-alignable-interface} en la sección
 
 El archivo @file{scm/translation-functions.scm} contiene las
 definiciones de @code{format-mark-numbers} y de
-@code{format-mark-letters}.  Se pueden utilizar como inspiración para
-escribir otras funciones de formateo.
+@code{format-mark-letters}.  Se pueden utilizar como inspiración
+para escribir otras funciones de formateo.
 
 @seealso
 Referencia de la notación:
@@ -3498,9 +3590,9 @@ Referencia de funcionamiento interno:
 @funindex \acciaccatura
 @funindex \appoggiatura
 
-Los mordentes y notas de adorno son ornamentos musicales,
-impresos en un tipo más pequeño y no ocupan ningún
-tiempo lógico adicional en el compás.
+Los mordentes y notas de adorno son ornamentos musicales, impresos
+en un tipo más pequeño y no ocupan ningún tiempo lógico adicional
+en el compás.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -3511,13 +3603,13 @@ tiempo lógico adicional en el compás.
 
 Hay otros tres tipos posibles de notas de adorno; la
 @emph{acciaccatura} o mordente de una nota (una nota de adorno sin
-medida que se indica mediante una nota ligada y con el
-corchete tachado) y la @emph{appoggiatura}, que toma una fracción fija
-de la nota principal a la que se adjunta, y que se imprime sin
+medida que se indica mediante una nota ligada y con el corchete
+tachado) y la @emph{appoggiatura}, que toma una fracción fija de
+la nota principal a la que se adjunta, y que se imprime sin
 tachar.  Es posible escribir una nota de adorno con la plica
-tachada, como la @emph{acciaccatura} pero sin la ligadura, como para
-colocarla entre notas que están ligadas entre sí, utilizando la función
-@code{\slashedGrace}.
+tachada, como la @emph{acciaccatura} pero sin la ligadura, como
+para colocarla entre notas que están ligadas entre sí, utilizando
+la función @code{\slashedGrace}.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -3531,8 +3623,8 @@ colocarla entre notas que están ligadas entre sí, utilizando la función
 @end lilypond
 
 La colocación de notas de adorno se sincroniza entre los distintos
-pentagramas.  En el siguiente ejemplo, hay dos semicorcheas de adorno
-por cada corchea de adorno:
+pentagramas.  En el siguiente ejemplo, hay dos semicorcheas de
+adorno por cada corchea de adorno:
 
 @lilypond[quote,verbatim]
 <<
@@ -3554,11 +3646,12 @@ notas de adorno que siguen a la nota principal.
 \relative { c''1 \afterGrace d1 { c16[ d] } c1 }
 @end lilypond
 
-Esto pone las notas de adorno después de un espacio que dura 3/4 de la
-longitud de la nota principal.  La fracción predeterminada de 3/4 se
-puede cambiar estableciendo @code{afterGraceFraction}.  El ejemplo
-siguiente muestra el resultado de establecer el espacio en su valor
-predeterminado, en 15/16, y por último en 1/2 de la nota principal.
+Esto pone las notas de adorno después de un espacio que dura 3/4
+de la longitud de la nota principal.  La fracción predeterminada
+de 3/4 se puede cambiar estableciendo @code{afterGraceFraction}.
+El ejemplo siguiente muestra el resultado de establecer el espacio
+en su valor predeterminado, en 15/16, y por último en 1/2 de la
+nota principal.
 
 @lilypond[quote,verbatim]
 <<
@@ -3577,9 +3670,9 @@ predeterminado, en 15/16, y por último en 1/2 de la nota principal.
 @end lilypond
 
 El espacio entre la nota principal y la de adorno también se puede
-especificar usando espaciadores.  El ejemplo siguiente sitúa
-la nota de adorno después de un espacio que dura 7/8 de la
-nota principal.
+especificar usando espaciadores.  El ejemplo siguiente sitúa la
+nota de adorno después de un espacio que dura 7/8 de la nota
+principal.
 
 @lilypond[quote,verbatim]
 \new Voice \relative {
@@ -3595,13 +3688,14 @@ nota principal.
 @cindex notas de adorno, trucar
 @cindex notas de adorno, cambiar los ajustes de disposición
 
-Una expresión musical @code{\grace} introduce ajustes de tipografía
-especiales, por ejemplo para producir un tipo más pequeño y para fijar
-las direcciones.  Por ello, cuando se introducen trucos para la
-presentación, deben ir dentro de la expresión de adorno. Las
-sobreescrituras se deben también revertir dentro de la expresión de
-adorno. Aquí, la dirección predeterminada de la plica de la nota de
-adorno se sobreescribe y luego se revierte.
+Una expresión musical @code{\grace} introduce ajustes de
+tipografía especiales, por ejemplo para producir un tipo más
+pequeño y para fijar las direcciones.  Por ello, cuando se
+introducen trucos para la presentación, deben ir dentro de la
+expresión de adorno. Las sobreescrituras se deben también revertir
+dentro de la expresión de adorno. Aquí, la dirección
+predeterminada de la plica de la nota de adorno se sobreescribe y
+luego se revierte.
 
 @lilypond[quote,verbatim]
 \new Voice \relative {
@@ -3665,8 +3759,8 @@ tachar, y tiene exactamente la misma apariencia que una
 
 La sincronización de las notas de adorno también puede acarrear
 sorpresas.  La notación de pentagramas, como armaduras, líneas
-divisorias, etc., se sincronizan también.  Ponga cuidado cuando mezcle
-pentagramas con adornos y sin adornos, por ejemplo
+divisorias, etc., se sincronizan también.  Ponga cuidado cuando
+mezcle pentagramas con adornos y sin adornos, por ejemplo
 
 @lilypond[quote,verbatim]
 <<
@@ -3677,8 +3771,8 @@ pentagramas con adornos y sin adornos, por ejemplo
 
 @noindent
 Esto se puede remediar insertando desplazamientos de adorno de las
-duraciones correspondientes en los otros pentagramas.  Para el ejemplo
-anterior
+duraciones correspondientes en los otros pentagramas.  Para el
+ejemplo anterior
 
 @lilypond[quote,verbatim]
 <<
@@ -3687,45 +3781,23 @@ anterior
 >>
 @end lilypond
 
-El uso de notas de adorno dentro de los contextos de voz tiende
-a confundir la manera en que se tipografía la voz.
-Esto se puede soslayar mediante la inserción de un silencio o nota
-entre la instrucción de voz y la nota de adorno.
-
-@lilypond[quote,verbatim]
-accMusic = {
-  \acciaccatura { f8 } e8 r8 \acciaccatura { f8 } e8 r4
-}
-
-\new Staff {
-  <<
-    \new Voice {
-      \relative c'' {
-        r8 r8 \voiceOne \accMusic \oneVoice r8 |
-        r8 \voiceOne r8 \accMusic \oneVoice r8 |
-      }
-    }
-    \new Voice {
-      \relative c' {
-        s8 s8 \voiceTwo \accMusic \oneVoice s8 |
-        s8 \voiceTwo r8 \accMusic \oneVoice s8 |
-      }
-    }
-  >>
-}
-@end lilypond
+Es obligatorio usar la instrucción @code{\grace} para la parte de
+los desplazamientos, incluso si la parte visual usa
+@code{\acciaccatura} o @code{\appoggiatura} porque en caso
+contrario se imprime una fea ligadura que conecta a la nota de
+adorno invisible con la nota siguiente.
 
-Las secciones de adorno sólo se deben usar dentro de expresiones de
-música secuenciales.  No están contemplados el anidado ni la
-yuxtaposición de secciones de adorno, y podría producir caídas u otros
-errores.
+Las secciones de adorno sólo se deben usar dentro de expresiones
+de música secuenciales.  No están contemplados el anidado ni la
+yuxtaposición de secciones de adorno, y podría producir caídas u
+otros errores.
 
-Cada nota de adorno en la salida MIDI tiene una longitud que es 1/4 de
-su duración real.  Si la duración combinada de las notas de adorno es
-mayor que la longitud de la nota precedente, se genera un error
-@qq{@code{Retrocediendo en el tiempo MIDI}}.  Tiene dos opciones: en
-primer lugar, puede hacer más corta la duración de las notas de
-adorno, por ejemplo:
+Cada nota de adorno en la salida MIDI tiene una longitud que es
+1/4 de su duración real.  Si la duración combinada de las notas de
+adorno es mayor que la longitud de la nota precedente, se genera
+un error @qq{@code{Retrocediendo en el tiempo MIDI}}.  Tiene dos
+opciones: en primer lugar, puede hacer más corta la duración de
+las notas de adorno, por ejemplo:
 
 @example
 c'8 \acciaccatura @{ c'8[ d' e' f' g'] @}
@@ -3754,15 +3826,17 @@ Véase @ref{Escalar las duraciones}.
 @cindex cadenza (cadencia), alinear a
 @cindex alineación a una cadenza (cadencia)
 
-En un contexto orquestal, las cadenzas presentan un problema especial:
-al construir una partitura que tiene una cadenza, todos los demás
-instrumentos deben saltar tantas notas como la longitud de la cadenza,
-pues en caso contrario empezarán demasiado pronto o demasiado tarde.
+En un contexto orquestal, las cadenzas presentan un problema
+especial: al construir una partitura que tiene una cadenza, todos
+los demás instrumentos deben saltar tantas notas como la longitud
+de la cadenza, pues en caso contrario empezarán demasiado pronto o
+demasiado tarde.
 
-Una solución a este problema son las funciones @code{mmrest-of-length}
-y @code{skip-of-length}.  Estas funciones de Scheme toman un fragmento
-de música como argumento y generan un @code{\skip} o silencio
-multicompás, de la longitud exacta del fragmento.
+Una solución a este problema son las funciones
+@code{mmrest-of-length} y @code{skip-of-length}.  Estas funciones
+de Scheme toman un fragmento de música como argumento y generan un
+@code{\skip} o silencio multicompás, de la longitud exacta del
+fragmento.
 
 @lilypond[verbatim,quote]
 MyCadenza = \relative {
@@ -3805,13 +3879,13 @@ Fragmentos de código:
 @funindex measurePosition
 @funindex measureLength
 
-El tiempo está administrado por el @code{Timing_translator}, que de
-forma predeterminada vive en el contexto de @code{Score}.  Se añade un
-alias, @code{Timing}, al contexto en que se coloca el
-@code{Timing_translator}.
-Para asegurar que está disponible el alias @code{Timing}, quizá
-tenga que crear explícitamente una instancia del contexto
-contenedor (como @code{Voice} o @code{Staff}).
+El tiempo está administrado por el @code{Timing_translator}, que
+de forma predeterminada vive en el contexto de @code{Score}.  Se
+añade un alias, @code{Timing}, al contexto en que se coloca el
+@code{Timing_translator}.  Para asegurar que está disponible el
+alias @code{Timing}, quizá tenga que crear explícitamente una
+instancia del contexto contenedor (como @code{Voice} o
+@code{Staff}).
 
 Se usan las siguientes propiedades de @code{Timing} para seguir la
 pista del tiempo dentro de la partitura.
@@ -3821,35 +3895,35 @@ pista del tiempo dentro de la partitura.
 
 @table @code
 @item currentBarNumber
-El número de compás en curso.  Para ver un ejemplo que muestra el uso
-de esta propiedad, consulte @ref{Numeración de compases}.
+El número de compás en curso.  Para ver un ejemplo que muestra el
+uso de esta propiedad, consulte @ref{Numeración de compases}.
 
 @item measureLength
-La longitud de los compases dentro de la indicación actual de compás.
-Para un 4/4 esto es@tie{}1, y para el 6/8 es 3/4.  Su valor determinad
-cuándo se insertan las líneas divisorias y cómo se generan las barras
-automáticas.
+La longitud de los compases dentro de la indicación actual de
+compás.  Para un 4/4 esto es@tie{}1, y para el 6/8 es 3/4.  Su
+valor determinad cuándo se insertan las líneas divisorias y cómo
+se generan las barras automáticas.
 
 @item measurePosition
-El punto en que nos encontramos dentro del compás.  Esta cantidad se
-reinicia sustrayendo @code{measureLength} cada vez que se alcanza o se
-excede @code{measureLength}.  Cuando eso ocurre, se incrementa
-@code{currentBarNumber}.
+El punto en que nos encontramos dentro del compás.  Esta cantidad
+se reinicia sustrayendo @code{measureLength} cada vez que se
+alcanza o se excede @code{measureLength}.  Cuando eso ocurre, se
+incrementa @code{currentBarNumber}.
 
 @item timing
-Si tiene un valor verdadero, las variables anteriores se actualizan a
-cada paso de tiempo.  Cuando tiene un valor falso, el grabador se
-queda en el compás actual indefinidamente.
+Si tiene un valor verdadero, las variables anteriores se
+actualizan a cada paso de tiempo.  Cuando tiene un valor falso, el
+grabador se queda en el compás actual indefinidamente.
 
 @end table
 
 La cuenta del tiempo se puede cambiar estableciendo el valor de
 cualquiera de estas variables explícitamente.  En el siguiente
-ejemplo, se imprime la indicación de compás predeterminada 4/4, pero
-@code{measureLength} tiene está ajustado a 5/4.  En los 4/8 hasta el
-tercer compás, la posición @code{measurePosition} se adelanta en 1/8
-hasta 5/8, acortando ese compás en 1/8.  Entonces, la siguiente línea
-divisoria cae en 9/8 en vez de hacerlo en 5/4.
+ejemplo, se imprime la indicación de compás predeterminada 4/4,
+pero @code{measureLength} tiene está ajustado a 5/4.  En los 4/8
+hasta el tercer compás, la posición @code{measurePosition} se
+adelanta en 1/8 hasta 5/8, acortando ese compás en 1/8.  Entonces,
+la siguiente línea divisoria cae en 9/8 en vez de hacerlo en 5/4.
 
 @lilypond[quote,verbatim]
 \new Voice \relative {
@@ -3864,8 +3938,8 @@ divisoria cae en 9/8 en vez de hacerlo en 5/4.
 @end lilypond
 
 @noindent
-Como lo ilustra el ejemplo, @code{ly:make-moment n m} construye una
-duración de la fracción n/m de una redonda.  Por ejemplo,
+Como lo ilustra el ejemplo, @code{ly:make-moment n m} construye
+una duración de la fracción n/m de una redonda.  Por ejemplo,
 @code{ly:make-moment 1 8} es una duración de una corchea y
 @code{ly:make-moment 7 16} es la duración de siete semicorcheas.
 
index cc63e375147ef87160c3405b809851533bc5ac9a..3528e6419e43e1d52b21c5f11547e1f395035e4e 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 45dd19546e9b75b3e1e977732f0962f35dd3290e
+    Translation of GIT committish: 16661f7f6a78f04d056228d11bdc9e17a7cdf760
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 
 @lilypondfile[quote,ragged-right,line-width=16\cm]{simultaneous-headword.ly}
 
-La polifonía en música hace referencia a tener más de una voz en una
-pieza cualquiera de música.  En LilyPond la polifonía hace referencia
-a tener más de una voz en el mismo pentagrama.
+La palabra @q{polifonía} en música hace referencia a tener más de
+una voz en una pieza cualquiera de música.  En LilyPond la
+polifonía hace referencia a tener más de una voz en el mismo
+pentagrama.
 
 @menu
 * Una voz única::
 * Varias voces::
 @end menu
 
+
 @node Una voz única
 @subsection Una voz única
 @translationof Single voice
@@ -39,6 +41,7 @@ Esta sección trata de la notas simultáneas dentro de la misma voz.
 * Racimos (clusters)::
 @end menu
 
+
 @node Notas en acorde
 @unnumberedsubsubsec Notas en acorde
 @translationof Chorded notes
@@ -50,9 +53,9 @@ Esta sección trata de la notas simultáneas dentro de la misma voz.
 @funindex >
 @funindex <...>
 
-Un acorde se forma encerrando un conjunto de notas entre @code{<} y
-@code{>}.  Un acorde puede ir seguido de una duración,
-como si fueran simples notas.
+Un acorde se forma encerrando un conjunto de notas entre @code{<}
+y @code{>}.  Un acorde puede ir seguido de una duración, como si
+fueran simples notas.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -60,8 +63,8 @@ como si fueran simples notas.
 }
 @end lilypond
 
-Los acordes también pueden ir seguidos de articulaciones, de nuevo como
-si fueran simples notas.
+Los acordes también pueden ir seguidos de articulaciones, de nuevo
+como si fueran simples notas.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -69,8 +72,8 @@ si fueran simples notas.
 }
 @end lilypond
 
-Las notas dentro del propio acorde también pueden ir seguidas
-de articulaciones y ornamentos.
+Las notas dentro del propio acorde también pueden ir seguidas de
+articulaciones y ornamentos.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -80,9 +83,12 @@ de articulaciones y ornamentos.
 @end lilypond
 
 Sin embargo, algunos elementos de notación tales como las
-expresiones de matices dinámicos, los reguladores y las ligaduras
-de expresión, se deben unir al acorde y no a las notas que
-integran el mismo, pues en caso contrario no se imprimirán.
+expresiones de matices dinámicos y los reguladores se deben unir
+al acorde y no a las notas que integran el mismo, pues en caso
+contrario no se imprimirán.  Otros elementos de notación como las
+digitaciones y las ligaduras de expresión se posicionan de forma
+muy diferente cuando se adjuntan a las notas de un acorde en lugar
+de hacerlo a redondas o notas sueltas.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -98,9 +104,9 @@ Un acorde funciona como un mero contenedor para las notas que lo
 componen y sus articulaciones y otros elementos adjuntos.  Como
 consecuencia, un acorde sin ninguna nota en su interior no tiene
 realmente ninguna duración.  Cualqier articulación adjunta se
-producirá en el mismo momento musical que la nota o acorde siguiente y
-se puede combinar con ellos (para ver posibilidades más complejas de
-combinaciones de estos elementos, consulte
+producirá en el mismo momento musical que la nota o acorde
+siguiente y se puede combinar con ellos (para ver posibilidades
+más complejas de combinaciones de estos elementos, consulte
 @ref{Expresiones simultáneas}):
 
 @lilypond[verbatim,quote]
@@ -115,11 +121,11 @@ combinaciones de estos elementos, consulte
 @cindex acordes y altura relativa
 
 Se puede usar el modo relativo para la altura de las notas de los
-acordes.  La primera nota del acorde siempre es relativa a la primera nota
-del acorde anterior, o en caso de que el elemento precedente no sea un acorde,
-la altura de la última nota que vino antes del acorde.
-El resto de las notas del acorde son relativas a la nota anterior
-@emph{dentro del mismo acorde}.
+acordes.  La primera nota del acorde siempre es relativa a la
+primera nota del acorde anterior, o en caso de que el elemento
+precedente no sea un acorde, la altura de la última nota que vino
+antes del acorde.  El resto de las notas del acorde son relativas
+a la nota anterior @emph{dentro del mismo acorde}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -127,7 +133,8 @@ El resto de las notas del acorde son relativas a la nota anterior
 }
 @end lilypond
 
-Para ver más información sobre los acordes, consulte @ref{Notación de acordes}.
+Para ver más información sobre los acordes, consulte
+@ref{Notación de acordes}.
 
 @seealso
 Glosario musical:
@@ -146,9 +153,10 @@ Fragmentos de código:
 @rlsr{Simultaneous notes}.
 
 @knownissues
-Los acordes que contienen más de dos alturas en el mismo espacio de pentagrama,
-como @samp{<e f! fis!>}, crean notas cuyas cabezas se superponen.
-Dependiendo de la situación, una mejor representación puede requerir:
+Los acordes que contienen más de dos alturas en el mismo espacio
+de pentagrama, como @samp{<e f! fis!>}, crean notas cuyas cabezas
+se superponen.  Dependiendo de la situación, una mejor
+representación puede requerir:
 
 @itemize
 
@@ -172,9 +180,11 @@ Culsters o racimos; véase @ref{Racimos (clusters)}.
 
 @cindex acordes, repetición de
 @cindex repetición, con @code{q}
+@cindex @code{q}, repetición de acordes
 
-Para reducir el tecleo, se puede usar una abreviatura de repetición
-del acorde anterior.  El símbolo de repetición de acordes es @code{q}:
+Para reducir el tecleo, se puede usar una abreviatura de
+repetición del acorde anterior.  El símbolo de repetición de
+acordes es @code{q}:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -183,8 +193,9 @@ del acorde anterior.  El símbolo de repetición de acordes es @code{q}:
 @end lilypond
 
 Como en los acordes normales, el símbolo de repetición de acordes
-puede usarse con duraciones, articulaciones, elementos de marcado, ligaduras
-de expresión, barras, etc., pues sólo se duplican las notas del acorde precedente.
+puede usarse con duraciones, articulaciones, elementos de marcado,
+ligaduras de expresión, barras, etc., pues sólo se duplican las
+notas del acorde precedente.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -192,10 +203,10 @@ de expresión, barras, etc., pues sólo se duplican las notas del acorde precede
 }
 @end lilypond
 
-El símbolo de repetición de acordes
-siempre recuerda la última ocurrencia de un acorde,
-por lo que es posible repetir el acorde más reciente
-incluso si se han escrito en medio otras notas que no están en un acorde, o silencios.
+El símbolo de repetición de acordes siempre recuerda la última
+ocurrencia de un acorde, por lo que es posible repetir el acorde
+más reciente incluso si se han escrito en medio otras notas que no
+están en un acorde, o silencios.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -206,18 +217,20 @@ incluso si se han escrito en medio otras notas que no están en un acorde, o sil
 
 Sin embargo, el símbolo de repetición de acordes no retiene los
 matices dinámicos, las articulaciones ni los ornamentos que
-contiene o que están adosados al acorde  anterior.
+contiene o que están adosados al acorde anterior.
 
-@lilypond[verbatim,quote,relative=2]
-<a-. c\prall e>1\sfz c'4 q2 r8 q8 |
-q2 c, |
+@lilypond[verbatim,quote]
+\relative {
+  <a'-. c\prall e>1\sfz c'4 q2 r8 q8 |
+  q2 c, |
+}
 @end lilypond
 
-Para poder retener algunos de ellos, se puede llamar explícitamente a
-la función @code{\chordRepeats} con un argumento adicional que
-especifique una lista de @var{tipos de evento} que conservar, a no ser
-que los eventos de ese tipo ya estén presentes en el propio acorde
-@code{q}.
+Para poder retener algunos de ellos, se puede llamar
+explícitamente a la función @code{\chordRepeats} con un argumento
+adicional que especifique una lista de @var{tipos de evento} que
+conservar, a no ser que los eventos de ese tipo ya estén presentes
+en el propio acorde @code{q}.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -229,32 +242,32 @@ que los eventos de ese tipo ya estén presentes en el propio acorde
 
 Aquí, el uso de @code{\chordRepeats} dentro de una construcción
 @code{\relative} produce un resultado inseperado: una vez se han
-expandido los eventos de acorde, no pueden distinguirse de aquellos
-introducidos como acordes normales, haciendo que @code{\relative}
-asigne una octava basada en su contexto actual.
+expandido los eventos de acorde, no pueden distinguirse de
+aquellos introducidos como acordes normales, haciendo que
+@code{\relative} asigne una octava basada en su contexto actual.
 
 Dado que las instancias anidadas de @code{\relative} no se afectan
-mutuamente, se puede usar otra instrucción @code{\relative} dentro de
-@code{\chordRepeats} para establecer las relaciones de octava antes de
-expandir los acordes repetidos.  En tal caso, todo el contenido de la
-instrucción @code{\relative} interior no afecta a la exterior; de aquí
-la distinta escritura de octava en la última nota de este ejemplo.
+mutuamente, se puede usar otra instrucción @code{\relative} dentro
+de @code{\chordRepeats} para establecer las relaciones de octava
+antes de expandir los acordes repetidos.  En tal caso, todo el
+contenido de la instrucción @code{\relative} interior no afecta a
+la exterior; de aquí la distinta escritura de octava en la última
+nota de este ejemplo.
 
-@c Without \new Voice, implicit voice creation does the dumbest thing.
 @lilypond[verbatim,quote]
-\new Voice
-\relative c'' {
+\relative {
   \chordRepeats #'(articulation-event)
   \relative
   { <a'-. c\prall e>1\sfz c'4 q2 r8 q8-. } |
-  q2 c |
+  q2 c'' |
 }
 @end lilypond
 
-Las interacciones con @code{\relative} se producen solamente con las
-llamadas explícitas de @code{\chordRepeats}: la expansión implícita al
-comienzo del proceso de tipografiado se hace en un momento en que
-todas las instancias de @code{\relative} ya se han procesado.
+Las interacciones con @code{\relative} se producen solamente con
+las llamadas explícitas de @code{\chordRepeats}: la expansión
+implícita al comienzo del proceso de tipografiado se hace en un
+momento en que todas las instancias de @code{\relative} ya se han
+procesado.
 
 @seealso
 Referencia de la notación:
@@ -270,14 +283,14 @@ Archivos de inicio:
 @translationof Simultaneous expressions
 
 Una o más expresiones musicales encerradas entre ángulos dobles se
-entienden como simultáneas.  Si la primera expresión comienza con una
-sola nota o si toda la expresión simultánea aparece explícitamente
-dentro de una sola voz, la expresión completa se sitúa sobre un solo
-pentagrama; en caso contrario los elementos de la expresión simultánea
-se sitúan en pentagramas distintos.
+entienden como simultáneas.  Si la primera expresión comienza con
+una sola nota o si toda la expresión simultánea aparece
+explícitamente dentro de una sola voz, la expresión completa se
+sitúa sobre un solo pentagrama; en caso contrario los elementos de
+la expresión simultánea se sitúan en pentagramas distintos.
 
-Los ejemplos siguientes muestran expresiones simultáneas sobre un solo
-pentagrama:
+Los ejemplos siguientes muestran expresiones simultáneas sobre un
+solo pentagrama:
 
 @lilypond[quote,verbatim]
 \new Voice {  % explicit single voice
@@ -295,11 +308,11 @@ pentagrama:
 @end lilypond
 
 Esto puede ser de utilidad si las secciones simultáneas tienen
-idénticas duraciones, pero se producirán errores si se intentan poner
-notas de distinta duración sobre la misma plica.  Las notas,
-articulaciones y cambios de propiedades que están dentro de @emph{un
-solo} contexto @samp{Voice} se recolectan y se representan en el orden
-musical:
+idénticas duraciones, pero se producirán errores si se intentan
+poner notas de distinta duración sobre la misma plica.  Las notas,
+articulaciones y cambios de propiedades que están dentro de
+@emph{un solo} contexto @samp{Voice} se recolectan y se
+representan en el orden musical:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -308,11 +321,11 @@ musical:
 @end lilypond
 
 Tratar de poner más de una plica o barra de corchea, o distintas
-duraciones o propiedades en el mismo momento musical, requiere el uso
-de más de una voz.
+duraciones o propiedades en el mismo momento musical, requiere el
+uso de más de una voz.
 
-El ejemplo siguiente muestra cómo las expresiones simultáneas pueden
-generar varios pentagramas de forma implícita:
+El ejemplo siguiente muestra cómo las expresiones simultáneas
+pueden generar varios pentagramas de forma implícita:
 
 @lilypond[quote,verbatim]
 % no single first note
@@ -323,17 +336,15 @@ generar varios pentagramas de forma implícita:
 Aquí no hay problema en tener distintas duraciones porque se
 interpretan en voces distintas.
 
-@cindex colisiones, columnas que chocan
 @cindex colisiones, ignorar
 
 @knownissues
-Si hay notas de dos o más voces en la misma posición del pentagrama,
-con las plicas en la misma dirección,
-y no tienen desplazamiento (o tienen especificado el mismo desplazamiento),
-aparecerá el mensaje
+Si hay notas que proceden de dos o más voces, sin especificar
+ningún desplazamiento horizontal, y tienen las plicas en la misma
+dirección, aparece el mensaje
 
 @example
-advertencia: demasiadas columnas de notas que chocan entre sí. Se ignoran
+Advertencia: esta voz requiere un ajuste de \voiceXx o \shiftXx
 @end example
 
 durante la compilación.  Este mensaje se puede suprimir mediante
@@ -344,9 +355,8 @@ durante la compilación.  Este mensaje se puede suprimir mediante
 
 Sin embargo, esto no solamente suprime la advertencia sino que
 puede evitar cualquier resolución de colisiones y puede tener
-otros efectos no deseados
-(consulte también @emph{Problemas conocidos} en
-@ref{Resolución de las colisiones}).
+otros efectos no deseados (consulte también
+@emph{Problemas conocidos} en @ref{Resolución de las colisiones}).
 
 
 @node Racimos (clusters)
@@ -367,9 +377,10 @@ conjunto de notas consecutivas.  Se escriben aplicando la función
 \relative \makeClusters { <g' b>2 <c g'> }
 @end lilypond
 
-Se pueden mezclar en el mismo pentagrama notas normales y clusters,
-incluso al mismo tiempo.  En tal caso, no se hace ningún intento de
-evitar automáticamente las colisiones entre clusters y notas normales.
+Se pueden mezclar en el mismo pentagrama notas normales y
+clusters, incluso al mismo tiempo.  En tal caso, no se hace ningún
+intento de evitar automáticamente las colisiones entre clusters y
+notas normales.
 
 @seealso
 Glosario musical:
@@ -384,8 +395,9 @@ Referencia de funcionamiento interno:
 @rinternals{Cluster_spanner_engraver}.
 
 @knownissues
-Los clusters sólo tienen un buen aspecto cuando abarcan un mínimo de
-dos acordes.  En caso contrario aparecerán excesivamente estrechos.
+Los clusters sólo tienen un buen aspecto cuando abarcan un mínimo
+de dos acordes.  En caso contrario aparecerán excesivamente
+estrechos.
 
 Los clusters no llevan plica y por sí mismos no pueden indicar las
 duraciones, pero la longitud del cluster que se imprime viene
@@ -410,6 +422,7 @@ pentagramas.
 * Escribir música en paralelo::
 @end menu
 
+
 @node Polifonía en un solo pentagrama
 @unnumberedsubsubsec Polifonía en un solo pentagrama
 @translationof Single-staff polyphony
@@ -444,14 +457,14 @@ siguiente:
 @noindent
 Aquí se crean explícitamente instancias de voces, cada una de las
 cuales recibe un nombre.  Las instrucciones @code{\voiceOne}
-@dots{} @code{\voiceFour} (voz uno hasta voz cuatro) preparan las voces de
-manera que la primera y segunda voces llevan las plicas hacia arriba,
-las voces segunda y cuarta llevan las plicas hacia abajo, las cabezas
-de las notas en las voces tercera y cuarta se desplazan
-horizontalmente, y los silencios de las voces respectivas se desplazan
-también automáticamente para evitar las colisiones.  La instrucción
-@code{\oneVoice} (una voz) devuelve todos los ajustes de las voces al
-estado neutro predeterminado.
+@dots{} @code{\voiceFour} (voz uno hasta voz cuatro) preparan las
+voces de manera que la primera y segunda voces llevan las plicas
+hacia arriba, las voces segunda y cuarta llevan las plicas hacia
+abajo, las cabezas de las notas en las voces tercera y cuarta se
+desplazan horizontalmente, y los silencios de las voces
+respectivas se desplazan también automáticamente para evitar las
+colisiones.  La instrucción @code{\oneVoice} (una voz) devuelve
+todos los ajustes de las voces al estado neutro predeterminado.
 
 @subsubsubheading Pasajes polifónicos temporales
 
@@ -465,13 +478,13 @@ siguiente:
 @end example
 
 @noindent
-Aquí, la primera expresión dentro de un pasaje polifónico temporal se
-coloca en el contexto @code{Voice} que estaba en uso inmediatamente
-antes del pasaje polifónico, y ese mismo contexto @code{Voice}
-continua después de la sección temporal.  Otras expresiones dentro de
-los ángulos se asignan a distintas voces temporales.  Esto permite
-asignar la letra de forma continua a una voz antes, durante y después
-de la sección polifónica:
+Aquí, la primera expresión dentro de un pasaje polifónico temporal
+se coloca en el contexto @code{Voice} que estaba en uso
+inmediatamente antes del pasaje polifónico, y ese mismo contexto
+@code{Voice} continua después de la sección temporal.  Otras
+expresiones dentro de los ángulos se asignan a distintas voces
+temporales.  Esto permite asignar la letra de forma continua a una
+voz antes, durante y después de la sección polifónica:
 
 @lilypond[quote,verbatim]
 \relative <<
@@ -510,7 +523,8 @@ construcción se asignan a contextos @code{Voice} nuevos.  Estos
 contextos @code{Voice} nuevos se crean implícitamente y reciben
 los nombres fijos @code{"1"}, @code{"2"}, etc.
 
-El primer ejemplo podría haberse tipografiado de la manera siguiente:
+El primer ejemplo podría haberse tipografiado de la manera
+siguiente:
 
 @lilypond[quote,verbatim]
 <<
@@ -520,17 +534,17 @@ El primer ejemplo podría haberse tipografiado de la manera siguiente:
 >>
 @end lilypond
 
-Esta sintaxis se puede usar siempre que no nos importe que se creen
-nuevas voces temporales que después serán descartadas.  Estas voces
-creadas implícitamente reciben ajustes equivalentes al efecto de las
-instrucciones @code{\voiceOne} @dots{} @code{\voiceFour}, en el orden en
-que aparecen en el código.
+Esta sintaxis se puede usar siempre que no nos importe que se
+creen nuevas voces temporales que después serán descartadas.
+Estas voces creadas implícitamente reciben ajustes equivalentes al
+efecto de las instrucciones @code{\voiceOne} @dots{}
+@code{\voiceFour}, en el orden en que aparecen en el código.
 
 En el siguiente ejemplo, la voz intermedia lleva las plicas hacia
-arriba, de manera que la introducimos en tercer lugar para que pase a
-ser la voz tres, que tiene las plicas hacia arriba tal y como
-queremos.  Se usan silencios de separación para evitar la aparición de
-silencios duplicados.
+arriba, de manera que la introducimos en tercer lugar para que
+pase a ser la voz tres, que tiene las plicas hacia arriba tal y
+como queremos.  Se usan silencios de separación para evitar la
+aparición de silencios duplicados.
 
 @lilypond[quote,verbatim]
 <<
@@ -542,14 +556,15 @@ silencios duplicados.
 >>
 @end lilypond
 
-En todas las partituras excepto las más simples, se recomienda crear
-contextos @code{Voice} explícitos como aparece explicado en
-@rlearning{Contextos y grabadores} y en @rlearning{Voces explícitas}.
+En todas las partituras excepto las más simples, se recomienda
+crear contextos @code{Voice} explícitos como aparece explicado en
+@rlearning{Contextos y grabadores} y en @rlearning{Voces
+explícitas}.
 
 @subsubsubheading Orden de las voces
 
-Al escribir varias voces en el archivo de entrada,
-utilice el orden siguiente:
+Al escribir varias voces en el archivo de entrada, utilice el
+orden siguiente:
 
 @example
 Voz 1: las más aguda
@@ -563,8 +578,8 @@ etc.
 
 A pesar de que esto puede parecer contrario a la intuición,
 simplifica el proceso de disposición automática de las figuras.
-Observe que las voces de numeración impar reciben plicas
-hacia arriba, y las de numeración par reciben plicas hacia abajo:
+Observe que las voces de numeración impar reciben plicas hacia
+arriba, y las de numeración par reciben plicas hacia abajo:
 
 @lilypond[quote,verbatim]
 \new Staff <<
@@ -583,16 +598,16 @@ hacia arriba, y las de numeración par reciben plicas hacia abajo:
 >>
 @end lilypond
 
-@warning{No se pueden crear letras ni elementos de extensión
-(como ligaduras, reguladores, etc.) que se crucen de una voz a otra.}
+@warning{No se pueden crear letras ni elementos de extensión (como
+ligaduras, reguladores, etc.) que se crucen de una voz a otra.}
 
 @subsubsubheading Duraciones idénticas
 
-En el caso especial en que queremos tipografiar fragmentos de música
-que discurre en paralelo y con las mismas duraciones, se pueden
-combinar en un solo contexto de voz, formando así acordes.  Para
-conseguirlo, las incorporamos dentro de una construcción de música
-simultánea, dentro de una voz creada explícitamente:
+En el caso especial en que queremos tipografiar fragmentos de
+música que discurre en paralelo y con las mismas duraciones, se
+pueden combinar en un solo contexto de voz, formando así acordes.
+Para conseguirlo, las incorporamos dentro de una construcción de
+música simultánea, dentro de una voz creada explícitamente:
 
 @lilypond[quote,verbatim]
 \new Voice <<
@@ -639,8 +654,8 @@ Fragmentos de código:
 @funindex \voiceFourStyle
 @funindex \voiceNeutralStyle
 
-Se pueden aplicar colores y formas distintos a las voces para permitir
-identificarlas fácilmente:
+Se pueden aplicar colores y formas distintos a las voces para
+permitir identificarlas fácilmente:
 
 @lilypond[quote,verbatim]
 <<
@@ -705,14 +720,15 @@ Fragmentos de código:
 @funindex \mergeDifferentlyHeadedOff
 @funindex mergeDifferentlyHeadedOff
 
-Las cabezas de notas que están en diferentes voces y tienen la misma
-altura, la misma forma de cabeza, y dirección opuesta de la plica, se
-combinan automáticamente, pero las que tienen cabezas distintas o la
-misma dirección de la plica no se combinan.  Los silencios que se
-encuentran en el lado opuesto de una plica en otra voz se desplazan
-verticalmente.  El ejemplo siguiente muestra tres circunstancias
-distintas, sobre los pulsos 1 y 3 en el primer compás y sobre el pulso
-1 del segundo compás, donde la combinación automática falla.
+Las cabezas de notas que están en diferentes voces y tienen la
+misma altura, la misma forma de cabeza, y dirección opuesta de la
+plica, se combinan automáticamente, pero las que tienen cabezas
+distintas o la misma dirección de la plica no se combinan.  Los
+silencios que se encuentran en el lado opuesto de una plica en
+otra voz se desplazan verticalmente.  El ejemplo siguiente muestra
+tres circunstancias distintas, sobre los pulsos 1 y 3 en el primer
+compás y sobre el pulso 1 del segundo compás, donde la combinación
+automática falla.
 
 @lilypond[quote,verbatim]
 <<
@@ -758,8 +774,8 @@ compás sí se combinan:
 Las figuras negras y blancas no se combinan de esta manera, pues
 sería difícil poder distinguirlas.
 
-También se pueden combinar cabezas con puntillos diferentes, como se
-muestra en el tercer pulso del primer compás:
+También se pueden combinar cabezas con puntillos diferentes, como
+se muestra en el tercer pulso del primer compás:
 
 @lilypond[quote,verbatim]
 <<
@@ -782,14 +798,15 @@ muestra en el tercer pulso del primer compás:
 @end lilypond
 
 La blanca y la corchea en el comienzo del segundo compás no están
-correctamente combinadas porque la combinación automática no es capaz
-de completarse satisfactoriamente cuando se encuentran tres o más
-notas alineadas en la misma columna de notas, y en este caso la cabeza
-combinada es incorrecta.  Para conseguir que la combinación seleccione
-la cabeza correcta, se debe aplicar un @code{\shift} o desplazamiento
-a la nota que no se debe combinar.  Aquí, se aplica @code{\shiftOn}
-para mover el sol agudo fuera de la columna, y entonces
-@code{\mergeDifferentlyHeadedOn} hace su trabajo correctamente.
+correctamente combinadas porque la combinación automática no es
+capaz de completarse satisfactoriamente cuando se encuentran tres
+o más notas alineadas en la misma columna de notas, y en este caso
+la cabeza combinada es incorrecta.  Para conseguir que la
+combinación seleccione la cabeza correcta, se debe aplicar un
+@code{\shift} o desplazamiento a la nota que no se debe combinar.
+Aquí, se aplica @code{\shiftOn} para mover el sol agudo fuera de
+la columna, y entonces @code{\mergeDifferentlyHeadedOn} hace su
+trabajo correctamente.
 
 @lilypond[quote,verbatim]
 <<
@@ -812,24 +829,25 @@ para mover el sol agudo fuera de la columna, y entonces
 >>
 @end lilypond
 
-La instrucción @code{\shiftOn} permite (aunque no fuerza)
-que las notas de una voz se puedan desplazar.  Cuando@code{\shiftOn}
-se aplica a una voz, una nota o acorde de esta voz se desplaza
-solamente si su plica chocase en caso contrario con una plica de otra voz,
-y sólo si las plicas en colisión apuntan en la misma dirección.
-La instrucción @code{\shiftOff} evita la posibilidad de este tipo de desplazamiento.
-
-De forma predeterminada, las voces externas (normalmente las voces uno y dos)
-tienen @code{\shiftOff} especificado (desplazamiento desactivado), mientras
-que las voces interiores (tres y siguientes) tienen especificado
-@code{\shiftOn} (desplazamiento activado). Cuando se aplica un desplazamiento,
-las voces con plicas hacia arriba (voces de numeración impar)
-se desplazan hacia la derecha,
-y las voces con las plicas hacia abajo (voces con numeración par)
-se desplazarn a la izquierda.
-
-He aquí un ejemplo que le ayudará a visualizar
-la forma en que se expanidría internamente una expresión polifónica.
+La instrucción @code{\shiftOn} permite (aunque no fuerza) que las
+notas de una voz se puedan desplazar.  Cuando@code{\shiftOn} se
+aplica a una voz, una nota o acorde de esta voz se desplaza
+solamente si su plica chocase en caso contrario con una plica de
+otra voz, y sólo si las plicas en colisión apuntan en la misma
+dirección.  La instrucción @code{\shiftOff} evita la posibilidad
+de este tipo de desplazamiento.
+
+De forma predeterminada, las voces externas (normalmente las voces
+uno y dos) tienen @code{\shiftOff} especificado (desplazamiento
+desactivado), mientras que las voces interiores (tres y
+siguientes) tienen especificado @code{\shiftOn} (desplazamiento
+activado). Cuando se aplica un desplazamiento, las voces con
+plicas hacia arriba (voces de numeración impar) se desplazan hacia
+la derecha, y las voces con las plicas hacia abajo (voces con
+numeración par) se desplazarn a la izquierda.
+
+He aquí un ejemplo que le ayudará a visualizar la forma en que se
+expanidría internamente una expresión polifónica.
 
 @warning{Observe que con tres o más voces, el orden vertical de
 las mismas dentro de su archivo de entrada ¡no sería el mismo que
@@ -857,15 +875,16 @@ el orden vertical de las voces en el pentagrama!}
 }
 @end lilypond
 
-Dos instrucciones adicionales, @code{\shiftOnn} y @code{\shiftOnnn},
-ofrecen niveles de desplazamiento mayores que se pueden
-especificar temporalmente para resolver colisiones en situaciones
-complejas; véase @rlearning{Ejemplos reales de música}.
+Dos instrucciones adicionales, @code{\shiftOnn} y
+@code{\shiftOnnn}, ofrecen niveles de desplazamiento mayores que
+se pueden especificar temporalmente para resolver colisiones en
+situaciones complejas; véase @rlearning{Ejemplos reales de
+música}.
 
-Sólo se combinan las notas si tienen la plica en direcciones opuestas
-(como la tienen, por ejemplo, en las voces uno y dos de forma
-predeterminada o cuando las plicas se establecen explícitamente en
-direcciones opuestas).
+Sólo se combinan las notas si tienen la plica en direcciones
+opuestas (como la tienen, por ejemplo, en las voces uno y dos de
+forma predeterminada o cuando las plicas se establecen
+explícitamente en direcciones opuestas).
 
 @predefined
 @code{\mergeDifferentlyDottedOn},
@@ -940,11 +959,11 @@ tienen también distinto puntillo, no están claros.
 La combinación automática de particellas se usa para mezclar dos
 partes musicales distintas sobre un pentagrama.  Esto puede ser de
 gran ayuda especialmente al tipografiar partituras orquestales.
-Se imprime una sola voz cuando la música de las dos voces es la misma,
-pero en aquellos lugares en que difieren, se imprime una segunda
-voz.  Las direcciones de las plicas se establecen hacia arriba o hacia
-abajo según proceda, al tiempo que se identifican y quedan marcadas
-las partes de solista y de dúo.
+Se imprime una sola voz cuando la música de las dos voces es la
+misma, pero en aquellos lugares en que difieren, se imprime una
+segunda voz.  Las direcciones de las plicas se establecen hacia
+arriba o hacia abajo según proceda, al tiempo que se identifican y
+quedan marcadas las partes de solista y de dúo.
 
 La sintaxis para la combinación automática de las partes es:
 
@@ -952,11 +971,11 @@ La sintaxis para la combinación automática de las partes es:
 \partcombine @var{expresión_musical_1} @var{expresión_musical_2}
 @end example
 
-El ejemplo siguiente ejemplifica la funcionalidad básica,
-poniendo las partes en un solo pentagrama en forma polifónica, y
-estableciendo las direcciones de las plicas de forma adecuada.
-Se utilizan las mismas variables para las partes
-independientes y el pentagrama combinado.
+El ejemplo siguiente ejemplifica la funcionalidad básica, poniendo
+las partes en un solo pentagrama en forma polifónica, y
+estableciendo las direcciones de las plicas de forma adecuada.  Se
+utilizan las mismas variables para las partes independientes y el
+pentagrama combinado.
 
 @lilypond[quote,verbatim]
 instrumentOne = \relative {
@@ -982,16 +1001,51 @@ instrumentTwo = \relative {
 >>
 @end lilypond
 
-Las dos partes tienen notas idénticas en el tercer compás,
-por lo que aparecen solamente una vez.  Las direcciones de las plicas
-y ligaduras se establecen de forma automática, según se trate de un
-solo o de un unísono.  Cuando se necesita en situaciones de polifonía,
-la primera parte (que recibe el nombre de contexto @code{one})
-recibe las plicas hacia arriba, mientras que la segunda (llamada
-@code{two}) siempre recibe las plicas hacia abajo.  En los fragmentos
-de solo, las partes se marcan con @qq{Solo} y @qq{Solo II},
-respectivamente.  Las partes en unísono (@notation{a due}) se marcan
-con el texto @qq{a2}.
+Las dos partes tienen notas idénticas en el tercer compás, por lo
+que aparecen solamente una vez.  Las direcciones de las plicas y
+ligaduras se establecen de forma automática, según se trate de un
+solo o de un unísono.  Cuando se necesita en situaciones de
+polifonía, la primera parte (que recibe el nombre de contexto
+@code{one}) recibe las plicas hacia arriba, mientras que la
+segunda (llamada @code{two}) siempre recibe las plicas hacia
+abajo.  En los fragmentos de solo, las partes se marcan con
+@qq{Solo} y @qq{Solo II}, respectivamente.  Las partes en unísono
+(@notation{a due}) se marcan con el texto @qq{a2}.
+
+De forma predeterminada, el combinador de partes mezcla dos notas
+de la misma altura como una nota @notation{a due}, combina las
+notas que tengan la misma duración y estén a menos de una novena
+de distancia como acordes, y dispone en voces separadas las notas
+que estén a más de una novena de distancia (o cuando hay cruce de
+voces).  Este comportamiento se puede sobreescribir con un
+argumento opcional que consiste en una pareja de números después
+de la instrucción @code{\partcombine}: el primero especifica el
+intervalo donde las notas comienzan a estar combinadas (el valor
+predeterminado es cero) y el segundo donde las notas se dividen en
+voces distintas.  El ajuste del segundo argumento al valor cero
+significa que el combinador de partes separa las notas que estén
+dentro de un intervalo de segunda o más, establecerlo al valor uno
+separa las notas de una tercera o más, y así sucesivamente.
+
+@lilypond[quote,verbatim]
+instrumentOne = \relative {
+  a4 b c d |
+  e f g a |
+  b c d e |
+}
+
+instrumentTwo = \relative {
+  c'4 c c c |
+  c c c c |
+  c c c c |
+}
+
+<<
+  \new Staff \partcombine \instrumentOne \instrumentTwo
+  \new Staff \partcombine #'(2 . 3) \instrumentOne \instrumentTwo
+>>
+@end lilypond
+
 
 Los dos argumentos de @code{\partcombine} se interpretan como
 contextos de @rinternals{Voice} separados, por lo que si la música
@@ -1007,7 +1061,8 @@ de incluir la función @code{\relative}, es decir:
 @noindent
 Una sección @code{\relative} que se encuentra fuera de
 @code{\partcombine} no tiene ningún efecto sobre las notas de
-@code{@var{expresión_musical_1}} y @code{@var{expresión_musical_2}}.
+@code{@var{expresión_musical_1}} y
+@code{@var{expresión_musical_2}}.
 
 @funindex \partcombineChords
 @funindex partcombineChords
@@ -1022,45 +1077,42 @@ Una sección @code{\relative} que se encuentra fuera de
 @funindex \partcombineAutomatic
 @funindex partcombineAutomatic
 
-En las partituras profesionales, las voces con frecuencia se mantienen
-separadas entre sí durante pasajes prolongados incluso si algunas
-notas coninciden entre ambas, y podrían escribirse fácilmente como un
-unísono. Por ello, la combinación de las notas en un acorde, o mostrar
-una voz como solo, no son soluciones ideales porque la función
-@code{\partcombine} considera cada nota de forma individual.  En este
-caso, el resultado de la función @code{\partcombine} se puede
-alterar o corregir con las instrucciones siguientes:
-
-Las instrucciones que finalizan en @code{@dots{}Once} se aplican
-exclusivamente a la nota siguiente dentro de la expresión musical.
+En las partituras profesionales, las voces con frecuencia se
+mantienen separadas entre sí durante pasajes prolongados incluso
+si algunas notas coninciden entre ambas, y podrían escribirse
+fácilmente como un unísono. Por ello, la combinación de las notas
+en un acorde, o mostrar una voz como solo, no son soluciones
+ideales porque la función @code{\partcombine} considera cada nota
+de forma individual.  En este caso, el resultado de la función
+@code{\partcombine} se puede alterar o corregir con una de las
+instrucciones siguientes.  Todas las instrucciones se pueden
+anteceder por @code{\once} para que se apliquen solamente a la
+nota siguiente dentro de la expresión musical.
 
 @itemize
 @item
-@code{\partcombineApart} y @code{\once \partcombineApart}
-mantienen las notas como dos voces separadas incluso si se pueden
-combinar en un acorde o unísono.
+@code{\partcombineApart} mantiene las notas como dos voces
+separadas incluso si se pueden combinar en un acorde o unísono.
 
 @item
-@code{\partcombineChords} y @code{\once \partcombineChords}
-combinan las notas en un acorde.
+@code{\partcombineChords} combina las notas en un acorde.
 
 @item
-@code{\partcombineUnisono} y @code{\once \partcombineUnisono}
-combinan las dos voces como unísono y marcan el resultado
-como @qq{unison}.
+@code{\partcombineUnisono} combina las dos voces como unísono y
+marca el resultado como @qq{unison}.
 
 @item
-@code{\partcombineSoloI} y @code{\once \partcombineSoloI}
-muestran solo la voz uno y la marcan como @qq{Solo}.
+@code{\partcombineSoloI} muestra solo la voz uno y la marca como
+@qq{Solo}.
 
 @item
-@code{\partcombineSoloII} o @code{\once \partcombineSoloII}
-imprimen solo la voz dos y la marcan como @qq{Solo}.
+@code{\partcombineSoloII} imprime solo la voz dos y la marca como
+@qq{Solo}.
 
 @item
-@code{\partcombineAutomatic} y @code{\once \partcombineAutomatic}
-terminan el efecto de las instrucciones anteriores y retornan a la
-funcionalidad estándar de @code{\partcombine}.
+@code{\partcombineAutomatic} termina el efecto de las
+instrucciones anteriores y retorna a la funcionalidad estándar de
+@code{\partcombine}.
 
 @end itemize
 
@@ -1098,8 +1150,8 @@ La instrucción @code{\partcombine} no está diseñada para funcionar
 con la letra de las canciones; si una de las voces recibe un
 nombre explícito para poder adjuntar una letra, el combinador de
 partes no funciona.  Sin embargo, se puede conseguir este efecto
-usando un contexto @code{NullVoice}.  Véase
-@ref{Polifonía con letras compartidas}.
+usando un contexto @code{NullVoice}.  Véase @ref{Polifonía con
+letras compartidas}.
 
 
 @snippets
@@ -1133,36 +1185,37 @@ Las funciones @code{\partcombine@dots{}} no se pueden escribir
 dentro de los bloques @code{\tuplet} ni @code{\relative}.
 
 Si @code{printPartCombineTexts} está establecido y las dos voces
-tocan y terminan las mismas notas en el mismo compás,
-el combinador de partes puede tipografiar @code{a2} más de una vez
-en ese compás.
-
-@code{\partcombine} solo tiene en cuenta el momento de inicio de las
-notas dentro de una voz @code{Voice}; por ejemplo, no puede recordar
-si una nota dentro de una voz ya ha comenzado cuando las notas que se
-combinan se han iniciado justo ahora en la otra voz.  Esto puede
-conducir a cierto número de problemas inesperados entre los que se
-incluye la impresión incorrecta de marcas de @qq{Solo} o de
-@qq{Unison}.
-
-@code{\partcombine} conserva todos los elementos extensos (ligaduras,
-reguladores, etc.) dentro del mismo contexto @code{Voice} de forma que
-si uno cualquiera de estos elementos extensos inicia o termina en un
-contexto @code{Voice} diferente, puede no imprimirse o hacerlo
-incorrectamente.
+tocan y terminan las mismas notas en el mismo compás, el
+combinador de partes puede tipografiar @code{a2} más de una vez en
+ese compás.
+
+@code{\partcombine} solo tiene en cuenta el momento de inicio de
+las notas dentro de una voz @code{Voice}; por ejemplo, no puede
+recordar si una nota dentro de una voz ya ha comenzado cuando las
+notas que se combinan se han iniciado justo ahora en la otra voz.
+Esto puede conducir a cierto número de problemas inesperados entre
+los que se incluye la impresión incorrecta de marcas de @qq{Solo}
+o de @qq{Unison}.
+
+@code{\partcombine} conserva todos los elementos extensos
+(ligaduras, reguladores, etc.) dentro del mismo contexto
+@code{Voice} de forma que si uno cualquiera de estos elementos
+extensos inicia o termina en un contexto @code{Voice} diferente,
+puede no imprimirse o hacerlo incorrectamente.
 
 Si la función @code{\partcombine} no puede combinar las dos
 expresiones musicales (es decir, cuando las dos voces tienen
-duraciones distintas), otorgará internamente sus propios nombres a las
-voces: @code{one} y @code{two} respectivamente.  Esto significa que si
-se produce un cambio a un contexto @code{Voice} que tenga un nombre
-distinto, se ignorarán los eventos dentro del contexto @code{Voice}
-que tiene el nombre distinto.
+duraciones distintas), otorgará internamente sus propios nombres a
+las voces: @code{one} y @code{two} respectivamente.  Esto
+significa que si se produce un cambio a un contexto @code{Voice}
+que tenga un nombre distinto, se ignorarán los eventos dentro del
+contexto @code{Voice} que tiene el nombre distinto.
 
-Consulte también el apartado @emph{Advertencias y problemas conocidos}
-en la sección @ref{Tablaturas predeterminadas} al utilizar
-@code{\partcombine} con tablaturas, y la @emph{Nota} de
-@ref{Barras automáticas} al utilizar barrado automático.
+Consulte también el apartado
+@emph{Advertencias y problemas conocidos} en la sección
+@ref{Tablaturas predeterminadas} al utilizar @code{\partcombine}
+con tablaturas, y la @emph{Nota} de @ref{Barras automáticas} al
+utilizar barrado automático.
 
 
 @node Escribir música en paralelo
@@ -1175,16 +1228,16 @@ en la sección @ref{Tablaturas predeterminadas} al utilizar
 @funindex \parallelMusic
 @funindex parallelMusic
 
-La música para varias partes se puede intercalar dentro del código de
-entrada.  La función @code{\parallelMusic} admite una lista que
+La música para varias partes se puede intercalar dentro del código
+de entrada.  La función @code{\parallelMusic} admite una lista que
 contiene los nombres de las variables que se van a crear, y una
 expresión musical.  El contenido de los compases alternativos
-extraídos de la expresión se convierten en el valor de las variables
-respectivas, de manera que podemos utilizarlas más tarde para imprimir
-la música.
+extraídos de la expresión se convierten en el valor de las
+variables respectivas, de manera que podemos utilizarlas más tarde
+para imprimir la música.
 
-@warning{Es obligatorio utilizar comprobaciones de compás @code{|}, y
-los compases deben tener la misma longitud.}
+@warning{Es obligatorio utilizar comprobaciones de compás
+@code{|}, y los compases deben tener la misma longitud.}
 
 @lilypond[quote,verbatim]
 \parallelMusic #'(voiceA voiceB voiceC) {
@@ -1208,9 +1261,9 @@ los compases deben tener la misma longitud.}
 Se puede usar el modo relativo.  Observe que la instrucción
 @code{\relative} no se utiliza dentro del propio bloque
 @code{\parallelMusic}.  Las notas guardan relación con la nota
-anterior en la misma voz, no con la nota anterior dentro del código de
-entrada (dicho de otra manera, las notas relativas de @code{vozA}
-ignoran a las notas que hay en @code{vozB}.
+anterior en la misma voz, no con la nota anterior dentro del
+código de entrada (dicho de otra manera, las notas relativas de
+@code{vozA} ignoran a las notas que hay en @code{vozB}.
 
 @lilypond[quote,verbatim]
 \parallelMusic #'(voiceA voiceB voiceC) {
@@ -1231,8 +1284,9 @@ ignoran a las notas que hay en @code{vozB}.
 >>
 @end lilypond
 
-Esto funciona aceptablemente bien para música de piano.  El siguiente
-ejemplo asigna cada cuatro compases consecutivos a cuatro variables:
+Esto funciona aceptablemente bien para música de piano.  El
+siguiente ejemplo asigna cada cuatro compases consecutivos a
+cuatro variables:
 
 @lilypond[quote,verbatim]
 global = {
index b670ba8b0f06d686632a6353c312b92910b4a5fa..7d86ece5db0ba0b0c8ea0f287a8821a6fce90621 100644 (file)
@@ -3078,7 +3078,7 @@ No existe ningún rodeo para disminuir la magnitud de la separación.
 
 @node Área de espaciado nueva
 @subsection Área de espaciado nueva
-@translationof New spacing area
+@translationof New spacing section
 
 @funindex \newSpacingSection
 @cindex área de espaciado nueva
index ba0300710f24e4bbf018298ccc1c094478b9c2fb..9cfc2be7e28e8af85130249cdf5edfc4cd2e30d5 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 9b0c8394bbd8510cfc39c40342879703a4b3d2c1
+    Translation of GIT committish: 19d0e8e1a9cee3444ec4915b1d2d116e67f5b3f7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -18,8 +18,8 @@
 @lilypondfile[quote,ragged-right,line-width=14.5\cm,staffsize=16]{staff-headword.ly}
 
 Esta sección explica cómo influir sobre la apariencia de los
-pentagramas, cómo imprimir partituras con más de un pentagrama y cómo
-añadir indicaciones de tempo y notas guía a los pentagramas.
+pentagramas, cómo imprimir partituras con más de un pentagrama y
+cómo añadir indicaciones de tempo y notas guía a los pentagramas.
 
 @menu
 * Impresión de los pentagramas::
@@ -32,8 +32,8 @@ añadir indicaciones de tempo y notas guía a los pentagramas.
 @subsection Impresión de los pentagramas
 @translationof Displaying staves
 
-Esta sección describe los distintos métodos de creación de pentagramas
-y grupos de ellos.
+Esta sección describe los distintos métodos de creación de
+pentagramas y grupos de ellos.
 
 @menu
 * Crear instancias de pentagramas nuevos::
@@ -69,9 +69,10 @@ y grupos de ellos.
 @funindex VaticanaStaff
 @funindex GregorianTranscriptionStaff
 
-Las @notation{pautas} y los @notation{pentagramas} o pautas de cinco
-líneas se crean con las instrucciones @code{\new} o @code{\context}.
-Para ver más detalles, consulte @ref{Crear y referenciar contextos}.
+Las @notation{pautas} y los @notation{pentagramas} o pautas de
+cinco líneas se crean con las instrucciones @code{\new} o
+@code{\context}.  Para ver más detalles, consulte @ref{Crear y
+referenciar contextos}.
 
 El contexto básico de pentagrama es @code{Staff}:
 
@@ -79,12 +80,12 @@ El contexto básico de pentagrama es @code{Staff}:
 \new Staff \relative { c''4 d e f }
 @end lilypond
 
-El contexto @code{DrumStaff} crea una pauta de cinco líneas preparada
-para un conjunto de batería típico.  Cada instrumento se presenta con
-un símbolo distinto.  Los instrumentos se escriben en el modo de
-percusión que sigue a una instrucción @code{\drummode}, con cada
-instrumento identificado por un nombre.  Para ver más detalles,
-consulte @ref{Pautas de percusión}.
+El contexto @code{DrumStaff} crea una pauta de cinco líneas
+preparada para un conjunto de batería típico.  Cada instrumento se
+presenta con un símbolo distinto.  Los instrumentos se escriben en
+el modo de percusión que sigue a una instrucción @code{\drummode},
+con cada instrumento identificado por un nombre.  Para ver más
+detalles, consulte @ref{Pautas de percusión}.
 
 @lilypond[verbatim,quote]
 \new DrumStaff {
@@ -92,24 +93,26 @@ consulte @ref{Pautas de percusión}.
 }
 @end lilypond
 
-@code{RhythmicStaff} crea una pauta de una sola línea que sólo muestra
-las duraciones de la entrada.  Se preservan las duraciones reales.
-Para ver más detalles, consulte @ref{Mostrar los ritmos de la melodía}.
+@code{RhythmicStaff} crea una pauta de una sola línea que sólo
+muestra las duraciones de la entrada.  Se preservan las duraciones
+reales.  Para ver más detalles, consulte
+@ref{Mostrar los ritmos de la melodía}.
 
 @lilypond[verbatim,quote]
 \new RhythmicStaff { c4 d e f }
 @end lilypond
 
-@code{TabStaff} crea una tablatura con seis cuerdas en la afinación
-estándar de guitarra.  Para ver más detalles, consulte @ref{Tablaturas predeterminadas}.
+@code{TabStaff} crea una tablatura con seis cuerdas en la
+afinación estándar de guitarra.  Para ver más detalles, consulte
+@ref{Tablaturas predeterminadas}.
 
 @lilypond[verbatim,quote]
 \new TabStaff \relative { c''4 d e f }
 @end lilypond
 
-Existen dos contextos de pauta específicos para la notación de música
-antigua: @code{MensuralStaff} y @code{VaticanaStaff}.  Se describen en
-@ref{Contextos predefinidos}.
+Existen dos contextos de pauta específicos para la notación de
+música antigua: @code{MensuralStaff} y @code{VaticanaStaff}.  Se
+describen en @ref{Contextos predefinidos}.
 
 @code{GregorianTranscriptionStaff} crea una pauta para la notación
 moderna de canto gregoriano.  No muestra líneas divisorias.
@@ -118,8 +121,8 @@ moderna de canto gregoriano.  No muestra líneas divisorias.
 \new GregorianTranscriptionStaff \relative { c''4 d e f e d }
 @end lilypond
 
-Se pueden definir contextos nuevos de pentagrama único.  Para ver más
-detalles, consulte @ref{Definir contextos nuevos}.
+Se pueden definir contextos nuevos de pentagrama único.  Para ver
+más detalles, consulte @ref{Definir contextos nuevos}.
 
 @seealso
 Glosario musical:
@@ -171,13 +174,13 @@ Referencia de funcionamiento interno:
 @cindex sistema
 
 Existen varios contextos para agrupar pentagramas individuales
-formando sistemas.  Cada contexto de agrupación establece el estilo
-del delimitador de comienzo del sistema y el comportamiento de las
-barras de compás.
+formando sistemas.  Cada contexto de agrupación establece el
+estilo del delimitador de comienzo del sistema y el comportamiento
+de las barras de compás.
 
 Si no se especifica ningún contexto, se usan las propiedades
-predeterminadas: el grupo comienza con una línea vertical y las barras
-de compás no están conectadas.
+predeterminadas: el grupo comienza con una línea vertical y las
+barras de compás no están conectadas.
 
 @lilypond[verbatim,quote]
 <<
@@ -186,8 +189,9 @@ de compás no están conectadas.
 >>
 @end lilypond
 
-En el contexto @code{StaffGroup}, el grupo se inicia con un corchete y
-las barras de compás se dibujan atravesando todos los pentagramas.
+En el contexto @code{StaffGroup}, el grupo se inicia con un
+corchete y las barras de compás se dibujan atravesando todos los
+pentagramas.
 
 @lilypond[verbatim,quote]
 \new StaffGroup <<
@@ -196,8 +200,8 @@ las barras de compás se dibujan atravesando todos los pentagramas.
 >>
 @end lilypond
 
-En un @code{ChoirStaff} (sistema de coro), el grupo se inicia con un
-corchete, pero las barras de compás no están conectadas.
+En un @code{ChoirStaff} (sistema de coro), el grupo se inicia con
+un corchete, pero las barras de compás no están conectadas.
 
 @lilypond[verbatim,quote]
 \new ChoirStaff <<
@@ -206,8 +210,9 @@ corchete, pero las barras de compás no están conectadas.
 >>
 @end lilypond
 
-En un @code{GrandStaff} (sistema de piano), el grupo se inicia con una
-llave y las barras de compás se conectan entre los pentagramas.
+En un @code{GrandStaff} (sistema de piano), el grupo se inicia con
+una llave y las barras de compás se conectan entre los
+pentagramas.
 
 @lilypond[verbatim,quote]
 \new GrandStaff <<
@@ -217,8 +222,8 @@ llave y las barras de compás se conectan entre los pentagramas.
 @end lilypond
 
 El @code{PianoStaff} (sistema de piano) es idéntico a
-@code{GrandStaff}, excepto que contempla directamente la impresión del
-nombre del instrumento.  Para ver más detalles, consulte
+@code{GrandStaff}, excepto que contempla directamente la impresión
+del nombre del instrumento.  Para ver más detalles, consulte
 @ref{Nombres de instrumentos}.
 
 @lilypond[verbatim,quote]
@@ -237,8 +242,8 @@ siguientes valores: @code{SystemStartBar} (línea),
 @code{SystemStartSquare} (corchete en ángulo recto), pero se debe
 especificar explícitamente.
 
-Se pueden definir contextos nuevos de grupo de pentagramas.  Para ver
-más detalles, consulte @ref{Definir contextos nuevos}.
+Se pueden definir contextos nuevos de grupo de pentagramas.  Para
+ver más detalles, consulte @ref{Definir contextos nuevos}.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
@@ -280,9 +285,6 @@ Referencia de funcionamiento interno:
 @rinternals{SystemStartBracket},
 @rinternals{SystemStartSquare}.
 
-@knownissues
-@code{PianoStaff} no acepta @code{ChordNames} de forma predeterminada.
-
 
 @node Grupos de pentagramas anidados
 @unnumberedsubsubsec Grupos de pentagramas anidados
@@ -296,8 +298,8 @@ Referencia de funcionamiento interno:
 @cindex llaves, anidado de
 
 Los contextos de grupos de pentagramas se pueden anidar hasta una
-profundidad arbitraria.  En este caso, cada contexto descendiente crea
-un corchete nuevo adyacente al corchete de su grupo padre.
+profundidad arbitraria.  En este caso, cada contexto descendiente
+crea un corchete nuevo adyacente al corchete de su grupo padre.
 
 @lilypond[verbatim,quote]
 \new StaffGroup <<
@@ -315,8 +317,9 @@ un corchete nuevo adyacente al corchete de su grupo padre.
 >>
 @end lilypond
 
-Se pueden definir nuevos contextos de grupos de pentagramas anidados.
-Para ver más detalles, consulte @ref{Definir contextos nuevos}.
+Se pueden definir nuevos contextos de grupos de pentagramas
+anidados.  Para ver más detalles, consulte
+@ref{Definir contextos nuevos}.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
@@ -347,9 +350,9 @@ Referencia de funcionamiento interno:
 @cindex separación de sistemas, marca de
 
 Si el número de sistemas por página varía de una página a otra, es
-costumbre separar los sistemas colocando una marca separadora entre
-ellos.  De forma predeterminada, el separador de sistemas es nulo,
-pero se puede activar con una opción de @code{\paper}.
+costumbre separar los sistemas colocando una marca separadora
+entre ellos.  De forma predeterminada, el separador de sistemas es
+nulo, pero se puede activar con una opción de @code{\paper}.
 
 @c \book is required here to display the system separator
 @c ragged-right is required as there are two systems
@@ -396,9 +399,9 @@ Fragmentos de código:
 @translationof Modifying single staves
 
 Esta sección explica cómo cambiar los atributos específicos de un
-pentagrama: por ejemplo, cambiar el número de líneas o el tamaño de la
-pauta.  También se describen los métodos para comenzar y terminar los
-pentagramas, y establecer secciones de ossia.
+pentagrama: por ejemplo, cambiar el número de líneas o el tamaño
+de la pauta.  También se describen los métodos para comenzar y
+terminar los pentagramas, y establecer secciones de ossia.
 
 @menu
 * El símbolo del pentagrama::
@@ -444,9 +447,9 @@ partitura.
 @endpredefined
 
 Las líneas de la pauta pertenecen al grob @code{StaffSymbol}
-(incluidas las líneas adicionales) y se pueden modificar usando las
-propiedades de @code{StaffSymbol}, pero esas modificaciones deben
-hacerse antes de que el pentagrama se (re)inicie.
+(incluidas las líneas adicionales) y se pueden modificar usando
+las propiedades de @code{StaffSymbol}, pero esas modificaciones
+deben hacerse antes de que el pentagrama se (re)inicie.
 
 Se puede cambiar el número de líneas de la pauta:
 
@@ -490,9 +493,9 @@ pauta personalizada con la posición de la línea central normal
 del Do@tie{}central para que se correspondan a las líneas nuevas.
 Véase @ref{Clave}.
 
-Puede cambiarse el grosor de las líneas de la pauta.  También resultan
-afectadas, de forma predeterminada, las líneas adicionales y no la
-plica de las figuras.
+Puede cambiarse el grosor de las líneas de la pauta.  También
+resultan afectadas, de forma predeterminada, las líneas
+adicionales y no la plica de las figuras.
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -515,11 +518,10 @@ forma independiente del de las líneas de la pauta.
 @end lilypond
 
 @noindent
-El primer valor se multiplica por
-el grosor de las líneas del pentagrama,
-el segundo por el ancho de un espacio del pentagrama, y después
-los dos valores se suman para obtener el grosor de
-las líneas adicionales.
+El primer valor se multiplica por el grosor de las líneas del
+pentagrama, el segundo por el ancho de un espacio del pentagrama,
+y después los dos valores se suman para obtener el grosor de las
+líneas adicionales.
 
 Se pueden alterar las posiciones de las líneas adicionales:
 
@@ -531,10 +533,10 @@ Se pueden alterar las posiciones de las líneas adicionales:
 }
 @end lilypond
 
-Puede hacerse que las líneas adicionales añadidas aparezcan por encima
-o por debajo de la cabeza de las figuras, dependiendo de la posición
-actual relativa a otras cabezas de figura que tienen asimismo sus
-propias líneas adicionales.
+Puede hacerse que las líneas adicionales añadidas aparezcan por
+encima o por debajo de la cabeza de las figuras, dependiendo de la
+posición actual relativa a otras cabezas de figura que tienen
+asimismo sus propias líneas adicionales.
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -544,14 +546,14 @@ propias líneas adicionales.
 }
 @end lilypond
 
-También puede hacerse que las líneas adicionales aparezcan dentro del
-pentagrama allí donde se requieren líneas de pauta personalizadas.  El
-ejemplo muestra la posición predeterminada de las líneas adicionales
-cuando el valor de posición explícito @code{ledger-position} se ha
-fijado o no.  La instrucción @code{\stopStaff} se necesita en el
-ejemplo para revertir la instrucción de sobreescritura
-@code{\override} para todo el @code{StaffSymbol} (el símbolo de
-pauta).
+También puede hacerse que las líneas adicionales aparezcan dentro
+del pentagrama allí donde se requieren líneas de pauta
+personalizadas.  El ejemplo muestra la posición predeterminada de
+las líneas adicionales cuando el valor de posición explícito
+@code{ledger-position} se ha fijado o no.  La instrucción
+@code{\stopStaff} se necesita en el ejemplo para revertir la
+instrucción de sobreescritura @code{\override} para todo el
+@code{StaffSymbol} (el símbolo de pauta).
 
 @lilypond[verbatim,quote]
 \relative d' {
@@ -564,8 +566,8 @@ pauta).
 }
 @end lilypond
 
-Puede alterarse la distancia entre líneas de la pauta.  Esto afecta
-también al espaciado de las líneas adicionales.
+Puede alterarse la distancia entre líneas de la pauta.  Esto
+afecta también al espaciado de las líneas adicionales.
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -612,7 +614,8 @@ Referencia de funcionamiento interno:
 @funindex stopStaff
 
 Los pentagramas @notation{Ossia} se pueden preparar mediante la
-creación de un pentagrama simultáneo nuevo en la posición adecuada:
+creación de un pentagrama simultáneo nuevo en la posición
+adecuada:
 
 @lilypond[verbatim,quote]
 \new Staff \relative {
@@ -626,16 +629,17 @@ creación de un pentagrama simultáneo nuevo en la posición adecuada:
 @end lilypond
 
 @noindent
-Sin embargo, el ejemplo anterior no es lo que normalmente se desea.
-Para crear pentagramas de ossia que estén encima del pentagrama
-original, que no tengan compás ni clave, y que tengan un tamaño menor
-de tipografía se deben usar varios trucos.  El Manual de aprendizaje
-describe una técnica específica para llegar a este objetivo, empezando
-por @rlearning{Anidado de expresiones musicales}.
+Sin embargo, el ejemplo anterior no es lo que normalmente se
+desea.  Para crear pentagramas de ossia que estén encima del
+pentagrama original, que no tengan compás ni clave, y que tengan
+un tamaño menor de tipografía se deben usar varios trucos.  El
+Manual de aprendizaje describe una técnica específica para llegar
+a este objetivo, empezando por @rlearning{Anidado de expresiones
+musicales}.
 
 El ejemplo siguiente utiliza la propiedad @code{alignAboveContext}
-para alinear el pentagrama de ossia.  Este método es muy conveniente
-cuando se necesitan sólo algunos pentagramas de ossia.
+para alinear el pentagrama de ossia.  Este método es muy
+conveniente cuando se necesitan sólo algunos pentagramas de ossia.
 
 @lilypond[verbatim,quote]
 \new Staff = "main" \relative {
@@ -646,9 +650,7 @@ cuando se necesitan sólo algunos pentagramas de ossia.
     \new Staff \with {
       \remove "Time_signature_engraver"
       alignAboveContext = #"main"
-      fontSize = #-3
-      \override StaffSymbol.staff-space = #(magstep -3)
-      \override StaffSymbol.thickness = #(magstep -3)
+      \magnifyStaff #2/3
       firstClef = ##f
     }
     { e4 d f e }
@@ -657,22 +659,20 @@ cuando se necesitan sólo algunos pentagramas de ossia.
 }
 @end lilypond
 
-Si se requieren muchos pentagramas de ossia aislados, puede ser más
-conveniente la creación de un contexto @code{Staff} vacío con un
-@emph{identificador de contexto} específico; después se pueden crear
-los pentagramas de ossia @emph{llamando} a este contexto y usando
-@code{\startStaff} y @code{\stopStaff} en los puntos deseados.  Las
-ventajas de este método son más patentes si la pieza es más larga que
-en ejemplo siguiente.
+Si se requieren muchos pentagramas de ossia aislados, puede ser
+más conveniente la creación de un contexto @code{Staff} vacío con
+un @emph{identificador de contexto} específico; después se pueden
+crear los pentagramas de ossia @emph{llamando} a este contexto y
+usando @code{\startStaff} y @code{\stopStaff} en los puntos
+deseados.  Las ventajas de este método son más patentes si la
+pieza es más larga que en ejemplo siguiente.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
   \new Staff = "ossia" \with {
     \remove "Time_signature_engraver"
     \hide Clef
-    fontSize = #-3
-    \override StaffSymbol.staff-space = #(magstep -3)
-    \override StaffSymbol.thickness = #(magstep -3)
+    \magnifyStaff #2/3
   }
   { \stopStaff s1*6 }
 
@@ -698,19 +698,19 @@ en ejemplo siguiente.
 @end lilypond
 
 Como alternativa, se puede usar la instrucción
-@code{\RemoveEmptyStaves} para crear pentagramas de ossia.  Este
-método es muy conveniente cuando los pentagramas de ossia aparecen
-inmediatamente después de un salto de línea. Para ver más información
-sobre @code{\RemoveEmptyStaves}, consulte @ref{Ocultar pentagramas}.
+@code{\RemoveAllEmptyStaves} para crear pentagramas de ossia.
+Este método es muy conveniente cuando los pentagramas de ossia
+aparecen inmediatamente después de un salto de línea. Para ver más
+información sobre @code{\RemoveAllEmptyStaves}, consulte
+@ref{Ocultar pentagramas}.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
   \new Staff = "ossia" \with {
     \remove "Time_signature_engraver"
     \hide Clef
-    fontSize = #-3
-    \override StaffSymbol.staff-space = #(magstep -3)
-    \override StaffSymbol.thickness = #(magstep -3)
+    \magnifyStaff #2/3
+    \RemoveAllEmptyStaves
   } \relative {
     R1*3
     c''4 e8 d c2
@@ -724,13 +724,6 @@ sobre @code{\RemoveEmptyStaves}, consulte @ref{Ocultar pentagramas}.
     e4 d c2
   }
 >>
-
-\layout {
-  \context {
-    \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup.remove-first = ##t
-  }
-}
 @end lilypond
 
 
@@ -773,7 +766,7 @@ Referencia de funcionamiento interno:
 @cindex vacío, pentagrama
 
 @funindex \RemoveEmptyStaves
-@funindex RemoveEmptyStaves
+@funindex \RemoveAllEmptyStaves
 @funindex Staff_symbol_engraver
 @funindex \stopStaff
 @funindex stopStaff
@@ -789,21 +782,27 @@ alternativa se puede utilizar la instrucción @code{\stopStaff}.
 \relative { a''8 f e16 d c b a2 }
 @end lilypond
 
-Se pueden ocultar los pentagramas que están vacíos mediante la
-instrucción @code{\RemoveEmptyStaves} dentro del bloque @code{\layout}
-para el contexto @code{\Staff}.  En las partituras orquestales, este
-estilo se conoce como @q{partitura a la francesa}.  De forma
-predeterminada, esta instrucción oculta y elimina todos los
-pentagramas vacíos de la partitura excepto los del primer sistema.
 
-@warning{Un pentagrama se considera vacío cuando contiene solamente
-silencios, silencios multicompás, desplazamientos, silencios de
-separación o una combinación de estos elementos.}
+Se pueden ocultar los pentagramas vacíos (para hacer la que se
+conoce como @q{partitura a la francesa}) aplicando la instrucción
+@code{\RemoveEmptyStaves} sobre un contexto, lo cual se puede
+hacer globalmente (dentro del bloque @code{\layout}) así como para
+pautas específicas solamente (dentro de un bloque @code{\with}).
+Esta instrucción elimina todas las pautas vacías de la partitura
+excepto las del primer sistema.  Si queremos ocultar también las
+del primer sistema, usamos @code{\RemoveAllEmptyStaves}.  Los
+contextos que están contemplados son @code{Staff},
+@code{RhythmicStaff} y @code{VaticanaStaff}.
+
+@warning{Un pentagrama se considera vacío cuando contiene
+solamente silencios, silencios multicompás, desplazamientos,
+silencios de separación o una combinación de estos elementos.}
 
 @lilypond[verbatim,quote,ragged-right]
 \layout {
   \context {
-    \Staff \RemoveEmptyStaves
+    \Staff
+    \RemoveEmptyStaves
   }
 }
 
@@ -824,34 +823,16 @@ separación o una combinación de estos elementos.}
 @cindex ossia
 
 @noindent
-También se puede usar @code{\RemoveEmptyStaves} en el contexto
-@code{\Staff} para crear secciones de ossia para un pentagrama.  Para
-ver más detalles, consulte @ref{Pentagramas de Ossia}.
-
-@cindex ocultar pentagramas de música antigua
-@cindex ocultar pentagramas rítmicos
-
-@funindex \RemoveEmptyStaves
-@funindex RemoveEmptyStaves
-
-Se puede usar la instrucción @code{\RemoveEmptyStaves} para ocultar
-los pentagramas vacíos en contextos de música antigua como
-@code{\VaticanaStaff}.  De forma similar, se puede usar
-@code{\RhythmicStaff \RemoveEmptyStaves} para ocultar los contextos
-@code{RhythmicStaff} vacíos.
+También se puede usar @code{\RemoveAllEmptyStaves} para crear
+secciones de ossia para un pentagrama.  Para ver más detalles,
+consulte @ref{Pentagramas de Ossia}.
 
 
 @predefined
-@code{\Staff \RemoveEmptyStaves},
-@code{\VaticanaStaff \RemoveEmptyStaves},
-@code{\RhythmicStaff \RemoveEmptyStaves}.
+@code{\RemoveEmptyStaves},
+@code{\RemoveAllEmptyStaves}.
 @endpredefined
 
-
-@snippets
-@lilypondfile[verbatim,quote,texidoc,doctitle]
-{removing-the-first-empty-line.ly}
-
 @seealso
 Glosario musical:
 @rglos{Frenched staff}.
@@ -880,18 +861,18 @@ Referencia de funcionamiento interno:
 
 @knownissues
 La eliminación del grabador @code{Staff_symbol_engraver} también
-oculta las barras de compás.  Si se fuerza la visibilidad de la barra
-de compás, pueden ocurrir errores de formato visual.  En este caso,
-utilice las siguientes sobreescrituras de valores en vez de quitar el
-grabador:
+oculta las barras de compás.  Si se fuerza la visibilidad de la
+barra de compás, pueden ocurrir errores de formato visual.  En
+este caso, utilice las siguientes sobreescrituras de valores en
+vez de quitar el grabador:
 
 @example
 \omit StaffSymbol
 \override NoteHead.no-ledgers = ##t
 @end example
 
-Para ver los fallos y problemas conocidos, así como las advertencias
-asociadas con @code{\RemoveEmptyStaves}, consulte
+Para ver los fallos y problemas conocidos, así como las
+advertencias asociadas con @code{\RemoveEmptyStaves}, consulte
 @ref{Cambiar los valores por omisión de los contextos}.
 
 
@@ -899,9 +880,9 @@ asociadas con @code{\RemoveEmptyStaves}, consulte
 @subsection Escritura de las particellas
 @translationof Writing parts
 
-Esta sección explica cómo insertar indicaciones de tempo y nombres de
-instrumento en una partitura.  También se describen métodos para citar
-otras voces y dar formato a las notas guía.
+Esta sección explica cómo insertar indicaciones de tempo y nombres
+de instrumento en una partitura.  También se describen métodos
+para citar otras voces y dar formato a las notas guía.
 
 @menu
 * Nombres de instrumentos::
@@ -918,11 +899,11 @@ otras voces y dar formato a las notas guía.
 @cindex instrumento, nombre abreviado
 
 Se pueden imprimir los nombres de los instrumentos en el lado
-izquierdo de los pentagramas dentro de los contextos
-@code{Staff}, @code{PianoStaff}, @code{StaffGroup}, @code{GrandStaff}
-y @code{ChoirStaff}.  El valor de @code{instrumentName} se usa para el
-primer pentagrama, y el valor de @code{shortInstrumentName} se usa
-para todos los pentagramas siguientes.
+izquierdo de los pentagramas dentro de los contextos @code{Staff},
+@code{PianoStaff}, @code{StaffGroup}, @code{GrandStaff} y
+@code{ChoirStaff}.  El valor de @code{instrumentName} se usa para
+el primer pentagrama, y el valor de @code{shortInstrumentName} se
+usa para todos los pentagramas siguientes.
 
 @lilypond[verbatim,quote,ragged-right]
 \new Staff \with {
@@ -952,35 +933,37 @@ instrumento más complicados:
 
 @cindex instrument names, centering
 
-Cuando se agrupan dos o más contextos de pentagrama, los nombres de
-instrumento y los nombres cortos aparecen centrados de forma
-predeterminada.  Para centrar nombres de instrumento de varias líneas,
-se debe utilizar @code{\center-column}:
+Cuando se agrupan dos o más contextos de pentagrama, los nombres
+de instrumento y los nombres cortos aparecen centrados de forma
+predeterminada.  Para centrar nombres de instrumento de varias
+líneas, se debe utilizar @code{\center-column}:
 
-@lilypond[verbatim,quote,indent=1.5\cm,relative=2]
+@lilypond[verbatim,quote,indent=1.5\cm]
 <<
   \new Staff \with {
     instrumentName = #"Flute"
-  }
-  { f2 g4 f }
+  } \relative {
+    f''2 g4 f
+}
   \new Staff \with {
     instrumentName = \markup {
-      \center-column { "Clarinet" }
-      \line { "in B" \smaller \flat }
+      \center-column { "Clarinet"
+        \line { "in B" \smaller \flat }
+      }
     }
-  }
-  { c4 b c2 }
+  } \relative { c''4 b c2 }
 >>
 @end lilypond
 
 @funindex indent
 @funindex short-indent
 
-Sin embargo, si los nombres de instrumento son más largos, éstos no se
-centran para un grupo de pentagramas a no ser que se aumenten los
-valores del sangrado, @code{indent}, y del sangrado corto,
-@code{short-indent}.  Para ver más detalles sobre estos ajustes,
-consulte @ref{Variables de paper para desplazamientos y sangrados,,Variables de @code{@bs{}paper} para desplazamientos y sangrados}.
+Sin embargo, si los nombres de instrumento son más largos, éstos
+no se centran para un grupo de pentagramas a no ser que se
+aumenten los valores del sangrado, @code{indent}, y del sangrado
+corto, @code{short-indent}.  Para ver más detalles sobre estos
+ajustes, consulte
+@ref{Variables de paper para desplazamientos y sangrados,,Variables de @code{@bs{}paper} para desplazamientos y sangrados}.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -1009,73 +992,57 @@ consulte @ref{Variables de paper para desplazamientos y sangrados,,Variables de
 @cindex nombres de instrumento, añadir a otros contextos
 
 Para añadir nombres de instrumento a otros contextos (como
-@code{ChordNames} o @code{FiguredBass}), debemos
-añadir el grabador @code{Instrument_name_engraver} a dicho
-contexto. Para ver más detalles, consulte @ref{Modificar los complementos (plug-ins) de contexto}.
+@code{ChordNames} o @code{FiguredBass}), debemos añadir el
+grabador @code{Instrument_name_engraver} a dicho contexto. Para
+ver más detalles, consulte @ref{Modificar los complementos
+(plug-ins) de contexto}.
 
 @cindex nombres de instrumento, cambiar
 
 El nombre de instrumento corto @code{shortInstrumentName} se puede
-cambiar en mitad de una pieza; sin embargo, sólo el primer
-@code{instrumentName} se imprime y el resto de ellos se ignoran:
+cambiar en mitad de una pieza, igual que otros ajustes que pueden
+ser necesarios para el instrumento nuevo; sin embargo, sólo el
+primer @code{instrumentName} se imprime y el resto de ellos se
+ignoran:
 
-@lilypond[verbatim,quote,ragged-right,relative=1]
-\new Staff \with {
-  instrumentName = #"Flute"
-  shortInstrumentName = #"Flt."
-}
-{
-  c1 c c c \break
-  c1 c c c \break
-  \set Staff.instrumentName = #"Clarinet"
-  \set Staff.shortInstrumentName = #"Clt."
-  c1 c c c \break
-  c1 c c c \break
+@lilypond[verbatim,quote,ragged-right]
+prepPiccolo = <>^\markup \italic { muta in Piccolo }
+
+setPiccolo = {
+  \set Staff.instrumentName = #"Piccolo"
+  \set Staff.shortInstrumentName = #"Picc."
+  \set Staff.midiInstrument = #"piccolo"
+  <>^\markup \bold { Piccolo }
+  \transposition c''
 }
-@end lilypond
-
-@cindex instrumento, cambio de
-@cindex cambio de instrumento
-
-@funindex \addInstrumentDefinition
-@funindex addInstrumentDefinition
-@funindex \instrumentSwitch
-@funindex instrumentSwitch
 
-Si se necesita un @emph{cambio} de instrumento, se debe usar
-@code{\addInstrumentDefinition} en combinación con
-@code{\instrumentSwitch} para crear una lista detallada de los cambios
-necesarios para el intercambio.  La instrucción
-@code{\addInstrumentDefinition} tiene dos argumentos: una cadena
-identificativa, y una lista asociativa de propiedades de contexto y
-los valores que el instrumento va a usar.  Se debe situar en el ámbito
-del nivel más alto.  @code{\instrumentSwitch} se usa en la expresión
-musical para declarar el cambio de instrumento:
+prepFlute = <>^\markup \italic { muta in Flauto }
 
-@lilypond[verbatim,quote,ragged-right]
-\addInstrumentDefinition #"contrabassoon"
-  #`((instrumentTransposition . ,(ly:make-pitch -1 0 0))
-     (shortInstrumentName . "Cbsn.")
-     (clefGlyph . "clefs.F")
-     (middleCPosition . 6)
-     (clefPosition . 2)
-     (instrumentCueName . ,(make-bold-markup "cbsn."))
-     (midiInstrument . "bassoon"))
+setFlute = {
+  \set Staff.instrumentName = #"Flute"
+  \set Staff.shortInstrumentName = #"Flt."
+  \set Staff.midiInstrument = #"flute"
+  <>^\markup \bold { Flute }
+  \transposition c'
+}
 
 \new Staff \with {
-  instrumentName = #"Bassoon"
+  instrumentName = #"Flute"
+  shortInstrumentName = #"Flt."
+  midiInstrument = #"flute"
 }
-\relative c' {
-  \clef tenor
-  \compressFullBarRests
-  c2 g'
-  R1*16
-  \instrumentSwitch "contrabassoon"
-  c,,2 g \break
-  c,1 ~ | 1
+\relative {
+  g'1 g g g \break
+  g1 g \prepPiccolo R R \break
+  \setPiccolo
+  g1 g g g \break
+  g1 g \prepFlute R R \break
+  \setFlute
+  g1 g g g
 }
 @end lilypond
 
+
 @seealso
 Referencia de la notación:
 @ref{Variables de paper para desplazamientos y sangrados,,Variables de @code{@bs{}paper} para desplazamientos y sangrados},
@@ -1106,20 +1073,20 @@ Referencia de funcionamiento interno:
 @funindex \transposition
 @funindex transposition
 
-Es muy frecuente que una voz use las mismas notas que otra voz.  Por
-ejemplo, los violines primero y segundo tocando la misma frase durante
-un determinado pasaje musical.  Esto se hace dejando que una voz
-@emph{cite} a la otra, sin tener que volver a introducir la música
-para la segunda voz.
+Es muy frecuente que una voz use las mismas notas que otra voz.
+Por ejemplo, los violines primero y segundo tocando la misma frase
+durante un determinado pasaje musical.  Esto se hace dejando que
+una voz @emph{cite} a la otra, sin tener que volver a introducir
+la música para la segunda voz.
 
 La instrucción @code{\addQuote}, utilizada en el ámbito del nivel
-sintáctico superior, define un flujo de música desde el que es posible
-citar fragmentos.
+sintáctico superior, define un flujo de música desde el que es
+posible citar fragmentos.
 
-La instrucción @code{\quoteDuring} se usa para indicar el punto en que
-comienza la cita.  Va seguida por dos argumentos: el nombre de la voz
-citada, tal y como se definió con @code{\addQuote}, y una expresión
-musical que indica la duración de la cita.
+La instrucción @code{\quoteDuring} se usa para indicar el punto en
+que comienza la cita.  Va seguida por dos argumentos: el nombre de
+la voz citada, tal y como se definió con @code{\addQuote}, y una
+expresión musical que indica la duración de la cita.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1140,10 +1107,10 @@ oboeNotes = \relative {
 }
 @end lilypond
 
-Si la expresión musical que se usa para @code{\quoteDuring} contiene
-cualquier cosa que no sea un silencio de separación o un silencio
-multicompás, se produce una situación de polifonía, lo que no suele
-ser deseable:
+Si la expresión musical que se usa para @code{\quoteDuring}
+contiene cualquier cosa que no sea un silencio de separación o un
+silencio multicompás, se produce una situación de polifonía, lo
+que no suele ser deseable:
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1164,10 +1131,45 @@ oboeNotes = \relative {
 }
 @end lilypond
 
+Si una instrucción @code{\unfoldRepeat} dentro de una expresión
+musical se necesita imprimir al usar @code{\quoteDuring}, entonces
+debe contener también su propia instrucción @code{\unfoldRepeat};
+
+@lilypond[verbatim,quote]
+fluteNotes = \relative {
+  \repeat volta 2 { a'4 gis g gis }
+}
+
+oboeNotesDW = \relative {
+  \repeat volta 2 \quoteDuring #"incorrect" { s1 }
+}
+
+oboeNotesW = \relative {
+  \repeat volta 2 \quoteDuring #"correct" { s1 }
+}
+
+
+\addQuote "incorrect" { \fluteNotes }
+
+\addQuote "correct" { \unfoldRepeats \fluteNotes }
+
+\score {
+  \unfoldRepeats
+  <<
+    \new Staff \with { instrumentName = "Flute" }
+    \fluteNotes
+    \new Staff \with { instrumentName = "Oboe (incorrect)" }
+    \oboeNotesDW
+    \new Staff \with { instrumentName = "Oboe (correct)" }
+    \oboeNotesW
+  >>
+}
+@end lilypond
+
 La instrucción @code{\quoteDuring} usa los ajustes de
-@code{\transposition} tanto de la parte citada como de la que cita,
-para producir notas que tienen la misma altura de sonido en la parte
-que cita y en las de la parte citada.
+@code{\transposition} tanto de la parte citada como de la que
+cita, para producir notas que tienen la misma altura de sonido en
+la parte que cita y en las de la parte citada.
 
 @lilypond[verbatim,quote]
 clarinetNotes = \relative c'' {
@@ -1202,10 +1204,10 @@ oboeNotes = \relative {
 @funindex quotedCueEventTypes
 
 De forma predeterminada, la música citada incluye todas las
-articulaciones, matices dinámicos, elementos de marcado, etc. de la
-expresión citada.  Es posible elegir cuáles de estos objetos de la
-música que se cita se imprimen, mediante la propiedad de contexto
-@code{quotedEventTypes}.
+articulaciones, matices dinámicos, elementos de marcado, etc. de
+la expresión citada.  Es posible elegir cuáles de estos objetos de
+la música que se cita se imprimen, mediante la propiedad de
+contexto @code{quotedEventTypes}.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1251,13 +1253,12 @@ Referencia de funcionamiento interno:
 
 @knownissues
 Sólo el contenido de la primera voz de una instrucción
-@code{\addQuote} se tiene en cuenta para la cita, de manera que
-si la expresión musical contiene enunciados @code{\new}
-o @code{\context Voice}, sus contenidos no serían citados.
-La cita de notas de adorno no está contemplada y puede hacer que
-LilyPond termine de forma abrupta; la cita de unos tresillos
-dentro de otros puede dar como resultado una
-notación de pobre calidad.
+@code{\addQuote} se tiene en cuenta para la cita, de manera que si
+la expresión musical contiene enunciados @code{\new} o
+@code{\context Voice}, sus contenidos no serían citados.  La cita
+de notas de adorno no está contemplada y puede hacer que LilyPond
+termine de forma abrupta; la cita de unos tresillos dentro de
+otros puede dar como resultado una notación de pobre calidad.
 
 
 @node Formateo de las notas guía
@@ -1302,11 +1303,12 @@ explícitamente un contexto @code{CueVoice} dentro de la parte.
 }
 @end lilypond
 
-La instrucción @code{\cueClef} puede usarse también con un contexto
-@code{CueVoice} explícito si se requiere un cambio de clave, e imprime
-una clave del tamaño adecuado para las notas guía.  Después puede
-utilizarse la instrucción @code{\cueClefUnset} para volver a la clave
-original, de nuevo con un signo de clave del tamaño adecuado.
+La instrucción @code{\cueClef} puede usarse también con un
+contexto @code{CueVoice} explícito si se requiere un cambio de
+clave, e imprime una clave del tamaño adecuado para las notas
+guía.  Después puede utilizarse la instrucción
+@code{\cueClefUnset} para volver a la clave original, de nuevo con
+un signo de clave del tamaño adecuado.
 
 @lilypond[verbatim,noragged-right]
 \relative {
 
 La música procedente de los compases correspondientes del elemento
 @code{@var{nombre_de_la_cita}} se añade como un contexto
-@code{CueVoice} y ocurre simultáneamente con la @code{@var{música}},
-lo que produce una situación polifónica.  La @code{@var{dirección}}
-toma un argumento @code{UP} (arriba) o @code{DOWN} (abajo), y
-corresponde a las voces primera y segunda, respectivamente,
-determinando cómo se imprimen las notas guía en relación a la otra
-voz.
+@code{CueVoice} y ocurre simultáneamente con la
+@code{@var{música}}, lo que produce una situación polifónica.  La
+@code{@var{dirección}} toma un argumento @code{UP} (arriba) o
+@code{DOWN} (abajo), y corresponde a las voces primera y segunda,
+respectivamente, determinando cómo se imprimen las notas guía en
+relación a la otra voz.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1371,7 +1373,7 @@ fluteNotes = \relative {
 
 oboeNotes = \relative c'' {
   R1
-  \new CueVoice { \set instrumentCueName = "flute" }
+  <>^\markup \tiny { flute }
   \cueDuring #"flute" #UP { R1 }
   g2 c,
 }
@@ -1391,14 +1393,15 @@ Es posible ajustar qué aspectos de la música se citan con
 @code{quotedCueEventTypes}.  Su valor por omisión es
 @code{'(note-event rest-event tie-event beam-event
 tuplet-span-event)}, lo que significa que solamente las notas,
-silencios, ligaduras de unión, barras y grupos especiales se citan,
-pero no las articulaciones, marcas dinámicas, elementos de marcado,
-etc.
+silencios, ligaduras de unión, barras y grupos especiales se
+citan, pero no las articulaciones, marcas dinámicas, elementos de
+marcado, etc.
 
-@warning{Cuando un contexto @code{Voice} da comienzo con @code{\cueDuring},
-como en el ejemplo siguiente, el contexto @code{Voice} se debe
-declarar explícitamente, pues en caso contrario toda la expresión musical
-pertenecería al contexto @code{CueVoice}.}
+@warning{Cuando un contexto @code{Voice} da comienzo con
+@code{\cueDuring}, como en el ejemplo siguiente, el contexto
+@code{Voice} se debe declarar explícitamente, pues en caso
+contrario toda la expresión musical pertenecería al contexto
+@code{CueVoice}.}
 
 @lilypond[verbatim,quote]
 oboeNotes = \relative {
@@ -1416,13 +1419,10 @@ oboeNotes = \relative {
 }
 @end lilypond
 
-El nombre del instrumento que está tocando se puede imprimir si se
-ajusta la propiedad @code{instrumentCueName} dentro de un contexto
-@code{CueVoice} provisional.  La colocación y estilo del
-@code{instrumentCueName} viene controlado a través del objeto
-@code{InstrumentSwitch}, véase @ref{Nombres de instrumentos}. Si las
-notas guía requieren un cambio de clave, puede hacerse manualmente
-pero la clave original se debe restaurar al final de las notas guía.
+Se pueden usar elementos de marcado para mostrar el nombre del
+instrumento citado.  Si las notas guía requieren un cambio de
+clave, puede hacerse manualmente pero la clave original se debe
+restaurar al final de las notas guía.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1433,7 +1433,7 @@ bassoonNotes = \relative c {
   \clef bass
   R1
   \clef treble
-  \new CueVoice { \set instrumentCueName = "flute" }
+  <>^\markup \tiny { flute }
   \cueDuring #"flute" #UP { R1 }
   \clef bass
   g4. b8 d2
@@ -1450,8 +1450,8 @@ De forma alternativa, puede usarse la función
 @code{\cueDuringWithClef} en su lugar.  Esta instrucción admite un
 argumento adicional para especificar el cambio de clabe que se
 necesita imprimir para las notas guía, pero después imprime
-automáticamente la clave original una vez que ha finalizado la serie
-de notas guía.
+automáticamente la clave original una vez que ha finalizado la
+serie de notas guía.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1461,7 +1461,7 @@ fluteNotes = \relative {
 bassoonNotes = \relative c {
   \clef bass
   R1
-  \new CueVoice { \set instrumentCueName = "flute" }
+  <>^\markup { \tiny "flute" }
   \cueDuringWithClef #"flute" #UP #"treble" { R1 }
   g4. b8 d2
 }
@@ -1478,15 +1478,16 @@ bassoonNotes = \relative c {
 
 Como @code{\quoteDuring}, @code{\cueDuring} tiene en cuenta las
 transposiciones instrumentales.  Las notas guía se producen en las
-alturas en que se escribirían para el instrumento que recibe la cita,
-para así producir las alturas de sonido del instrumento original.
+alturas en que se escribirían para el instrumento que recibe la
+cita, para así producir las alturas de sonido del instrumento
+original.
 
 Para transportar las notas guía de forma diferente, use
 @code{\transposedCueDuring}.  Esta instrucción acepta un argumento
-adicional para especificar (en modo absoluto) la altura impresa con
-que queremos representar el sonido de un Do central de concierto.
-Esto es útil para toma citas de un instrumento que está en un registro
-completamente diferente.
+adicional para especificar (en modo absoluto) la altura impresa
+con que queremos representar el sonido de un Do central de
+concierto.  Esto es útil para toma citas de un instrumento que
+está en un registro completamente diferente.
 
 @lilypond[verbatim,quote]
 piccoloNotes = \relative {
@@ -1517,18 +1518,16 @@ bassClarinetNotes = \relative c' {
 
 @funindex \killCues
 @funindex killCues
-@funindex \addInstrumentDefinition
-@funindex addInstrumentDefinition
 
 La instrucción @code{\killCues} elimina las notas guía de una
 expresión musical, de forma que la misma expresión musical pueda
-utilizarse para producir la particella instrumental (con notas guía) y
-la partitura de conjunto.  La instrucción @code{\killCues} elimina
-solamente las notas y eventos que se han citado mediante
+utilizarse para producir la particella instrumental (con notas
+guía) y la partitura de conjunto.  La instrucción @code{\killCues}
+elimina solamente las notas y eventos que se han citado mediante
 @code{\cueDuring}.  Otros elementos de marcado asociados con las
 guías, como los cambios de clave o una etiqueta identificativa del
-instrumento fuente, pueden marcarse para su inclusión selectiva dentro
-de la partitura; véase @ref{Uso de etiquetas}.
+instrumento fuente, pueden marcarse para su inclusión selectiva
+dentro de la partitura; véase @ref{Uso de etiquetas}.
 
 @lilypond[verbatim,quote]
 fluteNotes = \relative {
@@ -1540,7 +1539,7 @@ bassoonNotes = \relative c {
   R1
   \tag #'part {
     \clef treble
-    \new CueVoice { \set instrumentCueName = "flute" }
+    <>^\markup \tiny { flute }
   }
   \cueDuring #"flute" #UP { R1 }
   \tag #'part \clef bass
@@ -1563,10 +1562,11 @@ bassoonNotes = \relative c {
 >>
 @end lilypond
 
-Como alternativa, los cambios de clave y los letreros de instrumento
-se pueden recolectar dentro de una definición de instrumento para su
-uso repetido, utilizando @code{\addInstrumentDefinition} que se
-descibe en @ref{Nombres de instrumentos}.
+Como alternativa, los cambios de clave y los letreros de
+instrumento se pueden recolectar dentro de una definición de
+instrumento para su uso repetido, utilizando
+@code{\addInstrumentDefinition} que se descibe en @ref{Nombres de
+instrumentos}.
 
 @seealso
 Referencia de la notación:
@@ -1588,5 +1588,5 @@ Referencia de funcionamiento interno:
 Pueden ocurrir colisiones con los silencios si se usa
 @code{\cueDuring}, entre los contextos de @code{Voice} y de
 @code{CueVoice}.  Al usar @code{\cueDuringWithClef} o
-@code{\transposedCueDuring} el argumento adicional requerido para cada
-caso debe ir después de la cita y de la dirección.
+@code{\transposedCueDuring} el argumento adicional requerido para
+cada caso debe ir después de la cita y de la dirección.
index 368e8e1f998acb94e3584741669f8007cd145878..aae020d905fc912d817af16b7dcb67f846db3a8c 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 354e5ce3edd1dba03b4ecb68fc766bb46235f5d2
+    Translation of GIT committish: bfc3420ada8810d57156e9fc871560188f044a64
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -19,8 +19,8 @@ Esta sección explica cómo incluir texto (con diversos estilos de
 formateo) en las partituras.
 
 @noindent
-Ciertos elementos de texto de los que no nos ocupamos aquí se tratan
-en otras secciones específicas: @ref{Música vocal},
+Ciertos elementos de texto de los que no nos ocupamos aquí se
+tratan en otras secciones específicas: @ref{Música vocal},
 @ref{Títulos y encabezamientos}.
 
 @menu
@@ -37,11 +37,11 @@ Esta sección presenta las distintas formas de añadir texto a una
 partitura.
 
 @cindex texto, en otros idiomas
-@warning{Para escribir texto con caracteres acentuados y especiales
-(como los de idiomas distintos del inglés), sencillamente inserte los
-caracteres directamente en el archivo de LilyPond.  El archivo se debe
-guardar como UTF-8.  Para ver más información, consulte
-@ref{Codificación del texto}.}
+@warning{Para escribir texto con caracteres acentuados y
+especiales (como los de idiomas distintos del inglés),
+sencillamente inserte los caracteres directamente en el archivo de
+LilyPond.  El archivo se debe guardar como UTF-8.  Para ver más
+información, consulte @ref{Codificación del texto}.}
 
 
 @menu
@@ -83,9 +83,9 @@ utilizando un bloque @code{\markup}, como se describe bajo
 @end lilypond
 
 De forma predeterminada, las indicaciones de texto no afectan al
-espaciado de las notas.  Sin embargo, su anchura sí podría tenerse en
-cuenta: en el siguiente ejemplo, la primera cadena de texto no afecta
-al espaciado, pero la segunda sí afecta.
+espaciado de las notas.  Sin embargo, su anchura sí podría tenerse
+en cuenta: en el siguiente ejemplo, la primera cadena de texto no
+afecta al espaciado, pero la segunda sí afecta.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -95,13 +95,13 @@ al espaciado, pero la segunda sí afecta.
 }
 @end lilypond
 
-Se pueden adjuntar articulaciones a las notas, además de inscripciones
-de texto.  Para ver más información, consulte @ref{Articulaciones y
-ornamentos}.
+Se pueden adjuntar articulaciones a las notas, además de
+inscripciones de texto.  Para ver más información, consulte
+@ref{Articulaciones y ornamentos}.
 
-Para ver más información sobre el orden relativo de las inscripciones
-de texto y las articulaciones, consulte @rlearning{Colocación de los
-objetos}.
+Para ver más información sobre el orden relativo de las
+inscripciones de texto y las articulaciones, consulte
+@rlearning{Colocación de los objetos}.
 
 @funindex \textLengthOn
 @funindex textLengthOn
@@ -135,10 +135,10 @@ Referencia de funcionamiento interno:
 @cindex letra, mantener dentro del margen
 
 @knownissues
-La comprobación necesaria para asegurar que las inscripciones de texto
-y la letra de las canciones se mantienen dentro de los márgenes,
-requiere cálculos adicionales.  En caso de que desee un proceso
-ligeramente más rápido, puede utilizar
+La comprobación necesaria para asegurar que las inscripciones de
+texto y la letra de las canciones se mantienen dentro de los
+márgenes, requiere cálculos adicionales.  En caso de que desee un
+proceso ligeramente más rápido, puede utilizar
 
 @example
 \override Score.PaperColumn.keep-inside-line = ##f
@@ -152,10 +152,11 @@ ligeramente más rápido, puede utilizar
 @cindex texto, elementos de extensión
 
 Ciertas indicaciones de ejecución, p.ej., @i{rallentando} o
-@i{accelerando}, se escriben como texto y se extienden sobre muchos
-compases mediante líneas de puntos.  Estos objetos, que reciben el
-nombre de @q{spanners} u objetos de extensión, se pueden crear desde
-una nota hasta otra usando la siguiente sintaxis:
+@i{accelerando}, se escriben como texto y se extienden sobre
+muchos compases mediante líneas de puntos.  Estos objetos, que
+reciben el nombre de @q{spanners} u objetos de extensión, se
+pueden crear desde una nota hasta otra usando la siguiente
+sintaxis:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -169,10 +170,11 @@ una nota hasta otra usando la siguiente sintaxis:
 @cindex formato de los elementos de extensión de texto
 
 @noindent
-La cadena de texto que imprimir se establece a través de propiedades
-de objeto.  De forma predeterminada se imprime en estilo cursiva, pero
-se pueden conseguir distintos efectos de formato utilizando bloques
-@code{\markup}, como se describe en @ref{Formatear el texto}.
+La cadena de texto que imprimir se establece a través de
+propiedades de objeto.  De forma predeterminada se imprime en
+estilo cursiva, pero se pueden conseguir distintos efectos de
+formato utilizando bloques @code{\markup}, como se describe en
+@ref{Formatear el texto}.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -183,9 +185,9 @@ se pueden conseguir distintos efectos de formato utilizando bloques
 }
 @end lilypond
 
-El estilo de la línea, así como la cadena de texto, se pueden definir
-como una propiedad de objeto.  Esta sintaxis se describe en
-@ref{Estilos de línea}.
+El estilo de la línea, así como la cadena de texto, se pueden
+definir como una propiedad de objeto.  Esta sintaxis se describe
+en @ref{Estilos de línea}.
 
 @funindex \textSpannerUp
 @funindex textSpannerUp
@@ -202,8 +204,8 @@ como una propiedad de objeto.  Esta sintaxis se describe en
 @endpredefined
 
 @knownissues
-LilyPond sólo puede manejar un objeto de extensión de texto por cada
-voz.
+LilyPond sólo puede manejar un objeto de extensión de texto por
+cada voz.
 
 @snippets
 @lilypondfile[verbatim,quote,texidoc,doctitle]
@@ -251,15 +253,18 @@ sintaxis que se describe en @ref{Llamadas de ensayo}:
 
 @lilypond[verbatim,quote]
 \relative {
-  c''4
-  \mark "Allegro"
-  c c c
+  \mark "Verse"
+  c'2 g'
+  \bar "||"
+  \mark "Chorus"
+  g2 c,
+  \bar "|."
 }
 @end lilypond
 
 Esta sintaxis posibilita colocar cualquier texto sobre la línea
-divisoria; se pueden incorporar formatos más complejos para el texto
-usando un bloque @code{\markup}, como está explicado en
+divisoria; se pueden incorporar formatos más complejos para el
+texto usando un bloque @code{\markup}, como está explicado en
 @ref{Formatear el texto}:
 
 @lilypond[quote,verbatim]
@@ -286,11 +291,12 @@ correspondiente como se explica en
 @end lilypond
 
 @noindent
-Estos objetos se tipografían solamente sobre el pentagrama superior de
-la partitura; dependiendo de si están especificados al final o en
-medio de un compás, se colocarán sobre la línea divisoria o entre las
-notas.  Si se especifican en un salto de línea, las llamadas se
-imprimen al principio de la línea siguiente.
+Estos objetos se tipografían solamente sobre el pentagrama
+superior de la partitura; dependiendo de si están especificados al
+final o en medio de un compás, se colocarán sobre la línea
+divisoria o entre las notas.  Si se especifican en un salto de
+línea, las llamadas se imprimen al principio de la línea
+siguiente.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative c'' {
@@ -349,9 +355,10 @@ Referencia de funcionamiento interno:
 @funindex \markup
 @funindex markup
 
-Un bloque @code{\markup} puede existir de forma independiente, fuera
-de cualquier bloque @code{\score}, como una @qq{expresión de nivel
-superior}.  Esta sintaxis se describe en @ref{Estructura del archivo}.
+Un bloque @code{\markup} puede existir de forma independiente,
+fuera de cualquier bloque @code{\score}, como una @qq{expresión de
+nivel superior}.  Esta sintaxis se describe en
+@ref{Estructura del archivo}.
 
 @lilypond[verbatim,quote]
 \markup {
@@ -362,7 +369,8 @@ superior}.  Esta sintaxis se describe en @ref{Estructura del archivo}.
 @noindent
 Esto hace posible imprimir texto separado de la música, lo que es
 especialmente útil cuando el archivo de entrada contiene varias
-piezas, tal y como se describe en @ref{Varias partituras en un libro}.
+piezas, tal y como se describe en
+@ref{Varias partituras en un libro}.
 
 @lilypond[quote,verbatim]
 \score {
@@ -379,7 +387,8 @@ piezas, tal y como se describe en @ref{Varias partituras en un libro}.
 Los bloques de texto independientes pueden abarcar varias páginas,
 posibilitando la impresión de documentos de texto o libros
 íntegramente desde LilyPond.  Esta funcionalidad y la sintaxis que
-requiere se describen en @ref{Elementos de marcado de varias páginas}.
+requiere se describen en
+@ref{Elementos de marcado de varias páginas}.
 
 
 @funindex \markup
@@ -447,17 +456,17 @@ sintaxis ampliable que se denomina @qq{modo de marcado}.
 @cindex marcado, sintaxis
 @cindex sintaxis del marcado
 
-La sintaxis del marcado es similar a la sintaxis usual de LilyPond:
-una expresión @code{\markup} se encierra entre llaves
+La sintaxis del marcado es similar a la sintaxis usual de
+LilyPond: una expresión @code{\markup} se encierra entre llaves
 @code{@{ @dots{} @}}.  Una sola palabra se considera como una
 expresión mínima, y por tanto no necesita estar encerrada entre
 llaves.
 
-A diferencia de las indicaciones de @qq{texto entrecomillado} simples,
-los bloques @code{\markup} pueden contener expresiones anidadas o
-instrucciones de marcado, que se introducen utilizando el carácter de
-barra invertida @code{\} . Estas instrucciones sólo afectan a la
-expresión que sigue inmediatamente.
+A diferencia de las indicaciones de @qq{texto entrecomillado}
+simples, los bloques @code{\markup} pueden contener expresiones
+anidadas o instrucciones de marcado, que se introducen utilizando
+el carácter de barra invertida @code{\} . Estas instrucciones sólo
+afectan a la expresión que sigue inmediatamente.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -477,12 +486,13 @@ expresión que sigue inmediatamente.
 @cindex impresión de caracteres especiales
 @cindex texto entrecomillado en modo de marcado
 
-Un bloque @code{\markup} puede contener también cadenas de texto entre
-comillas.  Dichas cadenas se tratan como expresiones de texto mínimas,
-y por tanto cualquier instrucción de marcado o carácter especial (como
-@code{\} y@tie{}@code{#}) se imprimen literalmente sin afectar al formateo
-del texto.  Se puede hacer que se impriman las propias comillas si se
-les antepone una barra invertida.
+Un bloque @code{\markup} puede contener también cadenas de texto
+entre comillas.  Dichas cadenas se tratan como expresiones de
+texto mínimas, y por tanto cualquier instrucción de marcado o
+carácter especial (como @code{\} y@tie{}@code{#}) se imprimen
+literalmente sin afectar al formateo del texto.  Se puede hacer
+que se impriman las propias comillas si se les antepone una barra
+invertida.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -492,12 +502,12 @@ les antepone una barra invertida.
 }
 @end lilypond
 
-Para que se traten como una expresión distinta, es necesario que las
-listas de palabras estén encerradas entre comillas o precedidas de una
-instrucción.  La forma en que están definidas las expresiones de
-marcado afecta a cómo se apilan, se centran y se alinean estas
-expresiones; en el ejemplo siguiente, la segunda expresión
-@code{\markup} se trata igual que la primera:
+Para que se traten como una expresión distinta, es necesario que
+las listas de palabras estén encerradas entre comillas o
+precedidas de una instrucción.  La forma en que están definidas
+las expresiones de marcado afecta a cómo se apilan, se centran y
+se alinean estas expresiones; en el ejemplo siguiente, la segunda
+expresión @code{\markup} se trata igual que la primera:
 
 @lilypond[quote,verbatim]
 \relative c'' {
@@ -508,8 +518,8 @@ expresiones; en el ejemplo siguiente, la segunda expresión
 }
 @end lilypond
 
-Los marcados se pueden almacenar dentro de variables.  Estas variables
-se pueden adjuntar directamente a las notas:
+Los marcados se pueden almacenar dentro de variables.  Estas
+variables se pueden adjuntar directamente a las notas:
 
 @lilypond[quote,verbatim]
 allegro = \markup { \bold \large Allegro }
@@ -554,8 +564,8 @@ confusión.
 @funindex \underline
 @funindex underline
 
-Está contemplado de forma básica el cambio de la fuente tipográfica en
-el modo de marcado:
+Está contemplado de forma básica el cambio de la fuente
+tipográfica en el modo de marcado:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -606,8 +616,8 @@ Se puede establecer a un tamaño relativo al valor anterior,
 }
 @end lilypond
 
-Se puede aumentar o disminuir de forma relativa al valor fijado por el
-tamaño global del pentagrama,
+Se puede aumentar o disminuir de forma relativa al valor fijado
+por el tamaño global del pentagrama,
 
 @lilypond[quote,verbatim]
 \relative b' {
@@ -628,6 +638,15 @@ independientemente del tamaño global del pentagrama,
 }
 @end lilypond
 
+Si el texto incluye espacios, es mejor escribir todo entre
+comillas, de forma que el tamaño de cada espacio sea correcto para
+el tamaño de los otros caracteres.
+
+@lilypond[quote,verbatim]
+\markup \fontsize #6 \bold { Sinfonia da camera }
+\markup \fontsize #6 \bold { "Sinfonia da camera" }
+@end lilypond
+
 @cindex subíndice
 @cindex superíndice
 
@@ -639,8 +658,8 @@ independientemente del tamaño global del pentagrama,
 @funindex normal-size-super
 
 El texto se puede imprimir como subíndice o como superíndice.  De
-forma predeterminada se imprimen en un tamaño menor, pero también se
-puede usar un tamaño normal:
+forma predeterminada se imprimen en un tamaño menor, pero también
+se puede usar un tamaño normal:
 
 @lilypond[quote,verbatim]
 \markup {
@@ -655,10 +674,10 @@ puede usar un tamaño normal:
 @cindex fuente tipográfica, familias de
 
 El modo de marcado ofrece una manera fácil de elegir familias de
-tipografía alternativas.  A no ser que se especifique de otro modo, se
-selecciona automáticamente la fuente predeterminada con serifa, de
-tipo romano: en la última línea del ejemplo siguiente, no hay
-diferencia entre la primera y la segunda palabra.
+tipografía alternativas.  A no ser que se especifique de otro
+modo, se selecciona automáticamente la fuente predeterminada con
+serifa, de tipo romano: en la última línea del ejemplo siguiente,
+no hay diferencia entre la primera y la segunda palabra.
 
 @lilypond[quote,verbatim]
 \markup {
@@ -680,10 +699,10 @@ números o matices, no ofrecen todos los caracteres, como se explica en
 @c \concat is actually documented in Align (it is not
 @c a font-switching command).  But we need it here. -vv
 
-Si se usan dentro de una palabra, algunas instrucciones de cambio de
-tipografía o de formateo pueden producir un espacio vacío no deseado.
-Esto se puede solucionar concatenando en uno solo los distintos
-elementos de texto:
+Si se usan dentro de una palabra, algunas instrucciones de cambio
+de tipografía o de formateo pueden producir un espacio vacío no
+deseado.  Esto se puede solucionar concatenando en uno solo los
+distintos elementos de texto:
 
 @lilypond[quote,verbatim]
 \markup {
@@ -700,11 +719,12 @@ elementos de texto:
 }
 @end lilypond
 
-Se puede encontrar una lista exhaustiva de instrucciones de cambio y
-utilización personalizada de las fuentes tipográficas en @ref{Font}.
+Se puede encontrar una lista exhaustiva de instrucciones de cambio
+y utilización personalizada de las fuentes tipográficas en
+@ref{Font}.
 
-También es posible definir conjuntos personalizados de fuentes, tal y
-como se explica en @ref{Tipografías}.
+También es posible definir conjuntos personalizados de fuentes,
+tal y como se explica en @ref{Tipografías}.
 
 @funindex \teeny
 @funindex teeny
@@ -753,10 +773,9 @@ Referencia de funcionamiento interno:
 
 @knownissues
 La utilización de las instrucciones de tamaño de texto
-@code{\teeny}, @code{\tiny},
-@code{\small}, @code{\normalsize}, @code{\large} y
-@code{\huge} conducen a un espaciado de las líneas inconsistente
-comparado con el uso de @code{\fontsize}.
+@code{\teeny}, @code{\tiny}, @code{\small}, @code{\normalsize},
+@code{\large} y @code{\huge} conducen a un espaciado de las líneas
+inconsistente comparado con el uso de @code{\fontsize}.
 
 
 @node Alineación de texto
@@ -770,9 +789,10 @@ comparado con el uso de @code{\fontsize}.
 @cindex marcado, elementos, alinear
 @cindex marcado, texto, alinear
 
-Esta subsección trata sobre cómo colocar texto en el modo de marcado.
-Los objetos de marcado también se pueden mover como un todo, usando la
-sintaxis que se describe en @rlearning{Mover objetos}.
+Esta subsección trata sobre cómo colocar texto en el modo de
+marcado.  Los objetos de marcado también se pueden mover como un
+todo, usando la sintaxis que se describe en
+@rlearning{Mover objetos}.
 
 @c Padding commands should be mentioned on this page, but
 @c most of these require \box to be more clearly illustrated. -vv
@@ -788,9 +808,9 @@ sintaxis que se describe en @rlearning{Mover objetos}.
 @funindex right-align
 
 Los objetos de marcado se pueden alinear de distintas maneras.  De
-forma predeterminada, una indicación de texto se alinea sobre el borde
-izquierdo: en el ejemplo siguiente, no existe diferencia entre los
-marcados primero y segundo.
+forma predeterminada, una indicación de texto se alinea sobre el
+borde izquierdo: en el ejemplo siguiente, no existe diferencia
+entre los marcados primero y segundo.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -824,9 +844,9 @@ valor numérico:
 
 @noindent
 Ciertos objetos pueden poseer sus propios procedimientos de
-alineación, y por tanto no resultan afectados por estas instrucciones.
-Es posible mover estos objetos de marcado como un todo, como se
-muestra por ejemplo en @ref{Indicaciones de texto}.
+alineación, y por tanto no resultan afectados por estas
+instrucciones.  Es posible mover estos objetos de marcado como un
+todo, como se muestra por ejemplo en @ref{Indicaciones de texto}.
 
 @cindex texto, alineación vertical
 @cindex vertical, alineación de texto
@@ -838,14 +858,14 @@ muestra por ejemplo en @ref{Indicaciones de texto}.
 @funindex \null
 @funindex null
 
-La alineación vertical es un poco más compleja.  Como se ha dicho más
-arriba, los objetos de marcado se pueden mover como un todo; sin
-embargo, también es posible mover elementos específicos dentro de un
-bloque de marcado.  En este caso, el elemento a mover se debe preceder
-de un @emph{punto de anclaje}, que puede ser otro elemento de marcado
-o un objeto invisible.  El ejemplo siguiente ejemplifica estas dos
-posibilidades; el último marcado en este ejemplo no tiene punto de
-anclaje y por ello no resulta movido.
+La alineación vertical es un poco más compleja.  Como se ha dicho
+más arriba, los objetos de marcado se pueden mover como un todo;
+sin embargo, también es posible mover elementos específicos dentro
+de un bloque de marcado.  En este caso, el elemento a mover se
+debe preceder de un @emph{punto de anclaje}, que puede ser otro
+elemento de marcado o un objeto invisible.  El ejemplo siguiente
+ejemplifica estas dos posibilidades; el último marcado en este
+ejemplo no tiene punto de anclaje y por ello no resulta movido.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -873,10 +893,10 @@ anclaje y por ello no resulta movido.
 @funindex \translate-scaled
 @funindex translate-scaled
 
-Algunas instrucciones pueden afectar tanto a la alineación horizontal
-como a la vertical de los objetos de texto en el modo de marcado.
-Cualquier objeto afectado por estas instrucciones se deben preceder de
-un punto de anclaje:
+Algunas instrucciones pueden afectar tanto a la alineación
+horizontal como a la vertical de los objetos de texto en el modo
+de marcado.  Cualquier objeto afectado por estas instrucciones se
+deben preceder de un punto de anclaje:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -975,8 +995,9 @@ cualquier otra expresión de marcado:
 
 
 Las indicaciones de texto largas se pueden también ajustar
-automáticamente según un ancho de línea dado.  Estarán alineados por
-la izquierda o justificados, como se muestra en el ejemplo siguiente.
+automáticamente según un ancho de línea dado.  Estarán alineados
+por la izquierda o justificados, como se muestra en el ejemplo
+siguiente.
 
 @lilypond[quote,verbatim]
 \markup {
@@ -1008,8 +1029,8 @@ la izquierda o justificados, como se muestra en el ejemplo siguiente.
 @cindex marcado, texto, instrucciones de alineación
 @cindex alineación, instrucciones de texto
 
-Hay una lista exhaustiva de instrucciones de alineación de texto en
-@ref{Align}.
+Hay una lista exhaustiva de instrucciones de alineación de texto
+en @ref{Align}.
 
 @seealso
 Manual de aprendizaje:
@@ -1039,8 +1060,8 @@ Referencia de funcionamiento interno:
 @cindex insertar objetos gráficos
 @cindex gráficos, insertar objetos
 
-Se puede añadir diversos objetos gráficos a una partitura, utilizando
-instrucciones de marcado.
+Se puede añadir diversos objetos gráficos a una partitura,
+utilizando instrucciones de marcado.
 
 @cindex enmarcar texto
 @cindex texto, enmarcar
@@ -1060,8 +1081,9 @@ instrucciones de marcado.
 @funindex \hbracket
 @funindex hbracket
 
-Ciertas instrucciones de marcado permiten la decoración de elementos
-de texto con gráficos, como se muestra en el ejemplo siguiente.
+Ciertas instrucciones de marcado permiten la decoración de
+elementos de texto con gráficos, como se muestra en el ejemplo
+siguiente.
 
 @lilypond[quote,verbatim]
 \markup \fill-line {
@@ -1093,9 +1115,9 @@ de texto con gráficos, como se muestra en el ejemplo siguiente.
 @funindex \pad-around
 @funindex pad-around
 
-Algunas instrucciones pueden requerir un aumento del relleno alrededor
-del texto: esto se puede conseguir con algunas instrucciones de
-marcado descritas exhaustivamente en @ref{Align}.
+Algunas instrucciones pueden requerir un aumento del relleno
+alrededor del texto: esto se puede conseguir con algunas
+instrucciones de marcado descritas exhaustivamente en @ref{Align}.
 
 @lilypond[quote,verbatim]
 \markup \fill-line {
@@ -1169,10 +1191,11 @@ expresiones de marcado, dichos objetos se pueden combinar:
 
 Entre las funcionalidades gráficas avanzadas se encuentran la
 posibilidad de incluir archivos de imagen externos convertidos al
-formato de PostScript Encapsulado (@emph{eps}), y la inclusión directa
-de gráficos dentro del archivo de entrada, usando código PostScript
-nativo.  En tal caso puede ser de utilidad la especificación explícita
-del tamaño del dibujo, como se ejemplifica a continuación:
+formato de PostScript Encapsulado (@emph{eps}), y la inclusión
+directa de gráficos dentro del archivo de entrada, usando código
+PostScript nativo.  En tal caso puede ser de utilidad la
+especificación explícita del tamaño del dibujo, como se
+ejemplifica a continuación:
 
 @lilypond[quote,verbatim,fragment]
 c'1^\markup {
@@ -1194,13 +1217,15 @@ c'1^\markup {
 c'
 @end lilypond
 
-Hay una lista exhaustiva de instrucciones específicas de gráficos en
-@ref{Graphic}.
+Hay una lista exhaustiva de instrucciones específicas de gráficos
+en @ref{Graphic}.
 
 @seealso
 Referencia de la notación:
-@ref{Graphic},
-@ref{Anotaciones editoriales}.
+@ref{Align},
+@ref{Dimensions},
+@ref{Anotaciones editoriales},
+@ref{Graphic}.
 
 Archivos de inicio:
 @file{scm/define-markup-commands.scm},
@@ -1264,10 +1289,10 @@ marcado:
 }
 @end lilypond
 
-De forma más general, cualquier símbolo musical disponible se puede
-incluir por separado dentro de un objeto de marcado, como se
-ejemplifica a continuación; hay una lista exhaustiva de estos símbolos
-y sus nombres en @ref{La tipografía Feta}.
+De forma más general, cualquier símbolo musical disponible se
+puede incluir por separado dentro de un objeto de marcado, como se
+ejemplifica a continuación; hay una lista exhaustiva de estos
+símbolos y sus nombres en @ref{La tipografía Feta}.
 
 @lilypond[quote,verbatim]
 \relative {
@@ -1281,8 +1306,8 @@ y sus nombres en @ref{La tipografía Feta}.
 @end lilypond
 
 Otra forma de imprimir glifos que no son de texto se encuentra
-descrita en @ref{Explicación de las fuentes tipográficas}.  Tiene la
-utilidad de imprimir llaves de distintos tamaños.
+descrita en @ref{Explicación de las fuentes tipográficas}.  Tiene
+la utilidad de imprimir llaves de distintos tamaños.
 
 El modo de marcado también contempla diagramas para instrumentos
 específicos:
@@ -1315,9 +1340,9 @@ Specific Markup}.
 @cindex partitura dentro marcado
 @cindex marcado, partitura dentro de
 
-Incluso una partitura completa se puede incluir dentro de un objeto de
-marcado.  En tal caso, el bloque anidado @code{\score} debe contener
-un bloque @code{\layout}, como se muestra aquí:
+Incluso una partitura completa se puede incluir dentro de un
+objeto de marcado.  En tal caso, el bloque anidado @code{\score}
+debe contener un bloque @code{\layout}, como se muestra aquí:
 
 @lilypond[quote,verbatim]
 \relative {
@@ -1332,8 +1357,8 @@ un bloque @code{\layout}, como se muestra aquí:
 }
 @end lilypond
 
-Hay una lista exhaustiva de instrucciones relacionadas con la notación
-musical en @ref{Music}.
+Hay una lista exhaustiva de instrucciones relacionadas con la
+notación musical en @ref{Music}.
 
 @seealso
 Referencia de la notación:
@@ -1370,8 +1395,8 @@ Referencia de funcionamiento interno:
 @funindex wordwrap-lines
 
 Aunque los objetos de marcado estándar no se pueden dividir, una
-sintaxis específica hace posible la introducción de líneas de texto
-que pueden abarcar varias páginas:
+sintaxis específica hace posible la introducción de líneas de
+texto que pueden abarcar varias páginas:
 
 @c KEEP LY
 @lilypond[quote,verbatim]
@@ -1398,18 +1423,18 @@ una lista de marcados,
 o una lista de listas de marcado.
 @end itemize
 
-Hay una lista exhaustiva de las instrucciones de lista de marcado en
-@ref{Text markup list commands}.
+Hay una lista exhaustiva de las instrucciones de lista de marcado
+en @ref{Instrucciones de listas de marcado de texto}.
 
 @seealso
 Referencia de la notación:
-@ref{Text markup list commands}.
+@ref{Instrucciones de listas de marcado de texto}.
 
 Archivos de inicio:
 @file{scm/define-markup-commands.scm}.
 
 Manual de extensión:
-@rextend{New markup list command definition}.
+@rextend{Definición de nuevas instrucciones de lista de marcado}.
 
 Fragmentos de código:
 @rlsr{Text}.
@@ -1453,9 +1478,10 @@ tipográficas, y cómo se pueden cambiar en las partituras.
 
 @funindex font-interface
 
-Las fuentes tipográficas se manejan a través de distintas bibliotecas.
-FontConfig se utiliza para detectar las tipografías disponibles en el
-sistema; las tipografías seleccionadas se trazan utilizando Pango.
+Las fuentes tipográficas se manejan a través de distintas
+bibliotecas.  FontConfig se utiliza para detectar las tipografías
+disponibles en el sistema; las tipografías seleccionadas se trazan
+utilizando Pango.
 
 Las tipografías de notación musical se pueden describir como un
 conjunto de glifos específicos, ordenados en varias familias.  La
@@ -1477,39 +1503,41 @@ a'1^\markup {
 @end lilypond
 
 @noindent
-Sin embargo, todos estos glifos excepto las llaves de varios tamaños
-que están contenidas en la fuente tipográfica @code{fetaBraces} están
-disponibles utilizando la sintaxis más sencilla que se describe en
+Sin embargo, todos estos glifos excepto las llaves de varios
+tamaños que están contenidas en la fuente tipográfica
+@code{fetaBraces} están disponibles utilizando la sintaxis más
+sencilla que se describe en
 @ref{Notación musical dentro de elementos de marcado}.
 
-Cuando se usan los glifos de la fuente de llaves @code{fetaBraces}, el
-tamaño de la llave se especifica por la parte numérica del nombre del
-glifo, en unidades arbitrarias.  Se puede especificar cualquier entero
-de @code{0} a @code{575} inclusive, siendo @code{0} el que produce la
-llave más pequeña.  El valor óptimo se debe determinar por ensayo y
-error.  Todos estos glifos son llaves izquierdas; las llaves derechas
-se pueden obtener mediante rotación, véase @ref{Rotación de objetos}.
-
-Están disponibles tres familias de tipografías de texto: la tipografía
-@emph{romana} (con serifa), que de forma predeterminada es New Century
-Schoolbook, la fuente @emph{sans} y la fuente monoespaciada
-@emph{de máquina de escribir}.  Estas dos últimas familias vienen
-determinadas por la instalación de Pango.
-
-@warning{No existen fuentes tipográficas predeterminadas asociadas
-con las familias de fuente @emph{sans} y @emph{typewriter}.  Un
-archivo de entrada que especifica alguna de éstas puede dar lugar
-a salidas diferentes en distintos sistemas.  Para asegurar un
-resultado consistente entre distintas plataformas, se deben
-especificar las tipografías por su nombre, y dichas fuentes deben
-estar disponibles en cualquier sistema que vaya a procesar el
-documento.  Véase @ref{Fuentes de un solo elemento} y
-@ref{Fuentes tipográficas del documento completo}.}
+Cuando se usan los glifos de la fuente de llaves
+@code{fetaBraces}, el tamaño de la llave se especifica por la
+parte numérica del nombre del glifo, en unidades arbitrarias.  Se
+puede especificar cualquier entero de @code{0} a @code{575}
+inclusive, siendo @code{0} el que produce la llave más pequeña.
+El valor óptimo se debe determinar por ensayo y error.  Todos
+estos glifos son llaves izquierdas; las llaves derechas se pueden
+obtener mediante rotación, véase @ref{Rotación de objetos}.
+
+Están disponibles tres familias de fuentes tipográficas para el
+texto:
+@itemize
+@item
+La fuente @emph{roman} (serif), que de forma predeterminada es
+LilyPond Serif (un alias de TeX Gyre Schola).
+@item
+La fuente @emph{sans}, que de forma predeterminada es LilyPond
+Sans Serif (un alias de TeX Gyre Heros).
+@item
+La fuente @emph{typewriter} mecanográfica (monoespaciada), que de
+forma predeterminada es LilyPond Monospace (un alias de TeX Gyre
+Cursor).
+@end itemize
 
 Cada familia puede incluir distintas formas y series.  El ejemplo
 siguiente muestra la posibilidad de seleccionar familias, formas,
-series y tamaños alternativos.  El valor que se da a @code{font-size}
-es el cambio requerido a partir del tamaño predeterminado.
+series y tamaños alternativos.  El valor que se da a
+@code{font-size} es el cambio requerido a partir del tamaño
+predeterminado.
 
 @lilypond[quote,verbatim,fragment]
 \override Score.RehearsalMark.font-family = #'typewriter
@@ -1522,9 +1550,9 @@ c''4^smaller
 @end lilypond
 
 @noindent
-Se puede usar una sintaxis similar en el modo de marcado, aunque en
-este caso es preferible usar la sintaxis sencilla que se explica en
-@ref{Seleccionar la tipografía y su tamaño}:
+Se puede usar una sintaxis similar en el modo de marcado, aunque
+en este caso es preferible usar la sintaxis sencilla que se
+explica en @ref{Seleccionar la tipografía y su tamaño}:
 
 @lilypond[quote,verbatim]
 \markup {
@@ -1550,7 +1578,8 @@ este caso es preferible usar la sintaxis sencilla que se explica en
 
 Aunque es fácil cambiar entre las fuentes tipográficas
 preconfiguradas, también es posible usar otras fuentes, como se
-explica en las siguientes secciones: @ref{Fuentes de un solo elemento} y
+explica en las siguientes secciones:
+@ref{Fuentes de un solo elemento} y
 @ref{Fuentes tipográficas del documento completo}.
 
 @seealso
@@ -1566,8 +1595,8 @@ Referencia de la notación:
 @unnumberedsubsubsec Fuentes de un solo elemento
 @translationof Single entry fonts
 
-Se puede usar en una partitura cualquier fuente tipográfica que esté
-instalada en el sistema operativo y reconocida por parte de
+Se puede usar en una partitura cualquier fuente tipográfica que
+esté instalada en el sistema operativo y reconocida por parte de
 FontConfig, usando la siguiente sintaxis:
 
 @lilypond[quote,verbatim,fragment]
@@ -1586,10 +1615,18 @@ a'1_\markup {
 @cindex listar fuentes tipográficas disponibles
 @cindex disponibles, listar las fuentes tipográficas
 
+@var{font-name} puede describirse usando una lista de @q{fuentes
+tipográfcias} separadas por comas y una lista de @q{estilos}
+separados por espacios.  En la medida en que la @q{fuente
+tipográfica} de la lista esté instalada y contenga el glifo
+solicitado, se usará.  En caso contrario, se usará como
+sustitución la @emph{siguiente} fuente tipográfica de la lista.
+
 @funindex show-available-fonts
 
-La instrucción siguiente presenta una lista de todas las tipografías
-disponibles en el sistema operativo:
+La ejecución de lilypond con la opción siguiente presenta una
+lista de todas las tipografías disponibles en el sistema
+operativo:
 
 @example
 lilypond -dshow-available-fonts x
@@ -1615,10 +1652,14 @@ Fragmentos de código:
 Se pueden cambiar las fuentes tipográficas que se usan como
 tipografías predeterminadas en las familias @emph{romana},
 @emph{sans-serif} y @emph{monoespaciada}, especificándolas en este
-orden como se ve en el ejemplo de abajo, que escala las tipografías
-automáticamente con el valor fijado para el tamaño global del pentagrama.
-Para leer más explicaciones
-sobre las fuentes tipográficas, consulte @ref{Explicación de las fuentes tipográficas}.
+orden como se ve en el ejemplo de abajo, que escala las
+tipografías automáticamente con el valor fijado para el tamaño
+global del pentagrama.  De forma parecida a
+@ref{Fuentes de un solo elemento}, se puede describir usando una
+lista de @q{fuentes tipográficas} separadas por comas.  Sin
+embargo, los @q{estilos} de fuente no se pueden describir.  Para
+leer más explicaciones sobre las fuentes tipográficas, consulte
+@ref{Explicación de las fuentes tipográficas}.
 
 @cindex fuente, establecer la familia de
 @cindex fuentes tipográficas, cambiar para todo el documento
index 0668b2bd06c18c9dd45ba77764bf18fd9f08f826..ebcb99b0d2d0a03ccaa0a89163e8b32d079cace5 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Actualizado en Fri Jan  1 10:40:27 UTC 2016
+@emph{Actualizado en Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -30,7 +30,7 @@ Registro de cambios de LilyPond
 @item
 Títulos de sección
 @*
-2037
+2171
 @tab Francisco Vila
 @tab 
 @tab 
@@ -47,7 +47,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #ff7855">parcialmente</span>
+<span style="background-color: #2cff20">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -113,11 +113,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -167,11 +167,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -194,11 +194,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @end multitable
@@ -233,11 +233,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -270,7 +270,7 @@ sí
 @item
 A Tutorial de Scheme
 @*
-6331
+6316
 @tab Francisco Vila
 @tab 
 @tab 
@@ -287,11 +287,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -314,11 +314,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #6fff29">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @end multitable
@@ -353,11 +353,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -407,17 +407,17 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
 2 Notación corriente
 @*
-4443
+4437
 @tab Francisco Vila
 @tab 
 @tab 
@@ -434,11 +434,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -461,38 +461,38 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
 4 Trucar la salida
 @*
-16577
+16622
 @tab Francisco Vila
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">parcialmente (98 %)</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente (98 %)
+sí
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -505,21 +505,21 @@ A Plantillas
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">parcialmente (97 %)</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente (97 %)
+sí
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @end multitable
@@ -554,11 +554,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #40fe23">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -618,7 +618,7 @@ sí
 @item
 1.1 Alturas
 @*
-5203
+5202
 @tab Francisco Vila
 @tab 
 @tab 
@@ -635,11 +635,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -662,11 +662,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -753,7 +753,7 @@ parcialmente
 @item
 1.6 Notación de los pentagramas
 @*
-2399
+2576
 @tab Francisco Vila
 @tab 
 @tab 
@@ -770,7 +770,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #8aff2d">parcialmente</span>
+<span style="background-color: #9eff30">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -942,7 +942,7 @@ parcialmente
 @item
 2.4 Instrumentos de cuerda con trastes
 @*
-2756
+2842
 @tab Francisco Vila
 @tab 
 @tab 
@@ -959,7 +959,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #39ff22">parcialmente</span>
+<span style="background-color: #40fe23">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1131,34 +1131,34 @@ parcialmente
 @item
 3 Entrada y salida generales
 @*
-12717
+12715
 @tab Francisco Vila
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">parcialmente (98 %)</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente (98 %)
+sí
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #c7ff35">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
 4 Problemas de espaciado
 @*
-10884
+10895
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1175,7 +1175,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">parcialmente</span>
+<span style="background-color: #8aff2d">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1185,24 +1185,24 @@ parcialmente
 @item
 5 Cambiar los valores por omisión
 @*
-15581
+15610
 @tab Francisco Vila
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">parcialmente (99 %)</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente (99 %)
+sí
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">parcialmente</span>
+<span style="background-color: #2cff20">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1229,11 +1229,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1295,11 +1295,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1332,24 +1332,24 @@ sí
 @item
 1 Ejecutar LilyPond
 @*
-5401
+5425
 @tab Francisco Vila
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">parcialmente (95 %)</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente (95 %)
+sí
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">parcialmente</span>
+<span style="background-color: #2cff20">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1359,7 +1359,7 @@ parcialmente
 @item
 2 Actualizar ficheros con @command{convert-ly}
 @*
-1865
+1866
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1376,11 +1376,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #ffe241">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1496,11 +1496,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1533,7 +1533,7 @@ sí
 @item
 Introducción
 @*
-5816
+5815
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1550,7 +1550,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #acff31">parcialmente</span>
+<span style="background-color: #b9ff33">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1577,11 +1577,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">parcialmente</span>
+<span style="background-color: #1fff1f">sí</span>
 @end html
 @end ifhtml
 @ifnothtml
-parcialmente
+sí
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1614,7 +1614,7 @@ sí
 @item
 Comunidad
 @*
-3004
+3522
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1631,7 +1631,7 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">parcialmente</span>
+<span style="background-color: #6fff29">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
index e1fd23af0dfc5a29f592bf2659b294ddcaf203e8..c1399caaa5a745962b8a469d560908dafeba3538 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 08560a1b8076630c4fc6cb9b902614d8b74fd6fc
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -21,7 +21,12 @@ con LilyPond versión @version{}.  Además sugiere ciertas @qq{buenas
 prácticas} para una utilización eficiente.
 @end macro
 
-@c `Usage' was born 1999-10-10 with git commit c82c30c...
+@c `Usage' was born 1999-10-11 with this commit:
+@c release: 1.2.13
+@c author: Han-Wen Nienhuys
+@c commit: 0cf97b5cdceecbba937f43ac827f4065aad5001e
+@c   file: Documentation/user/invoking.itexi
+
 @macro copyrightDeclare
 Copyright @copyright{} 1999--2015 por los autores.
 @end macro
index a55d99bb1bc70927a314571a3173634fffd91395..62ec414ffce60a04f8419bc751fcd38f2fdeeac9 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 93d725094ee629b2d5200ab5a75b609579a62973
+    Translation of GIT committish: 8706e77a804e412e751fdd47385c8ccfdc28e732
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -59,7 +59,7 @@ documentos sobre este tema si no le resulta familiar la línea de
 
 @menu
 * Invocar a LilyPond::
-* Opciones básicas de la línea de órdenes para LilyPond::
+* Opciones de LilyPond básicas de la línea de órdenes::
 * Opciones avanzadas de línea de órdenes para LilyPond::
 * Variables de entorno::
 * LilyPond en una jaula de chroot::
@@ -101,47 +101,130 @@ base y el número.  Un archivo de entrada que contenga
 @end example
 
 @noindent
-producirá como salida @var{base}@file{-violin.pdf} y
+produce como salida @var{base}@file{-violin.pdf} y
 @var{base}@file{-cello-1.pdf}.
 
 
-@unnumberedsubsubsec Instrucciones estándar de la línea de órdenes
+@unnumberedsubsubsec Uso de LilyPond con las posibilidades básicas del shell
 
-Si su terminal (o ventana de órdenes) contempla las redirecciones
-normales, quizá le sean de utilidad las siguientes instrucciones para
-redirigir la salida de la consola a un archivo:
+Dado que LilyPond es una aplicación de consola, las posibilidades
+del @q{shell} usado para la llamada a LilyPond también pueden
+aprovecharse.
 
-@itemize
+Por ejemplo:
 
-@item
-@code{lilypond archivo.ly 1>salidaestandar.log} para redirigir la salida normal
+@example
+lilypond *.ly
+@end example
 
-@item
-@code{lilypond archivo.ly 2>salidadeerror.log} para redirigir los mensajes de error
+@noindent
+procesa todos los archivos de LilyPond dentro del directorio
+actual.
 
-@item
-@code{lilypond archivo.ly &>todo.log} para redirigir toda la salida
+También puede ser útil redireccionar la salida de consola
+(p.ej. hacia un archivo):
 
-@end itemize
+@example
+lilypond file.ly 1> salida_estandar.txt
+
+lilypond file.ly 2> error_estandar.txt
+
+lilypond file.ly &> todo.txt
+@end example
+
+@noindent
+Redirecciona la salida @q{normal}, solo los @q{errores} o
+@q{todo}, respectivamente, hacia un archivo de texto.  Consulte la
+documentación de su shell concreto, Command (Windows), las
+aplicaciones Terminal o Console (MacOS X) para ver si el
+redireccionamiento de la salida está contemplado o si la sintaxis
+es distinta.
+
+El ejemplo siguiente busca y procesa todos los archivos de
+entradas que estén en el directorio actual y en todos los que
+están por debajo de él, recursivamente.  Los archivos de salida se
+pondrán en el mismo directorio desde el que se ejecutó la
+instrucción, en lugar de aquellos en los que estaban los archivos
+de entrada originales.
+
+@example
+find . -name '*.ly' -exec lilypond '@{@}' \;
+@end example
+
+@noindent
+También debe funcionar para los usarios de MacOS@tie{}X.
+
+Un usuario de Windows haría los siguiente:
+
+@example
+forfiles /s /M *.ly /c "cmd /c lilypond @@file"
+@end example
+
+@noindent
+introduciendo esstas instrucciones desde un @code{indicador de
+órdenes} que normalmente está en @code{Inicio > Accessorios >
+Símbolo del sistema} o para los usuarios de la versión 8,
+escribiendo en la ventana de búsqueda @q{indicador de órdenes}.
+
+De forma alternativa, una ruta explícita al nivel superior de su
+carpeta que contenga todas las subcarpetas con archivos de entrada
+en su interior se puede especificat mediante la opción @code{/p};
 
-Consulte la documentación de su shell para ver si contempla estas
-opciones, o si la sintaxis es distinta.  Observe que son instrucciones
-del shell y que no tienen nada que ver con lilypond.
+@example
+forfiles /s /p C:\Documentos\MisPartituras /M *.ly /c "cmd /c lilypond @@file"
+@end example
+
+Si el nombre de la ruta del directorio de nivel superior contiene
+espacios, entonces es necesario incluir toda la ruta entre
+comillas:
+
+@example
+forfiles /s /p "C:\Documentos\Mis Partituras" /M *.ly /c "cmd /c lilypond @@file"
+@end example
 
 
-@node Opciones básicas de la línea de órdenes para LilyPond
-@unnumberedsubsec Opciones básicas de la línea de órdenes para LilyPond
+@node Opciones de LilyPond básicas de la línea de órdenes
+@unnumberedsubsec Opciones de LilyPond básicas de la línea de órdenes
 @translationof Basic command line options for LilyPond
 
-@cindex invocación de @command{lilypond}
+@cindex Invoca a @command{lilypond}
 @cindex opciones de la línea de órdenes para @command{lilypond}
-@cindex línea de órdenes, opciones de
-@cindex modificadores
+@cindex opciones, línea de órdenes
+@cindex opciones
 
 Están contempladas las siguientes opciones:
 
 @table @code
 
+@item -b, --bigpdfs
+@cindex bigpdfs
+
+Los archivos PDF generados serán mucho más grandes de lo normal (a
+causa de la poca o ninguna optimización de las fuentes
+tipográficas).  Sin embargo, si dos o más archivos PDF se incluyen
+dentro de @w{@code{pdftex}}, @w{@code{xetex}} o @w{@code{luatex}}
+los documentos producidos pueden procesarse después a través de
+ghostscript (mezclando los datos de tipografías duplicados) dando
+como resultado archivos PDF @emph{significativamente} más
+pequeños.
+
+@example
+lilypond -b archivo
+@end example
+
+Después, ejecute @code{ghostscript};
+
+@example
+gs -q -sDEVICE=pdfwrite -o gsout.pdf archivo.pdf
+@end example
+
+Se puede entonces usar @code{pdfsizeopt.py} para optimizar aún más
+el tamaño del archivo:
+
+@example
+pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
+@end example
+
 @item -d, --define-default=@var{variable}=@var{valor}
 Véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}.
 
@@ -361,8 +444,10 @@ Mostrar la garantía con que viene GNU LilyPond (¡no viene con
 
 @table @code
 
-@item -d@var{[option-name]}=@var{[value]}, --define-default=@var{[option-name]}=@var{[value]}
+@item -d@var{[option-name]}=@var{[value]},
+--define-default=@var{[option-name]}=@var{[value]}
 Establece la función de Scheme interna equivalente a @var{valor}.
+Por ejemplo:
 
 @example
 -dbackend=svg
@@ -370,18 +455,18 @@ Establece la función de Scheme interna equivalente a @var{valor}.
 
 Si no se proporciona ningún @var{valor}, se usa el valor predeterminado.
 Para desactivar una opción se puede anteponer @code{no-} a la
-@var{variable}, p.ej.:
+@var{variable}.  Por ejemplo:
 
 @cindex point and click, command line
 
 @example
--dno-point-and-click
+-dpoint-and-click=#f
 @end example
 
 @noindent
 is the same as
 @example
--dpoint-and-click=#f
+-dno-point-and-click
 @end example
 @end table
 
@@ -395,61 +480,92 @@ valores predeterminados:
 
 @item @code{anti-alias-factor} (factor de antialias)
 @tab @code{1}
-@tab Renderizar a mayor resolución (utilizando el factor dado) y reducir la
-escala del resultado para así evitar @q{escaleras} en las imágenes
-@code{PNG}.
+@tab Renderizar a mayor resolución (utilizando el factor dado)
+y reducir la escala del resultado para así evitar @q{escaleras} en
+las imágenes @code{PNG}.
 
 @item @code{aux-files} (archivos auxiliares)
 @tab @code{#t}
-@tab Crear archivos @code{.tex}, @code{.texi}, @code{.count} en el
-@q{back-end} @code{EPS}.
+@tab Crear archivos @code{.tex}, @code{.texi} y @code{.count}
+cuando se usa con la opción de @q{back-end} @code{EPS}.
 
 @item @code{backend}
 @tab @code{ps}
-@tab Seleccionar un @q{back-end}.  Los archivos (la opción predeterminada)
-incluyen las fuentes tipográficas @code{TTF}, @code{Type1} y
-@code{OTF}.  No se hace ningún subconjunto de estas fuentes.  El uso
-de conjuntos de caracteres @q{orientales} puede dar lugar a archivos
-muy grandes.
+@tab Es el ajuste predeterminado.
+Los archivos Postscript (la opción predeterminada) incluyen las
+fuentes tipográficas @code{TTF}, @code{Type1} y @code{OTF}.  No se
+hace ningún subconjunto de estas fuentes.  Tenga en cuenta que el
+uso de conjuntos de caracteres @q{orientales} puede dar lugar a
+archivos muy grandes.
 
 @item
 @tab @code{eps}
-@tab PostScript encapsulado.  Vuelca cada página o sistema como un archivo
-@file{EPS} distinto, sin fuentes tipográficas, y como un archivo
-@file{EPS} encuadernado con todas las páginas o sistemas que incluye
-las fuentes.  Utilizado como opción predeterminada por parte de
-@command{lilypond-book}.
+@tab Usado como opción predeterminada por la instrucción @command{lilypond-book}.
+Vuelca cada página al mismo tiempo como un solo archivo con todas
+las ṕaginas y fuentes tipográficas incluidas y como archivos
+postscript separados para cada página pero sin las fuentes
+tipográficas incluidas.
 
 @item
 @tab @code{null}
 @tab No producir ninguna partitura impresa a la salida; tiene el mismo
 efecto que @code{-dno-print-pages}.
 
-@item
-@tab @code{svg}
-@tab Grácifos vectoriales escalables.  Crea un solo archivo @code{SVG}, sin
-fuentes tipográficas incrustadas, por cada página de salida.  Se
-recomienda instalar las fuentes Century Schoolbook, incluidas con la
-instalación de LilyPond, para un renderizado óptimo.  Bajo UNIX,
-bastará con que copie estaos archivos de fuente del directorio de
-LilyPond (normalmente @file{/usr/share/lilypond/VERSION/fonts/otf/})
-al directorio @file{~/.fonts/}.  La salida @code{SVG} debería ser
-compatible con cualquier editor o cliente de SVG.  También hay una
-opción @code{svg-woff} (véase más abajo) para usar los archivos de
-fuente woff en el @q{back-end} SVG.
-
 @item
 @tab @code{scm}
 @tab Volcado de las instrucciones de dibujo internas basadas en Scheme, en
 bruto.
 
+@item
+@tab @code{svg}
+@tab Gráficos vectoriales escalables.
+Por cada página de la salida, se crea un solo archivo @code{SVG}.
+Aparte de los glifos musicales propios de LilyPond, no se incluye
+ninguna otra información de fuente tipográfica.  Por tanto,
+cualquier visor de SVG necesita tener las fuentes disponibles para
+la correcta representación tanto del texto como de la letra. Se
+recomienda no utilizar @q{alias} ni @q{listas} de fuentes
+tipográficas por si acaso el visor de SVG no es capaz de
+manejarlas.  Al usar archivos de fuente abierta para la web
+@emph{Web Open Font Format} (WOFF), es necesario indicar la opción
+@code{--svg-woff}.
+@end multitable
+
+@noindent
+@strong{Nota para el backend de salida svg:}
+
+Las fuentes predeterminadas de LilyPond (@code{LilyPond Serif},
+@code{LilyPond Sans Serif} y @code{LilyPond Monospace}) son
+solamente alias de fuente @emph{locales}.  Por ello, al usar la
+instrucción de backend @code{svg} debemos definir explícitamente
+las fuentes predeterminadas en el archivo de entrada:
+
+@quotation
+@verbatim
+\paper  {
+  #(define fonts
+    (make-pango-font-tree "TeX Gyre Schola"
+                          "TeX Gyre Heros"
+                          "TeX Gyre Cursor"
+                          (/ staff-height pt 20)))
+}
+@end verbatim
+@end quotation
+
+Véase también @ruser{Fuentes tipográficas del documento completo}.
+
+@multitable @columnfractions .33 .16 .51
 @item @code{check-internal-types}
 @tab @code{#f}
 @tab Comprobar el tipo de cada asignación de propiedades.
 
 @item @code{clip-systems} (recortar los sistemas)
 @tab @code{#f}
-@tab Generar fragmentos de imagen recortados de una partitura.
+@tab Extraer fragmentos de música de la partitura.  Requiere que la función
+@code{clip-regions} esté definida dentro del bloque
+@code{\layout}.  Véase @ruser{Extracción de fragmentos de música}.
+No se extrae ningún fragmento si se usa con la copción
+@option{-dno-print-pages}.
 
 @item @code{datadir} (directorio de datos)
 @tab
@@ -586,8 +702,8 @@ debe ir encerrada entre comillas dobles.
 @tab Fijar el formato de salida de Ghostscript para las imágenes de píxeles.
 
 @item @code{point-and-click}
-@tab @code{#f}
-@tab Añadir enlaces de @q{apuntar y pulsar} a la salida @code{PDF}. Véase
+@tab @code{#t}
+@tab Añadir enlaces de @q{apuntar y pulsar} a la salida PDF y SVG. Véase
 @ref{Apuntar y pulsar}.
 
 @item @code{preview}
@@ -656,9 +772,9 @@ Scheme monte un desastre, p.ej.:
 
 @quotation
 @verbatim
-#(system "rm -rf /")
+#(s ystem "rm -rf /")  % demasiado peligroso para escribirlo correctamente
 {
-  c4^$(ly:gulp-file "/etc/passwd")
+  c4^$(ly:gulp-file "/etc/passwd") % malicioso aunque no tan destructivo
 }
 @end verbatim
 @end quotation
@@ -683,9 +799,9 @@ en el uso de memoria como de CPU.
 El modo seguro evita que se puedan compilar muchos fragmentos de
 código útiles.
 
-La opción @option{--jail} es una aliternativa más segura aún, pero
+La opción @option{--jail} es una alternativa más segura aún, pero
 requiere más trabajo para su configuración.  Véase
-@ref{Opciones básicas de la línea de órdenes para LilyPond}.
+@ref{Opciones de LilyPond básicas de la línea de órdenes}.
 
 @multitable @columnfractions .33 .16 .51
 @item @code{separate-log-files}
@@ -711,19 +827,26 @@ nombres de los archivos de salida.
 @item @code{strokeadjust}
 @tab @code{#f}
 @tab Forzar el ajuste de los trazos de PostScript.  Esta opción es
-relevante principalmente cuando se genera un @code{PDF} a partir
-de la salida de PostScript (el ajuste del trazo está por lo
-general activado automáticamente para dispositivos de mapa de
-puntos de baja resolución).  Sin esta opción, los visores
-de@code{PDF} tienden a producir anchuras de plica muy poco
-consistentes a las resoluciones típicas de las pantallas de
-ordenador.  La opción no afecta de forma muy significativa a la
-calidad de la impresión y causa grandes incrementos en el tamaño
-del archivo @code{PDF}.
+relevante principalmente cuando se genera un PDF a partir de la
+salida de PostScript (el ajuste del trazo está por lo general
+activado automáticamente para dispositivos de mapa de puntos de
+baja resolución).  Sin esta opción, los visores de PDF tienden a
+producir anchuras de plica muy poco consistentes a las
+resoluciones típicas de las pantallas de ordenador.  La opción no
+afecta de forma muy significativa a la calidad de la impresión y
+causa grandes incrementos en el tamaño del archivo PDF.
 
 @item @code{svg-woff}
 @tab @code{#f}
-@tab Usar archivos de fuente tipográfica de woff en el backend SVG.
+@tab Esta opción es necesaria al usar archivos de fuente abierta para la Web,
+Web Open Font Format (WOFF) con la instrucción de backend
+@code{svg}.  Se crea un solo archivo SVG para cada página de
+salida.  Aparte de los glifos musicales propios de LilyPond, no se
+incluye ninguna otra información de fuente tipográfica.  Todo
+visor de SVG necesita, por ello, tener las fuentes disponibles
+para la representación correcta tanto del texto como de la letra.
+Asimismo se recomienda no usar alias de fuentes ni listas, por si
+el visor de SVG no es capaz de manejarlos.
 
 @item @code{trace-memory-frequency}
 @tab @code{#f}
@@ -980,6 +1103,15 @@ advertencias y errores se producen cuando ocurre algo inesperado.  Si
 no ve un error en la línea que se indica del archivo de entrada, trate
 de comprobar una o dos líneas por encima de la posición indicada.
 
+Observe que los diagnósticos se pueden activar en cualquier punto
+durante las numerosas fases del procesado.  Por ejemplo, si hay
+partes de la entrada que se procesan varias veces (como en la
+salida midi y de disposición de la página), o si la misma variable
+musical se utiliza en más de un contexto, puede aparecer el mismo
+mensaje varias veces.  Los diagnósticos producidos en un estado
+@q{tardío} (como las comprobaciones de compás) también podrían
+emitirse más de una vez.
+
 Se ofrece más información sobre los errores en la sección @ref{Errores
 comunes}.
 
@@ -1000,6 +1132,7 @@ se han visto y comprendido, se manejan sin problema.
 * Mensaje de error FT_Get_Glyph_Name::
 * Advertencia sobre que las afinidades del pentagrama sólo deben decrecer::
 * Mensaje de error Unexpected new::
+* Advertencia de que una voz requiere ajustes voiceXx o shiftXx::
 @end menu
 
 @node La música se sale de la página
@@ -1069,31 +1202,6 @@ las notas de rojo es
 }
 @end lilypond
 
-Como segundo ejemplo, si una instrucción @code{\relative} se escribe
-dentro de una instrucción @code{\repeat}, el resultado son dos
-pentagramas, el segundo desplazado respecto al primero, porque la
-instrucción @code{\repeat} genera dos bloques @code{\relative},
-cada uno de los cuales crea implícitamente bloques @code{Staff} y
-@code{Voice}.
-
-@lilypond[quote,verbatim]
-\repeat unfold 2 {
-  \relative { c'4 d e f }
-}
-@end lilypond
-
-El problema se resuelve instanciando el contexto @code{Voice}
-explícitamente:
-
-@lilypond[quote,verbatim]
-\new Voice {
-  \repeat unfold 2 {
-    \relative { c'4 d e f }
-  }
-}
-@end lilypond
-
-
 @node Mensaje de error Unbound variable %
 @unnumberedsubsec Mensaje de error Unbound variable %
 @translationof Error message Unbound variable %
@@ -1189,3 +1297,43 @@ decir, simultáneamente:
   >>
 }
 @end lilypond
+
+@node Advertencia de que una voz requiere ajustes voiceXx o shiftXx
+@unnumberedsubsec Advertencia de que una voz requiere ajustes @code{@bs{}voiceXx} o @code{@bs{}shiftXx}
+@translationof Warning this voice needs a voiceXx or shiftXx setting
+
+Si acontecen dos notas de distintas voces son plicas en la misma
+dirección y en el mismo momento musical, pero las voces no tienen
+especificado ningún desplazamiento de voz específico, aparece el
+mensaje @samp{advertencia: esta voz requiere ajustes \voiceXx o
+\shiftXx} cuando se compila el archivo de LilyPond.  La
+advertencia aparece incluso si las notas no tienen plicas
+visibres, por ejemplo redondas, si las plicas de figuras más
+breves que tuviesen las misma altura, estuvieran en la misma
+dirección.
+
+Recuerde que la dirección de la plica depende de la posición de la
+nota sobre el pentagrama a no ser que la dirección de la plica
+venga especificada, por ejemplo mediante @code{\voiceOne}.  En
+este caso, la advertencia aparece solamente cuando las plicas
+están en la misma dirección, es decir, cuando se encuentran en la
+misma mitad del pentagrama.
+
+Situando las notas en voces que tengan direcciones de plica y
+desplazamientos especificados, por ejemplo usando @code{\voiceOne}
+y otras instrucciones, se pueden evitar estos mensajes.
+
+Las notas que están en voces con numeración más alta,
+@code{\voiceThree} y siguientes, se desplazan automáticamente para
+evitar las colisiones entre columnas.  Esto produce un
+desplazamient que es visible en las notas con plica, pero las
+redondas no se desplazan de forma visible a no ser que se produzca
+una verdadera colisión, o si las voces se cruzan respecto a su
+orden natural (cuando una voz con @code{\voiceThree} es más aguda
+que otra con @code{\voiceOne}, y casos semejantes).
+
+@seealso
+@rlearning{Voces explícitas},
+@rlearning{Ejemplos reales de música},
+@ruser{Polifonía en un solo pentagrama},
+@ruser{Resolución de las colisiones}.
index acb7b92fc517444f31bf54f1f13b940b0332fe58..95d310efbc0fdcbab17b3464c9c56cdb97806291 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: b381556a3132e765159edc75107b31259dbf5988
+    Translation of GIT committish: bd8e8f0193000854fef9d3de3cc0a9f667ea8fb1
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @cindex actualización de un archivo de LilyPond
 @cindex convert-ly
 
-La sintaxis del lenguaje de entrada de LilyPond se modifica de
-forma habitual para simplificarla o mejorarla de distintas
-maneras.  Como efecto secundario, el intérprete de LilyPond a
-menudo ya no es compatible con los archivos de entrada antiguos.
-Para poner remedio a esto se puede utilizar el programa
-@command{convert-ly} para actualizar archivos a nuevas versiones
-de LilyPond.
+Según LilyPond va mejorando, puede cambiar la sintaxis de algunas
+instrucciones y funcioens del lenguaje de entrada.  Ello puede
+conducir a errores inesperados, advertencias y hasta salida
+errónea cada vez que se utilizan con la versión actual de LilyPond
+archivos de entrada que habían sido creados para versiones
+anteriores.
+
+Como ayuda para este problema, puede usarse la herramienta
+@command{convert-ly} para actualizar esos archivos de entrada
+antiguos y que sigan la sintaxis nueva.
 
 @menu
 * ¿Por qué cambia la sintaxis?::
@@ -42,116 +45,174 @@ de LilyPond.
 @cindex convert-ly
 @cindex actualizar archivos de entrada antiguos
 
-La sintaxis de la entrada de LilyPond cambia de manera ocasional.  A
-medida que el propio LilyPond mejora, la sintaxis (el lenguaje de la
-entrada) se modifica en consonancia.  A veces estos cambios se hacen
-para conseguir que la entrada sea más fácil de leer y escribir, y
-otras veces estos cambios son para dar cabida a nuevas funcionalidades
-de LilyPond.
-
-Por ejemplo, se supone que todos los nombres de las propiedades de
-@code{\paper} y de @code{\layout} están escritos en la dorma
-@code{primero-segundo-tercero}.  Sin embargo, en la versión 2.11.60,
-observamos que la propiedad @code{printallheaders} no seguía esta
-convención.  ¿Deberíamos dejarla como está (confundiendo a los nuevos
-usuarios que tienen que tratar con un formato de entrada
-inconsistente), o cambiarla (fastidiando a los usuarios con
-experiencia que tienen partituras antiguas)?  En este caso, decidimos
-cambiar el nombre a @code{print-all-headers}.  Afortunadamente, este
-cambio se puede automatizar con nuestra herramienta
-@command{convert-ly}.
-
-Sin embargo, lamentablemente @command{convert-ly} no puede tratar
-todos los cambios en la entrada.  Por ejemplo, en la versión 2.4 y
-anteriores de LilyPond, los acentos y las letras no inglesas se
-introducían utilizando LaTeX: por ejemplo, @code{No\"el} (que
-significa @q{Navidad} en francés).  En LilyPond 2.6 y siguientes,
-el carácter especial @code{ë} debe introducirse directamente en el
-archivo de LilyPond como un carácter UTF-8.  @command{convert-ly}
-no puede cambiar todos los caracteres especiales de LaTeX a
-caracteres de UTF-8; tendrá que actualizar manualmente sus
-archivos de LilyPond antiguos.
+Con frecuencia, los cambios en la sintaxis se llevan a cabo para
+hacer que la entrada sea más sencilla tanto de leer como de
+escribir, pero en ocasiones se hacen los cambios para acomodar
+nuevas funcionalidades o mejoras para las funciones existentes.
+
+Lo ilustramos a continuación con un ejemplo real:
+
+Se supone que todos los nombres de las propiedades de
+@code{\paper} y de @code{\layout} están escritos en la forma
+@code{primero-segundo-tercero}.  Sin embargo, en la versión
+2.11.60, observamos que la propiedad @code{printallheaders} no
+seguía esta convención.  ¿Deberíamos dejarla como está
+(confundiendo a los nuevos usuarios que tienen que tratar con un
+formato de entrada inconsistente), o cambiarla (fastidiando a los
+usuarios con experiencia que tienen partituras antiguas)?
+
+Se tomó la decisión de cambiar el nombre de la propiedad por
+@code{print-all-headers}, y mediante el uso de la herramienta
+@command{convert-ly} se dio a los usuarios existentes la
+posibiilidad de actualizar automáticamente los archivos de entrada
+que tenían previamente.
+
+Sin embargo, el uso de la herramienta @command{convert-ly} no
+permite tratar todos los cambios de sintaxis.  En versiones de
+LilyPond anteriores a la 2.4.2, los acentos y las letras no
+inglesas se introducían utilizando LaTeX: por ejemplo,
+@code{No\"el} (que significa @q{Navidad} en francés).  Pero a
+partir de LilyPond 2.6, el carácter especial @code{ë} debe
+introducirse directamente en el archivo de LilyPond como un
+carácter UTF-8.  La herramienta @command{convert-ly} no sabe cómo
+cambiar los caracteres especiales de LaTeX a caracteres de UTF-8;
+tendrá que actualizar manualmente sus archivos de LilyPond
+antiguos.
 
 Las reglas de conversión de @command{convert-ly} funcionan usando
 correspondencia y sustitución de patrones de texto en lugar de una
-comprensión profunda de la sintaxis de LilyPond.  Esto tiene
-varias consecuencias:
+@q{comprensión} profunda de los cambios producidos en un archivo
+dado.  Esto tiene varias consecuencias:
+
 @itemize @bullet
 @item
 El buen funcionamiento de la conversión depende de la calidad de
 cada conjunto de reglas que se aplican y de la complejidad del
 cambio correspondiente.  A veces las conversiones pueden necesitar
-correcciones manuales, por lo que la versión antigua debiera
-conservarse a efectos de comparación.
+correcciones manuales adicionales, por lo que los archivos
+originales deberían conservarse a efectos de comparación, si es
+necesario.
+
 @item
-Solamente son posibles las conversiones a formatos más nuevos: no
-existe ningún conjunto de reglas para la desactualización.  Así
-pues, la copia principal de trabajo de un archivo de LilyPond
-solamente se debe actualizar cuando ya no hay necesidad de seguir
-manteniendo versiones antiguas de LilyPond.  Los sistemas de
-control de versiones como el Git pueden ser de gran ayuda para
-realizar el mantenimiento de varias versiones de los mismos
-archivos.
+Solamente son posibles las conversiones a las sintaxis más
+recientes: no existe ningún conjunto de reglas para volver a
+versiones más antiguas de LilyPond.  Así pues, el archivo de
+entrada solamente se debe actualizar cuando ya no se mantienen las
+versiones antiguas de LilyPond.  De nuevo, es conveniente
+conservar, por si acaso, los archivos de entrada, quizá mediante
+el uso de un sistema de control de versiones como el Git, que
+puede ser de gran ayuda para realizar el mantenimiento de varias
+versiones de los mismos archivos.
+
 @item
-Los propios programas LilyPond y Scheme son bastante robustos
-frente a los espacios añadidos y suprimidos de manera
-@qq{creativa}, pero las reglas utilizadas por @command{convert-ly}
-tienden a hacer ciertas suposiciones de estilo.  Lo mejor que
-puede hacerse es seguir el estilo que se usa en los manuales para
-hacer actualizaciones indoloras, especialmente porque los propios
-manuales se actualizan usando @command{convert-ly}.
+LilyPond es bastante robusto al procesar espacios añadidos y
+suprimidos de manera @qq{creativa}, pero las reglas utilizadas por
+@command{convert-ly} con frecuencia hacen ciertas suposiciones de
+estilo.  Por tanto, se recomienda seguir el estilo de la entrada
+tal y como se usa en los manuales de LilyPond para que las
+actualizaciones sean indoloras, especialmente porque todos los
+ejemplos de los propios manuales se actualizan usando la
+herramienta @command{convert-ly}.
 @end itemize
 
+
 @node Invocar convert-ly
 @section Invocar @command{convert-ly}
 @translationof Invoking convert-ly
 
-@command{convert-ly} utiliza los enunciados @code{\version} de los
-archivos de entrada para detectar el número de versión antiguo.  En
-casi todos los casos, para actualizar el archivo de entrada basta con
-ejecutar
+La herramienta @command{convert-ly} utiliza los enunciados
+@code{\version} del archivo de entrada para detectar el número de
+versión antiguo.  En casi todos los casos, para actualizar el
+archivo de entrada basta con ejecutar lo siguiente:
 
 @example
 convert-ly -e miarchivo.ly
 @end example
 
 @noindent
-dentro del directorio que contiene el archivo.  Con esto se actualiza
-@file{miarchivo.ly} @emph{in situ} y se preserva el archivo original
-@file{miarchivo.ly~}.
-
-@warning{@command{convert-ly} siempre convierte hasta el último cambio
-de sintaxis que es capaz de manejar.  Esto significa que el número de
-@code{\version} que aparece en el archivo convertido suele ser
-inferior al número de versión del propio programa
+dentro del directorio que contiene el archivo de entrada.  Con
+esto se actualiza @file{miarchivo.ly} @emph{in situ} y se preserva
+el archivo original renombrándolo como @file{miarchivo.ly~}.  Se
+modifica también el número de @code{\version} en el archivo
+actualizado además de la necesaria puesta al día de la sintaxis.
+
+Al ejecutarse, la herramienta @command{convert-ly} imprime los
+números de versión de las conversiones que se han hecho.  Si no
+aparece en el listado ningún número de versión para este archivo,
+significa que ya está actualizado y que es compatible con la
+sintaxis de la última versión de LilyPond.
+
+@warning{Para cada versión nueva de LilyPond, se crea una
+herramienta @command{convert-ly} asimismo nueva, aunque no todas y
+cada una de las versiones de LilyPond requiere cambios en la
+sintaxis de sus archivos de entrada a partir de la versión
+anterior.  Ello significa que la herramienta @command{convert-ly}
+solamente convierte archivos hasta el último cambio de sintaxis
+que tiene, lo que a su vez podría implicar que el número de
+@code{\version} que se escribe en el archivo actualizado es, a
+veces, anterior que la versión de la propia herramienta
 @command{convert-ly}.}
 
-Para convertir de una vez todos los archivos de entrada que hay en un
-directorio, use
+Para convertir todos los archivos de entrada que hay en un solo
+directorio, utilice lo siguiente:
 
 @example
 convert-ly -e *.ly
 @end example
 
-De forma alternativa, si queremos especificar un nombre distinto para
-el archivo actualizado, preservando el archivo original con el mismo
-nombre, haga
+Tanto los usuarios de Linux como los de MacOS@tie{}X pueden usar
+la aplicación de terminal correspondiente, pero los usuarios de
+MacOS@tie{}X pueden también ejecutar esta orden directamente desde
+el menú @code{Compilar > Actualizar la sintaxis}.
+
+Un usuario de Windows ejecutaría la instrucción:
 
 @example
-convert-ly miarchivo.ly > minuevoarchivo.ly
+convert-ly.py -e *.ly
 @end example
 
-El programa imprime una relación de los números de versión para los
-que se han hecho conversiones.  Si no se imprime ningún número de
-versión, el archivo ya está actualizado.
-
 @noindent
-Los usuarios de MacOS@tie{}X pueden ejecutar esta instrucción bajo el
-menú @code{Compilar > Actualizar sintaxis}.
+escribiéndola en un terminal de línea de órdenes o @code{indicador
+del sistema} que normalmente se encuentra bajo @code{Inicio >
+Accessorios > Consola de órdenes} o, para los usuarios de la
+versión 8, escribiendo en la ventana de búsqueda @q{consola de
+órdenes}.
+
+Para converitr todos los archivos de entrada que residen en
+distintos conjuntos de subdirectorios:
+
+@example
+find . -name '*.ly' -exec convert-ly -e '@{@}' \;
+@end example
+
+Este ejemplo busca y convierte todos los archivos de entrada que
+están en el directorio actual y en todos los directorios que están
+dentro de él, de forma recursiva.  Los archivos convertidos se
+colocan en el mismo directorio que sus originales renombrados.
+También debería funcionar para los usuarios de MacOS@tie{}X, si
+bien solamente a través de la aplicación de terminal.
+
+Los usuarios de Windows deben hacer lo siguiente:
+
+@example
+forfiles /s /M *.ly /c "cmd /c convert-ly.py -e @@file"
+@end example
+
+Como alternativa, se puede indicar una ruta explícita al nivel
+superior del directorio que contiene todos los sub-directorios que
+contienen archivos de entrada, mediante la opción @code{/p}:
+
+@example
+forfiles /s /p C:\Documentos\MisPartituras /M *.ly /c "cmd /c convert-ly.py -e @@file"
+@end example
+
+Si el nombre o la ruta del directorio de nivel superior contienen
+espacios, entonces hay que poner entre comillas la ruta completa:
+
+@example
+forfiles /s /p "C:\Documentos\Mis Partituras" /M *.ly /c "cmd /c convert-ly.py -e @@file"
+@end example
 
-Los usuarios de Windows deben introducir esta instrucción en una
-ventana del terminal del sistema, que se encuentra por lo general bajo
-@code{Inicio > Accesorios > Símbolo del sistema}.
 
 
 @node Opciones de la línea de órdenes para convert-ly
@@ -171,14 +232,32 @@ Se pueden dar las siguientes opciones:
 incrementar la cadena @code{\version} solamente si el archivo
 efectivamente ha cambiado.  En tal caso, la cabecera de versión
 corresponderá a la versión siguiente al último cambio efectivo.
-Sin esa opción, la versión refleja la última conversión que se
-@emph{intentó} hacer.
+Los números de las versiones de desarrollo se redondean hacia
+arriba al número de la siguiente versión estable, a no ser que
+fuera superior al número de la versión objetivo.  Sin esa opción,
+la versión refleja la última conversión que se @emph{intentó}
+hacer.
 
 @item -e, --edit
 Aplicar las conversiones directamente al archivo de entrada,
 modificándolo in situ.  El archivo original se cambia de nombre a
 @file{miarchivo.ly~}.  Este archivo de copia de seguridad podría
-ser un archivo oculto en algunos sistemas operativos.
+ser un archivo oculto en algunos sistemas operativos.  Como
+alternativa, si queremos especificar un nombre distinto para el
+archivo actualizado sin que la tilde curva @code{~},
+predeterminada de la opción @code{-e}, se añada al final del
+nombre del archivo antiguo, se puede en su lugar redirigir la
+entrada:
+
+@example
+convert-ly miarchivo.ly > miarchivonuevo.ly
+@end example
+
+Los usuarios de Windows harán lo siguiente:
+
+@example
+convert-ly.py miarchivo.ly > miarchivonuevo.ly
+@end example
 
 @item -b, --backup-numbered
 Cuando se usa con la opción @samp{-e}, numerar los archivos de
@@ -196,13 +275,14 @@ Imprimir la ayuda de utilización.
 
 @item -l @var{loglevel}, --loglevel=@var{loglevel}
 Fijar el grado en que la salida es prolija a @var{loglevel}. Los
-valores posibles son @code{NONE} (ninguno), @code{ERROR} (errores),
-@code{WARNING} (advertencias), @code{PROGRESS} (avance;
+valores posibles son @code{NONE} (ninguno), @code{ERROR}
+(errores), @code{WARNING} (advertencias), @code{PROGRESS} (avance;
 predeterminado) y @code{DEBUG} (depuración).
 
 @item -n, --no-version
-Normalmente @command{convert-ly} añade un indicador @code{\version} a
-la salida.  La especificación de esta opción lo suprime.
+Normalmente @command{convert-ly} añade un indicador
+@code{\version} a la salida.  La especificación de esta opción lo
+suprime.
 
 @item -s, --show-rules
 Mostrar todas las conversiones conocidas y salir.
@@ -224,8 +304,8 @@ Para actualizar fragmentos de LilyPond en archivos de texinfo, use
 convert-ly --from=@dots{} --to=@dots{} --no-version *.itely
 @end example
 
-Para ver los cambios en la sintaxis de LilyPond entre dos versiones
-dadas, use
+Para ver los cambios en la sintaxis de LilyPond entre dos
+versiones dadas, use
 
 @example
 convert-ly --from=@dots{} --to=@dots{} -s
@@ -237,19 +317,19 @@ convert-ly --from=@dots{} --to=@dots{} -s
 @translationof Problems running convert-ly
 
 Al ejecutar convert-ly en una ventana del Símbolo del Sistema bajo
-Windows sobre un archivo que tiene espacios en el nombre o en la ruta,
-es necesario encerrar todo el nombre del archivo de entrada con tres
-(!) pares de comillas:
+Windows sobre un archivo que tiene espacios en el nombre o en la
+ruta, es necesario encerrar todo el nombre del archivo de entrada
+con tres (!) pares de comillas:
 
 @example
 convert-ly """D:/Mis partituras/Oda.ly""" > "D:/Mis partituras/nueva Oda.ly"
 @end example
 
-Si la orden simple @command{convert-ly -e *.ly} no funciona porque la
-instrucción expandida se hace muy larga, en vez de ello la orden
-@command{convert-ly} se puede poner dentro de un bucle.  Este ejemplo
-para UNIX actualiza todos los documentos @file{.ly} del directorio
-actual
+Si la orden simple @command{convert-ly -e *.ly} no funciona porque
+la instrucción expandida se hace muy larga, en vez de ello la
+orden @command{convert-ly} se puede poner dentro de un bucle.
+Este ejemplo para UNIX actualiza todos los documentos @file{.ly}
+del directorio actual
 
 @example
 for f in *.ly; do convert-ly -e $f; done;
@@ -267,22 +347,23 @@ especificar una opción de salida.  La actualización automática de
 Scheme y los interfaces Scheme de LilyPond es bastante improbable;
 prepárese para trucar el código de Scheme a mano.
 
+
 @node Conversiones manuales
 @section Conversiones manuales
 @translationof Manual conversions
 
-En teoría, un programa como @command{convert-ly} debería poder tratar
-cualquier cambio en la sintaxis.  Después de todo, un programa de
-ordenador interpreta las versiones antigua y nueva, por lo que otro
-programa de ordenador podría traducir un archivo al otro@footnote{Al
-menos, esto es posible en cualquier archivo de LilyPond que no
-contenga Scheme.  Si hay Scheme dentro del archivo, contiene un
-lenguaje Turing-completo, y nos encontramos con el famoso @qq{Problema
-de la parada} en informática.}.
+En teoría, un programa como @command{convert-ly} debería poder
+tratar cualquier cambio en la sintaxis.  Después de todo, un
+programa de ordenador interpreta las versiones antigua y nueva,
+por lo que otro programa de ordenador podría traducir un archivo
+al otro@footnote{Al menos, esto es posible en cualquier archivo de
+LilyPond que no contenga Scheme.  Si hay Scheme dentro del
+archivo, contiene un lenguaje Turing-completo, y nos encontramos
+con el famoso @qq{Problema de la parada} en informática.}.
 
-Sin embargo, el proyecto LilyPond cuenta con unos recursos limitados:
-no todas las conversiones se efectúan automáticamente.  A continuación
-aparece una lista de los problemas conocidos.
+Sin embargo, el proyecto LilyPond cuenta con unos recursos
+limitados: no todas las conversiones se efectúan automáticamente.
+A continuación aparece una lista de los problemas conocidos.
 
 
 @verbatim
@@ -329,5 +410,3 @@ adecuadamente.
  \score{} ahora debe empezar con una expresión musical.  Cualquier otra cosa
  (en particular, \header{}) debe ir después de la música.
 @end verbatim
-
-
index ee974b53a32402bffdea0d5ba65bc5d024d36271..dd324b3ac159b49c2b8f18f6d6a6027c168332c0 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 0807a75d66c302c6b7fb13c9b586a25ebf0265ad
+    Translation of GIT committish: 1244656c3b2d852f29bd75007469e1b1ed0b616f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @documentlanguage es
 @afourpaper
 
-@c `Web' was imported 2009-08-05 with git commit b938d71...
-@c @macro copyrightDeclare
-@c Copyright @copyright{} 2009--2015 by the authors.
-@c @end macro
-
 @set FDL
 @set web
 @include macros.itexi
 @include weblinks.itexi
 
+
 @c don't remove this comment.
 @ignore
 @omfcreator Graham Percival and Patrick McCarty
 
 @c Translators: Francisco Vila
 
+@c `Web' was born 2003-03-30 with this commit:
+@c Initial revision
+@c author: Han-Wen Nienhuys
+@c commit: d189a2119004c2f75da2020ea2ed36d817582fc5
+
+@c @macro copyrightDeclare
+@c Copyright @copyright{} 2003--2015 by the authors.
+@c @end macro
+
 @copying
 Copyright @copyright{} 2009--2015 por los autores.
 
@@ -118,14 +123,10 @@ Para LilyPond versión @version{}
 @c @im ageId{cmws,web-snippet-alpha.png,Catchy Musical Web Snippet}
 
 @divId{quickSummary}
-@subheading ¿Qué es LilyPond?
-
-LilyPond es un programa de grabado musical
-(tipografía musical o edición de partituras),
-consagrado a la producción de partituras de la
-calidad más alta posible.  Lleva la estética
-de la música tipografiada de la forma tradicional
-a las partituras impresas mediante ordenador.
+LilyPond es un programa de tipografía musical o edición de
+partituras, consagrado a la producción de partituras de la calidad
+más alta posible.  Lleva la estética de la música tipografiada de
+la forma tradicional a las partituras impresas mediante ordenador.
 LilyPond es software libre y forma parte del
 @uref{http://gnu.org,Proyecto GNU}.
 
@@ -136,9 +137,6 @@ LilyPond es software libre y forma parte del
 @divEnd
 @divEnd
 
-@divClass{separator}
-@divEnd
-
 
 @divId{news}
 
@@ -151,19 +149,36 @@ LilyPond es software libre y forma parte del
 
 @divEnd
 
+
 @ifclear web_version
   @c do nothing
 @end ifclear
 @ifset web_version
-  @c make the box:
-@divId{wildCardBox}
+  @c make the side bar:
+@divId{homePageSideBar}
+@subheading Versión estable
+
+@c TODO: javascript to detect OS and suggest download?
+
+@ref{Descarga, Descarga de @versionStable}
+
+@ref{Manuales, Manuales de @versionStable}
+
+@subheading Versión de desarrollo
+
+@ref{Desarrollo, Descarga de @versionDevel}
+
+@ref{Desarrollo, Manuales de @versionDevel}
+
 @subheading Novedades
-@divId{wildCardText}
+@divId{pondingsText}
 
 @divEnd
+
 @divEnd
 @end ifset
 
+
 @html
 
 <script language="JavaScript" type="text/javascript">
@@ -187,32 +202,11 @@ LilyPond es software libre y forma parte del
   var index = Math.floor(Math.random() * tweets.length);
   var tweet = tweets[index];
   var text = tweet.childNodes[0];
-  document.getElementById("wildCardText").innerHTML = text.nodeValue;
+  document.getElementById("pondingsText").innerHTML = text.nodeValue;
 </script>
 
 @end html
 
-@ifset web_version
-  @c make the box:
-@divId{latestVersion}
-@subheading Enlaces rápidos
-
-@c TODO: javascript to detect OS and suggest download?
-
-@subsubheading Estable
-
-@ref{Descarga, Descarga de @versionStable}
-
-@ref{Manuales, Manuales de @versionStable}
-
-@subsubheading Desarrollo
-
-@ref{Desarrollo, Descarga de @versionDevel}
-
-@ref{Desarrollo, Manuales de @versionDevel}
-
-@divEnd
-@end ifset
 
 @ifnottex
 
@@ -252,7 +246,6 @@ Distributions will want to install lilypond.info in postinstall, doing:
 @macro docLinks{name,base,refLink,split,big,bigsize,pdf,pdfsize}
 @subheading Léalo
 
-
 @docLinksBare{\name\,\base\,\refLink\,\split\,\big\,\bigsize\,\pdf\,\pdfsize\}
 
 @end macro
@@ -309,16 +302,17 @@ Distributions will want to install lilypond.info in postinstall, doing:
 @ifhtml
 @macro contactUsAbout{topic}
 
-@divClass{heading-center} @divClass{contactBox} Si tiene
-conocimiento de cualesquiera otros \topic\ que merezcan aparecer
-relacionados aquí, le rogamos que nos lo haga saber escribiendo un
-mensaje a la lista de correo bug-lilypond.  Si no está suscrito a
-la lista, aún puede hacerlo en la
+@divClass{heading-center}
+@divClass{contactBox}
+
+Si tiene conocimiento de cualesquiera otros \topic\ que merezcan
+aparecer relacionados aquí, le rogamos que nos lo haga saber
+escribiendo un mensaje a la lista de correo bug-lilypond.  Si no
+está suscrito a la lista, aún puede hacerlo en la
 @uref{https://lists.gnu.org/mailman/listinfo/bug-lilypond,página informativa}
 de la lista o escribiendo directamente a través del
 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs,interfaz web de lilypond.bugs en gmane}.
 
-
 @divEnd
 @divEnd
 
index 6aa990a19b9c0db2e212b3d13a8ab89d4efde896..c307ab534b133948603949b69f70fc6a0de07348 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: b4a06339566ce7e7f17ba60745261fc26b32abb0
+    Translation of GIT committish: 99ce5fc4bd1169e8fa33855b3a13bc68f08fbe0b
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -26,8 +26,8 @@
 @ref{Contacto}: obtener ayuda, charlar y ¡mantenerse en contacto!
 
 @item
-@ref{Ejemplos mínimos}: son @emph{muy} recomendables cuando se habla
-de LilyPond.
+@ref{Ejemplos mínimos}: son @emph{muy} recomendables cuando se
+habla de LilyPond.
 
 @item
 @ref{Informes de fallos}: algo ha ido mal.
@@ -50,14 +50,16 @@ de LilyPond.
 @ref{Desarrollo}: para colaboradores y pilotos de prueba.
 
 @item
-@ref{GSoC 2012}: nuestras ideas para la edición 2012 del «Google
-Summer of Code» (Verano del Código de Google).
+@ref{Google Summer of Code}: ideas para el «Google Summer of Code»
+(Verano del Código de Google).
 
 @item
-@ref{Autores}: las personas que han hecho a LilyPond lo que hoy es.
+@ref{Autores}: las personas que han hecho a LilyPond lo que hoy
+es.
 
 @item
-@ref{Acknowledgements}: proyectos e instituciones que apoyan a LilyPond
+@ref{Acknowledgements}: proyectos e instituciones que apoyan a
+LilyPond
 
 @end itemize
 @divEnd
@@ -68,13 +70,15 @@ Summer of Code» (Verano del Código de Google).
 @itemize
 
 @item
-@ref{Publicaciones}: qué hemos escrito, y qué han escrito sobre nosotros.
+@ref{Publicaciones}: qué hemos escrito, y qué han escrito sobre
+nosotros.
 
 @item
 @ref{Noticias antiguas}: el archivo.
 
 @item
-@ref{Desván}: anuncios y registros de cambios en versiones antiguas.
+@ref{Desván}: anuncios y registros de cambios en versiones
+antiguas.
 
 @end itemize
 @divEnd
@@ -89,7 +93,7 @@ Summer of Code» (Verano del Código de Google).
 * Preste su ayuda::
 * Patrocinio::
 * Desarrollo::
-* GSoC 2012::
+* Google Summer of Code::
 * Autores::
 * Reconocimientos::
 * Publicaciones::
@@ -108,8 +112,9 @@ Summer of Code» (Verano del Código de Google).
 
 @subsubheading Lista de distribución de usuarios: @code{lilypond-user@@gnu.org}
 
-Esta lista de distribución de correo (en inglés) es el lugar principal
-que tienen los usuarios para discutir y prestarse mutua ayuda.
+Esta lista de distribución de correo (en inglés) es el lugar
+principal que tienen los usuarios para discutir y prestarse mutua
+ayuda.
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user,
@@ -126,21 +131,22 @@ archivo 3}
 escribir a la lista lilypond-user a través de gmane}
 @end quotation
 
-@warning{Al formular preguntas, por favor, ¡utilice @ref{Ejemplos mínimos}!}
+@warning{Al formular preguntas, por favor, ¡utilice
+@ref{Ejemplos mínimos}!}
 
 @subsubheading El Repositorio de Fragmentos de Código de LilyPond
 
 El Repositorio de Fragmentos de Código de LilyPond es una gran
-colección de ejemplos remitidos por los usuarios, que se pueden copiar
-y usar libremente en sus propias obras.  ¡Vea las cosas que otros han
-escrito, y añada las suyas propias!
+colección de ejemplos remitidos por los usuarios, que se pueden
+copiar y usar libremente en sus propias obras.  ¡Vea las cosas que
+otros han escrito, y añada las suyas propias!
 
 @example
 @uref{http://lsr.di.unimi.it}
 @end example
 
-Los ejemplos del LSR que son especialmente instructivos se incluyen en
-nuestra documentación oficial, en @ref{Fragmentos}.
+Los ejemplos del LSR que son especialmente instructivos se
+incluyen en nuestra documentación oficial, en @ref{Fragmentos}.
 
 @subsubheading IRC
 
@@ -191,24 +197,17 @@ grupo de portugués}
 
 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
 lista de correo en francés}
-
-@uref{http://www.lilypondforum.nl/,
-foro de holandés}
 @end quotation
-
 @divEnd
 
 
 @divClass{column-right-top}
-@subheading Esté siempre informado
+@subheading El blog de LilyPond
 
-@subsubheading LilyPond Report (el Informe LilyPond)
-
-La manera más fácil de estar en contacto es leer el boletín de nuestra
-comunidad, el Informe LilyPond:
+Lea el bog de nuestra comunidad, @q{Scores of Beauty}:
 
 @example
-@uref{http://web.archive.org/web/20110325004849/http://news.lilynet.net}
+@uref{http://lilypondblog.org}
 @end example
 
 @subsubheading Lista de correo de lanzamientos: @code{info-lilypond@@gnu.org}
@@ -235,12 +234,12 @@ archivo 3}
 
 
 @divClass{column-right-bottom}
-@subheading Discusión entre desarrolladores
+@subheading Discusiones y traducciones
 
 @subsubheading La lista de distribución de desarrolladores: @code{lilypond-devel@@gnu.org}
 
-Casi toda la discusión entre desarrolladores tiene lugar en esta
-lista.  Los parches se deben enviar aquí.
+La discusión entre desarrolladores tiene lugar en esta lista.  Los
+parches se pueden también enviar aquí.
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
@@ -260,7 +259,8 @@ escribir a la lista lilypond-devel a través de gmane}
 
 @subsubheading Lista de fallos: @code{bug-lilypond@@gnu.org}
 
-La discusión específica sobre fallos se produce aquí.
+Los informes de fallo y discusión sobre ellos se deben enviar
+aquí.  No envíe parches a esta lista.
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
@@ -276,16 +276,19 @@ archivo 3}
 @c don't include gmane posting here.  -gp
 @end quotation
 
-@warning{Antes de enviar un mensaje a la lista de fallos, lea nuestras
-indicaciones para elaborar @ref{Informes de fallos}.}
+@warning{Antes de enviar un mensaje a la lista de fallos, lea
+nuestras indicaciones para elaborar @ref{Informes de fallos}.}
 
-@divEnd
 
-@divClass{column-right-bottom}
-@subheading Correos delicados
+@subsubheading Lista de correo de traducciones: @code{translations@@lilynet.org}
 
-Los asuntos privados se deben enviar a Graham Percival (gestor del
-proyecto), que lo discutirá con las personas pertinentes.
+Toda discusión sobre la traducción de los manuales de LilyPond se
+debe dirigir aquí.  No envíe parches a esta lista.
+
+@quotation
+@uref{http://lilypond-translations.3384276.n2.nabble.com/,
+Archivo de la lista de correo de traducción}
+@end quotation
 
 @divEnd
 
@@ -296,7 +299,8 @@ proyecto), que lo discutirá con las personas pertinentes.
 @divClass{column-center-top}
 @subheading ¿Qué son los @qq{ejemplos mínimos}?
 
-Un ejemplo mínimo es un ejemplo del que no se puede eliminar @strong{nada}.
+Un ejemplo mínimo es un ejemplo del que no se puede eliminar
+@strong{nada}.
 @divEnd
 
 @divClass{column-left-bottom}
@@ -311,16 +315,16 @@ desarrolladores entenderlo y ayudarle.
 
 @item
 Un ejemplo mínimo demuestra que se ha esforzado en resolver el
-problema por sí mismo.  Cuando alguien envía bloques grandes de código
-de entrada, da la impresión de que no le importa que le ayudemos o que
-no.
+problema por sí mismo.  Cuando alguien envía bloques grandes de
+código de entrada, da la impresión de que no le importa que le
+ayudemos o que no.
 
 @item
 La creación de un ejemplo mínimo le ayuda a entender lo que está
 ocurriendo.  Muchos informes falsos de problemas se podrían evitar
-intentando crear un ejemplo mínimo; si no puede reproducir un @qq{bug}
-en un ejemplo mínimo, probablemente el problema era una comprensión
-insuficiente sobre LilyPond, ¡no un verdadero bug!
+intentando crear un ejemplo mínimo; si no puede reproducir un
+@qq{bug} en un ejemplo mínimo, probablemente el problema era una
+comprensión insuficiente sobre LilyPond, ¡no un verdadero bug!
 
 @end itemize
 @divEnd
@@ -338,24 +342,26 @@ insuficiente sobre LilyPond, ¡no un verdadero bug!
 Incluya el número de versión en una instrucción @code{\version}.
 
 @item
-¡Hágalo muy pequeño!  Los ejemplos relacionados con el espaciado o la
-disposición de las páginas pueden requerir muchos compases, pero casi
-todos los problemas se pueden reproducir mediante un solo compás o menos.
+¡Hágalo muy pequeño!  Los ejemplos relacionados con el espaciado o
+la disposición de las páginas pueden requerir muchos compases,
+pero casi todos los problemas se pueden reproducir mediante un
+solo compás o menos.
 
 @item
-Cuando trate de crear un ejemplo, pruebe a convertir en comentarios
-@w{(@code{%} ó @code{%@{ @dots{} %@}})} distintas secciones del
-archivo.  Si puede convertir un bloque en un comentario y aún mostrar
-la idea principal, entonces elimine ese bloque.
+Cuando trate de crear un ejemplo, pruebe a convertir en
+comentarios @w{(@code{%} ó @code{%@{ @dots{} %@}})} distintas
+secciones del archivo.  Si puede convertir un bloque en un
+comentario y aún mostrar la idea principal, entonces elimine ese
+bloque.
 
 @item
-Evite la utilización de notas, tonalidades o compases muy complicados,
-a no ser que el bug esté relacionado con el comportamiento de esos
-elementos.
+Evite la utilización de notas, tonalidades o compases muy
+complicados, a no ser que el bug esté relacionado con el
+comportamiento de esos elementos.
 
 @item
-No utilice instrucciones @code{\override} ni @code{\set} a no ser que
-el bug se refiera a esas instrucciones en concreto.
+No utilice instrucciones @code{\override} ni @code{\set} a no ser
+que el bug se refiera a esas instrucciones en concreto.
 
 @item
 Opcionalmente, adjunte una imagen que muestre el resultado gráfico
@@ -400,8 +406,8 @@ Bueno, no es muy grande, pero he aquí un ejemplo verdaderamente mínimo:
 @}
 @end example
 
-Muy pocos ejemplos mínimos superan las 10 líneas de código;
-¡lo más corriente es que basten 4 líneas para mostrar el problema!
+Muy pocos ejemplos mínimos superan las 10 líneas de código; ¡lo
+más corriente es que basten 4 líneas para mostrar el problema!
 
 @divEnd
 
@@ -411,8 +417,8 @@ Muy pocos ejemplos mínimos superan las 10 líneas de código;
 @translationof Bug reports
 
 @divClass{heading-center}
-Si tiene un código de entrada que produce una terminación abrupta o
-una salida defectuosa, eso es un bug.
+Si tiene un código de entrada que produce una terminación abrupta
+una salida defectuosa, eso es un bug.
 @divEnd
 
 @divClass{column-center-top}
@@ -421,13 +427,13 @@ una salida defectuosa, eso es un bug.
 Probablemente ya estamos al tanto de este bug.  Compruébelo aquí:
 
 @example
-@uref{http://code.google.com/p/lilypond/issues/list}
+@uref{http://sourceforge.net/p/testlilyissues/issues/}
 @end example
 
 @warning{Le rogamos que @strong{NO} añada informes de fallos
-directamente al sistema de seguimiento.  Una vez que un problema se ha
-añadido al sistema, ya puede añadir libremente más información a ese
-informe.}
+directamente al sistema de seguimiento.  Una vez que un problema
+se ha añadido al sistema, ya puede añadir libremente más
+información a ese informe.}
 
 @divEnd
 
@@ -438,10 +444,10 @@ informe.}
 Si ha descubierto un fallo que no está en la lista, ayúdenos
 elaborando un informe de fallo.
 
-@warning{Sólo aceptamos informes en forma de @ref{Ejemplos mínimos}.
-Disponemos de recursos muy limitados, por lo que cualquier ejemplo que
-no sea mínimo va a ser rechazado.  ¡Casi todos los bugs se pueden
-demostrar con cuatro notas o menos!}
+@warning{Sólo aceptamos informes en forma de @ref{Ejemplos
+mínimos}.  Disponemos de recursos muy limitados, por lo que
+cualquier ejemplo que no sea mínimo va a ser rechazado.  ¡Casi
+todos los bugs se pueden demostrar con cuatro notas o menos!}
 
 He aquí un ejemplo de un buen informe de fallo:
 
@@ -470,8 +476,8 @@ creado el informe, ¡puede enviárnoslo!
 
 @item
 Si está suscrito a la lista de correo
-@uref{mailto:bug-lilypond@@gnu.org,bug-lilypond@@gnu.org},
-envíe un mensaje de la forma habitual.
+@uref{mailto:bug-lilypond@@gnu.org,bug-lilypond@@gnu.org}, envíe
+un mensaje de la forma habitual.
 
 @item
 Si no está suscrito, aún puede enviar un informe de fallo con el
@@ -479,16 +485,17 @@ Si no está suscrito, aún puede enviar un informe de fallo con el
 interfaz web de gmane para lilypond.bugs}.
 
 Sin embargo, existe una comprobación muy estricta de que no hay
-@qq{top-posting} (contestar por encima) en el interfaz de gmane, que se
-dispara incorrectamente con frecuencia a causa de los archivos de lilypond.
-Para evitarlo, escriba:
+@qq{top-posting} (contestar por encima) en el interfaz de gmane,
+que se dispara incorrectamente con frecuencia a causa de los
+archivos de lilypond.  Para evitarlo, escriba:
 
 @example
 > I'm not top posting.
 @end example
 
 @noindent
-(@emph{debe} escribir el ángulo @code{>} ) al principio de su informe.
+(@emph{debe} escribir el ángulo @code{>} ) al principio de su
+informe.
 
 @end itemize
 @divEnd
@@ -499,25 +506,25 @@ Para evitarlo, escriba:
 
 Una vez que su informe de fallo se ha enviado a la lista, nuestro
 Escuadrón de Fallos lo examinará el informe.  Quizá le pidan más
-información.  Se le avisará cuando el informe se añada al sistema de
-seguimiento de fallos.  Déles un tiempo de unos 4 días, pues
+información.  Se le avisará cuando el informe se añada al sistema
+de seguimiento de fallos.  Déles un tiempo de unos 4 días, pues
 disponemos de un número limitado de voluntarios para esta tarea.
 
-Una vez que el fallo se ha añadido al sistema de seguimiento, puede
-comentarlo para añadirle más información.  Puede marcar el bug con una
-estrella de forma que reciba mensajes automáticamente cuando se
-produce cualquier actividad sobre él.  Ello requiere que usted
-disponga de una cuenta en Google.
+Una vez que el fallo se ha añadido al sistema de seguimiento,
+puede comentarlo para añadirle más información.  Puede marcar el
+bug con una estrella de forma que reciba mensajes automáticamente
+cuando se produce cualquier actividad sobre él.  Ello requiere que
+usted disponga de una cuenta en Google.
 @divEnd
 
 @divClass{column-center-bottom}
 @subheading Ayuda opcional: mostrar el resultado deseado
 
 Una vez que el problema se ha añadido al sistema de seguimiento,
-puede ser de mucha ayuda que veamos la salida deseada.
-¡Con toda libertad añada código de entrada y/o imágenes
-(creadas posiblemente con otras herramientas)
-que muestren el aspecto que usted cree que debe tener!
+puede ser de mucha ayuda que veamos la salida deseada.  ¡Con toda
+libertad añada código de entrada y/o imágenes (creadas
+posiblemente con otras herramientas) que muestren el aspecto que
+usted cree que debe tener!
 
 @divEnd
 
@@ -568,21 +575,21 @@ personas individuales es asunto de dichas personas, no nuestro.
 @divClass{column-right-top}
 @subheading Guidelines
 
-Cualquier usuario que quiera ofrecer dinero a cambio de un trabajo,
-debería tener en cuenta los siguientes puntos:
+Cualquier usuario que quiera ofrecer dinero a cambio de un
+trabajo, debería tener en cuenta los siguientes puntos:
 
 @itemize
 @item
-Los desarrolladores de LilyPond pueden anunciar sus servicios en las
-listas de correo de lilypond de vez en cuando.
+Los desarrolladores de LilyPond pueden anunciar sus servicios en
+las listas de correo de lilypond de vez en cuando.
 
 @item
 Cualquier acuerdo entre personas individuales debiera incluir las
 precauciones normales cuando se hacen negocios: quién paga, cuánto
 paga, qué método se utiliza para pagar, y sobre qué paquete de
-condiciones.  Sugerimos que cualquier ambigüedad o incertidumbre en
-tales cuestiones se resuelvan antes de que dé comienzo cualquier
-trabajo.
+condiciones.  Sugerimos que cualquier ambigüedad o incertidumbre
+en tales cuestiones se resuelvan antes de que dé comienzo
+cualquier trabajo.
 
 @end itemize
 
@@ -592,16 +599,17 @@ trabajo.
 @subheading Desarrolladores interesados
 
 A continuación aparece una lista de las personas que han expresado
-interés en recibir recompensas.  Observe que la cantidad de trabajo
-hecha por personas individuales varía bastante a lo largo de los
-años. No garantizamos que esta lista esté actualizada, ni que las
-personas aquí relacionadas tengan cualquier disponibilidad.  El único
-criterio es "Fulanito ha pedido aparecer en esta página".
-
-El examen de la historia del sistema de control de versiones Git es
-una buena manera de determinar quiénes son los desarrolladores más
-activos y experimentados.  Las estadísticas están al día hasta la
-versión @versionDevel{}:
+interés en recibir recompensas.  Observe que la cantidad de
+trabajo hecha por personas individuales varía bastante a lo largo
+de los años. No garantizamos que esta lista esté actualizada, ni
+que las personas aquí relacionadas tengan cualquier
+disponibilidad.  El único criterio es "Fulanito ha pedido aparecer
+en esta página".
+
+El examen de la historia del sistema de control de versiones Git
+es una buena manera de determinar quiénes son los desarrolladores
+más activos y experimentados.  Las estadísticas están al día hasta
+la versión @versionDevel{}:
 
 @multitable @columnfractions .3 .3 .3
 @item @uref{http://lilypond.org/~graham/gitstats-all/, historia general}
@@ -612,10 +620,10 @@ versión @versionDevel{}:
 Desarrolladores interesados:
 @table @asis
 @item @email{dak@@gnu.org, David Kastrup}
-Se necesitan donaciones para que yo pueda continuar mi atual trabajo a
-tiempo completo sobre LilyPond.  Me concentro en diseño de interfaces
-de usuario y del programador, coherencia, implementación,
-simplificación, documentación y depuración.
+Se necesitan donaciones para que yo pueda continuar mi actual
+trabajo a tiempo completo sobre LilyPond.  Me concentro en diseño
+de interfaces de usuario y del programador, coherencia,
+implementación, simplificación, documentación y depuración.
 
 @c Format
 @c @item @email{name@@adress.domain, Name}
@@ -641,10 +649,11 @@ simplificación, documentación y depuración.
 
 @c we normally don't allow named references, but in this case
 @c it's good to emphasize the "stable" part.  -gp
-@warning{Éstas son las versiones @emph{inestables de desarrollo}.  Si
-tiene la más ligera duda acerca de cómo usar o instalar LilyPond, le
-conminamos a que utilice la @ref{Descarga, descarga estable},
-y lea los @ref{Manuales, manuales estables}.}
+@warning{Éstas son las versiones @emph{inestables de desarrollo}.
+Si tiene la más ligera duda acerca de cómo usar o instalar
+LilyPond, le conminamos a que utilice la
+@ref{Descarga, descarga estable}, y lea los
+@ref{Manuales, manuales estables}.}
 
 @divEnd
 
@@ -653,9 +662,9 @@ y lea los @ref{Manuales, manuales estables}.}
 
 Existen dos conjuntos de lanzamientos para LilyPond: lanzamientos
 estables, y lanzamientos inestables de desarrollo.  Las versiones
-estables tienen un número de versión @q{menor} par (p.ej., 2.8, 2.10,
-2.12).  Las versiones de desarrollo tienen un número @q{menor} de
-versión impar (p.ej., 2.7, 2.9, 2.11).
+estables tienen un número de versión @q{menor} par (p.ej., 2.8,
+2.10, 2.12).  Las versiones de desarrollo tienen un número
+@q{menor} de versión impar (p.ej., 2.7, 2.9, 2.11).
 
 @divEnd
 
@@ -663,8 +672,8 @@ versión impar (p.ej., 2.7, 2.9, 2.11).
 @divClass{column-left-top}
 @subheading Descarga
 
-Las instrucciones de Git y para la compilación están en la Guía del
-Colaborador.
+Las instrucciones de Git y para la compilación están en la Guía
+del Colaborador.
 
 @quotation
 @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, Repositorio Git de lilypond}
@@ -701,10 +710,11 @@ pruebas querrán descargar el último archivo binario:
 @divClass{column-right-top}
 @subheading Guía del colaborador
 
-El desarrollo de LilyPond es un asunto bastante complicado.  LilyPond
-es un proyecto grande y (más o menos) estable.  Para poder ayudar a
-los nuevos colaboradores, y para mantener todo el sistema (más o
-menos) estable, hemos escrito un manual para los colaboradores.
+El desarrollo de LilyPond es un asunto bastante complicado.
+LilyPond es un proyecto grande y (más o menos) estable.  Para
+poder ayudar a los nuevos colaboradores, y para mantener todo el
+sistema (más o menos) estable, hemos escrito un manual para los
+colaboradores.
 
 @docLinksBare{Guía del colaborador, contributor,
   @rcontribnamed{Top,Guía del colaborador},
@@ -792,8 +802,8 @@ Archivo de todas las pruebas de regresión}
 @subheading Manuales
 
 @ifclear web_version
-@warning{Estos manuales son para LilyPond @version{}; los manuales más recientes
-están en @url{http://lilypond.org}}
+@warning{Estos manuales son para LilyPond @version{}; los manuales
+más recientes están en @url{http://lilypond.org}}
 @end ifclear
 
 @divClass{normal-table}
@@ -893,67 +903,105 @@ están en @url{http://lilypond.org}}
 @divEnd
 
 
-
-
-@node GSoC 2012
-@unnumberedsec GSoC 2012
-@translationof GSoC 2012
+@node Google Summer of Code
+@unnumberedsec Google Summer of Code
+@translationof Google Summer of Code
 
 @divClass{column-center-top}
 @subheading ¿Qué es el Google Summer of Code (Verano del Código de Google)?
 
-Es un programa global llevado a cabo por Google que ofrece a
-estudiantes una ayuda para que trabajen en proyectos de software de
-fuentes abiertas durante las vacaciones de verano.
-
-El equipo de LilyPond decidió que ésta era una excelente oportunidad
-para encontrar colaboradores nuevos y animar a los estudiantes que ya
-participan en el desarrollo de LilyPond a que se impliquen aún más.
-Uno de nuestros colaboradores ha sido seleccionado para la edición
-2012 del programa como parte del
-@uref{http://www.gnu.org/, proyecto GNU}; esperamos poder participar
-también en futuras ediciones.
+@uref{https://developers.google.com/open-source/gsoc/, GSoC} es un
+programa global que ofrece a estudiantes una ayuda para que
+trabajen en proyectos de software de fuentes abiertas durante las
+vacaciones de verano.  Es una excelente oportunidad para que los
+estudiantes obtengan experiencia en el desarrollo de software en
+el mundo real y hagan contribuciones que beneficie a todos.  Atrae
+a colaboradores nuevos y anima a los estudiantes que ya participan
+en el desarrollo de LilyPond a que se impliquen aún más.  LilyPond
+participa en el GSoC como parte del @uref{http://www.gnu.org/,
+proyecto GNU}.
+
+Hemos tenido participantes en el GSoC en 2012 y 2015 y animamos a
+los estudiantes a que envíen la solicitud para las futuras
+ediciones.
+
+Si tiene alguna pregunta o le gustaría solicitar la participación,
+envíenos un correo a la lista de desarrolladores (véase
+@ref{Contacto}).
 
 @divEnd
 
 @divClass{column-center-bottom}
-@subheading Nuestra lista de ideas para el 2012
-
-Más abajo aparece una lista de los proyectos que hemos sugerido para
-los estudiantes del GSoC 2012.  Aunque ha finalizado el plazo de
-solicitudes, hemos decidido mantener visible esta página como
-inspiración para cualquier persona interesada en el desarrollo de
-LilyPond.  Algunos miembros del equipo de desarrollo están dispuestos
-a prestar su ayuda a aquellos que quieran implicarse en estos
-proyectos.
-
-Por supuesto, hay muchas más cosas que mejorar en LilyPond, entre
-ellas algunas muy pequeñas.  Hay una lista completa
+@subheading Lista de ideas del proyecto
+
+Más abajo aparece una lista de los proyectos que fue inicialmente
+sugerida para el GSoC 2012.  Se mantiene aquí como inspiración
+para futuros proyectos del GSoC y para cualquier persona
+interesada en el desarrollo de LilyPond.
+
+Observe que no es una lista exhaustiva.  También son posibles
+otros proyectos de GSoC.  Existen varias áreas en las que LilyPond
+puede mejorar y el equipo de desarrollo de LilyPond está siempre
+dispuesto a servir de ayuda a aquellos que deseen implicarse en un
+proyecto como los que aparecen relacionados más abajo.
+
+Hay una lista completa de todas las incidencias abiertas
 @uref{http://code.google.com/p/lilypond/issues/list, aquí}.
 
-@subheading Notas de adorno
+@divEnd
 
-Arreglar problemas con la sincronización de las notas de adorno,
-junto a toda la arquitectura subyacente (véase
-@uref{http://code.google.com/p/lilypond/issues/detail?id=34, el problema número 34 de nuestro sistema de seguimiento}).
-Las notas de adorno confunden al sistema de cuenta de tiempo de
-LilyPond porque son como ir hacia atrás en el tiempo.  Esto causa
-efectos extraños, en especial cuando un pentagrama tiene una nota de
-adorno que otro no tiene.
+@divClass{column-center-middle-color3}
+@subheading ScholarLY
+
+ScholarLY es una biblioteca dentro de
+@uref{https://github.com/openlilylib/snippets, openLilyLib} que
+provee funcionalidades para la anotación de partituras, haciendo
+posible gestionar flujos de trabajo académicos completamente en el
+contexto del documento de la partitura.  Hasta ahora es posible
+introducir anotaciones de distintos tipos, producir mensajes que
+se comportan como enlaces sobre la salida de consola y exportar a
+texto y a archivos de LaTeX.
+
+Hay muchas solicitudes de funcionalidad para la conversión de esta
+biblioteca en una herramienta mmás potente y completa aún, por
+ejemplo: inserción de ejemplos musicales, producción de notas al
+pie de página, aplicación automárica de estilos al elemento
+anotado (p. ej. trazar una ligadura en línea discontinua, poner
+una alteración entre paréntesis), creando informes con elementos
+sobre los que se puede apuntar y pulsar.  Para ver una descripción
+completa de esta sugerencia de proyecto, visite
+@uref{https://github.com/openlilylib/scholarly/wiki/GSoC}.
 
 @strong{Dificultad:} media
+@strong{Requisitos:} Scheme, posiblemente LaTeX, (opcionalmente
+Python)
+@strong{Conocimientos recomendados:} Experiencia con, o interés
+en, la edición académica y flujos de trabajo colaborativos.
+@strong{Mentor potencial:} Urs Liska
 
-@strong{Requisitos:} C++, MIDI
+@divEnd
 
-@strong{Recomendado:} familiaridad con el funcionamiento interno de LilyPond
+@divClass{column-center-middle-color3}
+@subheading Notas de adorno
+
+Arreglar problemas con la sincronización de las notas de adorno.
+Las notas de adorno pueden interferir con la cuenta del tiempo de
+LilyPond y causar efectos extraños, especialmente cuando se usan
+varios pentagramas en los que algunos tienen notas de adorno y
+otros no.
+
+@strong{Dificultad:} media
+@strong{Requisitos:} C++, MIDI
+@strong{Conocimientos recomendados:} familiaridad con el
+funcionamiento interno de LilyPond
+@strong{Mentores potenciales:} Mike Solomon, Carl Sorensen
 
-@strong{Mentor(es):} Mike Solomon, Carl Sorensen
+@divEnd
 
+@divClass{column-center-middle-color3}
 @subheading MusicXML
 
-Añadir exportación completa de MusicXML y mejora de la importación,
-junto a las pruebas de comprobación de que funciona.  Dependiendo del
-tiempo disponible, implementar algunos o todos los siguientes:
+Mejora de las funciones de importación y exportación de MusicXML:
 
 @divClass{keep-bullets}
 @itemize
@@ -961,109 +1009,111 @@ tiempo disponible, implementar algunos o todos los siguientes:
 @item
 Manejo de la exportación del contenido musical básico como la
 exportación MIDI (es decir, uso de clases exportadoras dedicadas,
-derivadas de la clase translator)
+derivadas de la clase translator).
 
 @item
-Construir el árbol XML del contenido musical básico, y una conexión
-desde el evento musical a la etiqueta XML
+Construir el árbol XML del contenido musical básico, y una
+conexión desde el evento musical a la etiqueta XML.
 
 @item
-Hacer que todos los grabadores de LilyPond hagan su trabajo
+Hacer que todos los grabadores de LilyPond hagan su trabajo.
 
 @item
-Añadir la posibilidad de enlazar cada objeto de presentación
-(básicamente cada sello o grupo de sellos) a la causa musical (así
-como a la etiqueta XML dentro del árbol XML)
+Enlazar cada objeto de presentación (es decir, cada sello o grupo
+de sellos) a la causa musical (así como a la etiqueta XML dentro
+del árbol XML).
 
 @item
-Añadir un @q{back-end} de salida XML, que puede después añadir la
-información de disposición para cada uno de los objetos de salida a
-las etiquetas del XML
+Añadir un @q{back-end} de salida XML, que puede después añadir
+información de disposición para cada uno de los objetos de salida
+a las etiquetas del XML.
 
 @end itemize
 @divEnd
 
-El objetivo se considerará conseguido cuando una partitura
-(previamente seleccionada) pueda importarse desde el MusicXML y
-exportada de nuevo sin ninguna pérdida de datos no intencionada.
-
 @strong{Dificultad:} media
-
 @strong{Requisitos:} MusicXML, Python, conocimiento básico de LilyPond
+@strong{Mentores potenciales:} Reinhold Kainhofer, Mike Solomon
 
-@strong{Mentor(es):} Reinhold Kainhofer, Mike Solomon
+Sería un buen tanto a su favor la familiaridad con otros editores
+de partituras para poder hacer pruebas cruzadas.
 
-Sería un buen tanto a su favor la familiaridad con otros editores de
-partituras para poder hacer pruebas cruzadas.
+@divEnd
 
+@divClass{column-center-middle-color3}
 @subheading Mejora de las ligaduras de unión y de expresión
 
-A menudo la forma predeterminada de las curvas de ligadura no es
-satisfactoria.  No están contempladas las ligaduras de unión entre
-notas enarmónicas @code{@{ dos'~ reb' @}}, las ligaduras "rotas" por
-una clave o un cambio de pauta no están bien contempladas.  El
-proyecto incluye la recolección y ordenación de ejemmplos de salida
-defectuosa, decidir sobre la salida que se desea tener y escribir el
-código correspondiente.
+Con frecuencia, las curvas de las ligaduras de unión y de
+expresión no son satisfactorias.  No se manejan bien las ligaduras
+@q{interrumpidas} por cambios de clave o de pentagrama.  El
+proyecto podría incluir y organizar ejemplos de mala salida,
+decidir sobre la salida perseguida y escibir código para
+mejorarla.
 
 @strong{Dificultad:} alta
-
 @strong{Requisitos:} C++, experiencia con heurística de la escritura
-
 @strong{Conocimientos recomendados:} LilyPond, sentido estético
+@strong{Mentor potencial:} Mike Solomon
 
-@strong{Mentor(es):} Mike Solomon
+@divEnd
 
+@divClass{column-center-middle-color3}
 @subheading Añadir una variante especial de los glifos de fuente tipográfica
-Añadir variantes para algunos glifos, como los signos de alteración,
-para líneas sobre la pauta, entre pautas, acortadas y estrechadas, así
-como una infraestructura genérica para incorporarlos.  Un ejemplo es
-la cabeza de la breve de na notación antigua, que viene en dos
-variantes, con el orificio pequeño y grande.
 
-@strong{Dificultad:} fácil
+@divClass{keep-bullets}
+@itemize
 
-@strong{Requisitos:} MetaFont, C++, buen ojo para los detalles
+@item
+Añadir variantes @q{sobre} y @q{entre} líneas del pentagrama.
+
+@item
+Variantes más bajas y estrechas de ciertos glifos, como
+alteraciones alccidentales.  Otro ejemplo más específico sería una
+cabeza de nota breve de la notación antigua en dos variantes, una
+con un hueco pequeño dentro, y otra con un hueco grande.
 
+@end itemize
+@divEnd
+
+@strong{Dificultad:} fácil
+@strong{Requisitos:} MetaFont, C++, buen ojo para los detalles
 @strong{Conocimientos recomendados:} conocimientos básicos de LilyPond
+@strong{Mentor potencial:} Werner Lemberg
 
-@strong{Mentor(es):} Werner Lemberg
+@divEnd
 
-@subheading Mejora del barrado
+@divClass{column-center-middle-color3}
+@subheading Mejora del posicionamiento de las barras de corchea (y figuras menores)
 
-Debería mejorarse el posicionamiento predeterminado de las barras de
-corchea (y figuras menores) normales, de pentagrama cruzado,
-interrumpidas y en ángulo.  El barrado debería depender del contexto y
-de las notas vecinas (véase la
+Para barras de corchea normales, de pentagrama cruzado,
+interrumpidas y en ángulo.  El barrado debería depender del
+contexto y de las notas vecinas (véase la
 @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
-sección 2.2}).
-Si es posible, reducir el tiempo de cálculo del barrado.
+sección 2.2}).  Si es posible, reducir el tiempo de cálculo del
+barrado.
 
 @strong{Dificultad:} media
-
 @strong{Requisitos:} C++, experiencia con heurística de la escritura
-
 @strong{Conocimientos recomendados:} sentido estético
+@strong{Mentores potenciales:} Mike Solomon, Carl Sorensen
+
 
-@strong{Mentor(es):} Mike Solomon, Carl Sorensen
+@divEnd
 
-@subheading Limpieza de diversas advertencias de compliación
+@divClass{column-center-middle-color3}
+@subheading Ayudar a mejorar el comportamiento de la compilación
 
-Limpieza de las advertencias de compilación, análisis estático del
-código, y advertencias de valgrind.  Las herramientoas de análisis
-automático del código (advertencias de @code{g++} y @code{clang}) y
-herramientas de análisis como la detección de filtraciones de memoria
-de los perfiladores de código valgrind y callgrind aportan valiosa
-información sobre posibles problemas en el código de C++.  La limpieza
-de estas advertencias nos permitiría rechazar automáticamente
-cualquier parche que introdujese más advertencias de las que hay
+Las herramientas de análisis automático del código, como la
+detección de filtraciones de memoria de Valgrind o el perfilador
+de código Callgrind, proveen una información valiosa acerca de los
+posibles problemas de nuestro código de C++.  La limpieza de estas
+advertencias nos permitiría rechazar automáticamente cualquier
+parche que introdujese más advertencias de las que hay
 actualmente.
 
 @strong{Dificultad:} media
-
 @strong{Requisitos:} C++
-
-@strong{Mentor(es):} Joe Neeman, Reinhold Kainhofer
+@strong{Mentores potenciales:} Joe Neeman, Reinhold Kainhofer
 
 @divEnd
 
index 507b5bdbf0e10610ace818caac25dadbfc68c628..6d15a48bf2fbac466af7dbd17225b818c3761c05 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 53ea968b35ad64c914a7bd503786aaf8d3b0c762
+    Translation of GIT committish: 43c2555cc5bef3b10f0f9d5c5431697fe7b4cb3c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -83,7 +83,7 @@ versiones anteriores
 
 @divEnd
 
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color2}
 
 @subheading Licencia del Software
 
@@ -92,7 +92,7 @@ LilyPond está publicado bajo la
 @divEnd
 
 
-@divClass{color1}
+@divClass{column-center-bottom}
 
 @subheading Patrocinadores
 
@@ -103,6 +103,9 @@ nuestro ancho de banda.
 @sourceimage{VTlogo_ITF,,,}
 @sourceimage{lao_banner_06_on_white_demo,,,}
 
+@divEnd
+
+@divClass{column-center-bottom}
 @subheading Legalismos
 
 @divClass{legal}
@@ -144,14 +147,13 @@ e imágenes de productos.
 @divClass{column-center-top}
 @subheading ¿Paquetes genéricos, o paquetes específicos de la distribución?
 
-Muchas distribuciones ya incluyen a LilyPond dentro de sus
-repositorios normales de paquetes y con frecuencia son mucho más
-fáciles de instalar que los paquetes genéricos que ofrecemos aquí.
-Sin embargo, la versión de LilyPond de dichos repositorios podría
-ser @emph{significativamente} más antigua que la versión estable
-actual.  Si quiere utilizar nuestros paquetes genéricos, compruebe
+Muchas distribuciones incluyen a LilyPond dentro de sus
+repositorios normales de paquetes que con frecuencia son
+@emph{significativamente} más antiguos que la versión estable
+actual.  Aunque dichos paquetes antiguos pueden ser mucho más
+fáciles de instalar, recomendamos@emph{encarecidamente} que utilice nuestros paquetes genéricos.  En tal caso, compruebe
 que su editor de LilyPond está usando la versión correcta del
-programa lilypond. Véase @ref{Entornos mejorados}.
+programa. Véase @ref{Entornos mejorados}.
 
 @divEnd
 
@@ -169,14 +171,14 @@ programa lilypond. Véase @ref{Entornos mejorados}.
   @downloadDevelLinuxNormal
 @end ifclear
 @ifset web_version
-@downloadStableLinuxNormal
+  @downloadStableLinuxNormal
 @end ifset
-
-(si no está seguro, utilice éste)
+Sistemas de 32 bits.
 
 @item
 @sourceimage{logo-linux,,,}
 @downloadStableLinuxBig
+Sistemas de 64 bits.
 
 @item
 @sourceimage{logo-linux,,,}
@@ -185,10 +187,12 @@ programa lilypond. Véase @ref{Entornos mejorados}.
 @item
 @sourceimage{logo-freebsd,,,}
 @downloadStableFreeBSDNormal
+Sistemas de 32 bits.
 
 @item
 @sourceimage{logo-freebsd,,,}
 @downloadStableFreeBSDBig
+Sistemas de 64 bits.
 
 @end itemize
 
@@ -223,44 +227,6 @@ sh lilypond-@versionStable{}-SIST-OPERATIVO.sh --help
 
 
 @divClass{column-right-top}
-@subheading Paquetes específicos de cada distribución
-
-Utilice el gestor de paquetes de su distribución para instalar o
-actualizar a estas versiones.
-
-@itemize
-
-@item
-@sourceimage{logo-fedora,,,}
-@uref{http://koji.fedoraproject.org/koji/packageinfo?packageID=2447,
-Fedora: LilyPond 2.14.2}
-
-@item
-@sourceimage{logo-ubuntu,,,}
-@uref{http://packages.ubuntu.com/search?keywords=lilypond,
-Ubuntu: LilyPond 2.14.2}
-
-@item
-@sourceimage{logo-slackware,,,}
-@uref{http://www.johannes-schoepfer.de/lilypond/,
-Slackware: LilyPond 2.14.2}
-
-@item
-@sourceimage{logo-debian,,,}
-@uref{http://packages.debian.org/search?keywords=lilypond,
-Debian: LilyPond 2.12.3}
-
-@item
-@sourceimage{logo-suse,,,}
-@uref{http://software.opensuse.org/search?baseproject=openSUSE%3A11.2&p=1&q=lilypond,
-openSUSE: LilyPond 2.12.3}
-
-@end itemize
-
-@divEnd
-
-
-@divClass{column-center-top}
 @subheading Compilación de un archivo
 
 @lilypadCommandLine
@@ -519,7 +485,8 @@ ejecutables de LilyPond de la siguiente manera:
 [@var{ruta preestablecida}];@var{CARPETA}\LilyPond\usr\bin
 @end example
 
-@warning{@var{CARPETA} será por lo general @code{C:@bs{}Archivos de programa}.}
+@warning{@var{CARPETA} será por lo general @code{C:@bs{}Archivos de programa (x86)}
+para los sistemas de 64 bits o @code{C:@bs{}Archivos de programa} para los de 32 bits.}
 
 @noindent
 y pulse el botón @qq{Aceptar} para cerrar la ventana.
index 53282b44e7497417ec692b60c4e7611ac8353c5a..d4f515024952ffcd06af3599086e28fe2c63b963 100644 (file)
@@ -649,7 +649,7 @@ muestra las teclas que hay que pulsar para ayuda de los principiantes
 que están aprendiendo a leer música.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 partituras de música sacra de alta calidad, disponibles para su
 descarga inmediata o en el formato tradicional de papel.
 
@@ -690,7 +690,7 @@ Abril de 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publica un
 artículo titulado
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  Es un artículo introductorio sobre MuseScore,
 LilyPond y Chordii.  La autora Carla Schroder dice que @qq{LilyPond se
 maneja desde la línea de órdenes, pero no deje que la falta de una IGU
@@ -887,7 +887,7 @@ grande].}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{La forma en que se introduce la música para LilyPond me hace
 pensar de una manera más musical -- ha habido veces en que me he
@@ -1388,7 +1388,7 @@ un entorno construido sobre el lenguaje de restricciones
 para KDE 3.5 y como lilypond-KDE4 para KDE 4.1 solamente.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, que importaba
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, que importaba
 @uref{http://www.makemusic.com/musicxml,MusicXML}, se ha escindido en
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
 y @uref{http://canorus.org,Canorus}.
index cd92b96e10e78e8b7bbae1a554c4b04c4964a7a8..80640c4e34302fe1f7cd73f904426547590b919a 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: fdb9b90f39b33d15d097f69c43c7799b1c1dce9b
+    Translation of GIT committish: 0ea80a5e850c6114d1ba7dc4cfd81d5a45d9604a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index f447fbc0c3d35d82499eedf6aacd3b8f48f553ab..e08214ea3b95c56aaefc755451a54053c0c7a410 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 7e3df6b879dcd850a4e7645b1afc151111c77436
+    Translation of GIT committish: df759fb23c969916ac0c4d820b94a460aeb3f35b
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.95!  @emph{3 de noviembre de 2013}
-
-Nos llena de emoción anunciar el lanzamiento de LilyPond@tie{}2.17.95
-como lanzamiento beta de la próxima edicion estable@tie{}2.18.
-Los desarrolladores están aún atareados buscando
-soluciones para algunos problemas de última hora, pero se supone que esta
-edición tendrá las funcionalidades completas, la documentación precisa,
-y que no se habrán pasado por alto problemas de importancia.
-Para actualizar la sintaxis de los archivos de entrada
-a la última versión, consulte @rprogram{Actualizar ficheros con convert-ly}.
-Pruebe esta versión e infórmenos de cualquier porblema, véase
-@rweb{Informes de fallos}.
+@subheading LilyPond 2.19.36 released  @emph{January 31, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.36.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.18.2  @emph{23 de marzo de 2014}
+
+Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.18.2.
+LilyPond es un programa de tipografía musical para editar partituras,
+consagrado a la producción de música impresa de la mayor calidad
+posible.  Lleva al ordenador la estética de la música grabada de la
+forma tradicional.
+
+Esta versión ofrece cierta cantidad de actualizaciones sobre la
+versión 2.18.0 además de unos manuales actualizados.  Nuestro
+consejo para todos los usuarios es que actualicen a esta versión.
+
+@newsEnd
+
+
+@newsItem
+@subheading Una producción hecha con LilyPond, premio a la mejor edición 2014  @emph{11 de marzo de 2014}
+
+Con gran emoción nos complace anunciar que la edición completa de
+las canciones de Oskar Fried (1871-1941), recientemente publicadas
+por nuestros compañeros y colaboradores Urs Liska y Janek Warchoł
+[1], han recibido el premio "Musikeditionspreis BEST EDITION 2014"
+de la asociación de editores de música alemanes [2].  La ceremonia
+tuvo lugar en la Musikmesse de Frankfurt.
+
+Felicitamos a Janek y a Urs por haber obtenido tan alto
+reconocimiento público a la excelencia editorial y tipográfica de
+su trabajo.  También es un placer informar de su intención de
+poner la obra a disposición bajo una licencia libre tan pronto
+como se cubran los gastos de la editorial.  Apoye esta iniciativa
+adquiriendo el volumen impreso directamente de la editorial [3].
+
+[1] @uref{http://lilypondblog.org/category/fried-songs}@*
+[2] @uref{http://www.best-edition.de}@*
+[3] @uref{http://www.sound-rel.de}@*
+
+@newsEnd
+
+
+@newsItem
+@subheading Lanzado Lilypond 2.18.0  @emph{29 de diciembre de 2013}
+
+Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond
+2.18.0.  LilyPond es un programa de tipografía musical para editar
+partituras, consagrado a la producción de música impresa de la
+mayor calidad posible.  Lleva al ordenador la estética de la
+música grabada de la forma tradicional.
+
+Entre las numerosas mejoras y cambios, relacionamos a continuación
+los que son más visibles:
+
+@itemize @bullet
+@item
+Ahora se recolocan muchos elementos utilizando su perfil real en
+lugar de una@tie{}caja circundante rectangular.  Esta mejora
+reduce enormemente la posibilidad de que aparezcan espacios vacíos
+grandes.
+
+@item
+Los ajustes y sobreescrituras pueden usar ahora la sintaxis
+@example
+\override Voice.TextSpanner.bound-details.left.text = "rit."
+@end example
+en lugar de la anterior, que era
+@example
+\override Voice.TextSpanner #'(bound-details left text) = "rit."
+@end example
+
+@item
+Los tresillos con una longitud total dada se pueden escribir ahora
+como
+@example
+\tuplet 3/2 4 @{ c8 c c  c c c @}
+@end example
+en lugar de
+@example
+\times 2/3 @{ c8 c c @}  \times 2/3 @{ c8 c c @}
+@end example
+@end itemize
+
+Existe una lista todas las nuevas funcionalidades destacables, en
+
+@example
+@uref{http://lilypond.org/doc/v2.18/Documentation/changes/index.html}
+@end example
+
+Estamos muy agradecidos al elevado número de entusiastas de
+LilyPond cuyo apoyo financiero ha hecho posible que un
+desarrollador central, David Kastrup, pueda centrarse
+exclusivamente en LilyPond durante todo el ciclo de desarrollo.
+
+LilyPond 2.18 llega hasta usted por parte de
+
+@table @asis
+@item Desarrolladores principales:
+Bertrand Bordage, Trevor Daniels, Colin Hall, Phil Holmes, Ian
+Hulin, Reinhold Kainhofer, David Kastrup, Jonathan Kulp, Werner
+Lemberg, John Mandereau, Patrick McCarty, Joe Neeman, Han-Wen
+Nienhuys, Jan Nieuwenhuizen, Graham Percival, Mark Polesky, Neil
+Puttock, Mike Solomon, Carl Sorensen, Francisco Vila, Valentin
+Villenave, Janek Warchoł
+
+@item Núcleo de colaboradores:
+Aleksandr Andreev, Frédéric Bron, Torsten Hämmerle, Marc Hohl,
+James Lowe, Andrew Main, Thomas Morley, David Nalesnik, Keith
+OHara, Benkő Pál, Anders Pilegaard, Julien Rioux, Johannes Rohrer,
+Adam Spiers, Heikki Tauriainen
+
+@item Redactores de la documentación:
+Frédéric Bron, Federico Bruni, Colin Campbell, Urs Liska, James
+Lowe, Thomas Morley, Jean-Charles Malahieude, Guy Stalnaker,
+Martin Tarenskeen, Arnold Theresius, Rodolfo Zitellini
+
+@item Escuadrón de fallos:
+Colin Campbell, Eluze, Marc Hohl, Phil Holmes, Marek Klein, Ralph
+Palmer
+
+@item Equipo de apoyo:
+Colin Campbell, Eluze, Marc Hohl, Marek Klein, Kieren MacMillan,
+Urs Liska, Ralph Palmer
+
+@item Traductores:
+Federico Bruni, Luca Rossetto Casel, Felipe Castro, Pavel Fric,
+Jean-Charles Malahieude, Till Paala, Yoshiki Sawada
+
+@end table
+y muchos otros colaboradores.
 
 @newsEnd
 
 @newsItem
-@subsubheading El blog de LilyPond.  @emph{2 de junio de 2013}
+@subheading El blog de LilyPond.  @emph{2 de junio de 2013}
 
 Janek Warchoł ha creado un blog de LilyPond.  ¡Se encuentra alojado
 en @uref{http://lilypondblog.org/, lilypondblog.org}!
@@ -42,7 +169,7 @@ en @uref{http://lilypondblog.org/, lilypondblog.org}!
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.16.2!  @emph{4 de enero 2013}
+@subheading ¡Lanzado LilyPond 2.16.2!  @emph{4 de enero 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.16.2.  Este
 lanzamiento se realiza principalmente para corregir un problema
@@ -52,7 +179,7 @@ versión solamente aquellos que necesiten esta funcionalidad.
 @newsEnd
 
 @newsItem
-@subsubheading El Informe LilyPond, número 28. @emph{12 de noviembre de 2012}
+@subheading El Informe LilyPond, número 28. @emph{12 de noviembre de 2012}
 
 La @uref{http://web.archive.org/web/20110325004849/http://news.lilynet.net/?The-LilyPond-Report-28, edición
 de octubre del @emph{Informe LilyPond}} se centra en el
@@ -76,7 +203,7 @@ aportaciones serán calurosamente bien recibidos!
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.16.1!  @emph{9 de noviembre de 2012}
+@subheading ¡Lanzado LilyPond 2.16.1!  @emph{9 de noviembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.16.1. Contiene
 cierto número de actualizaciones sobre la anterior versión
@@ -85,7 +212,7 @@ actualicen a esta versión.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
+@subheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.16.0.
 LilyPond es un programa de tipografía musical para editar partituras,
index d040c345537c51ab7df0bda2a50f2735fba1987b..da7861a1a364e5b92f722385dc209dd7a37f89c7 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 7e3df6b879dcd850a4e7645b1afc151111c77436
+    Translation of GIT committish: df759fb23c969916ac0c4d820b94a460aeb3f35b
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -18,7 +18,7 @@ NOTE:
   * avoid putting links in running text. They make text harder to read.
   Preferably: (@uref{,...}, etc. )
 
-  * use a descriptive title in @subsubheading
+  * use a descriptive title in @subheading
 
   * writing date in "Month DD, YYYY" format is required for
   generating the RSS feed; in case the message (and thus the date)
@@ -34,7 +34,556 @@ NOTE:
 @end ignore
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.29!  @emph{20 de octubre de 2013}
+@subheading Lanzado LilyPond 2.19.35  @emph{2 de enero de 2016}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.35.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.34  @emph{22 de diciembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.34.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.33  @emph{6 de diciembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.33.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.32   @emph{22 de noviembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.32.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.31   @emph{8 de noviembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.31.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.30   @emph{25 de octubre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.30.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.29   @emph{18 de octubre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.29.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.28   @emph{27 de septiembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.28.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.27   @emph{12 de septiembre de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.27.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.26   @emph{27 de agosto de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.26.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.25   @emph{9 de agosto de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.25.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.24   @emph{26 de julio de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.24.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.23   @emph{12 de julio de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.23.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.22   @emph{28 de junio de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.22.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.21   @emph{24 de mayo de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.21.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.20   @emph{10 de mayo de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.20.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.19   @emph{26 de abril de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.19.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.18   @emph{5 de abril de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.18.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.17   @emph{15 de marzo de 2015}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.17.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.16   @emph{28 de febrero de 2015}
+
+Por fin, después de un largo período, nos complace mucho anunciar
+el lanzamiento de LilyPond 2.19.16.  Esta versión contiene el
+conjunto habitual de correcciones de fallos y ampliación de las
+funcionalidades, y contiene trabajos en desarrollo.  Tendrá acceso
+a las últimas posibilidades, pero algunas podrían estar
+incompletas, y podría encontrar fallos y finalizaciones abruptas.
+Si necesita una versión estable de LilyPond, nuestro consejo es
+que utilice la versión 2.18.
+
+Nuestro reconocimiento y agradecimiento a Masamichi Hosoda por
+hacer posible este lanzamiento con su trabajo sobre la
+actualización del GUB, la herramienta de construcción del
+programa.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.15   @emph{28 de septiembre de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.15.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.14   @emph{14 de septiembre de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.14.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.13   @emph{31 de agosto de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.13.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.12   @emph{17 de agosto de, 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.12.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.11   @emph{3 de agosto de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.11.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.10   @emph{13 de julio de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.10.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.9   @emph{29 de junio de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.9.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.8   @emph{15 de junio de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.8.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.7   @emph{25 de mayo de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.7.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.6   @emph{11 de mayo de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.6.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.5   @emph{20 de abril de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.5.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.4   @emph{6 de abril de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.4.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.3   @emph{2 de marzo de, 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.3.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.18.1  @emph{16 de febrero de 2014}
+
+Hemos lanzado los manuales actualizados para la versión estable de
+LilyPond, 2.18.  Los manuales corresponden ahora a la versión
+2.18.1 y llevan una cierta cantidad de actualizaciones y mejoras
+sobre 2.18.0.  Se producirá otro lanzamiento de 2.18 más tarde
+(2.18.2), que incluirá las actualizaciones de los manuales así
+como ciertas mejoras de menor importancia a la funcionalidad del
+núcleo de LilyPond.
+
+Como resumen de la situación actual, puede decirse que la versión
+estable del programa LilyPond es la 2.18.0; los manuales estables
+de LilyPond son la versión 2.18.1; y las versiones de desarrollo
+para ambos tienen el número de versión 2.19.2.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.2   @emph{2 de febrero de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.2.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.1   @emph{19 de enero de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.1.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.19.0   @emph{5 de enero de 2014}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.19.0.  Esta
+versión contiene el conjunto habitual de correcciones de fallos y
+ampliación de las funcionalidades, y contiene trabajos en
+desarrollo.  Tendrá acceso a las últimas posibilidades, pero
+algunas podrían estar incompletas, y podría encontrar fallos y
+finalizaciones abruptas.  Si necesita una versión estable de
+LilyPond, nuestro consejo es que utilice la versión 2.18.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.17.97  @emph{8 de diciembre de 2013}
+
+Nos llena de entusiasmo anunciar el lanzamiento de
+LilyPond@tie{}2.17.97 como una versión beta, potencialmente
+definitiva, de la próxima versión estable@tie{}2.18.  Los
+desarrolladores están convencidos de que el conjunto de
+funcionalidades es coherente, que la documentación es correcta y
+que no se ha pasado por alto ningún problema importante.  Para la
+actualización de la sintaxis de sus archivos de entrada a la
+última versión, consulte
+@uref{http://www.lilypond.org/doc/v2.17/Documentation/usage/updating-files-with-convert_002dly,
+Updating files with convert-ly}.  Le rogamos que pruebe esta
+versión y nos informe de cualquier problema, véase
+@uref{http://www.lilypond.org/website/bug-reports.html, Informes
+de fallo}.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.17.96  @emph{24 de noviembre de 2013}
+
+Nos llena de entusiasmo anunciar el lanzamiento de
+LilyPond@tie{}2.17.96 como otra versión beta de la próxima versión
+estable@tie{}2.18.  Los desarrolladores están convencidos de que
+el conjunto de funcionalidades es coherente, que la documentación
+es correcta y que no se ha pasado por alto ningún problema
+importante.  Para la actualización de la sintaxis de sus archivos
+de entrada a la última versión, consulte
+@uref{http://www.lilypond.org/doc/v2.17/Documentation/usage/updating-files-with-convert_002dly,
+Updating files with convert-ly}.  Le rogamos que pruebe esta
+versión y nos informe de cualquier problema, véase
+@uref{http://www.lilypond.org/website/bug-reports.html, Informes
+de fallo}.
+
+@newsEnd
+
+@newsItem
+@subheading Lanzado LilyPond 2.17.95  @emph{3 de noviembre de 2013}
+
+Nos llena de entusiasmo anunciar el lanzamiento de
+LilyPond@tie{}2.17.95 como beta de la próxima versión
+estable@tie{}2.18.  Los desarrolladores están convencidos de que
+el conjunto de funcionalidades es coherente, que la documentación
+es correcta y que no se ha pasado por alto ningún problema
+importante.  Para la actualización de la sintaxis de sus archivos
+de entrada a la última versión, consulte
+@uref{http://www.lilypond.org/doc/v2.17/Documentation/usage/updating-files-with-convert_002dly,
+Updating files with convert-ly}.  Le rogamos que pruebe esta
+versión y nos informe de cualquier problema, véase
+@uref{http://www.lilypond.org/website/bug-reports.html, Informes
+de fallo}.
+
+
+@newsEnd
+
+@newsItem
+@subheading ¡Lanzado LilyPond 2.17.29!  @emph{20 de octubre de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.29.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -47,7 +596,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.28!  @emph{6 de octubre de 2013}
+@subheading ¡Lanzado LilyPond 2.17.28!  @emph{6 de octubre de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.28.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -60,7 +609,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.27!  @emph{26 de septiembre de 2013}
+@subheading ¡Lanzado LilyPond 2.17.27!  @emph{26 de septiembre de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.27.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -73,7 +622,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.26!  @emph{8 de septiembre de 2013}
+@subheading ¡Lanzado LilyPond 2.17.26!  @emph{8 de septiembre de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.26.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -86,7 +635,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.25!  @emph{25 de agosto de 2013}
+@subheading ¡Lanzado LilyPond 2.17.25!  @emph{25 de agosto de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.25.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -99,7 +648,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.24!  @emph{11 de agosto de 2013}
+@subheading ¡Lanzado LilyPond 2.17.24!  @emph{11 de agosto de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.24.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -112,7 +661,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.23!  @emph{28 de julio de 2013}
+@subheading ¡Lanzado LilyPond 2.17.23!  @emph{28 de julio de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.23.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -125,7 +674,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.22!  @emph{14 de julio de 2013}
+@subheading ¡Lanzado LilyPond 2.17.22!  @emph{14 de julio de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.22.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -141,7 +690,7 @@ que finalizaba de forma abrupta con un problema en el posicionamiento del texto.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.21!  @emph{30 de junio de 2013}
+@subheading ¡Lanzado LilyPond 2.17.21!  @emph{30 de junio de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.21.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -154,7 +703,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.20!  @emph{9 de junio de 2013}
+@subheading ¡Lanzado LilyPond 2.17.20!  @emph{9 de junio de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.20.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -167,7 +716,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.19!  @emph{26 de mayo de 2013}
+@subheading ¡Lanzado LilyPond 2.17.19!  @emph{26 de mayo de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.19.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -180,7 +729,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.18!  @emph{11 de mayo de 2013}
+@subheading ¡Lanzado LilyPond 2.17.18!  @emph{11 de mayo de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.18.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -193,7 +742,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.17!  @emph{27 de abril de 2013}
+@subheading ¡Lanzado LilyPond 2.17.17!  @emph{27 de abril de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.17.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -206,7 +755,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.16!  @emph{13 de abril de 2013}
+@subheading ¡Lanzado LilyPond 2.17.16!  @emph{13 de abril de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.16.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -219,7 +768,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.15!  @emph{30 de marzo de 2013}
+@subheading ¡Lanzado LilyPond 2.17.15!  @emph{30 de marzo de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.15.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -232,7 +781,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.14!  @emph{10 de marzo de 2013}
+@subheading ¡Lanzado LilyPond 2.17.14!  @emph{10 de marzo de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.14.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -245,7 +794,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.13!  @emph{23 de febrero de 2013}
+@subheading ¡Lanzado LilyPond 2.17.13!  @emph{23 de febrero de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.13.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -258,7 +807,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.12!  @emph{8 de febrero de 2013}
+@subheading ¡Lanzado LilyPond 2.17.12!  @emph{8 de febrero de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.12.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -271,7 +820,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.11!  @emph{26 de enero de 2013}
+@subheading ¡Lanzado LilyPond 2.17.11!  @emph{26 de enero de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.11.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -284,7 +833,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.10!  @emph{12 de enero de 2013}
+@subheading ¡Lanzado LilyPond 2.17.10!  @emph{12 de enero de 2013}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.10.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -297,7 +846,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.9!  @emph{15 de diciembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.9!  @emph{15 de diciembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.9.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -310,7 +859,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.8!  @emph{1 de diciembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.8!  @emph{1 de diciembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.8.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -323,7 +872,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.7!  @emph{17 de noviembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.7!  @emph{17 de noviembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.7.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -337,7 +886,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.16.1!  @emph{9 de noviembre de 2012}
+@subheading ¡Lanzado LilyPond 2.16.1!  @emph{9 de noviembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.16.1. Esta
 versión contiene cierto número de actualizaciones sobre la
@@ -346,7 +895,7 @@ problema. Recomendamos a todos que actualicen a esta versión.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.6!  @emph{3 de noviembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.6!  @emph{3 de noviembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.6.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -359,7 +908,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.5!  @emph{20 de octubre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.5!  @emph{20 de octubre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.5.  Esta
 versión contiene el conjunto habitual de correcciones de fallos y
@@ -372,7 +921,7 @@ LilyPond, nuestro consejo es que utilice la versión 2.16.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.4!  @emph{6 de octubre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.4!  @emph{6 de octubre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.4.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -383,7 +932,7 @@ utilicen esta versión, sino la 2.16 estable en su lugar.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.3!  @emph{23 de septiembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.3!  @emph{23 de septiembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.3.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -395,7 +944,7 @@ lugar.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.2!  @emph{10 de septiembre de 2012}
+@subheading ¡Lanzado LilyPond 2.17.2!  @emph{10 de septiembre de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.2.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -407,7 +956,7 @@ lugar.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.1!  @emph{28 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.17.1!  @emph{28 de agosto de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.1.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -419,7 +968,7 @@ lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.17.0!  @emph{26 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.17.0!  @emph{26 de agosto de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.17.0.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -430,7 +979,7 @@ lugar.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
+@subheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.16.0.
 LilyPond es un programa de tipografía musical para editar partituras,
@@ -495,7 +1044,7 @@ Jean-Charles Malahieude, Till Paala, Yoshiki Sawada
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.95!  @emph{11 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.15.95!  @emph{11 de agosto de 2012}
 
 Estamos encantados de anunciar el lanzamiento de LilyPond 2.15.95.
 Con esta edición, se congela el desarrollo sobre la versión 2.15 para
@@ -514,7 +1063,7 @@ en el manual de @qq{Cambios} en la sección de la página web sobre
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.42!  @emph{2 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.15.42!  @emph{2 de agosto de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.42.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -528,7 +1077,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 27. @emph{2 de agosto 2012}
+@subheading El Informe LilyPond, número 27. @emph{2 de agosto 2012}
 
 Vuelve @emph{El informe LilyPond}, con una interesante incursión en
 las funcionalidades relacionadas con Scheme añadidas recientemente por
@@ -546,7 +1095,7 @@ aportaciones serán calurosamente bien recibidos!
 
 
 @newsItem
-@subsubheading Retirada de la versión candidata al lanzamiento @emph{11 de julio de 2012}
+@subheading Retirada de la versión candidata al lanzamiento @emph{11 de julio de 2012}
 
 Hemos descubierto una regresión desde la versión 2.14.2, de manera que
 lilypond 2.15.41 ya no es candidata al lanzamiento de 2.16.0.  Sin
@@ -558,7 +1107,7 @@ cualquier problema, envíenos @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading Octava candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.41!  @emph{4 de julio de 2012}
+@subheading Octava candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.41!  @emph{4 de julio de 2012}
 
 Ha salido LilyPond 2.15.41; ésta es la octava versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -575,7 +1124,7 @@ nos envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.40!  @emph{5 de junio de 2012}
+@subheading ¡Lanzado LilyPond 2.15.40!  @emph{5 de junio de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.40.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -589,7 +1138,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading Retirada de la versión candidata al lanzamiento  @emph{1 de junio de 2012}
+@subheading Retirada de la versión candidata al lanzamiento  @emph{1 de junio de 2012}
 
 Hemos decubierto una regresión desde la versión 2.14.2, de manera que
 lilypond 2.15.39 ya no es candidata para el lanzamiento de la versión
@@ -602,7 +1151,7 @@ Si descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading Séptima candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.39!  @emph{22 de mayo de 2012}
+@subheading Séptima candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.39!  @emph{22 de mayo de 2012}
 
 Ha salido LilyPond 2.15.38; ésta es la séptima versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -619,7 +1168,7 @@ envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 26. @emph{22 de mayo de 2012}
+@subheading El Informe LilyPond, número 26. @emph{22 de mayo de 2012}
 
 Vuelve el @emph{Informe LilyPond}, con un nuevo editor a bordo: Pavel
 Roskin, que nos cuenta algo de sus aventuras en las extrañas tierras
@@ -636,7 +1185,7 @@ aportaciones serán calurosamente bien recibidos!
 
 
 @newsItem
-@subsubheading Sexta candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.38!  @emph{3 de mayo de 2012}
+@subheading Sexta candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.38!  @emph{3 de mayo de 2012}
 
 Ha salido LilyPond 2.15.38; ésta es la sexta versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -651,7 +1200,7 @@ necesaria otra versión candidata al lanzamiento.
 
 
 @newsItem
-@subsubheading ¡LilyPond participa en Google Summer of Code 2012!  @emph{25 de abril de 2012}
+@subheading ¡LilyPond participa en Google Summer of Code 2012!  @emph{25 de abril de 2012}
 
 Como parte del @uref{http://www.gnu.org/, proyecto GNU}, participamos
 en el programa
@@ -667,7 +1216,7 @@ letras de canción en LilyPond.
 
 
 @newsItem
-@subsubheading Quinta versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.37!  @emph{19 de abril de 2012}
+@subheading Quinta versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.37!  @emph{19 de abril de 2012}
 
 Ha salido LilyPond 2.15.37; ésta es la quinta versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -684,7 +1233,7 @@ envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading Cuarta versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.36!  @emph{6 de abril de 2012}
+@subheading Cuarta versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.36!  @emph{6 de abril de 2012}
 
 Ha salido LilyPond 2.15.36; ésta es la cuarta versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -701,7 +1250,7 @@ nos envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 25. @emph{1 de abril de 2012}
+@subheading El Informe LilyPond, número 25. @emph{1 de abril de 2012}
 
 ¡Vuelve @emph{El Informe LilyPond}, con una edición bastante poco
 habitual de la que destacamos a nuestro joven colaborador polaco Janek
@@ -716,7 +1265,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.35!  @emph{28 de marzo de 2012}
+@subheading ¡Lanzado LilyPond 2.15.35!  @emph{28 de marzo de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.35.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -730,7 +1279,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.34!  @emph{19 de marzo de 2012}
+@subheading ¡Lanzado LilyPond 2.15.34!  @emph{19 de marzo de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.34.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -744,7 +1293,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.33!  @emph{8 de marzo de 2012}
+@subheading ¡Lanzado LilyPond 2.15.33!  @emph{8 de marzo de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.33.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -758,7 +1307,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 24. @emph{5 de marzo de 2012}
+@subheading El Informe LilyPond, número 24. @emph{5 de marzo de 2012}
 
 Ya está disponible una nueva edición del @emph{Informe LilyPond};
 entre los temas tratados se encuentra una solicitud de financiación,
@@ -774,7 +1323,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.32!  @emph{3 de marzo de 2012}
+@subheading ¡Lanzado LilyPond 2.15.32!  @emph{3 de marzo de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.32.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -788,7 +1337,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.31!  @emph{29 de febrero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.31!  @emph{29 de febrero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.31.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -802,7 +1351,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading Tercera versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.30!  @emph{17 de febrero de 2012}
+@subheading Tercera versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.30!  @emph{17 de febrero de 2012}
 
 Ha salido LilyPond 2.15.30; ésta es la tercera versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -819,7 +1368,7 @@ nos envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.29!  @emph{9 de febrero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.29!  @emph{9 de febrero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.29.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -833,7 +1382,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.28!  @emph{3 de febrero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.28!  @emph{3 de febrero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.28.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -847,7 +1396,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.27!  @emph{24 de enero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.27!  @emph{24 de enero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.27.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -861,7 +1410,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 23. @emph{20 de enero de 2012}
+@subheading El Informe LilyPond, número 23. @emph{20 de enero de 2012}
 
 ¡Vuelve el @emph{Informe LilyPond}, con el desarrollador David Kastrup
 como nuevo editor!  Esta edición inclute una panorámica de algunas de
@@ -877,7 +1426,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.26!  @emph{16 de enero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.26!  @emph{16 de enero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.26.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -893,7 +1442,7 @@ La versión 2.15.25 se ha saltado debido a problemas de construcción.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.24!  @emph{7 de enero de 2012}
+@subheading ¡Lanzado LilyPond 2.15.24!  @emph{7 de enero de 2012}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.24.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -907,7 +1456,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.23!  @emph{21 de diciembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.23!  @emph{21 de diciembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.23.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -921,7 +1470,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.22!  @emph{15 de diciembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.22!  @emph{15 de diciembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.22.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -935,7 +1484,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.21!  @emph{6 de diciembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.21!  @emph{6 de diciembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.21.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -949,7 +1498,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.20!  @emph{24 de noviembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.20!  @emph{24 de noviembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.20.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -963,7 +1512,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.19!  @emph{18 de noviembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.19!  @emph{18 de noviembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.19.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -977,7 +1526,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.18!  @emph{12 de noviembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.18!  @emph{12 de noviembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.18.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -991,7 +1540,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.17!  @emph{10 de noviembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.17!  @emph{10 de noviembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.17.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1005,7 +1554,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.16!  @emph{28 de octubre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.16!  @emph{28 de octubre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.16.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1019,7 +1568,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.15!  @emph{24 de octubre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.15!  @emph{24 de octubre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.15.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1033,7 +1582,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.14!  @emph{7 de octubre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.14!  @emph{7 de octubre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.14.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1047,7 +1596,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.13!  @emph{27 de septiembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.13!  @emph{27 de septiembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.13.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1061,7 +1610,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading Se cancela la segunda versión candidata al lanzamiento @emph{23 de septiembre de 2011}
+@subheading Se cancela la segunda versión candidata al lanzamiento @emph{23 de septiembre de 2011}
 
 La cuenta atrás del lanzamiento se cancela a causa del descubrimiento
 de una regresión crítica.
@@ -1070,7 +1619,7 @@ de una regresión crítica.
 
 
 @newsItem
-@subsubheading Segunda versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.12!  @emph{20 de septiembre de 2011}
+@subheading Segunda versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.12!  @emph{20 de septiembre de 2011}
 
 Ha salido LilyPond 2.15.12; ésta es la segunda versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -1087,7 +1636,7 @@ nos envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.11!  @emph{11 de septiembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.11!  @emph{11 de septiembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.11.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1101,7 +1650,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.10!  @emph{6 de septiembre de 2011}
+@subheading ¡Lanzado LilyPond 2.15.10!  @emph{6 de septiembre de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.10.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1115,7 +1664,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.9!  @emph{30 de agosto de 2011}
+@subheading ¡Lanzado LilyPond 2.15.9!  @emph{30 de agosto de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.9.  Esta versión
 contiene el conjunto habitual de correcciones de fallos y contempla
@@ -1130,7 +1679,7 @@ candidata al lanzamiento de la próxima versión estable.
 
 
 @newsItem
-@subsubheading Primera versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.8!  @emph{1 de agosto de 2011}
+@subheading Primera versión candidata al lanzamiento de 2.16: ¡Lanzado LilyPond 2.15.8!  @emph{1 de agosto de 2011}
 
 Ha salido LilyPond 2.15.8; ésta es la primera versión candidata al
 lanzamiento de la inminente versión estable 2.16.  Se invita a los
@@ -1147,7 +1696,7 @@ nos envíe @ref{Informes de fallos}.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.7!  @emph{29 de julio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.7!  @emph{29 de julio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.7.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1159,7 +1708,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.6!  @emph{26 de julio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.6!  @emph{26 de julio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.6.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1171,7 +1720,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.14.2!  @emph{25 de julio de 2011}
+@subheading ¡Lanzado LilyPond 2.14.2!  @emph{25 de julio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.14.2.  Esta versión
 corrige algunos fallos de poca importancia en la versión estable, y no
@@ -1184,7 +1733,7 @@ versión.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.5!  @emph{12 de julio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.5!  @emph{12 de julio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.5.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1196,7 +1745,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.4!  @emph{4 de julio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.4!  @emph{4 de julio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.4.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1208,7 +1757,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.3!  @emph{27 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.3!  @emph{27 de junio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.3.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1220,7 +1769,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.2!  @emph{18 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.2!  @emph{18 de junio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.2.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1232,7 +1781,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.14.1!  @emph{12 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.14.1!  @emph{12 de junio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.14.1.  Esta versión
 corrige algunos fallos de poca importancia en la versión estable, y no
@@ -1242,7 +1791,7 @@ versión.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.1!  @emph{11 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.1!  @emph{11 de junio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.1.  Esta versión
 contiene el conjunto habitual de correcciones de fallos.
@@ -1253,7 +1802,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.15.0!  @emph{7 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.15.0!  @emph{7 de junio de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.15.0.  Marca el
 comienzo de un nuevo esfuerzo de desarrollo no estable, y añade el
@@ -1266,7 +1815,7 @@ utilicen esta versión, sino la 2.14 estable en su lugar.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.14.0! @emph{6 de junio de 2011}
+@subheading ¡Lanzado LilyPond 2.14.0! @emph{6 de junio de 2011}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.14.
 LilyPond es un programa de grabado musical (edición de partituras)
@@ -1345,7 +1894,7 @@ Munnik, Till Paala, Ralf Wildenhues, Yoshiki Sawada.
 
 
 @newsItem
-@subsubheading Séptima versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.63!  @emph{30 de mayo de 2011}
+@subheading Séptima versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.63!  @emph{30 de mayo de 2011}
 
 Ha salido LilyPond 2.13.63; ésta es la sexta versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1363,7 +1912,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.62!  @emph{24 de mayo de 2011}
+@subheading ¡Lanzado LilyPond 2.13.62!  @emph{24 de mayo de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.62.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1376,7 +1925,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.61!  @emph{1 de mayo de 2011}
+@subheading ¡Lanzado LilyPond 2.13.61!  @emph{1 de mayo de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.61.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1389,7 +1938,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.60!  @emph{16 de abril de 2011}
+@subheading ¡Lanzado LilyPond 2.13.60!  @emph{16 de abril de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.60.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1402,11 +1951,11 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading Artículo en la revista Linux Journal Magazine (@emph{abril de 2011})
+@subheading Artículo en la revista Linux Journal Magazine (@emph{abril de 2011})
 
 La revista @uref{http://www.linux-magazine.com,Linux Magazine} publica
 un artículo en su edición de mayo de 2011 bajo el título
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  Es una introducción a MuseScore, LilyPond y
 Chordii.  La autora Carla Schroder dice que @qq{LilyPond se maneja a
 partir de la línea de órdenes, pero que no le asuste la falta de una
@@ -1415,7 +1964,7 @@ aprender}, y aporta un ejemplo práctico.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.59!  @emph{10 de abril de 2011}
+@subheading ¡Lanzado LilyPond 2.13.59!  @emph{10 de abril de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.59.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1428,7 +1977,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading Sexta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.58!  @emph{7 de abril de 2011}
+@subheading Sexta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.58!  @emph{7 de abril de 2011}
 
 Ha salido LilyPond 2.13.58; ésta es la quinta versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1446,7 +1995,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading Quinta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.57!  @emph{3 de abril de 2011}
+@subheading Quinta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.57!  @emph{3 de abril de 2011}
 
 Ha salido LilyPond 2.13.57; ésta es la quinta versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1464,7 +2013,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading Cuarta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.56!  @emph{29 de marzo de 2011}
+@subheading Cuarta versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.56!  @emph{29 de marzo de 2011}
 
 Ha salido LilyPond 2.13.56; ésta es la cuarta versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1482,7 +2031,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.55!  @emph{22 de marzo de 2011}
+@subheading ¡Lanzado LilyPond 2.13.55!  @emph{22 de marzo de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.55.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1495,7 +2044,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading Retirada de la tercera versión candidata al lanzamiento  @emph{15 de marzo de 2011}
+@subheading Retirada de la tercera versión candidata al lanzamiento  @emph{15 de marzo de 2011}
 
 Hemos decubierto una regresión desde la versión 2.12.3, de manera que
 lilypond 2.13.54 ya no es candidata para el lanzamiento de la versión
@@ -1508,7 +2057,7 @@ Si descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading Tercera versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.54!  @emph{13 de marzo de 2011}
+@subheading Tercera versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.54!  @emph{13 de marzo de 2011}
 
 Ha salido LilyPond 2.13.54; ésta es la tercera versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1526,7 +2075,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.53!  @emph{6 de marzo de 2011}
+@subheading ¡Lanzado LilyPond 2.13.53!  @emph{6 de marzo de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.53.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1538,7 +2087,7 @@ fallos críticos.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.52!  @emph{1 de marzo de 2011}
+@subheading ¡Lanzado LilyPond 2.13.52!  @emph{1 de marzo de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.52.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1550,7 +2099,7 @@ fallos críticos.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.51!  @emph{22 de febrero de 2011}
+@subheading ¡Lanzado LilyPond 2.13.51!  @emph{22 de febrero de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.51.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1563,7 +2112,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.50!  @emph{13 de febrero de 2011}
+@subheading ¡Lanzado LilyPond 2.13.50!  @emph{13 de febrero de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.50.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.
@@ -1575,7 +2124,7 @@ fallos críticos.
 
 
 @newsItem
-@subsubheading ¡Nuevas traducciones de la página web al checo y al chino! @emph{11 de febrero de 2011}
+@subheading ¡Nuevas traducciones de la página web al checo y al chino! @emph{11 de febrero de 2011}
 
 Se han añadido dos idiomas nuevos a nuestra página web: el chino, obra
 de Ben Luo, y el checo, por Pavel Fric.  Es un trabajo que está en
@@ -1587,7 +2136,7 @@ esto ya son diez idiomas para elegir!
 
 
 @newsItem
-@subsubheading Segunda versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.49!  @emph{9 de febrero de 2011}
+@subheading Segunda versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.49!  @emph{9 de febrero de 2011}
 
 Ha salido LilyPond 2.13.49; ésta es la segunda versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1605,7 +2154,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.48!  @emph{5 de febrero de 2011}
+@subheading ¡Lanzado LilyPond 2.13.48!  @emph{5 de febrero de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.48.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1617,7 +2166,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.47!  @emph{28 de enero de 2011}
+@subheading ¡Lanzado LilyPond 2.13.47!  @emph{28 de enero de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.47.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1629,7 +2178,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading Retirada de la versión candidata al lanzamiento  @emph{13 de enero de 2011}
+@subheading Retirada de la versión candidata al lanzamiento  @emph{13 de enero de 2011}
 
 Hemos decubierto una regresión desde la versión 2.12.3, de manera que
 lilypond 2.13.46 ya no es candidata para el lanzamiento de la versión
@@ -1642,7 +2191,7 @@ Si descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading Primera versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.46!  @emph{12 de enero de 2011}
+@subheading Primera versión candidata al lanzamiento de 2.14: ¡Lanzado LilyPond 2.13.46!  @emph{12 de enero de 2011}
 
 Ha salido LilyPond 2.13.46; ésta es la primera versión candidata al
 lanzamiento de la inminente versión estable 2.14.  Se invita a los
@@ -1660,7 +2209,7 @@ descubre algún problema, le rogamos que nos envíe
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.45!  @emph{3 de enero de 2011}
+@subheading ¡Lanzado LilyPond 2.13.45!  @emph{3 de enero de 2011}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.45.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1673,7 +2222,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading Tercera versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.44! @emph{25 de diciembre de 2010}
+@subheading Tercera versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.44! @emph{25 de diciembre de 2010}
 
 Ha salido LilyPond 2.13.44; ésta es la primera versión beta de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1690,7 +2239,7 @@ problemas; tan sólo envíenos @ref{Informes de fallos} educados.
 
 
 @newsItem
-@subsubheading Segunda versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.43! @emph{14 de diciembre de 2010}
+@subheading Segunda versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.43! @emph{14 de diciembre de 2010}
 
 Ha salido LilyPond 2.13.43; ésta es la primera versión beta de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1707,7 +2256,7 @@ problemas; tan sólo envíenos @ref{Informes de fallos} educados.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.42!  @emph{8 de diciembre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.42!  @emph{8 de diciembre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.42.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1723,7 +2272,7 @@ completamente seguros de la calidad de esta versión.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.41!  @emph{4 de diciembre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.41!  @emph{4 de diciembre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.41.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1739,7 +2288,7 @@ completamente seguros de la calidad de esta versión.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.40!  @emph{21 de noviembre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.40!  @emph{21 de noviembre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.40.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1755,7 +2304,7 @@ completamente seguros de la calidad de esta versión.
 
 
 @newsItem
-@subsubheading Primera versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.39! @emph{15 de noviembre de 2010}
+@subheading Primera versión de pruebas Beta de 2.14: ¡Lanzado LilyPond 2.13.39! @emph{15 de noviembre de 2010}
 
 Ha salido LilyPond 2.13.39; ésta es la primera versión beta de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1776,7 +2325,7 @@ envíenos @ref{Informes de fallos} educados.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 22.  @emph{3 de noviembre de 2010}
+@subheading El Informe LilyPond, número 22.  @emph{3 de noviembre de 2010}
 
 ¡Vuelve el @emph{Informe LilyPond}, con algunas sorpresas y noticias
 interesantes para toda la comunidad de LilyPond!
@@ -1795,7 +2344,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading Cuarta versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.38! @emph{31 de octubre de 2010}
+@subheading Cuarta versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.38! @emph{31 de octubre de 2010}
 
 Ha salido LilyPond 2.13.38; ésta es la cuarta versión alfa de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1814,7 +2363,7 @@ envíenos @ref{Informes de fallos} educados.
 
 
 @newsItem
-@subsubheading Tercera versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.37! @emph{25 de octubre de 2010}
+@subheading Tercera versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.37! @emph{25 de octubre de 2010}
 
 Ha salido LilyPond 2.13.37; ésta es la tercera versión alfa de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1833,7 +2382,7 @@ envíenos @ref{Informes de fallos} educados.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.36! @emph{19 de octubre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.36! @emph{19 de octubre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.36.
 Esta versión contiene el conjunto habitual de correcciones de fallos.
@@ -1849,7 +2398,7 @@ de esta versión.
 @newsEnd
 
 @newsItem
-@subsubheading El Informe LilyPond, número 21.  @emph{3 de octubre de 2010}
+@subheading El Informe LilyPond, número 21.  @emph{3 de octubre de 2010}
 
 ¡Vuelve el @emph{Informe LilyPond}, con sus dos editores: @qq{gruñón}
 y @qq{blandito}!  Esta edición se ocupa principalmente de la notación
@@ -1866,7 +2415,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading Segunda versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.35! @emph{29 de septiembre de 2010}
+@subheading Segunda versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.35! @emph{29 de septiembre de 2010}
 
 Ha salido LilyPond 2.13.35; ésta es la segunda versión alfa de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1890,7 +2439,7 @@ Problema 1252} pero esperamos encontrar más.  Si se decide a probar
 
 
 @newsItem
-@subsubheading Versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.34! @emph{21 de septiembre de 2010}
+@subheading Versión de pruebas Alfa de 2.14: ¡Lanzado LilyPond 2.13.34! @emph{21 de septiembre de 2010}
 
 Ha salido LilyPond 2.13.34; ésta es la primera versión alfa de la
 inminente versión estable 2.14.  Se invita a los usuarios a que hagan
@@ -1910,7 +2459,7 @@ educados.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.33!  @emph{10 de septiembre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.33!  @emph{10 de septiembre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.33.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1923,7 +2472,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.32!  @emph{3 de septiembre de 2010}
+@subheading ¡Lanzado LilyPond 2.13.32!  @emph{3 de septiembre de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.32.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1934,7 +2483,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 20.  @emph{2 de septiembre de 2010}
+@subheading El Informe LilyPond, número 20.  @emph{2 de septiembre de 2010}
 
 ¡Vuelve el @emph{Informe LilyPond}, con sus dos editores: @qq{gruñón}
 y @qq{blandito}!  Esta edición contiene la revisión de un editor de
@@ -1949,7 +2498,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.31!  @emph{24 de agosto de 2010}
+@subheading ¡Lanzado LilyPond 2.13.31!  @emph{24 de agosto de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.31.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1960,7 +2509,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.30!  @emph{13 de agosto de 2010}
+@subheading ¡Lanzado LilyPond 2.13.30!  @emph{13 de agosto de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.30.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -1971,7 +2520,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 19.  @emph{9 de agosto de 2010}
+@subheading El Informe LilyPond, número 19.  @emph{9 de agosto de 2010}
 
 ¡Vuelve el @emph{Informe LilyPond}, con sus dos editores: @qq{gruñón}
 y @qq{blandito}!  Esta edición contiene noticias sobre conferencias,
@@ -1988,7 +2537,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.29!  @emph{4 de agosto de 2010}
+@subheading ¡Lanzado LilyPond 2.13.29!  @emph{4 de agosto de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.29.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2002,7 +2551,7 @@ algún resultado inesperado.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.28!  @emph{13 de julio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.28!  @emph{13 de julio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.28.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2018,7 +2567,7 @@ de todas formas, tenga especial cuidado.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.27!  @emph{5 de julio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.27!  @emph{5 de julio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.27.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2028,7 +2577,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Probando nuestra nueva página!  @emph{29 de junio de 2010}
+@subheading ¡Probando nuestra nueva página!  @emph{29 de junio de 2010}
 
 ¡Estamos probando nuestras nuevas páginas!  Durante las próximas
 24 horas, las páginas predeterminadas serán las de nuestro nuevo sitio;
@@ -2047,7 +2596,7 @@ de LilyPond en: @uref{http://lilypond.org/web/}}
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.26!  @emph{26 de junio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.26!  @emph{26 de junio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.26.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2056,7 +2605,7 @@ versión está orientada solamente a los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.25!  @emph{20 de junio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.25!  @emph{20 de junio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.25.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2066,7 +2615,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.24!  @emph{14 de junio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.24!  @emph{14 de junio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.24.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2076,7 +2625,7 @@ versión está orientada solamente a los desarrolladores.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.23!  @emph{3 de junio de 2010}
+@subheading ¡Lanzado LilyPond 2.13.23!  @emph{3 de junio de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.23.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2085,7 +2634,7 @@ versión está orientada solamente a los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.22!  @emph{27 de mayo de 2010}
+@subheading ¡Lanzado LilyPond 2.13.22!  @emph{27 de mayo de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.22.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2094,7 +2643,7 @@ versión está orientada solamente a los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.21!  @emph{12 de mayo de 2010}
+@subheading ¡Lanzado LilyPond 2.13.21!  @emph{12 de mayo de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.21.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2111,7 +2660,7 @@ a utilizar en la próxima edición estable.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 18.  @emph{11 de mayo de 2010}
+@subheading El Informe LilyPond, número 18.  @emph{11 de mayo de 2010}
 
 ¡Vuelve el @emph{Informe LilyPond}, con sus dos editores: @qq{gruñón}
 y @qq{blandito}!  Esta edición está repleta de emoción e interés,
@@ -2126,7 +2675,7 @@ todos a que hagan sus comentarios y contribuciones!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.20!  @emph{5 de mayo de 2010}
+@subheading ¡Lanzado LilyPond 2.13.20!  @emph{5 de mayo de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.20.  Esta
 versión contiene el conjunto habitual de correcciones de fallos.  Sin
@@ -2141,7 +2690,7 @@ Como siempre, consulte el documento Cambios para ver más información.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.19!  @emph{24 de abril de 2010}
+@subheading ¡Lanzado LilyPond 2.13.19!  @emph{24 de abril de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.19.  Esta
 edición contiene unas cuantas correcciones de fallos, como es usual.
@@ -2150,7 +2699,7 @@ está orientada solamente a los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.18!  @emph{16 de abril de 2010}
+@subheading ¡Lanzado LilyPond 2.13.18!  @emph{16 de abril de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.18.  Esta
 edición contiene el número usual de correcciones de fallos, junto a
@@ -2160,7 +2709,7 @@ los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.17!  @emph{2 de abril de 2010}
+@subheading ¡Lanzado LilyPond 2.13.17!  @emph{2 de abril de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.17.  Esta
 versión incluye la corrección de 4 fallos críticos.  Sin embargo, aún
@@ -2169,7 +2718,7 @@ solamente a los desarrolladores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.16!  @emph{15 de marzo de 2010}
+@subheading ¡Lanzado LilyPond 2.13.16!  @emph{15 de marzo de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.16.  Está
 orientado solamente a los desarrolladores, e incluye la ronda usual de
@@ -2177,7 +2726,7 @@ corrección de fallos.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.15!  @emph{4 de marzo de 2010}
+@subheading ¡Lanzado LilyPond 2.13.15!  @emph{4 de marzo de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.15.  Está
 orientado solamente a los desarrolladores, e incluye algunas
@@ -2187,7 +2736,7 @@ ronda usual de corrección de fallos.
 
 
 @newsItem
-@subsubheading El Informe LilyPond, número 17.  @emph{1 de marzo de 2010}
+@subheading El Informe LilyPond, número 17.  @emph{1 de marzo de 2010}
 
 ¡Viva, vuelve el Informe, con un equipo nuevo! Dicen que dos cabezas
 es mejor que una: ¿valdrá también para los diarios?  Léalo y ¡díganos
@@ -2202,7 +2751,7 @@ LilyPond número 17} (en inglés) ahora mismo!
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.14!  @emph{27 de febrero de 2010}
+@subheading ¡Lanzado LilyPond 2.13.14!  @emph{27 de febrero de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.14.  Esta
 versión está orientada solamente a los desarrolladores, e incluye una
@@ -2211,7 +2760,7 @@ correcciones de fallos.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.13!  @emph{13 de febrero de 2010}
+@subheading ¡Lanzado LilyPond 2.13.13!  @emph{13 de febrero de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.13.  Esta
 versión está orientada solamente a los desarrolladores, y arregla
@@ -2223,7 +2772,7 @@ salida SVG.  Además, los archivos binarios instalables son ahora unos
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.12!  @emph{2 de febrero de 2010}
+@subheading ¡Lanzado LilyPond 2.13.12!  @emph{2 de febrero de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.12.  Esta
 versión está orientada solamente a los desarrolladores, y aporta más
@@ -2232,7 +2781,7 @@ colaborador.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.11!  @emph{16 de enero de 2010}
+@subheading ¡Lanzado LilyPond 2.13.11!  @emph{16 de enero de 2010}
 
 Nos complace anunciar el lanzamiento de LilyPond 2.13.11.  Esta
 edición está orientada solamente a los dearrolladores, y trae algunas
@@ -2241,7 +2790,7 @@ arregla cuatro regresiones críticas contra versiones anteriores.
 @newsEnd
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.10!  @emph{31 de diciembre de 2009}
+@subheading ¡Lanzado LilyPond 2.13.10!  @emph{31 de diciembre de 2009}
 
 We are happy to announce the release of LilyPond 2.13.10.  This
 release is intended for developers only, and brings a number of
@@ -2252,7 +2801,7 @@ and English names for feta filenames.
 
 
 @newsItem
-@subsubheading ¡Lanzado LilyPond 2.12.3!  @emph{20 de diciembre de 2009}
+@subheading ¡Lanzado LilyPond 2.12.3!  @emph{20 de diciembre de 2009}
 
 We are happy to announce the release of LilyPond 2.12.3.  This
 version contains the long-awaited fix for our GUI on MacOS X 10.5
@@ -2268,7 +2817,7 @@ shifts towards the upcoming 2.14 series.
 
 
 @newsItem
-@subsubheading LilyPond 2.13.9 released!  @emph{December 12, 2009}
+@subheading LilyPond 2.13.9 lanzado!  @emph{December 12, 2009}
 
 LilyPond 2.13.9 is now out.  From 2.13.9 onwards, LilyPond is
 licensed under the GNU GPL v3+ for code, and the GNU FDL 1.3+ for
@@ -2281,7 +2830,7 @@ normal users should continue to use 2.12.
 @newsEnd
 
 @newsItem
-@subsubheading New Website!  @emph{October 3, 2009}
+@subheading New Website!  @emph{October 3, 2009}
 
 As you can see, we have a new website design.  Many thanks to
 texi2html and CSS for being so flexible!
@@ -2290,7 +2839,7 @@ texi2html and CSS for being so flexible!
 
 
 @newsItem
-@subsubheading LilyPond Report #16.  @emph{September 6, 2009}
+@subheading LilyPond Report #16.  @emph{September 6, 2009}
 
 The LilyPond Report is back! This short, informal opinion column is
 about the LilyPond project: its team, its world, its community.
@@ -2301,7 +2850,7 @@ now!
 
 
 @newsItem
-@subsubheading LilyPond 2.13.3.  @emph{July 2, 2009}
+@subheading LilyPond 2.13.3.  @emph{July 2, 2009}
 
 This unstable release contains working menus in OSX 10.5; many
 thanks to Christian Hitz for fixing this long-standing problem!
@@ -2318,7 +2867,7 @@ release.@*
 
 
 @newsItem
-@subsubheading A LilyPond weboldala magyarul.  @emph{May 22, 2009}
+@subheading A LilyPond weboldala magyarul.  @emph{May 22, 2009}
 
 Elkészült a lilypond.org nagy részének magyar fordítása a LilyPond
 honosítási projekt első lépéseként. A projekt célja a LilyPond
@@ -2333,7 +2882,7 @@ vezetője
 
 
 @newsItem
-@subsubheading The LilyPond Report #15.  @emph{May 18, 2009}
+@subheading The LilyPond Report #15.  @emph{May 18, 2009}
 
 The @emph{LilyPond Report} is a short, informal opinion column about the LilyPond project:
 its team, its world, its community.
@@ -2343,7 +2892,7 @@ to read the full issue...
 
 
 @newsItem
-@subsubheading The LilyPond Report #14.  @emph{April 13, 2009}
+@subheading The LilyPond Report #14.  @emph{April 13, 2009}
 
 The @emph{LilyPond Report} is back, on a new website!
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
@@ -2352,7 +2901,7 @@ Follow @uref{http://web.archive.org/web/20110325004849/http://news.lilynet.net/?
 
 
 @newsItem
-@subsubheading LilyPond 2.12.2 and 2.13.0 — @emph{March 21, 2009}
+@subheading LilyPond 2.12.2 and 2.13.0 — @emph{March 21, 2009}
 
 As a very belated announcement, the stable version of LilyPond is
 now 2.12.2, and the next development version has begun with
@@ -2361,7 +2910,7 @@ now 2.12.2, and the next development version has begun with
 
 
 @newsItem
-@subsubheading LilyPond 2.12.0 @qq{Rune} — @emph{December 27, 2008}
+@subheading LilyPond 2.12.0 @qq{Rune} — @emph{December 27, 2008}
 
 A new stable release of LilyPond is available.
 @*
@@ -2372,7 +2921,7 @@ A new stable release of LilyPond is available.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.65 — Release Candidate.  @emph{December 2, 2008}
+@subheading LilyPond 2.11.65 — Release Candidate.  @emph{December 2, 2008}
 
 This release has improvements to MusicXML import, contributed by
 Reinhold Kainhofer, and adds support for splitting a book in several
@@ -2390,7 +2939,7 @@ issues.@*
 
 
 @newsItem
-@subsubheading LilyPond 2.11.64.  @emph{November 18, 2008}
+@subheading LilyPond 2.11.64.  @emph{November 18, 2008}
 
 LilyPond 2.11.64 is available. MusicXML import has been improved,
 including church modes support, and a few bugs in the compilation
@@ -2405,7 +2954,7 @@ which used to cause excessive slowness should be fixed.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.63.  @emph{October 29, 2008}
+@subheading LilyPond 2.11.63.  @emph{October 29, 2008}
 
 LilyPond 2.11.63 is available. This release has lots of updates to the
 documentation and translations.
@@ -2414,7 +2963,7 @@ documentation and translations.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.62 -- Release Candidate.  @emph{October 11, 2008}
+@subheading LilyPond 2.11.62 -- Release Candidate.  @emph{October 11, 2008}
 
 LilyPond 2.11.62 is available. This is is one of the last releases
 before 2.12, so testing it is encouraged. In addition to a bugfix
@@ -2428,7 +2977,7 @@ stylesheet for HTML documentation has been improved.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.61 available.  @emph{October 1, 2008}
+@subheading LilyPond 2.11.61 available.  @emph{October 1, 2008}
 
 LilyPond 2.11.61 has been released. It has updates to
 documentation translations, and a new automatic accidentals style
@@ -2441,7 +2990,7 @@ documentation translations, and a new automatic accidentals style
 
 
 @newsItem
-@subsubheading LilyPond 2.11.60 available.  @emph{September 25, 2008}
+@subheading LilyPond 2.11.60 available.  @emph{September 25, 2008}
 
 LilyPond 2.11.60 has been released. A new style of double repeat
 bar line has been added, and @code{printallheaders} variable in
@@ -2451,7 +3000,7 @@ score block has been renamed to @code{print-all-headers}.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.59 available.  @emph{September 20, 2008}
+@subheading LilyPond 2.11.59 available.  @emph{September 20, 2008}
 
 Release 2.11.59 is out. LilyPond now uses 64 bit integers for
 rational numbers, which allows typesetting more complex polymetric
@@ -2462,7 +3011,7 @@ translations of the documentation.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.58 available.  @emph{September 13, 2008}
+@subheading LilyPond 2.11.58 available.  @emph{September 13, 2008}
 
 LilyPond 2.11.58 is a beta release, which means the next stable
 release is expected in a few weeks.  This release is also special,
@@ -2481,7 +3030,7 @@ Reinhold Kainhofer, and a few bugs have been fixed.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.57 available.  @emph{August 27, 2008}
+@subheading LilyPond 2.11.57 available.  @emph{August 27, 2008}
 
 LilyPond 2.11.57 is out.  This release adds support for harp pedal
 diagrams, contributed by Reinhold Kainhofer, and some changes in
@@ -2493,7 +3042,7 @@ markup command names have been made.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.56 available.  @emph{August 17, 2008}
+@subheading LilyPond 2.11.56 available.  @emph{August 17, 2008}
 
 LilyPond 2.11.56 is out.  This release features transposable fret
 diagrams, contributed by Carl Sorensen.  Translations status pages
@@ -2507,7 +3056,7 @@ predefined commands @code{\pointAndClickOn},
 
 
 @newsItem
-@subsubheading LilyPond 2.11.55 available.  @emph{August 6, 2008}
+@subheading LilyPond 2.11.55 available.  @emph{August 6, 2008}
 
 LilyPond 2.11.55 is out.  This release fixes several bugs, and for octavation brackets
 @code{set-octavation} has been replaced by a more user-friendly command, @code{\ottava}.
@@ -2518,7 +3067,7 @@ LilyPond 2.11.55 is out.  This release fixes several bugs, and for octavation br
 
 
 @newsItem
-@subsubheading LilyPond 2.11.54 available.  @emph{July 30, 2008}
+@subheading LilyPond 2.11.54 available.  @emph{July 30, 2008}
 
 LilyPond 2.11.54 is out.  This release fixes a bug in tie formatting
 following a line break, and changes the behavior of @code{short-indent}
@@ -2530,7 +3079,7 @@ so that short instrument names are no longer indented in the margin.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.53 available.  @emph{July 23, 2008}
+@subheading LilyPond 2.11.53 available.  @emph{July 23, 2008}
 
 LilyPond 2.11.53 is out.  This release fixes a lot of bugs.
 @*
@@ -2540,7 +3089,7 @@ LilyPond 2.11.53 is out.  This release fixes a lot of bugs.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.52 available.  @emph{July 14, 2008}
+@subheading LilyPond 2.11.52 available.  @emph{July 14, 2008}
 
 Release 2.11.52 fixes wrong offset of a bar number when it follows
 a breath mark, and syntax changes made in recent development
@@ -2553,7 +3102,7 @@ releases are now fully listed on the News page.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.51 available.  @emph{July 8, 2008}
+@subheading LilyPond 2.11.51 available.  @emph{July 8, 2008}
 
 Release 2.11.51 has a couple of bugfixes, and a lot of changes in
 predefined command names.  Fret diagrams formatting has been
@@ -2566,7 +3115,7 @@ by @code{fret-diagram-details} property.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.50 available.  @emph{July 2, 2008}
+@subheading LilyPond 2.11.50 available.  @emph{July 2, 2008}
 
 Release 2.11.50 adds support for metronome marks with text, and
 backslashed numbers for figured bass, contributed by
@@ -2578,23 +3127,23 @@ Reinhold Kainhofer.
 
 
 @newsItem
-@subsubheading The LilyPond Report #13.  @emph{June 23, 2008}
+@subheading The LilyPond Report #13.  @emph{June 23, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-13,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123759/http://news.lilynet.net/?The-LilyPond-Report-13,this link} to read the full issue...
 @newsEnd
 
 
 @newsItem
-@subsubheading The LilyPond Report #12.  @emph{June 16, 2008}
+@subheading The LilyPond Report #12.  @emph{June 16, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-12,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123754/http://news.lilynet.net/?The-LilyPond-Report-12,this link} to read the full issue...
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.49 released.  @emph{June 12, 2008}
+@subheading LilyPond 2.11.49 released.  @emph{June 12, 2008}
 
 LilyPond 2.11.49 is out.  It fixes a number of bugs, including bugs in beams formatting.
 @*
@@ -2604,7 +3153,7 @@ LilyPond 2.11.49 is out.  It fixes a number of bugs, including bugs in beams for
 
 
 @newsItem
-@subsubheading LilyPond 2.11.48 released.  @emph{June 9, 2008}
+@subheading LilyPond 2.11.48 released.  @emph{June 9, 2008}
 
 LilyPond 2.11.48 is out.  This release fixes a few bugs, and
 @code{\compressMusic} has been renamed
@@ -2616,23 +3165,23 @@ to @code{\scaleDurations}.
 
 
 @newsItem
-@subsubheading The LilyPond Report #11.  @emph{June 9, 2008}
+@subheading The LilyPond Report #11.  @emph{June 9, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-11,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123750/http://news.lilynet.net/?The-LilyPond-Report-11,this link} to read the full issue...
 @newsEnd
 
 
 @newsItem
-@subsubheading The LilyPond Report #10.  @emph{June 2, 2008}
+@subheading The LilyPond Report #10.  @emph{June 2, 2008}
 
 Welcome to this special tenth issue of the @emph{LilyPond Report}, entirely dedicated to Algorithmic Composition systems.@*
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-10,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123743/http://news.lilynet.net/?The-LilyPond-Report-10,this link} to read the full issue...
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.47 released.  @emph{May 28, 2008}
+@subheading LilyPond 2.11.47 released.  @emph{May 28, 2008}
 
 LilyPond now allows all text context properties to be markups,
 except in @code{\lyricmode}.  This release also fixes
@@ -2644,7 +3193,7 @@ regression tests maintenance for developers.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.46 available.  @emph{May 22, 2008}
+@subheading LilyPond 2.11.46 available.  @emph{May 22, 2008}
 
 Release 2.11.46 fixes a lot of bugs and includes a rewrite of
 dynamics engravers.  Support for slur-shaped arpeggios has been added.
@@ -2656,7 +3205,7 @@ dynamics engravers.  Support for slur-shaped arpeggios has been added.
 
 
 @newsItem
-@subsubheading RSS feed - @emph{May 21, 2008}
+@subheading RSS feed - @emph{May 21, 2008}
 
 A RSS feed is now available on lilypond.org.  It contains all
 news announced on the web site start page: releases, LilyPond
@@ -2668,16 +3217,16 @@ announce releases and special events.
 
 
 @newsItem
-@subsubheading The LilyPond Report #9.  @emph{May 05, 2008}
+@subheading The LilyPond Report #9.  @emph{May 05, 2008}
 
 Welcome to this ninth issue of the @emph{LilyPond Report}!@*
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-9,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123946/http://news.lilynet.net/?The-LilyPond-Report-9,this link} to read the full issue...
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.45 available.  @emph{April 26, 2008}
+@subheading LilyPond 2.11.45 available.  @emph{April 26, 2008}
 
 Release 2.11.45 fixes a couple of bugs in the formatting
 engine. @code{lilypond-book} has been improved, with better
@@ -2693,7 +3242,7 @@ Villenave.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.44 available.  @emph{April 14, 2008}
+@subheading LilyPond 2.11.44 available.  @emph{April 14, 2008}
 
 Release 2.11.44 is available. Support for figured bass and chord
 names has been added to the MusicXML
@@ -2705,14 +3254,14 @@ converter.
 
 
 @newsItem
-@subsubheading lilypond.org日本語訳 (lilypond.org Japanese translation).  @emph{2008年4月8日 (April 4, 2008)}
+@subheading lilypond.org日本語訳 (lilypond.org Japanese translation).  @emph{2008年4月8日 (April 4, 2008)}
 
 lilypond.orgのいくつかのページの日本語訳が出来ました。
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.43 available.  @emph{March 31, 2008}
+@subheading LilyPond 2.11.43 available.  @emph{March 31, 2008}
 
 Release 2.11.43 has been available since March 27. It fixes a
 couple of formatting bugs, and the font cache problem with
@@ -2725,7 +3274,7 @@ fixed.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.42 available.  @emph{March 9, 2008}
+@subheading LilyPond 2.11.42 available.  @emph{March 9, 2008}
 
 Release 2.11.42 is out. It fixes some formatting and spacing
 bugs.
@@ -2736,7 +3285,7 @@ bugs.
 
 
 @newsItem
-@subsubheading Comparison of music engraving with Finale and LilyPond.  @emph{February 25, 2008}
+@subheading Comparison of music engraving with Finale and LilyPond.  @emph{February 25, 2008}
 
 In three articles, Andrew Hawryluk compares Finale and LilyPond in
 general terms, and evaluates in detail engraving capabilities of
@@ -2749,7 +3298,7 @@ the articles}.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.41 available.  @emph{February 25, 2008}
+@subheading LilyPond 2.11.41 available.  @emph{February 25, 2008}
 
 Release 2.11.41 is available. It has a few bugfixes, updated
 program messages in French, German, Spanish and Vietnamese, and
@@ -2761,7 +3310,7 @@ updates to the MusicXML converter.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.37 available.  @emph{January 3, 2008}
+@subheading LilyPond 2.11.37 available.  @emph{January 3, 2008}
 
 Release 2.11.37 is available. It has a few bugfixes, and
 documentation changes. (@ref{Descargas antiguas})
@@ -2769,7 +3318,7 @@ documentation changes. (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading LilyPond 2.11.36 available.  @emph{December 13, 2007}
+@subheading LilyPond 2.11.36 available.  @emph{December 13, 2007}
 
 Release 2.11.36 is now available. It has many bugfixes, updates
 for MusicXML import, and it includes major documentation changes from
@@ -2781,7 +3330,7 @@ Grand Documentation Project.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.33 and 2.11.33 available.  @emph{September 20, 2007}
+@subheading LilyPond 2.10.33 and 2.11.33 available.  @emph{September 20, 2007}
 
 Release 2.11.33 is now available.
 @*
@@ -2792,7 +3341,7 @@ Release 2.11.33 is now available.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.32 available.  @emph{September 2, 2007}
+@subheading LilyPond 2.11.32 available.  @emph{September 2, 2007}
 
 Release 2.11.32 is now available.
 @*
@@ -2802,7 +3351,7 @@ Release 2.11.32 is now available.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.31 available.  @emph{August 31, 2007}
+@subheading LilyPond 2.11.31 available.  @emph{August 31, 2007}
 
 Release 2.11.31 is now available. It has more bugfixes, updates
 for MusicXML import and lots of updates for the translations.
@@ -2813,7 +3362,7 @@ for MusicXML import and lots of updates for the translations.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.30 available.  @emph{August 20, 2007}
+@subheading LilyPond 2.11.30 available.  @emph{August 20, 2007}
 
 Release 2.11.30 is now available. It has various bugfixes among
 others in the new spacing code, MusicXML import and lots of updates
@@ -2825,7 +3374,7 @@ for the translations.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.29 and 2.11.29 available.  @emph{August 11, 2007}
+@subheading LilyPond 2.10.29 and 2.11.29 available.  @emph{August 11, 2007}
 
 Release 2.11.29 is now available. 2.10.29 has a few small fixes.
 2.11.29 has several bugfixes, among others in the new spacing code,
@@ -2838,17 +3387,17 @@ and lots of updates for the translations.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.28 for FreeBSD x86_64.  @emph{August 10, 2007}
+@subheading LilyPond 2.11.28 for FreeBSD x86_64.  @emph{August 10, 2007}
 
 Release 2.11.28 is now available as a binary installer for
 FreeBSD x86_64.  Download
-@uref{http://lilypond.org/download/binaries/freebsd-64/lilypond-2.11.28-1.freebsd-64.sh,the installer} and
+@uref{http://lilypond.org/download/binaries/freebsd-64/,the installer} and
 do @emph{sh lilypond-2.11.28-1.freebsd-64.sh} in a command window.
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.28 available - @emph{July 25, 2007}
+@subheading LilyPond 2.11.28 available - @emph{July 25, 2007}
 Release 2.11.28 has several updates to the manual and its
 translations,  an plethora of bugfixes and a complete cleanup of the
 spacing engine code.
@@ -2859,7 +3408,7 @@ spacing engine code.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.26 available - @emph{June 8, 2007}
+@subheading LilyPond 2.11.26 available - @emph{June 8, 2007}
 
 Release 2.11.26 supports page markers, eg. for use in
 tables-of-contents.  In addition, it fixes a number of bugs. Enjoy!
@@ -2870,7 +3419,7 @@ tables-of-contents.  In addition, it fixes a number of bugs. Enjoy!
 
 
 @newsItem
-@subsubheading LilyPond 2.10.25 and 2.11.25 available - @emph{May 20, 2007}
+@subheading LilyPond 2.10.25 and 2.11.25 available - @emph{May 20, 2007}
 
 Release 2.11.25 has support for toplevel page breaking commands,
 and page breaking as a whole has been sped up significantly. Enjoy!
@@ -2882,7 +3431,7 @@ and page breaking as a whole has been sped up significantly. Enjoy!
 
 
 @newsItem
-@subsubheading LilyPond 2.10.23 and 2.11.23 available - @emph{May 1, 2007}
+@subheading LilyPond 2.10.23 and 2.11.23 available - @emph{May 1, 2007}
 This has lots of bugfixes.
 @*
 @bugfixes{2_10_23,2.10},
@@ -2892,7 +3441,7 @@ This has lots of bugfixes.
 
 
 @newsItem
-@subsubheading Übersetzung der Dokumentation - @emph{10. April 2007}
+@subheading Übersetzung der Dokumentation - @emph{10. April 2007}
 Die Kapitel 1-5 (der Abschnitt für Anfänger) des LilyPond-Benutzerhandbuchs
 sind auf deutsch übersetzt --- sie sind erhältlich für die @ref{Cambios}
 online und @ref{Descargas antiguas}.
@@ -2900,7 +3449,7 @@ online und @ref{Descargas antiguas}.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.22 available - @emph{April 10, 2007}
+@subheading LilyPond 2.11.22 available - @emph{April 10, 2007}
 This release has updates of the dot collision code.
 @*
 @bugfixes{2_11_22,},
@@ -2910,7 +3459,7 @@ This release has updates of the dot collision code.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.21 available - @emph{March 24, 2007}
+@subheading LilyPond 2.11.21 available - @emph{March 24, 2007}
 This release has some documentation updates.
 @*
 @bugfixes{2_11_21,},
@@ -2920,7 +3469,7 @@ This release has some documentation updates.
 
 
 @newsItem
-@subsubheading Traduction de la documentation en français - @emph{25 février 2007}
+@subheading Traduction de la documentation en français - @emph{25 février 2007}
 Les chapitres 1 à 4 et 6 du manuel de l'utilisateur sont désormais traduits, et
 disponibles en ligne ---
 @uref{http://lilypond.org/doc/v2.10/Documentation/user/lilypond/index.fr.html,version 2.10},
@@ -2931,7 +3480,7 @@ Les traductions sont également incluses dans la
 
 
 @newsItem
-@subsubheading LilyPond 2.10.20 and 2.11.20 available - @emph{February 25, 2007}
+@subheading LilyPond 2.10.20 and 2.11.20 available - @emph{February 25, 2007}
 This release fixes many bugs.
 @*
 @bugfixes{2_10_20,2.10},
@@ -2942,7 +3491,7 @@ This release fixes many bugs.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.19 and 2.11.19 available - @emph{February 18, 2007}
+@subheading LilyPond 2.10.19 and 2.11.19 available - @emph{February 18, 2007}
 This release fixes many bugs.
 @*
 @bugfixes{2_10_19,2.10},
@@ -2953,7 +3502,7 @@ This release fixes many bugs.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.18 available - @emph{February 12, 2007}
+@subheading LilyPond 2.11.18 available - @emph{February 12, 2007}
 This release fixes still more bugs, and included
 singing support through festival contributed by Milan Zamazal.
 @*
@@ -2964,7 +3513,7 @@ singing support through festival contributed by Milan Zamazal.
 
 
 @newsItem
-@subsubheading LilyPond  2.11.17 available - @emph{February 9, 2007}
+@subheading LilyPond  2.11.17 available - @emph{February 9, 2007}
 This release fixes still more bugs.
 @*
 @bugfixes{2_11_17,},
@@ -2974,7 +3523,7 @@ This release fixes still more bugs.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.16 and 2.11.16 available - @emph{February 4, 2007}
+@subheading LilyPond 2.10.16 and 2.11.16 available - @emph{February 4, 2007}
 This release fixes many bugs.
 (@bugfixes{2_10_16,2.10},
 @bugfixes{2_11_16,2.11},
@@ -2984,7 +3533,7 @@ This release fixes many bugs.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.15 and 2.11.15 available - @emph{February 1, 2007}
+@subheading LilyPond 2.10.15 and 2.11.15 available - @emph{February 1, 2007}
 This release will stretch piano staves on a
 system-by-system basis and add a few glyphs: a black harmonic note
 head and the slashed mirrored flat.
@@ -2997,7 +3546,7 @@ head and the slashed mirrored flat.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.14 and 2.11.14 available - @emph{January 26, 2007}
+@subheading LilyPond 2.10.14 and 2.11.14 available - @emph{January 26, 2007}
 This release has a rewrite of the line-spanner code, responsible for
 among other glissandi and text-crescendos, making them more flexible.
 @*
@@ -3008,7 +3557,7 @@ among other glissandi and text-crescendos, making them more flexible.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.13 and 2.11.13 available - @emph{January 17, 2007}
+@subheading LilyPond 2.10.13 and 2.11.13 available - @emph{January 17, 2007}
 This release fixes a few minor but irritating bugs. In addition, the
 2.11 release has updates of the tutorial.
 @*
@@ -3019,7 +3568,7 @@ This release fixes a few minor but irritating bugs. In addition, the
 
 
 @newsItem
-@subsubheading LilyPond 2.11.12 available - @emph{January 17, 2007}
+@subheading LilyPond 2.11.12 available - @emph{January 17, 2007}
 This release fixes lots of bugs. In particular, the tie formatting has
 been further improved, and memory usage has been improved enormously.
 @*
@@ -3030,7 +3579,7 @@ been further improved, and memory usage has been improved enormously.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.12 available - @emph{January 17, 2007}
+@subheading LilyPond 2.10.12 available - @emph{January 17, 2007}
 This release mirrors 2.11.12. Notably, it has the same memory
 usage improvements.
 @*
@@ -3041,7 +3590,7 @@ usage improvements.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.11 available - @emph{January 12, 2007}
+@subheading LilyPond 2.10.11 available - @emph{January 12, 2007}
 This release mostly has the same fixes as 2.11.11.
 @*
 @bugfixes{2_10_11,},
@@ -3051,7 +3600,7 @@ This release mostly has the same fixes as 2.11.11.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.11 available - @emph{January 11, 2007}
+@subheading LilyPond 2.11.11 available - @emph{January 11, 2007}
 This release has further fixes for popular bugs. Timing of the MIDI
 output won't get confused by tuplets and grace notes anymore. Some fat
 has also been trimmed of the skyline code performance.
@@ -3063,7 +3612,7 @@ has also been trimmed of the skyline code performance.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.10 available - @emph{January 8, 2007}
+@subheading LilyPond 2.11.10 available - @emph{January 8, 2007}
 LilyPond 2.11.10 has further review of the test-suite, performance and
 code coverage. This brought to light several problems that were
 fixed.  Notably, 2.11.10 fixes lots of regressions in optical
@@ -3077,7 +3626,7 @@ correction spacing and MIDI dynamics.  Also, this version is 20 to 50
 
 
 @newsItem
-@subsubheading LilyPond 2.10.10 available - @emph{January 8, 2007}
+@subheading LilyPond 2.10.10 available - @emph{January 8, 2007}
 This release fixes several popular bugs, among others: MIDI files
 that go silent after (de)crescendi, and tuplets problems with quoting
 and part-combining.
@@ -3089,7 +3638,7 @@ and part-combining.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.9 and 2.10.9 available - @emph{January 3, 2007}
+@subheading LilyPond 2.11.9 and 2.10.9 available - @emph{January 3, 2007}
 This release has a couple of bugfixes, and ---in 2.11.9---
 further improvements in the regression test suite
 @*
@@ -3100,7 +3649,7 @@ further improvements in the regression test suite
 
 
 @newsItem
-@subsubheading LilyPond 2.11.8 and 2.10.8 available - @emph{January 3, 2007}
+@subheading LilyPond 2.11.8 and 2.10.8 available - @emph{January 3, 2007}
 New! Improved! With even more bugfixes!
 @*
 @bugfixes{2_11_8,},
@@ -3110,19 +3659,19 @@ New! Improved! With even more bugfixes!
 
 
 @newsItem
-@subsubheading @code{lilypond.org} auf deutsch - @emph{31. Dezember 2006}
+@subheading @code{lilypond.org} auf deutsch - @emph{31. Dezember 2006}
 Die LilyPond-Webseiten sind jetzt auch auf deutsch übersetzt!
 @newsEnd
 
 
 @newsItem
-@subsubheading @code{lilypond.org} en español - @emph{December 29, 2006}
+@subheading @code{lilypond.org} en español - @emph{December 29, 2006}
 ¡Ya está disponible la versión en español del sitio web de LilyPond!
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.11.7 and 2.10.7 available - @emph{January 1, 2007}
+@subheading LilyPond 2.11.7 and 2.10.7 available - @emph{January 1, 2007}
 New! Improved! With even more bugfixes!
 @*
 @bugfixes{2_11_7,},
@@ -3132,7 +3681,7 @@ New! Improved! With even more bugfixes!
 
 
 @newsItem
-@subsubheading LilyPond 2.11.6 available - @emph{December 30, 2006}
+@subheading LilyPond 2.11.6 available - @emph{December 30, 2006}
 This release supports arbitrary fractional alterations, allowing
 music with different microtonal conventions to be typeset.
 @*
@@ -3143,7 +3692,7 @@ music with different microtonal conventions to be typeset.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.6 available - @emph{December 30, 2006}
+@subheading LilyPond 2.10.6 available - @emph{December 30, 2006}
 New! Improved! With even more bugfixes!
 @*
 @bugfixes{2_10_6,},
@@ -3153,7 +3702,7 @@ New! Improved! With even more bugfixes!
 
 
 @newsItem
-@subsubheading LilyPond 2.11.5 available - @emph{December 24, 2006}
+@subheading LilyPond 2.11.5 available - @emph{December 24, 2006}
 These releases complete the translation infrastructure for
 Documentation.
 @*
@@ -3164,7 +3713,7 @@ Documentation.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.5 available - @emph{December 24, 2006}
+@subheading LilyPond 2.10.5 available - @emph{December 24, 2006}
 New! Improved! With even more bugfixes!
 @*
 @bugfixes{2_10_5,},
@@ -3174,7 +3723,7 @@ New! Improved! With even more bugfixes!
 
 
 @newsItem
-@subsubheading LilyPond 2.11.4 available - @emph{December 21, 2006}
+@subheading LilyPond 2.11.4 available - @emph{December 21, 2006}
 The vertical spacing improvements that were introduced in 2.11.0 now work
 within a system as well as between systems.
 @*
@@ -3185,7 +3734,7 @@ within a system as well as between systems.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.3 available - @emph{December 19, 2006}
+@subheading LilyPond 2.11.3 available - @emph{December 19, 2006}
 This release has @uref{http://lilypond.org/doc/v2.11/compare-v2.10.3/index.html,graphical
 test results} and several website build improvements.
 @*
@@ -3196,7 +3745,7 @@ test results} and several website build improvements.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.3 available - @emph{December 19, 2006}
+@subheading LilyPond 2.10.3 available - @emph{December 19, 2006}
 This release fixes several bugs.
 @*
 @bugfixes{2_10_3,},
@@ -3205,13 +3754,13 @@ This release fixes several bugs.
 
 
 @newsItem
-@subsubheading LinuxPPC binaries available! - @emph{December 19, 2006}
+@subheading LinuxPPC binaries available! - @emph{December 19, 2006}
 From now on, our GUB binary builds include support for Linux/PPC.  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading Traduction du tutoriel en français.  @emph{December 13, 2006}
+@subheading Traduction du tutoriel en français.  @emph{December 13, 2006}
 Fruit du travail d'une équipe de traducteurs, le tutoriel en français est
 maintenant disponible en ligne.
 @uref{http://lilypond.org/doc/v2.10/Documentation/user/lilypond/Tutorial.fr.html,Version 2.10},
@@ -3220,7 +3769,7 @@ maintenant disponible en ligne.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.2 available - @emph{December 12, 2006}
+@subheading LilyPond 2.11.2 available - @emph{December 12, 2006}
 This release supports glissandi and harmonics in tablature.
 @*
 @bugfixes{2_11_2,},
@@ -3230,7 +3779,7 @@ This release supports glissandi and harmonics in tablature.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.2 available - @emph{December 12, 2006}
+@subheading LilyPond 2.10.2 available - @emph{December 12, 2006}
 A new stable release of LilyPond is available.
 @*
 @bugfixes{2_10_2,},
@@ -3239,7 +3788,7 @@ A new stable release of LilyPond is available.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.1 available - @emph{December 4, 2006}
+@subheading LilyPond 2.11.1 available - @emph{December 4, 2006}
 This release has improved support for horizontal spacing.
 @*
 @bugfixes{2_11_1,},
@@ -3249,7 +3798,7 @@ This release has improved support for horizontal spacing.
 
 
 @newsItem
-@subsubheading LilyPond 2.10.1 available - @emph{December 3, 2006}
+@subheading LilyPond 2.10.1 available - @emph{December 3, 2006}
 A new stable release of LilyPond is available.
 @*
 @bugfixes{2_10_1,},
@@ -3258,27 +3807,27 @@ A new stable release of LilyPond is available.
 
 
 @newsItem
-@subsubheading LilyPond 2.11.0 available - @emph{November 27, 2006}
+@subheading LilyPond 2.11.0 available - @emph{November 27, 2006}
 This release has improved support for vertical spacing.  (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.10.0 available - @emph{November 11, 2006}
+@subheading LilyPond 2.10.0 available - @emph{November 11, 2006}
 A new stable release of LilyPond is available.
 (@miscLink{announce-v2.10,Announcement}, @ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading GIT repository online - @emph{November 11, 2006}
+@subheading GIT repository online - @emph{November 11, 2006}
 LilyPond development has moved over its source code to @uref{http://git.or.cz,GIT}, the fast version control
 system. Check out our repository at @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,gnu.org}.
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.29 available - @emph{November 5, 2006}
+@subheading LilyPond 2.9.29 available - @emph{November 5, 2006}
 This release has many more bugfixes.
 @*
 @bugfixes{2_9_29,},
@@ -3287,7 +3836,7 @@ This release has many more bugfixes.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.28 available - @emph{November 3, 2006}
+@subheading LilyPond 2.9.28 available - @emph{November 3, 2006}
 This release has many more bugfixes.
 @*
 @bugfixes{2_9_28,},
@@ -3296,7 +3845,7 @@ This release has many more bugfixes.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.27 available - @emph{October 28, 2006}
+@subheading LilyPond 2.9.27 available - @emph{October 28, 2006}
 This release has a new @code{FretBoards} context, and some further
 bugfixes.
 @*
@@ -3307,7 +3856,7 @@ bugfixes.
 
 
 @newsItem
-@subsubheading Music streams thesis available - @emph{October 21, 2006}
+@subheading Music streams thesis available - @emph{October 21, 2006}
 The last months, Erik Sandberg has been overhauling the internals of
 Lily. This change introduces a new intermediate format, Music Streams,
 which will make it easier get music data out of LilyPond. A copy of
@@ -3317,7 +3866,7 @@ the thesis is now available from lilypond.org
 
 
 @newsItem
-@subsubheading LilyPond 2.9.26 available - @emph{October 20, 2006}
+@subheading LilyPond 2.9.26 available - @emph{October 20, 2006}
 This release has further bugfixes.
 @*
 @bugfixes{2_9_26,},
@@ -3326,7 +3875,7 @@ This release has further bugfixes.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.25 available - @emph{October 18, 2006}
+@subheading LilyPond 2.9.25 available - @emph{October 18, 2006}
 This release has more bugfixes; from now on, binaries are also
 available for x86/64.
 @*
@@ -3336,7 +3885,7 @@ available for x86/64.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.24 available - @emph{October 15, 2006}
+@subheading LilyPond 2.9.24 available - @emph{October 15, 2006}
 This release has support for right hand guitar fingerings, and offers
 some bugfixes.  (@ref{Cambios},
 @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed2924&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
@@ -3345,39 +3894,39 @@ some bugfixes.  (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.9.23 available - @emph{October 12, 2006}
+@subheading LilyPond 2.9.23 available - @emph{October 12, 2006}
 This release cuts fragments of EPS directly from your finished score,
 and makes it easier to insert ties into lyrics. (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.22 available - @emph{October 9, 2006}
+@subheading LilyPond 2.9.22 available - @emph{October 9, 2006}
 Test this release candidate for LilyPond 2.10!  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.21 available - @emph{October 4, 2006}
+@subheading LilyPond 2.9.21 available - @emph{October 4, 2006}
 Test this release candidate for LilyPond 2.10!  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.20 available - @emph{October 3, 2006}
+@subheading LilyPond 2.9.20 available - @emph{October 3, 2006}
 Test this release candidate for LilyPond 2.10!  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.17 available - @emph{September 2, 2006}
+@subheading LilyPond 2.9.17 available - @emph{September 2, 2006}
 This release fixes many bugs. Among others, MacOS X QuickTime now
 honors tempo changes are in the MIDI output.  (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.16 available - @emph{August 25, 2006}
+@subheading LilyPond 2.9.16 available - @emph{August 25, 2006}
 In this release, chords may be partially tied and lyric extenders have
 tunable padding. Moreover, many bugs were fixed
 (@ref{Cambios}, @ref{Descargas antiguas})
@@ -3385,20 +3934,20 @@ tunable padding. Moreover, many bugs were fixed
 
 
 @newsItem
-@subsubheading LilyPond 2.9.15 available - @emph{August 20, 2006}
+@subheading LilyPond 2.9.15 available - @emph{August 20, 2006}
 This releases fixes many bugs in the 2.9.14 release.  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.8.6 available - @emph{August 8, 2006}
+@subheading LilyPond 2.8.6 available - @emph{August 8, 2006}
 This release contains a few minor bugfixes; the source tarball is also
 available.  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.14 available - @emph{August 4, 2006}
+@subheading LilyPond 2.9.14 available - @emph{August 4, 2006}
 This release supports instrument name changes, dotted barlines and
 better spacing for floating grace notes. In addition, it contains
 ongoing work by Erik Sandberg to extend the interpretation phase with
@@ -3407,14 +3956,14 @@ stream support.  (@ref{Cambios}, @ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading LilyPond 2.9.13 available - @emph{July 23, 2006}
+@subheading LilyPond 2.9.13 available - @emph{July 23, 2006}
 This release supports doits and falls, and more tuning options for
 grace note spacing and tuplet brackets.  (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.12 available - @emph{July 18, 2006}
+@subheading LilyPond 2.9.12 available - @emph{July 18, 2006}
 This release supports pdftex for lilypond-book, and uses PdfTeX for
 generating manuals, so page numbers and references are now clickable.
 (@ref{Cambios}, @ref{Descargas antiguas})
@@ -3422,7 +3971,7 @@ generating manuals, so page numbers and references are now clickable.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.11 available - @emph{July 12, 2006}
+@subheading LilyPond 2.9.11 available - @emph{July 12, 2006}
 This release wraps improvements of the last two weeks.  As a new
 feature, it supports tunable tuplet number formatting for nested
 tuplets.  (@ref{Cambios}, @ref{Descargas antiguas})
@@ -3430,7 +3979,7 @@ tuplets.  (@ref{Cambios}, @ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading LilyPond 2.9.10 available - @emph{June 15, 2006}
+@subheading LilyPond 2.9.10 available - @emph{June 15, 2006}
 This releases fixes a couple of  bugs in 2.9.9.
 (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3438,7 +3987,7 @@ This releases fixes a couple of  bugs in 2.9.9.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.9 available - @emph{June 15, 2006}
+@subheading LilyPond 2.9.9 available - @emph{June 15, 2006}
 This releases fixes many bugs in 2.9.8 and earlier.
 (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3446,7 +3995,7 @@ This releases fixes many bugs in 2.9.8 and earlier.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.8 available - @emph{June 6, 2006}
+@subheading LilyPond 2.9.8 available - @emph{June 6, 2006}
 2.9.8 has support for different spacing sections within a single
 score, and better infrastructure for automated regression testing.
 (@ref{Cambios},
@@ -3455,7 +4004,7 @@ score, and better infrastructure for automated regression testing.
 
 
 @newsItem
-@subsubheading LilyPond 2.8.4 available - @emph{June 4, 2006}
+@subheading LilyPond 2.8.4 available - @emph{June 4, 2006}
 2.8.4 fixes some minor bugs, and includes a backport of the
 infrastructure for automated regression testing.
 (@ref{Descargas antiguas})
@@ -3463,7 +4012,7 @@ infrastructure for automated regression testing.
 
 
 @newsItem
-@subsubheading First test results available - @emph{June 4, 2006}
+@subheading First test results available - @emph{June 4, 2006}
 After a week of frantic tweaking, the first automated testing results
 are available.  You can now see @uref{http://lilypond.org/doc/v2.9/compare-v2.8.4/index.html,in full
 glory} what features are broken in the development release
@@ -3471,7 +4020,7 @@ glory} what features are broken in the development release
 
 
 @newsItem
-@subsubheading LilyPond 2.9.7 available - @emph{May 30, 2006}
+@subheading LilyPond 2.9.7 available - @emph{May 30, 2006}
 2.9.7 has improvements in the formatting for figured bass, and
 includes a new framework for detecting bugs earlier, which will make
 the development releases even better
@@ -3479,7 +4028,7 @@ the development releases even better
 
 
 @newsItem
-@subsubheading LilyPond 2.9.6 available - @emph{May 24, 2006}
+@subheading LilyPond 2.9.6 available - @emph{May 24, 2006}
 This
 release has new features in beam formatting: beams may now be put on
 single stems, and obey the @code{beatGrouping} property.  MusicXML
@@ -3488,7 +4037,7 @@ converter.  (@ref{Cambios}, @ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading New essay pages! - @emph{May 22, 2006}
+@subheading New essay pages! - @emph{May 22, 2006}
 The @emph{Automated Engraving} essay has been updated with material
 from the @uref{http://fisl.softwarelivre.org,FISL} talk, with
 pages on @uref{about/automated-engraving/problem-statement,modeling
@@ -3498,7 +4047,7 @@ esthetics}. Happy reading!
 
 
 @newsItem
-@subsubheading LilyPond 2.9.5 available - @emph{May 17, 2006}
+@subheading LilyPond 2.9.5 available - @emph{May 17, 2006}
 This release supports object rotation, hairpins with circled tips,
 hairpins that run to barlines before notes and improvements in the
 MusicXML converter.
@@ -3507,7 +4056,7 @@ MusicXML converter.
 
 
 @newsItem
-@subsubheading LilyPond 2.9.4 available - @emph{May 12, 2006}
+@subheading LilyPond 2.9.4 available - @emph{May 12, 2006}
 This release has support for feathered beaming, and note head styles in
 the markup @code{\note} command. In addition, it has a lot of updates
 of the manual and a clean up of the spring spacer.
@@ -3516,14 +4065,14 @@ of the manual and a clean up of the spring spacer.
 
 
 @newsItem
-@subsubheading LilyPond 2.8.2 available - @emph{May 12, 2006}
+@subheading LilyPond 2.8.2 available - @emph{May 12, 2006}
 This release has fixes for minor bugs and compilation issues.
 (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.3 is out! - @emph{May 7, 2006}
+@subheading LilyPond 2.9.3 is out! - @emph{May 7, 2006}
 This new release has lots of updates of the manual, courtesy Graham
 and the contributors of the mailing. It handles formatting for ties in
 arpegiated chords better (feature sponsored by
@@ -3533,7 +4082,7 @@ and some cleanups of the PostScript output, courtesy David Feuer. (@ref{Cambios}
 
 
 @newsItem
-@subsubheading FISL7.0 slides available - @emph{April 22, 2006}
+@subheading FISL7.0 slides available - @emph{April 22, 2006}
 The slides for Han-Wen's talk at
 @uref{http://fisl.softwarelivre.org,FISL 7} are now online.
 (@ref{Publicaciones})
@@ -3541,14 +4090,14 @@ The slides for Han-Wen's talk at
 
 
 @newsItem
-@subsubheading LilyPond 2.8.1 is out! - @emph{April 3, 2006}
+@subheading LilyPond 2.8.1 is out! - @emph{April 3, 2006}
 Important bugfixes include CJK font handling and a Darwin/x86 port.
 (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.9.1 is out! - @emph{April 3, 2006}
+@subheading LilyPond 2.9.1 is out! - @emph{April 3, 2006}
 It's mostly a bugfix release, and it's almoste the same as 2.8.1. This
 release mainly fixes problems with CJK font loading.
 (@ref{Cambios}, @ref{Descargas antiguas})
@@ -3556,21 +4105,21 @@ release mainly fixes problems with CJK font loading.
 
 
 @newsItem
-@subsubheading LilyPond on MacOS X/Intel - @emph{March 31, 2006}
+@subheading LilyPond on MacOS X/Intel - @emph{March 31, 2006}
 LilyPond now also runs on Intel based macs, offering a 400%
 speedup over the emulated PowerPC binaries.  (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.8.0 is out! - @emph{March 22, 2006}
+@subheading LilyPond 2.8.0 is out! - @emph{March 22, 2006}
 Version 2.8 is here! Read the @miscLink{announce-v2.8,release
 announcement}.  (@ref{Cambios}, @ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.7.39 is out - @emph{March 17, 2006}
+@subheading LilyPond 2.7.39 is out - @emph{March 17, 2006}
 This release has even more bug fixes. Please test before 2.8 is
 released. (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3578,7 +4127,7 @@ released. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.38 is out - @emph{March 12, 2006}
+@subheading LilyPond 2.7.38 is out - @emph{March 12, 2006}
 This is likely to be the last release candidate before we release 2.8,
 so report any bugs that you might find. New attractions include:
 lilypond postscript files now work with GSView, cut & pasting lily
@@ -3590,7 +4139,7 @@ multi-measure rests.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.37 is out - @emph{March 4, 2006}
+@subheading LilyPond 2.7.37 is out - @emph{March 4, 2006}
 This release has more bug fixes. Please help us by testing it!
 (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3598,7 +4147,7 @@ This release has more bug fixes. Please help us by testing it!
 
 
 @newsItem
-@subsubheading LilyPond 2.7.36 is out - @emph{February 24, 2006}
+@subheading LilyPond 2.7.36 is out - @emph{February 24, 2006}
 This is another release candidate for 2.8. It has lots of bug fixes
 and polishes to the documentation.  It also contains support for
 creating ties that are only on their right side connected to note
@@ -3610,7 +4159,7 @@ from lilypond.org. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.35 is out - @emph{February 19, 2006}
+@subheading LilyPond 2.7.35 is out - @emph{February 19, 2006}
 This release has lots of bugs fixes. The plan is to release 2.8 at the
 end of this month, so bug reports are @strong{very} welcome. By
 definition a bug is release critical if it wasn't present in version
@@ -3620,7 +4169,7 @@ definition a bug is release critical if it wasn't present in version
 
 
 @newsItem
-@subsubheading LilyPond 2.7.34 is out - @emph{February 16, 2006}
+@subheading LilyPond 2.7.34 is out - @emph{February 16, 2006}
 This release has a bunch of bugfixes, and new features. Newly created
 contexts may also be named with @code{\new Voice =
 "alto"}. Thicknesses of tie and slurs may be tuned separately for
@@ -3631,7 +4180,7 @@ part. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.33 is out - @emph{February 10, 2006}
+@subheading LilyPond 2.7.33 is out - @emph{February 10, 2006}
 Items directly connected with a music input element may be
 parenthesized, for example,
 @verbatim
@@ -3647,7 +4196,7 @@ This feature was sponsored by Ramana Kumar. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.32 is out - @emph{February 7, 2006}
+@subheading LilyPond 2.7.32 is out - @emph{February 7, 2006}
 This release contains some syntax changes: words inside the \paper and
 \layout block are henceforth written with dashes, for instance:
 
@@ -3667,7 +4216,7 @@ vector. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.31 is out - @emph{February 2, 2006}
+@subheading LilyPond 2.7.31 is out - @emph{February 2, 2006}
 This release fixes a load of bugs, and has some internal
 cleanups. Exported C++ members are now named
 ly:class-name::function-name in Scheme instead of
@@ -3680,7 +4229,7 @@ Python scripts too, so you can run convert-ly and midi2ly.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.30 is out - @emph{January 30, 2006}
+@subheading LilyPond 2.7.30 is out - @emph{January 30, 2006}
 This release has a few bug fixes, like the solfa note head shape and
 collisions, the \epsfile command, and in getting No. ligature in
 normal words. (@ref{Cambios},
@@ -3689,7 +4238,7 @@ normal words. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.29 is out - @emph{January 27, 2006}
+@subheading LilyPond 2.7.29 is out - @emph{January 27, 2006}
 This release has the following new features. Alignments of staves may
 be tuned per system (feature sponsored by Trevor Baca), individual
 systems may be positioned manually (feature sponsored by Trevor Baca
@@ -3703,7 +4252,7 @@ Sceaux). (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.28 is out - @emph{January 22, 2006}
+@subheading LilyPond 2.7.28 is out - @emph{January 22, 2006}
 This release contains numerous small fixes that were already in our
 GUB binaries. In addition, it has further polish for formatting of
 tied chords. Theses improvements were sponsored by Steve
@@ -3713,7 +4262,7 @@ Doonan. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.27, release 4 - @emph{January 13, 2006}
+@subheading LilyPond 2.7.27, release 4 - @emph{January 13, 2006}
 
 The fourth release of our Grand Unified Binary for 2.7.27 is
 available.  This release uses Pango 1.11.1, which has support for
@@ -3722,7 +4271,7 @@ ligatures and kerning. Enjoy!  (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading LilyPond 2.7.27, release 3 - @emph{January 12, 2006}
+@subheading LilyPond 2.7.27, release 3 - @emph{January 12, 2006}
 The third release of our Grand Unified Binaries is available.  This
 release fixes external font-support, the decompression flag for
 Linux. Also, we have support for @strong{FreeBSD} as well!  Jump
@@ -3731,21 +4280,21 @@ to the @ref{Descargas antiguas} get them!
 
 
 @newsItem
-@subsubheading LilyPond 2.7.27 binaries are out - @emph{January 7, 2006}
+@subheading LilyPond 2.7.27 binaries are out - @emph{January 7, 2006}
 Starting with 2.7.26, the development team has been working on the
 installers. We're proud to announce another version of these: they are
 now available for
-@uref{http://lilypond.org/download/binaries/linux-x86/lilypond-2.7.27-1.linux.sh,
+@uref{http://lilypond.org/download/binaries/linux-x86/,
 Linux/x86},
-@uref{http://lilypond.org/download/binaries/MacOS/lilypond-2.7.27-2.zip,
+@uref{http://lilypond.org/download/binaries/darwin-ppc/,
 MacOS X} and
-@uref{http://lilypond.org/download/binaries/mingw/lilypond-2.7.27-2.exe,
+@uref{http://lilypond.org/download/binaries/mingw/,
 Windows}.
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.7.27 is out - @emph{January 7, 2006}
+@subheading LilyPond 2.7.27 is out - @emph{January 7, 2006}
 This release allows you to switch staff lines on and off individually
 (feature sponsored by Andrea
 Valle). (@ref{Cambios},
@@ -3754,7 +4303,7 @@ Valle). (@ref{Cambios},
 
 
 @newsItem
-@subsubheading Linux Journal article - @emph{January 2006}
+@subheading Linux Journal article - @emph{January 2006}
 Linux Journal publishes an article on
 @uref{http://www.linuxjournal.com/article/8364,@emph{Make
 Stunning Schenker Graphs with GNU LilyPond}}.  It is a
@@ -3769,7 +4318,7 @@ This article is now available @uref{http://www.linuxjournal.com/article/8583,on-
 
 
 @newsItem
-@subsubheading New binaries for LilyPond 2.7.26 - @emph{January 4, 2006}
+@subheading New binaries for LilyPond 2.7.26 - @emph{January 4, 2006}
 The Development team has been working around the clock to improve
 to fix the first wave bugs reported by you.  The new results for MacOS
 and Windows are up on the @ref{Descargas antiguas}
@@ -3778,7 +4327,7 @@ page. Let us know how you fare!
 
 
 @newsItem
-@subsubheading LilyPond 2.7.26 is out - @emph{December 31, 2005}
+@subheading LilyPond 2.7.26 is out - @emph{December 31, 2005}
 This release has an improvement in the MusicXML importer (feature
 sponsored by Mark vd Borre's Music Academy): now, staves and voices
 are also setup, so you can readily run LilyPond on the .ly output.
@@ -3793,7 +4342,7 @@ A happy 2006 from the LilyPond Development Team!
 
 
 @newsItem
-@subsubheading LilyPond 2.7.25 is out - @emph{December 24, 2005}
+@subheading LilyPond 2.7.25 is out - @emph{December 24, 2005}
 This release has various bugfixes. Also, stems on the center line now
 have their directions interpolated to minimize the number of direction
 changes (feature sponsored by Basil Crow and Mike
@@ -3803,7 +4352,7 @@ Rolish). (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.24 is out - @emph{December 20, 2005}
+@subheading LilyPond 2.7.24 is out - @emph{December 20, 2005}
 This release fixes a couple of bugs, but more importantly, slurs now
 avoid TupletNumbers, and tuplet numbers may enter the staff (feature
 sponsored by Trent Johnston), tuplet brackets and numbers are
@@ -3817,7 +4366,7 @@ functions. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.23 is out - @emph{December 19, 2005}
+@subheading LilyPond 2.7.23 is out - @emph{December 19, 2005}
 This release has the following new features:
 @itemize
 @item
@@ -3844,7 +4393,7 @@ Bertalan Fodor.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.22 is out - @emph{December 9, 2005}
+@subheading LilyPond 2.7.22 is out - @emph{December 9, 2005}
 This release has better support for MusicXML: it also supports ties,
 beams and editorial accidentals. It also has more options for spacing
 Lyrics; it is now possible to separately specify minimum distances for
@@ -3856,7 +4405,7 @@ Fodor. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.21 is out - @emph{December 5, 2005}
+@subheading LilyPond 2.7.21 is out - @emph{December 5, 2005}
 Saint Nicholas brings you ... a @uref{http://www.musicxml.org/,MusicXML} convertor for LilyPond!
 The convertor is basic, but working. Check out the @uref{http://www.lilypond-design.com/sponsor/open-features.html#inputfilter,
 LilyPond Software Design} pages for MusicXML features that can be
@@ -3865,7 +4414,7 @@ sponsored.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.20 is out - @emph{December 2, 2005}
+@subheading LilyPond 2.7.20 is out - @emph{December 2, 2005}
 This release contains the following improvements: Texts set in a
 TrueType font are now kerned. Using the TeX no longer requires linking
 or dynamically opening the kpathsea library, making the backend more
@@ -3877,14 +4426,14 @@ Productions). (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.6.5 is out - @emph{December 1, 2005}
+@subheading LilyPond 2.6.5 is out - @emph{December 1, 2005}
 This release updates the bugreporting address and reorganizes the
 documentation tree. (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.7.19 is out - @emph{November 26, 2005}
+@subheading LilyPond 2.7.19 is out - @emph{November 26, 2005}
 This version contains a few bugfixes, and now allows the type of
 brackets in system start bracket hierarchies to be specified. Also,
 the horizontal alignment of rehearsal marks may be changed: marks can
@@ -3895,7 +4444,7 @@ etc. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.18 is out - @emph{November 21, 2005}
+@subheading LilyPond 2.7.18 is out - @emph{November 21, 2005}
 This version features nestable system start delimiters, like bracket,
 brace. It also adds "square" line bracket (feature sponsored by Trevor
 Baca). It also has refactored routines for tie formatting. This will
@@ -3907,7 +4456,7 @@ fixes. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.17 is out - @emph{November 17, 2005}
+@subheading LilyPond 2.7.17 is out - @emph{November 17, 2005}
 This version has refactored routines for tie formatting. This will
 make it easier to get better tie formatting for chords (feature
 sponsored by Steve Doonan). It also has a few bug
@@ -3917,7 +4466,7 @@ fixes. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.16 is out - @emph{November 11, 2005}
+@subheading LilyPond 2.7.16 is out - @emph{November 11, 2005}
 This release fixes a large number of bugs. Please upgrade before
 reporting bugs in the 2.7 series. (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3925,7 +4474,7 @@ reporting bugs in the 2.7 series. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.15 is out - @emph{November 3, 2005}
+@subheading LilyPond 2.7.15 is out - @emph{November 3, 2005}
 This release has another massive cleanup of the backend.  Each grob
 property may also be a "grob closure". This means that it is possible
 to combine functions. Calculation of extent and offset of grob is now
@@ -3936,7 +4485,7 @@ properties. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.14 is out - @emph{October 23, 2005}
+@subheading LilyPond 2.7.14 is out - @emph{October 23, 2005}
 This release has more cleanup in the layout-engine. Now,
 properties that have Procedure values are thought to be procedures
 that compute said property, i.e.
@@ -3952,7 +4501,7 @@ will set  a random direction for beams. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.13 is out - @emph{October 18, 2005}
+@subheading LilyPond 2.7.13 is out - @emph{October 18, 2005}
 This release features slashed numerals, plus signs and interruptible
 extender lines for figured bass. Merging of Figured bass lines has
 been made switchable with the figuredBassCenterContinuations
@@ -3965,7 +4514,7 @@ users. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.6.4 is out - @emph{October 11, 2005}
+@subheading LilyPond 2.6.4 is out - @emph{October 11, 2005}
 This release fixes a few minor problems with the stable
 series. (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -3973,7 +4522,7 @@ series. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.12 is out - @emph{October 07, 2005}
+@subheading LilyPond 2.7.12 is out - @emph{October 07, 2005}
 It features more annotations for the page layout engine and some more
 sponsored features. Beamlets may stick out of the side of beams
 (feature sponsored by Trevor Baca); new support for figured bass with
@@ -3987,7 +4536,7 @@ Sceaux). (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.11 is out - @emph{October 02, 2005}
+@subheading LilyPond 2.7.11 is out - @emph{October 02, 2005}
 Vertical spacing for page layout can now be tuned for each system
 individually (feature sponsored by Trevor Baca and Nicolas
 Sceaux). The slope of a stem-tremolo may be set manually (feature
@@ -3999,7 +4548,7 @@ fixes. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.10 is out - @emph{September 13, 2005}
+@subheading LilyPond 2.7.10 is out - @emph{September 13, 2005}
 This version adds proper support for "laissez vibrer ties", just enter
 \laissezVibrer after a chord. This feature was sponsored by Henrik
 Frisk. It also has a couple of minor
@@ -4009,7 +4558,7 @@ bugfixes. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.9 is out - @emph{September 5, 2005}
+@subheading LilyPond 2.7.9 is out - @emph{September 5, 2005}
 This is mainly a bugfix
 release. (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -4017,7 +4566,7 @@ release. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading Traduction française du site - @emph{September 03, 2005}
+@subheading Traduction française du site - @emph{September 03, 2005}
 Grâce à @uref{about/thanks#website,l'équipe des traducteurs},
 de nombreuses pages du site sont maintenant disponibles en français,
 notamment l'@uref{about/automated-engraving/index.fr.html,essai sur
@@ -4026,7 +4575,7 @@ la gravure musicale}.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.8 is out - @emph{August 29, 2005}
+@subheading LilyPond 2.7.8 is out - @emph{August 29, 2005}
 This release has support for right-to-left text formatting in markup
 commands (sponsored by Aaron Mehl). In addition, it fixes a great
 number of bugs, among others, support for writing MIDI files.  (@ref{Cambios},
@@ -4035,7 +4584,7 @@ number of bugs, among others, support for writing MIDI files.  (@ref{Cambios},
 
 
 @newsItem
-@subsubheading Article in `De Standaard' - @emph{August 20, 2005}
+@subheading Article in `De Standaard' - @emph{August 20, 2005}
 The Belgian newspaper @emph{De Standaard} investigates what drives
 Free Software authors in an article titled @emph{Delen van KENNIS
 zonder WINSTBEJAG} (Non-profit sharing of
@@ -4045,7 +4594,7 @@ LilyPond's first appearance in mainstream printed press.
 
 
 @newsItem
-@subsubheading LilyPond 2.7.7 is out - @emph{August 22, 2005}
+@subheading LilyPond 2.7.7 is out - @emph{August 22, 2005}
 This release has a rewriting of tie formatting which was sponsored by
 Bertalan Fodor, Jay Hamilton, Kieren MacMillan, Steve Doonan, Trevor
 Baca, and Vicente Solsona Dellá. (@ref{Cambios},
@@ -4054,7 +4603,7 @@ Baca, and Vicente Solsona Dellá. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.6 is out - @emph{August 19, 2005}
+@subheading LilyPond 2.7.6 is out - @emph{August 19, 2005}
 This release adds support for numbered percent repeats, a feature
 sponsored by Yoshinobu Ishizaki. It also has bugfixes for clashes
 between slurs and symbols, like fingers dynamic
@@ -4064,7 +4613,7 @@ signs. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.5 is out - @emph{August 16, 2005}
+@subheading LilyPond 2.7.5 is out - @emph{August 16, 2005}
 Lily 2.7.5 has a large number of bugfixes, among others, in slur
 formatting, spacing, rest collisions and tuplet bracket
 formatting. (@ref{Cambios},
@@ -4073,7 +4622,7 @@ formatting. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.4 is out - @emph{August 7, 2005}
+@subheading LilyPond 2.7.4 is out - @emph{August 7, 2005}
 LilyPond 2.7.4 has support for proportional notation, where the space
 for a note is proportional to the time it
 takes. (@ref{Cambios},
@@ -4082,14 +4631,14 @@ takes. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.6.3 is out - @emph{August 4, 2005}
+@subheading LilyPond 2.6.3 is out - @emph{August 4, 2005}
 This release fixes a memory corruption bug that was triggered by
 \override'ing Beam settings. (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.6.2 is out - @emph{August 2, 2005}
+@subheading LilyPond 2.6.2 is out - @emph{August 2, 2005}
 This release has a few bugfixes, among them: the autopackage will run
 in more platforms, LilyPond will be much quicker for large
 lilypond-book documents, and the up and down Fa note heads for shaped
@@ -4100,7 +4649,7 @@ swapped. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.7.3 is out - @emph{July 25, 2005}
+@subheading LilyPond 2.7.3 is out - @emph{July 25, 2005}
 LilyPond 2.7.3 has improvements in performance which should result in
 faster operations (15 to 20 percent). It also contains the new
 "\displayLilyMusic" function.
@@ -4110,7 +4659,7 @@ faster operations (15 to 20 percent). It also contains the new
 
 
 @newsItem
-@subsubheading LilyPond 2.7.2 is out - @emph{July 21, 2005}
+@subheading LilyPond 2.7.2 is out - @emph{July 21, 2005}
 LilyPond 2.7.2 has support for suggested accidentals for musica
 ficta notation, easy entry for lyric melismata and improvements for
 quicker entry of scores.  (@ref{Cambios},
@@ -4119,7 +4668,7 @@ quicker entry of scores.  (@ref{Cambios},
 
 
 @newsItem
-@subsubheading LilyPond 2.6 released - @emph{June 27, 2005}
+@subheading LilyPond 2.6 released - @emph{June 27, 2005}
 Version 2.6 is the latest stable release of LilyPond.
 It now
 installs in a snap on Windows, MacOS X, and any version of Linux (x86).
@@ -4131,7 +4680,7 @@ print @strong{Unicode } lyrics in your favorite script and font.  Create
 
 
 @newsItem
-@subsubheading LilyPond 2.7.1 is out - @emph{July 20, 2005}
+@subheading LilyPond 2.7.1 is out - @emph{July 20, 2005}
 LilyPond 2.7.1 has no user-visible changes. However, due to
 restructuring @qq{under the hood}, this version will be 10 to
 20 % faster.  (@ref{Descargas antiguas})
@@ -4139,7 +4688,7 @@ restructuring @qq{under the hood}, this version will be 10 to
 
 
 @newsItem
-@subsubheading LilyPond 2.6.1 is out - @emph{July 11, 2005}
+@subheading LilyPond 2.6.1 is out - @emph{July 11, 2005}
 This version fixes a few minor bugs found in
 2.6.0, and also works on DOS-based Windows versions.  (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -4147,7 +4696,7 @@ This version fixes a few minor bugs found in
 
 
 @newsItem
-@subsubheading LilyPond 2.7 is out - @emph{July 9, 2005}
+@subheading LilyPond 2.7 is out - @emph{July 9, 2005}
 LilyPond 2.7.0 is out. It has support for paragraph text and
 pitched trill notation. (@ref{Cambios},
 @ref{Descargas antiguas})
@@ -4155,7 +4704,7 @@ pitched trill notation. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading 2.5.31 released - @emph{June 22, 2005}
+@subheading 2.5.31 released - @emph{June 22, 2005}
 LilyPond 2.5.32 is now available for download (binaries for Fedora +
 MacOS only). It has a few very minor bugfixes, and a rewrite of the
 TTF embedding code, which should be a lot more robust now.
@@ -4164,7 +4713,7 @@ TTF embedding code, which should be a lot more robust now.
 
 
 @newsItem
-@subsubheading Traduction du site de LilyPond - @emph{15 juin 2005}
+@subheading Traduction du site de LilyPond - @emph{15 juin 2005}
 @uref{about/thanks#website,L'équipe des traducteurs} vous présente
 le site de LilyPond en français. Nous travaillons sur la traduction des
 pages encore non traduites. Bon surf !
@@ -4172,7 +4721,7 @@ pages encore non traduites. Bon surf !
 
 
 @newsItem
-@subsubheading 2.5.31 for Windows and MacOS - @emph{June 15, 2005}
+@subheading 2.5.31 for Windows and MacOS - @emph{June 15, 2005}
 2.5.31 is now available for both Windows and MacOS X. The Windows
 version should now work with embedding TTF fonts, and the MacOS X has
 better help functionality.
@@ -4181,7 +4730,7 @@ better help functionality.
 
 
 @newsItem
-@subsubheading 2.5.31 released - @emph{June 15, 2005}
+@subheading 2.5.31 released - @emph{June 15, 2005}
 This release has a few bugfixes. In the MacOS X version, ClickEdit has
 been renamed to LilyPond, and you can now upgrade your files and
 compile them directly from
@@ -4190,14 +4739,14 @@ LilyPond. (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading 2.5.30 released - @emph{June 10, 2005}
+@subheading 2.5.30 released - @emph{June 10, 2005}
 This is (hopefully) the last Release Candidate before 2.6. Give it a
 good shake to find those last bugs! (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading 2.5.29 released - @emph{June 7, 2005}
+@subheading 2.5.29 released - @emph{June 7, 2005}
 In this release the documentation also has pictures. In addition, the
 Mac version can also read native mac fonts (.dfonts and fonts in
 resource forks). (@ref{Descargas antiguas})
@@ -4205,7 +4754,7 @@ resource forks). (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading 2.5.27 released - @emph{May 31, 2005}
+@subheading 2.5.27 released - @emph{May 31, 2005}
 It has a big bunch of minor bugfixes.  This is another release
 candidate for version 2.6, which should be released within the next 2
 weeks. Please send a bug report if you find a critical problem with this
@@ -4214,27 +4763,27 @@ release. (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading Windows and MacOS installers available - @emph{May 26, 2005}
+@subheading Windows and MacOS installers available - @emph{May 26, 2005}
 There are now a native, standalone installers for Windows and
 MacOS.  They also support PDF point & click. (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading 2.5.26 released - @emph{May 26, 2005}
+@subheading 2.5.26 released - @emph{May 26, 2005}
 This release has a couple of small bugfixes.
 @newsEnd
 
 
 @newsItem
-@subsubheading 2.5.25 released - @emph{May 20, 2005}
+@subheading 2.5.25 released - @emph{May 20, 2005}
 This release has many small bugfixes and updates to the
 documentation. (@ref{Descargas antiguas})
 @newsEnd
 
 
 @newsItem
-@subsubheading 2.5.24 released - @emph{May 12, 2005}
+@subheading 2.5.24 released - @emph{May 12, 2005}
 2.5.24 fixes a bunch of bugs; in particular, chord symbols (such as
 slashed o) should now work on all platforms. This release has a new
 feature: it is now possible to make staves appear in a different order
@@ -4243,7 +4792,7 @@ from the order that they were defined. (@ref{Descargas antiguas})
 
 
 @newsItem
-@subsubheading 2.5.23 released - @emph{May 6, 2005}
+@subheading 2.5.23 released - @emph{May 6, 2005}
 This release has a couple of small bugfixes, and a new feature. It is
 now possible to start and stop the @code{StaffSymbol}, during a piece of
 music, by doing @code{\stopStaff \startStaff}. This can be used to
@@ -4253,7 +4802,7 @@ produce Ossia staves. (@ref{Cambios},
 
 
 @newsItem
-@subsubheading 2.5.22 released - @emph{May 3, 2005}
+@subheading 2.5.22 released - @emph{May 3, 2005}
 2.5.22 is a bugfix
 release. The most visible improvement is in the PDF : this release
 will produce smaller PDF files, with symbols that look better on
@@ -4263,7 +4812,7 @@ screen.
 
 
 @newsItem
-@subsubheading April 25, 2005 - 2.5.21 released!
+@subheading April 25, 2005 - 2.5.21 released!
 2.5.21 has more bugfixes. It also has support for "grid
 lines", bar like vertical line, which are aligned with the notes. The
 auto-beam engraver was rewritten, so it also works with irregular time
@@ -4274,7 +4823,7 @@ signatures like 5/8.
 
 
 @newsItem
-@subsubheading April 18, 2005
+@subheading April 18, 2005
 LilyPond 2.5.20 has lots of bugfixes, in particular, MIDI files of
 multi-movement pieces don't overwrite each other.  Version 2.5.20 also
 supports putting arrows on lines, such as glissandi.
@@ -4285,7 +4834,7 @@ file, or go straight to @ref{Descargas antiguas}.
 
 
 @newsItem
-@subsubheading April 15, 2005
+@subheading April 15, 2005
 LilyPond 2.5.19 was released. The command `\epsfile' allows inclusion
 of EPS graphics into markup texts and the music function
 `\musicDisplay' will display a music expression as indented
@@ -4296,7 +4845,7 @@ file and @ref{Descargas antiguas}.
 
 
 @newsItem
-@subsubheading April 6, 2005
+@subheading April 6, 2005
 2.5.18 is a bugfix release. It has many small cleanups in the
 web-based documentation, and many small cleanups all over the
 place. @ref{Descargas antiguas}
@@ -4304,7 +4853,7 @@ place. @ref{Descargas antiguas}
 
 
 @newsItem
-@subsubheading March 31, 2005
+@subheading March 31, 2005
 2.5.17 is out. This release features many small bugfixes. In addition,
 it has support for string number notation for guitar. This feature was
 sponsored by Gunther Strube. @ref{Descargas antiguas}
@@ -4312,7 +4861,7 @@ sponsored by Gunther Strube. @ref{Descargas antiguas}
 
 
 @newsItem
-@subsubheading March 20, 2005
+@subheading March 20, 2005
 LilyPond 2.5.16 is out. This release fixes a few minor but irritating
 errors. A Fedora Core 3 binary is also available.
 @ref{Descargas antiguas}
@@ -4320,7 +4869,7 @@ errors. A Fedora Core 3 binary is also available.
 
 
 @newsItem
-@subsubheading March 14, 2005
+@subheading March 14, 2005
 LilyPond 2.5.15 is out. This release has clean ups in the SVG output,
 and now uses the LilyPond number font for time signatures.  It is
 now possible to add text before and after music. This can be used to
@@ -4330,7 +4879,7 @@ file and @ref{Descargas antiguas}!
 
 
 @newsItem
-@subsubheading March 7, 2005
+@subheading March 7, 2005
 LilyPond 2.5.14 is out. It is now possible (and in fact, encouraged),
 to build LilyPond either without the Kpathsea TeX library or with the
 Kpathsea dynamically loaded, but only for the -btex backend.  This
@@ -4342,7 +4891,7 @@ file and download @ref{Descargas antiguas}!
 
 
 @newsItem
-@subsubheading March 7, 2005
+@subheading March 7, 2005
 LilyPond 2.4.5 is out. This release backports the tieWaitForNote
 feature and has support for tetex-3.0.
 @ref{Descargas antiguas}
@@ -4350,9 +4899,9 @@ feature and has support for tetex-3.0.
 
 
 @newsItem
-@subsubheading February 28, 2005
-LilyPond 2.5.13 is available for Fedora Core 3. You need to install @uref{http://lilypond.org/download/binaries/Fedora-3/ghostscript-8.15rc3-0.i386.rpm,ESP
-Ghostscript 8.15rc3}. Unfortunately, this version of Ghostscript
+@subheading February 28, 2005
+LilyPond 2.5.13 is available for Fedora Core 3. You need to install
+Ghostscript 8.15rc3. Unfortunately, this version of Ghostscript
 lacks the IJS dynamic library, which means that it will conflict with
 the gimp-print package. You may install it with --nodeps. Use at your
 own risk.
@@ -4360,7 +4909,7 @@ own risk.
 
 
 @newsItem
-@subsubheading February 28, 2005
+@subheading February 28, 2005
 LilyPond 2.5.13 is out. This release has Point and click support for
 PDF output. You can read more about it @uref{http://lilypond.org/doc/v2.5/Documentation/user/out-www/lilypond/Point-and-click.html,here}.
 Take a look at the @ref{Cambios}
@@ -4369,7 +4918,7 @@ file and download @ref{Descargas antiguas}!
 
 
 @newsItem
-@subsubheading February 26, 2005
+@subheading February 26, 2005
 The @uref{http://lsr.di.unimi.it/,Lilypond Snippet
 Repository (LSR)} is a searchable database of Lilypond code
 snippets.  You can add snippets too, so join the LSR project, and
@@ -4378,7 +4927,7 @@ contribute creative ideas for using Lilypond.
 
 
 @newsItem
-@subsubheading February 21, 2005
+@subheading February 21, 2005
 LilyPond 2.5.12 is out. The big news is that this release supports
 TrueType fonts. This means that it is now possible to use @strong{all}
 fonts available via FontConfig. Also, arpeggios may be written out
@@ -4389,7 +4938,7 @@ file and @ref{Descargas antiguas}!
 
 
 @newsItem
-@subsubheading February 4, 2005
+@subheading February 4, 2005
 LilyPond 2.5.11 is out.  In this
 release, foreign character sets are now supported in lilypond-book
 too, and it is possible to put system separators between systems.
@@ -4398,7 +4947,7 @@ too, and it is possible to put system separators between systems.
 
 
 @newsItem
-@subsubheading January 31, 2005
+@subheading January 31, 2005
 LilyPond 2.5.10 is out. This release
 sports as new EPS backend, based on the PS backend. This backend is
 used in the new and improved lilypond-book script.
@@ -4407,7 +4956,7 @@ used in the new and improved lilypond-book script.
 
 
 @newsItem
-@subsubheading January 26, 2005
+@subheading January 26, 2005
 LilyPond 2.5.9 is out. This release fixes a couple of annoying
 bugs in the direct PS output for piano braces.
 @ref{Descargas antiguas}
@@ -4415,19 +4964,19 @@ bugs in the direct PS output for piano braces.
 
 
 @newsItem
-@subsubheading January 16, 2005
+@subheading January 16, 2005
 LilyPond 2.5.8 is out.  This
 release has many internal code cleanups. In addition,
 accuracy of error reporting has been improved.
 See the
-@uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3065&content-type=text/vnd.viewcvs-markup,
+@uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,
 change log
 } and @ref{Descargas antiguas}!
 @newsEnd
 
 
 @newsItem
-@subsubheading January 11, 2005
+@subheading January 11, 2005
 LilyPond 2.5.7 is out. This release has a completely usable
 Pango integration for the PS backend. The default font is
 Century Schoolbook from the PS font suite.  It also has
@@ -4436,12 +4985,12 @@ assorted manual updates by Graham, and an overhaul of the
 font code by Werner.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3048&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading January 02, 2005
+@subheading January 02, 2005
 LilyPond 2.5.6 was released. This is a "technology preview"
 release, which means that it has all kinds of nifty
 features, but is not actually usable for producing nicely
@@ -4453,24 +5002,24 @@ backend now offloads all metric computations to LaTeX, the
 SVG and GNOME backends are broken, most probably.
 @ref{Descargas antiguas}
 and check out the
-changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3013&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading December 28, 2004
+@subheading December 28, 2004
 LilyPond 2.5.5 is out. It is the first one to link against
 FontConfig and Pango, although it is only available in the "-f
 ps" output. The default output format has been changed back TeX
 while we stabilize the Pango/FontConfig integration.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev= 1.3000&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading December 20, 2004
+@subheading December 20, 2004
 LilyPond 2.5.4 is out. This release has some major
 brainsurgery in the font handling. As of now, LilyPond loads
 the music fonts in OpenType font format using FreeType.
@@ -4478,12 +5027,12 @@ This has made a lot of things simpler, including font
 handling for the GNOME backend and SVG backend.
 @ref{Descargas antiguas}
 and check out the
-changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2974&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading December 3, 2004
+@subheading December 3, 2004
 LilyPond 2.5.3 was released. A new script, `\espressivo' has
 been added, for a combination of crescendo and decrescendo
 on a single note. In markups, expressions stacked with
@@ -4495,12 +5044,12 @@ by letting the grace notes follow a skip in a parallel
 expression.
 @ref{Descargas antiguas}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2908&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading November 26, 2004
+@subheading November 26, 2004
 LilyPond 2.5.2 was released. It has several goodies,
 including solfa-notation (shaped noteheads), and an easier
 mechanism for customizing title, footer and header
@@ -4508,12 +5057,12 @@ layout. Don't forget to rebuild the fonts, as they have been
 changed to accomodate the solfa-notation.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2898&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading November 20, 2004
+@subheading November 20, 2004
 LilyPond 2.5.1 is out. This is an experimental release,
 containing some proof-of-concept code for our graphical
 layout editor. You can add and remove things from the file,
@@ -4525,12 +5074,12 @@ SVG backend, support for the lmodern font set for TeX,
 various bugfixes.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2881&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading November 12, 2004
+@subheading November 12, 2004
 The LilyPond development is OPEN once again! The first
 release of the 2.5 series has the following new Features:
 Positioning of slurs can now be adjusted manually, Grace
@@ -4548,12 +5097,12 @@ the -f gnome backend. These tweaks can be saved and are
 applied to the PS and TeX output as well.
 @ref{Descargas antiguas}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2837&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading November 11, 2004
+@subheading November 11, 2004
 LilyPond 2.4.2 is out. This release fixes a number of security
 problems with --safe, and adds a lot of polishing fixes.
 @ref{Descargas antiguas}
@@ -4561,17 +5110,17 @@ problems with --safe, and adds a lot of polishing fixes.
 
 
 @newsItem
-@subsubheading November 4, 2004
+@subheading November 4, 2004
 LilyPond 2.4.1 is out. This release includes a number of small
 fixes that were made to 2.4.0 last week.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2780.2&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 31, 2004
+@subheading October 31, 2004
 LilyPond 2.4.0 was just @miscLink{announce-v2.4,released!}
 This new stable version has support for page-layout,
 completely rewritten slur formatting and many other
@@ -4582,76 +5131,76 @@ file.
 
 
 @newsItem
-@subsubheading October 29, 2004
+@subheading October 29, 2004
 LilyPond 2.3.26 is out. This is another 2.4 release
 candidate. This release fixes a number of minor bugs, and
 some problems with the conversion scripts.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2773&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 29, 2004
+@subheading October 29, 2004
 2.3.25 is the final release candidate for Lilypond 2.4.
 Werner has been overhauling the TeX macros and
 lilypond-book. In addition, this release contains an
 important fix for raggedbottom page-layout.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2765&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 27, 2004
+@subheading October 27, 2004
 LilyPond 2.3.24 is a further polished 2.4 release candidate.
 This release has more improvements by Werner for the TeX
 backend, and a bunch of other small fixes.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2752&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 24, 2004
+@subheading October 24, 2004
 LilyPond 2.3.23 has bugfixes in the documentation, lilypond-book and
 --preview output. This release can be considered as a release
 candidate for LilyPond 2.4.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2742&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 10, 2004
+@subheading October 10, 2004
 LilyPond 2.3.22 fixes a bunch more bugs, to make 2.4 a really
 stable release.  In addition, it renames the \paper@{@} block to
 \layout@{@}.  The \bookpaper@{@} block is now called
 \paper@{@}.
 @ref{Descargas antiguas}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2709&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 09, 2004
+@subheading October 09, 2004
 LilyPond 2.3.21 is out. It is a serious release candidate for
 the next stable release LilyPond. This version has a cleanup
 and some small formatting improvements of the slur
 code.
 @ref{Descargas antiguas}
 and check
-out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2692&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 02, 2004
+@subheading October 02, 2004
 LilyPond 2.3.20 was released. It fixes the biggest problems
 with encoding and the TeX backend. As a result, latin1
 characters (like the german SS) show up correctly in the
@@ -4659,13 +5208,13 @@ output once again. Also it has the usual bugfixes and updates
 in the documentation.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2674&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading September 29, 2004
-The LilyPond development team will be present at the @uref{http://www.nluug.nl/events/sane2004/bazaar/index.html,Free
+@subheading September 29, 2004
+The LilyPond development team will be present at the @uref{https://web.archive.org/web/20040811160307/http://www.nluug.nl/events/sane2004/bazaar/index.html,Free
 Software Bazaar} of the NLUUG SANE 2004 conference today.  If you
 are in the neighborhood, drop by for live contact with the Team or
 just a friendly chat. Registration is not required to attend.
@@ -4673,16 +5222,16 @@ just a friendly chat. Registration is not required to attend.
 
 
 @newsItem
-@subsubheading September 26, 2004
+@subheading September 26, 2004
 LilyPond 2.3.19 is out. It's mainly a bugfix release.
 @ref{Descargas antiguas}
 and check out the changes
-in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2652&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading September 20, 2004
+@subheading September 20, 2004
 LilyPond 2.3.18 was released. It has further improvements in
 the slur formatting, and a small syntax change: the mode
 changing commands (`\chords', `\lyrics', etc.)  have been
@@ -4692,12 +5241,12 @@ renamed to `\chordmode', `\lyricmode', etc. The command
 similarly.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2614&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading September 11, 2004
+@subheading September 11, 2004
 LilyPond 2.3.16 was released. It fixes a couple of annoying
 bugs, and has an important addition in the slur-formatter. Slurs that
 pass note heads much closer than the average distance get an extra
@@ -4712,12 +5261,12 @@ will get uglier by upgrading to 3.0, so that once 3.0 is out, nothing
 will hold users back in switching.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2562&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading September 10, 2004
+@subheading September 10, 2004
 LilyPond 2.3.15 was released. It fixes for some gaffes with
 the new vertical spacing engine, has lots of documentation
 updates, and has support for landscape output in the direct
@@ -4726,12 +5275,12 @@ postscript output. Also, the types of events quoted with
 only notes and rests end up in quotes.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2553&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading September 6, 2004
+@subheading September 6, 2004
 LilyPond 2.3.14 was released and has exciting features!
 LilyPond will try to keep staves at the same distances across a
 page, but it will stretch distances to prevent collisions; key
@@ -4740,12 +5289,12 @@ different voices that all use "\quote" can now refer to each
 other.
 @ref{Descargas antiguas}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2534&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 29, 2004
+@subheading August 29, 2004
 LilyPond now has a Documentation
 Editor, Graham Percival. From now on, he will oversee that
 useful information flows from the mailiing list into the
@@ -4759,7 +5308,7 @@ A lot of cheers for Graham!
 
 
 @newsItem
-@subsubheading August 29, 2004
+@subheading August 29, 2004
 LilyPond 2.3.13 was released. The new slur code was
 improved, scripts can be made to avoid slurs, by setting
 inside-slur to #f. It is no longer necessary to instantiate
@@ -4769,44 +5318,44 @@ mensural flags, so they are adjusted for staff lines once
 again.
 @ref{Descargas antiguas}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2520&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 24, 2004
+@subheading August 24, 2004
 LilyPond 2.2.6 fixes a few minor issues, among others, the
 disappearing metronome mark.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.33&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 23, 2004
+@subheading August 23, 2004
 LilyPond 2.3.12 is out. This release has a lot of fixes and
 a new feature: there is now support for putting two slurs on
 chords, both above and below. This is switched on with the
 `doubleSlurs' property.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2489&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 3, 2004
+@subheading August 3, 2004
 LilyPond 2.3.11 is out. This release basically is 2.3.10 with a few
 annoying bugs fixed.
 @ref{Descargas antiguas}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2449&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 1, 2004
+@subheading August 1, 2004
 LilyPond 2.3.10 is out. This release has a major clean-up of the
 input/test/ directory. Many examples have been moved to the regression
 test or manual, and the superfluous or outdated ones have been
@@ -4824,12 +5373,12 @@ that is dumped as verbatim PostScript
 
 @ref{Descargas antiguas}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2435&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 30, 2004
+@subheading July 30, 2004
 LilyPond 2.3.9 is out.  The important change is that lilypond
 now once-again directly runs the binary. The old wrapper script has
 been renamed to lilypond-latex.py, and should only be used for legacy
@@ -4842,24 +5391,24 @@ updating the manual, and after that's done we can release 3.0. The
 projected date for this to happen is in about a month.
 @ref{Descargas antiguas}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2416&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 23, 2004
+@subheading July 23, 2004
 LilyPond 2.3.8 fixes a few minor bugs in the new slur code,
 and has rewritten support for ledger lines. Now, in tight
 situations, ledger lines will be shortened so they stay
 separate.  This also required a cleanup of the Ambitus
 implementation.
 @ref{Descargas antiguas}
-and check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2395&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+and check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 19, 2004
+@subheading July 19, 2004
 LilyPond 2.3.7 was released and has new exciting features!
 The slur formatting has been rewritten. The new slur code
 works similar to the Beam formatter: scores are assigned for
@@ -4871,102 +5420,102 @@ the LilyPond emacs mode, the `|' will now display the current
 beat within the measure.
 @ref{Descargas antiguas}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2383&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 15, 2004
+@subheading July 15, 2004
 LilyPond 2.2.5 was released. It has a few bug fixes from
 2.3.x.
 @ref{Descargas antiguas}
 and check
-out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.28&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 11, 2004
+@subheading July 11, 2004
 An introductory article on LilyPond appeared on @uref{http://www.linuxjournal.com/article.php?sid=7657&mode=thread&order=0,Linux
 Journal}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 5, 2004
+@subheading July 5, 2004
 LilyPond 2.3.6 was released.  This release has more updates
 for the Fret diagram code (thanks, Carl!), fixes a bunch of
 bugs, including a serious one that trashed a lot of beam
 formatting, and was also present in the 2.2 series.
 @ref{Descargas antiguas}
 and check out the changes
-in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2306&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 5, 2004
+@subheading July 5, 2004
 LilyPond 2.2.4 was released. It is mainly a bug fix
 release.
 @ref{Descargas antiguas}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.23&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
-@subsubheading June 25, 2004
+@subheading June 25, 2004
 LilyPond 2.3.5 has numerous small bugfixes and cleanups, and
 features more work in the experimental GNOME output
 module. Adventurous hackers can check the instructions at
 scm/output-gnome.scm and try to run
 buildscripts/guile-gnome.sh to see what the fuss is all about.
 Carl Sorensen also provided us with more patches to the
-fret-diagram output. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2293&content-type=text/vnd.viewcvs-markup,ChangeLog}
+fret-diagram output. Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading June 20, 2004
+@subheading June 20, 2004
 LilyPond 2.2.3 has a turkish translation and fixes a few minor
-bugs that were reported over the past month. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.16&content-type=text/vnd.viewcvs-markup,ChangeLog} for a full description and
+bugs that were reported over the past month. Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog} for a full description and
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading June 13, 2004
+@subheading June 13, 2004
 LilyPond 2.3.4 further improves the output backends. As a
 result, manual page-breaks, multiple output formats and putting
-@code{\score} into markups now works.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2242&content-type=text/vnd.viewcvs-markup,ChangeLog}
+@code{\score} into markups now works.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading May 31, 2004
+@subheading May 31, 2004
 LilyPond 2.3.3 has many internal changes relating to the output
 backend (PostScript) and page-layout. In addition, it contains a few
-bugfixes for recently reported problems.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2207&content-type=text/vnd.viewcvs-markup,ChangeLog}
+bugfixes for recently reported problems.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading May 31, 2004
+@subheading May 31, 2004
 LilyPond 2.2.2 is out.  It has a number of small bugfixes, so upgrade
-if any of these errors concern you.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.9,ChangeLog}
+if any of these errors concern you.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 or head straight to the
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading May 26, 2004
+@subheading May 26, 2004
 LilyPond 2.3.2 is out. This release has a lot of internal
 changes relating to page layout, but also sports experimental
 fret-diagram code.  Check out the @ref{Cambios} or head straight to the
@@ -4975,7 +5524,7 @@ fret-diagram code.  Check out the @ref{Cambios} or head straight to the
 
 
 @newsItem
-@subsubheading May 9, 2004
+@subheading May 9, 2004
 LilyPond 2.3.1 is out. This release has many new and cool
 features. Check out the @ref{Cambios} or head straight to the
 @ref{Descargas antiguas}.
@@ -4983,7 +5532,7 @@ features. Check out the @ref{Cambios} or head straight to the
 
 
 @newsItem
-@subsubheading May 4, 2004
+@subheading May 4, 2004
 Help LilyPond get better, and join in on LilyPond
 development!  This
 @uref{devel/participating/call-for-help.html,call for
@@ -4995,14 +5544,14 @@ Documentation. Of course, any other help is also welcome!
 
 
 @newsItem
-@subsubheading May 3, 2004
+@subheading May 3, 2004
 LilyPond 2.2.1 has been released. It fixes a handful of bugs.
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading April 17, 2004
+@subheading April 17, 2004
 LilyPond 2.2.0 is now available
 on Windows, and should find its way to the Cygwin mirrors
 soon.
@@ -5010,7 +5559,7 @@ soon.
 
 
 @newsItem
-@subsubheading April 12, 2004
+@subheading April 12, 2004
 LilyPond 2.3.0 is the first release
 in the 2.3 cycle.  The focus for 2.3 is page layout, so
 instrumentalists can force parts to have page breaks at sane turning
@@ -5021,14 +5570,14 @@ More info in the @ref{Cambios}.
 
 
 @newsItem
-@subsubheading April 8, 2004
+@subheading April 8, 2004
 A French article on the new LilyPond
 release appeared on @uref{http://linuxfr.org/2004/04/08/15968.html,linuxfr.org}.
 @newsEnd
 
 
 @newsItem
-@subsubheading April 8, 2004
+@subheading April 8, 2004
 Binaries for LilyPond 2.2.0 are available for
 MacOS X, Slackware, Mandrake and Debian Woody.
 @ref{Descargas antiguas}
@@ -5036,7 +5585,7 @@ MacOS X, Slackware, Mandrake and Debian Woody.
 
 
 @newsItem
-@subsubheading April 1, 2004
+@subheading April 1, 2004
 LilyPond 2.2.0 is out!  This new stable version has
 completely revamped support for for orchestral score
 formatting, cue notes, font size management, lyric formatting,
@@ -5047,7 +5596,7 @@ the @uref{announce-v2.2.html,announcement} or skip to the
 
 
 @newsItem
-@subsubheading March 31, 2004
+@subheading March 31, 2004
 LilyPond 2.1.37 has build fixes for Cygwin and SUSE,
 bugfixes for part-combining and chord tremolos and even more
 documentation polish.  This should be the final release
@@ -5058,7 +5607,7 @@ candidate; expect only regression bugs to be fixed before
 
 
 @newsItem
-@subsubheading March 30, 2004
+@subheading March 30, 2004
 LilyPond 2.1.36 has many fixes in
 the user manual.
 @ref{Descargas antiguas}.
@@ -5066,7 +5615,7 @@ the user manual.
 
 
 @newsItem
-@subsubheading March 28, 2004
+@subheading March 28, 2004
 LilyPond 2.1..35 fixes a slew of
 bugs, and has the @code{raggedlast} option, which causes
 paragraph like line breaking for scores. More info in the
@@ -5076,14 +5625,14 @@ paragraph like line breaking for scores. More info in the
 
 
 @newsItem
-@subsubheading March 22, 2004
+@subheading March 22, 2004
 LilyPond 2.1.34 fixes minor bugs, and has more rewriting.
 @ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
-@subsubheading March 21, 2004
+@subheading March 21, 2004
 LilyPond 2.1.33 fixes a serious bug, and a few other
 irritations.
 @ref{Descargas antiguas}
@@ -5091,7 +5640,7 @@ irritations.
 
 
 @newsItem
-@subsubheading March 20, 2004
+@subheading March 20, 2004
 LilyPond 2.1.32 has more rewriting
 in the user manual. There is also an experimental
 implementation of optimal page breaking (Postscript backend
@@ -5101,7 +5650,7 @@ only).
 
 
 @newsItem
-@subsubheading March 15, 2004
+@subheading March 15, 2004
 LilyPond 2.1.31 is out.  It has fixes the alignment of bass
 figures and spurious dynamic warnings in MIDI. New
 attractions include rewritten font-selection routines.  See
@@ -5112,7 +5661,7 @@ the
 
 
 @newsItem
-@subsubheading March 14, 2004
+@subheading March 14, 2004
 The
 @uref{http://linuxmusician.com/index.php?option=articles&task=viewarticle&artid=10,linuxmusician.com interview} made the
 @uref{http://slashdot.org/article.pl?sid=04/03/13/2054227&mode=thread&tid=141&tid=188,slashdot
@@ -5121,7 +5670,7 @@ frontpage!}.
 
 
 @newsItem
-@subsubheading March 11, 2004
+@subheading March 11, 2004
 @uref{http://linuxmusician.com,linuxmusician.com} is
 running an
 @uref{http://linuxmusician.com/index.php?option=articles&task=viewarticle&artid=10,interview}
@@ -5131,7 +5680,7 @@ authors of LilyPond.
 
 
 @newsItem
-@subsubheading March 11, 2004
+@subheading March 11, 2004
 LilyPond 2.1.30 has editorial fixes for the manual, and
 experimental support for page layout in the PostScript
 backend.  See the
@@ -5141,7 +5690,7 @@ backend.  See the
 
 
 @newsItem
-@subsubheading March 9, 2004
+@subheading March 9, 2004
 LilyPond 2.1.29 fixes a couple of MIDI bugs, and has
 experimental support for producing titles with
 @code{markup}.
@@ -5149,7 +5698,7 @@ experimental support for producing titles with
 
 
 @newsItem
-@subsubheading February 29, 2004
+@subheading February 29, 2004
 In LilyPond 2.1.28 Scheme property functions may be used
 argument to @code{set!}.  In addition, parts of the manual
 have been proofread and corrected in this release.  See the
@@ -5159,7 +5708,7 @@ have been proofread and corrected in this release.  See the
 
 
 @newsItem
-@subsubheading February 24, 2004
+@subheading February 24, 2004
 LilyPond 2.1.27 takes into account instrument transpositions
 when quoting other voices. This release also fixes a number
 of lyrics related bugs. See the
@@ -5169,7 +5718,7 @@ of lyrics related bugs. See the
 
 
 @newsItem
-@subsubheading February 23, 2004
+@subheading February 23, 2004
 LilyPond 2.1.26 has a new, experimental feature for quoting
 other voices in instrumental parts. This can be used to
 produce cue notes.  More information in the
@@ -5179,7 +5728,7 @@ produce cue notes.  More information in the
 
 
 @newsItem
-@subsubheading February 18, 2004
+@subheading February 18, 2004
 LilyPond 2.1.25 fixes many bugs, and changes the conventions
 for altering accidental rules.
 @ref{Descargas antiguas}
@@ -5187,7 +5736,7 @@ for altering accidental rules.
 
 
 @newsItem
-@subsubheading February 16, 2004
+@subheading February 16, 2004
 LilyPond 2.1.24 has a big
 internal rewrite. One of its practical consequences is that
 @code{\with} now also works with @code{Score}
@@ -5201,7 +5750,7 @@ More information in the
 
 
 @newsItem
-@subsubheading February 13, 2004
+@subheading February 13, 2004
 LilyPond 2.1.22 has a
 simplification of the @code{\property} syntax: it is
 shorter and more consistent now.  More information in the
@@ -5211,7 +5760,7 @@ shorter and more consistent now.  More information in the
 
 
 @newsItem
-@subsubheading February 12, 2004
+@subheading February 12, 2004
 In LilyPond 2.1.21, output
 tweaks can be done at multiple levels of the context
 hierarchy.  In addition, it has a bunch of bugfixes,
@@ -5222,7 +5771,7 @@ improvements in the documentation.  More information in the
 
 
 @newsItem
-@subsubheading February 9, 2004
+@subheading February 9, 2004
 LilyPond 2.1.20  has MIDI
 output for drums.  It also sports a completely rewritten
 lilypond-book script, which is cleaner, shorter, and faster.
@@ -5234,7 +5783,7 @@ More information in the
 
 
 @newsItem
-@subsubheading February 5, 2004
+@subheading February 5, 2004
 LilyPond 2.1.19 has rewritten
 support for drum notation. This release also makes some
 long-standing cleanups: the removal of @code{Thread} (all
@@ -5247,7 +5796,7 @@ More information in the
 
 
 @newsItem
-@subsubheading February 4, 2004
+@subheading February 4, 2004
 LilyPond 2.1.18 is out. This
 release has the new part-combiner installed by default, and a
 similar implementation of @code{autochange}.  More information
@@ -5258,7 +5807,7 @@ in the
 
 
 @newsItem
-@subsubheading February 2, 2004
+@subheading February 2, 2004
 LilyPond 2.1.17 is out. It adds texts
 (solo, a due) for the part combiner. It also reinstates the
 @option{--safe} option which prevents havoc by Scheme exploits.  More
@@ -5268,7 +5817,7 @@ information in the
 
 
 @newsItem
-@subsubheading January 28, 2004
+@subheading January 28, 2004
 LilyPond 2.1.16 is out; its main feature
 is that it fixes the autobeams gaffe of 2.1.15.  The part-combiner
 has been tested successfully on larger pieces. In the near future,
@@ -5281,7 +5830,7 @@ the
 
 
 @newsItem
-@subsubheading January 26, 2004
+@subheading January 26, 2004
 LilyPond 2.1.15 further improves the part-combiner, and fixes many
 bugs, among others in pedal brackets and finger positioning.
 More information in
@@ -5291,7 +5840,7 @@ the
 
 
 @newsItem
-@subsubheading January 21, 2004
+@subheading January 21, 2004
 LilyPond 2.1.14
 has the first release of the new part combiner. If you have scores that
 use part-combining, please consider giving it a test-run. In addition
@@ -5303,7 +5852,7 @@ the
 
 
 @newsItem
-@subsubheading January 20, 2004
+@subheading January 20, 2004
 The lilypond.org domain has been moved to a new server. This
 will result in better connectivity and more bandwidth.  Due
 to security concerns, the new server  does not offer FTP
@@ -5312,7 +5861,7 @@ access, but only HTTP downloads.
 
 
 @newsItem
-@subsubheading January 20, 2004
+@subheading January 20, 2004
 LilyPond 2.1.13  fixes a small but
 nasty bug in side-positioning placement, and some bugs in
 tuplet, tie and accidental formatting. This release contains
@@ -5322,7 +5871,7 @@ rudimentary work on a new part-combiner.
 
 
 @newsItem
-@subsubheading January 19, 2004
+@subheading January 19, 2004
 LilyPond 2.1.12 fixes many bugs
 and improves formatting of ottava brackets.  More information in
 the
@@ -5331,15 +5880,15 @@ the
 
 
 @newsItem
-@subsubheading January 18, 2004
+@subheading January 18, 2004
 LilyPond 2.1.11 is now also
 available for Windows!  For downloading, go
-@uref{http://www.inf.bme.hu/~berti/lilypond/,here}.
+@uref{https://web.archive.org/web/20040204191423/http://www.inf.bme.hu/~berti/lilypond/,here}.
 @newsEnd
 
 
 @newsItem
-@subsubheading January 17, 2004
+@subheading January 17, 2004
 In 2.1.11, the mechanism for
 setting staff size and page is much simplified. In addition
 there are improvements in the notehead shape, and there is
@@ -5350,7 +5899,7 @@ More information in the
 
 
 @newsItem
-@subsubheading January 16, 2004
+@subheading January 16, 2004
 LilyPond 2.1.10 has a load of
 bugfixes and a shorter syntax for octave checks. More
 information in the
@@ -5359,7 +5908,7 @@ information in the
 
 
 @newsItem
-@subsubheading January 13, 2004
+@subheading January 13, 2004
 LilyPond 2.1.9 has a new mechanism
 for adding lyrics to melodies. It is now possible to have
 different melismatic variations for each stanza.  More
@@ -5369,7 +5918,7 @@ information in the
 
 
 @newsItem
-@subsubheading January 9, 2004
+@subheading January 9, 2004
 LilyPond 2.1.8 has an important new
 feature: it is now possible to use @code{\property} to tune
 the appearance of spanning objects like @code{StaffSymbol} and
@@ -5382,7 +5931,7 @@ More information in the
 
 
 @newsItem
-@subsubheading January 7, 2004
+@subheading January 7, 2004
 An update to the stable branch,
 version 2.0.2, was released today. It contains a couple of
 minor bugfixes.  @ref{Descargas antiguas}
@@ -5390,7 +5939,7 @@ minor bugfixes.  @ref{Descargas antiguas}
 
 
 @newsItem
-@subsubheading January 6, 2004
+@subheading January 6, 2004
 LilyPond 2.1.7 continues to
 improve the layout of the Schubert test piece; this release
 focuses on dot placement and multi measure rests centering.
@@ -5400,7 +5949,7 @@ More information in the
 
 
 @newsItem
-@subsubheading January 4, 2004
+@subheading January 4, 2004
 LilyPond 2.1.6 continues to improve the layout of  lyrics.  More
 information in the
 @uref{http://lilypond.org/doc/v2.1/Documentation/topdocs/out-www/NEWS.html,release
@@ -5409,7 +5958,7 @@ notes} and download @uref{install/#2.1,here}.
 
 
 @newsItem
-@subsubheading January 2, 2004
+@subheading January 2, 2004
 In LilyPond 2.1.5, the lyric alignment is completely revamped,
 and now matches my Edition Peters version of the Schubert song
 Sängers Morgen.  More information in the @ref{Cambios} and
@@ -5418,7 +5967,7 @@ download @uref{install/#2.1,here}.
 
 
 @newsItem
-@subsubheading December 30, 2003
+@subheading December 30, 2003
 LilyPond 2.1.4 is released. Font shapes and linethickness
 are now truly different for different staff sizes, thus lending
 an engraved look to scores printed in smaller type too. See the
@@ -5427,7 +5976,7 @@ an engraved look to scores printed in smaller type too. See the
 
 
 @newsItem
-@subsubheading December 23, 2003
+@subheading December 23, 2003
 LilyPond 2.1.3 released.
 Interpreting and formatting is now done while parsing the
 file. This allows for Scheme manipulation of music, and could
@@ -5438,7 +5987,7 @@ to implement this are welcome!)  See the
 
 
 @newsItem
-@subsubheading December 17, 2003
+@subheading December 17, 2003
 LilyPond 2.1.2 released. This
 release has a new mechanism for setting font sizes, which
 combines different font design sizes and continuous font
@@ -5448,7 +5997,7 @@ scaling. See the
 
 
 @newsItem
-@subsubheading December 16, 2003
+@subheading December 16, 2003
 LilyPond 2.1.1 released. This
 release wraps together all the small fixes made during
 Han-Wen's absence. See the
@@ -5457,7 +6006,7 @@ Han-Wen's absence. See the
 
 
 @newsItem
-@subsubheading October 11, 2003
+@subheading October 11, 2003
 LilyPond 2.1.0 released. See the
 @ref{Cambios} and
 download @uref{install/#2.1,here}.
@@ -5465,16 +6014,16 @@ download @uref{install/#2.1,here}.
 
 
 @newsItem
-@subsubheading October 11, 2003
+@subheading October 11, 2003
 LilyPond 2.0.1  binaries for Mandrake 9.1
 available from
-@uref{http://rpm.nyvalls.se/sound9.1.html,here}
+@uref{https://web.archive.org/web/20031006165051/http://rpm.nyvalls.se/sound9.1.html,here}
 thanks to Heikki Junes.
 @newsEnd
 
 
 @newsItem
-@subsubheading October 9, 2003
+@subheading October 9, 2003
 LilyPond 2.0.1  binaries for Slackware 9
 available from @uref{install/#2.0,here},
 thanks to Ricardo Hoffman.
@@ -5482,7 +6031,7 @@ thanks to Ricardo Hoffman.
 
 
 @newsItem
-@subsubheading October 5, 2003
+@subheading October 5, 2003
 LilyPond 2.0.1 binaries are available for Macos X, many thanks to
 Matthias Neeracher.
 @ref{Descargas antiguas}
@@ -5490,7 +6039,7 @@ Matthias Neeracher.
 
 
 @newsItem
-@subsubheading October 4, 2003
+@subheading October 4, 2003
 LilyPond 2.0.1 binaries are available for Windows (Cygwin
 version 1.5).
 @ref{Descargas antiguas}.  Thanks to Bertalan
@@ -5499,7 +6048,7 @@ Fodor, our new Cygwin maintainer!
 
 
 @newsItem
-@subsubheading September 29, 2003
+@subheading September 29, 2003
 LilyPond 2.0.1 is released. It
 contains minor bugfixes.
 See the @ref{Cambios}
@@ -5508,16 +6057,16 @@ or download @uref{install/#2.0,here} directly.
 
 
 @newsItem
-@subsubheading September 27, 2003
+@subheading September 27, 2003
 PlanetCCRMA has been updated to include LilyPond 2.0. Go
-@uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond,
+@uref{http://ccrma.stanford.edu/planetccrma/software/soundapps.html#SECTION000621700000000000000,
 here} to download.  Thanks to Fernando Pablo
 Lopez-Lezcano!
 @newsEnd
 
 
 @newsItem
-@subsubheading September 24, 2003
+@subheading September 24, 2003
 LilyPond 2.0.0 is released. The
 focus of this release is cleanups of the syntax: entering music is
 now much easier and more efficient. Read the announcement
@@ -5527,7 +6076,7 @@ now much easier and more efficient. Read the announcement
 
 
 @newsItem
-@subsubheading September 24, 2003
+@subheading September 24, 2003
 LilyPond 1.9.10 is released. This is
 the final LilyPond 2.0 release candidate. Check
 the @ref{Cambios} and
@@ -5536,7 +6085,7 @@ download @uref{install/,here}.
 
 
 @newsItem
-@subsubheading September 23, 2003
+@subheading September 23, 2003
 LilyPond 1.9.9 is released. This is
 the second LilyPond 2.0 prerelease. Check
 the @ref{Cambios} and
@@ -5545,7 +6094,7 @@ download @uref{install/,here}.
 
 
 @newsItem
-@subsubheading September 19, 2003
+@subheading September 19, 2003
 LilyPond 1.9.8 is released. This is
 the first LilyPond 2.0 prerelease. Check
 the @ref{Cambios} and
@@ -5554,7 +6103,7 @@ download @uref{install/,here}.
 
 
 @newsItem
-@subsubheading September 17, 2003
+@subheading September 17, 2003
 LilyPond 1.9.7 is released. LilyPond
 now has support for quarter tone accidentals!
 @ref{Descargas antiguas}
@@ -5562,7 +6111,7 @@ now has support for quarter tone accidentals!
 
 
 @newsItem
-@subsubheading September 16, 2003
+@subheading September 16, 2003
 LilyPond 1.9.6 is released.
 It has a lot of minor fixes and updates.
 @ref{Descargas antiguas}
@@ -5570,7 +6119,7 @@ It has a lot of minor fixes and updates.
 
 
 @newsItem
-@subsubheading September 10, 2003
+@subheading September 10, 2003
 LilyPond 1.9.5 is released.
 With this release, the 1.9 branch is feature
 complete. After some stabilization and documentation work, 2.0
@@ -5580,7 +6129,7 @@ will be available in a few weeks.
 
 
 @newsItem
-@subsubheading September 9, 2003
+@subheading September 9, 2003
 LilyPond 1.8.2 is released. This
 release fixes a couple of minor bugs.
 @ref{Descargas antiguas}
@@ -5588,7 +6137,7 @@ release fixes a couple of minor bugs.
 
 
 @newsItem
-@subsubheading September 7, 2003
+@subheading September 7, 2003
 LilyPond 1.8 binaries are available
 for Windows (Cygwin version 1.5).
 @ref{Descargas antiguas}
@@ -5596,7 +6145,7 @@ for Windows (Cygwin version 1.5).
 
 
 @newsItem
-@subsubheading August 31, 2003
+@subheading August 31, 2003
 LilyPond 1.9.4 is released.
 @emph{This is an experimental release}: read the
 @uref{http://lists.gnu.org/archive/html/lilypond-devel/2003-08/msg00133.html,announcement}
@@ -5605,14 +6154,14 @@ before trying.
 
 
 @newsItem
-@subsubheading August 31, 2003
+@subheading August 31, 2003
 LilyPond 1.8 binaries for slackware
 available. Get them @uref{install/,here}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 31, 2003
+@subheading August 31, 2003
 LilyPond 1.9.3 is released.  This
 release supports tagging for music version control, and has better
 fingering placement flexibility.  Read the
@@ -5621,7 +6170,7 @@ fingering placement flexibility.  Read the
 
 
 @newsItem
-@subsubheading August 28, 2003
+@subheading August 28, 2003
 LilyPond 1.9.2 is released. Read the
 @ref{Cambios} and get it
 @uref{download#1.9,here}.
@@ -5629,7 +6178,7 @@ LilyPond 1.9.2 is released. Read the
 
 
 @newsItem
-@subsubheading August 26, 2003
+@subheading August 26, 2003
 LilyPond 1.9.1 is released. Read the
 @ref{Cambios} and get it
 @uref{download#1.9,here}.
@@ -5637,7 +6186,7 @@ LilyPond 1.9.1 is released. Read the
 
 
 @newsItem
-@subsubheading August 25, 2003
+@subheading August 25, 2003
 The  LilyPond 1.9 development release is available. Read the
 @ref{Cambios} and get it
 @uref{download#1.9,here}.
@@ -5645,54 +6194,54 @@ The  LilyPond 1.9 development release is available. Read the
 
 
 @newsItem
-@subsubheading August 25, 2003
+@subheading August 25, 2003
 Mandrake 9.1 RPMS available, get them
-@uref{http://rpm.nyvalls.se/sound9.1.html,here}.
+@uref{https://web.archive.org/web/20031006165051/http://rpm.nyvalls.se/sound9.1.html,here}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 21, 2003
+@subheading August 21, 2003
 LilyPond 1.8.1 was released. Get it @uref{install/,here}, or
 read the @ref{Cambios}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 18, 2003
+@subheading August 18, 2003
 PlanetCCRMA (eg. RedHat 8 and 9)
 has been updated to 1.8.
-Download @uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond,here.}
+Download @uref{http://ccrma.stanford.edu/planetccrma/software/soundapps.html#SECTION000621700000000000000,here.}
 @newsEnd
 
 
 @newsItem
-@subsubheading August 7, 2003
+@subheading August 7, 2003
 LilyPond 1.8 is released.  Read
 @ref{Cambios} and get it @uref{install/,here}.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 7, 2003
+@subheading August 7, 2003
 New website went live!
 @newsEnd
 
 
 @newsItem
-@subsubheading August 6, 2003
+@subheading August 6, 2003
 Announced new website.
 @newsEnd
 
 
 @newsItem
-@subsubheading August 1, 2003
+@subheading August 1, 2003
 LilyPond 1.7.30 released.
 @newsEnd
 
 
 @newsItem
-@subsubheading July 30, 2003
+@subheading July 30, 2003
 Website: present @uref{about/automated-engraving/index.html,treatise}
 about music engraving, music printing software, and LilyPond's
 unique faculties.
@@ -5700,7 +6249,7 @@ unique faculties.
 
 
 @newsItem
-@subsubheading July 29, 2003
+@subheading July 29, 2003
 1.7.29 - release candidate 4 has been released.  Packages for
 Red Hat, Debian, Cygwin are @uref{install/,available}.
 @newsEnd
index f54b1ad0ce881c31e9339ff00c4004f07e331755..5e63eabcd4f96598e64c742beca832dadfedf3ca 100644 (file)
@@ -119,10 +119,10 @@ where
 
 @multitable @columnfractions .33 .66
 @item @code{@var{argN}}
-@tab @var{n}th argument
+@tab @var{n}th argument.
 
 @item @code{@var{typeN?}}
-@tab a Scheme @emph{type predicate} for which @code{@var{argN}}
+@tab A Scheme @emph{type predicate} for which @code{@var{argN}}
 must return @code{#t}.  There is also a special form
 @code{(@emph{predicate?} @emph{default})} for specifying optional
 arguments.  If the actual argument is missing when the function is being
@@ -345,7 +345,7 @@ At the top level in a music expression a post-event is not accepted.
 @item
 When a music function (as opposed to an event function) returns an
 expression of type post-event, LilyPond requires one of the named
-direction indicators (@code{-}, @code{^}, @w{and @code{_}})) in order to
+direction indicators (@code{-}, @code{^}, @w{and @code{_}}) in order to
 properly integrate the post-event produced by the music function call
 into the surrounding expression.
 
index f8f23a5fa4510fb32ccace3a55a1ca41134e9494..fd0beaa9e19c17ac4e7f62f0ba923dd23fed84e7 100644 (file)
@@ -288,12 +288,19 @@ guile> (list 1 2 3 "abc" 17.5)
 (1 2 3 "abc" 17.5)
 @end lisp
 
-As can be seen, a list is displayed in the form of individual elements
-separated by whitespace and enclosed in parentheses.  Unlike a pair,
-there is no period between the elements.
+Representing a list as individual
+elements separated by whitespace and enclosed in parentheses
+is actually a compacted rendition of the actual dotted pairs
+constituting the list, where the dot and an immediately following
+starting paren are removed along with the matching closing paren.
+Without this compaction, the output would have been
+@lisp
+(1 . (2 . (3 . ("abc" . (17.5 . ())))))
+@end lisp
 
-A list can also be entered as a literal list by enclosing its
-elements in parentheses, and adding a quote:
+As with the output, a list can also be entered (after adding a
+quote to avoid interpretation as a function call) as a literal
+list by enclosing its elements in parentheses:
 
 @lisp
 guile> '(17 23 "foo" "bar" "bazzle")
@@ -1504,9 +1511,9 @@ Finally, once we have added the accent articulation to its
 @code{articulations} property, we can return @code{note-event}, hence
 the last line of the function.
 
-Now we transform the @code{add-accent} function into a music
-function (a matter of some syntactic sugar and a declaration of the type
-of its sole @q{real} argument).
+Now we transform the @code{add-accent} function into a music function (a
+matter of some syntactic sugar and a declaration of the type of its
+argument).
 
 @example
 addAccent = #(define-music-function (note-event)
@@ -1520,7 +1527,7 @@ addAccent = #(define-music-function (note-event)
   note-event)
 @end example
 
-We may verify that this music function works correctly:
+We then verify that this music function works correctly:
 
 @example
 \displayMusic \addAccent c4
index 83ffcf0d83a41641f52e37465498b1c305853992..938212ab929e9fd176dbaaa5100701a5f387a8af 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 3ff93fbd01133506d14c929740bd26b34f59c5b4
+   Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -136,7 +136,7 @@ où
 
 @multitable @columnfractions .33 .66
 @item @code{@var{argN}}
-@tab @var{n}-ième argument
+@tab @var{n}-ième argument.
 
 @item @code{@var{typeN?}}
 @tab un @emph{type de prédicat} Scheme pour lequel @code{@var{argN}}
index adf74a50aecf0ba69d74745cb8dd190c775ec576..4664a82cc2f4614ece383123dfce21da28c0287d 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 958e95822083954cad00e0a598eb9f12ceba67b9
+   Translation of GIT committish: 934175b31d43c95e341b098f12c2e833522a5d45
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.19.22"
@@ -317,12 +317,21 @@ guile> (list 1 2 3 "abc" 17.5)
 (1 2 3 "abc" 17.5)
 @end lisp
 
-Comme vous le remarquez, une liste s'affiche sous la forme d'une suite
-d'éléments séparés par une espace, bornée par des parenthèses.
-Contrairement à une paire, il n'y a pas de point entre les éléments.
+La représentation d'une liste par la succession de ses éléments, séparés
+par des espaces, bornée par des parenthèses, n'est en fait qu'une vue
+compacte des paires qui la constituent.  Les paires sont ainsi
+dépourvues du point de séparation et de la parenthèse ouvrante qui le
+suit et des parenthèses fermantes.  Sans ce « compactage », cette liste
+serait ainsi présentée :
 
-Vous pouvez aussi saisir directement une liste en entourant ses éléments
-par des parenthèses à la suite d'une apostrophe :
+@lisp
+(1 . (2 . (3 . ("abc" . (17.5 . ())))))
+@end lisp
+
+Vous pouvez donc saisir une liste comme elle serrait présentée, en
+entourant ses éléments par des parenthèses à la suite d'une apostrophe
+(afin que ce qui suit ne soit pas interprété comme un appel à une
+fonction) :
 
 @lisp
 guile> '(17 23 "foo" "bar" "bazzle")
@@ -1653,7 +1662,7 @@ propriété @code{articulations}, nous pouvons renvoyer le
 
 Nous pouvons à présent transformer la fonction @code{ajoute-accent} en
 fonction musicale, à l'aide d'un peu d'enrobage syntaxique et mention du
-type de son unique argument « réel ».
+type de son argument.
 
 @example
 ajouteAccent = #(define-music-function (note-event)
index 604ab7b313cf1fadd8cfdc0170e5b776ab949df4..43b221956b17bcb1deeadd4bcdd6b7a8eaf949ff 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 16d46fb0995cc6d078617ada1e8fea7879dffe07
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -25,7 +25,7 @@ Tutorial guidelines:  (different from policy.txt!)
 @c \version "2.19.21"
 
 @c Translators: Nicolas Grandclaude, Ludovic Sardain, Gauvain Pocentek
-@c Translation checkers: Jean-Charles Malahieude, Valentin Villenave, John Mandereau
+@c Translation checkers: J.-Charles Malahieude, Valentin Villenave, John Mandereau
 @c Translation status: post-GDP
 
 @node Bases de notation musicale
@@ -1445,8 +1445,8 @@ cello = \new Staff {
 @end lilypond
 
 @noindent
-Le nom d'une variable ne doit comporter que des caractères
-alphabétiques non accentués, aucun nombre ni tiret ne sont autorisés.
+Par convention, un nom de variable ne comporte que des caractères
+alphabétiques non accentués, aucun nombre ni tiret.
 
 On peut utiliser une variable déjà définie autant de fois que l'on
 veut, y compris dans la définition d'une nouvelle variable ; par
index f85e0e80ecf92b6eba79b2673dc0fd35ed7560c3..34fa67f93b14bc23819ebcb3ee46fcca3459f29b 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 8cce5dd067a8a2bab508f5abebc3955db8837bbf
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -367,7 +367,7 @@ sont pas réalisables avec ce gabarit préprogrammé.
 @appendixsubsec Notes seules
 @translationof Notes only
 
-@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
 {single-staff-template-with-only-notes.ly}
 
 
@@ -375,7 +375,7 @@ sont pas réalisables avec ce gabarit préprogrammé.
 @appendixsubsec Notes et paroles
 @translationof Notes and lyrics
 
-@lilypondfile[verbatim,quote,ragged-right,texidoc,addversion]
+@lilypondfile[verbatim,quote,ragged-right,texidoc]
 {single-staff-template-with-notes-and-lyrics.ly}
 
 
index ba7e8b521178f9663895b603b6dbf73c37f169c8..51cb7cad7fd97095b29b33395d3228fe036fe52a 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 3c0f38115857598db730782b1d2ff0a19fd833af
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.19.22"
@@ -2296,7 +2296,7 @@ c'est sur celui-ci que doit porter l'effet de
 début du bandeau qui constitue une ligne de base susceptible de contenir
 plusieurs soufflets ou indications de nuance.
 
-@multitable @columnfractions .3 .3 .3
+@multitable @columnfractions .3 .15 .45
 @headitem Objet de rendu
   @tab Priorité
   @tab Contrôle la position de :
@@ -2306,15 +2306,33 @@ plusieurs soufflets ou indications de nuance.
 @item @code{MetronomeMark}
   @tab @code{1000}
   @tab Indication métronomique
+@item @code{SostenutoPedalLineSpanner}
+  @tab @code{1000}
+  @tab Indication de pédale
+@item @code{SustainPedalLineSpanner}
+  @tab @code{1000}
+  @tab
+@item @code{UnaCordaPedalLineSpanner}
+  @tab @code{1000}
+  @tab
+@item @code{MeasureCounter}
+  @tab @code{750}
+  @tab Numéro de mesure
 @item @code{VoltaBracketSpanner}
   @tab @code{600}
   @tab Bandeau de répétition
+@item @code{InstrumentSwitch}
+  @tab @code{500}
+  @tab Texte de changement d'instrument
 @item @code{TextScript}
   @tab @code{450}
   @tab Texte des @emph{markup} (ou étiquettes)
 @item @code{MultiMeasureRestText}
   @tab @code{450}
-  @tab Texte sur les silences qui couvrent des mesures entières
+  @tab Texte sur les silences multimesures
+@item @code{CombineTextScript}
+  @tab @code{450}
+  @tab Texte de parties combinées
 @item @code{OttavaBracket}
   @tab @code{400}
   @tab Indication d'octaviation
@@ -2330,6 +2348,9 @@ plusieurs soufflets ou indications de nuance.
 @item @code{TrillSpanner}
   @tab @code{50}
   @tab Bandeau de trille
+@item @code{AccidentalSuggestion}
+  @tab @code{0}
+  @tab Altération suggérée
 @end multitable
 
 Voici un exemple qui montre le placement par défaut de certains
index 764a459f0e084db43da1e0290198bed4a5a4084a..06727c69beb6c7951201645e2342cd66dd9fd519 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 8cce5dd067a8a2bab508f5abebc3955db8837bbf
+   Translation of GIT committish: 10bc01482b78c62ad095ceb95963b1800571e408
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -102,13 +102,12 @@ Référence des propriétés internes :
 >> > > - list of contexts: my *danger unmaintainable*
 >> > > alarm just went off.  I'm
 
-I knew it would... And leaving out some of them is perfectly fine
-with me.
-I do think that a list like this, with the main contexts and a
-brief description of  what they do (perhaps also with a note about what
-default behavior is associated with each of them, but this may be
-unmanageable), should be there, and then we could simply list the
-remaining ones without further explanation and with links to the IR.
+I knew it would... And leaving out some of them is perfectly fine with
+me. I do think that a list like this, with the main contexts and a brief
+description of what they do (perhaps also with a note about what default
+behavior is associated with each of them, but this may be unmanageable),
+should be there, and then we could simply list the remaining ones
+without further explanation and with links to the IR.
 @end ignore
 
 @c TODO Improve layout, order and consistency of wording -td
@@ -1849,7 +1848,7 @@ vide entre la note et le doigté :
 \once \override Voice.Fingering.padding = #3
 @end example
 
-En ajoutant cette commande avant la création du doigté (de l'objet
+En ajoutant ce tampon avant la création du doigté (de l'objet
 @code{Fingering}), donc avant @code{c2}, on obtient le résultat
 suivant :
 
@@ -1884,19 +1883,26 @@ voici quelques conventions en matière de nommage :
 
 @itemize
 @item fonctions scheme :
- minuscule-avec-trait-d-union (y compris noms en mot-unique)
+ minuscule-avec-trait-d-union (ce qui inclut les noms en mot-unique)
+
 @item fonctions scheme :
  ly:plus-style-scheme
+
 @item événements, classes et propriétés musicaux :
  identique-aux-fonctions-scheme
+
 @item interfaces d'objet graphique :
  style-scheme
+
 @item propriétés d'arrière plan :
  style-scheme (mais X et Y pour les axes)
+
 @item contextes (ainsi que MusicExpressions et grobs) :
  Capitale initiale ou Camélisation (CamelCase)
+
 @item propriétés de contexte :
  minusculeSuivieDeCamélisation
+
 @item graveurs :
  Capitale_initiale_puis_minuscules_séparées_par_un_souligné
 @end itemize
@@ -1905,6 +1911,7 @@ Les questions que vous devez vous poser sont :
 @itemize
 @item Qu'est-ce qui relève des conventions, et qu'est-ce qui relève de
 la règle ?
+
 @item Qu'est-ce qui relève des règles du langage sous-jacent, et
 qu'est-ce qui est propre à LilyPond ?
 @end itemize
@@ -2588,7 +2595,7 @@ pour la première rencontrée dans le fichier source.
 
 Les instructions @code{\set} et @code{\override} manipulent toutes deux
 des propriétés associées à des contextes.  Dans tous les cas, ces
-propriétés tiennent compte de la hiérarchie des contextes : les
+propriétés tiennent compte de la @emph{hiérarchie des contextes} : les
 propriétés qui n'ont pas été définies dans le contexte lui-même
 héritent des valeurs de leur contexte parent respectif.
 
@@ -2601,11 +2608,9 @@ commandes d'adaptation des propriétés, libellées au sein même de la
 musique.
 
 Les définitions d'un objet graphique (@emph{graphical object} abrégé en
-@emph{grob}) constituent une catégorie spécifique de propriétés de
-contexte.  Dans la mesure où leur structure, enregistrement et
-utilisation diffèrent des propriétés de contextes habituelles, on ne
-peut y accéder qu'à l'aide d'un jeu de commandes différent et font
-l'objet d'un traitement à part au sein de la documentation.
+@emph{grob}) constituent une catégorie @emph{spécifique} de propriétés
+de contexte, dans la mesure où leur structure, enregistrement et
+utilisation diffèrent des propriétés de contextes habituelles.
 
 Contrairement aux propriétés de contextes habituelles, les définitions
 de @emph{grob} sont subdivisées en propriétés de @emph{grob}.  Un
@@ -2616,17 +2621,18 @@ graveur (ou tout autre « agent » de LilyPond) peut alors ajouter ou
 modifier des propriétés à cet objet, sans pour autant affecter la
 définition du @emph{grob} dans ce contexte.
 
-Ce que nous appelons « propriétés de @emph{grob} » dans le cadre
+Ce que LilyPond appelle « propriétés de @emph{grob} » dans le cadre
 de l'affinage par l'utilisateur sont en fait les propriétés de la
-définition d'un objet dans un contexte.  Contrairement aux propriétés
-de contexte habituelles, les définitions d'un @emph{grob} doivent être
-enregistrées pour pouvoir garder trace de ses composants, les propriétés
-individuelles du @emph{grob} (ainsi que leurs sous-propriétés)
-séparément.  Il sera dès lors possible de définir ces composants dans
-différents contextes et ainsi disposer d'une définition globale du
-@emph{grob} à l'instant où la création de cet objet assemblera les
-éléments relatifs aux différents contextes attachés au contexte en cours
-et à ses parents.
+définition d'un objet dans un contexte.
+
+Contrairement aux propriétés de contexte habituelles, les définitions
+d'un @emph{grob} doivent être enregistrées pour pouvoir garder trace de
+ses composants, les propriétés individuelles du @emph{grob} (ainsi que
+leurs sous-propriétés) séparément.  Il sera dès lors possible de définir
+ces composants dans différents contextes et ainsi disposer d'une
+définition globale du @emph{grob} à l'instant où la création de cet
+objet assemblera les éléments relatifs aux différents contextes attachés
+au contexte en cours et à ses parents.
 
 Les définitions de @emph{grob} se manipulent à l'aide des commandes
 @code{\override} et @code{\revert}, et leur nom commence par une
@@ -2642,8 +2648,8 @@ Les instructions spéciales @code{\tweak} et @code{\overrideProperty}
 modifient les propriétés de @emph{grob} en court-circuitant totalement
 les propriétés de contexte.  En fait, elles capturent les @emph{grobs}
 au moment de leur création pour y injecter directement des propriétés soit
-émanant d'un événement musical retouché, soit lorsqu'ils sont d'une
-qualité particulière.
+émanant d'un événement musical retouché par un @code{\tweak}, soit
+lorsqu'ils sont d'une qualité particulière (un @code{\overrideProperty}).
 
 
 @node Modification de listes associatives
@@ -3709,13 +3715,18 @@ nous citerons entre autres :
 
 @itemize @bullet
 @item Une barre de mesure ne peut s'imprimer en début de ligne.
+
 @item Un numéro de mesure ne peut apparaître au début de la première
 ligne, à moins d'être différent de 1.
+
 @item Clef -- voir ci-après.
+
 @item Les répétitions en pourcentage sont soit toutes imprimées, soit
 aucune.  Vous devrez utiliser @code{begin-of-line-invisible} pour les
 voir et @code{all-invisible} pour les masquer.
+
 @item Armure -- voir ci-après.
+
 @item Modificateur de clef -- voir ci-après.
 @end itemize
 
@@ -4464,14 +4475,16 @@ Tous les glyphes de la fonte Feta sont accessibles à l'aide de la
 commande de @emph{markup} @code{\musicglyph} -- voir
 @ref{La fonte Feta}.
 
-@c TODO Add inserting eps files or ref to later
-
-@c TODO Add inserting Postscript or ref to later
+L'insertion de fichier @file{EPS} ou d'instructions Postscript sont
+accessibles par les commandes de @emph{markup} @code{\epsfile} et
+@code{\postscript} respectivement -- voir l'annexe
+@rusernamed{Graphic, Graphisme}.
 
 @seealso
 Manuel de notation :
 @ref{Commandes pour markup},
 @ref{Éléments graphiques dans du texte formaté},
+@rusernamed{Graphic, Graphisme},
 @ref{La fonte Feta},
 @ref{Mise en forme du texte}.
 
@@ -4903,6 +4916,10 @@ Les résultats de la deuxième fonction (@code{f1}) permettent une
 approximation des valeurs qui seront ensuite utilisées par la fonction
 initiale aux fins d'ajustement lors des phases ultérieures d'espacement.
 
+@c TODO: The following example supposedly showing a collision no longer
+@c 'works' since 2.18.x. Another example of a collision is needed.
+@c Issue #3512
+
 @lilypond[verbatim,quote,ragged-right]
 #(define (square-line-circle-space grob)
 (let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
index 6179f04ee636522d4990f4bd43c04b52fc0a4b40..efed76bf9998755e122803a4b0029c911dc975ad 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 650e318ed0afc6938c8d903907d501690872b9a6
+   Translation of GIT committish: 10bc01482b78c62ad095ceb95963b1800571e408
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -32,6 +32,7 @@ instruments à cordes frettées.
 * Vue d'ensemble des cordes frettées::
 * Guitare::
 * Banjo::
+* Luth::
 @end menu
 
 
@@ -2039,3 +2040,60 @@ Fichiers d'initialisation :
 
 Morceaux choisis :
 @rlsrnamed{Fretted strings, Cordes frettées}.
+
+
+@node Luth
+@subsection Luth
+@translationof Lute
+
+@menu
+* Tablatures pour luth::
+@end menu
+
+@node Tablatures pour luth
+@unnumberedsubsubsec Tablatures pour luth
+@translationof Lute tablatures
+
+@cindex luth, tablatures
+@cindex tablature, luth
+
+LilyPond prend en charge les tablatures pour le luth.
+
+Les cordes supplémentaires s'ajoutent à l'aide de la commande
+@code{additionalBassStrings} qui permet de définir les hauteurs
+respectives de ces cordes.  Elles viendront s'imprimer ainsi au-dessous
+de la ligne inférieure : a, /a, //a, ///a, 4, 5, etc.
+
+@code{fret-letter-tablature-format}, et probablement @code{fretLabels},
+fournis en argument à @code{tablatureFormat}, autoriseront des
+personnalisations plus avancées.
+
+@lilypond[quote,ragged-right,verbatim]
+m = { f'4 d' a f d a, g, fis, e, d, c,  \bar "|." }
+
+\score {
+  <<
+    \new Staff { \clef bass \cadenzaOn  \m }
+    \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
+
+@cindex luth, personnalisation
+@cindex réglége fin d'un luth
+
+@knownissues
+L'utilisation de @code{FretBoards} avec des @code{additionalBassStrings}
+n'est pas prise en charge et conduira à un résultat insatisfaisant.
index 369ea212196fe96a3359e87060edd8363978a584..0dc4cb7cdc3bfac60ae5f0250c2fe8ad6c25acc2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 3c0f38115857598db730782b1d2ff0a19fd833af
+   Translation of GIT committish: 10bc01482b78c62ad095ceb95963b1800571e408
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -2248,7 +2248,7 @@ sopranoMusic = \relative { a'4 b c b8( a) }
 altoMusic = \relative { e'4 e e f }
 tenorMusic = \relative { c'4 b e d8( c) }
 bassMusic = \relative { a4 gis a d, }
-allLyrics = \lyricmode {King of glo -- ry }
+allLyrics = \lyricmode { King of glo -- ry }
 <<
   \new Staff = "Soprano" \sopranoMusic
   \new Lyrics \allLyrics
@@ -2267,16 +2267,12 @@ allLyrics = \lyricmode {King of glo -- ry }
   \new PianoStaff <<
     \new Staff = "RH" {
       \set Staff.printPartCombineTexts = ##f
-      \partcombine
-      \sopranoMusic
-      \altoMusic
+      \partcombine \sopranoMusic \altoMusic
     }
     \new Staff = "LH" {
       \set Staff.printPartCombineTexts = ##f
       \clef "bass"
-      \partcombine
-      \tenorMusic
-      \bassMusic
+      \partcombine \tenorMusic \bassMusic
     }
   >>
 >>
index f5a8c10cb0328681b35bc809e07c58933ef1fec6..db37650e2da4d859c2ecd82988162896e701ee09 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 16d46fb0995cc6d078617ada1e8fea7879dffe07
+    Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -208,7 +208,7 @@ Triton augmenté et @*septième mineure
 @tab
 @code{aug7}
 @tab
-@code{c1:aug}
+@code{c1:aug7}
 @tab
 @lilypond[line-width=2.1\cm,noragged-right,notime]
 <<
@@ -240,7 +240,7 @@ Triton mineur et @*septième majeure
 @tab
 @code{m7+}
 @tab
-@code{m7+}
+@code{c1:m7+}
 @tab
 @lilypond[line-width=2.1\cm,noragged-right,notime]
 <<
index 868772612a4c01f04e52b57945ac7e8b2d0da944..1ef13ac7ff9394f3cb5d6cb338b0b1b8c4a1d914 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: d64a2407615c09ddd8f5c34e13a3ecfdf4284f1b
+   Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -488,7 +488,7 @@ Les langues disponibles ainsi que les noms de note utilisés
 sont les suivants :
 
 @quotation
-@multitable {@code{nederlands}} {do re mi fa sol la sib si}
+@multitable {@code{nederlands}} {do re/re mi fa sol la sib si}
 @headitem Langue
   @tab Nom des notes
 @item @code{nederlands}
@@ -501,7 +501,9 @@ sont les suivants :
   @tab c d e f g a bf b
 @item @code{espanol} ou @code{español}
   @tab do re mi fa sol la sib si
-@item @code{italiano} ou @code{français}
+@item @code{français}
+  @tab do ré/re mi fa sol la sib si
+@item @code{italiano}
   @tab do re mi fa sol la sib si
 @item @code{norsk}
   @tab c d e f g a b h
@@ -534,7 +536,9 @@ et les suffixes d'altération correspondants :
     @tab -@code{ff}/-@code{-flatflat}
 @item @code{espanol} ou @code{español}
   @tab -@code{s} @tab -@code{b} @tab -@code{ss}/-@code{x} @tab -@code{bb}
-@item @code{italiano} or @code{français}
+@item @code{français}
+  @tab -@code{d} @tab -@code{b} @tab -@code{dd}/-@code{x} @tab -@code{bb}
+@item @code{italiano}
   @tab -@code{d} @tab -@code{b} @tab -@code{dd} @tab -@code{bb}
 @item @code{norsk}
   @tab -@code{iss}/-@code{is} @tab -@code{ess}/-@code{es} @tab -@code{ississ}/-@code{isis}
@@ -588,6 +592,8 @@ suédois, le catalan et l'espagnol.
   @tab -qs @tab -qf @tab -tqs @tab -tqf
 @item @code{espanol}
   @tab -cs @tab -cb @tab -tcs @tab -tcb
+@item @code{français}
+  @tab -sd @tab -sb @tab -dsd @tab -bsb
 @item @code{italiano}
   @tab -sd @tab -sb @tab -dsd @tab -bsb
 @item @code{portugues}
index f8d4b13dddf97b492b02d13b041f58bbb52956e5..c23e2bfc865242fa53dc76f43b1e8294b522446d 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: d64a2407615c09ddd8f5c34e13a3ecfdf4284f1b
+   Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
    Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
 @c Translation checkers: Valentin Villenave, François Martin, Xavier Scheuer
@@ -1167,9 +1167,9 @@ la commande @code{\time} à l'aide d'un premier argument :
 \score {
   \new Staff {
     \relative {
-      \time #'(2 2 3) 7/8
+      \time 2,2,3 7/8
       \repeat unfold 7 { c'8 } |
-      \time #'(3 2 2) 7/8
+      \time 3,2,2 7/8
       \repeat unfold 7 { c8 } |
     }
   }
@@ -1189,7 +1189,7 @@ de métrique correspondante :
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1234,7 +1234,7 @@ métrique :
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1257,7 +1257,7 @@ particuliers pour les différentes portées d'un regroupement :
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1266,7 +1266,7 @@ particuliers pour les différentes portées d'un regroupement :
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -2233,9 +2233,9 @@ vigueur et ré-instaurées si cette métrique réapparaît plus tard.
   % beamExceptions are unlikely to be defined for 5/16 time,
   % but let's disable them anyway to be sure
   \set Timing.beamExceptions = #'()
-  \set Timing.beatStructure = #'(2 3)
+  \set Timing.beatStructure = 2,3
   c16^"(2+3)" c c c c |
-  \set Timing.beatStructure = #'(3 2)
+  \set Timing.beatStructure = 3,2
   c16^"(3+2)" c c c c |
 }
 @end lilypond
@@ -2248,7 +2248,7 @@ vigueur et ré-instaurées si cette métrique réapparaît plus tard.
   % defined for 4/4 time
   \set Timing.beamExceptions = #'()
   \set Timing.baseMoment = #(ly:make-moment 1/4)
-  \set Timing.beatStructure = #'(1 1 1 1)
+  \set Timing.beatStructure = 1,1,1,1
   a8^"changed" a a a a a a a
 }
 @end lilypond
@@ -2263,7 +2263,7 @@ supérieur s'appliqueront.
   \time 7/8
   % No need to disable beamExceptions
   % as they are not defined for 7/8 time
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   <<
     \new Voice = one {
       \relative {
@@ -2273,7 +2273,7 @@ supérieur s'appliqueront.
     \new Voice = two {
       \relative {
         \voiceTwo
-        \set Voice.beatStructure = #'(1 3 3)
+        \set Voice.beatStructure = 1,3,3
         f'8 f f f f f f
       }
     }
@@ -2291,11 +2291,11 @@ ces règles affectent le contexte @code{Staff} :
 % Change applied to Voice by default --  does not work correctly
 % Because of autogenerated voices, all beating will
 % be at baseMoment (1 . 8)
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 
 % Works correctly with context Staff specified
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 @end lilypond
 
@@ -2309,7 +2309,7 @@ valeur de @code{baseMoment}.
 % No need to disable beamExceptions
 % as they are not defined for 5/8 time
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a'16 }
 @end lilypond
 
@@ -2341,7 +2341,7 @@ ligatures sont gérées par la propriété  @code{beamExceptions}.
 @lilypond[quote,verbatim]
 \relative c'' {
   \time 3/16
-  \set Timing.beatStructure = #'(2 1)
+  \set Timing.beatStructure = 2,1
   \set Timing.beamExceptions =
     \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
   c16 c c |
@@ -2366,7 +2366,7 @@ de spécifier à nouveau la métrique.
   \time 6/8
   \repeat unfold 6 { a8 }
   % group (4 + 2)
-  \set Timing.beatStructure = #'(4 2)
+  \set Timing.beatStructure = 4,2
   \repeat unfold 6 { a8 }
   % go back to default behavior
   \time 6/8
@@ -2389,7 +2389,7 @@ de cette dérogation.
 @lilypond[quote,verbatim,fragment]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % This won't beam (3 3 2) because of beamExceptions
 \repeat unfold 8 {c''8} |
 % This will beam (3 3 2) because we clear beamExceptions
@@ -2530,7 +2530,7 @@ métrique que dans une seule portée.
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
+    \set Timing.beatStructure = 1,5
     \set Timing.beamExceptions = #'()
     \repeat unfold 6 { a'8 }
   }
@@ -2551,7 +2551,7 @@ ligature automatiques est abordée au chapitre @ref{Métrique}.
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
index 415c9b9ef085d4ad965be94e413c80206f69749c..f677b5c2d046f6e948eed8a1f5512437bbdb4ca4 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: cee6cea4ed55eb4fa1f9d83c997ebc19744a6e1a
+   Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -971,8 +971,8 @@ Les valeurs par défaut sont définies dans le fichier
 
 L'algorithme de calcul des sauts de page à utiliser.  Vous avez le choix
 entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
-@code{ly:one-line-breaking} et @code{ly:optimal-breaking} (activé
-par défaut).
+@code{ly:one-line-breaking}, @code{ly:one-line-auto-height-breaking} et
+@code{ly:optimal-breaking} (activé par défaut).
 
 @item page-breaking-system-system-spacing
 @funindex page-breaking-system-system-spacing
@@ -1536,15 +1536,16 @@ vous le jugez utile pour « forcer » le passage à la ligne suivante :
 @end lilypond
 
 Par défaut, un saut de ligne ne saurait intervenir au beau milieu d'une
-mesure ; LilyPond vous le signalera par un message si tel était le
-cas.  Si d'aventure vous voulez forcer un saut de ligne en l'absence de
-barre de mesure, vous devrez auparavant insérer une barre invisible -- à
-l'aide de @code{\bar ""}.
+mesure ; LilyPond vous le signalera par un message lors de la
+compilation du fichier.  Si d'aventure vous voulez forcer un saut de
+ligne en l'absence de barre de mesure, vous devrez auparavant insérer
+une barre invisible -- à l'aide de @code{\bar ""}.
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
   c4 c c
-  \bar "" \break
+  \bar ""
+  \break
   c |
   c4 c c c |
 }
@@ -1553,7 +1554,7 @@ l'aide de @code{\bar ""}.
 LilyPond ignorera un @code{\break} placé sur une barre à la fin d'une
 mesure dès lors que la précédente avait une note en suspend -- c'est
 typiquement le cas lorsqu'un n-olet est à cheval sur deux mesures.
-L'instruction @code{\break} sera alors opérationnelle si vous avez
+L'instruction @code{\break} sera toutefois opérationnelle si vous avez
 auparavant désactivé le @code{Forbid_line_break_engraver} du contexte
 @code{Voice} concerné.  Notez bien qu'en pareil cas, les sauts de ligne
 forcés doivent être saisis au sein d'une expression polyphonique :
@@ -1687,6 +1688,7 @@ page, ainsi que les moyens de les modifier.
 * Saut de page manuel::
 * Optimisation des sauts de page::
 * Minimisation des sauts de page::
+* Présentation en ligne continue::
 * Présentation en rouleau::
 * Optimisation des tournes::
 @end menu
@@ -1729,7 +1731,7 @@ Pour de plus amples détails, reportez-vous à
 @ref{Variables d'espacement vertical fixe}.
 
 Les sauts de page sont générés par la fonction @code{page-breaking}.
-LilyPond dispose de trois différents algorithmes en la matière :
+LilyPond dispose de plusieurs algorithmes en la matière :
 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} et
 @code{ly:minimal-breaking}.  C'est @code{ly:optimal-breaking} qui est
 activé par défaut, mais rien ne vous empêche d'en changer, par
@@ -1844,8 +1846,8 @@ Morceaux choisis :
 @rlsrnamed{Spacing,Espacements}.
 
 
-@node Présentation en rouleau
-@unnumberedsubsubsec Présentation en rouleau
+@node Présentation en ligne continue
+@unnumberedsubsubsec Présentation en ligne continue
 @translationof One-line page breaking
 
 @funindex ly:one-line-breaking
@@ -1864,6 +1866,25 @@ longue tienne sur une seule ligne.  En particulier, les variables
 modifiée.
 
 
+@node Présentation en rouleau
+@unnumberedsubsubsec Présentation en rouleau
+@translationof One-line-auto-height page breaking
+
+@funindex ly:one-line-auto-height-breaking
+
+La fonction @code{ly:one-line-auto-height-breaking} opère comme
+@code{ly:one-line-breaking}, à ceci près que la hauteur de page s'adapte
+automatiquement à la hauteur de la musique.  Dans les faits, la variable
+@code{paper-height} du bloc @code{\paper} s'ajuste de façon à englober
+la hauteur de la partition la plus étendue, plus les @code{top-margin}
+et @code{bottom-margin}.
+
+L'affectation d'une valeur à @code{top-system-spacing} influencera le
+positionnement vertical de la musique.  Sa désactivation -- valorisation
+à @code{##f} au sein du bloc @code{\paper} -- aura pour effet de
+simplement placer la musique entre les marges supérieure et inférieure.
+
+
 @node Optimisation des tournes
 @unnumberedsubsubsec Optimisation des tournes
 @translationof Optimal page turning
@@ -1927,8 +1948,8 @@ la manière suivante :
 
 Le @code{Page_turn_engraver} tient compte des reprises.  C'est pourquoi
 il ne permettra une tourne que dans le cas où il y aura suffisamment de
-temps au début et à la fin de la reprise pour que l'exécutant ait le
-temps de revenir à la page précédente.  Le @code{Page_turn_engraver} est
+temps au début et à la fin de la reprise pour que l'exécutant puisse
+aisément revenir à la page précédente.  Le @code{Page_turn_engraver} est
 même capable d'interdire un tourne dans le cas d'une reprise de courte
 durée, ajustable au travers de la propriété de contexte
 @code{minimumRepeatLengthForPageTurn}.
@@ -2633,7 +2654,7 @@ musicaux ; ceci nous permettra d'y voir plus clair au fur et à
 mesure que nous avancerons.  Pour plus de précisions, relisez
 @ref{Sauts}.
 
-Les @code{\break} explicites répartissent la musique en lignes de six
+Les @code{\break} explicites répartissent la musique en lignes de cinq
 mesures chacune.  L'espacement vertical est celui que LilyPond attribue
 par défaut.  Nous pouvons, afin de fixer explicitement le point
 d'attache vertical de chacun des systèmes, définir un doublet
@@ -2812,6 +2833,9 @@ lorsque deux objets devraient se placer au même endroit, celui dont la
 @code{outside-staff-priority} est la plus faible sera disposé au plus
 près de la portée.
 
+Une liste des @code{outside-staff-priorities} est disponible à la
+rubrique @rlearning{La propriété outside-staff-priority}.
+
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
   c4_"Text"\pp
@@ -2951,15 +2975,18 @@ demie largeur de tête :
 \relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
 @end lilypond
 
-Dans notre @emph{Essai sur la gravure musicale automatisée}, nous avons
-vu comment la direction des hampes peut influencer l'espacement -- voir
-@ressay{Espacement}.  Ceci est contrôlé par la propriété
-@code{stem-spacing-correction} de l'objet @rinternals{NoteSpacing}, créé
-pour chaque contexte @rinternals{Voice}.  L'objet
-@code{StaffSpacing}, généré au niveau d'un contexte @rinternals{Staff},
-possède une même propriété qui contrôlera l'espacement hampe-barre de
-mesure.  L'exemple suivant montre ces adaptations, tout d'abord selon
-les réglages par défaut, puis avec des corrections forcées.
+Comme le met en évidence notre @emph{Essai sur la gravure musicale
+automatisée}, la direction des hampes peut influencer l'espacement -- voir
+@ressay{Espacement} et s'ajuster à l'aide de la propriété
+@code{stem-spacing-correction} de l'objet @rinternals{NoteSpacing} créé
+pour chaque contexte @rinternals{Voice}.
+
+L'objet @code{StaffSpacing}, généré au niveau d'un contexte
+@rinternals{Staff}, possède une même propriété qui contrôlera
+l'espacement hampe-barre de mesure.
+
+L'exemple suivant montre ces adaptations, tout d'abord selon les
+réglages par défaut, puis avec des corrections forcées.
 
 @lilypond[quote,ragged-right]
 \fixed c' {
@@ -3004,7 +3031,7 @@ Il n'y a aucun moyen de diminuer l'espacement.
 
 @node Changement d'espacement en cours de partition
 @subsection Changement d'espacement en cours de partition
-@translationof New spacing area
+@translationof New spacing section
 
 @cindex espacement, modification en cours de partition
 @cindex notes, espacement horizontal
index 77a47a551205f30183b93dbb4117d86c9c9e6c73..9af9d3429ade408d585ce6fc1e7aabb62582cc92 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 3ff93fbd01133506d14c929740bd26b34f59c5b4
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -694,12 +694,11 @@ procéder, bien plus que dans l'exemple suivant.
 >>
 @end lilypond
 
-Vous pourriez aussi recourir à la commande
-@code{\Staff \RemoveEmptyStaves} pour créer votre portée d'ossia.
-Cependant, cette méthode reste limitée à l'apparition de ces ossias en
-début de ligne.  Pour plus d'information au sujet de la commande
-@code{\Staff \RemoveEmptyStaves}, reportez-vous au chapitre
-@ref{Masquage de portées}.
+Vous pourriez aussi recourir à la commande @code{\RemoveAllEmptyStaves}
+pour créer votre portée d'ossia.  Cependant, cette méthode reste limitée
+à l'apparition de ces ossias en début de ligne.  Pour plus d'information
+au sujet de la commande @code{\RemoveAllEmptyStaves}, reportez-vous au
+chapitre @ref{Masquage de portées}.
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -707,6 +706,7 @@ début de ligne.  Pour plus d'information au sujet de la commande
     \remove "Time_signature_engraver"
     \hide Clef
     \magnifyStaff #2/3
+    \RemoveAllEmptyStaves
   } \relative {
     R1*3
     c''4 e8 d c2
@@ -720,13 +720,6 @@ début de ligne.  Pour plus d'information au sujet de la commande
     e4 d c2
   }
 >>
-
-\layout {
-  \context {
-    \Staff \RemoveEmptyStaves
-    \override VerticalAxisGroup.remove-first = ##t
-  }
-}
 @end lilypond
 
 @snippets
@@ -760,9 +753,12 @@ Référence des propriétés internes :
 
 @cindex Frenched scores
 @cindex masquage de portée
+@cindex musique ancienne, masquage de portée
+@cindex portées rythmiques, masquage
 @cindex portée vide
 
 @funindex \RemoveEmptyStaves
+@funindex \RemoveAllEmptyStaves
 @funindex Staff_symbol_engraver
 @funindex \stopStaff
 @funindex stopStaff
@@ -778,13 +774,17 @@ Désactiver le graveur @code{Staff_symbol_engraver} dans un contexte
 \relative { a''8 f e16 d c b a2 }
 @end lilypond
 
-L'instruction @code{\Staff \RemoveEmptyStaves} placée dans un bloc
-@code{\layout} aura pour effet de masquer toute portée qui ne contient
-rien.  Dans les partitions d'orchestre, les portées qui n'ont que des
-silences sont habituellement masquées afin de gagner de la place.  Ce
-style d'édition s'appelle en anglais « French Score ».
-Cette fonctionnalité masque et supprime toutes les portées vides d'une
-partition, hormis celles du premier système.
+L'instruction @code{\RemoveEmptyStaves} placée dans un bloc
+@code{\layout} ou dans une clause @code{\with} affectant une portée
+particulière, aura pour effet de masquer toute portée qui ne contient
+rien. Dans les partitions d'orchestre, les portées qui n'ont que des
+silences sont habituellement masquées afin de gagner de la place. Ce
+style d'édition s'appelle en anglais « Frenched Score ». Cette
+fonctionnalité masque et supprime toutes les portées vides d'une
+partition, hormis celles du premier système.  Le premier système sera
+lui aussi concerné dès lors que sera utilisée l'instruction
+@code{\RemoveAllEmptyStaves}.  Ces instructions couvrent les contextes
+@code{Staff}, @code{RhythmicStaff} et @code{VaticanaStaff}.
 
 @warning{Une portée est considérée comme vide dès lors qu'elle ne
 contient que des silences multimesures, des silences visibles ou
@@ -794,7 +794,8 @@ combinaison de ces éléments.}
 @lilypond[verbatim,quote,ragged-right]
 \layout {
   \context {
-    \Staff \RemoveEmptyStaves
+    \Staff
+    \RemoveEmptyStaves
   }
 }
 
@@ -815,30 +816,15 @@ combinaison de ces éléments.}
 @cindex ossia
 
 @noindent
-@code{\Staff \RemoveEmptyStaves} permet aussi de gérer des fragments
+@code{\RemoveAllEmptyStaves} permet aussi de gérer des fragments
 d'ossia attachés à une portée.  Pour plus de détails, voir
 @ref{Portées d'ossia}.
 
-@cindex musique ancienne, masquage de portée
-@cindex portées rythmiques, masquage
-
-@funindex \RemoveEmptyStaves
-
-La commande @code{\VaticanaStaff \RemoveEmptyStaves} permet de masquer des
-portées vides dans les contextes de musique ancienne.  Pour des
-contextes @code{RhythmicStaff}, il faudra utiliser
-@code{\RhythmicStaff \RemoveEmptyStaves}.
-
 @predefined
-@code{\Staff \RemoveEmptyStaves},
-@code{\VaticanaStaff \RemoveEmptyStaves},
-@code{\RhythmicStaff \RemoveEmptyStaves}.
+@code{\RemoveEmptyStaves},
+@code{\RemoveAllEmptyStaves},
 @endpredefined
 
-@snippets
-@lilypondfile[verbatim,quote,texidoc,doctitle]
-{removing-the-first-empty-line.ly}
-
 @seealso
 Glossaire musicologique :
 @rglos{Frenched staff}.
index 38661149c28d22a05b01bd116e8c1e3400c5e9eb..0175fa09568b3dc6f22376b248b0653a39815605 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
+%% Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
   texidocfr = "
 Dès lors que la propriété @code{subdivideBeams} aura été activée, une
 ligature sera subdivisée selon les préceptes de @code{beatLength}.
index 373ac8a06f6162521f7f09e21f21d25cfb8b4610..e955d72ef50a3b38f5798ae329a791cf59c6f3da 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
+%% Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
   texidocfr = "
 Les règles de ligature définies au niveau du contexte @code{Score}
 s'appliqueront à toutes les portées.  Il est toutefois possible de
index d96ac85b15cf235391b511a55c5073b4ea5a9590..bcc51ad1b5918614fd137dc938b4966e7f0fa510 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 08c1ead90d9f49e66ce54208639fb9ef48ca52a6
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 La fonction comprise dans l'extrait suivant permet d'ajouter du texte
 -- comme « molto » ou « poco » -- en dessous d'un soufflet de
diff --git a/Documentation/fr/texidocs/centering-markup-on-note-heads-automatically.texidoc b/Documentation/fr/texidocs/centering-markup-on-note-heads-automatically.texidoc
deleted file mode 100644 (file)
index 3b97339..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
-  texidocfr = "
-Des raisons techniques sont à l'origine de la difficulté de centrer des
-scripts textuels attachés à des têtes de note, ce qui n'est pas le cas
-des articulations.
-
-Plutôt que de procéder par tâtonnement, voici comment élaborer un
-graveur en Scheme, chargé de redéfinir le parent horizontal de chaque
-@emph{markup} sur un empilement de notes (un @code{NoteColumn}).  Il
-permet aussi au texte de suivre les têtes ayant été décalées par un
-@code{force-hshift}.
-
-"
-  doctitlefr = "Centrage automatique d'un @emph{markup} sur la tête de note"
index 6748d92b96dde1fe730ede807d1eca1a9aee3fdd..2c02862fb274242330ae404685a5e888557f740f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 08c1ead90d9f49e66ce54208639fb9ef48ca52a6
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Chaque couplet peut disposer de sa propre fonte, y compris son numéro.
 
index ddd14f34f17c71ae7f29f2f96cd1f2f35f3942da..8cdfed9f4d5450e717fc0855bfd810ace6a0c1d8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 08c1ead90d9f49e66ce54208639fb9ef48ca52a6
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Les familles de fontes par défaut pour le texte peuvent être changées à
 l'aide de la fonction @code{make-pango-font-tree}.
index fe96a26e9d152b31667e6951b03c44479e7a21b9..c44f2e1ce346bf5e58b40b15aabb0be5cad3d87d 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 3bcb9ffb9e2ecd44866e51fe712ffec181775ecf
+%% Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
   texidocfr = "
 Les règles de ligature par mesure sont gérées par la propriété de
 contexte @code{beatStructure}.  Ses valeurs par défaut sont
@@ -20,7 +20,7 @@ Si l'on fait appel au @code{Measure_grouping_engraver}, la fonction
 @code{set-time-signature} créera aussi des symboles
 @code{MeasureGrouping}.  Ces symboles aident à la lecture des œuvres
 modernes à la rythmique complexe.  Dans l'exemple qui suit, la mesure à
-9/8 est divisée en 2, 2, 2 et 3, alors que la mesure à 5/8 répond aux
+9/8 est divisée en 2, 2, 2 et 3, alors que la mesure à 5/8 répond aux
 règles par défaut contenues dans le fichier
 @code{scm/time-signature-settings.scm}.
 
index d0f56b5ee5bc87378c98b4ae092614f276c218c6..60a87790fa8cc2e3abf50fe4e6b6e77baaa45eba 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Voici comment obtenir l'impression d'un accord au sein duquel une même
 note est jouée deux fois avec des altérations différentes.
index ac0f0219155a6f173e2846a3ad81a01f8220d203..14e3ded554e0b7aba393f8478d8c202031f00424 100644 (file)
@@ -1,7 +1,7 @@
-%% Translation of GIT committish: 958e95822083954cad00e0a598eb9f12ceba67b9
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Lorsque l'on manipule des rappels d'objet (@emph{grob callbacks}), il
-peut être intéressant d'en maîtriser les « ascendants ».  La plupart des
+peut être intéressant d'en maîtriser les ascendants.  La plupart des
 objets graphiques ont des parents, lesquels auront une influence sur le
 positionnement de l'objet en question.  Ainsi, les parents des côtés X
 et Y influenceront respectivement les positions horizontale et verticale
@@ -18,41 +18,34 @@ confusion :
 -- Un « ascendant » particulier peut dépendre d'un @emph{grob} de
    différentes manières.
 
--- Le concept de « génération » est trompeur.
+-- Le concept de « générations » est trompeur.
 
 Par exemple, l'objet @code{System} peut, vis à vis d'un objet
-@code{VerticalAlignment}, être à la fois parent (par son
-côté Y) et grand parent (par deux fois du côté X).
+@code{VerticalAlignment}, être à la fois parent (par son côté Y) et
+grand parent (par deux fois du côté X).
 
 La macro ci-dessous affiche à l'écran une représentation textuelle de
 l'ascendance d'un @emph{grob}.
 
 
-Elle se lance ainsi :
+Elle se lance ainsi :
+
+@code{@{ \\once \\override NoteHead.before-line-breaking =
+  #display-ancestry c @}}
 
-@example
-@{
-   \\once \\override NoteHead #'before-line-breaking = #display-ancestry
-   c4
-@}
-@end example
 
 et génère la sortie suivante :
 
-@example
-------------------------------------
-
-NoteHead X,Y: NoteColumn
-    X: PaperColumn
-       X,Y: System
-    Y: VerticalAxisGroup
-       X: NonMusicalPaperColumn
-          X,Y: System
-       Y: VerticalAlignment
-          X: NonMusicalPaperColumn
-             X,Y: System
-          Y: System
-@end example
+@code{NoteHead X,Y: NoteColumn
+     X: PaperColumn
+        X,Y: System
+     Y: VerticalAxisGroup
+        X: NonMusicalPaperColumn
+           X,Y: System
+        Y: VerticalAlignment
+           X: NonMusicalPaperColumn
+              X,Y: System
+           Y: System}
 
 "
   doctitlefr = "Affichage de la généalogie d'un objet"
index 477b7b719298cdf58dd71887235261a188e2be5e..c9e5384e25d4bbd68897223f588765a26788391c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: f7a3d8cf31367398a1955c50d3c42216d8940989
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Différents moyens permettent de repositionner un diagramme de fret pour
 éviter des collisions ou le placer entre deux notes :
index 8efb2b8798a9ad8bd6ebe8a8acdd5b6fcaa69762..c8b097dae7cc217b8e60c8f1721a4eeb19dabfa5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
+%% Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
   texidocfr = "
 Pour obtenir des ligatures en groupes de @code{3-4-3-2} croches, dans
 une mesure à 12/8, il faudra préalablement annuler les réglages par
index 3ac96b6a40cf38c0785f818c150ebb455367fb6c..68c4ad026ccc586276d6bd03d8c2174dda96dec3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 958e95822083954cad00e0a598eb9f12ceba67b9
+%% Translation of GIT committish: 10bc01482b78c62ad095ceb95963b1800571e408
   texidocfr = "
 Voici comment ajouter une ligne de prolongation à une indication de
 numéro de corde, afin de stipuler que les notes qui suivent doivent être
index 6098eb2d8d805b18e93f2a1ca0a65661ca602a3c..0884b088e1c312741f8107c86bd9fdc4b789aeb3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 08c1ead90d9f49e66ce54208639fb9ef48ca52a6
+%% Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
   texidocfr = "
 Les ligatures d'une succession de notes de durée inférieure à la croche
 ne sont pas subdivisées par défaut.  Autrement dit, tous les traits de
index d668704730f2e9c3c3edc08d2e714877702a4fa0..1e46a54f79ed1d68372e482f73b93ba0dcff4fa8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 08c1ead90d9f49e66ce54208639fb9ef48ca52a6
+%% Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
   texidocfr = "
 Grâce aux balises (@emph{tags}), il est possible d'utiliser une même
 source pour produire une partition de musique mensurale et moderne.
index ee35f6731fccbd83f1fcf427312cfbbe39d183e9..c031af2207e310d54db45de9b52832123f5d51c6 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Dernière mise à jour Fri Jan  1 10:40:27 UTC 2016
+@emph{Dernière mise à jour Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -210,7 +210,7 @@ oui
 @item
 1 Tutoriel Scheme
 @*
-6331
+6316
 @tab Jean-Charles Malahieude
 @tab 
 @tab 
@@ -371,13 +371,13 @@ oui
 @item
 2 Bases de notation musicale
 @*
-4443
+4437
 @tab Nicolas Grandclaude
 @*
 Ludovic Sardain
 @*
 Gauvain Pocentek
-@tab Jean-Charles Malahieude
+@tab J.-Charles Malahieude
 @*
 Valentin Villenave
 @*
@@ -435,7 +435,7 @@ oui
 @item
 4 Retouche de partition
 @*
-16577
+16622
 @tab Valentin Villenave
 @*
 Nicolas Klutchnikoff
@@ -594,7 +594,7 @@ oui
 @item
 1.1 Hauteurs
 @*
-5203
+5202
 @tab Frédéric Chiasson
 @*
 Jean-Charles Malahieude
@@ -753,7 +753,7 @@ oui
 @item
 1.6 Notation sur la portée
 @*
-2399
+2576
 @tab Valentin Villenave
 @*
 Jean-Charles Malahieude
@@ -958,7 +958,7 @@ oui
 @item
 2.4 Instruments à cordes frettées
 @*
-2756
+2842
 @tab Matthieu Jacquot
 @tab Jean-Charles Malahieude
 @tab 
@@ -1159,7 +1159,7 @@ oui
 @item
 3 Généralités en matière d'entrée et sortie
 @*
-12717
+12715
 @tab Jean-Charles Malahieude
 @*
 Valentin Villenave
@@ -1188,7 +1188,7 @@ oui
 @item
 4 Gestion de l'espace
 @*
-10884
+10895
 @tab Frédéric Chiasson
 @*
 Jean-Charles Malahieude
@@ -1217,7 +1217,7 @@ oui
 @item
 5 Modification des réglages prédéfinis
 @*
-15581
+15610
 @tab Valentin Villenave
 @*
 Jean-Charles Malahieude
@@ -1372,7 +1372,7 @@ oui
 @item
 1 Exécution de @command{lilypond}
 @*
-5401
+5425
 @tab Jean-Charles Malahieude
 @tab 
 @tab 
@@ -1399,7 +1399,7 @@ oui
 @item
 2 Mise à jour avec @command{convert-ly}
 @*
-1865
+1866
 @tab Jean-Charles Malahieude
 @tab 
 @tab 
@@ -1579,7 +1579,7 @@ oui
 @item
 Introduction
 @*
-5816
+5815
 @tab Gauvain Pocentek
 @*
 Jean-Charles Malahieude
@@ -1666,7 +1666,7 @@ oui
 @item
 Communauté
 @*
-3004
+3522
 @tab Jean-Charles Malahieude
 @*
 John Mandereau
index c48d6af25cf985886f11b5d36b91fd0ead70223f..6d1d3365f3db519a1ce9ffeb134788abe91ccdb2 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: d64a2407615c09ddd8f5c34e13a3ecfdf4284f1b
+   Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.17.6"
@@ -267,6 +267,10 @@ ou @code{png}.
 
 Exemple : @code{lilypond -fpng @var{monfichier}.ly}
 
+@noindent
+Les formats @code{svg} et @code{eps} s'obtiennent à l'aide de
+l'option @code{-dbackend} -- voir @ref{Options avancées de lilypond}.
+
 @item -h, --help
 Affiche un résumé des commandes.
 
@@ -513,22 +517,24 @@ utilise par défaut.
 @item
 @tab @code{svg}
 @tab Génère du @emph{Scalable Vector Graphics}.  Cette option permet de
-créer un fichier SVG par page.  Dans la mesure où aucune information
-concernant les fontes n'est incorporée,  elles devront être installées
-afin d'obtenir le meilleur rendu possible.  Il est préférable de ne pas
-recourir aux « alias de police » ni aux listes de fontes si le
-visionneur de fichier SVG ne peut le traîter correctement.  L'option
-supplémentaire @code{--svg-woff} -- voir ci-après -- permet d'utiliser
-les fontes WOFF (@emph{Web Open Font Format}) avec le moteur SVG.
+créer un fichier SVG par page.  Les glyphes musicaux sont codés en tant
+que graphiques vectoriels mais les fontes textuelles @b{ne sont pas}
+incorporées aux fichiers @file{SVG} résultants.  Quel que soit le
+programme utilisé pour visionner ces fichiers, il devra avoir accès aux
+fontes en question pour pouvoir afficher correctement les textes et
+paroles.  Il est préférable de ne pas recourir aux « alias de police »
+ni aux listes de fontes si la visionneuse de fichier SVG ne peut le
+traîter correctement.  L'option supplémentaire @code{--svg-woff} -- voir
+ci-après -- permet d'utiliser les fontes WOFF (@emph{Web Open Font
+Format}) avec le moteur SVG.
 @end multitable
 
 @noindent
 @strong{Note à propos des sorties SVG :}
-Les polices par défaut de LilyPond -- @code{LilyPond Serif},
-@code{LilyPond Sans Serif} et @code{LilyPond Monospace} -- ne sont que
-des alias au niveau local.  Le recours au moteur SVG requiert donc que
-ces polices par défaut soient explicitement définies dans le fichier
-source :
+Par défaut, LilyPond utilise des valeurs de @code{font-family}
+génériques -- @code{Serif}, @code{Sans Serif} et @code{Monospace}.  Le
+recours au moteur @code{svg} requiert donc que ces polices par défaut
+soient explicitement définies dans le fichier source :
 
 @quotation
 @verbatim
@@ -611,6 +617,10 @@ pour chaque fichier.
 @tab Génère une copie des signatures de chaque système.  Cette option
 est utilisée pour les tests de régression.
 
+@item @code{embed-source-code}
+@tab @code{#f}
+@tab Intègre les fichiers source LilyPond au document PDF généré.
+
 @item @code{eps-box-padding}
 @tab @code{#f}
 @tab Décale le bord gauche du typon EPS d'une valeur donnée en
index a839730193b6fa78ce83929bee1adfe354646ea0..885929d4c7ad55f96961e71a8e5bbc6626f001fb 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: d084673892e96cf36b6511e3b6e9a30c407fbd42
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.19.21"
@@ -310,7 +310,7 @@ Maintenant commencez à décommenter petit à petit la partie de
 problème.
 
 Une autre technique de débogage très utile est la construction
-d'un @rwebnamed{Exemples minimaux,exemple minimaliste}.
+d'un @rwebnamed{Exemples minimalistes,exemple minimaliste}.
 
 
 @node De la commande make et des fichiers Makefile
index 068f582b63a48b4a1c6d81ef76d762459ccc675b..193b56a33cdccc6f32a39939a8154ee7e8930bea 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 4467a72a98fb582466ee4d5944ec8454b4b77fc6
+   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.16.0"
index 8b6d4eb7e0ae59d8a90652cdc9050a4006eab2e0..7a44948fc30070d0e11ec505ea7377f3279180e7 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage : fr -*-
 @c This file is part of web.texi
 @ignore
-    Translation of GIT committish: e8fd54aac6821d27c14b911a00f009a150e5fa50
+   Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c Translators: Jean-Charles Malahieude, John Mandereau
@@ -24,6 +24,7 @@
 
 @divClass{column-center-top}
 @subheading Échanger avec la communauté
+@c VO Interacting with the community
 
 @itemize
 
@@ -31,7 +32,7 @@
 @ref{Contact} : obtenir de l'aide, discuter et rester en contact.
 
 @item
-@ref{Exemples minimaux} : une nécessité lorsque l'on discute de
+@ref{Exemples minimalistes} : une nécessité lorsque l'on discute de
 LilyPond.
 
 @item
@@ -42,6 +43,7 @@ LilyPond.
 
 @divClass{column-left-bottom}
 @subheading Rendre LilyPond encore meilleur
+@c VO Making LilyPond better
 
 @itemize
 
@@ -56,8 +58,8 @@ concernées.
 @ref{Développement} : pour ceux qui veulent contribuer et tester.
 
 @item
-@ref{Google Summer of Code}: liste des projets pour le Google Summer of
-Code 2012.
+@ref{Google Summer of Code} : liste des projets pour le Google Summer of
+Code.
 
 @item
 @ref{Auteurs} : ceux qui ont permis à LilyPond d'être ce qu'il est
@@ -71,7 +73,7 @@ aujourd'hui.
 
 @divClass{column-right-bottom}
 @subheading Divers
-
+@c VO Miscellaneous
 @itemize
 
 @item
@@ -93,7 +95,7 @@ aux cours des versions précédentes.
 @divClass{hide}
 @menu
 * Contact::
-* Exemples minimaux::
+* Exemples minimalistes::
 * Signalement de bogue::
 * Participation::
 * Mécénat::
@@ -115,7 +117,7 @@ aux cours des versions précédentes.
 
 @divClass{column-left-bottom}
 @subheading Discuter entre utilisateurs et demander de l'aide
-
+@c VO User Discussions and Help
 @subsubheading Liste de diffusion des utilisateurs : @code{lilypond-user@@gnu.org}
 
 Cette liste de diffusion @strong{anglophone} est le lieu privilégié des
@@ -137,7 +139,7 @@ poster sur lilypond-user à l'aide de gmane}
 @end quotation
 
 @warning{Lorsque vous posez une question, merci de fournir des
-@ref{Exemples minimaux} !}
+@ref{Exemples minimalistes} !}
 
 
 @subsubheading LilyPond Snippet Repository
@@ -214,7 +216,7 @@ Liste de diffusion hispanophone}
 
 
 @divClass{column-right-top}
-@subheading LilyPond Report
+@subheading Le @emph{blog} de LilyPond
 
 Le @emph{blog} de la communauté LilyPond, au titre de « Scores of
 Beauty », est une ressource de grande valeur.
@@ -247,12 +249,13 @@ archive3}
 
 @divClass{column-right-bottom}
 @subheading Contacter les développeurs ou les traducteurs
+@c VO Developer Discussions and Translations
 
 @subsubheading Liste de diffusion des développeurs : @code{lilypond-devel@@gnu.org}
 
 C'est sur cette liste que se tiennent les discussions ayant trait au
 développement.  C'est aussi à cette liste que peuvent être adressés les
-patchs.
+patches.
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
@@ -307,15 +310,15 @@ Translation mailing list archive}
 @divEnd
 
 
-@node Exemples minimaux
-@unnumberedsec Exemples minimaux
+@node Exemples minimalistes
+@unnumberedsec Exemples minimalistes
 @translationof Tiny examples
 
 @divClass{column-center-top}
-@subheading Exemple minimal@dots{} mais qu'est-ce donc que cela ?
+@subheading Exemple minimaliste@dots{} mais qu'est-ce donc que cela ?
 
-Un exemple minimal est un bout de code duquel @strong{plus rien} ne peut
-être retiré.
+Un exemple minimaliste est un bout de code duquel @strong{plus rien} ne
+peut être retiré.
 @divEnd
 
 @divClass{column-left-bottom}
@@ -331,16 +334,16 @@ aider comprendront votre propos et vous apporteront une réponse.
 @item
 Réduire l'exemple à sa plus simple expression indique que vous avez déjà
 tenté par vous-même de trouver une solution.  Des tonnes de lignes
-laissent à penser que celui qui les envoie se soucie peu de ce qui
+laissent à penser que celui qui les envoie se soucie guère de ce qui
 arrive.
 
 @item
 La génération d'un exemple minimaliste permet de comprendre ce qui se
 passe et évite la plupart du temps de signaler un problème qui, en
-réalité, n'existe pas : lorsqu'un @qq{bogue} ne peut être reproduit dans
+réalité, n'existe pas : lorsqu'un « bogue » ne peut être reproduit dans
 le cadre d'un exemple minimal, il y a de fortes présomptions qu'il
 s'agisse d'une inadéquation entre l'utilisateur et LilyPond plutôt que
-réellement d'un @qq{bogue}.
+réellement d'un « bogue ».
 
 @end itemize
 @divEnd
@@ -420,7 +423,7 @@ C'est vrai, ce n'est pas très long.  Mais on peut encore le réduire :
 @}
 @end example
 
-Les exemples minimaux dépassant les dix lignes de code ne sont pas
+Les exemples minimalistes dépassant les dix lignes de code ne sont pas
 légion -- quatre lignes suffisent bien souvent à indiquer le problème.
 
 @divEnd
@@ -442,7 +445,7 @@ Un recensement des bogues non encore résolus est disponible sur notre
 @emph{google bug tracker} ; suivez le lien
 
 @example
-@uref{http://code.google.com/p/lilypond/issues/list}
+@uref{http://sourceforge.net/p/testlilyissues/issues/}
 @end example
 
 @warning{Nous vous saurons gré de ne pas ajouter directement de
@@ -460,7 +463,7 @@ Lorsque le dysfonctionnement que vous avez repéré n'est pas répertorié,
 faites-le nous savoir en créant un signalement de bogue.
 
 @warning{Nous n'acceptons les signalements de bogue que s'ils sont
-rédigés sous la forme d'@ref{Exemples minimaux}.  Nous ne disposons
+rédigés sous la forme d'@ref{Exemples minimalistes}.  Nous ne disposons
 pas de suffisamment de ressources pour traiter les rapports de bogue,
 aussi tout exemple non minimaliste sera rejeté.  Dans la plupart des
 cas, seules quelques notes suffisent à démontrer le dysfonctionnement.}
@@ -503,7 +506,7 @@ cependant transmettre votre rapport de bogue au travers de
 l'interface gmane de lilypond.bugs}.
 
 Nous tenons à préciser que l'interface gmane applique une politique
-stricte de @qq{no top-posting} bien souvent mise en défaut par les
+stricte de « no top-posting » bien souvent mise en défaut par les
 fichiers LilyPond.  Aussi nous vous prions de bien vouloir ajouter une
 ligne
 
@@ -530,14 +533,14 @@ liste francophone} ; nous nous chargerons de transmettre un rapport
 @divClass{column-center-bottom}
 @subheading Étape 4: Notification de prise en compte
 
-Une fois le message reçu, nos @qq{exterminateurs de bogues} analyseront
+Une fois le message reçu, nos « exterminateurs de bogues » analyseront
 votre rapport et vous demanderont peut-être des informations
 complémentaires avant de l'ajouter au traceur.  Dans la mesure où
 l'équipe est réduite, merci de leur laisser quelques jours avant
 qu'ils ne vous transmettent le numéro de référence de votre signalement
 une fois qu'il aura été ajouté à la base.
 
-Vous pourrez alors, après l'avoir @qq{marqué}, y apporter vos
+Vous pourrez alors, après l'avoir « marqué », y apporter vos
 commentaires et être automatiquement notifié du traitement apporté à ce
 bogue, dès lors que vous avez un identifiant reconnu par google.
 @divEnd
@@ -590,7 +593,7 @@ Il fut un temps où
 @end itemize
 
 Le projet LilyPond ne dispose d'aucune organisation quant à ces
-@qq{efforts} ; il n'est en aucun cas partie prenante dans ces
+« efforts » ; il n'est en aucun cas partie prenante dans ces
 transactions ni ne saurait les interdire.  Tout contrat qui pourrait
 intervenir entre personnes privées ne saurait nous impliquer.
 
@@ -598,6 +601,7 @@ intervenir entre personnes privées ne saurait nous impliquer.
 
 @divClass{column-right-top}
 @subheading Principes généraux
+@c VO Guidelines
 
 Tout utilisateur désireux de rétribuer un travail doit avoir à l'esprit
 les points suivants :
@@ -619,12 +623,13 @@ ou ambiguïté à ce sujet, avant même que les travaux soient entamés.
 
 @divClass{column-center-bottom}
 @subheading Développeurs intéressés
+@c VO Interested developers
 
 Vous trouverez ci-dessous une liste des personnes ayant exprimé leur
 intérêt pour une rémunération.  Notez bien que la somme de travail varie
 selon les gens et dans le temps.  Nous ne saurions garantir que cette
 liste soit à jour, ni les capacités des intéressés.  Le seul critère est
-@qq{XYZ a demandé à être mentionné sur cette page}.
+« XYZ a demandé à être mentionné sur cette page ».
 
 Un aperçu de l'historique des sources de LilyPond peut vous aider à
 déterminer l'activité et l'expérience des développeurs.  Les
@@ -679,18 +684,20 @@ lecture des @ref{Manuels, manuels pour la version stable}.}
 
 @divClass{column-center-top}
 @subheading Numérotation des versions
+@c VO Release numbers
 
 Il existe deux jeux de version pour LilyPond : des versions stables
 et des versions instables de développement.  Les versions stables
-comportent, en versionnage @qq{mineur}, un numéro pair (par ex. 2.8,
+comportent, en versionnage « mineur », un numéro pair (par ex. 2.8,
 2.10 ou 2.12).  Les versions de développement, quant à elles,
-comportent un versionnage @qq{mineur} impair (par ex. 2.7, 2.9 ou 2.11).
+comportent un versionnage « mineur » impair (par ex. 2.7, 2.9 ou 2.11).
 
 @divEnd
 
 
 @divClass{column-left-top}
 @subheading Téléchargement
+@c VO Download
 
 Des instructions concernant @code{git} et la compilation sont exposées
 dans le Guide du contributeur.
@@ -729,6 +736,7 @@ travailler à partir des binaires les plus à jour :
 
 @divClass{column-right-top}
 @subheading Le guide du contributeur
+@c VO Contributor's Guide
 
 Le développement de LilyPond est relativement complexe.  Dans l'espoir
 d'aider les nouveaux contributeurs, et dans le but de préserver au mieux
@@ -750,6 +758,7 @@ traduit@dots{}}
 
 @divClass{column-center-top}
 @subheading Tests de régression
+@c VO Regression tests
 
 @divClass{keep-bullets}
 
@@ -781,6 +790,7 @@ Test de lilypond-book} relatifs à ce niveau de mise à jour
 
 @ifset web_version
 @subsubheading Version de développement
+@c VO Development version
 
 @itemize
 @item @regtestDevel (@regtestDevelPdf{})
@@ -793,6 +803,7 @@ Test de lilypond-book} relatifs à ce niveau de mise à jour
 @end itemize
 
 @subsubheading Version stable
+@c VO Stable version
 
 @itemize
 @item @regtestStable (@regtestStablePdf{})
@@ -807,6 +818,7 @@ Test de lilypond-book} relatifs à ce niveau de mise à jour
 
 
 @subsubheading Toutes versions
+@c VO All versions
 
 @itemize
 @item @uref{http://lilypond.org/test,
@@ -823,6 +835,7 @@ Archive de tous les tests de régression}
 
 @divClass{column-center-bottom}
 @subheading Manuels
+@c VO Manuals
 
 @ifclear web_version
 @warning{Il s'agit des manuels pour LilyPond @version{} ; la
@@ -933,39 +946,126 @@ dernière mouture est consultable sur @url{http://lilypond.org}}
 
 @divClass{column-center-top}
 @subheading Le Google Summer of Code
+@c VO What is Google Summer of Code?
 
-Ce programme global, mis en place par Google, rémunère des étudiants
-durant la période estivale, pour travailler au profit de projets
-@emph{open source}.
+Le @uref{https://developers.google.com/open-source/gsoc/, GSoC} est un
+programme global, mis en place par Google, qui rémunère des étudiants
+durant la période estivale pour travailler au profit de projets
+@emph{open source}.  Il s'agit là d'une excellente opportunité pour des
+étudiants de vivre une expérience réelle dans le développement de
+logiciels et contribuer ainsi au bien de tous.  Ceci permet aussi de
+recruter de nouveaux contributeurs à LilyPond et motiver des étudiants
+qui y participent déjà d'y être encore plus impliqués.  LilyPond
+participe à ce programme sous l'égide du
+@uref{http://www.gnu.org/, projet GNU}.
 
-Il s'agit là d'une excellente opportunité pour recruter de nouveaux
-contributeurs, encourager et motiver des étudiants qui participent déjà
-au développement de LilyPond.  L'un de nos contributeurs a été reçu pour
-participer à l'édition 2012 du programme, sous l'égide du
-@uref{http://www.gnu.org/, projet GNU}, et espérons bien que d'autres se
-feront acte de candidature pour les éditions futures.
+Nous avons eu des participants aux sessions de 2012 et 2015, et
+encourageons les étudiants à candidater pour les sessions à venir.
 
+Si vous avez des questions à ce sujet ou avez envie d'y participer,
+contactez-nous sur la liste des développeurs (voir @ref{Contact}).
 @divEnd
 
 
 @divClass{column-center-middle-color2}
 @subheading Recensement de nos idées
-@c VO Our Ideas List
-Voici les projets que nous avons proposés aux étudiants du GSoC 2012.
-Nous avons décidé de maintenir en ligne cette page du site, comme source
-d'inspiration pour ceux qui seraient intéressés au développement de
-LilyPond.  Des membres de l'équipe de développement aideront volontiers
-ceux qui aimeraient s'attaquer à l'un de ces projets.
+@c VO Project Ideas List
+
+Voici une liste de projets que nous avons proposés aux étudiants du GSoC
+et à quiconque aurait envie d'améliorer LilyPond.@*
+Dernière mise à jour : février 2016.
 
-Il y a bien d'autres choses à améliorer dans LilyPond et les membres de
-l'équipe de développement aideront volontiers ceux qui aimeraient s'y
-atteler.
+La disponibilité de tuteurs diffère selon les projets et les années.
+Contactez-nous sur la liste des développeurs -- voir @ref{Contact} -- et
+nous vous aiderons à trouver un mentor pour le projet qui correspond à
+vos envies et aptitudes.
+
+Si vous avez d'autres idées de projet dans le cadre du GSoC, n'hésitez
+pas à nous en faire part.  Il y a bien d'autres choses à améliorer dans
+LilyPond et les membres de l'équipe de développement aideront volontiers
+ceux qui aimeraient s'y atteler.
 
 Une liste exhaustive des problèmes est disponible
-@uref{http://code.google.com/p/lilypond/issues/list, ici}.
+@uref{http://sourceforge.net/p/lilypond/issues/list, ici}.
+@divEnd
+
+
+@divClass{column-center-middle-color3}
+@subheading Amélioration de la structure interne des accords
+@c VO Improve internal chord structure
+
+La structure interne des accords dans LilyPond n'est pas suffisamment
+puissante pour tenir compte de la nomneclature des accords de jazz.
+Pour l'instant, un accord comporte une fondamentale, une basse et un
+renversement.  Il serait souhaitable d'arriver à gérer les amalgames ou
+polyaccords, qu'ils soient majeur ou mineur, etc.  Seule le
+développement d'une représentation interne capable de capturer l'essence
+d'accords complexes permettra d'y parvenir.  Cette représentation
+interne une fois développée permettra par ailleurs d'améliorer le rendu
+des accords nommés.
+
+@strong{Difficulté :} moyennement facile
+@strong{Préalables :} Scheme (Guile), mais le niveau nécessaire peut
+s'acquérir aisément.
+@strong{Connaissances appréciées :} Théorie des accords et de leur nommage
+@strong{Mentor :} Carl Sorensen
+@divEnd
+
+
+@divClass{column-center-middle-color3}
+@subheading ScholarLY
+
+ScholarLY est une bibliothèque hébergée sur
+@uref{https://openlilylib.org, openLilyLib} et qui fournit des
+fonctionnalités permettant, grâce à des annotations, de gérer
+directement dans le contexte de la partition le flux de travail d'une
+« édition savante ».  Il est à ce jour possible de saisir différents
+types d'annotations, produire des messages cliquables en console et
+exporter du texte dans des fichiers @LaTeX{}.
+
+Un certain nombre de demandes d'extension permettraient de transformer
+cette bibliothèque en un outil encore plus puissant et complet, par
+exemple par l'insertion d'exemples musicaux, la production de notes de
+bas de page ou l'application de styles particuliers -- mise en pointillé
+d'une liaison, mise entre parenthèses d'un altération, etc. -- ou la
+création de rapports avec des liens inter-documents.  Pour une
+description complète des suggestions autour de ce projet, visitez
+@uref{https://github.com/openlilylib/scholarly/wiki/GSoC, ce Wiki}.
+
+@strong{Difficulté :} moyenne
+@strong{Préalables :} Scheme, peut-être @LaTeX{}, (Python optionnel)
+@strong{Connaissances appréciées :} Expérience ou intérêt dans l'édition
+critique et les flux collaboratifs.
+@strong{Mentor :} Urs Liska
+@divEnd
 
+
+@divClass{column-center-middle-color3}
+@subheading Ajout de variantes pour certains glyphes
+@c VO Adding variants of font glyphs
+
+@divClass{keep-bullets}
+@itemize
+
+@item
+Ajout de variantes positionnables « sur une ligne » et « dans un
+interligne ».
+
+@item
+Ajout de variantes plus courtes ou plus étroites pour certains glyphes
+comme les altérations. Autre exemple, dans le domaine de la notation
+ancienne, avec deux variantes de la brève, l'une avec un évidement plus
+important que l'autre.
+@end itemize
+@divEnd
+
+@strong{Difficulté :} facile
+@strong{Préalables :} MetaFont, C++, une bonne vue pour les détails
+@strong{Connaissances appréciées :} les bases de LilyPond
+@strong{Mentor potentiel :} Werner Lemberg
 @divEnd
 
+
 @divClass{column-center-middle-color3}
 @subheading Notes d'ornement @emph{(grace notes)}
 
@@ -973,12 +1073,86 @@ Résolution des problèmes de synchronisation des notes d'ornement.  Les
 notes d'ornement peuvent venir perturber LilyPond dans sa gestion du
 temps et entraîner des effets indésirables tout particulièrement
 lorsqu'elles interviennent dans une portée seulement.
+Il s'agit @uref{https://sourceforge.net/p/testlilyissues/issues/34/, là}
+de l'un des bogues les plus vieux et embarrassants pour LilyPond.
 
 @strong{Difficulté :} moyenne
 @strong{Préalables :} C++, MIDI
-@strong{Recommandé :} familiarité avec les arcanes de LilyPond
-@strong{Mentors :} Mike Solomon, Carl Sorensen
+@strong{Connaissances appréciées :} familiarité avec les arcanes de
+LilyPond
+@strong{Mentors potentiels :} Mike Solomon (indisponible pour le GSoc
+2016), Carl Sorensen
+@divEnd
 
+
+@divClass{column-center-middle-color3}
+@subheading Amélioration du positionnement par défaut des ligatures
+@c VO Improve default beam positioning
+
+Une ligature, qu'elle soit rectiligne, passe d'une portée à l'autre,
+discontinue ou coudée, devrait dépendre du contexte et des notes
+adjacentes (voir
+@uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon,_Jean-Pierre%29,
+la section 2.2 de cet article}).  Dans la mesure du possible, raccourcir
+le temps de calcul nécessaire à la génération des ligatures.
+
+@strong{Difficulté :} moyenne
+@strong{Préalables :} C++, expérience dans l'écriture d'heuristiques
+@strong{Connaissance appréciée :} sens de l'esthétique
+@strong{Mentors potentiels :} Mike Solomon (indisponible pour le GSoc
+2016), Carl Sorensen
+@divEnd
+
+
+@divClass{column-center-middle-color3}
+@subheading Permettre aux bandeaux ou extensions de naviguer entre les voix
+@c VO Allow spanners to cross voices
+
+Jusqu'à présent, les différents bandeaux ou extenseurs, qu'il s'agisse de
+liaison de tenue ou non, de nuances, de prolongateurs de texte, de
+trilles, etc. doivent se terminer dans le contexte même où ils ont été
+entamés.  Ceci néanmoins ne reflète pas la réalité de la notation dans
+la plupart des situations polyphoniques.  La seule échappatoire, pour
+l'instant, consiste à recourir à des voix masquées.
+
+De nouveaux moyens de faire face à cette situation pourraient être
+envisagés, comme
+
+@divClass{keep-bullets}
+@itemize
+
+@item la spécification du « contexte cible » où la terminaison de
+l'extension est attendue,
+
+@item l'affectation d'un ID à l'objet où intervient la terminaison.
+
+@end itemize
+@divEnd
+
+Cette fonctionnalité permettrait de résoudre nombre de problèmes
+courants en matière de partition pianistique ou lors de combinaisons de
+parties.
+
+@strong{Difficulté :} moyenne (?)
+@strong{Préalables :} C++, Scheme
+@strong{Mentor potentiel :} Urs Liska
+@divEnd
+
+
+@divClass{column-center-middle-color3}
+@subheading Aide à l'amélioration du comportement lors de la compilation
+@c VO Help improve compilation behavior
+
+Les outils d'analyse comme @emph{valgrind} pour la détection de fuites
+de mémoire ou @emph{callgrind} pour le profilage du code, fournissent
+des informations précieuses quant à d'éventuelles faiblesses du
+code C++.  Faire le ménage dans tous ces messages nous permettrait de
+rejeter tout patch qui introduirait des messages superflus.
+
+@strong{Difficulté :} moyenne
+@strong{Préalable :} C++
+@strong{Mentors potentiels :} Joe Neeman, Reinhold Kainhofer
+(indisponible pour le GSoc 2016)
 @divEnd
 
 
@@ -1017,8 +1191,9 @@ de mise en forme pour tout objet de rendu dans les  balises XML.
 @divEnd
 
 @strong{Difficulté :} moyenne
-@strong{Préalables :} MusicXML, Python, les bases de LilyPond
-@strong{Mentors :} Reinhold Kainhofer, Mike Solomon
+@strong{Préalables :} MusicXML, Python, Scheme, les bases de LilyPond
+@strong{Mentors potentiels :} Reinhold Kainhofer, Mike Solomon (tous
+deux indisponibles pour le GSoc 2016)
 
 La connaissance d'autres éditeurs de partition, dans un but de tests
 comparatifs, constituerait une aide.
@@ -1038,73 +1213,11 @@ du résultat optimal et l'écriture du code approprié.
 @strong{Difficulté :} difficile
 @strong{Préalables :} C++, expérience dans l'écriture d'heuristiques
 @strong{Connaissances appréciées :} LilyPond, sens de l'esthétique
-@strong{Mentor :} Mike Solomon
-
+@strong{Mentor potentiel :} Mike Solomon, Janek Warchoł (tous deux
+indisponibles pour le GSoc 2016)
 @divEnd
 
 
-@divClass{column-center-middle-color3}
-@subheading Ajout de variantes pour certains glyphes
-
-Il s'agit ici de pouvoir disposer de variantes, sur la ligne ou entre
-deux lignes, plus courts ou plus étroits, pour certains glyphes -- les
-altérations par exemple -- ainsi que d'une infrastructure générique de
-gestion.  Autre exemple, dans le domaine de la notation ancienne, avec
-deux variantes de la brève, l'une avec un évidement plus important que
-l'autre.
-
-@divClass{keep-bullets}
-@itemize
-
-@item
-Ajout de variantes positionnables « sur une ligne » et « dans un
-interligne ».
-
-@end itemize
-@divEnd
-
-
-@strong{Difficulté :} facile
-@strong{Préalables :} MetaFont, C++, une bonne vue pour les détails
-@strong{Connaissance appréciée :} les bases de LilyPond
-@strong{Mentor :} Werner Lemberg
-
-@divEnd
-
-
-@divClass{column-center-middle-color3}
-@subheading Amélioration du positionnement par défaut des ligatures
-
-Une ligature, qu'elle soit rectiligne, passe d'une portée à l'autre,
-discontinue ou coudée, devrait dépendre du contexte et des notes
-adjacentes (voir
-@uref{http://icking-music-archive.org/lists/sottisier/sottigra.pdf,
-la section 2.2 de cet article}).  Dans la mesure du possible, raccourcir
-le temps de calcul nécessaire à la génération des ligatures.
-
-@strong{Difficulté :} moyenne
-@strong{Préalables :} C++, expérience dans l'écriture d'heuristiques
-@strong{Connaissance appréciée :} sens de l'esthétique
-@strong{Mentors :} Mike Solomon, Carl Sorensen
-
-@divEnd
-
-
-@divClass{column-center-middle-color3}
-@subheading Aide à l'amélioration du comportement lors de la compilation
-
-Les outils d'analyse comme @emph{valgrind} pour la détection de fuites
-de mémoire ou @emph{callgrind} pour le profilage du code, fournissent
-des informations précieuses quant à d'éventuelles faiblesses du
-code C++.  Faire le ménage dans tous ces messages nous permettrait de
-rejeter tout patch qui introduirait des messages superflus.
-
-@strong{Difficulté :} moyenne
-@strong{Préalable :} C++
-@strong{Mentors :} Joe Neeman, Reinhold Kainhofer
-
-@divEnd
-
 
 @node Auteurs
 @unnumberedsec Auteurs
index c8aee45a7707050448512163307f43955743369f..f62033781164c58f4dc13e37bb585ad3a130360d 100644 (file)
@@ -1,11 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of web.texi
 @ignore
-    Translation of GIT committish: cee6cea4ed55eb4fa1f9d83c997ebc19744a6e1a
+   Translation of GIT committish: 10bc01482b78c62ad095ceb95963b1800571e408
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  For details, see the Contributors'
-    Guide, node Updating translation committishes..
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  For details, see the Contributors'
+   Guide, node Updating translation committishes..
 @end ignore
 
 @c Translators: Jean-Charles Malahieude, John Mandereau
index 8ec06c58a6c73bfaef95834d6782b3a8c4662409..8ebffbf836b8ca4a66d3bb4e1c71ca2fc1a50e21 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of web.texi
 @ignore
-   Translation of GIT committish: 3ff93fbd01133506d14c929740bd26b34f59c5b4
+   Translation of GIT committish: 934175b31d43c95e341b098f12c2e833522a5d45
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -699,23 +699,22 @@ qu'ils ont ,à notre connaissane, grandement apprécié.
 
 Aurélien a aussi réorchestré @emph{Der Ring der Nibelungen} de Richard
 Wagner en une
-@uref{http://www.rsb-online.de/content/konzerte/wagnerzyklus-10-13/wagner-fuer-kinder/index_ger.html,
+@uref{www.rsb-online.de/content/concerts/new-season-1516/family-concerts-age-7-and-above/index_eng.html,
 version en 100 minutes pour enfants}.
 Celle-ci, écrite pour un orchestre symphonique traditionnel et un nombre
 réduit de chanteurs, a été donnée en avril 2014 au Atze Musiktheater de
-Berlin par l'orchestre radio-symphonique de Berlin sous la direction de
-Heiko Matthias Förster.
+Berlin par @uref{http://www.rsb-online.de/, l'orchestre
+radio-symphonique de Berlin} sous la direction de Heiko Matthias Förster.
 
 @item
 Joe Smeets a réalisé les partitions du livre pour enfants @emph{Zing
-Mee} (@emph{Chanter}) d'Annie M.G. publié chez Querido -- ISBN
-9789045106205
-@uref{http://www.queridokinderenjeugdboeken.nl/web/Boek.htm?dbid=18954&typeofpage=134707,
-www.queridokinderenjeugdboeken.nl} --, les partitions de chœur d'une
-traduction en hollandais du @emph{Saint Nicolas} de Benjamin Britten
-donné en 2011 par le @emph{Muziektheater Hollands Diep} --
+Mee} (@emph{Chanter}) d'Annie M.G. publié chez
+@uref{http://www.queridokinderenjeugdboeken.nl/, Querido} -- ISBN
+9789045106205 --, les partitions de chœur d'une traduction en hollandais
+du @emph{Saint Nicolas} de Benjamin Britten donné en 2011 par le
+@emph{Muziektheater Hollands Diep} --
 @uref{http://www.muziektheaterhollandsdiep.nl/nl/voorstellingen/sint_nicolaas_leeft,
-www.muziektheaterhollandsdiep.nl}.  Il a aussi réalisé le conducteur et
+www.muziektheaterhollandsdiep.nl}. Il a aussi réalisé le conducteur et
 le matériel d'un arrangement pour quatuor à vent, piano et percussions,
 du @emph{Boris Godounov} de Modeste Moussorgski, qui a été donné en
 2014, toujours par le @emph{Muziektheater Hollands Diep}.
@@ -734,29 +733,28 @@ Tommaso Traetta, opéra sur un libret de Vittorio Amedeo Cigna-Santi, en quatre
 Après les avoir réorchestrés, @uref{http://www.aurelienbello.com/,
 Aurélien Bello} a donné plusieurs représentations, entre octobre 2011 et
 avril 2012, des @emph{Tableaux d'une exposition} de Mussorgsky à la tête
-de @uref{http://www.junge-philharmonie-brandenburg.de/, l'orchestre
+de @uref{https://junge-philharmonie-brandenburg.de/, l'orchestre
 philharmonique des jeunes de Brandenbourg}.
 
 @item
-@uref{http://www.kierenmacmillan.info/, Kieren MacMillan}, compositeur
+@uref{http://kierenmacmillan.info/, Kieren MacMillan}, compositeur
 et directeur musical. Ses travaux les plus récents incluent @emph{Go Thy
 Way}, donné par les @uref{http://www.saltlakechoralartists.org/, Salt
 Lake Choral Artists} en mars 2012, la @emph{Just Out of Reach Suite},
 donnée par le
 @uref{http://www.herald-dispatch.com/news/marshall/x1883873762/Music-duo-Chrysalis-to-perform-at-Marshall-University-on-Jan-19,
 Duo Chrysalis} ainsi que @emph{thrafsmata} en juillet 2011 par le
-@uref{http://www.pnme.org/CurrentSeason/PreviousSeasons.html, Pittsburgh
-New Music Ensemble}.
+@uref{http://www.pnme.org/, Pittsburgh New Music Ensemble}.
 
 @item
 @emph{Anonymous Student Compliment or Complaint} a permis à
 @uref{http://www.mikesolomon.org, Mike Solomon} de gagner le
-@uref{http://leftcoastensemble.org, Concours de composition de la côte Est 2011},
-regroupant 172 participants de 22 nationalités.  Parmi ses autres
-œuvres, nous citerons @emph{Norman (un an)} pour clarinette solo, donnée
-en octobre 2010 à l'occasion du Festival de musique électro-acoustique
-(FEMF) de
-@uref{http://emu.music.ufl.edu/fems_concerts.html, l'Université de Floride}.
+@uref{http://www.leftcoastensemble.org,
+Concours de composition de la côte Est 2011}, regroupant 172
+participants de 22 nationalités.  Parmi ses autres œuvres, nous citerons
+@emph{Norman (un an)} pour clarinette solo, donnée en octobre 2010 à
+l'occasion du Festival de musique électro-acoustique (FEMF) de
+@uref{http://arts.ufl.edu/academics/music/, l'Université de Floride}.
 
 @item
 Une édition moderne de la @emph{Serenata Erminia} d'Alessandro
@@ -768,7 +766,7 @@ Stigliano à Naples lors des célébrations organisées pour le
 
 @item
 L'exécution d'@emph{Armide} de Lully, les 15 et 16 mai 2009, à Houston,
-Texas, par @uref{http://www.mercurybaroque.org/, Mercury Baroque},
+Texas, par @uref{http://www.mercuryhouston.org/, Mercury Baroque},
 avec un matériel gravé par @uref{http://nicolas.sceaux.free.fr/, Nicolas
 Sceaux}.
 
@@ -782,7 +780,7 @@ Music New York}, avec des partitions gravées par
 @item
 @emph{Affaire Étrangère}, un opéra de
 @uref{http://valentin.villenave.net/, Valentin Villenave}, livret
-de @uref{http://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis Trondheim},
+de @uref{https://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis Trondheim},
 dont la première a eu lieu le 1er février 2009 en France à
 @uref{http://www.orchestre-montpellier.com/, l'Opéra national de
 Montpellier}.
@@ -814,15 +812,15 @@ comporte un clavier virtuel qui indique aux pianiste lecteur débutant
 quelle touche enfoncer.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing} propose des
-partitions de musique sacrée de grande qualité, disponibles
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing} propose
+des partitions de musique sacrée de grande qualité, disponibles
 immédiatement en téléchargement ou sous forme de partition imprimable.
 
 @item
-@uref{http://www.shadylane.fr/, The Shady Lane Publishing},
-est un « micro-éditeur de partitions musicales » qui a pour but de
-promouvoir une nouvelle forme de pratique économique, plus proche des
-musiciens et amoureux de la musique.
+@uref{http://matthieujacquot.com/, The Shady Lane Publishing} est un
+« micro-éditeur de partitions musicales » qui a pour but de promouvoir
+une nouvelle forme de pratique économique, plus proche des musiciens et
+amoureux de la musique.
 
 @end itemize
 @divEnd
@@ -864,11 +862,11 @@ Avril 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publie un
 article sur trois projets en pleine évolution,
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  Dans cette présentation de MuseScore, LilyPond
-et Chordii, Carla Schroder indique que @qq{même si LilyPond se base sur
+et Chordii, Carla Schroder indique que « même si LilyPond se base sur
 la ligne de commande, l'absence d'interface graphique n'est en rien
-rebutante ; son langage est agréable et facile à apprendre}, et
+rebutante ; son langage est agréable et facile à apprendre », et
 fournit un exemple simple et concret.
 
 @item
@@ -1063,7 +1061,7 @@ musicale de qualité].}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{La façon dont on saisit la musique pour LilyPond me fait penser
 d'une façon plus musicale -- il m'est arrivé plusieurs fois de buter sur
@@ -1566,7 +1564,8 @@ créé en tant que greffon de l'éditeur @uref{http://www.jedit.org,jEdit}.
 exporte dans une certaine mesure au format LilyPond.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, qui importait
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit},
+qui importait
 @uref{http://www.makemusic.com/musicxml, MusicXML}, s'est scindé en
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
 et @uref{http://canorus.org,Canorus}.
index 1b3f2dcfaeb8652b41758c7a1911281914c84453..6c39bc666536582884256198dd379ef31b0b5668 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Last updated Fri Jan  1 10:40:27 UTC 2016
+@emph{Last updated Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -239,7 +239,7 @@ partially
 @item
 2 Elemi kottaírás
 @*
-4443
+4437
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -295,7 +295,7 @@ partially
 @item
 4 A kimenet finomhangolása
 @*
-16577
+16622
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -415,7 +415,7 @@ partially
 @item
 1 A @command{lilypond} használata
 @*
-5401
+5425
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -442,7 +442,7 @@ partially
 @item
 2 A @command{convert-ly} használata
 @*
-1865
+1866
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -562,7 +562,7 @@ partially
 @item
 Bevezetés
 @*
-5816
+5815
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -579,7 +579,7 @@ yes
 @ifhtml
 
 @html
-<span style="background-color: #f6fe3b">partially</span>
+<span style="background-color: #fcff3c">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -643,24 +643,24 @@ partially
 @item
 Közösség
 @*
-3004
+3522
 @tab Harmath Dénes
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially (94 %)</span>
+<span style="background-color: #dfef77">partially (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially (94 %)
+partially (95 %)
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #efff3a">partially</span>
+<span style="background-color: #fff73e">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
index 95c643bb4dcc7b16cf46728c3b0ff6610a6ae74e..864020d948f0e8cc337aa57617dd15174196d4ed 100644 (file)
@@ -436,7 +436,7 @@ hibafelelősöknek @rcontribnamed{Issues, a hibajelentések kezelésében}.
 
 @item
 Dokumentáció: tegyél bármilyen javaslatot a dokumentációval kapcsolatban a
-@rcontribnamed{Documentation suggestions} c. fejezetben leírt módon.
+@rcontrib{Documentation suggestions} c. fejezetben leírt módon.
 
 @item
 LilyPond Kódrészletek Tárháza: készíts hasznos kódrészleteket!
@@ -963,10 +963,8 @@ Computer Music Special} CMS06 száma)
 
 @node Hírarchívum
 @unnumberedsec Hírarchívum
-@translationof Old news
+@translationof Attic
 
 @include web/news-front.itexi
 
 @include web/news.itexi
-
-
index 1352bc8c53c0cc3e5e5d8d4bf25e139a71ca62cc..b75a4c9f11a7798cbbbf97d615b2989a3c17d647 100644 (file)
@@ -498,7 +498,7 @@ több, mint 1500 klasszikus zenemű szabadon letölthető kottájával
 a LilyPonddal szedett kották online tárháza.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing}:
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing}:
 egyházi zeneművek kiadója, közvetlenül letölthető vagy
 papíron megrendelhető, rendkívül jó minőségű kottákkal.
 
index 7253087c70ef2588492cb7155dc6c0aa25abc1d1..896fa0cb3c31c10137310542ce534aa40c6ff728 100644 (file)
@@ -159,8 +159,9 @@ check and a full make doc. - James
 @node Fedora
 @unnumberedsubsubsec Fedora
 
-The following instructions were tested on @q{Fedora 22} and include all
-the software to both compile LilyPond and build the documenation.
+The following instructions were tested on @q{Fedora} versions 22 & 23
+and will download all the software required to both compile LilyPond and
+build the documentation.
 
 @itemize
 
@@ -226,14 +227,27 @@ See @ruser{lily-git}.
 
 @end itemize
 
+@warning{By default, when building LilyPond's documentation,
+@code{pdfTeX} is be used.  However ligatures (fi, fl, ff etc.) may not
+be printed in the PDF output.  In this case XeTeX can be used instead.
+Download and install the @code{texlive-xetex} package.
+
+@example
+sudo dnf install texlive-xetex
+@end example
+
+The scripts used to build the LilyPond documentation will use
+@code{XeTex} instead of @code{pdfTex} to generate the PDF documents if
+it is available.  No additional configuration is required.}
+
 
 
 @node Linux Mint
 @unnumberedsubsubsec Linux Mint
 
 The following instructions were tested on @q{Linux Mint 17.1} and
-@q{LMDE - Betsy} and include all the software to both compile LilyPond
-and build the documenation.
+@q{LMDE - Betsy} and will download all the software required to both
+compile LilyPond and build the documentation..
 
 @itemize
 
@@ -296,12 +310,26 @@ Also see @ruser{lily-git}.
 
 @end itemize
 
+@warning{By default, when building LilyPond's documentation,
+@code{pdfTeX} is be used.  However ligatures (fi, fl, ff etc.) may not
+be printed in the PDF output.  In this case XeTeX can be used instead.
+Download and install the @code{texlive-xetex} package.
+
+@example
+sudo apt-get install texlive-xetex
+@end example
+
+The scripts used to build the LilyPond documentation will use
+@code{XeTex} instead of @code{pdfTex} to generate the PDF documents if
+it is available.  No additional configuration is required.}
+
 
 @node OpenSUSE
 @unnumberedsubsubsec OpenSUSE
 
-The following instructions were tested on @q{OpenSUSE 13.2} and include
-all the software to both compile LilyPond and build the documenation.
+The following instructions were tested on @q{OpenSUSE 13.2} and will
+download all the software required to both compile LilyPond and build
+the documentation.
 
 @itemize
 
@@ -334,7 +362,7 @@ contribute to LilyPond (codebase or help improve the documentation) then
 it is recommended that you also need to install @code{git}.
 
 @example
-sudo apt-get install git
+sudo zypper install git
 @end example
 
 Also see @ruser{Starting with Git}.
@@ -350,14 +378,25 @@ Also see @ruser{lily-git}.
 
 @end itemize
 
+@warning{By default, when building LilyPond's documentation,
+@code{pdfTeX} is be used.  However ligatures (fi, fl, ff etc.) may not
+be printed in the PDF output.  In this case XeTeX can be used instead.
+Download and install the @code{texlive-xetex} package.
 
+@example
+sudo zypper install texlive-xetex
+@end example
+
+The scripts used to build the LilyPond documentation will use
+@code{XeTex} instead of @code{pdfTex} to generate the PDF documents if
+it is available.  No additional configuration is required.}
 
 @node Ubuntu
 @unnumberedsubsubsec Ubuntu
 
 The following commands were tested on Ubuntu versions @code{14.04 LTS},
-@code{14.10} and @code{15.04} and include all the software to both
-compile LilyPond and build the documenation.
+@code{14.10} and @code{15.04} and will download all the software
+required to both compile LilyPond and build the documentation.
 
 @itemize
 
@@ -398,6 +437,19 @@ Also see @ruser{lily-git}.
 
 @end itemize
 
+@warning{By default, when building LilyPond's documentation,
+@code{pdfTeX} is be used.  However ligatures (fi, fl, ff etc.) may not
+be printed in the PDF output.  In this case XeTeX can be used instead.
+Download and install the @code{texlive-xetex} package.
+
+@example
+sudo apt-get install texlive-xetex
+@end example
+
+The scripts used to build the LilyPond documentation will use
+@code{XeTex} instead of @code{pdfTex} to generate the PDF documents if
+it is available.  No additional configuration is required.}
+
 
 @node Other
 @unnumberedsubsubsec Other
@@ -508,10 +560,10 @@ is available online at
 you can also build them locally from the source code.  This process
 requires some additional tools and packages.
 
-@warning{If you have used the instructions for one of the Linux
-distributions explicitly listed in the previous section
-(@rcontrib{Requirements for compiling LilyPond}) then the following can
-be ignored as the software should already be installed.}
+@warning{If the instructions for one of the previously listed Linux
+in the previous section (@rcontrib{Requirements for compiling LilyPond})
+have been used, then the following can be ignored as the software should
+already be installed.}
 
 @itemize
 
@@ -571,6 +623,13 @@ ttf-xfree86-nonfree
 
 @end itemize
 
+@warning{By default, when building LilyPond's documentation,
+@code{pdfTeX} is be used.  However ligatures (fi, fl, ff etc.) may not
+be printed in the PDF output.  In this case XeTeX can be used instead.
+Download and install the @code{texlive-xetex} package. The scripts used
+to build the LilyPond documentation will use @code{XeTex} instead of
+@code{pdfTex} to generate the PDF documents if it is available.  No
+additional configuration is required.}
 
 
 @node Getting the source code
index 0e7a24c21db5ee3b7fcf3ae4ee900a34fc3bac91..b8e700d79fdba079b9241ab74dd73a747ea2c7f1 100644 (file)
@@ -583,7 +583,7 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print
 
 @ The `line-width' is for \header.
 @li lypond[quote,verbatim,ragged-right,line-width]
-\version "2.19.2"
+\version "2.19.25"
 \header {
   dedication = "dedication"
   title = "Title"
index 1b4ed8dbf50678a6045ead987646a5f4b9668b9b..7f281e71c4b20bb1268b4989c94b35d96f2e9a6a 100644 (file)
 @chapter Modifica delle impostazioni predefinite
 @translationof Changing defaults
 
-The purpose of LilyPond's design is to provide the finest quality
-output by default.  Nevertheless, it may happen that you need to
-change this default layout.  The layout is controlled through a large
-number of @q{knobs and switches} collectively called @q{properties}.
-A tutorial introduction to accessing and modifying these properties
-can be found in the Manuale di apprendimento, see @rlearning{Modifica dell'output}.
-This should be read first.  This chapter covers similar ground, but
-in a style more appropriate to a reference manual.
+LilyPond è progettato per fornire la migliore qualità grafica mantenendo le
+impostazioni predefinite.  Tuttavia può capitare che sia necessario modificare
+la sua formattazione predefinita.  La formattazione è regolata da un gran
+numero di @qq{pulsanti e interruttori} chiamati @q{proprietà}.  Prima di
+proseguire si consiglia di leggere una guida introduttiva su come accedere
+a queste proprietà e modificarle: vedi @rlearning{Modifica dell'output}, nel
+Manuale di apprendimento.  Questo capitolo tratta lo stesso argomento, ma in
+uno stile più adatto a un manuale.
 
 @cindex Internals Reference
 @cindex Guida al funzionamento interno
 
-The definitive description of the controls available for tuning can
-be found in a separate document: @rinternalsnamed{Top,the Internals
-Reference}.  That manual lists all the variables, functions and
-options available in LilyPond.  It is written as a HTML document,
-which is available
+La descrizione completa delle proprietà che si possono ritoccare si trova
+in un documento separato: @rinternalsnamed{Top,la Guida al funzionamento
+interno}.  Questo manuale elenca tutte le variabili, le funzioni e le
+opzioni disponibili in LilyPond.  Viene fornito come un documento HTML,
+disponibile
 @c leave the @uref as one long line.
 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,on@/-line},
-and is also included with the LilyPond documentation package.
-
-Internally, LilyPond uses Scheme (a LISP dialect) to provide
-infrastructure.  Overriding layout decisions in effect accesses the
-program internals, which requires Scheme input.  Scheme elements are
-introduced in a @file{.ly} file with the hash
-mark@tie{}@code{#}.@footnote{@rextend{Scheme tutorial}, contains a
-short tutorial on entering numbers, lists, strings, and symbols in
+ed è anche incluso nel pacchetto della documentazione di LilyPond.
+
+Internamente, LilyPond usa il linguaggio Scheme (un dialetto di LISP) per
+fornire l'infrastruttura.  Modificare le decisioni di formattazione prevede
+in effetti l'accesso alle funzioni interne del programma, cosa che
+richiede l'input Scheme.  In un file @file{.ly} gli elementi Scheme
+sono introdotti col segno
+cancelletto@tie{}@code{#}.@footnote{@rextend{Scheme tutorial}, contiene
+una breve guida sull'inserimento di numeri, liste, stringhe e simboli in
 Scheme.}
 
 
@@ -61,16 +62,16 @@ Scheme.}
 @section Contesti di interpretazione
 @translationof Interpretation contexts
 
-This section describes what contexts are, and how to modify them.
+Questa sezione spiega cosa sono i contesti e come modificarli.
 
 @menu
-* Contexts explained::
-* Creating and referencing contexts::
-* Keeping contexts alive::
-* Modifying context plug-ins::
-* Changing context default settings::
-* Defining new contexts::
-* Context layout order::
+* Tutto sui contesti::
+* Creazione e citazione di un contesto::
+* Conservazione di un contesto::
+* Modifica dei componenti aggiuntivi di un contesto::
+* Modifica delle impostazioni predefinite di un contesto::
+* Definizione di nuovi contesti::
+* Ordine di disposizione dei contesti::
 @end menu
 
 @seealso
@@ -89,8 +90,9 @@ Guida al funzionamento interno:
 @rinternals{Engravers and Performers}.
 
 
-@node Contexts explained
-@subsection Contexts explained
+@node Tutto sui contesti
+@subsection Tutto sui contesti
+@translationof Contexts explained
 
 @ignore
 @c TODO Rethink and rewrite
@@ -117,246 +119,229 @@ further explanation and with links to the IR.
 
 @c TODO Describe propagation of property values -td
 
-Contexts are arranged hierarchically:
+I contesti sono organizzati in modo gerarchico:
 
 @menu
-* Output definitions - blueprints for contexts::
-* Score - the master of all contexts::
-* Top-level contexts - staff containers::
-* Intermediate-level contexts - staves::
-* Bottom-level contexts - voices::
+* Definizioni di output - gerarchia dei contesti::
+* Score - il padre di tutti i contesti::
+* Contesti del livello superiore - contenitori di righi::
+* Contesti del livello intermedio - righi::
+* Contesti del livello inferiore - voci::
 @end menu
 
-@node Output definitions - blueprints for contexts
-@unnumberedsubsubsec Output definitions - blueprints for contexts
+@c blueprint letteralmente indica la cianografia architettonica
+@node Definizioni di output - gerarchia dei contesti
+@unnumberedsubsubsec Definizioni di output - gerarchia dei contesti
+@translationof Output definitions - blueprints for contexts
 
-This section explains the relevance of output definitions when
-working with contexts.  Examples for actual output definitions are
-given later (see @ref{Changing all contexts of the same type}).
+Questa sezione spiega la rilevanza delle definizioni di output quando
+si lavora coi contesti.  Esempi di vere definizioni di output sono
+illustrati dopo (vedi @ref{Changing all contexts of the same type}).
 
-@cindex output definitions
+@cindex output, definizioni
+@cindex definizioni di output
 @funindex \layout
-While music written in a file may refer to context types and
-names, contexts are created only when the music is actually being
-interpreted.  LilyPond interprets music under control of an
-@q{output definition} and may do so for several different output
-definitions, resulting in different output.  The output definition
-relevant for printing music is specified using @code{\layout}.
+Sebbene la musica scritta in un file possa riferirsi a un certo tipo o
+nome di un contesto, i contesti vengono creati soltanto quando la musica
+viene interpretata.  LilyPond interpreta la musica in base a una
+@qq{definizione di output} e lo fa per le varie definizioni di output,
+producendo un output diverso per ciascuna.  La definizione di output che
+crea l'output grafico si specifica con @code{\layout}.
 
 @funindex \midi
-A much simpler output definition used for producing Midi output is
-specified using @code{\midi}.  Several other output definitions
-are used by LilyPond internally, like when using the part combiner
-(@ref{Automatic part combining}) or creating music quotes
-(@ref{Quoting other voices}).
-
-Output definitions define the relation between contexts as well as
-their respective default settings.  While most changes will
-usually be made inside of a @code{\layout} block, Midi-related
-settings will only have an effect when made within a @code{\midi}
-block.
+Una definizione di output molto più semplice, usata per produrre l'output
+Midi, si specifica con @code{\midi}.  Molte altre definizioni di output
+sono usate da LilyPond internamente, come quando si usa la combinazione
+automatica delle parti (@ref{Automatic part combining}) o si creano citazioni
+musicali (@ref{Quoting other voices}).
+
+Le definizioni di output definiscono la relazione tra i contesti e le loro
+rispettive impostazioni predefinite.  Sebbene la maggior parte dei cambiamenti
+venga fatta solitamente in un blocco @code{\layout}, le impostazioni relative
+al Midi avranno effetto solo se inserite in un blocco @code{\midi}.
 
 @funindex autoBeaming
-Some settings affect several outputs: for example, if
-@code{autoBeaming} is turned off in some context, beams count as
-melismata for the purpose of matching music to lyrics as described
-in @ref{Automatic syllable durations}.  This matching is done both
-for printed output as well as for Midi.  If changes made to
-@code{autoBeaming} within a context definition of a @code{\layout}
-block are not repeated in the corresponding @code{\midi} block,
-lyrics and music will get out of sync in Midi.
+Alcune impostazioni interessano vari tipi di output: per esempio, se
+@code{autoBeaming} è disattivato in qualche contesto, le travature contano
+come melismi al fine di abbinare musica e testo vocale, come descritto
+in @ref{Automatic syllable durations}.  Questo abbinamento viene fatto
+sia per l'output grafico che per il Midi.  Se le modifiche fatte a
+@code{autoBeaming} in una definizione di contesto di un blocco @code{\layout}
+non sono ripetute nel corrispondente blocco @code{\midi}, il testo e la
+musica andranno fuori sincrono nel Midi.
 
 @seealso
 File installati:
 @file{ly/engraver-init.ly}.
 @file{ly/performer-init.ly}.
 
-@node Score - the master of all contexts
-@unnumberedsubsubsec Score - the master of all contexts
+@node Score - il padre di tutti i contesti
+@unnumberedsubsubsec Score - il padre di tutti i contesti
+@translationof Score - the master of all contexts
 
-This is the top level notation context.  No other context can
-contain a Score context.  By default the Score context handles
-the administration of time signatures and makes sure that items
-such as clefs, time signatures, and key-signatures are aligned
-across staves.
+Questo è il contesto del livello superiore.  Nessun altro contesto può
+contenere un contesto Score.  Per impostazione predefinita, il contesto
+Score gestisce l'amministrazione delle indicazioni di tempo e garantisce
+che elementi come le chiavi, le indicazioni di tempo e le armature di chiave
+siano allineate da rigo a rigo.
 
-A Score context is instantiated implicitly when a
-@code{\score @{@dots{}@}} block is processed.
+Un contesto Score viene istanziato implicitamente quando viene elaborato
+un blocco @code{\score @{@dots{}@}}.
 
-@node Top-level contexts - staff containers
-@unnumberedsubsubsec Top-level contexts - staff containers
+@node Contesti del livello superiore - contenitori di righi
+@unnumberedsubsubsec Contesti del livello superiore - contenitori di righi
+@translationof Top-level contexts - staff containers
 
 @strong{@emph{StaffGroup}}
 
-Groups staves while adding a bracket on the left side, grouping
-the staves together.  The bar lines of the contained staves are
-connected vertically.  @code{StaffGroup} only consists of a collection
-of staves, with a bracket in front and spanning bar lines.
+Raggruppa i righi e aggiunge una parentesi quadra sul lato sinistro, che
+raggruppa insieme i righi.  Le stanghette dei righi in esso contenuti sono
+connessi verticalmente.  @code{StaffGroup} è semplicemente un insieme di righi,
+con una parentesi quadra all'inizio e le stanghette che li attraversano.
 
 @strong{@emph{ChoirStaff}}
 
-Identical to @code{StaffGroup} except that the bar lines of the
-contained staves are not connected vertically.
+Identico a @code{StaffGroup} eccetto che le stanghette dei righi in esso
+contenuti non sono connesse verticalmente.
 
 @strong{@emph{GrandStaff}}
 
-A group of staves, with a brace on the left side, grouping the
-staves together.  The bar lines of the contained staves are
-connected vertically.
+Un gruppo di righi, con una parentesi graffa sul lato sinistro, che raggruppa
+insieme i righi.  Le stanghette dei righi in esso contenuti sono
+connessi verticalmente.
 
 @strong{@emph{PianoStaff}}
 
-Just like @code{GrandStaff}, but with support for instrument names
-to the left of each system.
+Identico a @code{GrandStaff}, ma con il supporto ai nomi degli strumenti a
+sinistra di ogni sistema.
 
-@node Intermediate-level contexts - staves
-@unnumberedsubsubsec Intermediate-level contexts - staves
+@node Contesti del livello intermedio - righi
+@unnumberedsubsubsec Contesti del livello intermedio - righi
+@translationof Intermediate-level contexts - staves
 
 @strong{@emph{Staff}}
 
-Handles clefs, bar lines, keys, accidentals.  It can contain
-@code{Voice} contexts.
+Gestisce chiavi, stanghette, armature di chiave, alterazioni.  Può contenere
+contesti @code{Voice}.
 
 @strong{@emph{RhythmicStaff}}
 
-Like @code{Staff} but for printing rhythms.  Pitches are ignored
-when engraving; the notes are printed on one line.  The MIDI
-rendition retains pitches unchanged.
+Come @code{Staff} ma per le ritmiche.  Le altezze vengono ignorate e le
+note appaiono su una linea.  L'output MIDI conserva le altezze inalterate.
 
 @strong{@emph{TabStaff}}
 
-Context for generating tablature.  By default lays the music
-expression out as a guitar tablature, printed on six lines.
+Contesto per generare l'intavolatura (o tablatura).  La forma predefinita è
+quella dell'intavolatura per chitarra, con sei linee.
 
 @strong{@emph{DrumStaff}}
 
-Handles typesetting for percussion.  Can contain @code{DrumVoice}
+Contesto per gli strumenti percussivi.  Può contenere @code{DrumVoice}.
 
 @strong{@emph{VaticanaStaff}}
 
-Same as @code{Staff}, except that it is designed for typesetting
-a piece in gregorian style.
+Identico a @code{Staff}, a parte il fatto che è progettato per rappresentare
+un brano in stile gregoriano.
 
 @strong{@emph{MensuralStaff}}
 
-Same as @code{Staff}, except that it is designed for typesetting
-a piece in mensural style.
+Identico a @code{Staff}, a parte il fatto che è progettato per rappresentare
+un brano in stile mensurale.
 
-@node Bottom-level contexts - voices
-@unnumberedsubsubsec Bottom-level contexts - voices
+@node Contesti del livello inferiore - voci
+@unnumberedsubsubsec Contesti del livello inferiore - voci
+@translationof Bottom-level contexts - voices
 
-Voice-level contexts initialise certain properties and start
-appropriate engravers.  A bottom-level context is one without
-@code{defaultchild}.  While it is possible to let it
-accept/@/contain subcontexts, they can only be created and entered
-explicitly.
+I contesti al livello della voce inizializzano alcune proprietà e avviano
+gli incisori adatti.  Un contesto del livello inferiore è privo di
+@code{defaultchild}.  Sebbene sia possibile far sì che accetti/@/contenga
+sottocontesti, questi possono essere creati e inseriti solo esplicitamente.
 
 @strong{@emph{Voice}}
 
-Corresponds to a voice on a staff.  This context handles the
-conversion of dynamic signs, stems, beams, super- and sub-scripts,
-slurs, ties, and rests.  You have to instantiate this explicitly
-if you require multiple voices on the same staff.
+Corrisponde a una voce di un rigo.  Questo contesto gestisce la
+conversione di segni di dinamica, gambi, travature, apici e pedici,
+legature di portamento e di valore e pause.  Deve essere istanziata
+esplicitamente se si hanno molteplici voci nello stesso rigo.
 
 @strong{@emph{VaticanaVoice}}
 
-Same as @code{Voice}, except that it is designed for typesetting
-a piece in gregorian style.
+Identico a @code{Voice}, a parte il fatto che è progettato per rappresentare
+un brano in stile gregoriano.
 
 @strong{@emph{MensuralVoice}}
 
-Same as @code{Voice}, with modifications for typesetting a piece in
-mensural style.
+Identico a @code{Voice}, con delle modifiche per rappresentare un brano in
+stile mensurale.
 
 @strong{@emph{Lyrics}}
 
-Corresponds to a voice with lyrics.  Handles the printing of a
-single line of lyrics.
+Corrisponde a una voce con testo vocale.  Gestisce la stampa di una singola
+linea di testo vocale.
 
 @strong{@emph{DrumVoice}}
 
-The voice context used in a percussion staff.
+Il contesto della voce usato in un rigo per percussioni.
 
 @strong{@emph{FiguredBass}}
 
-The context in which @code{BassFigure} objects are created from
-input entered in @code{\figuremode} mode.
+Il contesto in cui sono creati gli oggetti @code{BassFigure} a partire
+dall'input inserito in modalità @code{\figuremode}.
 
 @strong{@emph{TabVoice}}
 
-The voice context used within a @code{TabStaff} context.  Usually
-left to be created implicitly.
+Il contesto della voce usato all'interno di un contesto @code{TabStaff}.
+Solitamente omesso così che sia creato implicitamente.
 
 @strong{@emph{CueVoice}}
 
-A voice context used to render notes of a reduced size, intended
-primarily for adding cue notes to a staff, see @ref{Formatting
-cue notes}.  Usually left to be created implicitly.
+Un contesto della voce usato per rappresentare note a dimensione ridotta, inteso
+soprattutto per aggiungere citazioni in corpo più piccolo a un rigo, vedi
+@ref{Formatting cue notes}.  Solitamente omesso così che sia creato implicitamente.
 
 @strong{@emph{ChordNames}}
 
-Typesets chord names.
-
-@ignore
-TODO
-
-Then the following, which I don't know what to do with:
-
-    * GregorianTranscriptionVoice
-    * GregorianTranscriptionStaff
+Crea e dispone i nomi degli accordi.
 
-    * FretBoards
-        Engraves fretboards from chords. Not easy... Not
-documented.
-        There is now some documentation on FretBoards in the NR, under
-         instrument-specific notation -- cds.
 
-    * NoteNames
 
-    * Global
-        Hard coded entry point for LilyPond. Cannot be tuned.
-    * Devnull
-        Silently discards all musical information given to this
-context.
-
-@end ignore
-
-@node Creating and referencing contexts
-@subsection Creating and referencing contexts
+@node Creazione e citazione di un contesto
+@subsection Creazione e citazione di un contesto
+@translationof Creating and referencing contexts
 
 @funindex \new
 @funindex \context
-@cindex new contexts
-@cindex referencing contexts
-@cindex Contexts, creating and referencing
-
-LilyPond will create lower-level contexts automatically if a music
-expression is encountered before a suitable context exists, but this
-is usually successful only for simple scores or music fragments like
-the ones in the documentation.  For more complex scores it is
-advisable to specify all contexts explicitly with either the
-@code{\new} or @code{\context} command.  The syntax of
-these two commands is very similar:
+@cindex nuovi contesti
+@cindex citazione di un contesto
+@cindex Contesti, creazione e citazione
+
+LilyPond crea i contesti del livello inferiore automaticamente se incontra
+un'espressione musicale prima di un contesto adatto, ma questo approccio
+di solito funziona soltanto per partiture semplici o frammenti musicali
+simili a quelli della documentazione.  Per partiture più complesse si
+consiglia di specificare tutti i contesti esplicitamente coi comandi
+@code{\new} o @code{\context}.  La sintassi di questi due comandi è
+molto simile:
 
 @example
-[\new | \context] @var{Context} [ = @var{name}] [@var{music-expression}]
+[\new | \context] @var{Contesto} [ = @var{nome}] [@var{espressione-musicale}]
 @end example
 
 @noindent
-where either @code{\new} or @code{\context} may be specified.
-@var{Context} is the type of context which is to be created,
-@var{name} is an optional name to be given to the particular context
-being created and @var{music-expression} is a single music expression
-that is to be interpreted by the engravers and performers in this
-context.
+dove si può usare @code{\new} o @code{\context}.
+@var{Contesto} è il tipo di contesto che deve essere creato,
+@var{nome} è un nome opzionale da assegnare al contesto che si
+sta creando e @var{espressione-musicale} è una singola espressione
+musicale che deve essere interpretata dagli incisori e dai performer
+in questo contesto.
 
-The @code{\new} prefix without a name is commonly used to create
-scores with many staves:
+Il prefisso @code{\new} senza un nome viene usato comunemente per creare
+partiture con molti righi:
 
 @lilypond[quote,verbatim]
 <<
   \new Staff \relative {
-    % leave the Voice context to be created implicitly
+    % lascia che il contesto Voice sia creato implicitamente
     c''4 c
   }
   \new Staff \relative {
@@ -366,7 +351,7 @@ scores with many staves:
 @end lilypond
 
 @noindent
-and to place several voices into one staff:
+e per mettere varie voci in un rigo:
 
 @lilypond[quote,verbatim]
 \new Staff <<
@@ -382,15 +367,15 @@ and to place several voices into one staff:
 @end lilypond
 
 @noindent
-@code{\new} should always be used to specify unnamed contexts.
+@code{\new} deve essere sempre usato per specificare contesti senza nome.
 
-The difference between @code{\new} and @code{\context} is in the
-action taken:
+La differenza tra @code{\new} e @code{\context} sta nell'azione
+presa:
 
 @itemize
 @item
-@code{\new} with or without a name will always create a fresh,
-distinct, context, even if one with the same name already exists:
+@code{\new} con o senza un nome creerà sempre un contesto del tutto
+nuovo e distinto, anche se ne esiste già uno con lo stesso nome:
 
 @lilypond[quote,verbatim]
 \new Staff <<
@@ -406,19 +391,20 @@ distinct, context, even if one with the same name already exists:
 @end lilypond
 
 @item
-@code{\context} with a name specified will create a distinct context
-only if a context of the same type with the same name in the same
-context hierarchy does not already exist.  Otherwise it will be taken
-as a reference to that previously created context, and its music
-expression will be passed to that context for interpretation.
+@code{\context} seguito da un nome creerà un contesto distinto solo se
+non esiste già un contesto dello stesso tipo con lo stesso nome nella
+stessa gerarchia di contesto.  Altrimenti sarà preso come riferimento
+per quel contesto precedentemente creato, e la sua espressione musicale
+verrà passata a quel contesto per la sua interpretazione.
 
-One application of named contexts is in separating the score layout
-from the musical content.  Either of these two forms is valid:
+Una possibile applicazione dei contesti con nome è la separazione di
+formattazione della partitura e contenuto musicale.  Le seguenti due
+forme sono entrambe valide:
 
 @lilypond[quote,verbatim]
 \score {
   <<
-    % score layout
+    % formattazione della partitura
     \new Staff <<
       \new Voice = "one" {
         \voiceOne
@@ -428,7 +414,7 @@ from the musical content.  Either of these two forms is valid:
       }
     >>
 
-    % musical content
+    % contenuto musicale
     \context Voice = "one" {
       \relative {
         c''4 c c c
@@ -446,7 +432,7 @@ from the musical content.  Either of these two forms is valid:
 @lilypond[quote,verbatim]
 \score {
   <<
-    % score layout
+    % formattazione della partitura
     \new Staff <<
       \context Voice = "one" {
         \voiceOne
@@ -456,7 +442,7 @@ from the musical content.  Either of these two forms is valid:
       }
     >>
 
-    % musical content
+    % contenuto musicale
     \context Voice = "one" {
       \relative {
         c''4 c c c
@@ -472,17 +458,17 @@ from the musical content.  Either of these two forms is valid:
 @end lilypond
 
 @noindent
-Alternatively, variables may be employed to similar effect.  See
+Altrimenti si possono usare le variabili per ottenere un risultato simile.  Vedi
 @rlearning{Organizzare i brani con le variabili}.
 
 @item
-@code{\context} with no name will match the first of any previously
-created contexts of the same type in the same context heirarchy,
-even one that has been given a name, and its music expression will be
-passed to that context for interpretation.  This form is rarely
-useful.  However, @code{\context} with no name and no music expression
-is used to set the context in which a Scheme procedure specified with
-@code{\applyContext} is executed:
+@code{\context} senza nome corrisponderà al primo di qualsiasi contesto
+precedentemente creato dello stesso tipo nella stessa gerarchia di contesto,
+anche uno a cui è stato assegnato un nome, e la sua espressione musicale sarà
+passata a quel contesto per la sua interpretazione.  Questa forma è raramente
+utile.  Tuttavia, si usa @code{\context} senza nome e senza espressione
+musicale per impostare il contesto in cui una procedura Scheme specificata con
+@code{\applyContext} viene eseguita:
 
 @example
 \new Staff \relative @{
@@ -497,25 +483,25 @@ is used to set the context in which a Scheme procedure specified with
 
 @end itemize
 
-A context must be named if it is to be referenced later, for example
-when lyrics are associated with music:
+Un contesto deve essere nominato se deve essere citato successivamente, per
+esempio quando il testo vocale è associato alla musica:
 
 @example
-\new Voice = "tenor" @var{music}
+\new Voice = "tenore" @var{musica}
 @dots{}
-\new Lyrics \lyricsto "tenor" @var{lyrics}
+\new Lyrics \lyricsto "tenore" @var{testo}
 @end example
 
 @noindent
-For details of associating lyrics with music see
+Maggiori informazioni sull'associazione del testo vocale alla musica in
 @ref{Automatic syllable durations}.
 
-The properties of all contexts of a particular type can be modified
-in a @code{\layout} block (with a different syntax), see
-@ref{Changing all contexts of the same type}.  This construct also
-provides a means of keeping layout instructions separate from the
-musical content.  If a single context is to be modified, a @code{\with}
-block must be used, see @ref{Changing just one specific context}.
+Le proprietà di tutti i contesti di un certo tipo possono essere modificate
+in un blocco @code{\layout} (con una sintassi diversa), vedi
+@ref{Changing all contexts of the same type}.  Questo costrutto fornisce anche
+un mezzo per mantenere le istruzioni di formattazione separate dal contenuto
+musicale.  Se occorre modificare un solo contesto, bisogna usare un blocco
+@code{\with}, vedi @ref{Changing just one specific context}.
 
 @seealso
 Manuale di apprendimento:
@@ -526,55 +512,54 @@ Guida alla notazione:
 @ref{Automatic syllable durations}.
 
 
-@node Keeping contexts alive
-@subsection Keeping contexts alive
+@node Conservazione di un contesto
+@subsection Conservazione di un contesto
+@translationof Keeping contexts alive
 
 @cindex contexts, keeping alive
 @cindex contexts, lifetime
 
-Contexts are usually terminated at the first musical moment in
-which they have nothing to do.  So @code{Voice} contexts die as
-soon as they contain no events; @code{Staff} contexts die as soon
-as all the @code{Voice} contexts within them contain no events; etc.
-This can cause difficulties if earlier contexts which have died
-have to be referenced, for example, when changing staves with
-@code{\change} commands, associating lyrics with a voice with
-@code{\lyricsto} commands, or when adding further musical events to
-an earlier context.
-
-There is an exception to this general rule: inside of an
-@code{@{@dots{}@}} construct (sequential music), the construct's
-notion of the ``current context'' will descend whenever an element
-of the sequence ends in a subcontext of the previous current
-context.  This avoids spurious creation of implicit contexts in a
-number of situations but means that the first context descended
-into will be kept alive until the end of the expression.
-
-In contrast, the contexts of a @code{<<@dots{}>>} construct's
-(simultaneous music) expression are not carried forth, so
-enclosing a context creating command in an extra pair of
-@code{<<@dots{}>>} will keep the context from persisting through
-all of the enclosing @code{@{@dots{}@}} sequence.
-
-Any context can be kept alive by ensuring it has something to do at
-every musical moment.  @code{Staff} contexts are kept alive by
-ensuring one of their voices is kept alive.  One way of doing this
-is to add spacer rests to a voice in parallel with the real music.
-These need to be added to every @code{Voice} context which needs to
-be kept alive.  If several voices are to be used sporadically it is
-safest to keep them all alive rather than attempting to rely on the
-exceptions mentioned above.
-
-In the following example, both voice A and voice B are kept alive
-in this way for the duration of the piece:
+I contesti vengono solitamente terminati nel primo momento musicale in
+cui non hanno niente da fare.  Quindi i contesti @code{Voice} muoiono
+appena non contengono eventi; i contesti @code{Staff} muoiono appena
+tutti i contesti @code{Voice} al loro interno non contengono eventi; etc.
+Ciò può causare difficoltà se contesti precedenti, che sono stati
+terminati, devono essere richiamati; per esempio, quando si cambia
+il rigo col comando @code{\change}, quando si associa il testo a una
+voce col comando @code{\lyricsto} o quando si aggiungono ulteriori eventi
+musicali a un contesto precedente.
+
+C'è un'eccezione a questa regola generale: all'interno di un costrutto
+@code{@{@dots{}@}} (musica sequenziale), la nozione di «contesto corrente»
+scenderà di livello ogni volta che un elemento della sequenza termina in un
+sottocontesto del precedente contesto corrente.  Ciò evita la falsa creazione di
+contesti impliciti in varie situazioni, ma significa che il primo contesto in
+cui si scende verrà conservato fino alla fine dell'espressione.
+
+Al contrario, i contesti di un construtto @code{<<@dots{}>>} (musica simultanea)
+non sono portati avanti, dunque racchiudendo un comando di creazione di contesto
+in un'ulteriore coppia di @code{<<@dots{}>>} impedirà che il contesto persista
+in tutta la sequenza @code{@{@dots{}@}}.
+
+Un contesto può essere tenuto attivo assicurandosi che abbia qualcosa
+da fare in ogni momento musicale.  I contesti @code{Staff} sono tenuti
+attivi assicurandosi che una delle loro voci sia conservata.  Un modo per
+farlo consiste nell'aggiungere pause spaziatrici a una voce in parallelo
+con la musica vera.  Queste devono essere aggiunte a ogni contesto
+@code{Voice} da tenere attivo.  Se si usano sporadicamente varie voci,
+è più sicuro tenerle attive invece di tentare di affidarsi alle eccezioni
+menzionate sopra.
+
+Nell'esempio seguente, sia la voce A che la voce B sono mantenute attive
+in questo modo per la durata del brano:
 
 @lilypond[quote,verbatim]
 musicA = \relative { d''4 d d d }
 musicB = \relative { g'4 g g g }
 keepVoicesAlive = {
   <<
-    \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
-    \new Voice = "B" { s1*5 }  % Keep Voice "B" alive for 5 bars
+    \new Voice = "A" { s1*5 }  % Tiene la voce "A" attiva per 5 battute
+    \new Voice = "B" { s1*5 }  % Tiene la voce "B" attiva per 5 battute
   >>
 }
 
@@ -600,124 +585,121 @@ music = {
 }
 @end lilypond
 
-@cindex lyrics, aligning with sporadic melody
+@cindex testo vocale, allineamento con una melodia sporadica
 
-The following example shows how a sporadic melody line with lyrics
-might be written using this approach.  In a real situation the
-melody and accompaniment would consist of several different
-sections, of course.
+L'esempio seguente mostra come scrivere una linea melodica sporadica con
+testo vocale usando questo approccio.  Ovviamente, in una situazione reale
+la melodia e l'accompagnamento consisterebbero di varie e diverse sezioni.
 
 @lilypond[quote,verbatim]
-melody = \relative { a'4 a a a }
-accompaniment = \relative { d'4 d d d }
-words = \lyricmode { These words fol -- low the mel -- o -- dy }
+melodia = \relative { a'4 a a a }
+accompagnamento = \relative { d'4 d d d }
+parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia }
 \score {
   <<
-    \new Staff = "music" {
+    \new Staff = "musica" {
       <<
-        \new Voice = "melody" {
+        \new Voice = "melodia" {
           \voiceOne
-          s1*4  % Keep Voice "melody" alive for 4 bars
+          s1*4  % Tiene la voce "melodia" attiva per 4 battute
         }
         {
-          \new Voice = "accompaniment" {
+          \new Voice = "accompagnamento" {
             \voiceTwo
-            \accompaniment
+            \accompagnamento
           }
           <<
-            \context Voice = "melody" { \melody }
-            \context Voice = "accompaniment" { \accompaniment }
+            \context Voice = "melodia" { \melodia }
+            \context Voice = "accompagnamento" { \accompagnamento }
           >>
-          \context Voice = "accompaniment" { \accompaniment }
+          \context Voice = "accompagnamento" { \accompagnamento }
           <<
-            \context Voice = "melody" { \melody }
-            \context Voice = "accompaniment" { \accompaniment }
+            \context Voice = "melodia" { \melodia }
+            \context Voice = "accompagnamento" { \accompagnamento }
           >>
         }
       >>
     }
-    \new Lyrics \with { alignAboveContext = #"music" }
-    \lyricsto "melody" { \words }
+    \new Lyrics \with { alignAboveContext = #"musica" }
+    \lyricsto "melodia" { \parole }
   >>
 }
 @end lilypond
 
-An alternative way, which may be better in many circumstances, is
-to keep the melody line alive by simply including spacer notes to
-line it up correctly with the accompaniment:
+Un modo alternativo, migliore in molte circostanze, è quello di mantenere la
+linea melodica attiva semplicemente includendo le note spaziatrici in modo
+che si allineino correttamente con l'accompagnamento:
 
 @lilypond[quote,verbatim]
-melody = \relative {
-  s1  % skip a bar
+melodia = \relative {
+  s1  % salta una battuta
   a'4 a a a
-  s1  % skip a bar
+  s1  % salta una battuta
   a4 a a a
 }
-accompaniment = \relative {
+accompagnamento = \relative {
   d'4 d d d
   d4 d d d
   d4 d d d
   d4 d d d
 }
-words = \lyricmode { These words fol -- low the mel -- o -- dy }
+parole = \lyricmode { Queste parole seguo -- no la mel -- o -- dia }
 
 \score {
   <<
-    \new Staff = "music" {
+    \new Staff = "musica" {
       <<
-        \new Voice = "melody" {
+        \new Voice = "melodia" {
           \voiceOne
-          \melody
+          \melodia
         }
-        \new Voice = "accompaniment" {
+        \new Voice = "accompagnamento" {
           \voiceTwo
-          \accompaniment
+          \accompagnamento
         }
       >>
     }
-    \new Lyrics \with { alignAboveContext = #"music" }
-    \lyricsto "melody" { \words }
+    \new Lyrics \with { alignAboveContext = #"musica" }
+    \lyricsto "melodia" { \parole }
   >>
 }
 @end lilypond
 
 
-@node Modifying context plug-ins
-@subsection Modifying context plug-ins
+@node Modifica dei componenti aggiuntivi di un contesto
+@subsection Modifica dei componenti aggiuntivi di un contesto
+@translationof Modifying context plug-ins
 
-@c TODO Should this be Modifying engravers or Modifying contexts?
+I contesti della notazione (come @code{Score} e @code{Staff}) non contengono
+solo le proprietà, ma anche dei componenti aggiuntivi chiamati @qq{engraver}
+(incisori) che creano gli elementi della notazione.  Per esempio, il contesto
+@code{Voice} contiene l'incisore @code{Note_heads_engraver} e il contesto
+@code{Staff} contiene l'incisore @code{Key_engraver}.
 
-Notation contexts (like @code{Score} and @code{Staff}) not only store
-properties, they also contain plug-ins called @q{engravers} that create
-notation elements.  For example, the @code{Voice} context contains a
-@code{Note_heads_engraver} and the @code{Staff} context contains a
-@code{Key_engraver}.
-
-For a full a description of each plug-in, see
+Una descrizione completa di ogni componente aggiuntivo si trova in
 @ifhtml
 @rinternals{Engravers and Performers}.
 @end ifhtml
 @ifnothtml
 Guida al funzionamento interno @expansion{} Translation @expansion{} Engravers.
 @end ifnothtml
-Every context described in
+Ogni contesto descritto in
 @ifhtml
 @rinternals{Contexts}
 @end ifhtml
 @ifnothtml
 Guida al funzionamento interno @expansion{} Translation @expansion{} Context.
 @end ifnothtml
-lists the engravers used for that context.
+elenca gli incisori usati per quel contesto.
 
 
-It can be useful to shuffle around these plug-ins.  This is done by
-starting a new context with @code{\new} or @code{\context}, and
-modifying it,
+Può essere utile sperimentare questi componenti aggiuntivi.  Per farlo si
+avvia un nuovo contesto con @code{\new} o @code{\context} e si modifica:
 
 @funindex \with
 
 @example
-\new @var{context} \with @{
+\new @var{contesto} \with @{
   \consists @dots{}
   \consists @dots{}
   \remove @dots{}
@@ -725,14 +707,16 @@ modifying it,
   @emph{etc.}
 @}
 @{
-  @emph{@dots{}music@dots{}}
+  @emph{@dots{}musica@dots{}}
 @}
 @end example
 
 @noindent
-where the @dots{} should be the name of an engraver.  Here is a simple
-example which removes @code{Time_signature_engraver} and
-@code{Clef_engraver} from a @code{Staff} context,
+dove @dots{} deve essere sostituito dal nome dell'incisore.  Il comando
+@code{\remove} toglie l'incisore, mentre @code{\consists} lo mantiene.
+Ecco un semplice esempio che toglie l'incisore dell'indicazione di tempo
+(@code{Time_signature_engraver}) e quello della chiave (@code{Clef_engraver})
+da un contesto @code{Staff}:
 
 @lilypond[quote,verbatim]
 <<
@@ -748,22 +732,23 @@ example which removes @code{Time_signature_engraver} and
 >>
 @end lilypond
 
-In the second staff there are no time signature or clef symbols.  This
-is a rather crude method of making objects disappear since it will affect
-the entire staff.  This method also influences the spacing, which may or
-may not be desirable.  More sophisticated methods of blanking objects
-are shown in @rlearning{Visibilità e colore degli oggetti}.
+Nel secondo rigo non ci sono indicazioni di tempo né simboli della chiave.
+Questo è un metodo piuttosto grezzo per far scomparire gli oggetti, dato
+che ha effetto sull'intero rigo.  Questo metodo influenza anche la spaziatura,
+cosa che potrebbe non essere desiderabile.  Metodi più sofisticati per
+nascondere gli oggetti sono mostrati in @rlearning{Visibilità e colore degli oggetti}.
 
-The next example shows a practical application.  Bar lines and time
-signatures are normally synchronized across the score.  This is done
-by the @code{Timing_translator} and @code{Default_bar_line_engraver}.
-This plug-in keeps an administration of time signature, location
-within the measure, etc.  By moving these engraver from @code{Score} to
-@code{Staff} context, we can have a score where each staff has its own
-time signature.
+L'esempio successivo mostra un'applicazione pratica.  Le stanghette e le
+indicazioni di tempo sono normalmente sincronizzate al livello dell'intera
+partitura.  Ciò viene fatto da @code{Timing_translator} e
+@code{Default_bar_line_engraver}.  Questo componente aggiuntivo gestisce
+le indicazioni di tempo, il posizionamento nella misura, etc.  Spostando
+questi incisori dal contesto @code{Score} al contesto @code{Staff}, possiamo
+ottenere una partitura in cui ogni rigo ha la sua indicazione di tempo.
 
-@cindex polymetric scores
-@cindex time signature, multiple
+@cindex polimetria
+@cindex partiture polimetriche
+@cindex indicazione di tempo, multipla
 
 @lilypond[quote,verbatim]
 \score {
@@ -797,25 +782,25 @@ time signature.
 
 @knownissues
 
-The order in which the engravers are specified is the order in
-which they are called to carry out their processing.  Usually the
-order in which the engravers are specified does not matter, but in
-a few special cases the order is important, for example where one
-engraver writes a property and another reads it, or where one
-engraver creates a grob and another must process it.
+L'ordine in cui vengono specificati gli incisori è l'ordine in cui
+vengono richiamati per compiere la loro elaborazione.  Di solito
+l'ordine in cui gli incisori sono specificati non conta, ma in
+pochi casi speciali l'ordine è importante, per esempio quando un
+incisore scrive una proprietà e un altro la legge o quando un incisore
+crea un grob e un altro lo deve elaborare.
 
-The following orderings are important:
+I seguenti ordini sono importanti:
 
 @itemize
 @item
-the @code{Bar_engraver} must normally be first,
+l'incisore @code{Bar_engraver} deve essere primo di solito,
 
 @item
-the @code{New_fingering_engraver} must come before the
+l'incisore @code{New_fingering_engraver} deve precedere l'incisore
 @code{Script_column_engraver},
 
 @item
-the @code{Timing_translator} must come before the
+@code{Timing_translator} deve precedere l'incisore
 @code{Bar_number_engraver}.
 
 @end itemize
@@ -825,72 +810,73 @@ File installati:
 @file{ly/engraver-init.ly}.
 
 
-@node Changing context default settings
-@subsection Changing context default settings
+@node Modifica delle impostazioni predefinite di un contesto
+@subsection Modifica delle impostazioni predefinite di un contesto
+@translationof Changing context default settings
 
 @cindex default context properties, changing
 @cindex context properties, changing defaults
 
-Context and grob properties can be changed with @code{\set}
-and @code{\override} commands, as described in
-@ref{Modifying properties}.  These commands create music events,
-making the changes take effect at the point in time the music
-is being processed.
+Le proprietà dei contesti e dei grob possono essere modificate con i comandi
+@code{\set} e @code{\override}, come è spiegato in
+@ref{Modifying properties}.  Questi comandi creano eventi musicali,
+rendendo effettivi i cambiamenti nel momento temporale in cui è
+elaborata la musica.
 
-In contrast, this section explains how to change the @emph{default}
-values of context and grob properties at the time the context is
-created.  There are two ways of doing this.  One modifies the default
-values in all contexts of a particular type, the other modifies the
-default values in just one particular instance of a context.
+Questa sezione spiega invece come cambiare i valori @emph{predefiniti}
+delle proprietà dei contesti e dei grob nel momento in cui viene creato
+il contesto.  Esistono due modi per farlo.  Uno modifica i valori
+predefiniti in tutti i contesti di un certo tipo, l'altro modifica i
+valori predefiniti soltanto in una certa istanza di un contesto.
 
 @menu
-* Changing all contexts of the same type::
-* Changing just one specific context::
-* Order of precedence::
+* Modifica di tutti i contesti dello stesso tipo::
+* Modifica di un solo contesto specifico::
+* Ordine di precedenza::
 @end menu
 
-@node Changing all contexts of the same type
-@unnumberedsubsubsec Changing all contexts of the same type
+@node Modifica di tutti i contesti dello stesso tipo
+@unnumberedsubsubsec Modifica di tutti i contesti dello stesso tipo
+@translationof Changing all contexts of the same type
 
-@cindex \context in \layout block
+@cindex \context nel blocco \layout
 @funindex \context
 @funindex \layout
 
-The default context settings which are to be used for typesetting in
-@code{Score}, @code{Staff}, @code{Voice} and other contexts may be
-specified in a @code{\context} block within any @code{\layout}
-block.
+Le impostazioni di contesto predefinite da usare per l'output grafico nei
+contesti @code{Score}, @code{Staff}, @code{Voice} e in altri contesti possono
+essere specificate in un blocco @code{\context} compreso in un qualsiasi
+blocco @code{\layout}.
 
-Settings for Midi output as opposed to typesetting will have to be
-separately specified in @code{\midi} blocks (see @ref{Output
-definitions - blueprints for contexts}).
+Le impostazioni per l'output Midi invece devono essere specificate separatamente
+in blocchi @code{\midi} (vedi @ref{Output definitions - blueprints for contexts}).
 
-The @code{\layout} block should be placed within the @code{\score}
-block to which it is to apply, after the music.
+Il blocco @code{\layout} deve trovarsi all'interno del blocco @code{\score}
+al quale si vuole applicare, dopo la musica.
 
 @example
 \layout @{
   \context @{
     \Voice
-    [context settings for all Voice contexts]
+    [impostazioni di contesto per tutti i contesti Voice]
   @}
   \context @{
     \Staff
-    [context settings for all Staff contexts]
+    [impostazioni di contesto per tutti i contesti Staff]
   @}
 @}
 @end example
 
-The following types of settings may be specified:
+Si possono specificare i seguenti tipi di impostazioni:
 
 @itemize
 @item
-An @code{\override} command, but with the context name omitted
+Un comando @code{\override}, ma col nome del contesto omesso
 
 @lilypond[quote,verbatim]
 \score {
   \relative {
-    a'4^"Thicker stems" a a a
+    a'4^"Gambi più spessi" a a a
     a4 a a\ff a
   }
   \layout {
@@ -903,12 +889,12 @@ An @code{\override} command, but with the context name omitted
 @end lilypond
 
 @item
-Directly setting a context property
+Impostando direttamente una proprietà di contesto
 
 @lilypond[quote,verbatim]
 \score {
   \relative {
-    a'4^"Smaller font" a a a
+    a'4^"Tipo di carattere più piccolo" a a a
     a4 a a\ff a
   }
   \layout {
@@ -921,13 +907,13 @@ Directly setting a context property
 @end lilypond
 
 @item
-A predefined command such as @code{\dynamicUp} or a music
-expression like @code{\accidentalStyle dodecaphonic}
+Un comando predefinito come @code{\dynamicUp} o un'espressione
+musicale come @code{\accidentalStyle dodecaphonic}
 
 @lilypond[quote,verbatim]
 \score {
   \relative {
-    a'4^"Dynamics above" a a a
+    a'4^"Dinamiche sopra" a a a
     a4 a a\ff a
   }
   \layout {
@@ -944,8 +930,8 @@ expression like @code{\accidentalStyle dodecaphonic}
 @end lilypond
 
 @item
-A user-defined variable containing a @code{\with} block; for details
-of the @code{\with} block see
+Una variabile definita dall'utente contenente un blocco @code{\with}; il blocco
+@code{\with} è spiegato approfonditamente in
 @ref{Changing just one specific context}.
 
 @lilypond[quote,verbatim]
@@ -956,7 +942,7 @@ StaffDefaults = \with {
 \score {
   \new Staff {
     \relative {
-      a'4^"Smaller font" a a a
+      a'4^"Tipo di carattere più piccolo" a a a
       a4 a a a
     }
   }
@@ -971,20 +957,20 @@ StaffDefaults = \with {
 
 @end itemize
 
-Property-setting commands can be placed in a @code{\layout} block
-without being enclosed in a @code{\context} block.  Such settings
-are equivalent to including the same property-setting commands at
-the start of every context of the type specified.  If no context
-is specified @emph{every} bottom-level context is affected, see
-@ref{Bottom-level contexts - voices}.  The syntax of a
-property-setting command in a @code{\layout} block is the same as
-the same command written in the music stream.
+I comandi che impostano una proprietà possono essere posti in un blocco
+@code{\layout} senza doverli racchiudere in un blocco @code{\context}.  Così
+facendo si ottiene lo stesso risultato che si otterrebbe se si includessero
+gli stessi comandi all'inizio di ogni contesto del tipo specificato.  Se non
+è specificato alcun contesto, avranno effetto su @emph{qualsiasi} contesto
+di basso livello, vedi @ref{Bottom-level contexts - voices}.  La sintassi di
+un comando di impostazione della proprietà in un blocco @code{\layout} è
+identico a quello che si userebbe in mezzo alle note.
 
 @lilypond[quote,verbatim]
 \score {
   \new Staff {
     \relative {
-      a'4^"Smaller font" a a a
+      a'4^"Tipo di carattere più piccolo" a a a
       a4 a a a
     }
   }
@@ -997,35 +983,37 @@ the same command written in the music stream.
 @end lilypond
 
 
-@node Changing just one specific context
-@unnumberedsubsubsec Changing just one specific context
+@node Modifica di un solo contesto specifico
+@unnumberedsubsubsec Modifica di un solo contesto specifico
+@translationof Changing just one specific context
 
 @cindex \with
 @funindex \with
 
-The context properties of just one specific context instance can be
-changed in a @code{\with} block.  All other context instances of the
-same type retain the default settings built into LilyPond and modified
-by any @code{\layout} block within scope.  The @code{\with} block
-must be placed immediately after the @code{\new} @var{context-type}
-command:
+Le proprietà di contesto di una sola istanza di un contesto specifico possono
+essere cambiate in un blocco @code{\with}.  Tutte le altre istanze di contesto
+dello stesso tipo manterranno le impostazioni predefinite di LilyPond e saranno
+modificate da qualsiasi blocco @code{\layout} che le riguarda.  Il blocco
+@code{\with} deve essere posto subito dopo il
+comando @code{\new} @var{tipo-contesto}:
 
 @example
-\new Staff \with @{ [context settings for this context instance only] @}
+\new Staff \with @{ [impostazioni di contesto per questa istanza di contesto soltanto] @}
 @{
   @dots{}
 @}
 @end example
 
-Since such a @q{context modification} is specified inside of
-music, it will affect @emph{all} outputs (typesetting @emph{and}
-Midi) as opposed to changes within an output definition.
+Dato che questa @q{modifca di contesto} è specificata all'interno della
+musica, avrà effetto su @emph{tutti} gli output (quello grafico @emph{e} il
+Midi), diversamente da quanto avviene per le modifiche inserite in una
+definizione di output.
 
-The following types of settings may be specified:
+Si possono specificare i seguenti tipi di impostazioni:
 
 @itemize
 @item
-An @code{\override} command, but with the context name omitted
+Un comando @code{\override}, ma col nome di contesto omesso
 
 @lilypond[quote,verbatim]
 \score {
@@ -1033,7 +1021,7 @@ An @code{\override} command, but with the context name omitted
     \new Voice \with { \override Stem.thickness = #4.0 }
     {
       \relative {
-        a'4^"Thick stems" a a a
+        a'4^"Gambi spessi" a a a
         a4 a a a
       }
     }
@@ -1042,21 +1030,21 @@ An @code{\override} command, but with the context name omitted
 @end lilypond
 
 @item
-Directly setting a context property
+Impostando direttamente una proprietà di contesto
 
 @lilypond[quote,verbatim]
 \score {
   <<
     \new Staff {
       \relative {
-        a'4^"Default font" a a a
+        a'4^"Tipo di carattere predefinito" a a a
         a4 a a a
       }
     }
     \new Staff \with { fontSize = #-4 }
     {
       \relative {
-        a'4^"Smaller font" a a a
+        a'4^"Tipo di carattere più piccolo" a a a
         a4 a a a
       }
     }
@@ -1065,7 +1053,7 @@ Directly setting a context property
 @end lilypond
 
 @item
-A predefined command such as @code{\dynamicUp}
+Un comando predefinito come @code{\dynamicUp}
 
 @lilypond[quote,verbatim]
 \score {
@@ -1073,7 +1061,7 @@ A predefined command such as @code{\dynamicUp}
     \new Staff {
       \new Voice {
         \relative {
-          a'4^"Dynamics below" a a a
+          a'4^"Dinamiche sotto" a a a
           a4 a a\ff a
         }
       }
@@ -1083,7 +1071,7 @@ A predefined command such as @code{\dynamicUp}
       \new Voice \with { \dynamicUp }
       {
         \relative {
-          a'4^"Dynamics above" a a a
+          a'4^"Dinamiche sopra" a a a
           a4 a a\ff a
         }
       }
@@ -1094,28 +1082,28 @@ A predefined command such as @code{\dynamicUp}
 
 @end itemize
 
-@node Order of precedence
-@unnumberedsubsubsec Order of precedence
+@node Ordine di precedenza
+@unnumberedsubsubsec Ordine di precedenza
+@translationof Order of precedence
 
-The value of a property which applies at a particular time is
-determined as follows:
+Il valore di una proprietà da applicare in un certo momento viene determinato
+nel modo seguente:
 
 @itemize
 @item
-if an @code{\override} or @code{\set} command in the input stream is
-in effect that value is used,
+se un comando @code{\override} o @code{\set} nel flusso dell'input (le note) è
+attivo viene usato quel valore,
 
 @item
-otherwise the default value taken from a @code{\with} statement
-on the context initiation statement is used,
+altrimenti viene usato il valore predefinito preso da una dichiarazione
+@code{\with} nella dichiarazione di iniziazione del contesto,
 
 @item
-otherwise the default value taken from the most recent appropriate
-@code{\context} block in the @code{\layout} or @code{\midi} blocks
-is used,
+altrimenti viene usato il valore predefinito preso dal blocco @code{\context}
+appropriato più recente nei blocchi @code{\layout} o @code{\midi},
 
 @item
-otherwise the LilyPond built-in default is used.
+altrimenti viene usato il valore predefinito in LilyPond.
 @end itemize
 
 @seealso
@@ -1127,14 +1115,15 @@ Guida alla notazione:
 @ref{Bottom-level contexts - voices},
 @ref{The set command},
 @ref{The override command},
-@ref{The layout block,,The @code{@bs{}layout} block}.
+@ref{The layout block,,Il blocco @code{@bs{}layout}}.
 
 
-@node Defining new contexts
-@subsection Defining new contexts
+@node Definizione di nuovi contesti
+@subsection Definizione di nuovi contesti
+@translationof Defining new contexts
 
-@cindex contexts, defining new
-@cindex engravers, including in contexts
+@cindex contesti, definire nuovi
+@cindex incisori, includere nei contesti
 
 @funindex \alias
 @funindex alias
@@ -1149,14 +1138,14 @@ Guida alla notazione:
 @funindex \denies
 @funindex denies
 
-Specific contexts, like @code{Staff} and @code{Voice}, are made from
-simple building blocks.  It is possible to create new types of
-contexts with different combinations of engraver plug-ins.
+Contesti specifici, come @code{Staff} e @code{Voice}, sono creati a partire
+da semplici mattoncini.  È possibile creare nuovi tipi di contesto con
+diverse combinazioni di incisori.
 
-The next example shows how to build a different type of
-@code{Voice} context from scratch.  It will be similar to
-@code{Voice}, but only prints centered slash note heads.  It can be used
-to indicate improvisation in jazz pieces,
+Il prossimo esempio mostra come costruire un diverso tipo di contesto
+@code{Voice} da zero.  Sarà simile a @code{Voice}, ma stamperà soltanto
+teste di nota a forma di barra posizionate al centro.  Può essere usato
+per indicare l'improvvisazione nei brani jazz:
 
 @lilypond[quote,ragged-right]
 \layout { \context {
@@ -1183,8 +1172,8 @@ to indicate improvisation in jazz pieces,
 @end lilypond
 
 
-These settings are defined within a @code{\context} block inside a
-@code{\layout} block,
+Queste impostazioni sono definite in un blocco @code{\context} compreso in
+un blocco @code{\layout}:
 
 @example
 \layout @{
@@ -1194,27 +1183,26 @@ These settings are defined within a @code{\context} block inside a
 @}
 @end example
 
-In the following discussion, the example input shown should go in place
-of the @dots{} in the previous fragment.
+L'input di esempio che segue sostituisce i @dots{} del frammento precedente.
 
-First it is necessary to define a name for the new context:
+Per prima cosa occorre definire un nome per il nuovo contesto:
 
 @example
 \name ImproVoice
 @end example
 
-Since it is similar to the @code{Voice} context, we want commands that
-work in (existing) @code{Voice} contexts to continue working.  This is
-achieved by giving the new context an alias of @code{Voice},
+Essendo simile al contesto @code{Voice}, ci servono comandi che funzionano
+in contesti @code{Voice} esistenti per far sì che continuino a funzionare.  Per
+farlo si assegna al nuovo contesto un alias di @code{Voice},
 
 @example
 \alias Voice
 @end example
 
-The context will print notes and instructive texts, so we need to add
-the engravers which provide this functionality, plus the engraver which
-groups notes, stems and rests which occur at the same musical moment
-into columns,
+Il contesto stamperà note e testi di spiegazione, dunque dobbiamo
+aggiungere gli incisori che forniscono queste funzionalità, più
+l'incisore che raggruppa in colonne le note, i gambi e le pause che
+si trovano nello stesso momento musicale:
 
 @example
 \consists "Note_heads_engraver"
@@ -1222,40 +1210,40 @@ into columns,
 \consists "Rhythmic_column_engraver"
 @end example
 
-The note heads should all be placed on the center line,
+Le teste di nota devono essere poste tutte sulla linea centrale:
 
 @example
 \consists "Pitch_squash_engraver"
 squashedPosition = #0
 @end example
 
-The @code{Pitch_squash_engraver} modifies note heads (created
-by the @code{Note_heads_engraver}) and sets their vertical
-position to the value of @code{squashedPosition}, in this
-case@tie{}@code{0}, the center line.
+L'incisore @code{Pitch_squash_engraver} modifica le teste di nota (create
+dall'incisore @code{Note_heads_engraver}) e imposta la loro posizione
+verticale sul valore di @code{squashedPosition}, in questo
+caso@tie{}@code{0}, la linea centrale.
 
-The notes look like a slash, and have no stem,
+Le note appaiono come una barra e non hanno gambi:
 
 @example
 \override NoteHead.style = #'slash
 \hide Stem
 @end example
 
-All these plug-ins have to communicate under the control of the
-context.  The mechanisms with which contexts communicate are
-established by declaring the context @code{\type}.  Within a
-@code{\layout} block, most contexts will be of type
-@code{Engraver_group}.  Some special contexts and contexts in
-@code{\midi} blocks use other context types.  Copying and
-modifying an existing context definition will also fill in the
-type.  Since this example creates a definition from scratch, it
-needs to be specified explicitly.
+Tutti questi componenti aggiuntivi devono comunicare sotto il controllo
+del contesto.  I meccanismi con cui i contesti comunicano sono stabiliti
+dichiarando il tipo di contesto con @code{\type}.  In un blocco
+@code{\layout}, la maggior parte dei contesti sarà del tipo
+@code{Engraver_group}.  Alcuni contesti speciali e i contesti nei
+blocchi @code{\midi} usano altri tipi di contesto.  Copiare e modificare
+una definizione di contesto esistente comprenderà anche la definizione
+del tipo.  Poiché questo esempio crea una definizione da zero, deve essere
+specificato in modo esplicito.
 
 @example
 \type "Engraver_group"
 @end example
 
-Put together, we get
+Mettendo tutte queste parti insieme otteniamo:
 
 @example
 \context @{
@@ -1273,10 +1261,10 @@ Put together, we get
 @end example
 
 @funindex \accepts
-Contexts form hierarchies.  We want to place the @code{ImproVoice}
-context within the @code{Staff} context, just like normal @code{Voice}
-contexts.  Therefore, we modify the @code{Staff} definition with the
-@code{\accepts} command,
+I contesti formano gerarchie.  Vogliamo posizionare il contesto @code{ImproVoice}
+all'interno del contesto @code{Staff}, proprio come i normali contesti
+@code{Voice}.  Cambiamo quindi la definizione di @code{Staff} col comando
+@code{\accepts},
 
 @example
 \context @{
@@ -1286,20 +1274,20 @@ contexts.  Therefore, we modify the @code{Staff} definition with the
 @end example
 
 @funindex \inherit-acceptability
-Often when reusing an existing context definition, the resulting
-context can be used anywhere where the original context would have
-been useful.
+Spesso quando si riutilizza una definizione di contesto esistente, il contesto
+risultante può essere usato in qualsiasi situazione in cui il contesto originale
+sarebbe stato utile.
 
 @example
 \layout @{
   @dots{}
-  \inherit-acceptability @var{to} @var{from}
+  \inherit-acceptability @var{a} @var{da}
 @}
 @end example
 
 @noindent
-will arrange to have contexts of type @var{to} accepted by all
-contexts also accepting @var{from}.  For example, using
+farà sì che i contesti del tipo @var{a} siano accettati da tutti i
+contesti che accettano anche @var{da}.  Per esempio, usando
 
 @example
 \layout @{
@@ -1309,15 +1297,14 @@ contexts also accepting @var{from}.  For example, using
 @end example
 
 @noindent
-will add an @code{\accepts} for @code{ImproVoice} to both
-@code{Staff} and @code{RhythmicStaff} definitions.
+verrà aggiunto un @code{\accepts} per @code{ImproVoice} a entrambe le
+definizioni di @code{Staff} e @code{RhythmicStaff}.
 
 @funindex \denies
-The opposite of @code{\accepts} is @code{\denies},
-which is sometimes needed when reusing existing context definitions.
+L'opposto di @code{\accepts} è @code{\denies},
+che è talvolta necessario se si riusano definizioni di contesto esistenti.
 
-Arranging the required pieces into a @code{\layout} block leaves
-us with
+Sistemando i pezzi necessari in un blocco @code{\layout} ci porta a:
 
 @example
 \layout @{
@@ -1329,7 +1316,7 @@ us with
 @}
 @end example
 
-Then the output at the start of this subsection can be entered as
+Quindi l'output all'inizio di questa parte può essere inserito così:
 
 @example
 \relative @{
@@ -1343,9 +1330,9 @@ Then the output at the start of this subsection can be entered as
 @}
 @end example
 
-To complete this example, changes affecting the context hierarchy
-should be repeated in a @code{\midi} block so that Midi output
-depends on the same context relations.
+Per completare questo esempio, le modifiche che alterano la gerarchia dei
+contesti devono essere ripetute in un blocco @code{\midi} per far sì che
+l'output Midi dipenda dalle stesse relazioni di contesto.
 
 @seealso
 
@@ -1356,30 +1343,30 @@ Guida al funzionamento interno:
 @rinternals{Pitch_squash_engraver}.
 
 
-@node Context layout order
-@subsection Context layout order
+@node Ordine di disposizione dei contesti
+@subsection Ordine di disposizione dei contesti
+@translationof Context layout order
 
-@cindex contexts, layout order
+@cindex contesti, ordine di disposizione
 @funindex \accepts
 @funindex \denies
 
-Contexts are normally positioned in a system from top to bottom
-in the order in which they are encountered in the input file.  When
-contexts are nested, the outer context will include inner nested
-contexts as specified in the input file, provided the inner contexts
-are included in the outer context's @qq{accepts} list.  Nested
-contexts which are not included in the outer context's @qq{accepts}
-list will be repositioned below the outer context rather than nested
-within it.
+Normalmente i contesti in un sistema sono posizionati dall'alto verso il
+basso nell'ordine in cui sono incontrati nel file di input.  Quando i
+contesti sono annidati, il contesto più esterno includerà i contesti
+annidati al suo interno come specificato nel file di input solo se i
+contesti interni sono inclusi nell'elenco @qq{accepts} del contesto
+più esterno; altrimenti saranno riposizionati sotto il contesto più
+esterno invece di essere annidati al suo interno.
 
-The @qq{accepts} list of a context can be changed with the
-@code{\accepts} or @code{\denies} commands.  @code{\accepts} adds a
-context to the @qq{accepts} list and @code{\denies} removes a context
-from the list.
+L'elenco @qq{accepts} di un contesto può essere modificato coi comandi
+@code{\accepts} o @code{\denies}.  @code{\accepts} aggiunge un contesto
+all'elenco @qq{accepts} mentre @code{\denies} lo rimuove dall'elenco.
 
-For example, a square-braced staff group is not usually found within a
-curved-braced staff with connecting staff bars, and a @code{GrandStaff}
-does not accept a @code{StaffGroup} inside it by default.
+Per esempio, un gruppo di righi racchiusi da una parentesi quadra non si
+trova solitamente all'interno di un gruppo di righi con stanghette
+connesse e racchiusi da una graffa, e @code{GrandStaff} non accetta al suo
+interno @code{StaffGroup} per impostazione predefinita.
 
 @lilypond[verbatim,quote]
 \score {
@@ -1388,13 +1375,13 @@ does not accept a @code{StaffGroup} inside it by default.
       \new Staff { c'1 }
       \new Staff { d'1 }
     >>
-    \new Staff { \set Staff.instrumentName = bottom f'1 }
+    \new Staff { \set Staff.instrumentName = ultimo f'1 }
   >>
 }
 @end lilypond
 
-However, by using the @code{\accepts} command, @code{StaffGroup} can be
-added to the @code{GrandStaff} context:
+Tuttavia col comando @code{\accepts} si può aggiungere @code{StaffGroup}
+al contesto @code{GrandStaff}:
 
 @lilypond[verbatim,quote]
 \score {
@@ -1403,7 +1390,7 @@ added to the @code{GrandStaff} context:
       \new Staff { c'1 }
       \new Staff { d'1 }
     >>
-    \new Staff { \set Staff.instrumentName = bottom f'1 }
+    \new Staff { \set Staff.instrumentName = ultimo f'1 }
   >>
   \layout {
     \context {
@@ -1414,58 +1401,58 @@ added to the @code{GrandStaff} context:
 }
 @end lilypond
 
-@code{\denies} is mainly used when a new context is being based on
-another, but the required nesting differs.  For example, the
-@code{VaticanaStaff} context is based on the @code{Staff} context, but
-with the @code{VaticanaVoice} context substituted for the @code{Voice}
-context in the @qq{accepts} list.
+@code{\denies} si usa soprattutto quando un nuovo contesto è basato su
+un altro, ma l'annidamento richiesto differisce.  Per esempio, il contesto
+@code{VaticanaStaff} è basato sul contesto @code{Staff}, ma col contesto
+@code{VaticanaVoice} che sostituisce il contesto @code{Voice} nell'elenco
+@qq{accepts}.
 
-@cindex contexts, implicit
-@cindex implicit contexts
+@cindex contesti impliciti
 @funindex \defaultchild
 
-Note that a context will be silently created implicitly if a
-command is encountered when there is no suitable context available
-to contain it.
+Nota bene: un contesto verrà creato implicitamente e senza avviso se
+si incontra un comando quando non c'è un contesto adatto disponibile
+per contenerlo.
 
-Within a context definition, the type of subcontext to be
-implicitly created is specified using @code{\defaultchild}.  A
-number of music events require a @samp{Bottom} context: when such
-an event is encountered, subcontexts are created recursively until
-reaching a context with no @samp{defaultchild} setting.
+Nella definizione di un contesto, il tipo di sottocontesto da creare
+implicitamente viene specificato con @code{\defaultchild}.  Vari eventi
+musicali richiedono un contesto @qq{di base}: quando si incontra tale
+evento, vengono creati ricorsivamente i sottocontesti finché non si
+raggiunge un contesto privo di impostazione @samp{defaultchild}.
 
-Implicit context creation can at times give rise to unexpected new
-staves or scores.  Using @code{\new} to create contexts explicitly
-avoids those problems.
+La creazione implicita di contesti può talvolta causare nuovi righi o nuove
+partiture non attesi.  Per evitare questi problemi è consigliabile usare
+@code{\new} per creare i contesti esplicitamente.
 
 @cindex alignAboveContext
 @cindex alignBelowContext
 @funindex alignAboveContext
 @funindex alignBelowContext
 
-Sometimes a context is required to exist for just a brief period, a
-good example being the staff context for an ossia.  This is usually
-achieved by introducing the context definition at the appropriate
-place in parallel with corresponding section of the main music.
-By default, the temporary context will be placed below all the
-existing contexts.  To reposition it above the context called
-@qq{main}, it should be defined like this:
+Talvolta un contesto deve esistere solo per un breve periodo, come nel
+caso esemplare di un contesto rigo per un ossia.  Per ottenere ciò, di
+solito si introduce la definizione di contesto nel punto appropriato
+in parallelo con la sezione corrispondente della musica principale.
+Per impostazione predefinita, il contesto temporaneo verrà posizionato
+sotto tutti i contesti esistenti.  Per riposizionarlo sopra il contesto
+chiamato @qq{principale}, dovrebbe essere definito in questo modo:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"main" @} }
+@code{\new Staff \with @{ alignAboveContext = #"principale" @} }
 @end example
 
-A similar situation arises when positioning a temporary lyrics
-context within a multi-staved layout such as a @code{ChoirStaff},
-for example, when adding a second verse to a repeated section.
-By default the temporary lyrics context will be placed beneath the
-lower staves.  By defining the temporary lyrics context with
-@code{alignBelowContext} it can be positioned correctly beneath
-the (named) lyrics context containing the first verse.
+Una situazione simile si pone quando si posiziona un contesto temporaneo
+per il testo vocale all'interno di una disposizione multirigo come
+@code{ChoirStaff}; per esempio, quando si aggiunge una seconda strofa a
+una sezione ripetuta.  Per impostazione predefinita, il contesto temporaneo
+per il testo vocale verrà posizionato sotto i righi più bassi.  Definendo il
+contesto temporaneo per il testo vocale con @code{alignBelowContext}, questo
+può essere posizionato correttamente sotto i contesti della voce (con nome)
+che contengono la prima strofa.
 
-Examples showing this repositioning of temporary contexts can be
-found elsewhere --- see @rlearning{Annidare le espressioni musicali},
-@ref{Modifying single staves} and @ref{Techniques specific to lyrics}.
+Esempi che mostrano questo riposizionamento di contesti temporanei possono
+essere trovati altrove --- vedi @rlearning{Annidare le espressioni musicali},
+@ref{Modifying single staves} e @ref{Techniques specific to lyrics}.
 
 @seealso
 Manuale di apprendimento:
@@ -1475,8 +1462,8 @@ Guida alla notazione:
 @ref{Modifying single staves},
 @ref{Techniques specific to lyrics}.
 
-Application Usage:
-@rprogram{An extra staff appears}.
+Utilizzo:
+@rprogram{Appare un rigo in più}.
 
 File installati:
 @file{ly/engraver-init.ly}.
@@ -1487,91 +1474,54 @@ File installati:
 @translationof Explaining the Internals Reference
 
 @menu
-* Navigating the program reference::
-* Layout interfaces::
-* Determining the grob property::
-* Naming conventions::
+* Navigazione nella guida al programma::
+* Interfacce di formattazione::
+* Determinazione della proprietà del grob::
+* Convenzioni sui nomi::
 @end menu
 
-@node Navigating the program reference
-@subsection Navigating the program reference
+@node Navigazione nella guida al programma
+@subsection Navigazione nella guida al programma
+@translationof Navigating the program reference
 
 @c TODO remove this (it's in the LM)
 @c Replace with more factual directions
 
-Suppose we want to move the fingering indication in the fragment
-below:
+Supponiamo di voler togliere l'indicazione di diteggiatura nel seguente
+frammento:
 
 @lilypond[quote,fragment,verbatim]
 c''-2
 @end lilypond
 
-If you visit the documentation on fingering instructions (in
-@ref{Fingering instructions}), you will notice:
+Consultando la documentazione sulle istruzioni di diteggiatura (in
+@ref{Fingering instructions}), si nota:
 
 @quotation
-@strong{See also}
+@strong{Vedi anche}
 
 Guida al funzionamento interno: @rinternals{Fingering}.
 
 @end quotation
 
-
-@c  outdated info; probably will delete.
-@ignore
-This fragment points to two parts of the program reference: a page
-on @code{FingeringEvent} and one on @code{Fingering}.
-
-The page on @code{FingeringEvent} describes the properties of the music
-expression for the input @w{@code{-2}}.  The page contains many links
-forward.  For example, it says
-
-@quotation
-Accepted by: @rinternals{Fingering_engraver},
-@end quotation
-
-@noindent
-That link brings us to the documentation for the Engraver, the
-plug-in, which says
-
-@quotation
-This engraver creates the following layout objects: @rinternals{Fingering}.
-@end quotation
-
-In other words, once the @code{FingeringEvent}s are interpreted, the
-@code{Fingering_engraver} plug-in will process them.
-@end ignore
-
-@ignore
-@c  I can't figure out what this is supposed to mean.  -gp
-
-The @code{Fingering_engraver} is also listed to create
-@rinternals{Fingering} objects,
-
-@c  old info?  it doesn't make any sense to me with our current docs.
-This is also the
-second bit of information listed under @b{See also} in the Notation
-manual.
-@end ignore
-
 @ifnothtml
-The programmer's reference is available as an HTML document.  It is
-highly recommended that you read it in HTML form, either online or
-by downloading the HTML documentation.  This section will be much more
-difficult to understand if you are using the
-PDF manual.
+La guida del programmatore è disponibile come documento HTML.  È caldamente
+consigliata la lettura della versione HTML, accessibile online o in locale
+scaricando la documentazione HTML.  Questa sezione sarà molto più difficile da
+comprendere se si usa il manuale PDF.
 @end ifnothtml
 
-Follow the link to @rinternals{Fingering}.  At the top of the
-page, you will see
+Seguire il collegamento a @rinternals{Fingering}.  In cima alla pagina
+si vede
 
+@c Non tradurre le parti citate del manuale Internals Reference, che non è tradotto.
 @quotation
 Fingering objects are created by: @rinternals{Fingering_engraver} and
 @rinternals{New_fingering_engraver}.
 @end quotation
 
-By following related links inside the program reference, we can follow the
-flow of information within the program:
+Seguendo i collegamenti correlati nella guida del programma, possiamo seguire
+il flusso di informazione del programma:
 
 @itemize
 
@@ -1587,40 +1537,42 @@ Music event type @code{fingering-event} is in Music expressions named
 @rinternals{FingeringEvent}
 @end itemize
 
-This path goes against the flow of information in the program: it
-starts from the output, and ends at the input event.  You could
-also start at an input event, and read with the flow of
-information, eventually ending up at the output object(s).
+Questo percorso va in direzione contraria al flusso dell'informazione nel
+programma: parte dall'output e termina nell'evento di input.  Si può anche
+partire da un evento di input e leggere seguendo il flusso di informazione
+arrivando infine all'oggetto di output.
 
-The program reference can also be browsed like a normal document.  It
-contains chapters on
+La guida al programma può anche essere sfogliata come un normale
+documento.  Contiene capitoli su
 @ifhtml
 @rinternals{Music definitions},
 @end ifhtml
 @ifnothtml
 @code{Music definitions}
 @end ifnothtml
-on @rinternals{Translation}, and the @rinternals{Backend}.  Every
-chapter lists all the definitions used and all properties that may be
-tuned.
+su @rinternals{Translation}, e sul @rinternals{Backend}.  Ogni capitolo
+elenca tutte le definizioni usate e tutte le proprietà che possono
+essere ritoccate.
 
 
-@node Layout interfaces
-@subsection Layout interfaces
+@node Interfacce di formattazione
+@subsection Interfacce di formattazione
+@translationof Layout interfaces
 
 @cindex interface, layout
 @cindex layout interface
 @cindex grob
 
-The HTML page that we found in the previous section describes the
-layout object called @rinternals{Fingering}.  Such an object is a
-symbol within the score.  It has properties that store numbers (like
-thicknesses and directions), but also pointers to related objects.  A
-layout object is also called a @emph{Grob}, which is short for Graphical
-Object.  For more details about Grobs, see @rinternals{grob-interface}.
+La pagina HTML che abbiamo incontrato nella sezione precedente descrive
+l'oggetto di formattazione chiamato @rinternals{Fingering}.  Tale oggetto
+è un simbolo interno alla partitura.  Ha delle proprietà che contengono
+numeri (come gli spessori e le direzioni), ma anche collegamenti a oggetti
+correlati.  Un oggetto di formattazione viene chiamato anche @emph{Grob},
+che è un diminutivo di Graphical Object (oggetto grafico).  Maggiori dettagli
+sui Grob si trovano in @rinternals{grob-interface}.
 
-The page for @code{Fingering} lists the definitions for the
-@code{Fingering} object.  For example, the page says
+La pagina relativa al grob @code{Fingering} elenca le definizioni per l'oggetto
+@code{Fingering}.  Per esempio, la pagina dice
 
 @quotation
 @code{padding} (dimension, in staff space):
@@ -1629,39 +1581,42 @@ The page for @code{Fingering} lists the definitions for the
 @end quotation
 
 @noindent
-which means that the number will be kept at a distance of at least 0.5
-of the note head.
+che significa che il numero verrà tenuto a una distanza di almento 0.5 spazi
+rigo dalla testa della nota.
 
-
-Each layout object may have several functions as a notational or
-typographical element.  For example, the Fingering object
-has the following aspects
+Ogni oggetto di formattazione può avere varie funzioni come elemento
+della notazione o tipografico.  Per esempio, l'oggetto Fingering ha
+i seguenti aspetti
 
 @itemize
 @item
-Its size is independent of the horizontal spacing, unlike slurs or beams.
+La sua dimensione è indipendente dalla spaziatura orizzontale, diversamente
+da legature di portamento o travature.
 
 @item
-It is a piece of text.  Granted, it is usually a very short text.
+È un frammento testuale, solitamente molto breve.
 
 @item
-That piece of text is typeset with a font, unlike slurs or beams.
+Questo frammento di testo viene rappresentato con un tipo di carattere,
+diversamente da legature di portamento o travature.
 
 @item
-Horizontally, the center of the symbol should be aligned to the
-center of the note head.
+Orizzontalmente, il centro del simbolo deve essere allineato al centro della
+testa della nota.
 
 @item
-Vertically, the symbol is placed next to the note and the staff.
+Verticalmente, il simbolo viene posto accanto alla nota e sul rigo.
 
 @item
-The vertical position is also coordinated with other superscript
-and subscript symbols.
+La posizione verticale viene coordinata anche con altri simboli di apici
+o pedici.
 @end itemize
 
-Each of these aspects is captured in so-called @emph{interface}s,
-which are listed on the @rinternals{Fingering} page at the bottom
+Ognuno di questi aspetti viene registrato nelle cosiddette interfacce
+(@emph{interface}), che sono elencate in fondo alla
+pagina @rinternals{Fingering}:
 
+@c non tradurre
 @quotation
 This object supports the following interfaces:
 @rinternals{item-interface},
@@ -1671,15 +1626,15 @@ This object supports the following interfaces:
 @rinternals{finger-interface}, and @rinternals{grob-interface}.
 @end quotation
 
-Clicking any of the links will take you to the page of the respective
-object interface.  Each interface has a number of properties.  Some of
-them are not user-serviceable (@q{Internal properties}), but others
-can be modified.
+Facendo clic su uno di questo collegamenti si arriva alla pagina dell'interfaccia
+del rispettivo oggetto.  Ogni interfaccia ha una serie di proprietà.  Alcune
+non sono a disposizione dell'utente (@q{Internal properties}), ma altre
+possono essere modificate.
 
-We have been talking of @emph{the} @code{Fingering} object, but actually it
-does not amount to much.  The initialization file (see
+Abbiamo parlato dell'oggetto @code{Fingering}, ma in realtà non si tratta
+di niente di troppo complesso.  Il file di inizializzazione (vedi
 @rlearning{Altre fonti di informazione})
-@file{scm/define-grobs.scm} shows the soul of the @q{object},
+@file{scm/define-grobs.scm} mostra l'anima di questo @qq{oggetto},
 
 @example
 (Fingering
@@ -1705,28 +1660,30 @@ does not amount to much.  The initialization file (see
 @end example
 
 @noindent
-As you can see, the @code{Fingering} object is nothing more than a
-bunch of variable settings, and the webpage in the Guida al funzionamento interno
-is directly generated from this definition.
+Come si può vedere, l'oggetto @code{Fingering} non è niente più di un insieme
+di impostazioni di variabili e la pagina web nella Guida al funzionamento interno
+è generata direttamente da questa definizione.
 
 
-@node Determining the grob property
-@subsection Determining the grob property
+@node Determinazione della proprietà del grob
+@subsection Determinazione della proprietà del grob
+@translationof Determining the grob property
 
 @c TODO remove this (it's in the LM)
 @c Replace with more factual directions
 
-Recall that we wanted to change the position of the @b{2} in
+Volevamo cambiare la posizione del @b{2} in
 
 @lilypond[quote,fragment,verbatim]
 c''-2
 @end lilypond
 
-Since the @b{2} is vertically positioned next to its note, we have to
-meddle with the interface associated with this positioning.  This is
-done using @code{side-position-interface}.  The page for this interface
-says
+Dato che il @b{2} è posizionato verticalmente vicino alla sua nota, dobbiamo
+fare delle prove con l'interfaccia associata a questo posizionamento, ovvero
+@code{side-position-interface}.  La pagina relativa a questa interfaccia
+dice
 
+@c non tradurre
 @quotation
 @code{side-position-interface}
 
@@ -1737,8 +1694,9 @@ victim object relative to the support (left or right, up or down?)
 
 @cindex padding
 @noindent
-Below this description, the variable @code{padding} is described as
+Sotto questa descrizione, la variabile @code{padding} viene descritta come
 
+@c non tradurre
 @quotation
 @table @code
 @item padding
@@ -1748,16 +1706,15 @@ Add this much extra space between objects that are next to each other.
 @end table
 @end quotation
 
-By increasing the value of @code{padding}, we can move the
-fingering away from the note head.  The following command inserts
-3 staff spaces of white
-between the note and the fingering:
+Aumentando il valore di @code{padding}, possiamo spostare la diteggiatura
+lontana dalla testa di nota.  Il seguente comando inserisce 3 spazi rigo
+di bianco tra la nota e la diteggiatura:
 @example
 \once \override Voice.Fingering.padding = #3
 @end example
 
-Inserting this command before the Fingering object is created,
-i.e., before @code{c2}, yields the following result:
+L'inserimento di questo comando prima che l'oggetto Fingering venga
+creato, ovvero prima di @code{c-2}, produce il seguente risultato:
 
 @lilypond[quote,fragment,verbatim]
 \once \override Voice.Fingering.padding = #3
@@ -1765,41 +1722,39 @@ c''-2
 @end lilypond
 
 
-In this case, the context for this tweak is @code{Voice}.  This
-fact can also be deduced from the program reference, for the page for
-the @rinternals{Fingering_engraver} plug-in says
+In questo caso, il contesto per questa modifica è @code{Voice}.  Questo
+fatto può anche essere dedotto dalla guida al programma, dato che la pagina
+per l'incisore @rinternals{Fingering_engraver} dice
 
 @quotation
 Fingering_engraver is part of contexts: @dots{} @rinternals{Voice}
 @end quotation
 
 
-@node Naming conventions
-@subsection Naming conventions
+@node Convenzioni sui nomi
+@subsection Convenzioni sui nomi
+@translationof Naming conventions
 
-Another thing that is needed, is an overview of the various naming
-conventions:
+È importante conoscere le convenzioni sui nomi.  Ecco una panoramica:
 
 @itemize
-@item scheme functions: lowercase-with-hyphens (incl. one-word
-names)
-@item scheme functions: ly:plus-scheme-style
-@item music events, music classes and music properties:
-as-scheme-functions
-@item Grob interfaces: scheme-style
-@item backend properties: scheme-style (but X and Y!)
-@item contexts (and MusicExpressions and grobs): Capitalized or
-CamelCase
-@item context properties: lowercaseFollowedByCamelCase
-@item engravers:
-Capitalized_followed_by_lowercase_and_with_underscores
+@item funzioni scheme: minuscolo-con-trattini (incl. nomi di una-parola)
+@item funzioni scheme: ly:plus-scheme-style
+@item eventi, classi e proprietà musicali:
+come-le-funzioni-scheme
+@item interfacce Grob: stile-scheme
+@item proprietà del backend: stile-scheme (ma ammette X e Y!)
+@item contesti (e EspressioniMusicali e grob): Maiuscolo o CamelCase
+@item proprietà di contesto: minuscoloSeguitoDaCamelCase
+@item incisori:
+Maiuscolo_seguito_da_minuscolo_e_con_trattini_bassi
 @end itemize
 
-Questions to be answered:
+Domande che aspettano una risposta:
 @itemize
-@item Which of these are conventions and which are rules?
-@item Which are rules of the underlying language, and which are
-LP-specific?
+@item Quali di queste sono convenzioni e quali sono regole?
+@item Quali sono regole del linguaggio sottostante e quali sono specifiche
+di LilyPond?
 @end itemize
 
 @node Modifica delle proprietà
@@ -1812,125 +1767,34 @@ LP-specific?
 @c the same time. -td
 
 @menu
-* Overview of modifying properties::
-* The set command::
-* The override command::
+* Panoramica sulla modifica delle proprietà::
+* Il comando set::
+* Il comando override::
 * Il comando tweak::
-* set versus override::
-* Modifying alists::
+* set vs override::
+* Modifica delle liste associative::
 @end menu
 
 
-@node Overview of modifying properties
-@subsection Overview of modifying properties
-
-Each context is responsible for creating certain types of graphical
-objects.  The settings used for printing these objects are also stored by
-context.  By changing these settings, the appearance of objects can be
-altered.
-
-There are two different kinds of properties stored in contexts:
-context properties and grob properties.  Context properties are
-properties that apply to the context as a whole and control
-how the context itself is displayed.  In contrast, grob properties
-apply to specific grob types that will be displayed in the context.
-
-The @code{\set} and @code{\unset} commands are used to change values
-for context properties.  The @code{\override} and @code{\revert}
-commands are used to change values for grob properties.
-
-@ignore
-The syntax for this is
-
-@example
-\override @var{context}.@var{name} #'@var{property} = #@var{value}
-@end example
-
-Here @var{name} is the name of a graphical object, like
-@code{Stem} or @code{NoteHead}, and @var{property} is an internal
-variable of the formatting system (@q{grob property} or @q{layout
-property}).  The latter is a symbol, so it must be quoted.  The
-subsection @ref{Modifying properties}, explains what to fill in
-for @var{name}, @var{property}, and @var{value}.  Here we only
-discuss the functionality of this command.
-
-The command
+@node Panoramica sulla modifica delle proprietà
+@subsection Panoramica sulla modifica delle proprietà
+@translationof Overview of modifying properties
 
-@verbatim
-\override Staff.Stem.thickness = #4.0
-@end verbatim
+Ogni contesto è responsabile della creazione di certi tipi di oggetti
+grafici.  Le impostazioni usate per la rappresentazione grafica di
+questi oggetti sono anch'esse salvate dal contesto.  Cambiando queste
+impostazioni, si può alterare l'aspetto degli oggetti.
 
-@noindent
-makes stems thicker (the default is 1.3, with staff line thickness as a
-unit).  Since the command specifies @code{Staff} as context, it only
-applies to the current staff.  Other staves will keep their normal
-appearance.  Here we see the command in action:
-
-@lilypond[quote,fragment,verbatim]
-c''4
-\override Staff.Stem.thickness = #4.0
-c''4
-c''4
-c''4
-@end lilypond
-
-The @code{\override} command changes the definition of the @code{Stem}
-within the current @code{Staff}.  After the command is interpreted
-all stems are thickened.
-
-Analogous to @code{\set}, the @var{context} argument may be left out,
-causing the default context @code{Voice} to be used.  Adding
-@code{\once} applies the change during one timestep only.
+Ci sono due tipi diversi di proprietà salvate nei contesti: le proprietà
+del contesto e quelle del grob.  Le proprietà del contesto sono proprietà
+che si applicano al contesto nel suo complesso e regolano il modo in cui
+il contesto stesso viene mostrato.  Al contrario, le proprietà del grob
+si applicano a tipi di grob specifici che verranno mostrati nel contesto.
 
-@lilypond[quote,fragment,verbatim]
-c''4
-\once \override Stem.thickness = #4.0
-c''4
-c''4
-@end lilypond
+I comandi @code{\set} e @code{\unset} vengono usati per cambiare i valori
+delle proprietà di contesto.  I comandi @code{\override} e @code{\revert}
+servono a cambiare i valori delle proprietà dei grob.
 
-The @code{\override} must be done before the object is
-started.  Therefore, when altering @emph{Spanner} objects such as slurs
-or beams, the @code{\override} command must be executed at the moment
-when the object is created.  In this example,
-
-@lilypond[quote,fragment,verbatim]
-\override Slur.thickness = #3.0
-c''8[( c''
-\override Beam.beam-thickness = #0.6
-c''8 c''])
-@end lilypond
-
-@noindent
-the slur is fatter but the beam is not.  This is because the command for
-@code{Beam} comes after the Beam is started, so it has no effect.
-
-Analogous to @code{\unset}, the @code{\revert} command for a context
-undoes an @code{\override} command; like with @code{\unset}, it only
-affects settings that were made in the same context.  In other words, the
-@code{\revert} in the next example does not do anything.
-
-@example
-\override Voice.Stem.thickness = #4.0
-\revert Staff.Stem.thickness
-@end example
-
-Some tweakable options are called @q{subproperties} and reside inside
-properties.  To tweak those, use commands of the form
-
-@c leave this as a long long
-@example
-\override @var{context}.@var{name} #'@var{property} #'@var{subproperty} = #@var{value}
-@end example
-
-@noindent
-such as
-
-@example
-\override Stem.details.beamed-lengths = #'(4 4 3)
-@end example
-
-@end ignore
 
 @seealso
 Guida al funzionamento interno:
@@ -1941,40 +1805,42 @@ Guida al funzionamento interno:
 @rinternals{PropertySet}.
 
 @knownissues
-The back-end is not very strict in type-checking object properties.
-Cyclic references in Scheme values for properties can cause hangs
-or crashes, or both.
+Il backend non è molto stretto nel controllo del tipo delle proprietà di un
+oggetto.  Riferimenti ciclici nei valori Scheme delle proprietà possono
+causare attese o crash, o entrambi.
+
 
 
-@node The set command
-@subsection The @code{@bs{}set} command
+@node Il comando set
+@subsection Il comando @code{@bs{}set}
+@translationof The set command
 
-@cindex properties
+@cindex proprietà
 @funindex \set
-@cindex changing properties
+@cindex modifica delle proprietà
 
-Each context has a set of @emph{properties}, variables contained
-in that context.  Context properties are changed with the @code{\set}
-command, which has the following syntax:
+Ogni contesto ha un insieme di @emph{proprietà}, variabili contenute in
+quel contesto.  Le proprietà di contesto si cambiano col comando @code{\set},
+che ha la seguente sintassi:
 
 @example
-\set @var{context}.@var{property} = #@var{value}
+\set @var{contesto}.@var{proprietà} = #@var{valore}
 @end example
 
-@var{value} is a Scheme object, which is why it must be preceded by
-the @code{#}@tie{}character.
+@var{valore} è un oggetto Scheme, ecco perché deve essere preceduto dal
+carattere @tie{}@code{#}.
 
-Contexts properties are usually named in
-@code{studlyCaps}.  They mostly control the translation from
-music to notation, e.g. @code{localAlterations} (for determining
-whether to print accidentals), or @code{measurePosition} (for
-determining when to print a bar line).  Context properties can
-change value over time while interpreting a piece of music;
-@code{measurePosition} is an obvious example of
-this.  Context properties are modified with @code{\set}.
+Le proprietà dei contesti sono solitamente nominate in
+@code{studlyCaps}.  Perlopiù regolano la traduzione dalla musica
+alla notazione, per esempio @code{localAlterations} (per determinare
+se stampare le alterazioni), o @code{measurePosition} (per determinare
+quando stampare una stanghetta).  Le proprietà di contesto possono
+cambiare nel tempo nel corso dell'interpretazione di un brano musicale;
+@code{measurePosition} ne è un ovvio esempio.  Le proprietà di contesto
+si modificano con @code{\set}.
 
-For example, multimeasure rests will be combined into a single bar
-if the context property @code{skipBars} is set to @code{#t}:
+Per esempio, le pause multiple sono combinate in una singola battuta
+se la proprietà di contesto @code{skipBars} viene impostata su @code{#t}:
 
 @lilypond[quote,fragment,verbatim]
 R1*2
@@ -1982,9 +1848,9 @@ R1*2
 R1*2
 @end lilypond
 
-If the @var{context} argument is left out, then the property will be
-set in the current bottom context (typically @code{ChordNames},
-@code{Voice}, @code{TabVoice}, or @code{Lyrics}).
+Se l'argomento @var{contesto} non viene specificato, la proprietà sarà
+impostata nel contesto di base corrente (solitamente @code{ChordNames},
+@code{Voice}, @code{TabVoice} o @code{Lyrics}).
 
 @lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##f
@@ -1998,14 +1864,15 @@ set in the current bottom context (typically @code{ChordNames},
 }
 @end lilypond
 
-The change is applied @q{on-the-fly}, during the music, so that the
-setting only affects the second group of eighth notes.
+La modifica viene applicata @q{al volo}, durante l'interpretazione della
+musica, in modo che l'impostazione abbia effetto soltanto sul secondo
+gruppo di note da un ottavo.
 
-Note that the bottom-most context does not always contain the property
-that you wish to change -- for example, attempting to set the
-@code{skipBars} property of the default bottom context, in this case
-@code{Voice}, will have no effect, because skipBars is a property of
-the @code{Score} context.
+Nota che il contesto più inferiore non contiene sempre la proprietà che si
+desidera cambiare.  Per esempio, il tentativo di impostare la proprietà
+@code{skipBars} del contesto di base predefinito, in questo caso
+@code{Voice}, non produrrà alcun risultato, perché skipBars è una
+proprietà del contesto @code{Score}.
 
 @lilypond[quote,fragment,verbatim]
 R1*2
@@ -2013,24 +1880,24 @@ R1*2
 R1*2
 @end lilypond
 
-Contexts are hierarchical, so if an enclosing context was specified, for
-example @code{Staff}, then the change would also apply to all
-@code{Voice}s in the current staff.
+I contesti sono gerarchici, per cui se viene specificato un contesto che ne
+racchiude altri, per esempio @code{Staff}, il cambiamento viene applicato
+anche a tutti i contesti @code{Voice} del rigo corrente.
 
 @funindex \unset
 
-The @code{\unset} command:
+Il comando @code{\unset}:
 
 @example
-\unset @var{context}.@var{property}
+\unset @var{contesto}.@var{proprietà}
 @end example
 
 @noindent
-is used to remove the definition of @var{property} from
-@var{context}.  This command removes
-the definition only if it is set in @var{context}.
-Properties that have been set in enclosing contexts will
-not be altered by an unset in an enclosed context:
+viene usato per togliere la definizione di @var{proprietà} dal
+@var{contesto}.  Questo comando rimuove la definizione solo se
+impostata nel @var{contesto}.  Le proprietà impostate nei contesti
+più esterni non saranno modificate da un @code{\unset} in un contesto
+più interno:
 
 @lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##t
@@ -2045,8 +1912,8 @@ not be altered by an unset in an enclosed context:
 }
 @end lilypond
 
-Like @code{\set}, the @var{context} argument does not have to be
-specified for a bottom context, so the two statements
+Come in @code{\set}, non è necessario specificare l'argomento @var{contesto}
+per un contesto di fondo, quindi le due dichiarazioni
 
 @example
 \set Voice.autoBeaming = ##t
@@ -2054,12 +1921,12 @@ specified for a bottom context, so the two statements
 @end example
 
 @noindent
-are equivalent if the current bottom context is @code{Voice}.
+sono equivalenti se l'attuale contesto di fondo è @code{Voice}.
 
 
 @cindex \once
-Preceding a @code{\set} or @code{\unset} command by @code{\once}
-makes the setting apply to only a single time-step:
+Anteponendo @code{\once} ai comandi @code{\set} o @code{\unset} l'impostazione
+verrà applicata soltanto a un singolo momento temporale:
 
 @lilypond[quote,fragment,verbatim]
 c''4
@@ -2068,8 +1935,8 @@ c''4
 c''4
 @end lilypond
 
-A full description of all available context properties is in the
-Guida al funzionamento interno, see
+Una descrizione completa di tutte le proprietà di contesto disponibili si
+trova nella Guida al funzionamento interno, vedi
 @ifhtml
 @rinternals{Tunable context properties}.
 @end ifhtml
@@ -2082,30 +1949,30 @@ Guida al funzionamento interno:
 @rinternals{Tunable context properties}.
 
 
-@node The override command
-@subsection The @code{\override} command
+@node Il comando override
+@subsection Il comando @code{\override}
+@translationof The override command
 
-@cindex grob properties
-@cindex properties, grob
+@cindex grob, proprietà
+@cindex proprietà dei grob
 @funindex \override
 
-There is a special type of context property: the grob
-description.  Grob descriptions are named in @code{StudlyCaps}
-(starting with capital letters).  They contain the
-@q{default settings} for a particular kind of grob as an
-association list.  See @file{scm/define-grobs.scm}
-to see the settings for each grob description.  Grob descriptions
-are modified with @code{\override}.
+Esiste un tipo particolare di proprietà di contesto: la descrizione del
+grob.  Le descrizioni dei grob vengono nomimate in @code{StudlyCaps}
+(iniziando con lettere maiuscole).  Contengono le
+@qq{impostazioni predefinite} per un certo tipo di grob, come una
+lista associativa.  Consultare @file{scm/define-grobs.scm}
+per vedere le impostazioni per ogni descrizione di grob.  Le descrizioni
+di grob si modificano con @code{\override}.
 
-The syntax for the @code{\override} command is
+La sintassi del comando @code{\override} è
 
 @example
-\override [@var{context}.]@var{GrobName}.@var{property} = #@var{value}
+\override [@var{contesto}.]@var{NomeGrob}.@var{proprietà} = #@var{valore}
 @end example
 
-For example, we can increase the thickness of a note stem by
-overriding the @code{thickness} property of the @code{Stem}
-object:
+Per esempio, possiamo aumentare lo spessore del gambo di una nota
+modificando la proprietà @code{thickness} dell'oggetto @code{Stem}:
 
 @lilypond[quote,fragment,verbatim]
 c''4 c''
@@ -2113,8 +1980,8 @@ c''4 c''
 c''4 c''
 @end lilypond
 
-If no context is specified in an @code{\override}, the bottom
-context is used:
+Se non viene specificato il contesto in un @code{\override}, viene usato
+il contesto di base:
 
 @lilypond[quote,fragment,verbatim]
 \override Staff.Stem.thickness = #3.0
@@ -2130,14 +1997,15 @@ context is used:
 >>
 @end lilypond
 
-Some tweakable options are called @q{subproperties} and reside inside
-properties.  To tweak those, use commands in the form
+Alcune opzioni modificabili vengono chiamate @q{sottoproprietà} e stanno
+dentro le proprietà.  Per cambiarle, usare i comandi nella forma
 
 @example
 \override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
-or to modify the ends of spanners, use a form like these
+o, per modificare le estremità degli estensori, usare una forma simile
+alle seguenti
 
 @example
 \override TextSpanner.bound-details.left.text = #"left text"
@@ -2145,18 +2013,18 @@ or to modify the ends of spanners, use a form like these
 @end example
 
 @funindex \revert
-@cindex reverting overrides
-@cindex overrides, reverting
+@cindex ripristinare le modifiche
+@cindex modifiche, ripristinare
 
-The effects of @code{\override} can be undone by @code{\revert}.
+Gli effetti di @code{\override} possono essere annullati con @code{\revert}.
 
-The syntax for the @code{\revert} command is
+La sintassi del comando @code{\revert} è
 
 @example
-\revert [@var{context}.]@var{GrobName}.@var{property}
+\revert [@var{contesto}.]@var{NomeGrob}.@var{proprietà}
 @end example
 
-For example,
+Per esempio,
 
 @lilypond[quote,verbatim]
 \relative {
@@ -2168,8 +2036,8 @@ For example,
 }
 @end lilypond
 
-The effects of @code{\override} and @code{\revert} apply to all
-grobs in the affected context from the current time forward:
+Gli effetti di @code{\override} e @code{\revert} si applicano a tutti i
+grob nel contesto interessato da quel momento in poi:
 
 @lilypond[quote,verbatim]
 <<
@@ -2187,10 +2055,10 @@ grobs in the affected context from the current time forward:
 @end lilypond
 
 @funindex \once
-@cindex overriding for only one moment
+@cindex modificare in un solo istante
 
-@code{\once} can be used with @code{\override} or @code{\revert}
-to affect only the current time step:
+Si può usare @code{\once} insieme a @code{\override} o @code{\revert}
+per agire solo sul momento corrente:
 
 @lilypond[quote,verbatim]
 <<
@@ -2206,40 +2074,6 @@ to affect only the current time step:
 >>
 @end lilypond
 
-
-@ignore
-Commands which change output generally look like
-
-@example
-\override Voice.Stem.thickness = #3.0
-@end example
-
-@noindent
-To construct this tweak we must determine these bits of information:
-
-@itemize
-@item the context: here @code{Voice}.
-@item the layout object: here @code{Stem}.
-@item the layout property: here @code{thickness}.
-@item a sensible value: here @code{3.0}.
-@end itemize
-
-@cindex internal documentation
-@cindex finding graphical objects
-@cindex graphical object descriptions
-@cindex tweaking
-@funindex \override
-@cindex internal documentation
-
-For many properties, regardless of the data type of the property, setting the
-property to false (@code{#f}) will result in turning it off, causing
-LilyPond to ignore that property entirely.  This is particularly useful for
-turning off grob properties which may otherwise be causing problems.
-
-We demonstrate how to glean this information from the notation manual
-and the program reference.
-@end ignore
-
 @seealso
 Guida al funzionamento interno:
 @rinternals{Backend}
@@ -2250,103 +2084,43 @@ Guida al funzionamento interno:
 @translationof The tweak command
 
 @funindex \tweak
-@cindex tweaking
+@cindex tweak
 
-Changing grob properties
-with @code{\override} causes the changes to apply to all of the
-given grobs in the context at the moment the change applies.
-Sometimes, however, it is desirable to have changes apply to just
-one grob, rather than to all grobs in the affected context.  This is
-accomplished with the @code{\tweak} command, which has the following
-syntax:
+Modificare le proprietà dei grob con @code{\override} fa sì che i
+cambiamenti siano applicati a tutti i grob in questione in quel
+contesto nel momento in cui la modifica viene applicata.  Talvolta,
+tuttavia, si può voler applicare le modifiche a un solo grob invece
+che a tutti i grob del contesto interessato.  Per farlo si usa il
+comando @code{\tweak}, che ha la seguente sintassi:
 
 @example
-\tweak [@var{layout-object}.]@var{grob-property} @var{value}
+\tweak [@var{oggetto-formattazione}.]@var{proprietà-grob} @var{valore}
 @end example
 
-Specifying @var{layout-object} is optional.
-The @code{\tweak} command applies to the music object that immediately
-follows @var{value} in the music stream.
+@var{oggetto-formattazione} è opzionale.
+Il comando @code{\tweak} viene applicato all'oggetto musicale che segue
+immediatamente @var{valore} nel flusso musicale.
 
-@ignore
-In some cases, it is possible to take a short-cut for tuning
-graphical objects.  For objects that are created directly from
-an item in the input file, you can use the @code{\tweak} command.
-For example:
-
-@lilypond[verbatim,quote]
-\relative {
-  < c''
-    \tweak color #red
-    d
-    g
-    \tweak duration-log #1
-    a
-  > 4
-  -\tweak padding #8
-  -^
-}
-@end lilypond
-
-
-
-The main use of the @code{\tweak} command is to modify just
-one of a number of notation elements which start at the same musical
-moment, like the notes of a chord, or tuplet brackets which start
-at the same time.
-
-The @code{\tweak} command sets a property in the following object
-directly, without requiring the grob name or context to be
-specified.  For this to work, it is necessary for the @code{\tweak}
-command to remain immediately adjacent to the object to which it is
-to apply after the input file has been converted to a music stream.
-This is often not the case, as many additional elements are inserted
-into the music stream implicitly.  For example, when a note which is
-not part of a chord is processed, LilyPond implicitly inserts a
-@code{ChordEvent} event before the note, so separating the tweak
-from the note.  However, if chord symbols are placed round the
-tweak and the note, the @code{\tweak} command comes after the
-@code{ChordEvent} in the music stream, so remaining adjacent to the
-note, and able to modify it.
-
-So, this works:
-
-@lilypond[verbatim,fragment,quote]
-<\tweak color #red c''>4
-@end lilypond
-
-@noindent
-but this does not:
-
-@lilypond[verbatim,fragment,quote]
-\tweak color #red c''4
-@end lilypond
-
-@end ignore
-
-For an introduction to the syntax and uses of the tweak command
-see @rlearning{Metodi di modifica}.
+Per un'introduzione alla sintassi e agli usi del comando tweak leggere
+@rlearning{Metodi di modifica}.
 
-When several similar items are placed at the same musical moment,
-the @code{\override} command cannot be used to modify just one of
-them -- this is where the @code{\tweak} command must be used.
-Items which may appear more than once at the same musical moment
-include the following:
+Quando molti elementi simili sono disposti nello stesso momento musicale,
+non è possibile usare il comando @code{\override} per modificarne soltanto
+uno.  È in casi come questi che occorre usare il comando @code{\tweak}.
+Ecco alcuni elementi che possono apparire più di una volta nello stesso
+momento musicale:
 
-@c TODO expand to include any further uses of \tweak
 @itemize
-@item note heads of notes inside a chord
-@item articulation signs on a single note
-@item ties between notes in a chord
-@item tuplet brackets starting at the same time
+@item teste di note di un accordo
+@item segni di articolazione su una singola nota
+@item legature di valore tra note di un accordo
+@item parentesi di gruppi irregolari che iniziano nello stesso momento
 @end itemize
 
-@c TODO add examples of these
+@cindex accordo, modificare una nota dell'
 
-@cindex chord, modifying one note in
-
-In this example, the color of one note head and the type of another
-note head are modified within a single chord:
+In questo esempio, il colore di una testa di nota e il tipo di testa di
+un'altra nota sono modificati all'interno di un accordo:
 
 @lilypond[verbatim,fragment,quote]
 < c''
@@ -2358,19 +2132,19 @@ note head are modified within a single chord:
 > 4
 @end lilypond
 
-@code{\tweak} can be used to modify slurs:
+@code{\tweak} può essere usato per modificare le legature di portamento:
 
 @lilypond[verbatim,quote]
 \relative { c'-\tweak thickness #5 ( d e f) }
 @end lilypond
 
 
-For the @code{\tweak} command to work, it must
-remain immediately adjacent to the object to which it is
-to apply after the input file has been converted to a music stream.
-Tweaking a whole chord does not do anything since its music event
-only acts as a container, and all layout objects are created from events
-inside of the @code{EventChord}:
+Perché il comando @code{\tweak} funzioni, deve trovarsi proprio accanto
+all'oggetto al quale deve essere applicato dopo che il file di input è
+stato convertito in un flusso musicale.  Modificare un intero accordo
+non cambia niente perché il suo evento musicale agisce solo come
+contenitore, mentre tutti gli oggetti della formattazione sono creati
+dagli eventi interni all'@tie{}@code{EventChord}:
 
 @lilypond[verbatim,fragment,quote]
 \tweak color #red c''4
@@ -2378,16 +2152,15 @@ inside of the @code{EventChord}:
 <\tweak color #red c'' e''>4
 @end lilypond
 
-The simple @code{\tweak} command cannot be used to modify any object
-that is not directly created from the input.  In particular
-it will not affect stems, automatic
-beams or accidentals, since these are generated later by
-@code{NoteHead} layout objects rather than by music elements in the
-input stream.
+Il semplice comando @code{\tweak} non può essere usato per modificare un
+oggetto che non sia creato direttamente dall'input.  In particolare, non
+agirà su gambi, travature automatiche o alterazioni, dato che questi sono
+generati successivamente dagli oggetti della formattazione di @code{NoteHead}
+invece che da elementi musicali nel flusso dell'input.
 
-Such indirectly created layout objects can be tweaked using the form
-of the @code{\tweak} command in which the grob name is specified
-explicitly:
+Tali oggetti della formattazione creati indirettamente possono essere tuttavia
+modificati usando una forma del comando @code{\tweak} in cui il nome del grob
+è indicato esplicitamente:
 
 @lilypond[fragment,verbatim,quote]
 \tweak Stem.color #red
@@ -2395,13 +2168,13 @@ explicitly:
 <c'' e'' \tweak Accidental.font-size #-3 ges''>4
 @end lilypond
 
-@code{\tweak} cannot be used to modify clefs or time
-signatures, since these become separated from any preceding
-@code{\tweak} command in the input stream by the automatic
-insertion of extra elements required to specify the context.
+@code{\tweak} non può essere usato per modificare le chiavi o le indicazioni
+di tempo, perché queste vengono separate da qualsiasi comando @code{\tweak}
+precedente nel flusso dell'input a causa dell'inserimento automatico di ulteriori
+elementi richiesti per specificare il contesto.
 
-Several @code{\tweak} commands may be placed before a
-notational element -- all affect it:
+Si possono usare vari comandi @code{\tweak} prima di un elemento della
+notazione e tutti avranno effetto su di esso:
 
 @lilypond[verbatim,fragment,quote]
 c'
@@ -2413,12 +2186,11 @@ c'
 f''
 @end lilypond
 
-The music stream which is generated from a section of an input file,
-including any automatically inserted elements, may be examined,
-see @rextend{Displaying music expressions}.  This may be helpful in
-determining what may be modified by a @code{\tweak} command, or
-in determining how to adjust the input to make a @code{\tweak}
-apply.
+Il flusso musicale generato da una sezione di un file di input, compresi
+gli elementi inseriti automaticamente, può essere esaminato, vedi
+@rextend{Displaying music expressions}.  Ciò può essere utile nel determinare
+cosa può essere modificato da un comando @code{\tweak} o nel valutare come
+aggiustare l'input per far sì che un @code{\tweak} sia applicato.
 
 @seealso
 Manuale di apprendimento:
@@ -2429,95 +2201,97 @@ Estendere LilyPond:
 
 @knownissues
 
-@cindex tweaking control points
-@cindex control points, tweaking
+@cindex \tweak e punti di controllo
+@cindex punti di controllo e \tweak
 
-The @code{\tweak} command cannot be used to modify the control
-points of just one of several ties in a chord, other than the first
-one encountered in the input file.
+Il comando @code{\tweak} non può essere usato per modificare i punti di
+controllo di una sola legatura di valore tra tante in un accordo, se non
+quelli della prima legatura incontrata nel file di input.
 
-@node set versus override
-@subsection @code{\set} vs. @code{\override}
 
-@c TODO Should't a bunch of that be explained earlier?
+@node set vs override
+@subsection @code{\set} vs. @code{\override}
+@translationof set versus override
 
 @funindex \set
 @funindex \override
-Both @code{\set} and @code{\override} manipulate properties
-associated with contexts.  In either case, properties heed the
-hierarchy of contexts: properties not set in a context itself show
-the values of the respective parent context.
-
-Values and lifetime of context properties are dynamic and only
-available when music is being interpreted, @q{iterated}.  At the
-time of context creation, properties are initialized from the
-corresponding context definition and possible context
-modifications.  Afterwards, changes are achieved with
-property-setting commands in the music itself.
-
-Now grob definitions are a special category of context properties.
-Since their structure, bookkeeping and use is different from
-ordinary context properties, they are accessed with a different
-set of commands, and treated separately in the documentation.
-
-As opposed to plain context properties, grob definitions are
-subdivided into grob properties.  A @qq{grob} (graphical object)
-is usually created by an engraver at the time of interpreting a
-music expression and receives its initial properties from the
-current grob definition of the engraver's context.  The engraver
-(or other @q{backend} parts of LilyPond) may subsequently add or
-change properties to the grob, but that does not affect the
-context's grob definition.
-
-What we call @q{grob properties} in the context of user-level
-tweaking are actually the properties of a context's grob
-definition.  In contrast to ordinary context properties, grob
-definitions have the bookkeeping required to keep track of its
-parts, the individual grob properties (and even subproperties of
-them) separately so that it is possible to define those parts in
-different contexts and have the overall grob definition at the
-time of grob creation be assembled from pieces provided in
-different contexts among the current context and its parents.
-
-Grob definitions are manipulated using @code{\override} and
-@code{\revert} and have a name starting with a capital letter
-(like @samp{NoteHead}) whereas ordinary context properties are
-manipulated using @code{\set} and @code{\unset} and are named
-starting with a lowercase letter.
-
-@cindex tweak, relation to @code{\override}
+Sia @code{\set} che @code{\override} manipolano le proprietà
+associate ai contesti.  In entrambi i casi, le proprietà
+seguono la gerarchia dei contesti: proprietà non impostate in
+un contesto mostrano i valori del rispettivo contesto padre.
+
+I valori e la durata delle proprietà di contesto sono dinamici e
+disponibili soltanto mentre la musica viene interpretata, @qq{reiterata}.
+Nel momento della creazione del contesto, le proprietà sono inizializzate
+a partire dalla definizione di contesto corrispondente e dalle possibili
+modifiche di contesto.  Poi le modifiche vengono fatte con dei comandi
+che impostano la proprietà presenti nella musica stessa.
+
+Le definizioni di grob sono una categoria speciale di proprietà di
+contesto.  Dato che la loro struttura, @qq{contabilità} e uso sono
+diversi dalle normali proprietà di contesto, ad esse si accede con
+un insieme diverso di comandi e sono trattate in modo separato
+nella documentazione.
+
+Al contrario delle semplici proprietà di contesto, le definizioni di grob
+sono suddivise in proprietà del grob.  Un @qq{grob} (oggetto grafico)
+viene solitamente creato da un incisore nel momento in cui l'espressione
+musicale viene interpretata e riceve le sue proprietà iniziali dalla definizione
+del grob corrente del contesto dell'incisore.  L'incisore (o altre parti del
+@q{backend} di LilyPond) può successivamente togliere o cambiare le proprietà
+del grob, ma ciò non ha effetto sulla definizione di grob del contesto.
+
+Ciò che chiamiamo @q{proprietà del grob} nel contesto delle modifiche a
+livello di utente sono in realtà le proprietà della definizione di grob di
+un contesto.  Al contrario delle normali proprietà di contesto, le definizioni
+di grob hanno dei registri per tenere traccia delle sue parti e delle proprietà
+individuali dei grob (e perfino delle loro sottoproprietà) separatamente, così
+che sia possibile definire queste parti in contesti diversi e far sì che la
+definizione di grob complessiva sia assemblata dai pezzi forniti in contesti
+diversi compresi tra il contesto corrente e i suoi contesti superiori.
+
+Le definizioni di grob sono manipolate con @code{\override} e
+@code{\revert} e hanno un nome che inizia con una lettera maiuscola
+(come @samp{NoteHead}), mentre le normali proprietà di contesto sono
+manipolate con @code{\set} e @code{\unset} e il loro nome inizia con
+una lettera minuscola.
+
+@cindex tweak, relazione con @code{\override}
 @funindex \tweak
 @funindex \overrideProperty
-The special commands @code{\tweak} and @code{\overrideProperty}
-change grob properties bypassing context properties completely.
-Instead they catch grobs as they are being created and then
-directly set properties on them when they originate from a tweaked
-music event or are of a particular kind, respectively.
+I comandi speciali @code{\tweak} e @code{\overrideProperty} modificano le
+proprietà dei grob bypassando completamente le proprietà di contesto.
+Catturano i grob mentre vengono creati e poi impostano direttamente
+le proprietà su di essi quando vengono da un evento musicale modificato
+o sono di un tipo particolare.
 
-@node Modifying alists
-@subsection Modifying alists
 
-Some user-configurable properties are internally represented as
-@emph{alists} (association lists), which store pairs of
-@emph{keys} and @emph{values}.  The structure of an alist is:
+@node Modifica delle liste associative
+@subsection Modifica delle liste associative
+@translationof Modifying alists
+
+Alcune proprietà configurabili dall'utente sono rappresentate internamente
+come @emph{alist} (liste associative), che contengono coppie di
+@emph{chiavi} e @emph{valori}.  La struttura di una lista associativa è:
 
 @example
-'((@var{key1} . @var{value1})
-  (@var{key2} . @var{value2})
-  (@var{key3} . @var{value3})
+'((@var{chiave1} . @var{valore1})
+  (@var{chiave2} . @var{valore2})
+  (@var{chiave3} . @var{valore3})
   @dots{})
 @end example
 
-If an alist is a grob property or @code{\paper} variable, its keys
-can be modified individually without affecting other keys.
+Se una lista associativa è una proprietà di un grob o una variabile
+@code{\paper}, le sue chiavi possono essere modificate individualmente
+senza influenzare altre chiavi.
 
-For example, to reduce the space between adjacent staves in a
-staff-group, use the @code{staff-staff-spacing} property of the
-@code{StaffGrouper} grob.  The property is an alist with four
-keys: @code{basic-distance}, @code{minimum-distance},
-@code{padding}, and @code{stretchability}.  The standard settings
-for this property are listed in the @qq{Backend} section of the
-Guida al funzionamento interno (see @rinternals{StaffGrouper}):
+Per esempio, per ridurre lo spazio tra righi adiacenti in un gruppo di
+righi, si usa la proprietà @code{staff-staff-spacing} del grob
+@code{StaffGrouper}.  La proprietà è una lista associativa con quattro
+chiavi: @code{basic-distance}, @code{minimum-distance},
+@code{padding} e @code{stretchability}.  Le impostazioni predefinite
+per questa proprietà sono elencate nella sezione @qq{Backend} della
+Guida al funzionamento interno (vedi @rinternals{StaffGrouper}):
 
 @example
 '((basic-distance . 9)
@@ -2526,21 +2300,21 @@ Guida al funzionamento interno (see @rinternals{StaffGrouper}):
   (stretchability . 5))
 @end example
 
-One way to bring the staves closer together is by reducing the
-value of the @code{basic-distance} key (@code{9}) to match the
-value of @code{minimum-distance} (@code{7}).  To modify a single
-key individually, use a @emph{nested declaration}:
+Un modo per avvicinare i righi è ridurre il valore della chiave
+@code{basic-distance} (@code{9}) perché corrisponda al valore
+di @code{minimum-distance} (@code{7}).  Per modificare una chiave
+singola individualmente, usare una @emph{dichiarazione annidata}:
 
 @lilypond[quote,verbatim]
-% default space between staves
+% spazio predefinito tra i righi
 \new PianoStaff <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
 >>
 
-% reduced space between staves
+% spazio ridotto tra i righi
 \new PianoStaff \with {
-  % this is the nested declaration
+  % questa è la dichiarazione annidata
   \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
@@ -2548,15 +2322,16 @@ key individually, use a @emph{nested declaration}:
 >>
 @end lilypond
 
-Using a nested declaration will update the specified key (such as
-@code{basic-distance} in the above example) without altering any
-other keys already set for the same property.
+Con una dichiarazione annidata si aggiornerà la chiave specificata (come
+@code{basic-distance} nell'esempio precedente) senza modificare alcuna
+altra chiave già impostata per la stessa proprietà.
 
-Now suppose we want the staves to be as close as possible without
-overlapping.  The simplest way to do this is to set all four alist
-keys to zero.  However, it is not necessary to enter four nested
-declarations, one for each key.  Instead, the property can be
-completely re-defined with one declaration, as an alist:
+Ora immaginiamo di volere che i righi siano più vicini possibile ma senza
+sovrapporsi.  Il modo più semplice per fare ciò è impostare tutte e quattro
+le chiavi della lista su zero.  Tuttavia, non è necessario inserire quattro
+dichiarazioni annidate, una per ogni chiave.  Si può invece ridefinire
+completamente la proprietà con una sola dichiarazione, attraverso una
+lista associativa:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
@@ -2571,12 +2346,13 @@ completely re-defined with one declaration, as an alist:
 >>
 @end lilypond
 
-Note that any keys not explicitly listed in the alist definition
-will be reset to their @emph{default-when-unset} values.  In the
-case of @code{staff-staff-spacing}, any unset key-values would be
-reset to zero (except @code{stretchability}, which takes the value
-of @code{basic-distance} when unset).  Thus the following two
-declarations are equivalent:
+Nota bene che qualsiasi chiave non elencata esplicitamente nella
+definizione della lista associativa sarà ripristinata al suo valore
+@emph{predefinito-quando-non-impostato}.  Nel caso di
+@code{staff-staff-spacing}, qualsiasi chiave-valore non impostata
+viene ripristinata su zero (eccetto @code{stretchability}, che
+prende il valore di @code{basic-distance} quando non è impostata).  Dunque
+le due seguenti dichiarazioni sono equivalenti:
 
 @example
 \override StaffGrouper.staff-staff-spacing =
@@ -2589,21 +2365,25 @@ declarations are equivalent:
      (stretchability . 7))
 @end example
 
-One (possibly unintended) consequence of this is the removal of
-any standard settings that are set in an initialization file and
-loaded each time an input file is compiled.  In the above example,
-the standard settings for @code{padding} and
-@code{minimum-distance} (defined in @file{scm/define-grobs.scm})
-are reset to their default-when-unset values (zero for both keys).
-Defining a property or variable as an alist (of any size) will
-always reset all unset key-values to their default-when-unset
-values.  Unless this is the intended result, it is safer to update
-key-values individually with a nested declaration.
-
-@warning{Nested declarations will not work for context property
-alists (such as @code{beamExceptions}, @code{keyAlterations},
-@code{timeSignatureSettings}, etc.).  These properties can only be
-modified by completely re-defining them as alists.}
+Una conseguenza (possibilmente non voluta) di questo approccio è
+l'eliminazione di eventuali impostazioni predefinite impostate in
+un file di inizializzazione e caricate ogni volta che un file di
+input viene compilato.  Nell'esempio precedente le impostazioni
+predefinite per @code{padding} e @code{minimum-distance} (definite
+in @file{scm/define-grobs.scm}) sono ripristinate ai loro valori
+predefiniti-quando-non-impostati (zero per entrambe le chiavi).
+La definizione di una proprietà o di una variabile come una lista
+associativa (di qualsiasi dimensione) ripristinerà sempre tutte
+le chiavi-valori ai loro valori predefiniti-quando-non-impostati.
+A meno che questo non sia il risultato voluto, è più sicuro
+aggiornare le chiavi-valori individualmente con una dichiarazione
+annidata.
+
+@warning{Le dichiarazioni annidate non funzionano per le liste
+associative delle proprietà di contesto (come @code{beamExceptions},
+@code{keyAlterations}, @code{timeSignatureSettings}, etc.).  Queste
+proprietà possono essere modificate soltanto ridefinendole completamente
+come liste associative.}
 
 
 @node Proprietà e concetti utili
@@ -2612,144 +2392,150 @@ modified by completely re-defining them as alists.}
 
 
 @menu
-* Input modes::
-* Direction and placement::
-* Distances and measurements::
-* Dimensions::
-* Staff symbol properties::
-* Spanners::
-* Visibility of objects::
-* Line styles::
-* Rotating objects::
+* Modalità di inserimento::
+* Direzione e posizionamento::
+* Distanze e misurazioni::
+* Dimensioni::
+* Proprietà del simbolo del rigo::
+* Estensori::
+* Visibilità degli oggetti::
+* Stili della linea::
+* Rotazione degli oggetti::
 @end menu
 
-@node Input modes
-@subsection Input modes
+@node Modalità di inserimento
+@subsection Modalità di inserimento
+@translationof Input modes
 
-The way in which the notation contained within an input file is
-interpreted is determined by the current input mode.
+Il modo in cui la notazione contenuta in un file di input è interpretata è
+determinato dalla modalità di inserimento corrente.
 
-@subsubsubheading Chord mode
+@subsubsubheading Modalità accordo
 
-This is activated with the @code{\chordmode} command, and causes
-input to be interpreted with the syntax of chord notation, see
-@ref{Chord notation}.  Chords are rendered as notes on a staff.
+Viene attivata col comando @code{\chordmode} e fa sì che l'input
+sia interpretato con la sintassi della notazione degli accordi, vedi
+@ref{Chord notation}.  Gli accordi sono visualizzati come note su
+un rigo.
 
-Chord mode is also activated with the @code{\chords} command.
-This also creates a new @code{ChordNames} context and
-causes the following input to be interpreted with the syntax of
-chord notation and rendered as chord names in the @code{ChordNames}
-context, see @ref{Printing chord names}.
+La modalità accordo viene attivata anche col comando @code{\chords}.
+Questo crea anche un nuovo contesto @code{ChordNames} e fa sì che
+l'input che segue sia interpretato con la sintassi della notazione
+degli accordi e visualizzato come nomi di accordo nel contesto
+@code{ChordNames}, vedi @ref{Printing chord names}.
 
-@subsubsubheading Drum mode
+@subsubsubheading Modalità percussioni
 
-This is activated with the @code{\drummode} command, and causes
-input to be interpreted with the syntax of drum notation, see
-@ref{Basic percussion notation}.
+Viene attivata col comando @code{\drummode} e fa sì che l'input
+sia interpretato con la sintassi della notazione delle percussioni,
+vedi @ref{Basic percussion notation}.
 
-Drum mode is also activated with the @code{\drums} command.
-This also creates a new @code{DrumStaff} context and causes the
-following input to be interpreted with the syntax of drum notation
-and rendered as drum symbols on a drum staff, see
-@ref{Basic percussion notation}.
+La modalità percussioni viene attivata anche col comando @code{\drums}.
+Questo crea anche un nuovo contesto @code{DrumStaff} e fa sì che
+l'input che segue sia interpretato con la sintassi della notazione
+delle percussioni e visualizzato come simboli di percussione su un
+rigo ritmico, vedi @ref{Basic percussion notation}.
 
-@subsubsubheading Figure mode
+@subsubsubheading Modalità basso continuo
 
-This is activated with the @code{\figuremode} command, and causes
-input to be interpreted with the syntax of figured bass, see
-@ref{Entering figured bass}.
+Viene attivata col comando @code{\figuremode} e fa sì che
+l'input che segue sia interpretato con la sintassi del basso
+continuo, vedi @ref{Entering figured bass}.
 
-Figure mode is also activated with the @code{\figures} command.
-This also creates a new @code{FiguredBass} context and causes the
-following input to be interpreted with the figured bass syntax
-and rendered as figured bass symbols in the @code{FiguredBass}
-context, see @ref{Introduction to figured bass}.
+La modalità basso continuo viene attivata anche col comando @code{\figures}.
+Questo crea anche un nuovo contesto @code{FiguredBass} e fa sì che
+l'input che segue sia interpretato con la sintassi del basso continuo
+e visualizzato come numeri di basso nel contesto @code{FiguredBass},
+vedi @ref{Introduction to figured bass}.
 
-@subsubsubheading Fret and tab modes
+@subsubsubheading Modalità tastiera e intavolatura
 
-There are no special input modes for entering fret and tab symbols.
+Non esistono speciali modalità di inserimento per i simboli della tastiera
+e dell'intavolatura (o tablatura).
 
-To create tab diagrams, enter notes or chords in note mode and
-render them in a @code{TabStaff} context, see
+Per creare diagrammi in intavolatura, inserire note o accordi nella modalità
+nota e visualizzarli in un contesto @code{TabStaff}, vedi
 @ref{Default tablatures}.
 
-To create fret diagrams above a staff, you have two choices.
-You can either use the @code{FretBoards} context (see
-@ref{Automatic fret diagrams} or you can enter them as a markup
-above the notes using the @code{\fret-diagram} command (see
+Per creare diagrammi della tastiera sopra un rigo, ci sono due opzioni.
+Si può usare il contesto @code{FretBoards} (vedi
+@ref{Automatic fret diagrams}) oppure inserirli come testo (markup)
+sopra le note usando il comando @code{\fret-diagram} (vedi
 @ref{Fret diagram markups}).
 
-@subsubsubheading Lyrics mode
+@subsubsubheading Modalità testo vocale
 
-This is activated with the @code{\lyricmode} command, and causes
-input to be interpreted as lyric syllables with optional durations
-and associated lyric modifiers, see @ref{Vocal music}.
+Viene attivata col comando @code{\lyricmode} e fa sì che l'input
+sia interpretato come sillabe del testo vocale con durate opzionali
+e modificatori del testo associato, vedi @ref{Vocal music}.
 
-Lyric mode is also activated with the @code{\addlyrics} command.
-This also creates a new @code{Lyrics} context and an implicit
-@code{\lyricsto} command which associates the following lyrics
-with the preceding music.
+La modalità testo vocale viene attivata anche col comando @code{\addlyrics}.
+Questo crea anche un nuovo contesto @code{Lyrics} e un comando implicito
+@code{\lyricsto} che associa il testo vocale che segue con la musica che
+lo precede.
 
-@subsubsubheading Markup mode
+@subsubsubheading Modalità testo (markup)
 
-This is activated with the @code{\markup} command, and causes
-input to be interpreted with the syntax of markup, see
+Viene attivata col comando @code{\markup}  e fa sì che l'input
+sia interpretato con la sintassi di markup, vedi
 @ref{Text markup commands}.
 
-@subsubsubheading Note mode
+@subsubsubheading Modalità nota
 
-This is the default mode or it may be activated with the
-@code{\notemode} command.  Input is interpreted as pitches,
-durations, markup, etc and typeset as musical notation on a staff.
+Questa è la modalità predefinita e può essere attivata esplicitamente
+col comando @code{\notemode}.  L'input viene interpretato come altezze,
+durate, markup, etc. e rappresentato come notazione musicale su un rigo.
 
-It is not normally necessary to specify note mode explicitly, but
-it may be useful to do so in certain situations, for example if you
-are in lyric mode, chord mode or any other mode and want to insert
-something that only can be done with note mode syntax.
+Normalmente non è necessario specificare la modalità nota esplicitamente, ma
+potrebbe essere utile farlo in alcune situazioni, per esempio se si è in
+modalità testo vocale o accordo o qualsiasi altra modalità e si vuole inserire
+qualcosa che può essere fatto solo con la sintassi della modalità nota.
 
 
-@node Direction and placement
-@subsection Direction and placement
+@node Direzione e posizionamento
+@subsection Direzione e posizionamento
+@translationof Direction and placement
 
-In typesetting music the direction and placement of many items is
-a matter of choice.  For example, the stems of notes can
-be directed up or down; lyrics, dynamics, and other expressive
-marks may be placed above or below the staff; text may be aligned
-left, right or center; etc.  Most of these choices may be left to
-be determined automatically by LilyPond, but in some cases it may
-be desirable to force a particular direction or placement.
+Nella composizione tipografica musicale la direzione e il posizionamento di
+molti elementi è una questione di gusto.  Per esempio, i gambi delle note
+possono essere rivolti in su o in giù; testi, dinamiche e altri segni
+espressivi possono essere posti sopra o sotto il rigo; il testo può
+essere allineato a sinistra, destra o al centro; etc.  La maggior parte
+di queste scelte possono essere lasciate alla decisione di LilyPond, ma in
+alcuni casi si può voler forzare una direzione o un posizionamento particolari.
 
 @menu
-* Articulation direction indicators::
-* The direction property::
+* Indicatori di direzione delle articolazioni::
+* La proprietà direction::
 @end menu
 
-@node Articulation direction indicators
-@unnumberedsubsubsec Articulation direction indicators
+@node Indicatori di direzione delle articolazioni
+@unnumberedsubsubsec Indicatori di direzione delle articolazioni
+@translationof Articulation direction indicators
 
-By default some directions are always up or always down (e.g.
-dynamics or fermata), while other things can alternate between
-up or down based on the stem direction (like slurs or accents).
+Per impostazione predefinita alcune direzioni sono sempre in su o sempre in
+giù (es: le dinamiche o la corona), mentre altri elementi possono alternare
+tra su e giù in base alla direzione del gambo (come le legature di portamento
+o gli accenti).
 
 @c TODO Add table showing these
 
-The default action may be overridden by prefixing the articulation
-by a @emph{direction indicator}.  Three direction indicators are
-available: @code{^} (meaning @qq{up}), @code{_} (meaning @qq{down})
-and @code{-} (meaning @qq{use default direction}).  The direction
-indicator can usually be omitted, in which case @code{-} is assumed,
-but a direction indicator is @strong{always} required before
+L'azione predefinita può essere modificata anteponendo all'articolazione
+un @emph{indicatore di direzione}.  Sono disponbibili tre indicatori
+di direzione: @code{^} (ovvero @qq{su}), @code{_} (ovvero @qq{giù})
+e @code{-} (ovvero @qq{usa la direzione predefinita}).  L'indicatore di
+direzione solitamente può essere omesso, nel qual caso viene supposto @code{-},
+ma un indicatore di direzione è @strong{sempre} richiesto prima di
 
 @itemize
-@item @code{\tweak} commands
-@item @code{\markup} commands
-@item @code{\tag} commands
-@item string markups, e.g. -"string"
-@item fingering instructions, e.g. @w{@code{-1}}
-@item articulation shortcuts, e.g. @w{@code{-.}}, @w{@code{->}}, @w{@code{--}}
+@item comandi @code{\tweak}
+@item comandi @code{\markup}
+@item comandi @code{\tag}
+@item stringhe di testo, ovvero -"stringa"
+@item istruzioni di diteggiatura, come @w{@code{-1}}
+@item scorciatoie delle articolazioni, come @w{@code{-.}}, @w{@code{->}}, @w{@code{--}}
 @end itemize
 
-Direction indicators affect only the next note:
+Gli indicatori di direzione hanno effetto soltanto sulla nota vicina:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -2760,33 +2546,34 @@ Direction indicators affect only the next note:
 }
 @end lilypond
 
-@node The direction property
-@unnumberedsubsubsec The direction property
+@node La proprietà direction
+@unnumberedsubsubsec La proprietà direction
+@translationof The direction property
 
-The position or direction of many layout objects is controlled by the
-@code{direction} property.
+La posizione della direzione di molti oggetti della formattazione è regolata
+dalla proprietà @code{direction}.
 
-The value of the @code{direction} property may be set to @code{1},
-meaning @qq{up} or @qq{above}, or to @w{@code{-1}}, meaning @qq{down} or
-@qq{below}.  The symbols @code{UP} and @code{DOWN} may be used instead
-of @code{1} and @w{@code{-1}} respectively.  The default direction may
-be specified by setting @code{direction} to @code{0} or @code{CENTER}.
-Alternatively, in many cases predefined commands exist to specify the
-direction.  These are of the form
+Il valore della proprietà @code{direction} può essere impostata su @code{1},
+ovvero @qq{su} o @qq{sopra}, oppure su @w{@code{-1}}, ovvero @qq{giù} o
+@qq{sotto}.  I simboli @code{UP} e @code{DOWN} possono essere usati al
+posto di @code{1} e @w{@code{-1}}.  La direzione predefinita può essere
+specificata impostando @code{direction} su @code{0} o @code{CENTER}.
+Altrimenti, in molti casi esistono comandi predefiniti per specificare la
+direzione.  Questo hanno la forma
 
 @example
-@code{\xxxUp}, @code{\xxxDown} or @code{\xxxNeutral}
+@code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral}
 @end example
 
 @noindent
-where @code{\xxxNeutral} means @qq{use the default} direction.
-See @rlearning{Oggetti interni al rigo}.
+dove @code{\xxxNeutral} significa @qq{usa la direzione predefinita}.
+Vedi @rlearning{Oggetti interni al rigo}.
 
-In a few cases, arpeggio for example, the value of the @code{direction}
-property can specify whether the object is to be placed to the right or
-left of the parent.  In this case @w{@code{-1}} or @code{LEFT} means
-@qq{to the left} and @code{1} or @code{RIGHT} means @qq{to the right}.
-@code{0} or @code{CENTER} means @qq{use the default} direction.
+In pochi casi, per esempio l'arpeggio, il valore della proprietà @code{direction}
+può specificare se l'oggetto debba essere posizionato a destra o a sinistra
+dell'oggetto genitore.  In questo caso @w{@code{-1}} o @code{LEFT} significano
+@qq{a sinistra} e @code{1} o @code{RIGHT} significano @qq{a destra}.
+@code{0} o @code{CENTER} significano @qq{usa la direzione predefinita}.
 
 @ignore
 These all have side-axis set to #X
@@ -2797,7 +2584,7 @@ TrillPitchAccidental - not tried
 TrillPitchGroup - not tried
 @end ignore
 
-These indications affect all notes until they are canceled.
+Queste indicazioni hanno effetto su tutte le note finché non vengono annullate.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -2810,9 +2597,9 @@ These indications affect all notes until they are canceled.
 }
 @end lilypond
 
-In polyphonic music, it is generally better to specify an explicit
-@code{voice} than change an object's direction.  For more information.
-See @ref{Multiple voices}.
+Nella musica polifonica, generalmente è meglio specificare una voce esplicita
+invece di cambiare la direzione di un oggetto.  Maggiori informazioni
+in @ref{Multiple voices}.
 
 @seealso
 Manuale di apprendimento:
@@ -2822,8 +2609,9 @@ Guida alla notazione:
 @ref{Multiple voices}.
 
 
-@node Distances and measurements
-@subsection Distances and measurements
+@node Distanze e misurazioni
+@subsection Distanze e misurazioni
+@translationof Distances and measurements
 
 @cindex distances, absolute
 @cindex distances, scaled
@@ -2833,42 +2621,43 @@ Guida alla notazione:
 @funindex \in
 @funindex \pt
 
-Distances in LilyPond are of two types: absolute and scaled.
-
-Absolute distances are used for specifying margins, indents, and
-other page layout details, and are by default specified in
-millimeters.  Distances may be specified in other units by
-following the quantity by @code{\mm}, @code{\cm},
-@code{\in}@tie{}(inches), or @code{\pt}@tie{}(points, 1/72.27 of
-an inch).  Page layout distances can also be specified in scalable
-units (see the following paragraph) by appending
-@code{\staff-space} to the quantity.  Page layout is described in
-detail in @ref{Page layout}.
-
-Scaled distances are always specified in units of the staff-space
-or, rarely, the half staff-space.  The staff-space is the distance
-between two adjacent staff lines.  The default value can be changed
-globally by setting the global staff size, or it can be overridden
-locally by changing the @code{staff-space} property of
-@code{StaffSymbol}.  Scaled distances automatically scale with any
-change to the either the global staff size or the
-@code{staff-space} property of @code{StaffSymbol}, but fonts scale
-automatically only with changes to the global staff size.
-The global staff size thus enables the overall size of a rendered
-score to be easily varied.  For the methods of setting the global
-staff size see @ref{Setting the staff size}.
+Le distanze in LilyPond sono di due tipi: assolute e proporzionali.
+
+Le distanze assolute si usano per specificare i margini, le indentazioni e
+altri dettagli della formattazione di pagina; per impostazione predefinita
+sono specificate in millimetri.  Le distanze possono essere specificate in
+altre unità di misura appendendo alla quantità @code{\mm}, @code{\cm},
+@code{\in}@tie{}(inch, ovvero pollici) o @code{\pt}@tie{}(punti, 1/72.27 di
+un pollice).  Le distanze della formattazione di pagina possono essere
+specificate anche in unità di misura proporzionali (vedi paragrafo seguente)
+appendendo @code{\staff-space} alla quantità.  La formattazione di pagina è
+trattata dettagliatamente in @ref{Page layout}.
+
+Le distanze proporzionali sono sempre specificate in unità di spazi
+rigo o, raramente, mezzo spazio rigo.  Lo spazio rigo è la distanza
+tra due linee del rigo adiacenti.  Il valore predfinito può essere
+modificato globalmente impostando la dimensione globale del rigo oppure
+può essere sovrascritto localmente cambiando la proprietà @code{staff-space}
+di @code{StaffSymbol}.  Le distanze proporzionali vengono ridimensionate
+automaticamente insieme a qualsiasi cambiamento nella dimensione globale
+del rigo o nella proprietà @code{staff-space} di @code{StaffSymbol}, mentre i
+tipi di carattere vengono ridimensionati automaticamente soltanto con i
+cambiamenti alla dimensione globale del rigo.  Questa permette quindi di
+variare facilmente la dimensione complessiva di una partitura.  I metodi
+per impostare la dimensione globale del rigo sono descritti in
+@ref{Setting the staff size}.
 
 @funindex magstep
 
-If just a section of a score needs to be rendered to a different
-scale, for example an ossia section or a footnote, the global staff
-size cannot simply be changed as this would affect the entire score.
-In such cases the change in size is made by overriding both the
-@code{staff-space} property of @code{StaffSymbol} and the size of
-the fonts.  A Scheme function, @code{magstep}, is available to
-convert from a font size change to the equivalent change in
-@code{staff-space}.  For an explanation and an example of its use,
-see @rlearning{Lunghezza e spessore degli oggetti}.
+Se soltanto una sezione di una partitura deve essere elaborata su una
+scala diversa, per esempio una sezione ossia o una nota a piè di pagina,
+non si può cambiare la dimensione globale del rigo perché ciò avrebbe
+effetto sull'intera partitura.  In questi casi bisogna modificare sia
+la proprietà @code{staff-space} di @code{StaffSymbol} sia la dimensione
+dei tipi di carattere.  Esiste una funzione Scheme, @code{magstep}, che
+permette di convertire una modifica della dimensione del tipo di carattere
+nella modifica equivalente in @code{staff-space}.  Questa funzione è spiegata
+e esemplificata in @rlearning{Lunghezza e spessore degli oggetti}.
 
 @seealso
 Manuale di apprendimento:
@@ -2879,55 +2668,56 @@ Guida alla notazione:
 @ref{Setting the staff size}.
 
 
-@node Dimensions
-@subsection Dimensions
+@node Dimensioni
+@subsection Dimensioni
+@translationof Dimensions
 
-@cindex dimensions
-@cindex bounding box
+@cindex dimensioni
+@cindex riquadro intorno all'oggetto
 
-The dimensions of a graphical object specify the positions of the left
-and right edges and the bottom and top edges of the objects' bounding
-box as distances from the objects' reference point in units of
-staff-spaces.  These positions are usually coded as two Scheme pairs.
-For example, the text markup command @code{\with-dimensions} takes
-three arguments, the first two of which are a Scheme pair giving the
-left and right edge positions and a Scheme pair giving the bottom and
-top edge positions:
+Le dimensioni di un oggetto grafico specificano le posizioni delle estremità
+sinistra e destra e di quelle inferiore e superiore del riquadro in cui sono
+iscritti gli oggetti come distanze dal punto di riferimento degli oggetti in
+unità di spazi rigo.  Queste posizioni sono solitamente scritte come due
+coppie Scheme.  Per esempio, il comando di testo @code{\with-dimensions} prende
+tre argomenti: i primi due sono una coppia Scheme che indica le posizioni
+delle estremità sinistra e destra e un'altra coppia Scheme che indica le
+posizioni delle estremità inferiore e superiore:
 
 @example
 \with-dimensions #'(-5 . 10) #'(-3 . 15) @var{arg}
 @end example
 
-This specifies a bounding box for @var{arg} with its left edge at -5,
-its right edge at 10, its bottom edge at -3 and its top edge at 15,
-all measured from the objects' reference point in units of
-staff-spaces.
+Questo comando specifica un riquadro per @var{arg} il cui margine sinistro
+si trova a -5, il margine destro a 10, il margine inferiore a -3 e quello
+superiore a 15, tutti misurati a partire dal punto di riferimento degli
+oggetti in unità di spazi rigo.
 
 @seealso
 Guida alla notazione:
 @ref{Distances and measurements}.
 
 
-@node Staff symbol properties
-@subsection Staff symbol properties
+@node Proprietà del simbolo del rigo
+@subsection Proprietà del simbolo del rigo
+@translationof Staff symbol properties
 
-@cindex adjusting staff symbol
-@cindex drawing staff symbol
-@cindex staff symbol, setting of
+@cindex cambiare il simbolo del rigo
+@cindex disegnare il simbolo del rigo
+@cindex simbolo del rigo, impostazione del
 
 @c TODO Extend or remove this section.  See also NR 1.6.2 Staff symbol
 @c      Need to think of uses for these properties.  Eg 'line-positions
 @c      is used in a snippet to thicken centre line.
 @c      If retained, add @ref to here in 1.6.2  -td
 
-The vertical position of staff lines and the number of staff lines
-can be defined at the same time.  As the following example shows,
-note positions are not influenced by the staff line positions.
+La posizione verticale e il numero delle linee del rigo possono essere
+definiti contemporaneamente.  Come mostra l'esempio seguente, le posizioni
+delle note non sono influenzate dalle posizioni delle linee del rigo.
 
-@warning{The @code{'line-positions} property overrides the
-@code{'line-count} property.  The number of staff lines is
-implicitly defined by the number of elements in the list of values
-for @code{'line-positions}.}
+@warning{La proprietà @code{'line-positions} sovrascrive la proprietà
+@code{'line-count}.  Il numero di linee del rigo è definito implicitamente
+dal numero di elementi nella lista di valori per @code{'line-positions}.}
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -2936,9 +2726,9 @@ for @code{'line-positions}.}
 \relative { a4 e' f b | d1 }
 @end lilypond
 
-The width of a staff can be modified.  The units are staff
-spaces.  The spacing of objects inside the staff is not affected by
-this setting.
+La larghezza di un rigo può essere modificata.  Le unità sono spazi
+rigo.  La spaziatura degli oggetti dentro il rigo non è influenzata
+da questa impostazione.
 
 @lilypond[verbatim,quote]
 \new Staff \with {
@@ -2948,64 +2738,46 @@ this setting.
 @end lilypond
 
 
-@node Spanners
-@subsection Spanners
+@node Estensori
+@subsection Estensori
+@translationof Spanners
 
-Many objects of musical notation extend over several notes or even
-several bars.  Examples are slurs, beams, tuplet brackets, volta
-repeat brackets, crescendi, trills, and glissandi.  Such objects
-are collectively called @qq{spanners}, and have special properties to control
-their appearance and behaviour.  Some of these properties are common
-to all spanners; others are restricted to a sub-set of the spanners.
+Molti oggetti della notazione musicale si estendono per varie note o addirittura
+per molte battute.  Ne sono un esempio le legature di portamento, le travature,
+le parentesi dei gruppi irregolari, quelle delle volte delle ripetizioni, i
+crescendi, i trilli e i glissandi.  Tali oggetti vengono chiamati @qq{estensori}
+(o spanner, in inglese) e hanno delle proprietà speciali per regolare il loro
+aspetto e comportamento.  Alcune di queste proprietà sono comuni a tutti gli
+estensori; altre sono limitate a un sottoinsieme di estensori.
 
-All spanners support the @code{spanner-interface}.  A few, essentially
-those that draw a straight line between the two objects, support in
-addition the @code{line-spanner-interface}.
+Tutti gli estensori supportano l'interfaccia @code{spanner-interface}.  Ma pochi,
+essenzialmente quelli che disegnano una linea dritta tra due oggetti, supportano
+anche l'interfaccia @code{line-spanner-interface}.
 
 @menu
-* Using the spanner-interface::
-* Using the line-spanner-interface::
+* Uso di spanner-interface::
+* Uso di line-spanner-interface::
 @end menu
 
-@node Using the spanner-interface
-@unnumberedsubsubsec Using the @code{spanner-interface}
-
-This interface provides two properties that apply to several spanners.
+@node Uso di spanner-interface
+@unnumberedsubsubsec Uso di @code{spanner-interface}
+@translationof Using the spanner-interface
 
-@subsubsubheading The @code{minimum-length} property
+Questa interfaccia fornisce due proprietà che si applicano a vari estensori.
 
-The minimum length of the spanner is specified by the
-@code{minimum-length} property.  Increasing this usually has the
-necessary effect of increasing the spacing of the notes between the
-two end points.  However, this override has no effect on
-many spanners, as their length is determined by other considerations.
-A few examples where it is effective are shown below.
+@subsubsubheading La proprietà @code{minimum-length}
 
-@ignore
-Works for:
-  Tie
-  MultiMeasureRest
-  Hairpin
-  Slur
-  PhrasingSlur
-
-Works as long as callback is made:
-  Glissando
-  Beam
-
-Works not at all for:
-  LyricSpace
-  LyricHyphen
-  LyricExtender
-  TextSpanner
-  System
-
-@end ignore
+La lunghezza minima dell'estensore è specificata dalla proprietà
+@code{minimum-length}.  Aumentando questa si aumenta necessariamente
+anche la spaziatura delle note comprese tra le due estremità.
+Tuttavia questa modifica non ha effetto su molti estensori, perché
+la loro lunghezza è determinata da altre considerazioni.  Di seguito
+vengono mostrati alcuni esempi in cui è in funzione.
 
 @lilypond[verbatim,quote,fragment]
 a'~ a'
 a'
-% increase the length of the tie
+% aumenta la lunghezza della legatura di valore
 -\tweak minimum-length #5
 ~ a'
 @end lilypond
@@ -3014,7 +2786,7 @@ a'
 \relative \compressMMRests {
   a'1
   R1*23
-  % increase the length of the rest bar
+  % aumenta la lunghezza della misura con pausa
   \once \override MultiMeasureRest.minimum-length = #20
   R1*23
   a1
@@ -3024,14 +2796,14 @@ a'
 @lilypond[verbatim,quote]
 \relative {
   a' \< a a a \!
-  % increase the length of the hairpin
+  % aumenta la lunghezza della forcella
   \override Hairpin.minimum-length = #20
   a \< a a a \!
 }
 @end lilypond
 
-This override can also be used to increase the length of slurs and
-phrasing slurs:
+Questa modifica può essere usata anche per aumentare la lunghezza delle
+legature di portamento e di frase:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -3047,48 +2819,47 @@ phrasing slurs:
 }
 @end lilypond
 
-For some layout objects, the @code{minimum-length} property becomes
-effective only if the @code{set-spacing-rods} procedure is called
-explicitly.  To do this, the @code{springs-and-rods} property should
-be set to @code{ly:spanner::set-spacing-rods}.  For example,
-the minimum length of a glissando has no effect unless the
-@code{springs-and-rods} property is set:
+Per alcuni oggetti della formattazione, la proprietà @code{minimum-length}
+diventa effettiva solo se viene richiamata esplicitamente la procedura
+@code{set-spacing-rods}.  Per farlo, la proprietà @code{springs-and-rods}
+deve essere impostata su @code{ly:spanner::set-spacing-rods}.  Per esempio,
+la lunghezza minima di un glissando cambia solo quando si imposta la
+proprietà @code{springs-and-rods}:
 
 @lilypond[verbatim,fragment,quote]
 % default
 e' \glissando c''
 
-% not effective alone
+% non funziona da sola
 \once \override Glissando.minimum-length = #20
 e' \glissando c''
 
-% effective only when both overrides are present
+% funziona solo quando entrambe le modifiche sono presenti
 \once \override Glissando.minimum-length = #20
 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e' \glissando c''
 @end lilypond
 
-The same is true of the @code{Beam} object:
+Lo stesso vale per l'oggetto @code{Beam}:
 
 @lilypond[verbatim,fragment,quote]
-% not effective alone
+% non funziona da sola
 \once \override Beam.minimum-length = #20
 e'8 e' e' e'
 
-% effective only when both overrides are present
+% funziona solo quando entrambe le modifiche sono presenti
 \once \override Beam.minimum-length = #20
 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e'8 e' e' e'
 @end lilypond
 
-@subsubsubheading The @code{to-barline} property
+@subsubsubheading La proprietà @code{to-barline}
 
-The second useful property of the @code{spanner-interface} is
-@code{to-barline}.  By default this is true, causing hairpins and
-other spanners which are terminated on the first note of a measure to
-end instead on the immediately preceding bar line.  If set to false,
-the spanner will extend beyond the bar line and end on the note
-itself:
+La seconda proprietà utile di @code{spanner-interface} è
+@code{to-barline}.  Il valore predefinito (vero) fa sì che le forcelle e
+gli altri estensori che terminano sulla prima nota di una misura si estendano
+invece fino alla stanghetta immediatamente precedente.  Se impostata su falso,
+l'estensore andrà oltre la stanghetta e terminerà sulla nota stessa:
 
 @lilypond[verbatim,quote]
 \relative {
@@ -3098,15 +2869,17 @@ itself:
 }
 @end lilypond
 
-This property is not effective for all spanners.  For example,
-setting it to @code{#t} has no effect on slurs or phrasing slurs
-or on other spanners for which terminating on the bar line would
-not be meaningful.
+Questa proprietà non funziona con tutti gli estensori.  Per esempio,
+impostandola su @code{#t} non si produce alcun effetto su legature di
+portamento o di frase, o su altri estensori per i quali terminare sulla
+stanghetta non avrebbe senso.
 
-@node Using the line-spanner-interface
-@unnumberedsubsubsec Using the @code{line-spanner-interface}
 
-Objects which support the @code{line-spanner-interface} include
+@node Uso di line-spanner-interface
+@unnumberedsubsubsec Uso di @code{line-spanner-interface}
+@translationof Using the line-spanner-interface
+
+Gli oggetti che supportano l'interfaccia @code{line-spanner-interface} comprendono:
 
 @itemize
 @item @code{DynamicTextSpanner}
@@ -3116,15 +2889,14 @@ Objects which support the @code{line-spanner-interface} include
 @item @code{VoiceFollower}
 @end itemize
 
-The routine responsible for drawing the stencils for these spanners is
-@code{ly:line-spanner::print}.  This routine determines the
-exact location of the two end points and draws a line
-between them, in the style requested.  The locations of the two
-end points of the spanner are computed on-the-fly, but it is
-possible to override their Y-coordinates.  The
-properties which need to be specified are nested
-two levels down within the property hierarchy, but the syntax of
-the @code{\override} command is quite simple:
+La routine responsabile del disegno di questi estensori è
+@code{ly:line-spanner::print}.  Essa determina la posizione esatta
+delle due estremità e disegna una linea tra di esse, nello stile
+richiesto.  Le posizioni delle due estremità dell'estensore sono
+calcolate al volo, ma è possibile  sovrascrivere le loro coordinate
+Y.  Le proprietà da specificare sono annidate di due livelli nella
+gerarchia della proprietà, ma la sintassi del comando @code{\override}
+è piuttosto semplice:
 
 @lilypond[quote,fragment,verbatim]
 e''2 \glissando b'
@@ -3133,18 +2905,18 @@ e''2 \glissando b'
 e''2 \glissando b'
 @end lilypond
 
-The units for the @code{Y} property are @code{staff-space}s,
-with the center line of the staff being the zero point.
-For the glissando, this is the value for @code{Y} at the
-X-coordinate corresponding to the center point of each note head,
-if the line is imagined to be extended to there.
+Le unità di misura della proprietà @code{Y} sono gli spazi rigo
+(@code{staff-space}), con la linea centrale del rigo che è il
+punto zero.  Per il glissando, questo è il valore per @code{Y} alla
+coordinata X che corrisponde al punto centrale della testa di ogni
+nota, se si immagina che la linea si estenda fino a là.
 
-If @code{Y} is not set, the value is computed from the vertical
-position of the corresponding attachment point of the spanner.
+Se @code{Y} non è impostato, il valore viene calcolato dalla posizione
+verticale del punto di attacco corrispondente dell'estensore.
 
-In case of a line break, the values for the end points are
-specified by the @code{left-broken} and @code{right-broken}
-sub-lists of @code{bound-details}.  For example:
+In caso di un'interruzione di linea, i valori per le estremità sono
+specificati dalle sottoliste @code{left-broken} e @code{right-broken}
+di @code{bound-details}.  Per esempio:
 
 @lilypond[ragged-right,fragment,verbatim,quote]
 \override Glissando.breakable = ##t
@@ -3154,52 +2926,52 @@ f''1
 @end lilypond
 
 
-A number of further properties of the @code{left} and
-@code{right} sub-lists of the @code{bound-details} property
-may be modified in the same way as @code{Y}:
+Altre proprietà delle sottoliste @code{left} e @code{right} della proprietà
+@code{bound-details} possono essere modificate nello stesso modo di @code{Y}:
 
 @table @code
 @item Y
-This sets the Y-coordinate of the end point, in @code{staff-space}s
-offset from the staff center line.  By default, it is the center of
-the bound object, so a glissando points to the vertical center of
-the note head.
+Questa imposta la coordinata Y dell'estremità, che si sposta di un certo
+numero di @code{staff-space} dalla linea centrale del rigo.  Per impostazione
+predefinita, è il centro dell'oggetto a cui è associato, dunque un glissando
+punta al centro verticale della testa di nota.
 
-For horizontal spanners, such as text spanners and trill spanners,
-it is hardcoded to 0.
+Nel caso di estensori orizzontali, come quelli del testo e del trillo,
+il suo valore è fisso su 0.
 
 @item attach-dir
-This determines where the line starts and ends in the X-direction,
-relative to the bound object.  So, a value of @w{@code{-1}} (or
-@code{LEFT}) makes the line start/end at the left side of the note
-head it is attached to.
+Questa determina dove la linea inizia e termina nella direzione X,
+relativa all'oggetto a cui è associato.  Quindi un valore di @w{@code{-1}} (o
+@code{LEFT}) fa sì che la linea inizi/termini sul lato sinistro della testa
+della nota a cui è attaccata.
 
 @item X
-This is the absolute X-coordinate of the end point.  It is usually
-computed on the fly, and overriding it has little useful effect.
+Questa è la coordinata X assoluta dell'estremità.  Viene solitamente calcolata
+al volo e sovrascriverla produce solitamente un effetto poco utile.
 
 @item stencil
-Line spanners may have symbols at the beginning or end, which is
-contained in this sub-property.  This is for internal use; it is
-recommended that @code{text} be used instead.
+Gli estensori della linea possono avere dei simboli all'inizio o alla fine,
+contenuti in questa sottoproprietà.  Questa proprietà è per uso interno;
+si raccomanda di usare @code{text} al suo posto.
 
 @item text
-This is a markup that is evaluated to yield the stencil.  It is used
-to put @i{cresc.}, @i{tr} and other text on horizontal spanners.
+Questo è un testo markup che viene valutato per produrre lo stampo (stencil,
+in inglese).  Viene usato per mettere @i{cresc.}, @i{tr} e altro testo su
+estensori orizzontali.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 \override TextSpanner.bound-details.left.text
-   = \markup { \small \bold Slower }
+   = \markup { \small \bold Rall. }
 \relative { c''2\startTextSpan b c a\stopTextSpan }
 @end lilypond
 
 @item stencil-align-dir-y
 @item stencil-offset
-Without setting one of these, the stencil is simply put at the
-end-point, centered on the line, as defined by the @code{X} and
-@code{Y} sub-properties.  Setting either @code{stencil-align-dir-y}
-or @code{stencil-offset} will move the symbol at the edge vertically
-relative to the end point of the line:
+Se non si imposta una di queste proprietà, lo stampo viene messo semplicemente
+all'estremità, centrato sulla linea, come definito nelle sottoproprietà
+@code{X} e @code{Y}.  Impostando @code{stencil-align-dir-y} o
+@code{stencil-offset} il simbolo si sposterà verticalmente sul margine
+rispetto all'estremità della linea:
 
 @lilypond[quote,fragment,verbatim]
 \override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
@@ -3211,28 +2983,27 @@ relative to the end point of the line:
 \relative { c'4^\startTextSpan c c c \stopTextSpan }
 @end lilypond
 
-Note that negative values move the text @emph{up}, contrary to the
-effect that might be expected, as a value of @w{@code{-1}} or
-@code{DOWN} means align the @emph{bottom} edge of the text with
-the spanner line.  A value of @code{1} or @code{UP} aligns
-the top edge of the text with the spanner line.
+Nota bene che valori negativi spostano il testo in @emph{su}, contrariamente
+a quanto si potrebbe pensare, perché un valore di @w{@code{-1}} o
+@code{DOWN} fa sì che si allinei il margine @emph{inferiore} del testo con
+la linea dell'estensore.  Un valore di @code{1} o @code{UP} allinea il margine
+superiore del testo con la linea dell'estensore.
 
 @item arrow
-Setting this sub-property to @code{#t} produces an arrowhead at the
-end of the line.
+Impostando questa sottoproprietà su @code{#t} viene generata la punta di una
+freccia a un'estremità della linea.
 
 @item padding
-This sub-property controls the space between the specified
-end point of the line and the actual end.  Without padding, a
-glissando would start and end in the center of each note head.
+Questa sottoproprietà regola lo spazio tra l'estremità della linea specificata
+e la fine reale.  Senza padding, un glissando inizia e termina nel centro della
+testa di ogni nota.
 
 @end table
 
-The music function @code{\endSpanners} terminates the spanner
-which starts on the immediately following note prematurely.  It
-is terminated after exactly one note, or at the following bar line
-if @code{to-barline} is true and a bar line occurs before the next
-note.
+La funzione musicale @code{\endSpanners} termina prematuramente l'estensore
+che inizia nella nota immediatamente seguente.  Viene terminato esattamente
+dopo una nota o alla stanghetta seguente se @code{to-barline} è impostato
+su vero e c'è una stanghetta prima della nota successiva.
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -3243,9 +3014,9 @@ note.
 }
 @end lilypond
 
-When using @code{\endSpanners} it is not necessary to close
-\startTextSpan with \stopTextSpan, nor is it necessary to close
-hairpins with @code{\!}.
+Quando si usa @code{\endSpanners} non è necessario chiudere
+\startTextSpan con \stopTextSpan, né è necessario chiudere le
+forcelle con @code{\!}.
 
 @seealso
 Guida al funzionamento interno:
@@ -3256,45 +3027,49 @@ Guida al funzionamento interno:
 @rinternals{line-spanner-interface}.
 
 
-@node Visibility of objects
-@subsection Visibility of objects
+@node Visibilità degli oggetti
+@subsection Visibilità degli oggetti
+@translationof Visibility of objects
 
 @cindex objects, visibility of
 @cindex grobs, visibility of
 @cindex visibility of objects
 
-There are four main ways in which the visibility of layout objects
-can be controlled: their stencil can be removed, they can be made
-transparent, they can be colored white, or their
-@code{break-visibility} property can be overridden.  The first
-three apply to all layout objects; the last to just a few -- the
-@emph{breakable} objects.  The Manuale di apprendimento introduces these
-four techniques, see @rlearning{Visibilità e colore degli oggetti}.
+Esistono quattro modi principali per regolare la visibilità degli oggetti della
+formattazione: si può togliere il loro stampo, possono essere resi trasparenti,
+possono essere colorati di bianco o si può sovrascrivere la loro proprietà
+@code{break-visibility}.  Le prime tre sono valide per tutti gli oggetti
+della formattazione; l'ultimo solo per alcuni, gli oggetti che possono essere
+@emph{interrotti}, o spezzati, (break, in inglese).
+Il Manuale di apprendimento contiene un'introduzione a queste quattro tecniche
+in @rlearning{Visibilità e colore degli oggetti}.
 
-There are also a few other techniques which are specific to
-certain layout objects.  These are covered under Special
-considerations.
+Esistono anche altre tecniche che sono specifiche di alcuni oggetti della
+formattazione.  Queste sono trattate in @ref{Special considerations}.
 
 @menu
-* Removing the stencil::
-* Making objects transparent::
-* Painting objects white::
-* Using break-visibility::
-* Special considerations::
+* Soppressione dello stampo::
+* Rendere gli oggetti trasparenti::
+* Dipingere gli oggetti di bianco::
+* Uso di break-visibility::
+* Considerazioni speciali::
 @end menu
 
 
-@node Removing the stencil
-@unnumberedsubsubsec Removing the stencil
+@node Soppressione dello stampo
+@unnumberedsubsubsec Soppressione dello stampo
+@translationof Removing the stencil
 
-@cindex stencil, removing
+@cindex stencil, soppressione
+@cindex stampo, soppressione
 @funindex \omit
 
-Every layout object has a stencil property.  By default this is set
-to the specific function which draws that object.  If this property
-is overridden to @code{#f} no function will be called and the object
-will not be drawn.  The default action can be recovered with
-@code{\revert}.
+Tutti gli oggetti della formattazione hanno una proprietà @code{stencil} (in
+italiano, stampo).  Per impostazione predefinita questa è impostata sulla
+funzione specifica che disegna quell'oggetto.  Se questa proprietà viene
+sovrascritta e impostata su @code{#f}, non verrà richiamata alcuna funzione
+e l'oggetto non verrà disegnato.  L'azione predefinita può essere ripristinata
+con @code{\revert}.
 
 @lilypond[quote,fragment,verbatim]
 a1 a
@@ -3304,7 +3079,7 @@ a a
 a a a
 @end lilypond
 
-This rather common operation has a shortcut @code{\omit}:
+Questa operazione piuttosto comune ha una scorciatoia, @code{\omit}:
 
 @lilypond[quote,fragment,verbatim]
 a1 a
@@ -3314,15 +3089,17 @@ a a
 a a a
 @end lilypond
 
-@node Making objects transparent
-@unnumberedsubsubsec Making objects transparent
 
-@cindex transparent, making objects
+@node Rendere gli oggetti trasparenti
+@unnumberedsubsubsec Rendere gli oggetti trasparenti
+@translationof Making objects transparent
+
+@cindex transparenti, rendere gli oggetti
 @funindex \hide
 
-Every layout object has a transparent property which by default is
-set to @code{#f}.  If set to @code{#t} the object still occupies
-space but is made invisible.
+Tutti gli oggetti della formattazione hanno una proprietà @code{transparent}
+la cui impostazione predefinita è @code{#f} (falso).  Se impostata su @code{#t}
+(vero), l'oggetto occupa sempre lo spazio ma è reso invisibile.
 
 @lilypond[quote,fragment,verbatim]
 a'4 a'
@@ -3330,7 +3107,7 @@ a'4 a'
 a' a'
 @end lilypond
 
-This rather common operation has a shortcut @code{\hide}:
+Questa operazione piuttosto comune ha una scorciatoia, @code{\hide}:
 
 @lilypond[quote,fragment,verbatim]
 a'4 a'
@@ -3338,45 +3115,49 @@ a'4 a'
 a' a'
 @end lilypond
 
-@node Painting objects white
-@unnumberedsubsubsec Painting objects white
-
-@cindex objects, coloring
-@cindex coloring objects
-@cindex layers
-@cindex printing order
-@cindex overwriting objects
-@cindex objects, overwriting
-@cindex grobs, overwriting
-
-Every layout object has a color property which by default is set
-to @code{black}.  If this is overridden to @code{white} the object
-will be indistinguishable from the white background.  However,
-if the object crosses other objects the color of the crossing
-points will be determined by the order in which they are drawn,
-and this may leave a ghostly image of the white object, as shown
-here:
+
+@node Dipingere gli oggetti di bianco
+@unnumberedsubsubsec Dipingere gli oggetti di bianco
+@translationof Painting objects white
+
+@cindex oggetti, colorare
+@cindex colorare gli oggetti
+@cindex strati
+@cindex ordine di stampa
+@cindex sovrascrivere gli oggetti
+@cindex oggetti, sovrascrivere
+@cindex grob, sovrascrivere
+
+Tutti gli oggetti della formattazione hanno una proprietà del colore il cui
+valore predefinito è @code{black} (nero).  Se questa viene sovrascritta con
+@code{white} (bianco) l'oggetto non sarà più distinguibile dallo sfondo.  Tuttavia
+se l'oggetto attraversa altri oggetti, il colore dei punti di contatto saranno
+determinati dall'ordine in cui sono disegnati, e ciò potrebbe lasciare
+un'immagine @qq{spettrale} dell'oggetto bianco, come mostrato qui:
 
 @lilypond[quote,fragment,verbatim]
 \override Staff.Clef.color = #white
 a'1
 @end lilypond
 
-This may be avoided by changing the order of printing the objects.
-All layout objects have a @code{layer} property which should be set
-to an integer.  Objects with the lowest value of @code{layer} are
-drawn first, then objects with progressively higher values are drawn,
-so objects with higher values overwrite objects with lower values.
-By default most objects are assigned a @code{layer} value of
-@code{1}, although a few objects, including @code{StaffSymbol} and
-@code{BarLine}, are assigned a value of @code{0}.  The order of
-printing objects with the same value of @code{layer} is indeterminate.
-
-In the example above the white clef, with a default @code{layer}
-value of @code{1}, is drawn after the staff lines (default
-@code{layer} value @code{0}), so overwriting them.  To change this,
-the @code{Clef} object must be given in a lower value of
-@code{layer}, say @w{@code{-1}}, so that it is drawn earlier:
+Ciò può essere evitato cambiando l'ordine di stampa degli oggetti.
+Tutti gli oggetti della formattazione hanno una proprietà @code{layer}
+(strato) che deve essere impostata su un numero intero.
+Gli oggetti col valore più basso di @code{layer} sono disegnati
+per primi, poi vengono disegnati quelli con valori via via più
+alti, dunque gli oggetti con valori più alti stanno sopra gli
+oggetti con valori più bassi.  Per impostazione predefinita alla
+maggior parte degli oggetti viene assegnato un valore di @code{layer}
+pari a @code{1}, sebbene ad alcuni oggetti, tra cui @code{StaffSymbol} e
+@code{BarLine}, sia assegnato un valore di @code{0}.  L'ordine con cui
+vengono stampati oggetti con lo stesso valore di @code{layer} è indeterminato.
+
+Nell'esempio precedente la chiave bianca, con un valore predefinito di
+@code{layer} di @code{1}, viene disegnato dopo le linee del rigo (il cui
+valore predefinito di @code{layer} è @code{0}), dunque sta sopra di esse.
+Per cambiare tale comportamento, all'oggetto @code{Clef} deve essere assegnato
+un valore di @code{layer} inferiore, per esempio @w{@code{-1}}, in modo che
+venga disegnato prima:
 
 @lilypond[quote,fragment,verbatim]
 \override Staff.Clef.color = #white
@@ -3384,71 +3165,70 @@ the @code{Clef} object must be given in a lower value of
 a'1
 @end lilypond
 
-@node Using break-visibility
-@unnumberedsubsubsec Using break-visibility
+@node Uso di break-visibility
+@unnumberedsubsubsec Uso di break-visibility
+@translationof Using break-visibility
 
 @c TODO Add making other objects breakable
 
 @cindex break-visibility
 
-Most layout objects are printed only once, but some like
-bar lines, clefs, time signatures and key signatures, may need
-to be printed twice when a line break occurs -- once at the end
-of the line and again at the start of the next line.  Such
-objects are called @emph{breakable}, and have a property, the
-@code{break-visibility} property to control their visibility
-at the three positions in which they may appear -- at the
-start of a line, within a line if they are changed, and at the
-end of a line if a change takes place there.
-
-For example, the time signature
-by default will be printed at the start of the first line, but
-nowhere else unless it changes, when it will be printed at the
-point at which the change occurs.  If this change occurs at the
-end of a line the new time signature will be printed at the start
-of the next line and a cautionary time signature will be printed
-at the end of the previous line as well.
-
-This behaviour is controlled by the @code{break-visibility}
-property, which is explained in
-@c Leave this ref on a newline - formats incorrectly otherwise -td
-@rlearning{Visibilità e colore degli oggetti}.  This property takes
-a vector of three booleans which, in order, determine whether the
-object is printed at the end of, within the body of, or at the
-beginning of a line.  Or to be more precise, before a line break,
-where there is no line break, or after a line break.
-
-Alternatively, these eight combinations may be specified
-by pre-defined functions, defined in @file{scm/output-lib.scm},
-where the last three columns indicate whether the layout objects
-will be visible in the positions shown at the head of the columns:
-
-@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Before} {At no} {After}
-@headitem Function                   @tab Vector                 @tab Before @tab At no    @tab After
-@headitem form                       @tab form                   @tab break  @tab break    @tab break
-
-@item @code{all-visible}             @tab @code{#(#t #t #t)}     @tab yes    @tab yes      @tab yes
-@item @code{begin-of-line-visible}   @tab @code{#(#f #f #t)}     @tab no     @tab no       @tab yes
-@item @code{center-visible}          @tab @code{#(#f #t #f)}     @tab no     @tab yes      @tab no
-@item @code{end-of-line-visible}     @tab @code{#(#t #f #f)}     @tab yes    @tab no       @tab no
-@item @code{begin-of-line-invisible} @tab @code{#(#t #t #f)}     @tab yes    @tab yes      @tab no
-@item @code{center-invisible}        @tab @code{#(#t #f #t)}     @tab yes    @tab no       @tab yes
-@item @code{end-of-line-invisible}   @tab @code{#(#f #t #t)}     @tab no     @tab yes      @tab yes
-@item @code{all-invisible}           @tab @code{#(#f #f #f)}     @tab no     @tab no       @tab no
+La maggior parte degli oggetti della formattazione sono stampati una
+volta sola, ma alcuni come le stanghette, le chiavi, le indicazioni
+di tempo e le armature di chiave possono dover essere stampate
+due volte quando si verifica un'interruzione di linea -- una volta al
+termine della linea e di nuovo all'inizio della linea successiva.
+Tali oggetti, chiamati @emph{spezzabili}, (dall'inglese breakable)
+hanno una proprietà, @code{break-visibility}, per regolare
+la loro visibilità nelle tre posizioni in cui potrebbero apparire:
+all'inizio di una linea, in mezzo a una linea se vengono modificati
+e al termine di una linea se un cambiamento ha luogo lì.
+
+Per esempio, l'indicazione di tempo viene stampata all'inizio della
+prima linea, ma da nessuna altra parte a meno che non cambi e allora
+verrà stampata nel punto in cui il cambiamento ha luogo.  Se tale
+cambiamento si verifica al termine di una linea, la nuova indicazione
+di tempo verrà stampata all'inizio della linea successiva e un'indicazione
+di tempo di precauzione verrà stampata anche al termine della linea precedente.
+
+Tale comportamento è regolato dalla proprietà @code{break-visibility}, che
+è spiegata in @rlearning{Visibilità e colore degli oggetti}.  Questa proprietà
+prende un vettore di tre valori booleani che, in ordine, determinano se
+l'oggetto è stampato al termine, in mezzo o all'inizio di una linea.  O, per
+essere più precisi, prima di un'interruzione di linea, dove non c'è
+un'interruzione di linea oppure dopo un'interruzione di linea.
+
+Altrimenti, queste otto combinazoni possono essere specificate da
+funzioni predefinite, definite in @file{scm/output-lib.scm},
+dove le ultime tre colonne indicano se gli oggetti della formattazione
+saranno visibili nelle posizioni mostrate nell'intestazione delle colonne:
+
+@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Prima} {Senza} {Dopo}
+@headitem Funzione                   @tab Forma                  @tab Prima di      @tab Senza           @tab Dopo
+@headitem                            @tab vettoriale             @tab interruzione  @tab interruzione    @tab interruzione
+
+@item @code{all-visible}             @tab @code{#(#t #t #t)}     @tab sì            @tab sì              @tab sì
+@item @code{begin-of-line-visible}   @tab @code{#(#f #f #t)}     @tab no            @tab no              @tab sì
+@item @code{center-visible}          @tab @code{#(#f #t #f)}     @tab no            @tab sì              @tab no
+@item @code{end-of-line-visible}     @tab @code{#(#t #f #f)}     @tab sì            @tab no              @tab no
+@item @code{begin-of-line-invisible} @tab @code{#(#t #t #f)}     @tab sì            @tab sì              @tab no
+@item @code{center-invisible}        @tab @code{#(#t #f #t)}     @tab sì            @tab no              @tab sì
+@item @code{end-of-line-invisible}   @tab @code{#(#f #t #t)}     @tab no            @tab sì              @tab sì
+@item @code{all-invisible}           @tab @code{#(#f #f #f)}     @tab no            @tab no              @tab no
 @end multitable
 
-The default settings of @code{break-visibility} depend on the
-layout object.  The following table shows all the layout objects
-of interest which are affected by @code{break-visibility} and the
-default setting of this property:
+Le impostazioni predefinite di @code{break-visibility} dipendono dall'oggetto
+della formattazione.  La tabella seguente mostra tutti gli oggetti rilevanti
+che sono influenzati da @code{break-visibility} e l'impostazione predefinita
+di questa proprietà:
 
 @multitable @columnfractions .3 .3 .4
 
-@headitem Layout object   @tab Usual context  @tab Default setting
+@headitem Oggetto formattazione   @tab Contesto abituale  @tab Impostazione predefinita
 
 @c omit Ambitus as it appears not to be affected by break-visibility -td
 @c @item @code{Ambitus}          @tab as specified   @tab @code{begin-of-line-visible}
-@item @code{BarLine}             @tab @code{Score}          @tab calculated
+@item @code{BarLine}             @tab @code{Score}          @tab calcolato
 @item @code{BarNumber}           @tab @code{Score}          @tab @code{begin-of-line-visible}
 @c omit the following item until it can be explained -td
 @c @item @code{BreakAlignGroup}  @tab @code{Score}          @tab calculated
@@ -3466,14 +3246,14 @@ default setting of this property:
 
 @end multitable
 
-The example below shows the use of the vector form to control the
-visibility of bar lines:
+L'esempio successivo mostra l'uso della forma vettoriale per regolare la
+visibilità delle stanghette:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
   f'4 g a b
   f4 g a b
-  % Remove bar line at the end of the current line
+  % Toglie la stanghetta al termine della linea corrente
   \once \override Score.BarLine.break-visibility = ##(#f #t #t)
   \break
   f4 g a b
@@ -3481,47 +3261,49 @@ visibility of bar lines:
 }
 @end lilypond
 
-Although all three components of the vector used to override
-@code{break-visibility} must be present, not all of them are
-effective with every layout object, and some combinations may
-even give errors.  The following limitations apply:
+Sebbene tutti i componenti del vettore usati per sovrascrivere
+@code{break-visibility} debbano essere presenti, non tutti sono
+funzionanti con qualsiasi oggetto della formattazione, e alcune
+combinazioni potrebbero perfino dare errore.  Esistono le seguenti
+limitazioni:
 
 @itemize @bullet
-@item Bar lines cannot be printed at start of line.
-@item A bar number cannot be printed at the start of the first
-line unless it is set to be different from 1.
-@item Clef -- see below
-@item Double percent repeats are either all printed or all
-suppressed.  Use begin-of line-invisible to print and
-all-invisible to suppress.
-@item Key signature -- see below
-@item ClefModifier -- see below
+@item Non è possibile stampare le stanghette all'inizio di una linea.
+@item Un numero di battuta non può essere stampato all'inizio della prima
+linea a meno che non sia impostato per essere diverso da 1.
+@item Clef -- vedi sotto.
+@item Le ripetizioni percentuali doppie sono o tutte stampate o tutte soppresse.
+Usare begin-of-line-invisible per stampare e all-invisible per sopprimere.
+@item Key signature -- vedi sotto.
+@item ClefModifier -- vedi sotto.
 @end itemize
 
-@node Special considerations
-@unnumberedsubsubsec Special considerations
 
-@subsubsubheading Visibility following explicit changes
+@node Considerazioni speciali
+@unnumberedsubsubsec Considerazioni speciali
+@translationof Special considerations
 
-@cindex key signature, visibility following explicit change
+@subsubsubheading Visibilità dopo un cambio esplicito
+
+@cindex armatura di chiave, visibilità dopo un cambio esplicito
 @cindex explicitKeySignatureVisibility
-@cindex clef, visibility following explicit change
+@cindex chiave, visibilità dopo un cambio esplicito
 @cindex explicitClefVisibility
 
-The @code{break-visibility} property controls the visibility of
-key signatures and changes of clef only at the start of lines,
-i.e. after a break.  It has no effect on the visibility of the
-key signature or clef following an explicit key change or an
-explicit clef change within or at the end of a line.  In the
-following example the key signature following the explicit change
-to B-flat major is still visible, even though @code{all-invisible}
-is set.
+La proprietà @code{break-visibility} controlla la visibilità delle
+armature di chiave e dei cambi di chiave solo all'inizio delle linee,
+ovvero dopo un'interruzione di linea.  Non ha effetto sulla visibilità
+dell'armatura di chiave o della chiave che seguono un cambio esplicito
+dell'armatura o della chiave all'interno o alla fine di una linea.
+Nell'esempio seguente l'armatura di chiave che segue il cambio esplicito
+a Si bemolle maggiore è ancora visibile, anche se @code{all-invisible}
+è impostata.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
   \key g \major
   f'4 g a b
-  % Try to remove all key signatures
+  % Tentativo di eliminazione di tutte le armature di chiave
   \override Staff.KeySignature.break-visibility = #all-invisible
   \key bes \major
   f4 g a b
@@ -3531,19 +3313,18 @@ is set.
 }
 @end lilypond
 
-The visibility of such explicit key signature and clef changes is
-controlled by the @code{explicitKeySignatureVisibility} and
-@code{explicitClefVisibility} properties.  These are the equivalent
-of the @code{break-visibility} property and both take a vector of
-three booleans or the predefined functions listed above, exactly like
-@code{break-visibility}.  Both are properties of the Staff context,
-not the layout objects themselves, and so they are set using the
-@code{\set} command.  Both are set by default to @code{all-visible}.
-These properties control only the visibility of key signatures and
-clefs resulting from explicit changes and do not affect key
-signatures and clefs at the beginning of lines;
-@code{break-visibility} must still be overridden in the appropriate
-object to remove these.
+La visibilità di questi cambi espliciti di armatura e di chiave è
+controllata dalle proprietà @code{explicitKeySignatureVisibility} e
+@code{explicitClefVisibility}.  Sono equivalenti alla proprietà
+@code{break-visibility} e prendono entrambe come argomento un vettore
+di tre booleani o le funzioni predefinite elencate prima, proprio
+come @code{break-visibility}.  Entrambe le proprietà appartengono al
+contesto Staff, non agli oggetti della formattazione stessi, dunque
+si impostano col comando @code{\set}.  La loro impostazione predefinita
+è @code{all-visible}.  Queste proprietà regolano solo la visibilità
+di armature di chiave e chiavi risultanti da cambi espliciti e non
+quelli all'inizio delle linee; per eliminare questi ultimi bisogna
+sempre sovrascrivere @code{break-visibility} nell'oggetto appropriato.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3558,11 +3339,11 @@ object to remove these.
 }
 @end lilypond
 
-@subsubsubheading Visibility of cancelling accidentals
+@subsubsubheading Visibilità dei bequadri
 
-To remove the cancelling accidentals printed at an explicit key
-change, set the Staff context property @code{printKeyCancellation}
-to @code{#f}:
+Per eliminare i bequadri stampati su un cambio di chiave esplicito,
+impostare la proprietà del contesto Staff @code{printKeyCancellation}
+su @code{#f}:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3578,13 +3359,13 @@ to @code{#f}:
 }
 @end lilypond
 
-With these overrides only the accidentals before the notes remain
-to indicate the change of key.
+Con queste modifiche restano solo le alterazioni accanto alle note per
+indicare il cambio di armatura.
 
-Note that when changing the key to C@tie{}major or A@tie{}minor
-the cancelling accidentals would be the @emph{only} indication of
-the key change.  In this case setting @code{printKeyCancellation} to
-@code{#f} has no effect:
+Nota bene che quando si cambia l'armatura su Do@tie{}maggiore o La@tie{}minore
+i bequadri sono l'@emph{unica} indicazione del cambio di chiave.  In questo
+caso impostando @code{printKeyCancellation} su @code{#f} non si ottiene
+alcun effetto:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3599,9 +3380,9 @@ the key change.  In this case setting @code{printKeyCancellation} to
 }
 @end lilypond
 
-To suppress the cancelling accidentals even when the key is
-changed to C@tie{}major or A@tie{}minor, override
-the visibility of the @code{KeyCancellation} grob instead:
+Per sopprimere i bequadri anche quando la tonalità passa a
+Do@tie{}maggiore o La@tie{}minore, sovrascrivere la
+visibilità del grob @code{KeyCancellation}:
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -3618,60 +3399,60 @@ the visibility of the @code{KeyCancellation} grob instead:
 
 @c TODO Add visibility of cautionary accidentals before notes
 
-@subsubsubheading Automatic bars
+@subsubsubheading Battute automatiche
 
 @cindex automaticBars
-@cindex bar lines, suppressing
+@cindex stanghette, soppressione
 
-As a special case, the printing of bar lines can also be turned off
-by setting the @code{automaticBars} property in the Score context.
-If set to @code{#f}, bar lines will not be printed automatically;
-they must be explicitly created with a @code{\bar} command.  Unlike
-the @code{\cadenzaOn} predefined command, measures are still counted.
-Bar generation will resume according to that count if this property
-is later set to @code{#t}.  When set to @code{#f}, line breaks can
-occur only at explicit @code{\bar} commands.
+In un caso particolare, la stampa delle stanghette può essere disattivata
+impostando la proprietà @code{automaticBars} nel contesto Score.  Se impostata
+su @code{#f}, le stanghette non verranno stampate automaticamente; devono
+invece essere create esplicitamente con un comando @code{\bar}.  Diversamente
+dal comando predefinito @code{\cadenzaOn}, le misure vengono comunque contate.
+La generazione delle battute riprenderà in base a quel conteggio se questa
+proprietà viene poi impostata su @code{#t}.  Se impostata su @code{#f}, le
+interruzioni di linea possono trovarsi solo su comandi @code{\bar} espliciti.
 
 @c TODO Add example
 
-@subsubsubheading Transposed clefs
+@subsubsubheading Chiavi trasposte
 
-@cindex transposed clefs, visibility of
-@cindex visibility of transposed clefs
-@cindex clefs, visibility of transposition
+@cindex chiavi trasposte, visibilità delle
+@cindex visibilità delle chiavi trasposte
+@cindex chiavi, visibilità della trasposizione
 
-The small transposition symbol on transposed clefs is produced by the
-@code{ClefModifier} layout object.  Its visibility is automatically
-inherited from the @code{Clef} object, so it is not necessary to apply
-any required @code{break-visibility} overrides to the @code{ClefModifier}
-layout objects to suppress transposition symbols for invisible clefs.
+Il piccolo simbolo di trasposizione sulle chiavi trasposte è prodotto
+dall'oggetto di formattazione @code{ClefModifier}.  La sua visibilità
+è ereditata automaticamente dall'oggetto @code{Clef}, dunque non è necessario
+applicare una modifica di @code{break-visibility} agli oggetti @code{ClefModifier}
+per sopprimere i simboli di trasposizione per le chiavi invisibili.
 
-For explicit clef changes, the @code{explicitClefVisibility}
-property controls both the clef symbol and any transposition symbol
-associated with it.
+Per cambi di chiave espliciti, la proprietà @code{explicitClefVisibility}
+regola sia il simbolo della chiave che qualsiasi simbolo di trasposizione
+ad esso associato.
 
 @seealso
 Manuale di apprendimento:
 @rlearning{Visibilità e colore degli oggetti}.
 
 
-@node Line styles
-@subsection Line styles
+@node Stili della linea
+@subsection Stili della linea
+@translationof Line styles
 
-Some performance indications, e.g., @i{rallentando} and
-@i{accelerando} and @i{trills} are written as text and are
-extended over many measures with lines, sometimes dotted or wavy.
+Alcune indicazioni esecutive, come @i{rallentando}, @i{accelerando} e
+@i{trilli} sono scritte in forma testuale e sono estese per varie misure
+tramite delle linee, talvolta puntate o ondulate.
 
-These all use the same routines as the glissando for drawing the
-texts and the lines, and tuning their behavior is therefore also
-done in the same way.  It is done with a spanner, and the routine
-responsible for drawing the spanners is
-@code{ly:line-spanner::print}.  This routine determines the
-exact location of the two @i{span points} and draws a line
-between them, in the style requested.
+Queste usano tutte le stesse routine del glissando per disegnare i
+testi e le linee, dunque il loro comportamento viene modificato nello
+stesso modo.  Viene fatto con un estensore, e la routine responsabile
+del disegno degli estensori è @code{ly:line-spanner::print}.  Questa
+routine determina la posizione esatta dei due @i{punti di estensione} e
+disegna una linea tra loro, nello stile richiesto.
 
-Here is an example showing the different line styles available,
-and how to tune them.
+Ecco un esempio che mostra i vari stili di linea disponibili, e come
+impostarli..
 
 @lilypond[ragged-right,verbatim,quote]
 \relative {
@@ -3687,9 +3468,8 @@ and how to tune them.
 }
 @end lilypond
 
-The locations of the end-points of the spanner are computed
-on-the-fly for every graphic object, but it is possible to
-override these:
+I punti delle estremità dell'estensore sono calcolati al volo per ogni
+oggetto grafico, ma è possibile sovrascriverli:
 
 @c TODO Complete
 @lilypond[ragged-right,verbatim,quote]
@@ -3700,50 +3480,52 @@ override these:
 }
 @end lilypond
 
-The value for @code{Y} is set to @w{@code{-2}} for the right end
-point.  The left side may be similarly adjusted by specifying
-@code{left} instead of @code{right}.
+Il valore di @code{Y} è impostato su @w{@code{-2}} per l'estremità
+destra.  Quella sinistra può essere aggiustata ugualmente specificando
+@code{left} invece di @code{right}.
 
-If @code{Y} is not set, the value is computed from the vertical
-position of the left and right attachment points of the spanner.
+Se @code{Y} non è impostata, il valore è calcolato a partire dalla posizione
+verticale dei punti di attacco sinistro e destro dell'estensore.
 
-Other adjustments of spanners are possible, for details, see
+Sono possibili altre modifiche degli estensori; maggiori dettagli in
 @ref{Spanners}.
 
-@node Rotating objects
-@subsection Rotating objects
 
-Both layout objects and elements of markup text can be rotated by
-any angle about any point, but the method of doing so differs.
+@node Rotazione degli oggetti
+@subsection Rotazione degli oggetti
+@translationof Rotating objects
+
+Sia gli oggetti della formattazione che il testo compreso in un blocco markup
+possono essere ruotati di qualsiasi angolo in quasi qualsiasi punto, ma il
+metodo per farlo cambia.
 
 @menu
-* Rotating layout objects::
-* Rotating markup::
+* Rotazione degli oggetti della formattazione::
+* Rotazione del testo::
 @end menu
 
-@node Rotating layout objects
-@unnumberedsubsubsec Rotating layout objects
+@node Rotazione degli oggetti della formattazione
+@unnumberedsubsubsec Rotazione degli oggetti della formattazione
+@translationof Rotating layout objects
 
-@cindex rotating objects
-@cindex objects, rotating
+@cindex rotazione degli oggetti
+@cindex oggetti, rotazione
 
-All layout objects which support the @code{grob-interface} can be
-rotated by setting their @code{rotation} property.  This takes a
-list of three items: the angle of rotation counter-clockwise,
-and the x and y coordinates of the point relative to the object's
-reference point about which the rotation is to be performed.  The
-angle of rotation is specified in degrees and the coordinates in
-staff-spaces.
+Tutti gli oggetti della formattazione che supportano l'interfaccia
+@code{grob-interface} possono essere ruotati impostando la loro
+proprietà @code{rotation}.  Questa prende come argomento una lista
+di tre elementi: l'angolo di rotazione in senso antiorario, e le
+coordinate x e y del punto relativo al punto di riferimento dell'oggetto
+intorno al quale si deve eseguire la rotazione.  L'angolo di rotazione
+è specificato in gradi e le coordinate in spazi rigo.
 
-The angle of rotation and the coordinates of the rotation point must
-be determined by trial and error.
+L'angolo di rotazione e le coordinate del punto di rotazione devono essere
+determinate per prova e errore.
 
-@cindex hairpins, angled
-@cindex angled hairpins
+@cindex forcelle angolate
 
-There are only a few situations where the rotation of layout
-objects is useful; the following example shows one situation where
-they may be:
+Esistono solo poche situazioni in cui la rotazione degli oggetti della
+formattazione è utile; l'esempio seguente ne mostra uno:
 
 @lilypond[quote,fragment,verbatim]
 g4\< e' d'' f''\!
@@ -3751,41 +3533,43 @@ g4\< e' d'' f''\!
 g4\< e' d'' f''\!
 @end lilypond
 
-@node Rotating markup
-@unnumberedsubsubsec Rotating markup
 
-All markup text can be rotated to lie at any angle by prefixing it
-with the @code{\rotate} command.  The command takes two arguments:
-the angle of rotation in degrees counter-clockwise and the text to
-be rotated.  The extents of the text are not rotated: they take
-their values from the extremes of the x and y coordinates of the
-rotated text.  In the following example the
-@code{outside-staff-priority} property for text is set to @code{#f}
-to disable the automatic collision avoidance, which would push some
-of the text too high.
+@node Rotazione del testo
+@unnumberedsubsubsec Rotazione del testo
+@translationof Rotating markup
+
+Tutto il testo in un blocco @code{\markup} può essere ruotato di qualsiasi
+angolo facendolo precedere dal comando @code{\rotate}.  Il comando prende
+due argomenti: l'angolo di rotazione in gradi in senso antiorario e il
+testo da ruotare.  Le estensioni del testo non sono ruotate: prendono il
+loro valore dagli estremi delle coordinate x e y del testo ruotato.
+Nell'esempio seguente la proprietà @code{outside-staff-priority} del testo
+è impostata su @code{#f} per disabilitare l'elusione automatica delle collisioni,
+che spingerebbe parte del testo troppo in alto.
 
 @lilypond[quote,fragment,verbatim]
 \override TextScript.outside-staff-priority = ##f
-g4^\markup { \rotate #30 "a G" }
-b^\markup { \rotate #30 "a B" }
-des'^\markup { \rotate #30 "a D-Flat" }
-fis'^\markup { \rotate #30 "an F-Sharp" }
+g4^\markup { \rotate #30 "un Sol" }
+b^\markup { \rotate #30 "un Si" }
+des'^\markup { \rotate #30 "un Re bemolle" }
+fis'^\markup { \rotate #30 "un Fa diesis" }
 @end lilypond
 
+
 @node Ritocchi avanzati
 @section Ritocchi avanzati
 @translationof Advanced tweaks
 
-This section discusses various approaches to fine tuning the
-appearance of the printed score.
+Questa sezione discute i vari approcci che permettono di migliorare
+l'aspetto delle partiture.
 
 @menu
-* Aligning objects::
-* Vertical grouping of grobs::
-* Modifying stencils::
-* Modifying shapes::
-* Modifying broken spanners::
-* Unpure-pure containers::
+* Allineamento degli oggetti::
+* Raggruppamento verticale dei grob::
+* Modifica degli stampi::
+* Modifica delle forme::
+* Modifica degli estensori spezzati::
+* Contenitori unpure-pure::
 @end menu
 
 @seealso
@@ -3810,44 +3594,47 @@ Guida al funzionamento interno:
 @rinternals{All layout objects}.
 
 
-@node Aligning objects
-@subsection Aligning objects
-
-Graphical objects which support the @code{self-alignment-interface}
-and/or the @code{side-position-interface} can be aligned to a previously
-placed object in a variety of ways.  For a list of these objects, see
-@rinternals{self-alignment-interface} and @rinternals{side-position-interface}.
-
-All graphical objects have a reference point, a horizontal extent and a
-vertical extent.  The horizontal extent is a pair of numbers
-giving the displacements from the reference point of the left and
-right edges, displacements to the left being negative.  The vertical
-extent is a pair of numbers giving the displacement from the reference
-point to the bottom and top edges, displacements down being negative.
-
-An object's position on a staff is given by the values of the
-@code{X-offset} and @code{Y-offset} properties.  The value of
-@code{X-offset} gives the displacement from the X coordinate of
-the reference point of the parent object, and the value of
-@code{Y-offset} gives the displacement from the center line of the
-staff.  The values of @code{X-offset} and @code{Y-offset} may
-be set directly or may be set to be calculated by procedures in order
-to achieve alignment with the parent object.
-
-@warning{Many objects have special positioning considerations which
-cause any setting of @code{X-offset} or @code{Y-offset} to be
-ignored or modified, even though the object supports the
-@code{self-alignment-interface}.  Overriding the @code{X-offset}
-or @code{Y-offset} properties to a fixed value causes the respective
-@code{self-alignment} property to be disregarded.}
-
-For example, an accidental can be repositioned vertically by setting
-@code{Y-offset} but any changes to @code{X-offset} have no effect.
-
-Rehearsal marks may be aligned with breakable objects such as bar
-lines, clef symbols, time signature symbols and key signatures.  There
-are special properties to be found in the @code{break-aligned-interface}
-for positioning rehearsal marks on such objects.
+@node Allineamento degli oggetti
+@subsection Allineamento degli oggetti
+@translationof Aligning objects
+
+Gli oggetti grafici che supportano l'interfaccia @code{self-alignment-interface}
+e/o l'interfaccia @code{side-position-interface} possono essere allineati a un
+oggetto disposto precedentemente in vari modi.  L'elenco di questi oggetti è
+consultabile in @rinternals{self-alignment-interface} e
+@rinternals{side-position-interface}.
+
+Tutti gli oggetti grafici hanno un punto di riferimento, un'estensione
+orizzontale e una verticale.  L'estensione orizzontale è una coppia di
+numeri che determina gli spostamenti dal punto di riferimento dei margini
+sinistro e destro (gli spostamenti a sinistra sono negativi).  L'estensione
+verticale è una coppia di numeri che determina lo spostamento dal punto di
+riferimento ai margini inferiore e superiore (gli spostamenti in giù sono
+negativi).
+
+La posizione di un oggetto su un rigo è dato dai valori delle proprietà
+@code{X-offset} e @code{Y-offset}.  Il valore di @code{X-offset} dà lo
+spostamento dalla coordinata X del punto di riferimento dell'oggetto genitore,
+mentre il valore di @code{Y-offset} dà lo spostamento dalla linea centrale del
+rigo.  I valori di @code{X-offset} e @code{Y-offset} possono essere impostati
+direttamente oppure possono essere impostati per essere calcolati dalle
+procedure in modo da consentire un allineamento con l'oggetto genitore.
+
+@warning{Molti oggetti hanno speciali questioni di posizionamento che fanno
+sì che qualsiasi impostazione di @code{X-offset} o @code{Y-offset} sia
+ignorata o modificata, anche se l'oggetto supporta l'interfaccia
+@code{self-alignment-interface}.  Sovrascrivendo le proprietà @code{X-offset}
+o @code{Y-offset} su un valore fisso la rispettiva proprietà
+@code{self-alignment} verrà ignorata.}
+
+Per esempio, un'alterazione può essere riposizionata verticalmente impostando
+@code{Y-offset} ma qualsiasi modifica di @code{X-offset} non avrà effetto.
+
+I segni di chiamata possono essere allineati con oggetti spezzabili come
+stanghette, simboli di chiave, simboli di indicazione di tempo e armature
+di chiave.  Ci sono proprietà speciali elencate nell'interfaccia
+@code{break-aligned-interface} per posizionare i segni di chiamata su tali
+oggetti.
 
 @seealso
 Guida alla notazione:
@@ -3857,19 +3644,20 @@ Estendere LilyPond:
 @rextend{Callback functions}.
 
 @menu
-* Setting X-offset and Y-offset directly::
-* Using the side-position-interface::
-* Using the self-alignment-interface::
-* Using the break-alignable-interface::
+* Impostazione diretta di X-offset e Y-offset::
+* Uso di side-position-interface::
+* Uso di self-alignment-interface::
+* Uso di break-alignable-interface::
 @end menu
 
-@node Setting X-offset and Y-offset directly
-@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
+@node Impostazione diretta di X-offset e Y-offset
+@unnumberedsubsubsec Impostazione diretta di @code{X-offset} e @code{Y-offset}
+@translationof Setting X-offset and Y-offset directly
 
-Numerical values may be given to the @code{X-offset} and @code{Y-offset}
-properties of many objects.  The following example shows three
-notes with the default fingering position and the positions with @code{X-offset}
-and @code{Y-offset} modified.
+Si possono assegnare valori numerici alle prietà @code{X-offset} e
+@code{Y-offset} di molti oggetti.  L'esempio seguente mostra tre note
+con la posizione predefinita della diteggiatura e le posizioni con @code{X-offset}
+e @code{Y-offset} modificate.
 
 @lilypond[verbatim,fragment,quote]
 a'-3
 
 @c TODO write more
 
-@node Using the side-position-interface
-@unnumberedsubsubsec Using the @code{side-position-interface}
+@node Uso di side-position-interface
+@unnumberedsubsubsec Uso di @code{side-position-interface}
+@translationof Using the side-position-interface
 
-An object which supports the @code{side-position-interface} can be
-placed next to its parent object so that
-the specified edges of the two objects touch.  The object may be
-placed above, below, to the right or to the left of the parent.
-The parent cannot be specified; it is determined by the order of
-elements in the input stream.  Most objects have the associated
-note head as their parent.
+Un oggetto che supporta l'interfaccia @code{side-position-interface} può
+essere posizionato accanto al suo oggetto genitore in modo che i margini
+indicati dei due oggetti si tocchino.  L'oggetto può essere posizionato
+sopra, sotto, a destra o a sinistra dell'oggetto genitore.  Quest'ultimo
+non può essere specificato; è invece determinato dall'ordine degli elementi
+nel flusso di input.  La maggior parte degli oggetti ha la testa di nota
+associata come oggetto genitore.
 
-The values of the @code{side-axis} and @code{direction} properties
-determine where the object is to be placed, as follows:
+I valori delle proprietà @code{side-axis} e @code{direction} determinano
+dove l'oggetto deve essere posizionato, in questo modo:
 
 @c TODO add an example of each to the table
 
 @multitable @columnfractions .3 .3 .3
 @headitem @code{side-axis}  @tab @code{direction}  @tab
-@headitem property          @tab property          @tab Placement
+@headitem proprietà         @tab proprietà         @tab Posizionamento
 
-@item     @code{0}          @tab @code{-1}         @tab left
-@item     @code{0}          @tab @code{1}          @tab right
-@item     @code{1}          @tab @code{-1}         @tab below
-@item     @code{1}          @tab @code{1}          @tab above
+@item     @code{0}          @tab @code{-1}         @tab sinistra
+@item     @code{0}          @tab @code{1}          @tab destra
+@item     @code{1}          @tab @code{-1}         @tab sotto
+@item     @code{1}          @tab @code{1}          @tab sopra
 
 @end multitable
 
-When @code{side-axis} is @code{0}, @code{X-offset} should be set to
-the procedure @code{ly:side-position-interface::x-aligned-side}.
-This procedure will return the correct value of @code{X-offset} to
-place the object to the left or right side of the parent according
-to value of @code{direction}.
+Quando @code{side-axis} è @code{0}, @code{X-offset} deve essere impostato
+sulla procedura @code{ly:side-position-interface::x-aligned-side}.
+Questa procedura restituirà il valore corretto di @code{X-offset} per
+porre l'oggetto al lato sinistro o destro dell'oggetto genitore in base
+al valore di @code{direction}.
 
-When @code{side-axis} is @code{1}, @code{Y-offset} should be set to
-the procedure @code{ly:side-position-interface::y-aligned-side}.
-This procedure will return the correct value of @code{Y-offset} to
-place the object to the top or bottom of the parent according
-to value of @code{direction}.
+Quando @code{side-axis} è @code{1}, @code{Y-offset} deve essere impostato
+sulla procedura @code{ly:side-position-interface::y-aligned-side}.
+Questa procedura restituirà il valore corretto di @code{Y-offset} per
+porre l'oggetto sopra o sotto l'oggetto genitore in base al valore di
+@code{direction}.
 
 @c TODO Add examples
 
-@node Using the self-alignment-interface
-@unnumberedsubsubsec Using the @code{self-alignment-interface}
-
-@subsubsubheading Self-aligning objects horizontally
-
-The horizontal alignment of an object which supports the
-@code{self-alignment-interface} is controlled by the value of
-the @code{self-alignment-X} property, provided the object's
-@code{X-offset} property is set to
-@code{ly:self-alignment-interface::x-aligned-on-self}.
-@code{self-alignment-X}  may be given any
-real value, in units of half the total X extent of the
-object.  Negative values move the object to the right, positive
-to the left.  A value of @code{0} centers the object on the
-reference point of its parent, a value of @w{@code{-1}} aligns the
-left edge of the object on the reference point of its parent,
-and a value of @code{1} aligns the right edge of the object on the
-reference point of its parent.  The symbols @code{LEFT},
-@code{CENTER}, and @code{RIGHT} may be used instead of the values
-@w{@code{-1}}, @code{0}, and @code{1}, respectively.
-
-Normally the @code{\override} command would be used to modify the
-value of @code{self-alignment-X}, but the @code{\tweak} command
-can be used to separately align several annotations on a single
-note:
+@node Uso di self-alignment-interface
+@unnumberedsubsubsec Uso di @code{self-alignment-interface}
+@translationof Using the self-alignment-interface
+
+@subsubsubheading Autoallineamento orizzontale degli oggetti
+
+L'allineamento orizzontale di un oggetto che supporta l'interfaccia
+@code{self-alignment-interface} è regolato dal valore della proprietà
+@code{self-alignment-X}, purché la proprietà @code{X-offset} dell'oggetto
+sia impostata su @code{ly:self-alignment-interface::x-aligned-on-self}.
+A @code{self-alignment-X}  può essere assegnato qualsiasi numero reale,
+in unità di metà del totale dell'estensione X dell'oggetto.  Valori
+negativi spostano l'oggetto a destra, valori positivi lo spostano a
+sinistra.  Un valore di @code{0} centra l'oggetto sul punto di riferimento
+del suo oggetto genitore, un valore di @w{@code{-1}} allinea il margine
+sinistro dell'oggetto al punto di riferimento del suo genitore, e un
+valore di @code{1} allinea il margine destro dell'oggetto al punto di
+riferimento del suo genitore.  I simboli @code{LEFT}, @code{CENTER} e
+@code{RIGHT} possono essere usati al posto dei valori @w{@code{-1}},
+@code{0} e @code{1}, rispettivamente.
+
+Normalmente si usa il comando @code{\override} per modificare il valore
+di @code{self-alignment-X}, ma il comando @code{\tweak} può essere utile
+per allineare separatamente varie annotazioni su una singola nota:
 
 @lilypond[quote,verbatim,fragment]
 a'
 -\tweak self-alignment-X #-1
-^"left-aligned"
+^"allineato a sinistra"
 -\tweak self-alignment-X #0
-^"center-aligned"
+^"allineato al centro"
 -\tweak self-alignment-X #RIGHT
-^"right-aligned"
+^"allineato a destra"
 -\tweak self-alignment-X #-2.5
-^"aligned further to the right"
+^"allineato ancora più a destra"
 @end lilypond
 
-@subsubsubheading Self-aligning objects vertically
-
-Objects may be aligned vertically in an analogous way to aligning
-them horizontally if the @code{Y-offset} property is set to
-@code{ly:self-alignment-interface::y-aligned-on-self}.  However,
-other mechanisms are often involved in vertical alignment: the
-value of @code{Y-offset} is just one variable taken into account.
-This may make adjusting the value of some objects tricky.
-The units are just half the vertical extent of the object, which
-is usually quite small, so quite large numbers may be required.
-A value of @w{@code{-1}} aligns the lower edge of the object with
-the reference point of the parent object, a value of @code{0}
-aligns the center of the object with the reference point of the
-parent, and a value of @code{1} aligns the top edge of the object
-with the reference point of the parent.  The symbols @code{DOWN},
-@code{CENTER}, and @code{UP} may be substituted for @w{@code{-1}},
-@code{0}, and @code{1}, respectively.
-
-@subsubsubheading Self-aligning objects in both directions
-
-By setting both @code{X-offset} and @code{Y-offset}, an object may
-be aligned in both directions simultaneously.
-
-The following example shows how to adjust a fingering mark so
-that it nestles close to the note head.
+@subsubsubheading Autoallineamento verticale degli oggetti
+
+Gli oggetti possono essere allineati verticalmente in un modo analogo
+al loro allineamento orizzontale se la proprietà @code{Y-offset} è
+impostata su @code{ly:self-alignment-interface::y-aligned-on-self}.
+Tuttavia altri meccanismi sono spesso implicati nell'allineamento
+verticale: il valore di @code{Y-offset} è solo una delle variabili
+da prendere in considerazione.  Ciò potrebbe rendere complicato
+l'aggiustamento del valore di alcuni oggetti.
+Le unità sono soltanto la metà dell'estensione verticale dell'oggetto, che
+è di solito piuttosto piccola, dunque potrebbero essere necessari grossi
+numeri.  Un valore di @w{@code{-1}} allinea il margine inferiore dell'oggetto
+al punto di riferimento dell'oggetto genitore, un valore di @code{0}
+allinea il centro dell'oggetto al punto di riferimento del genitore,
+e un valore di @code{1} allinea il margine superiore dell'oggetto
+al punto di riferimento del genitore.  I simboli @code{DOWN},
+@code{CENTER} e @code{UP} possono essere usati al posto di @w{@code{-1}},
+@code{0} e @code{1}, rispettivamente.
+
+@subsubsubheading Autoallineamento degli oggetti in entrambe le direzioni
+
+Impostando sia @code{X-offset} che @code{Y-offset}, un oggetto può essere
+allineato in entrambe le direzioni simultaneamente.
+
+L'esempio seguente mostra come aggiustare un segno di diteggiatura in modo
+che stia vicino alla testa di nota.
 
 @lilypond[quote,verbatim,fragment]
 a'
--\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak self-alignment-X #0.5  % sposta orizzontalmente a sinistra
 -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak self-alignment-Y #-1  % move vertically up
--3  % third finger
+-\tweak self-alignment-Y #-1  % sposta verticalmente in su
+-3  % terzo dito
 @end lilypond
 
 @ignore
@@ -4027,36 +3816,37 @@ example shows the difference:
 
 @c TODO The align-interface, BassFigureAlignment and VerticalAlignment
 
-@node Using the break-alignable-interface
-@unnumberedsubsubsec Using the @code{break-alignable-interface}
+@node Uso di break-alignable-interface
+@unnumberedsubsubsec Uso di @code{break-alignable-interface}
+@translationof Using the break-alignable-interface
 
-@cindex align to objects
+@cindex allineamento sugli oggetti
 @cindex break-align-symbols
 
-Rehearsal marks and bar numbers may be aligned with notation
-objects other than bar lines.  These objects include @code{ambitus},
-@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
-@code{left-edge}, @code{key-cancellation}, @code{key-signature}, and
+I segni di chiamata e i numeri di battuta possono essere allineati con oggetti
+della notazione diversi dalle stanghette.  Questi oggetti comprendono
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
+@code{left-edge}, @code{key-cancellation}, @code{key-signature} e
 @code{time-signature}.
 
-Each type of object has its own default reference point, to which
-rehearsal marks are aligned:
+Ogni tipo di oggetto ha il suo punto di riferimento predefinito, al quale i
+segni di chiamata sono allineati:
 
 @lilypond[verbatim,quote,fragment]
-% The rehearsal mark will be aligned to the right edge of the Clef
+% Il segno di chiamata sarà allineato al margine destro della chiave
 \override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e'1
-% The rehearsal mark will be aligned to the left edge of the Time Signature
+% Il segno di chiamata sarà allineato al margine sinistro dell'indicazione di tempo
 \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e'2.
-% The rehearsal mark will be centered above the Breath Mark
+% Il segno di chiamata sarà centrato sul segno di respiro
 \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
@@ -4066,30 +3856,30 @@ e'1
 \mark "↓"
 @end lilypond
 
-A list of possible target alignment objects may be specified.  If
-some of the objects are invisible at that point due to the setting
-of @code{break-visibility} or the explicit visibility settings for
-keys and clefs, the rehearsal mark or bar number is aligned to the
-first object in the list which is visible.  If no objects in the
-list are visible the object is aligned to the bar line.  If the bar
-line is invisible the object is aligned to the place where the bar
-line would be.
+Si può specificare un elenco dei possibili oggetti a cui allineare.  Se
+alcuni oggetti sono invisibili in quel punto a causa dell'impostazione
+di @code{break-visibility} o di impostazioni esplicite della visibilità
+di tonalità e chiavi, il segno di chiamata o il numero di battuta viene
+allineato al primo oggetto dell'elenco che è visibile.  Se nessun oggetto
+dell'elenco è visibile, l'oggetto è allineato alla stanghetta.  Se la
+stanghetta è invisibile, l'oggetto viene allineato al punto in cui si
+dovrebbe trovare la stanghetta.
 
 @lilypond[verbatim,quote,fragment]
-% The rehearsal mark will be aligned to the right edge of the Key Signature
+% Il segno di chiamata sarà allineato al margine destro dell'armatura di chiave
 \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e'1
-% The rehearsal mark will be aligned to the right edge of the Clef
+% Il segno di chiamata sarà allineato al margine destro della chiave
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
 gis,1
-% The rehearsal mark will be centered above the Bar Line
+% Il segno di chiamata sarà centrato sopra la stanghetta
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
 \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
@@ -4099,43 +3889,44 @@ gis,1
 e'1
 @end lilypond
 
-The alignment of the rehearsal mark relative to the notation object
-can be changed, as shown in the following example.  In a score with
-multiple staves, this setting should be done for all the staves.
+L'allineamento del segno di chiamata relativo all'oggetto della notazione
+può essere modificato, come evidenziato nell'esempio seguente.  In una
+partitura con molteplici righi, questa impostazione deve essere fatta per
+tutti i righi.
 
 @lilypond[verbatim,quote,fragment]
-% The RehearsalMark will be aligned with the right edge of the Key Signature
+% Il segno di chiamata sarà allineato al margine destro dell'armatura di chiave
 \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e'1
-% The RehearsalMark will be centered above the Key Signature
+% Il segno di chiamata sarà centrato sopra l'armatura di chiave
 \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER
 \mark "↓"
 \key a \major
 e'1
-% The RehearsalMark will be aligned with the left edge of the Key Signature
+% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave
 \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \key a \major
 \mark "↓"
 e'1
 @end lilypond
 
-The rehearsal mark can also be offset to the right or left of the left
-edge by an arbitrary amount.  The units are staff-spaces:
+Il segno di chiamata può anche essere spostato a destra o a sinistra del
+margine sinistro di una quantità arbitraria.  Le unità sono gli spazi rigo:
 
 @lilypond[verbatim,quote,fragment]
-% The RehearsalMark will be aligned with the left edge of the Key Signature
-% and then shifted right by 3.5 staff-spaces
+% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave
+% e poi spostato a destra di 3.5 spazi rigo
 \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e'1
-% The RehearsalMark will be aligned with the left edge of the Key Signature
-% and then shifted left by 2 staff-spaces
+% Il segno di chiamata sarà allineato al margine sinistro dell'armatura di chiave
+% e poi spostato a sinistra di 2 spazi rigo
 \once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
@@ -4143,44 +3934,45 @@ e'1
 @end lilypond
 
 
-@node Vertical grouping of grobs
-@subsection Vertical grouping of grobs
+@node Raggruppamento verticale dei grob
+@subsection Raggruppamento verticale dei grob
+@translationof Vertical grouping of grobs
 
 @c TODO Expand this section
 
-The VerticalAlignment and VerticalAxisGroup grobs work together.
-VerticalAxisGroup groups together different grobs like Staff, Lyrics,
-etc.  VerticalAlignment then vertically aligns the different grobs
-grouped together by VerticalAxisGroup.  There is usually only one
-VerticalAlignment per score but every Staff, Lyrics, etc. has its own
-VerticalAxisGroup.
+I grob VerticalAlignment e VerticalAxisGroup lavorano insieme.
+VerticalAxisGroup raggruppa insieme diversi grob come Staff, Lyrics,
+etc.  VerticalAlignment quindi allinea verticalmente i diversi grob
+raggruppati insieme da VerticalAxisGroup.  Di solito è presente un
+solo VerticalAlignment per partitura ma ogni Staff, Lyrics, etc. ha
+il suo VerticalAxisGroup.
 
 
-@node Modifying stencils
-@subsection Modifying stencils
+@node Modifica degli stampi
+@subsection Modifica degli stampi
+@translationof Modifying stencils
 
-All layout objects have a @code{stencil} property which is part of
-the @code{grob-interface}.  By default, this property is usually
-set to a function specific to the object that is tailor-made to
-render the symbol which represents it in the output.  For example,
-the standard setting for the @code{stencil} property of the
-@code{MultiMeasureRest} object is @code{ly:multi-measure-rest::print}.
+Tutti gli oggetti della formattazione hanno una proprietà @code{stencil} che
+fa parte dell'interfaccia @code{grob-interface}.  Per impostazione predefinita,
+questa proprietà è solitamente impostata su una funzione specifica per l'oggetto
+per cui è concepita in modo da creare il simbolo che lo rappresenta nell'output.
+Per esempio, l'impostazione standard della proprietà @code{stencil} dell'oggetto
+@code{MultiMeasureRest} è @code{ly:multi-measure-rest::print}.
 
-The standard symbol for any object can be replaced by modifying the
-@code{stencil} property to reference a different, specially-written,
-procedure.  This requires a high level of knowledge of the internal
-workings of LilyPond, but there is an easier way which can often
-produce adequate results.
+Il simbolo standard di qualsiasi oggetto può essere sostituito modificando la
+proprietà @code{stencil} perché faccia riferimento a una procedura diversa
+e scritta appositamente.  Ciò richiede una profonda conoscenza del funzionamento
+interno di LilyPond, ma esiste un modo più semplice che spesso è in grado di
+produrre risultati accettabili.
 
-This is to set the @code{stencil} property to the procedure which
-prints text -- @code{ly:text-interface::print} -- and to add a
-@code{text} property to the object which is set to contain the
-markup text which produces the required symbol.  Due to the
-flexibility of markup, much can be achieved -- see in particular
-@ref{Graphic notation inside markup}.
+Si tratta di impostare la proprietà @code{stencil} sulla procedura che stampa
+testo -- @code{ly:text-interface::print} -- e aggiungere una proprietà
+@code{text} all'oggetto impostato per contenere il testo markup che produce
+il simbolo richiesto.  Grazie alla flessibilità di markup, si può ottenere
+molto -- vedi in particolare @ref{Graphic notation inside markup}.
 
-The following example demonstrates this by changing the note head
-symbol to a cross within a circle.
+L'esempio seguente illustra questa procedura cambiando il simbolo della testa
+di nota con una croce iscritta in un cerchio.
 
 @lilypond[verbatim,quote]
 XinO = {
@@ -4196,8 +3988,8 @@ XinO = {
 }
 @end lilypond
 
-Any of the glyphs in the feta Font can be supplied to the
-@code{\musicglyph} markup command -- see @ref{The Feta font}.
+Qualsiasi glifo del tipo di carattere Feta può essere passato al comando
+markup @code{\musicglyph} -- vedi @ref{The Feta font}.
 
 @c TODO Add inserting eps files or ref to later
 
@@ -4211,65 +4003,66 @@ Guida alla notazione:
 @ref{The Feta font}.
 
 
-@node Modifying shapes
-@subsection Modifying shapes
+@node Modifica delle forme
+@subsection Modifica delle forme
+@translationof Modifying shapes
 
 @menu
-* Modifying ties and slurs::
+* Modifica di legature di valore e di portamento::
 @end menu
 
-@node Modifying ties and slurs
-@unnumberedsubsubsec Modifying ties and slurs
+@node Modifica di legature di valore e di portamento
+@unnumberedsubsubsec Modifica di legature di valore e di portamento
+@translationof Modifying ties and slurs
 
-@cindex slurs, modifying
-@cindex ties, modifying
-@cindex Bézier curves, control points
-@cindex control points, Bézier curves
+@cindex legature di portamento, modificare
+@cindex legature di valore, modificare
+@cindex curve Bézier, punti di controllo
+@cindex punti di controllo, curve Bézier
+@cindex Bézier, curve, punti di controllo
 
-@code{Tie}s, @code{Slur}s, @code{PhrasingSlur}s,
-@code{LaissezVibrerTie}s and @code{RepeatTie}s are all drawn as
-third-order Bézier curves.  If the shape of the tie or slur which
-is calculated automatically is not optimum, the shape may be
-modified manually in two ways:
+Le legature, siano esse di valore (@code{Tie}), di portamento (@code{Slur}),
+di frase (@code{PhrasingSlur}), di laisser-vibrer (@code{LaissezVibrerTie})
+o di valore ripetute (@code{RepeatTie}), sono tutte disegnate come curve Bézier
+di terzo ordine.  Se la forma della legatura di valore o di frase che viene
+calcolata automaticamente non è ottimale, può essere modificata manualmente
+in due modi:
 
 @enumerate a
 @item
-by specifying the displacements to be made to the control points
-of the automatically calculated Bézier curve, or
+specificando di quanto spostare i punti di controllo della curva
+Bézier calcolata automaticamente, o
 
 @item
-by explicitly specifying the positions of the four control points
-required to define the wanted curve.
+specificando esplicitamente le posizioni dei quattro punti di controllo
+richiesti per definire la curva desiderata.
 @end enumerate
 
-Both methods are explained below.  The first method is more suitable
-if only slight adjustments to the curve are required; the second may
-be better for creating curves which are related to just a single
-note.
-
-@subsubsubheading Cubic Bézier curves
-
-Third-order or cubic Bézier curves are defined by four control
-points.  The first and fourth control points are precisely the
-starting and ending points of the curve.  The intermediate two
-control points define the shape.  Animations showing how the curve
-is drawn can be found on the web, but the following description
-may be helpful.  The curve starts from the first control point
-heading directly towards the second, gradually bending over to
-head towards the third and continuing to bend over to head towards
-the fourth, arriving there travelling directly from the third
-control point.  The curve is entirely contained in the
-quadrilateral defined by the four control points.  Translations,
-rotations and scaling of the control points all result in exactly
-the same operations on the curve.
-
-@subsubsubheading Specifying displacements from current control points
-
-@cindex shaping slurs and ties
+Entrambi i metodi sono spiegati di seguito.  Il primo metodo è più adatto
+se sono necessari solo piccoli aggiustamenti alla curva; il secondo può
+essere migliore per creare curve che riguardano soltanto una singola nota.
+
+@subsubsubheading Curve Bézier cubiche
+
+Le curve Bézier di terzo ordine o cubiche sono definite da quattro punti
+di controllo.  Il primo e il quarto punto di controllo sono esattamente
+i punti di inizio e fine della curva.  I due punti intermedi definiscono
+la forma.  Sul web si trovano delle animazioni che mostrano come viene
+disegnata la curva, ma la seguente descrizione può comunque essere utile.
+La curva inizia dal primo punto di controllo e si dirige verso il secondo,
+piegandosi gradualmente per arrivare al terzo e poi al quarto, arrivando
+lì direttamente dal terzo punto di controllo.  La curva è contenuta
+interamente nel quadrilatero definito dai quattro punti di controllo.
+Traslazioni, rotazioni e ridimensionamenti dei punti di controllo risultano
+tutti esattamente nelle stesse operazioni sulla curva.
+
+@subsubsubheading Specificare gli spostamenti dai punti di controllo correnti
+
+@cindex disegnare legature di valore e di portamento
 @funindex \shape
 
-In this example the automatic placement of the tie is not optimum,
-and @code{\tieDown} would not help.
+In questo esempio la disposizone automatica della legatura di valore non è
+ottimale, e @code{\tieDown} non sarebbe di aiuto.
 
 @lilypond[verbatim,quote]
 <<
@@ -4279,37 +4072,37 @@ and @code{\tieDown} would not help.
 >>
 @end lilypond
 
-Adjusting the control points of the tie with @code{\shape} allows
-the collisions to be avoided.
+Cambiando i punti di controllo della legatura con @code{\shape} consente di
+evitare le collisioni.
 
-The syntax of @code{\shape} is
+La sintassi di @code{\shape} è
 
 @example
-[-]@code{\shape} @var{displacements} @var{item}
+[-]@code{\shape} @var{spostamenti} @var{elemento}
 @end example
 
-This will reposition the control-points of @var{item} by the amounts
-given by @var{displacements}.  The @var{displacements} argument is a
-list of number pairs or a list of such lists.  Each element of a pair
-represents the displacement of one of the coordinates of a
-control-point.  If @var{item} is a string, the result is
-@code{\once\override} for the specified grob type.  If @var{item} is
-a music expression, the result is the same music expression with an
-appropriate tweak applied.
-
-In other words, the @code{\shape} function can act as either a
-@code{\once\override} command or a @code{\tweak} command depending
-on whether the @var{item} argument is a grob name, like @qq{Slur},
-or a music expression, like @qq{(}.  The @var{displacements} argument
-specifies the displacements of the four control points as a list of
-four pairs of (dx . dy) values in units of staff-spaces (or a list
-of such lists if the curve has more than one segment).
-
-The leading hyphen is required if and only if the @code{\tweak} form
-is being used.
-
-So, using the same example as above and the @code{\once\override}
-form of @code{\shape}, this will raise the tie by half a staff-space:
+Questo comando riposiziona i punti di controllo di @var{elemento} di quanto
+indicato da @var{spostamenti}.  L'argomento @var{spostamenti} è una lista
+di coppie di numeri o una lista di tali liste.  Ogni elemento di una coppia
+rappresenta lo spostamento di una delle coordinate di un punto di controllo.
+Se @var{elemento} è una stringa, il risultato è @code{\once\override} per il
+tipo di grob specificato.  Se @var{elemento} è un'espressione musicale, il
+risultato è la stessa espressione musicale con un'appropriata modifica.
+
+In altre parole, la funzione @code{\shape} può comportarsi come un comando
+@code{\once\override} o un comando @code{\tweak} a seconda che l'argomento
+@var{elemento} sia il nome di un grob, come @qq{Slur}, o un'espressione
+musicale, come @qq{(}.  L'argomento @var{spostamenti} specifica gli
+sfasamenti dei quattro punti di controllo nella forma di una lista di
+quattro coppie di valori (dx . dy) in unità di spazi rigo (o una lista
+di tali liste se la curva ha più di un segmento).
+
+Il trattino iniziale è richiesto se e solo se si usa la forma con
+@code{\tweak}.
+
+Dunque usando lo stesso esempio precedente e la forma @code{\once\override}
+di @code{\shape}, il seguente comando alzerà la legatura di valore di
+metà spazio rigo:
 
 @lilypond[verbatim,quote]
 <<
@@ -4322,9 +4115,9 @@ form of @code{\shape}, this will raise the tie by half a staff-space:
 >>
 @end lilypond
 
-This positioning of the tie is better, but maybe it should be raised
-more in the center.  The following example does this, this time using
-the alternative @code{\tweak} form:
+Questo posizionamento è migliore, ma forse dovrebbe essere alzato di più
+al centro, come viene fatto nel prossimo esempio, dove stavolta si usa
+la forma alternativa @code{\tweak}:
 
 @lilypond[verbatim,quote]
 <<
@@ -4336,9 +4129,9 @@ the alternative @code{\tweak} form:
 >>
 @end lilypond
 
-Changes to the horizontal positions of the control points may be made
-in the same way, and two different curves starting at the same
-musical moment may also be shaped:
+Le modifiche alle posizioni orizzontali dei punti di controllo funzionano
+nello stesso modo.  Si possono ridefinire anche due curve diverse che
+iniziano nello stesso momento musicale:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative {
@@ -4349,12 +4142,12 @@ musical moment may also be shaped:
 }
 @end lilypond
 
-The @code{\shape} function can also displace the control points of
-curves which stretch across line breaks.  Each piece of the broken
-curve can be given its own list of offsets.  If changes to a
-particular segment are not needed, the empty list can serve as a
-placeholder.  In this example the line break makes the single slur
-look like two:
+La funzione @code{\shape} può sostituire anche i punti di controllo di
+curve che si estendono oltre le interruzioni di linea.  A ogni pezzo
+della curva spezzata può essere assegnata la sua lista di spostamenti.
+Se non sono necessarie delle modifiche a un segmento in particolare,
+la lista vuota può servire come segnaposto.  In questo esempio l'interruzione
+di linea fa sembrare doppia la legatura di portamento singola:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative {
@@ -4364,12 +4157,12 @@ look like two:
 }
 @end lilypond
 
-Changing the shapes of the two halves of the slur makes it clearer
-that the slur continues over the line break:
+Cambiando le forme delle due metà della legatura di portamento diventa più
+chiaro che la legatura continua oltre l'interruzione di linea:
 
 @lilypond[verbatim,quote,ragged-right]
-% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
-% if any of the segments does not need to be changed
+% () può essere usato come una scorciatoia per ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
+% nel caso in cui uno dei segmenti non necessiti di modifiche
 \relative c' {
   \shape #'(
              (( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
@@ -4381,9 +4174,8 @@ that the slur continues over the line break:
 }
 @end lilypond
 
-If an S-shaped curve is required the control points must always be
-adjusted manually --- LilyPond will never select such shapes
-automatically.
+Se è richiesta una curva a forma di S, bisogna sempre definire manualmente i
+punti di controllo --- LilyPond non sceglierà mai tali forme automaticamente.
 
 @lilypond[verbatim,quote]
 \relative c'' {
@@ -4393,24 +4185,24 @@ automatically.
 }
 @end lilypond
 
-@subsubsubheading Specifying control points explicitly
-
-The coordinates of the Bézier control points are specified in units
-of staff-spaces.  The X@tie{}coordinate is relative to the reference
-point of the note to which the tie or slur is attached, and the
-Y@tie{}coordinate is relative to the staff center line.  The
-coordinates are specified as a list of four pairs of decimal numbers
-(reals).  One approach is to estimate the coordinates of the two
-end points, and then guess the two intermediate points.  The optimum
-values are then found by trial and error.  Be aware that these values
-may need to be manually adjusted if any further changes are made to
-the music or the layout.
-
-One situation where specifying the control points explicitly is
-preferable to specifying displacements is when they need to be
-specified relative to a single note.  Here is an example of this.
-It shows one way of indicating a slur extending into alternative
-sections of a volta repeat.
+@subsubsubheading Specificare i punti di controllo esplicitamente
+
+Le coordinate dei punti di controllo della curva di Bézier sono specificate
+in unità di spazi rigo.  La coordinata@tie{}X è relativa al punto di
+riferimento della nota a cui la legatura si attacca, mentre la
+coordinata@tie{}Y è relativa alla linea centrale del rigo.  Le coordinate
+sono specificate come una lista di quattro coppie di numeri decimali
+(reali).  Un possibile approccio consiste nel valutare prima le coordinate
+delle due estremità e poi indovinare i due punti intermedi.  I valori
+ottimali vengono quindi trovati per tentativi.  Tenere conto del fatto
+che, in caso di ulteriori modifiche alla musica o alla formattazione, questi
+valori potrebbero dover essere nuovamente cambiati manualmente.
+
+Una situazione in cui è preferibile specificare i punti di controllo
+esplicitamente invece di specificarne gli spostamenti è quella in cui
+devono essere indicati per una singola nota.  Il prossimo esempio
+mostra un modo in cui rappresentare una legatura di portamento che
+si estende nelle sezioni alternative di una volta.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -4420,14 +4212,14 @@ sections of a volta repeat.
     { g2) d }
     {
       g2
-      % create a slur and move it to a new position
-      % the <> is just an empty chord to carry the slur termination
+      % crea una legatura di portamento e spostala in una nuova posizione
+      % il <> è solamente un accordo vuoto che serve a terminare la legatura
       -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
       f,
     }
     {
       e'2
-      % create a slur and move it to a new position
+      % crea una legatura di portamento e spostala in una nuova posizione
       -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
       f,
     }
@@ -4436,38 +4228,40 @@ sections of a volta repeat.
 @end lilypond
 
 @knownissues
-It is not possible to modify shapes of ties or slurs by changing
-the @code{control-points} property if there are multiple ties or slurs
-at the same musical moment -- the @code{\tweak} command will also not
-work in this case.  However, the @code{tie-configuration} property of
-@code{TieColumn} can be overridden to set start line and direction as
-required.
+Non è possibile modificare le forme di legature di valore e di portamento
+cambiando la proprietà @code{control-points} se ci sono molteplici legature
+nello stesso momento musicale -- anche il comando @code{\tweak} non funzionerà
+in questo caso.  Tuttavia si può sovrascrivere la proprietà
+@code{tie-configuration} di @code{TieColumn} per impostare l'inizio della linea
+e la direzione come desiderato.
 
 @seealso
 Guida al funzionamento interno:
 @rinternals{TieColumn}.
 
 
-@node Modifying broken spanners
-@subsection Modifying broken spanners
+@node Modifica degli estensori spezzati
+@subsection Modifica degli estensori spezzati
+@translationof Modifying broken spanners
 
 @menu
-* Using alterBroken::
+* Uso di alterBroken::
 @end menu
 
-@node Using alterBroken
-@unnumberedsubsubsec Using @code{\alterBroken}
+@node Uso di alterBroken
+@unnumberedsubsubsec Uso di @code{\alterBroken}
+@translationof Using alterBroken
 
-@cindex spanners, modifying
-@cindex broken spanners, modifying
+@cindex estensori, modificare gli
+@cindex estensori spezzati, modificare gli
 @funindex \alterBroken
 
-When a spanner crosses a line break or breaks, each piece
-inherits the attributes of the original spanner.  Thus, ordinary
-tweaking of a broken spanner applies the same modifications to
-each of its segments.  In the example below, overriding
-@code{thickness} affects the slur on either side of the line
-break.
+Quando un estensore va a capo o si spezza, ciascun pezzo eredita gli
+attributi dell'estensore originario.  Dunque la normale modifica di
+un estensore spezzato applica le stesse modifiche a ciascuno dei
+suoi segmenti.  Nell'esempio successivo, la sovrascrittura di
+@code{thickness} agisce sulla legatura di portamento su entrambi
+i lati rispetto all'interruzione di linea.
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -4479,34 +4273,33 @@ break.
 }
 @end lilypond
 
-Independently modifying the appearance of individual pieces
-of a broken spanner is possible with the @code{\alterBroken}
-command.  This command can produce either an @code{\override}
-or a @code{\tweak} of a spanner property.
+È possibile modificare indipendentemente l'aspetto di singoli pezzi
+di un estensore spezzato col comando @code{\alterBroken}.  Questo
+può generare sia un @code{\override} che un @code{\tweak} della
+proprietà di un estensore.
 
-The syntax for @code{\alterBroken} is
+La sintassi di @code{\alterBroken} è:
 
 @example
-[-]@code{\alterBroken} @var{property} @var{values} @var{item}
+[-]@code{\alterBroken} @var{proprietà} @var{valori} @var{elemento}
 @end example
 
-The argument @var{values} is a list of values, one for each
-broken piece.  If @var{item} is a grob name like @code{Slur} or
-@code{Staff.PianoPedalBracket}, the result is an @code{\override}
-of the specified grob type.  If @var{item} is a music expression
-such as @qq{(} or @qq{[} the result is the same music expression
-with an appropriate tweak applied.
+L'argomento @var{valori} è una lista di valori, uno per ogni pezzo
+spezzato.  Se @var{elemento} è il nome di un grob come @code{Slur} o
+@code{Staff.PianoPedalBracket}, il risultato è un @code{\override}
+del tipo di grob specificato.  Se @var{elemento} è un'espressione
+musicale come @qq{(} o @qq{[}, il risultato è la stessa espressione
+musicale modificata da un comando @code{\tweak}.
 
-The leading hyphen must be used with the @code{\tweak} form.  Do
-not add it when @code{\alterBroken} is used as an
-@code{\override}.
+Il trattino iniziale è richiesto nella forma @code{\tweak}.  Non aggiungerlo
+se @code{\alterBroken} viene usato come un @code{\override}.
 
-In its @code{\override} usage, @code{\alterBroken} may be
-prefaced by @code{\once} or @code{\temporary} and reverted by
-using @code{\revert} with @var{property}.
+Nel suo uso come @code{\override}, @code{\alterBroken} può essere
+preceduto da @code{\once} o @code{\temporary} e ripristinato con
+@code{\revert} seguito da @var{proprietà}.
 
-The following code applies an independent @code{\override} to
-each of the slur segments in the previous example:
+Il codice seguente applica un @code{\override} indipendente a ciascun
+segmento della legatura di portamento dell'esempio precedente:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -4518,17 +4311,16 @@ each of the slur segments in the previous example:
 }
 @end lilypond
 
-The @code{\alterBroken} command may be used with any spanner
-object, including @code{Tie}, @code{PhrasingSlur}, @code{Beam}
-and @code{TextSpanner}.  For example, an editor preparing a
-scholarly edition may wish to indicate the absence of part of a
-phrasing slur in a source by dashing only the segment which has
-been added.  The following example illustrates how this can be
-done, in this case using the @code{\tweak} form of the command:
+Il comando @code{\alterBroken} può essere usato con qualsiasi oggetto estensore,
+inclusi @code{Tie}, @code{PhrasingSlur}, @code{Beam} e @code{TextSpanner}.  Per
+esempio, un editor che stia preparando un'edizione colta potrebbe voler indicare
+l'assenza di parte di una legatura di frase in un manoscritto tratteggiando
+solo il segmento che è stato aggiunto.  L'esempio seguente mostra come farlo,
+in questo caso usando la forma @code{\tweak} del comando:
 
 @lilypond[verbatim,quote,ragged-right]
-% The empty list is conveniently used below, because it is the
-% default setting of dash-definition, resulting in a solid curve.
+% Si usa per convenienza la lista vuota, perché è l'impostazione
+% predefinita di dash-definition, producendo così una curva continua.
 \relative {
   c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
   \break
@@ -4536,88 +4328,90 @@ done, in this case using the @code{\tweak} form of the command:
 }
 @end lilypond
 
-It is important to understand that @code{\alterBroken} will set
-each piece of a broken spanner to the corresponding value in
-@var{values}.  When there are fewer values than pieces, any
-additional piece will be assigned the empty list.  This may lead
-to undesired results if the layout property is not set to the
-empty list by default.  In such cases, each segment should be
-assigned an appropriate value.
+È importante comprendere che @code{\alterBroken} imposterà ogni pezzo di
+un estensore spezzato sul valore corrispondente specificato in
+@var{valori}.  Quando il numero di valori è inferiore a quello dei pezzi,
+a qualsiasi pezzo ulteriore sarà assegnata una lista vuota.  Ciò potrebbe
+portare a risultati indesiderati se la proprietà di formattazione non è
+impostata su una lista vuota per impostazione predefinita.  In tali casi,
+a ogni segmento deve essere assegnato un valore appropriato.
 
 @knownissues
-Line breaks may occur in different places following changes in
-layout. Settings chosen for @code{\alterBroken} may be unsuitable
-for a spanner that is no longer broken or is split into more
-segments than before.  Explicit use of @code{\break} can guard
-against this situation.
-
-The @code{\alterBroken} command is ineffective for spanner
-properties accessed before line-breaking such as
-@code{direction}.
+Le interruzioni di linea possono verificarsi in punti diversi in seguito
+a modifiche della formattazione.  Le impostazioni scelte per @code{\alterBroken}
+potrebbero non essere più adatte per un estensore che non va più a capo o è
+diviso in più segmenti di prima.  Per proteggersi da questa situazione
+conviene fare un uso esplicito di @code{\break}.
+
+Il comando @code{\alterBroken} non funziona nel caso di proprietà dell'estensore
+a cui si accede prima di line-breaking, come @code{direction}.
 
 @seealso
 Estendere LilyPond:
 @rextend{Difficult tweaks}.
 
 
-@node Unpure-pure containers
-@subsection Unpure-pure containers
-
-@cindex Scheme, pure containers
-@cindex Scheme, unpure containers
-@cindex pure containers, Scheme
-@cindex unpure containers, Scheme
-@cindex horizontal spacing, overriding
-
-Unpure-pure containers are useful for overriding @emph{Y-axis} spacing
-calculations - specifically @code{Y-offset} and @code{Y-extent} - with a
-Scheme function instead of a literal (i.e. a number or pair).
-
-For certain grobs, the @code{Y-extent} is based on the @code{stencil}
-property, overriding the stencil property of one of these will
-require an additional @code{Y-extent} override with an unpure-pure
-container.  When a function overrides a @code{Y-offset} and/or
-@code{Y-extent} it is assumed that this will trigger line breaking
-calculations too early during compilation.  So the function is not
-evaluated at all (usually returning a value of @samp{0} or
-@samp{'(0 . 0)}) which can result in collisions.  A @q{pure} function
-will not affect properties, objects or grob suicides and therefore will
-always have its Y-axis-related evaluated correctly.
-
-Currently, there are about thirty functions that are already considered
-@q{pure} and Unpure-pure containers are a way to set functions not on
-this list as @q{pure}.  The @q{pure} function is evaluated @emph{before}
-any line-breaking and so the horizontal spacing can be adjusted
-@q{in time}.  The @q{unpure} function is then evaluated @emph{after}
-line breaking.
-
-@warning{As it is difficult to always know which functions are on this
-list we recommend that any @q{pure} functions you create do not use
-@code{Beam} or @code{VerticalAlignment} grobs.}
-
-An unpure-pure container is constructed as follows;
+@node Contenitori unpure-pure
+@subsection Contenitori unpure-pure
+@translationof Unpure-pure containers
+
+@cindex Scheme, contenitori puri
+@cindex Scheme, contenitori impuri
+@cindex pure-container, Scheme
+@cindex unpure-container, Scheme
+@cindex spaziatura orizzontale, sovrascrivere la
+
+I contenitori unpure-pure (impuri-puri) sono utili per sovrascrivere i calcoli
+di spaziatura dell'@emph{asse Y} - in particolare @code{Y-offset} e
+@code{Y-extent} - tramite una funzione Scheme invece che con un numero o una
+coppia di numeri.
+
+Per alcuni grob, il cui @code{Y-extent} è basato sulla proprietà @code{stencil},
+sovrascrivere tale proprietà renderà necessario un'ulteriore sovrascrittura di
+@code{Y-extent} tramite un contenitore unpure-pure.
+Quando una funzione sovrascrive @code{Y-offset} e/o @code{Y-extent}, si presume
+che ciò innescherà il calcolo delle interruzioni di linea troppo presto durante
+la compilazione.  Dunque la funzione non viene affatto calcolata (e di solito
+restituirà un valore di @samp{0} o @samp{'(0 . 0)}) e ciò può causare delle
+collisioni.  Una funzione @q{pure} (pura) non avrà effetto su proprietà,
+oggetti o @qq{suicidi} dei grob e quindi tutto ciò che è collegato al suo
+asse@tie{}Y sarà sempre calcolato correttamente.
+
+Attualmente, ci sono circa trenta funzioni che sono già considerate
+@q{pure} e i contenitori unpure-pure sono un modo per impostare le
+funzioni non ancora presenti in questa lista come @q{pure}.  La funzione
+@q{pure} viene calcolata @emph{prima} di qualsiasi interruzione di linea
+e quindi la spaziatura orizzontale può essere regolata @qq{in tempo}.  La
+funzione @q{unpure} viene invece calcolata @emph{dopo} le interruzioni
+di linea.
+
+@warning{Dato che è difficile sapere sempre quali funzioni si trovano in
+questa lista, consigliamo a chi crea funzioni @q{pure} di non usare i
+grob @code{Beam} o @code{VerticalAlignment}.}
+
+Un contenitore unpure-pure viene costruito nel modo seguente:
 
 @code{(ly:make-unpure-pure-container f0 f1)}
 
-where @code{f0} is a function taking @var{n} arguments (@var{n >= 1})
-and the first argument must always be the grob.  This is the function
-that gives the actual result.  @var{f1} is the function being labeled
-as @q{pure} that takes @var{n + 2} arguments.  Again, the first argument
-must always still be the grob but the second and third are @q{start}
-and @q{end} arguments.
+dove @code{f0} è una funzione che prende @var{n} argomenti (@var{n >= 1})
+e il primo argomento deve sempre essere il grob.  Questa è la funzione che
+restituisce il vero risultato.  @var{f1} è la funzione etichettata come
+@q{pure} che prende @var{n + 2} argomenti.  Di nuovo, il primo argomento
+deve sempre essere il grob, ma il secondo e il terzo sono il punto di
+partenza, @q{start}, e quello di arrivo, @q{end}.
 
-@var{start} and @var{end} are, for all intents and purposes, dummy
-values that only matter for @code{Spanners} (i.e @code{Hairpin} or
-@code{Beam}), that can return different height estimations based on a
-starting and ending column.
+@var{start} e @var{end} sono, per tutti gli intenti e scopi, valori
+fittizi che contano solo per gli estensori, o @code{Spanners}, (ovvero
+@code{Hairpin} o @code{Beam}), che possono restituire calcoli diversi
+dell'altezza in base a una colonna di inizio e di fine.
 
-The rest are the other arguments to the first function (which
-may be none if @var{n = 1}).
+Il resto sono altri argomenti della prima funzione (che potrebbero essere
+nessuno se @var{n = 1}).
 
-The results of the second function are used as an approximation of the
-value needed which is then used by the first function to get the real
-value which is then used for fine-tuning much later during the spacing
-process.
+I risultati della seconda funzione sono usati come un'approssimazione del
+valore necessario che viene poi usato dalla prima funzione per ottenere il
+valore reale, che viene infine usato per la messa a punto, molto più tardi
+nel corso del processo di spaziatura.
 
 @lilypond[verbatim,quote,ragged-right]
 #(define (square-line-circle-space grob)
@@ -4649,21 +4443,21 @@ smartSquareLineCircleSpace = {
 }
 @end lilypond
 
-In the first measure, without the unpure-pure container, the spacing
-engine does not know the width of the note head and lets it collide with
-the accidentals.  In the second measure, with unpure-pure containers,
-the spacing engine knows the width of the note heads and avoids the
-collision by lengthening the line accordingly.
+@c esempio obsoleto: dalla versione 2.18 LilyPond evita le collisioni di default.
+Nella prima misura, senza il contenitore unpure-pure, il motore della
+spaziatura non conosce la larghezza della testa di nota e lascia che
+collida con le alterazioni.  Nella seconda misura, che usa i contenitori
+unpure-pure, il motore della spaziatura conosce la larghezza della testa
+di nota e evita le collisioni allungando la linea dello spazio necessario.
 
-Usually for simple calculations nearly-identical functions for
-both the @q{unpure} and @q{pure} parts can be used, by only
-changing the number of arguments passed to, and the scope of, the
-function.  This use case is frequent enough that
-@code{ly:make-unpure-pure-container} constructs such a second
-function by default when called with only one function argument.
+Di solito per semplici calcoli si possono usare funzioni quasi identiche
+per entrambe le parti, @q{unpure} e @q{pure}, cambiando soltanto il numero
+di argomenti passati e la portata della funzione.  Questo caso d'uso è così
+frequente che @code{ly:make-unpure-pure-container} costruisce tale seconda
+funzione automaticamente quando è richiamata con un solo argomento.
 
-@warning{If a function is labeled as @q{pure} and it turns out not to
-be, the results can be unexpected.}
+@warning{Se una funzione viene etichettata come @q{pure} ma viene fuori che
+non lo è, i risultati possono essere imprevedibili.}
 
 
 @node Uso delle funzioni musicali
@@ -4672,59 +4466,59 @@ be, the results can be unexpected.}
 
 @c TODO -- add @seealso, etc. to these subsections
 
-Where tweaks need to be reused with different music expressions,
-it is often convenient to make the tweak part of a @emph{music
-function}.  In this section, we discuss only @emph{substitution}
-functions, where the object is to substitute a variable into a
-piece of LilyPond input code.  Other more complex functions are
-described in @rextend{Music functions}.
+Quando le modifiche devono essere riusate con diverse espressioni musicali,
+è spesso conveniente fare in modo che la modifica faccia parte di una
+@emph{funzione musicale}.  In questa sezione, trattiamo soltanto le funzioni
+di @emph{sostituzione}, dove l'obiettivo è sostituire una variabile in un
+punto del codice di input di LilyPond.  Altre funzioni più complesse sono
+descritte in @rextend{Music functions}.
 
 @menu
-* Substitution function syntax::
-* Substitution function examples::
+* Sintassi della funzione di sostituzione::
+* Esempi della funzione di sostituzione::
 @end menu
 
-@node Substitution function syntax
-@subsection Substitution function syntax
+@node Sintassi della funzione di sostituzione
+@subsection Sintassi della funzione di sostituzione
+@translationof Substitution function syntax
 
-Making a function that substitutes a variable into LilyPond
-code is easy.  The general form of these functions is
+Creare una funzione che sostituisca una variabile presente nel codice LilyPond
+è semplice.  La forma generica di queste funzioni è:
 
 @example
-function =
+funzione =
 #(define-music-function
      (@var{arg1} @var{arg2} @dots{})
-     (@var{type1?} @var{type2?} @dots{})
+     (@var{tipo1?} @var{tipo2?} @dots{})
    #@{
-     @var{@dots{}music@dots{}}
+     @var{@dots{}musica@dots{}}
    #@})
 @end example
 
 @noindent
-where
+dove
 
 @multitable @columnfractions .33 .66
 @item @code{@var{argN}}
-@tab @var{n}th argument
-
-@item @code{@var{typeN?}}
-@tab a scheme @emph{type predicate} for which @code{@var{argN}}
-must return @code{#t}.
-
-@item @code{@var{@dots{}music@dots{}}}
-@tab normal LilyPond input, using @code{$} (in places where only
-Lilypond constructs are allowed) or @code{#} (to use it as a Scheme
-value or music function argument or music inside of music lists) to
-reference arguments
-(eg. @samp{#arg1}).
+@tab @var{n}esimo argomento
+
+@item @code{@var{tipoN?}}
+@tab un @emph{tipo di predicato} scheme per il quale @code{@var{argN}}
+deve ritornare @code{#t}.
+
+@item @code{@var{@dots{}musica@dots{}}}
+@tab il normale input LilyPond, usando @code{$} (nei punti in cui sono
+consentiti solo i costrutti Lilypond) o @code{#} (per usarlo come un valore
+Scheme o come argomento di una funzione musicale o come musica all'interno
+di liste di musica) per riferirsi agli argomenti (es: @samp{#arg1}).
 @end multitable
 
-The list of type predicates is required.  Some of the most common
-type predicates used in music functions are:
+La lista del tipo di predicati è obbligatoria.  Alcuni dei tipi di predicati
+più comuni usati nelle funzioni musicali sono:
 
 @example
 boolean?
-cheap-list?  @emph{(use instead of }@q{list?}@emph{ for faster processing)}
+cheap-list?  @emph{(usarlo al posto di }@q{list?}@emph{ per un'elaborazione più veloce)}
 ly:duration?
 ly:music?
 ly:pitch?
@@ -4736,9 +4530,9 @@ symbol?
 @end example
 
 @noindent
-For a list of available type predicates, see
-@ref{Predefined type predicates}.  User-defined type predicates
-are also allowed.
+Un elenco dei tipi di predicati disponibili si trova in
+@ref{Predefined type predicates}.  Sono consentiti anche tipi di predicati
+definiti dagli utenti.
 
 @seealso
 Guida alla notazione:
@@ -4753,15 +4547,16 @@ File installati:
 @file{scm/lily.scm}.
 
 
-@node Substitution function examples
-@subsection Substitution function examples
+@node Esempi della funzione di sostituzione
+@subsection Esempi della funzione di sostituzione
+@translationof Substitution function examples
 
-This section introduces some substitution function examples.
-These are not intended to be exhaustive, but rather to demonstrate
-some of the possibilities of simple substitution functions.
+Questa sezione presenta alcuni esempi di funzione di sostituzione.
+L'obiettivo non è fornire un elenco esaustivo, ma mostrare soltanto
+alcune delle possibilità di semplici funzioni di sostituzione.
 
-In the first example, a function is defined that simplifies
-setting the padding of a TextScript:
+Nel primo esempio, viene definita una funzione che semplifica il
+padding di un oggetto TextScript:
 
 @lilypond[quote,verbatim,ragged-right]
 padText =
@@ -4773,16 +4568,16 @@ padText =
    #})
 
 \relative {
-  c''4^"piu mosso" b a b
+  c''4^"più mosso" b a b
   \padText #1.8
-  c4^"piu mosso" b a b
+  c4^"più mosso" b a b
   \padText #2.6
-  c4^"piu mosso" b a b
+  c4^"più mosso" b a b
 }
 @end lilypond
 
-In addition to numbers, we can use music expressions such
-as notes for arguments to music functions:
+Oltre ai numeri, si possono usare come argomenti delle funzioni musicali
+anche le espressioni musicali, come le note:
 
 @lilypond[quote,verbatim,ragged-right]
 custosNote =
@@ -4801,23 +4596,22 @@ custosNote =
 @end lilypond
 
 @funindex \etc
-Both of those functions are simple single expressions where only
-the last element of a function call or override is missing.  For
-those particular function definitions, there is a simpler
-alternative syntax, namely just writing out the constant part of
-the expression and replacing its final missing element with
-@code{\etc}:
+Entrambe queste funzioni sono semplici espressioni singole dove manca soltanto
+l'ultimo elemento di una chiamata di una funzione o di una sovrascrittura.  Per
+queste particolari definizioni di funzione, esiste una sintassi alternativa
+più semplice, che consiste nello scrivere interamente la parte costante
+dell'espressione e sostituire il suo elemento finale mancante con @code{\etc}:
 
 @lilypond[quote,verbatim,ragged-right]
 padText =
   \once \override TextScript.padding = \etc
 
 \relative {
-  c''4^"piu mosso" b a b
+  c''4^"più mosso" b a b
   \padText #1.8
-  c4^"piu mosso" b a b
+  c4^"più mosso" b a b
   \padText #2.6
-  c4^"piu mosso" b a b
+  c4^"più mosso" b a b
 }
 @end lilypond
 
@@ -4833,7 +4627,7 @@ custosNote =
 @end lilypond
 
 
-Substitution functions with multiple arguments can be defined:
+Si possono definire funzioni di sostituzione con molteplici argomenti:
 
 @lilypond[quote,verbatim,ragged-right]
 tempoPadded =
@@ -4846,9 +4640,9 @@ tempoPadded =
    #})
 
 \relative {
-  \tempo \markup { "Low tempo" }
+  \tempo \markup { "Tempo basso" }
   c''4 d e f g1
-  \tempoPadded #4.0 "High tempo"
+  \tempoPadded #4.0 "Tempo alto"
   g4 f e d c1
 }
 @end lilypond
index 5ae16435c60a7cd891b29797d1188ab43ba9fbaf..fba80f156373c9c06b2cd610ac82e132629284ac 100644 (file)
@@ -271,7 +271,7 @@ All'inizio di una ripetizione:
 \relative {
   e'1
   \repeat volta 2 {
-    \inStaffSegno  % start repeat
+    \inStaffSegno  % inizio ripetizione
     f2 g a b
   }
   c1_"D.S." \bar "|."
@@ -285,7 +285,7 @@ Alla fine di una ripetizione:
   e'1
   \repeat volta 2 {
     f2 g a b
-    \inStaffSegno  % end repeat
+    \inStaffSegno  % fine ripetizione
   }
   f2 g a b
   c1_"D.S." \bar "|."
@@ -300,7 +300,7 @@ Tra due ripetizioni:
   \repeat volta 2 {
     f2 g a b
   }
-  \inStaffSegno  % double repeat
+  \inStaffSegno  % doppia ripetizione
   \repeat volta 2 {
     f2 g a b
   }
index 216dd8e74d277bb5fb95e75bca2f96c9e2c6ba3c..f39751159a055238ca053d5439164bb2559c7a7b 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @c Translators: Federico Bruni
 @c Translation checkers: Luca Rossetto Casel
@@ -1140,9 +1140,9 @@ Si può sovrascrivere il valore predefinito di @code{beatStructure} nel comando
 \score {
   \new Staff {
     \relative {
-      \time #'(2 2 3) 7/8
+      \time 2,2,3 7/8
       \repeat unfold 7 { c'8 } |
-      \time #'(3 2 2) 7/8
+      \time 3,2,2 7/8
       \repeat unfold 7 { c8 } |
     }
   }
@@ -1163,7 +1163,7 @@ specificata nelle nuove impostazioni:
       \overrideTimeSignatureSettings
         4/4        % timeSignatureFraction
         1/4        % baseMomentFraction
-        #'(3 1)    % beatStructure
+        3,1        % beatStructure
         #'()       % beamExceptions
       \time 4/4
       \repeat unfold 8 { c8 } |
@@ -1209,7 +1209,7 @@ essere ripristinati ai valori originali:
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1232,7 +1232,7 @@ di tempo per righi diversi spostando @code{Timing_translator} e
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1241,7 +1241,7 @@ di tempo per righi diversi spostando @code{Timing_translator} e
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -2198,9 +2198,9 @@ tempo viene ristabilita.
   % È improbabile che per un tempo di 5/16 sia stata definita beamExceptions,
   % ma disabilitiamola lo stesso per sicurezza
   \set Timing.beamExceptions = #'()
-  \set Timing.beatStructure = #'(2 3)
+  \set Timing.beatStructure = 2,3
   c16^"(2+3)" c c c c |
-  \set Timing.beatStructure = #'(3 2)
+  \set Timing.beatStructure = 3,2
   c16^"(3+2)" c c c c |
 }
 @end lilypond
@@ -2214,7 +2214,7 @@ tempo viene ristabilita.
   % per il tempo 4/4
   \set Timing.beamExceptions = #'()
   \set Timing.baseMoment = #(ly:make-moment 1/4)
-  \set Timing.beatStructure = #'(1 1 1 1)
+  \set Timing.beatStructure = 1,1,1,1
   a8^"cambiato" a a a a a a a
 }
 @end lilypond
@@ -2229,7 +2229,7 @@ contiene.
   \time 7/8
   % Nessun bisogno di disabilitare beamExceptions perché non è definita per il tempo 7/8
 
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   <<
     \new Voice = one {
       \relative {
@@ -2239,7 +2239,7 @@ contiene.
     \new Voice = two {
       \relative {
         \voiceTwo
-        \set Voice.beatStructure = #'(1 3 3)
+        \set Voice.beatStructure = 1,3,3
         f'8 f f f f f f
       }
     }
@@ -2256,11 +2256,11 @@ rigo:
 % ritmo 3-1-1-2
 % Se non si specifica il contesto, la modifica viene applicata a Voice e quindi non funziona correttamente
 % Dato che le voci sono autogenerate, tutto il ritmo avrà come baseMoment (1 . 8)
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 
 % Funziona correttamente se si specifica il contesto Staff
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 @end lilypond
 
@@ -2273,7 +2273,7 @@ compatibile col nuovo valore di @code{baseMoment}.
 \time 5/8
 % Nessun bisogno di disabilitare beamExceptions perché non è definita per il tempo 5/8
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a16 }
 @end lilypond
 
@@ -2302,7 +2302,7 @@ modo per determinare la lunghezza della misura.  Ecco un semplice esempio:
 @lilypond[quote,verbatim]
 \relative c'' {
   \time 3/16
-  \set Timing.beatStructure = #'(2 1)
+  \set Timing.beatStructure = 2,1
   \set Timing.beamExceptions =
     \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
   c16 c c |
@@ -2328,7 +2328,7 @@ ai valori predefiniti.
   \time 6/8
   \repeat unfold 6 { a8 }
   % raggruppamento (4 + 2)
-  \set Timing.beatStructure = #'(4 2)
+  \set Timing.beatStructure = 4,2
   \repeat unfold 6 { a8 }
   % ritorno al comportamento predefinito
   \time 6/8
@@ -2349,7 +2349,7 @@ se @code{beamExceptions} non viene annullato.
 @lilypond[quote,verbatim,fragment]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % Le travature non saranno raggruppate in (3 3 2) a causa di beamExceptions
 \repeat unfold 8 {c8} |
 % Il raggruppamento delle travature è (3 3 2) perché abbiamo tolto le impostazioni predefinite di beamExceptions
@@ -2486,7 +2486,7 @@ un solo rigo.
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
+    \set Timing.beatStructure = 1,5
     \set Timing.beamExceptions = #'()
     \repeat unfold 6 { a'8 }
   }
@@ -2507,7 +2507,7 @@ descritte in @ref{Time signature}.
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
index c7de10a38e38eb0db7c8c54e7d83050bc5d9c492..dfcd72bcdea40c06ed3e61dace4e83d6d3749006 100644 (file)
@@ -2904,7 +2904,7 @@ Non esiste alcun trucco per diminuire la quantità di spazio.
 @c traduzione del titolo non letterale ma più chiara
 @node Nuova spaziatura nel corso di un brano
 @subsection Nuova spaziatura nel corso di un brano
-@translationof New spacing area
+@translationof New spacing section
 
 @funindex \newSpacingSection
 @cindex nuova spaziatura nel corso di un brano
@@ -3340,7 +3340,7 @@ Per impostazione predefinita, esiste un solo @code{SpacingSpanner} per
 disattivato per l'intera partitura.  Possiamo tuttavia modificare tale
 comportamento e attivare diverse funzionalità di spaziatura in punti
 diversi del brano.  Per farlo si usa il comando @code{\newSpacingSection}.
-Maggiori informazioni in @ref{New spacing area}.
+Maggiori informazioni in @ref{New spacing section}.
 
 Ora esaminiamo gli effetti dell'incisore @code{Separating_line_group_engraver} e
 vediamo perché le partiture proporzionali solitamente tolgano questo incisore.
@@ -3438,7 +3438,7 @@ per queste impostazioni.
 
 @seealso
 Guida alla notazione:
-@ref{New spacing area}.
+@ref{New spacing section}.
 
 Frammenti:
 @rlsr{Spacing}.
index 5d1b369de50e13abcfc5b468a8086855bc776c69..1ca2de981c643307d1c01a27c3f5910aa6bf667c 100644 (file)
@@ -383,7 +383,7 @@ in qualsiasi momento musicale.
 @end itemize
 
 In tutti questi tre metodi è possibile disegnare dei trattini tra
-le sillabe di una parole e delle linee di estensione oltre la
+le sillabe di una parola e delle linee di estensione oltre la
 fine di una parola.  Maggiori dettagli in @ref{Extenders and hyphens}.
 
 Il contesto @code{Voice} contenente la melodia al quale il testo si
index 9bca9b3be3f8c4b06e30daa673a2555db1d5c799..241d92c865f9676faae4e1cb774b3c0baca90f86 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Ultimo aggiornamento Fri Jan  1 10:40:27 UTC 2016
+@emph{Ultimo aggiornamento Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -30,7 +30,7 @@ Cambiamenti in LilyPond
 @item
 Section titles
 @*
-2037
+2171
 @tab Federico Bruni
 @tab 
 @tab 
@@ -47,11 +47,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #40fe23">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -177,7 +177,7 @@ sì
 @item
 2 Notazione comunemente utilizzata
 @*
-4443
+4437
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -231,7 +231,7 @@ sì
 @item
 4 Modifica dell'output
 @*
-16577
+16622
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -378,7 +378,7 @@ sì
 @item
 1.1 Altezze
 @*
-5203
+5202
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -513,7 +513,7 @@ sì
 @item
 1.6 Notazione del rigo
 @*
-2399
+2576
 @tab Federico Bruni
 @tab 
 @tab 
@@ -530,11 +530,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -648,7 +648,7 @@ sì
 @item
 3 Input e output
 @*
-12717
+12715
 @tab Federico Bruni
 @tab 
 @tab 
@@ -675,7 +675,7 @@ sì
 @item
 4 Gestione dello spazio
 @*
-10884
+10895
 @tab Federico Bruni
 @tab 
 @tab 
@@ -692,17 +692,17 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #25fe1f">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
 5 Modifica delle impostazioni predefinite
 @*
-15581
+15610
 @tab Federico Bruni
 @tab 
 @tab 
@@ -719,11 +719,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -849,7 +849,7 @@ sì
 @item
 1 Eseguire @command{lilypond}
 @*
-5401
+5425
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -866,17 +866,17 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
 2 Aggiornare i file con @command{convert-ly}
 @*
-1865
+1866
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -1050,7 +1050,7 @@ sì
 @item
 Introduzione
 @*
-5816
+5815
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -1067,11 +1067,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1131,7 +1131,7 @@ sì
 @item
 Comunità
 @*
-3004
+3522
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -1148,11 +1148,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #7dff2b">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @end multitable
index bf4b06bcaa05f56ad1de56060ac5d10df914292f..14c326f7513979eed4053db3d7bcc97d731da6ae 100644 (file)
@@ -739,7 +739,7 @@ oltre 1500 spartiti di brani di musica classica liberamente scaricabili, e
 principale vetrina delle partiture fatte con LilyPond.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 spartiti di alta qualità di musica sacra, disponibili per il
 download immediato o nel tradizionale supporto cartaceo.
 
@@ -788,7 +788,7 @@ Aprile 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} pubblica un
 articolo intitolato
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  È un articolo introduttivo a MuseScore,
 LilyPond e Chordii.  L'autrice Carla Schroder afferma @qq{LilyPond è un
 programma a linea di comando, ma non lasciatevi spaventare dalla mancanza
@@ -985,7 +985,7 @@ grande tipografia musicale].}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{Il modo in cui la musica viene inserita in LilyPond mi fa pensare in
 modo più musicale -- a volte non sapevo come dire a
@@ -1475,7 +1475,7 @@ sono ancora disponibili e scaricabili le versioni precedenti su
 @uref{http://sourceforge.net/projects/mscore/files/mscore/,Sourceforge}.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, che importava
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, che importava
 @uref{http://www.makemusic.com/musicxml,MusicXML}, è stato "forkato"
 in
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
index c7534bfc10ce3e44329cdf6ef5ea6567011ccf12..4e256f7cbc6ab14c5f1a1de3717d45c8356ec6a9 100644 (file)
@@ -2,13 +2,15 @@
 @c This file is part of web/download.itexi and
 @c learning/tutorial.itely
 @ignore
-    Translation of GIT committish: f7630a9232be374298d88e1b8bdb85ead17a7572
+    Translation of GIT committish: 211937747d4adbae18d6ce41f88dffbb3ca04a5f
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
+@c Translators: Masamichi Hosoda, Yoshiki Sawada
+
 @c This is about "compiling" a lilypond file
 @c (Learning 1 Tutorial), **not** compiling the
 @c source code.
@@ -49,7 +51,7 @@
 
 @subsubheading ステップ 3. 出力を閲覧する
 
-コンパイルが終了すると、元のファイルと同じ前の PDF ファイルが作成され、@c
+コンパイルが終了すると、元のファイルと同じ前の PDF ファイルが作成され、@c
 自動的にデフォルトの PDF ビューアで表示されます。
 
 @sourceimage{Learning_Macos_pdf_output,,,}
@@ -62,7 +64,7 @@ LilyPond 用に新しくファイルを作成するには、@w{@code{File > New}
 
 @sourceimage{Learning_Macos_New_menu,,,}
 
-あるいは、@w{@code{File > Open} を選択し、既存のファイルを開いて編集します。
+あるいは、@w{@code{File > Open}} を選択し、既存のファイルを開いて編集します。
 
 @sourceimage{Learning_Macos_Open_menu,,,}
 
@@ -75,6 +77,8 @@ Mac OS に付属されているデフォルトの Preview PDF ビューアを使
 その後に実行するコンパイルは更新された PDF を生成するのに失敗する可能性があります。@c
 その時は、元の PDF ファイルを閉じてください。
 
+
+
 @end macro
 
 
@@ -85,6 +89,7 @@ Mac OS に付属されているデフォルトの Preview PDF ビューアを使
 ファイルのコンパイルで何か問題に遭遇した時は@c
 そのプログラムのドキュメントを調べてください。}
 
+
 @subsubheading ステップ 1. @file{.ly} ファイルを作成する
 
 デスクトップ上の LilyPond アイコンをクリックして、見本のファイルを開きます。
@@ -93,7 +98,7 @@ Mac OS に付属されているデフォルトの Preview PDF ビューアを使
 
 見本ファイルの上端に表示されるメニューから
 @w{@code{ファイル > 名前を付けて保存}} を選択します。@c
-@w{@code{ã\83\95ã\82¡ã\82¤ã\83« > ä¸\8aæ\9b¸ã\81\8dä¿\9då­\98}} ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\81§ã\81\8fã\81 ã\81\95ã\81\84ã\80\82@c
+@w{@code{ファイル > 保存}} を使用しないでください。@c
 なぜならファイルに有効な LilyPond ファイル名を付けるまで、@c
 上書き保存は機能しないからです。
 
@@ -104,32 +109,35 @@ Mac OS に付属されているデフォルトの Preview PDF ビューアを使
 @sourceimage{SaveAs,,,}
 
 
-@subsubheading ステップ 2a. コンパイルする (ドラッグ&ドロップを使用します)
+@subsubheading ステップ 2. コンパイルする
 
-ファイルをコンパイルするには、好みで以下のいずれかの方法をとります:
+LilyPond ファイルを楽譜にするためには、コンパイルする必要があります。@c
+これにはいくつかの方法があります。
+-- ドラッグ&ドロップ、右クリック、ダブルクリック、@c
+コマンドライン(コマンドプロンプト)です。@c
+最初の 3 種類を見てみましょう。
 
-ファイルを LilyPond アイコンに直接ドラッグ&ドロップします。
+1. ファイルを LilyPond アイコンに直接ドラッグ&ドロップします。
 
 @sourceimage{DragDrop,,,}
 
-ファイルを右クリックして、ポップアップ メニューから
-@w{@code{プログラムから開く > LilyPond}} を選択します。
-Right-click on the file and from the pop-up context menu choose
-
-@sourceimage{GenPDF,,,}
+何も起こらないように見えますが、しばらくすると、@c
+デスクトップに 2 つの新しいファイル
+-- @file{test.log} と @file{test.pdf} --
+が表示されるはずです。
 
+2. ファイルを右クリックして、ポップアップ メニューから
+@w{@code{Generate PDF}} を選択します。
 
-@subsubheading ステップ 2b. コンパイルする (ダブルクリックする)
+@sourceimage{GenPDF,,,}
 
-あるいは、ただ単に @file{test.ly} をダブルクリックします。
+3. あるいは、ただ単に @file{test.ly} をダブルクリックします。
 
 
 @subsubheading ステップ 3. 出力を閲覧する
 
-@file{test.ly} をコンパイルしている間、コマンド ウィンドウが一瞬だけ開いて閉じます。@c
-この処理の間に 3 つのファイルが作成されます。
-
-PDF ファイルは @file{test.ly} ファイルの譜刻結果を保持しています。
+@file{test.pdf} は @file{test.ly} ファイルの譜刻結果を保持しています。@c
+ダブルクリックすると、PDF ビュアーで開かれます。
 
 @sourceimage{PDFRead,,,}
 
@@ -137,10 +145,11 @@ PDF ファイルは @file{test.ly} ファイルの譜刻結果を保持してい
 @subsubheading その他のコマンド
 
 新しくファイルを作成するには、以前に作成したファイルのウィンドウから
-@w{@code{ファイル > 新規作成}} を選択します。
-
+@w{@code{ファイル > 新規作成}} を選択します。@c
 あるいは @w{@code{ファイル > 開く}} を選択し、以前に保存したファイルを@c
-開いて編集します。
+開いて編集します。@c
+または、ファイルを右クリックして @w{@code{Edit Source}} を選択しても、@c
+編集することができます。
 
 @sourceimage{EditFile,,,}
 
@@ -152,14 +161,12 @@ PDF ファイルが作成されない場合は、コンパイルの過程で作
 
 このログ ファイルは、LilyPond ファイルをコンパイルする度に上書きされます。
 
-PS ファイルは LilyPond が PDF ファイルを作成するために内部的に使用するもので、@c
-無視できます。@c
-PS ファイルもコンパイルの度に上書きされます。
-
-PDF ファイルを PDF ビュー他で閲覧している場合、
+PDF ファイルを PDF ビュアーで閲覧している場合、
 新たにコンパイルを行う前に閉じる必要があります。@c
 なぜなら、閲覧されている間は新たに PDF ファイルを作成するのに失敗する可能性があるからです。
 
+@sourceimage{BadLog2,,,}
+
 @end macro
 
 
@@ -171,6 +178,7 @@ PDF ファイルを PDF ビュー他で閲覧している場合、
 ファイルのコンパイルで何か問題に遭遇した時は@c
 そのプログラムのドキュメントを調べてください。}
 
+
 @subsubheading ステップ 1. @file{.ly} ファイルを作成する
 
 @file{test.ly} というテキスト ファイルを作成し、以下を記述します:
@@ -213,3 +221,5 @@ Success: compilation successfully completed
 結果として得られる @file{test.pdf} を閲覧したり、印刷したりすることができます。
 
 @end macro
+
+
index c8d79707704024e3bc4743a08c27be39d4acbfd4..ea545600afef462960b5e964922522af0fee47e7 100644 (file)
@@ -215,7 +215,7 @@ LilyPond の音符名はピッチを示しています。
 
 @node 警告 調号とピッチ
 @unnumberedsubsubsec 警告: 調号とピッチ
-@traslateof Warning key signatures and pitches
+@translationof Warning key signatures and pitches
 
 
 音楽用語集: @rglos{accidental}, @rglos{key signature},
index 1af7a8bd7a0cd7cbea4b194da8448f9031746681..d3035fe3cb5970a5cff66ea98a7c14e9401903e8 100644 (file)
@@ -327,7 +327,7 @@ C の長三和音を作り出すということに注意してください。
 
 @cindex chord steps, altering (和音の音を変化させる)
 
-和音の音は、数字の後ろに @code{+} または@code{-] を置くことで@c
+和音の音は、数字の後ろに @code{+} または@code{-} を置くことで@c
 変化させることができます。@c
 和音構造の一部として自動的に含まれる音を変化させるには、@c
 その音を追加して変化させます。
index ee64e0812907ef124f9a1a5bd37870354f5dc987..f28c43a396358a6f57922b4c3dc6e1f4b7e40ac2 100644 (file)
@@ -5,6 +5,7 @@
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..@end ignore
+@end ignore
 
 @c \version "2.19.21"
 
index 311a31aad64aba209ecc32251eff2c8b96b57cd0..79127b122dfde82206d578832f9844d5206d2ad7 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @c Translators: Yoshiki Sawada
 @c Translation status: post-GDP
@@ -1118,7 +1118,7 @@ R1^"right"
       \overrideTimeSignatureSettings
         4/4        % timeSignatureFraction
         1/4        % baseMomentFraction
-        #'(3 1)    % beatStructure
+        3,1        % beatStructure
         #'()       % beamExceptions
       \time 4/4
       \repeat unfold 8 { c8 } |
@@ -1163,7 +1163,7 @@ R1^"right"
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     c8^\markup {"Beamed (2 2)"}
@@ -1172,7 +1172,7 @@ R1^"right"
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     c8^\markup {"Beamed (3 1)"}
@@ -1194,7 +1194,7 @@ R1^"right"
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1216,7 +1216,7 @@ R1^"right"
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1225,7 +1225,7 @@ R1^"right"
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -2107,9 +2107,9 @@ cis4 d cis! d
 @lilypond[quote,relative=2,verbatim]
 \time 5/16
 c16^"default" c c c c |
-\set Timing.beatStructure = #'(2 3)
+\set Timing.beatStructure = 2,3
 c16^"(2+3)" c c c c |
-\set Timing.beatStructure = #'(3 2)
+\set Timing.beatStructure = 3,2
 c16^"(3+2)" c c c c |
 @end lilypond
 
@@ -2120,7 +2120,7 @@ c16^"(3+2)" c c c c |
 @lilypond[quote, verbatim,relative=1]
 \new Staff {
   \time 7/8
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   <<
     \new Voice = one {
       \relative {
@@ -2130,7 +2130,7 @@ c16^"(3+2)" c c c c |
     \new Voice = two {
       \relative {
         \voiceTwo
-        \set Voice.beatStructure = #'(1 3 3)
+        \set Voice.beatStructure = 1,3,3
         f'8 f f f f f f
       }
     }
@@ -2148,11 +2148,11 @@ c16^"(3+2)" c c c c |
 % リズム 3-1-1-2
 % デフォルトで連桁設定の変更は Voice に適用され、うまくいきません
 % なぜなら、自動生成されるボイスで、すべての拍は baseMoment (1 . 8) だからです
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 
 % コンテキスト Staff を指定するとうまくいきます
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 @end lilypond
 
@@ -2165,7 +2165,7 @@ c16^"(3+2)" c c c c |
 @lilypond[quote,verbatim,relative=2]
 \time 5/8
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a16 }
 @end lilypond
 
@@ -2183,7 +2183,7 @@ Scheme 関数 @code{ly:make-moment} によって作り出されます。@c
 @c 未訳
 @lilypond[quote,relative=2,verbatim]
 \time 3/16
-\set Timing.beatStructure = #'(2 1)
+\set Timing.beatStructure = 2,1
 \set Timing.beamExceptions =
   #'(                         ;start of alist
      (end .                   ;entry for end of beams
@@ -2229,7 +2229,7 @@ c16 c c |
 \time 6/8
 \repeat unfold 6 { a8 }
 % (4 + 2) にグループ化します
-\set Timing.beatStructure = #'(4 2)
+\set Timing.beatStructure = 4,2
 \repeat unfold 6 { a8 }
 % デフォルトの振る舞いに戻ります
 \time 6/8
@@ -2252,7 +2252,7 @@ c16 c c |
 @lilypond[quote,verbatim,relative=2]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % 以下は beamExceptions のため、(3 3 2) の連桁にはなりません
 \repeat unfold 8 {c8} |
 % 以下は beamExceptions をクリアするため、(3 3 2) の連桁になります
@@ -2390,7 +2390,7 @@ c16 c c |
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
+    \set Timing.beatStructure = 1,5
     \repeat unfold 6 { a8 }
   }
   \new Staff {
@@ -2409,7 +2409,7 @@ c16 c c |
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
index e0d122f41831fd41e3068319bdbc528e605b3b72..a7bcbafe56ca14599a09cd99a5124c645207f042 100644 (file)
@@ -2942,7 +2942,7 @@ Essay on automated music engraving:
 
 @node 新しいスペース領域
 @subsection 新しいスペース領域
-@translationof New spacing area
+@translationof New spacing section
 
 @code{newSpacingSection} を用いることで、@c
 異なるスペース パラメータを持つ新しいセクションを開始することができます。@c
index aeff3a97532059580b542f4417f3312366c7ae6d..ba7b60205c784ebed1e511bd4d0e17f5731e352d 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{最終更新日 Fri Jan  1 10:40:27 UTC 2016
+@emph{最終更新日 Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -117,7 +117,7 @@ Yoshiki Sawada
 @item
 2 一般的な記譜法
 @*
-4443
+4437
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
@@ -173,7 +173,7 @@ partially
 @item
 4 出力を調整する
 @*
-16577
+16622
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -217,7 +217,7 @@ A テンプレート
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">partially</span>
+<span style="background-color: #ffdd42">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -320,7 +320,7 @@ LilyPond --- \TITLE\
 @item
 1.1 ピッチ
 @*
-5203
+5202
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -455,7 +455,7 @@ partially
 @item
 1.6 譜の記譜法
 @*
-2399
+2576
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -472,7 +472,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">partially</span>
+<span style="background-color: #b2fe32">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -646,7 +646,7 @@ partially
 @item
 2.4 フレットのある弦楽器
 @*
-2756
+2842
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -663,7 +663,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">partially</span>
+<span style="background-color: #54ff26">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -808,7 +808,7 @@ partially
 @item
 3 入出力全般
 @*
-12717
+12715
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -835,7 +835,7 @@ partially
 @item
 4 スペースの問題
 @*
-10884
+10895
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -852,7 +852,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">partially</span>
+<span style="background-color: #e1ff39">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -862,7 +862,7 @@ partially
 @item
 5 デフォルトを変更する
 @*
-15581
+15610
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -879,7 +879,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #8aff2d">partially</span>
+<span style="background-color: #91ff2e">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -986,7 +986,7 @@ Yoshiki Sawada
 @item
 1 @command{lilypond} を実行する
 @*
-5401
+5425
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
@@ -1005,17 +1005,17 @@ Yoshiki Sawada
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">はい</span>
+<span style="background-color: #2cff20">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
-はい
+partially
 @end ifnothtml
 @tab post-GDP
 @item
 2 @command{convert-ly} を使ってファイルを更新する
 @*
-1865
+1866
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -1197,7 +1197,7 @@ Yoshinobu Ishizaki
 @item
 導入部
 @*
-5816
+5815
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
@@ -1218,11 +1218,11 @@ Yoshinobu Ishizaki
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">はい</span>
+<span style="background-color: #2cff20">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
-はい
+partially
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1284,7 +1284,7 @@ partially
 @item
 コミュニティ
 @*
-3004
+3522
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -1301,7 +1301,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially</span>
+<span style="background-color: #c7ff35">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
index 17ea5d56fb396319da91fde9b468ecc28189e04f..ae6ef2e14ebaedc3b3c8b4b6acfcbd9e4f815308 100644 (file)
@@ -249,7 +249,7 @@ Emacs は @file{lilypond-mode} を持ちます。@c
 配置するか、@file{~/.emacs} または @file{~/.emacs.el} に追記する必要があります。
 
 @file{~/.emacs} に以下の行を追記 (あるいは修正) して、@c
-ソース パス (例えば @file{~/site-lisp/) を @var{load-path} に@c
+ソース パス (例えば @file{~/site-lisp/}) を @var{load-path} に@c
 追加した方が良いかもしれません。
 
 @c any reason we do not advise:  (push "~/site-lisp" load-path)
index 9d8aa302616631f5e283716b49a27166a16dd4bc..38db614f76c1dc5a099828603731be3bc0047f37 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
 @ignore
-    Translation of GIT committish: 211937747d4adbae18d6ce41f88dffbb3ca04a5f
+    Translation of GIT committish: 7215236a0a49dd112348d2620fa132f7e5f12aff
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index ade5de27ed82d2236033f9be1898106ccc8333a5..1bb8693845c58b9347c50da85278091773f334f6 100644 (file)
@@ -1,14 +1,15 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
 @ignore
-    Translation of GIT committish: 40c0295431d0732747d0e37b7911f03fb9daca16
+    Translation of GIT committish: 7215236a0a49dd112348d2620fa132f7e5f12aff
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c Translators: Yoshiki Sawada
+@c Translators: Masamichi Hosoda, Yoshiki Sawada
 
+@include included/acknowledge.itexi
 @include included/authors.itexi
 @include included/helpus.itexi
 
 @ref{援助が必要です}: あなたの手助けが必要です。
 
 @item
-@ref{Sponsoring}: financial contributions.
+@ref{スポンサー}: financial contributions.
 
 @item
 @ref{開発}: 貢献者とテスター向けです。
 
 @item
-@ref{GSoC 2012}: Google Summer of Code 2012 に対する我々のアイデア。
+@ref{Google Summer of Code}: ideas for Google Summer of Code (GSoC).
 
 @item
 @ref{著者}: 現在の LilyPond を作った人々。
 
+@item
+@ref{謝辞}: LilyPond をサポートするプロジェクトや団体。
+
 @end itemize
 @divEnd
 
@@ -86,8 +90,9 @@
 * 援助が必要です::
 * スポンサー::
 * 開発::
-* GSoC 2012::
+* Google Summer of Code::
 * 著者::
+* 謝辞::
 * 出版物::
 * 古いニュース::
 * 物置::
@@ -176,8 +181,8 @@ LSR から、@c
 @subsubheading 他の言語
 
 @quotation
-@uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
\82¹ã\83\9aã\82¤ã\83³語のメーリング リスト}
+@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
\83\95ã\83©ã\83³ã\82¹語のメーリング リスト}
 
 @uref{http://www.lilypondforum.de/,
 ドイツ語のフォーラム}
@@ -185,27 +190,19 @@ LSR から、@c
 @uref{http://groups.google.com/group/lilypond-brasil,
 ポルトガル語のグループ}
 
-@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
-フランス語のメーリング リスト}
-
-@uref{http://www.lilypondforum.nl/,
-オランダ語のフォーラム}
+@uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
+スペイン語のメーリング リスト}
 @end quotation
-
 @divEnd
 
 
 @divClass{column-right-top}
-@subheading 通知
-@c Stay Informed
-
-@subsubheading LilyPond レポート
+@subheading LilyPond ブログ
 
-LilyPond のことを知る最も簡単な方法は、@c
-我々のコミュニティのニュース レター LilyPond レポートを読むことです。
+我々コミュニティのブログ @q{Scores of Beauty} を読んでください。
 
 @example
-@uref{http://web.archive.org/web/20110325004849/http://news.lilynet.net}
+@uref{http://lilypondblog.org}
 @end example
 
 @subsubheading リリース メーリング リスト: @code{info-lilypond@@gnu.org}
@@ -232,12 +229,12 @@ info-lilypond への登録と情報}
 
 
 @divClass{column-right-bottom}
-@subheading 開発者の議論
+@subheading é\96\8bç\99ºè\80\85ã\81\8aã\82\88ã\81³ç¿»è¨³è\80\85ã\81®è­°è«\96
 
 @subsubheading 開発者メーリング リスト: @code{lilypond-devel@@gnu.org}
 
-多くの開発者がこのメーリング リストに登録しています。@c
\83\91ã\83\83ã\83\81ã\81¯ã\81\93ã\81\93ã\81«é\80\81ã\81£ã\81¦ã\81\8fã\81 ã\81\95ã\81\84
+開発者の議論はこのメーリングリストで行われています。@c
\83\91ã\83\83ã\83\81ã\81¯ã\81\93ã\81\93ã\81«é\80\81ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\99
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
@@ -257,7 +254,8 @@ gmane で lilypond-devel にメールを送る}
 
 @subsubheading バグ メーリング リスト: @code{bug-lilypond@@gnu.org}
 
-バグについての議論はここで行われます。
+バグ報告や議論はここで行われます。@c
+このメーリングリストにパッチを送らないでください。
 
 @quotation
 @uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
@@ -276,13 +274,16 @@ bug-lilypond への登録と情報}
 @warning{バグ リストにメールを送る前に @ref{バグ報告} の@c
 ガイドラインを呼んで下さい。}
 
-@divEnd
 
-@divClass{column-right-bottom}
-@subheading デリケートな内容の email
+@subsubheading 翻訳 メーリング リスト: @code{translations@@lilynet.org}
+
+LilyPond マニュアルの翻訳に関するすべての議論がここで行われます。@c
+このメーリングリストにパッチを送らないでください。
 
-プライベートな問題は Graham Percival (プロジェクト マネージャ) に@c
-送るべきです。彼はそのことについて関係者と議論します。
+@quotation
+@uref{http://lilypond-translations.3384276.n2.nabble.com/,
+アーカイブ}
+@end quotation
 
 @divEnd
 
@@ -414,10 +415,10 @@ LilyPond への理解不足である可能性が高いです!
 すでに把握しているバグがあります。以下をチェックしてください:
 
 @example
-@uref{http://code.google.com/p/lilypond/issues/list}
+@uref{http://sourceforge.net/p/testlilyissues/issues/}
 @end example
 
-@warning{バグ トラッカーに直接バグ報告を @strong{送らないで下さい}。@c
+@warning{ã\81\93ã\81®ã\83\90ã\82° ã\83\88ã\83©ã\83\83ã\82«ã\83¼ã\81«ç\9b´æ\8e¥ã\83\90ã\82°å ±å\91\8aã\82\92 @strong{é\80\81ã\82\89ã\81ªã\81\84ã\81§ä¸\8bã\81\95ã\81\84\80\82@c
 トラッカーに登録された問題については、自由に追加情報を書き込んでください。}
 
 @divEnd
@@ -500,7 +501,7 @@ gmane lilypond.bugs web インタフェイス} でバグ報告を送ることが
 バグにマークを付けて、@c
 そのバグに対して何かアクションがあったときに自動的に
 email を受け取ることができます。@c
-これには Google アカウントが必要です。
\81\93ã\82\8cã\81«ã\81¯ Google ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81§ã\81®ã\83­ã\82°ã\82¤ã\83³ã\81\8cå¿\85è¦\81ã\81§ã\81\99ã\80\82
 @divEnd
 
 @divClass{column-center-bottom}
@@ -515,6 +516,7 @@ email を受け取ることができます。@c
 @divEnd
 
 
+
 @node 援助が必要です
 @unnumberedsec 援助が必要です
 @translationof Help us
@@ -789,6 +791,7 @@ LilyPond の開発手法はかなり複雑です。@c
 @divClass{normal-table}
 @multitable @columnfractions .3 .3 .3
 @headitem 導入部
+
 @item
 @docLinkSplit{学習,learning,@manualDevelLearningSplit-ja}
 @tab
@@ -809,15 +812,17 @@ LilyPond の開発手法はかなり複雑です。@c
 @docLinkBig{Essay,essay,@manualDevelEssayBig}
 @tab
 @docLinkPdf{Essay,essay,@manualDevelEssayPdf}
+@end multitable
 
+@multitable @columnfractions .3 .3 .3
 @headitem 常用マニュアル
 
 @item
-@docLinkSplit{Notation,notation,@manualDevelNotationSplit-ja}
+@docLinkSplit{記譜法,notation,@manualDevelNotationSplit-ja}
 @tab
-@docLinkBig{Notation,notation,@manualDevelNotationBig-ja}
+@docLinkBig{記譜法,notation,@manualDevelNotationBig-ja}
 @tab
-@docLinkPdf{Notation,notation,@manualDevelNotationPdf}
+@docLinkPdf{記譜法,notation,@manualDevelNotationPdf}
 
 @item
 @docLinkSplit{使用方法,usage,@manualDevelUsageSplit-ja}
@@ -832,7 +837,9 @@ LilyPond の開発手法はかなり複雑です。@c
 @docLinkBig{Snippets,snippets,@manualDevelSnippetsBig}
 @tab
 @docLinkPdf{Snippets,snippets,@manualDevelSnippetsPdf}
+@end multitable
 
+@multitable @columnfractions .3 .3 .3
 @headitem 時々使用するマニュアル
 
 @item
@@ -862,178 +869,275 @@ LilyPond の開発手法はかなり複雑です。@c
 @docLinkBig{Internals,internals,@manualDevelInternalsBig}
 @tab
 @docLinkPdf{Internals,internals,@manualDevelInternalsPdf}
+@end multitable
 
 @ifset web_version
+@multitable @columnfractions .3
 @headitem Downloadable
 
 @item
 @doctarballDevel
+@end multitable
 @end ifset
 
-@end multitable
 
 @divEnd
 @divEnd
 
 
-@node GSoC 2012
-@unnumberedsec GSoC 2012
-@translationof GSoC 2012
+
+
+@node Google Summer of Code
+@unnumberedsec Google Summer of Code
+
+@c 未訳
 
 @divClass{column-center-top}
-@subheading Google Summer of Code とは?
+@subheading What is Google Summer of Code?
+
+@uref{https://developers.google.com/open-source/gsoc/, GSoC} is a global
+program that offers students stipends to write code for free software
+and open source projects during the summer.  It is an excellent
+opportunity for students to gain experience with real-world software
+development and make a contribution that benefits everyone.  It brings
+new contributors to LilyPond and enables students who are already
+involved to become more involved.  LilyPond participates in GSoC as part
+of the @uref{http://www.gnu.org/, GNU project}.
 
-これは Google が運営する世界規模のプログラムで、@c
-夏休みにオープン ソース プロジェクトのために働く学生に報酬を提供します。
+We have had GSoC participants in 2012 and 2015 and encourage students to
+apply for future summers.
 
-LilyPond チーム GSoC を新しい貢献者を見つけ、@c
-すでに LilyPond の開発に参加している学生がより熱心に取り組む動機付けを@c
-与える絶好の機会だと捉えました。@c
-GSoC 2012 では我々の貢献者の一人が @uref{http://www.gnu.org/,
-GNU プロジェクト} の一部として認められました。@c
-我々は継続的にこのプログラムに参加したいと思っています。
+If you have questions or would like to apply, send us an email on our
+developer mailing list (see @ref{Contact}).
 
 @divEnd
 
-@divClass{column-center-bottom}
-@subheading LilyPond チームからの 2012 年のアイディア リスト
+@divClass{column-center-middle-color2}
+@subheading Project Ideas List
 
-以下のリストは GSoC 2012 に参加する学生に我々が提案したプロジェクトです。@c
-応募期間は終了しましたが、LilyPond の開発に興味を持つ人の激励として@c
-この Web ページをオンラインのままにしておくことにしました。@c
+Below is a list of suggested projects for GSoC or for anyone who is
+interested in helping to improve LilyPond. (Last updated: February 2016)
 
-開発チームにはこれらのプロジェクトに挑戦しようとする人々を積極的に@c
-支援するメンバーがいます。
+Mentor availability varies from project to project and from year to year.
+Send us an email on our developer mailing list (see @ref{Contact}), and
+we will help you find a mentor for a project that fits your interests
+and skills.
 
-もちろん、LilyPond には、些細な事も含めてさらに多くに改善すべき事柄があります。@c
-既知のすべての問題のリストが
-@uref{http://code.google.com/p/lilypond/issues/list, ここ} にあります。
+If you have ideas for a GSoC project that is not listed below you can
+send us an email as well.  There are a number of areas where LilyPond
+could be improved, and our development team is always willing to help
+those who would like to tackle a project like those listed below.
 
-@subheading 装飾小音符
+A full list of all the current open issues can be found
+@uref{http://sourceforge.net/p/testlilyissues/issues/, here}.
 
-装飾小音符の同期についての問題を、すべての基本的なアーキテクチャも含めて@c
-修正してください (@uref{http://code.google.com/p/lilypond/issues/detail?id=34,
-バグ トラッカーの問題 34} を参照してください)。@c
-装飾小音符は時間を巻き戻すかのように振舞い、LilyPond のタイミングを@c
-混乱させています。@c
-これにより予期しない効果 -- 特に、ある譜が装飾小音符を持っていて、他の譜が@c
-持っていない場合に -- が引き起こされています。
+@divEnd
 
-@strong{難易度:} 中
+@divClass{column-center-middle-color3}
+@subheading Improve internal chord structure
 
-@strong{必須スキル:} C++, MIDI
+The internal representation of LilyPond chords is not powerful enough
+to capture the nomenclature of jazz chords.  Currently the chord has
+a root, a bass and an inversion.  It would be nice to be able to handle
+stacked or polychords, minor/major, etc.  In order to do this, an
+internal representation with the ability to capture the essence of
+complex chords must be developed.  As a bonus, once the internal
+representation is developed, the output formatting of chord names can
+be improved.
 
-@strong{推奨スキル:} LilyPond の内部を熟知していること
+@strong{Difficulty:} Easy/medium
+@strong{Requirements:} Scheme (Guile), but the level necessary can be
+easily learned
+@strong{Recommended:} Chord theory and naming
+@strong{Mentor:} Carl Sorensen
 
-@strong{メンター:} Mike Solomon, Carl Sorensen
+@divEnd
 
-@subheading MusicXML
+@divClass{column-center-middle-color3}
+@subheading ScholarLY
+
+ScholarLY is a library in
+@uref{https://openlilylib.org, openLilyLib} that provides functionality
+for annotating scores, making it possible to manage scholarly workflows
+completely in the context of the score document.  So far it is possible
+to enter annotations of different types, produce clickable messages in
+the console output and export to text and LaTeX files.
+
+There are numerous feature requests to turn this library into an
+even more powerful and comprehensive tool.  Some examples: Inserting
+music examples, producing footnotes, automatically applying styles
+to the annotated item (e.g. dash a slur, parenthesize an accidental),
+creating reports with point-and-click entries.  For a full description
+of this project suggestion please visit
+@uref{https://github.com/openlilylib/scholarly/wiki/GSoC, this Wiki page}.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} Scheme, possibly LaTeX, (optionally Python)
+@strong{Recommended:} Experience with or interest in scholarly
+edition and collaborative workflows.
+@strong{Mentor:} Urs Liska
+
+@divEnd
 
-広範囲にわたる MusicXML エクスポート機能の追加と、インポート機能の改良、@c
-それらが機能することのチェックを行ってください。@c
-参加時間に応じて以下のいくつか、または全てを実現してください:
+@divClass{column-center-middle-color3}
+@subheading Adding variants of font glyphs
 
 @divClass{keep-bullets}
 @itemize
 
 @item
-MIDI エクスポートのような基本的な音楽コンテンツ エクスポート機能@c
-(つまり、翻訳クラスから派生したエクスポート専用のクラス) を扱います。
+Adding @q{on} and @q{between} staff-line variants.
 
 @item
-基本的な音楽コンテンツの XML ツリーを構築し、音楽イベントと XML タグを@c
-結び付けます。
+Shorter and narrower variants of some glyphs for example, accidentals.
+Another, more specific example could be an ancient notation breve
+notehead coming in two variants one with a small or big @q{hole} within
+it.
 
-@item
-すべての LilyPond エングラーバにエクスポート処理を実行させます。
+@end itemize
+@divEnd
 
-@item
-各出力オブジェクト (基本的には各ステンシル / ステンシルのグループ)
-を音楽イベントにリンクさせる機能を追加します
-(そして、それにより、XML ツリーの XML タグにリンクさせます)。
+@strong{Difficulty:} easy
+@strong{Requirements:} MetaFont, C++, good eye for details
+@strong{Recommended knowledge:} basic LilyPond knowledge
+@strong{Mentor:} Werner Lemberg
 
-@item
-XML 出力のバックエンドを追加します。@c
-その後、バックエンドには各出力オブジェクトのレイアウト情報を XML タグに@c
-追加する機能を持たせます。
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Grace notes
+
+Fix problems with synchronization of grace notes.  Grace notes can
+interfere with LilyPond's timing and cause odd effects, especially when
+multiple staffs are used where some have grace notes and others don't.
+This is one of the longest-standing and one of the more embarrassing
+@uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in
+LilyPond.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++, MIDI
+@strong{Recommended:} familiarity with LilyPond internals
+@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
+Carl Sorensen
 
-@end itemize
 @divEnd
 
-ゴールは、MusicXML から楽譜をインポートして、データのロス無しにエクスポート@c
-することです。
+@divClass{column-center-middle-color3}
+@subheading Improve default beam positioning
 
-@strong{難易度:} 中
+For regular, cross-staff, broken and kneed beams.  Beaming should depend
+on context and neighbor notes (see section 2.2 of
+@uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon,_Jean-Pierre%29,
+this book}).  If possible also reduce beaming-computation time.
 
-@strong{必須スキル:} MusicXML, Python, 基本的な LilyPond の知識
+@strong{Difficulty:} medium
+@strong{Requirements:} C++, experience with writing heuristics
+@strong{Recommended knowledge:} aesthetic sense
+@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
+Carl Sorensen
 
-@strong{メンター:} Reinhold Kainhofer, Mike Solomon
+@divEnd
 
-他の楽譜ライターの経験 (クロス テストのために) があると尚良しです。
+@divClass{column-center-middle-color3}
+@subheading Allow spanners to cross voices
 
-@subheading スラーとタイの改良
+Currently all sorts of spanners (ties, slurs, dynamics, text spanners,
+trills etc.) have to be ended in the context they were started.  However,
+this doesn't reflect the reality of notation in most polyphonic settings.
+Awkward workarounds with hidden voices are currently necessary to achieve
+cross-voice spanners.
 
-スラーとタイのデフォルトのカーブ形状はしばしば満足いかないものです。@c
-同音異名の音符間のタイ (@code{@{ cis'~ des' @}}) はサポートされておらず、@c
-音部記号や譜の変更によって「中断」されるタイのサポートも十分ではありません。@c
-このプロジェクトでは、不満足な出力例を収集、ソートして、どのような出力に@c
-するかを決定して実際にコードを記述します。
+New ways of addressing this issue should be explored, for example by
 
-@strong{難易度:} 高
+@divClass{keep-bullets}
+@itemize
 
-@strong{必須スキル:} C++, 試行錯誤によるコード記述の経験
+@item specifying a “target context” where the end of the spanner is
+expected
 
-@strong{推奨スキル:} LilyPond の知識, 美的感覚
+@item explicitly specifying the ending object with an ID
 
-@strong{メンター:} Mike Solomon
+@end itemize
+@divEnd
 
-@subheading フォント図柄の特殊な変体を追加する
+This feature would solve many problems that are commonly faced with
+piano music and combined parts. 
 
-譜上の線、譜間の線、いくつかの図柄 (例えば臨時記号) を短く幅を縮めたものを@c
-追加して、それらをサポートするための一般的なインフラを整備します。@c
-使用例には古代記譜法の breve (全音符の 2 倍の長さ) の符頭があり、@c
-これには符頭の穴が小さいものと大きいものの 2 つの変体があります。
+@strong{Difficulty:} medium (?)
+@strong{Requirements:} C++, Scheme
+@strong{Potential Mentor:} Urs Liska
+@divEnd
 
-@strong{難易度:} 低
+@divClass{column-center-middle-color3}
+@subheading Help improve compilation behavior
 
-@strong{必須スキル:} MetaFont, C++, 細部を確認できる眼力
+Automatic code analysis tools, like valgrind memory leak detection or
+callgrind code profilers, provide valuable information about possible
+flaws in our C++ code.  Cleaning up warnings would allow us to automate
+the rejection of any patch which introduced extra warnings.
 
-@strong{推奨スキル:} 基本的な LilyPond の知識
+@strong{Difficulty:} medium
+@strong{Requirements:} C++
+@strong{Potential Mentors:} Reinhold Kainhofer (not available for GSoC
+2016), Joe Neeman
 
-@strong{メンター:} Werner Lemberg
+@divEnd
 
-@subheading 連桁の改良
+@divClass{column-center-middle-color3}
+@subheading MusicXML
 
-連桁 (通常、譜をまたぐ、中断する、符幹が上下に突き出る連桁) のデフォルトの@c
-配置を改良する必要があります。@c
-連桁はコンテキストと付近の音符に依存します
-(@uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
-この PDF のセクション 2.2} を参照してください)。@c
-可能であれば、連桁の算出時間を削減してください。
+Improving MusicXML import and export functions:
 
-@strong{難易度:} 中
+@divClass{keep-bullets}
+@itemize
 
-@strong{必須スキル:} C++, 試行錯誤によるコード記述の経験
+@item
+Handle basic musical content export like the MIDI export (i.e. using
+dedicated exporter classes, derived from the translator class).
 
-@strong{推奨スキル:} 美的感覚
+@item
+Build the XML tree of the basic musical content, add a connection from
+music event to XML tag.
 
-@strong{メンター:} Mike Solomon, Carl Sorensen
+@item
+Let all LilyPond engravers do their job.
 
-@subheading 様々なコンパイル警告のクリーン アップ
+@item
+Link each output object (i.e. each stencil or group of stencils) to the
+music cause (and thus to the XML tag in the XML tree).
 
-コンパイラ、静的コード分析、それに valgrind の警告をクリーン アップして@c
-ください。@c
-自動コード分析ツール (@code{g++} と @code{clang} の警告)、valgrind メモリ
-リーク検出、それに callgrind コード プロファイラは C++ コードの欠陥に@c
-ついての有用な情報を提供してくれます。@c
-これらの警告をクリーン アップすることで、警告を発生させるパッチを自動的に@c
-拒絶することが可能になります。
+@item
+Add an XML output backend, which can then add layout information for
+each output object to the XML tags.
+
+@end itemize
+@divEnd
+
+There are several possibilities for this project, including building upon
+the MusicXML export project from GSoC 2015.
 
-@strong{難易度:} 中
+@strong{Difficulty:} medium
+@strong{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
+@strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon (both not
+available for GSoC 2016)
 
-@strong{必須スキル:} C++
+Familiarity with other scorewriters (for cross-testing) would also help.
 
-@strong{メンター:} Joe Neeman, Reinhold Kainhofer
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Improve slurs and ties
+
+The engraving quality of slurs and ties is often unsatisfactory. Ties
+@q{broken} by clef or staff changes are not handled well.  The project
+could include collecting and sorting examples of bad output, deciding on
+the intended output and writing code to improve them.
+
+@strong{Difficulty:} hard
+@strong{Requirements:} C++, experience with writing heuristics
+@strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
+@strong{Potential Mentors:} Mike Solomon, Janek Warchoł (both not available for
+GSoC 2016)
 
 @divEnd
 
@@ -1051,7 +1155,7 @@ XML 出力のバックエンドを追加します。@c
 @divEnd
 
 @divClass{column-right-top}
-@subheading 以前の開発チーム
+@subheading 以前の開発チーム
 
 @divClass{keep-bullets}
 @developersPrevious
@@ -1123,6 +1227,18 @@ XML 出力のバックエンドを追加します。@c
 @divEnd
 @divEnd
 
+@node 謝辞
+@unnumberedsec 謝辞
+@translationof Acknowledgements
+
+@divClass{column-center-top}
+@subheading 謝辞
+
+@divClass{keep-bullets}
+@acknowledgementsCurrent
+@divEnd
+@divEnd
+
 
 @node 出版物
 @unnumberedsec 出版物
@@ -1156,7 +1272,7 @@ XML 出力のバックエンドを追加します。@c
 @translationof Old news
 
 @divClass{heading-center}
-@warning{多くの古いアナウンスと変更履歴が @ref{Attic} で見つかります。}
+@warning{多くの古いアナウンスと変更履歴が @ref{物置} で見つかります。}
 @divEnd
 
 @include web/news-front.itexi
@@ -1172,7 +1288,8 @@ XML 出力のバックエンドを追加します。@c
 @subheading アナウンス
 
 バージョン毎のアナウンスとニュース:
-@uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_0-released_0021-June-6_002c-2011,v2.14},
+@uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
+@uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
 @miscLink{announce-v2.12,v2.12},
 @miscLink{announce-v2.10,v2.10},
 @miscLink{announce-v2.8,v2.8},
@@ -1185,6 +1302,7 @@ XML 出力のバックエンドを追加します。@c
 @miscLink{ANNOUNCE-0.1,v0.1}
 
 バージョン毎の変更についての説明リスト:
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
@@ -1200,6 +1318,23 @@ XML 出力のバックエンドを追加します。@c
 
 @divEnd
 
+@divClass{column-center-bottom}
+@subheading 感謝
+
+開発者、貢献者、バグ発見者および提案に感謝します
+@miscLink{THANKS-2.16,v2.16},
+@miscLink{THANKS-2.14,v2.14},
+@miscLink{THANKS-2.12,v2.12},
+@miscLink{THANKS-2.10,v2.10},
+@miscLink{THANKS-2.8,v2.8},
+@miscLink{THANKS-2.6,v2.6},
+@miscLink{THANKS-2.4,v2.4},
+@miscLink{THANKS-2.2,v2.2},
+@miscLink{THANKS-2.0,v2.0},
+@miscLink{THANKS-1.8,v1.8}
+
+@divEnd
+
 @divClass{column-center-bottom}
 @subheading 変更履歴
 
index 511d4510e04c1220bee8c98b51c1285ec7bc7840..f9a8257c344e82537a4c917500b42e8c103a4486 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
 @ignore
-    Translation of GIT committish: 76ee88f5adfc7bcd8eff487543e3605e43a93d80
+    Translation of GIT committish: 7215236a0a49dd112348d2620fa132f7e5f12aff
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index eeb390e2ee91ffa9e6627bd53fa3ec372c5ba4ed..7fa0d615ae5f24126797270b40db384408fc1f41 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
 @ignore
-    Translation of GIT committish: 76ee88f5adfc7bcd8eff487543e3605e43a93d80
+    Translation of GIT committish: 7215236a0a49dd112348d2620fa132f7e5f12aff
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -687,18 +687,19 @@ reportedly very happy with them.
 
 Aurélien has also re-orchestrated @emph{Der Ring des Nibelungen} by Richard
 Wagner to a
-@uref{http://www.rsb-online.de/content/konzerte/wagnerzyklus-10-13/wagner-fuer-kinder/index_ger.html,100-minute version for children}.
+@uref{http://www.rsb-online.de/content/concerts/new-season-1516/family-concerts-age-7-and-above/index_eng.html,100-minute version for children}.
 Written for a standard symphony orchestra, but with a reduced cast of
-singers, it was performed by the @emph{Radio-Sinfonieorchester Berlin}
+singers, it was performed by the
+@uref{http://www.rsb-online.de/,@emph{Radio-Sinfonieorchester Berlin}}
 in April 2014 at the Atze Musiktheater, Berlin.  The Conductor was Heiko
 Matthias Förster.
 
 @item
 Joe Smeets created sheet music for the children's book @emph{Zing Mee}
-(@emph{Sing along}) by Annie M.G. published by Querido -- ISBN
-9789045106205:
-@uref{http://www.queridokinderenjeugdboeken.nl/web/Boek.htm?dbid=18954&typeofpage=134707, www.queridokinderenjeugdboeken.nl}; choir
-rehearsal scores for the Dutch translation of Benjamin Britten's
+(@emph{Sing along}) by Annie M.G. published by
+@uref{http://www.queridokinderenjeugdboeken.nl/, Querido}
+-- ISBN 9789045106205;
+choir rehearsal scores for the Dutch translation of Benjamin Britten's
 @emph{Saint Nicolas} performed by @emph{Muziektheater Hollands Diep} in
 2011;
 @uref{http://www.muziektheaterhollandsdiep.nl/nl/voorstellingen/sint_nicolaas_leeft, www.muziektheaterhollandsdiep.nl}.
@@ -722,11 +723,11 @@ for his Ph.D. Thesis.
 @item
 Mussorgsky's @emph{Pictures at an exhibition}, was re-orchestrated and
 conducted by @uref{http://www.aurelienbello.com/,Aurélien Bello} with
-the @uref{http://www.junge-philharmonie-brandenburg.de/,
-Junge Philharmonie Brandenburg} in October 2011 and again April 2012.
+the @uref{https://junge-philharmonie-brandenburg.de/,
+Junge Philharmonie Brandenburg} in October 2011 and April 2012.
 
 @item
-@uref{http://www.kierenmacmillan.info/, Kieren MacMillan}, composer and
+@uref{http://kierenmacmillan.info/, Kieren MacMillan}, composer and
 musical director.  His many, recent works include; @emph{Go Thy Way},
 performed by the @uref{http://www.saltlakechoralartists.org/,
 Salt Lake Choral Artists} in March 2012; The
@@ -734,16 +735,16 @@ Salt Lake Choral Artists} in March 2012; The
 by the
 @uref{http://www.herald-dispatch.com/news/marshall/x1883873762/Music-duo-Chrysalis-to-perform-at-Marshall-University-on-Jan-19,
 Chrysalis Duo} ; @emph{thrafsmata} performed in July 2011 by the
-@uref{http://www.pnme.org/CurrentSeason/PreviousSeasons.html, Pittsburgh
+@uref{http://www.pnme.org/, Pittsburgh
 New Music Ensemble}.
 
 @item
 @emph{Anonymous Student Compliment or Complaint}, by
 @uref{http://www.mikesolomon.org, Mike Solomon}, winner chosen from among
 172 entries from 22 countries of the
-@uref{http://leftcoastensemble.org, 2011 Left Coast Composition Contest}.
+@uref{http://www.leftcoastensemble.org, 2011 Left Coast Composition Contest}.
 Other works include, Norman (age 1) for clarinet solo, performed at the
-@uref{http://emu.music.ufl.edu/fems_concerts.html, University of Florida}'s
+@uref{http://arts.ufl.edu/academics/music/, University of Florida}'s
 Electroacoustic Music Festival (FEMF), October 2010.
 
 @item
@@ -754,7 +755,7 @@ Italy.  @uref{http://www.ascarlatti2010.net, Alessandro Scarlatti 2010},
 in celebration of the composer's 350th birthday.
 
 @item
-@uref{http://www.mercurybaroque.org, Mercury Baroque}'s performance of
+@uref{http://www.mercuryhouston.org/, Mercury Baroque}'s performance of
 Lully's @emph{Armide}, May 15-16, 2009, in Houston, Texas (engraving by
 @uref{http://nicolas.sceaux.free.fr/, Nicolas Sceaux}).
 
@@ -769,7 +770,7 @@ New York} (engraving by
 @emph{Affaire étrangère}, an opera by
 @uref{http://valentin.villenave.net/,Valentin Villenave}
 to a French libretto by
-@uref{http://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis
+@uref{https://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis
 Trondheim}, premiered February 1, 2009 at
 @uref{http://www.orchestre-montpellier.com/, L'Opéra National de
 Montpellier}, France.
@@ -801,12 +802,12 @@ piano keyboard showing which keys to press to help beginners learn
 how to read sheet music.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 high-quality scores of sacred music, available for immediate
 download or in traditional paper format.
 
 @item
-@uref{http://www.shadylane.fr, The Shady Lane Publishing},
+@uref{http://matthieujacquot.com/, The Shady Lane Publishing},
 a @qq{micro musical publishing house} whose goal is to promote a
 new form of musical economy closer to the musicians and music
 lovers.
@@ -855,7 +856,7 @@ April 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publishes an
 article titled
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  It is an introductory article on MuseScore,
 LilyPond and Chordii.  Author Carla Schroder states @qq{LilyPond is
 driven from the command line, but don’t let the lack of a GUI scare
@@ -949,8 +950,8 @@ October 2004
 The editors of Computer!Totaal, a Dutch computer magazine,
 @uref{http://lilypond.org/website/pdf/computer-totaal.jpeg,
 describe LilyPond} in the October 2004 issue as: @qq{Wonderful
-free (open source) software [..] The sheet music produced by
-LilyPond is exceptionally pretty [..] a very powerful system that
+free (open source) software [@dots{}] The sheet music produced by
+LilyPond is exceptionally pretty [@dots{}] a very powerful system that
 can do almost anything.}
 
 @item
@@ -977,7 +978,7 @@ February 2004
 
 Jazz singer Gail Selkirk writes about
 @uref{http://www.songbirdofswing.com/editorial_page/lilypond/,
-Diving into LilyPond}.  @qq{... you can make lead sheets or full
+Diving into LilyPond}.  @qq{@dots{} you can make lead sheets or full
 orchestral parts, and the results can be stunning.}
 @uref{http://www.computermusic.co.uk/, Computer Music Special},
 issue CMS06.
@@ -1050,7 +1051,7 @@ Lilypondで得られる結果に近い物は他ではありません
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro 楽譜出版社}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro 楽譜出版社}
 
 @qq{
 楽譜作成を LilyPond に任せることで、私はより音楽に集中することができます。@c
@@ -1060,7 +1061,6 @@ Lilypondで得られる結果に近い物は他ではありません
 LilyPond を使うことで、@c
 私はより容易に編集者と譜刻者の 2 つの役割を果たすことができます。}
 
-
 @qq{私の拙い楽譜出版ビジネスは、完全に LilyPond に頼っています。@c
 作曲家に出版しようとしている楽譜の校正刷りを見せると、@c
 例外なく彼らはその質の高さに圧倒されます。@c
@@ -1340,6 +1340,7 @@ LilyPond ソースコードをグラフィカル ビューと並べて表示す
 音符や和音等に LilyPond が処理可能な調整を加えることができ、@c
 それを Denemo ファイルとして保存することができるため、@c
 ユーザはグラフィカル環境で楽譜を編集することができます。
+
 LilyPond テキストの中でカーソルを動かすと、@c
 グラフィカル ビューの中でもカーソルが動きます。@c
 調整で構文エラーが起きると、テキスト ビューで該当部分がハイライトされます。
@@ -1546,7 +1547,7 @@ notes.
 でダウンロードできます。
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, which imported
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, which imported
 @uref{http://www.makemusic.com/musicxml,MusicXML}, has been forked into
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
 and @uref{http://canorus.org,Canorus}.
index 386d24b1435a87b3ec8f44436040ca715a3433e5..5db210ceb4dddf0acccd686647503b705b70be63 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
 @ignore
-    Translation of GIT committish: cf90af135bc70b57f69fd3e09a9b29814c6358e4
+    Translation of GIT committish: 7215236a0a49dd112348d2620fa132f7e5f12aff
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c Translators: Yoshiki Sawada
+@c Translators: Masamichi Hosoda, Yoshiki Sawada
 
 @node マニュアル
 @unnumbered マニュアル
 
 @itemize
 
-@item @ref{テキスト入力}:
+@item
+@ref{テキスト入力}:
 LilyPond は @strong{テキスト ベース} の楽譜作成プログラムです。@c
 まず最初にこのドキュメントを読んでください!
 
-@item @ifWebLinks{@manualStableLearningSplitNoName-ja,@rlearningnamed{Top,学習}}
+@item
+@ifWebLinks{@manualStableLearningSplitNoName-ja,@rlearningnamed{Top,学習}}
 @qq{必読} のやさしい LilyPond 入門書です。
 @details{学習}
 
-@item @ifWebLinks{@manualStableGlossarySplitNoName,@rglosnamed{Top,用語集}}
+@item
+@ifWebLinks{@manualStableGlossarySplitNoName,@rglosnamed{Top,用語集}}
 @emph{(副読本)}
 音楽用語についての説明と、
 英語の音楽用語に馴染みの無いユーザのための訳語を提供します。
 @details{用語集}
 
-@item @ifWebLinks{@manualStableEssaySplitNoName,@ressaynamed{Top,Essay}}
+@item
+@ifWebLinks{@manualStableEssaySplitNoName,@ressaynamed{Top,Essay}}
 @emph{(副読本)}
 コンピュータによる譜刻についての背景。
 @details{エッセー}
@@ -64,15 +68,18 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 
 @itemize
 
-@item @ifWebLinks{@manualStableNotationSplitNoName-ja,@rusernamed{Top,記譜法}}
+@item
+@ifWebLinks{@manualStableNotationSplitNoName-ja,@rusernamed{Top,記譜法}}
 構文リファレンス。
 @details{記譜法}
 
-@item @ifWebLinks{@manualStableUsageSplitNoName-ja,@rprogramnamed{Top,使用方法}}
+@item
+@ifWebLinks{@manualStableUsageSplitNoName-ja,@rprogramnamed{Top,使用方法}}
 このプログラムの実行方法。
 @details{使用方法}
 
-@item @ifWebLinks{@manualStableSnippetsSplitNoName,@rlsrnamed{Top,Snippets}}
+@item
+@ifWebLinks{@manualStableSnippetsSplitNoName,@rlsrnamed{Top,Snippets}}
 ちょっとしたトリック、秘訣。
 @details{コード断片集}
 
@@ -86,22 +93,27 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 
 @itemize
 
-@item @ref{FAQ}:
+@item
+@ref{FAQ}:
 頻繁に質問されること。
 
-@item @ref{Top, Web}:
+@item
+@ref{Top, Web}:
 このドキュメント。
 @details{Web}
 
-@item @ifWebLinks{@manualStableChangesSplitNoName,@rchangesnamed{Top,Changes}}
+@item
+@ifWebLinks{@manualStableChangesSplitNoName,@rchangesnamed{Top,Changes}}
 変更点。
 @details{変更点}
 
-@item @ifWebLinks{@manualStableExtendingSplitNoName,@rextendnamed{Top,Extending}}
+@item
+@ifWebLinks{@manualStableExtendingSplitNoName,@rextendnamed{Top,Extending}}
 変則的な調整。
 @details{拡張}
 
-@item @ifWebLinks{@manualStableInternalsSplitNoName,@rinternalsnamed{Top,Internals}}
+@item
+@ifWebLinks{@manualStableInternalsSplitNoName,@rinternalsnamed{Top,Internals}}
 調整のためのリファレンス。
 @details{内部リファレンス}
 
@@ -115,21 +127,30 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 
 @itemize
 
-@item @ref{すべて}:
+@item
+@ref{すべて}:
 圧縮したアーカイブとして提供する以前と現在の安定バージョンの@c
 ドキュメント。
 
-@item @ref{翻訳済み}:
+@item
+@ref{翻訳済み}:
 非英語圏の読者のための翻訳状況。
 
 @item
 @uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}:
 ユーザが作成した例、ヒント、それに TIPS。
 
-@item @ref{Development}:
+@item
+@uref{http://benlemon.me/blog/music/lilypond/operation-lilypond/,ビデオチュートリアル}:
+LilyPond ユーザの Ben Lemon は、自分のブログで新規ユーザのための@c
+ビデオチュートリアルを作成しています。
+
+@item
+@ref{Development}:
 不安定な開発バージョンのマニュアル。
 
-@item @ref{FDL}:
+@item
+@ref{FDL}:
 これらのマニュアルは GNU Free Documentation License に基づいて@c
 発行されています。
 
@@ -137,6 +158,19 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 
 @divEnd
 
+@divClass{column-center-bottom}
+@subheading マニュアルの形式
+
+LilyPond のマニュアルは通常 3 つの形式があります:
+ページ毎に分割された HTML, 1 つの大きな HTML そして PDF です。@c
+ページ毎に分割された HTML はオンラインで読むのに適しています。@c
+1 つの大きな HTML (非常に大きいものもあります)は、@c
+単一のページで全体のマニュアルが含まれています。@c
+PDF はダウンロードしてオフラインで利用することができます。@c
+これら 3 形式を取得するためには、マニュアル名の詳細のリンクをたどってください。
+
+@divEnd
+
 @divEnd
 
 
@@ -188,8 +222,8 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで
 @docLinks{学習, learning,
   @rlearningnamed{Top,学習},
   @manualStableLearningSplit-ja,
-  @manualStableLearningBig-ja, 1.5 MB,
-  @manualStableLearningPdf, 3 MB}
+  @manualStableLearningBig-ja, 3 MB,
+  @manualStableLearningPdf, 5 MB}
 
 @divEnd
 
@@ -240,8 +274,8 @@ LilyPond の譜刻テクニックの例を挙げます。@c
 @docLinks{エッセー, essay,
   @ressaynamed{Top,エッセー},
   @manualStableEssaySplit,
-  @manualStableEssayBig, 2 MB,
-  @manualStableEssayPdf, 2.5 MB}
+  @manualStableEssayBig, 1 MB,
+  @manualStableEssayPdf, 2 MB}
 
 @divEnd
 
@@ -268,8 +302,8 @@ LilyPond の譜刻テクニックの例を挙げます。@c
 @docLinks{記譜法, notation,
   @rusernamed{Top,記譜法},
   @manualStableNotationSplit-ja,
-  @manualStableNotationBig-ja, 7 MB,
-  @manualStableNotationPdf, 18 MB}
+  @manualStableNotationBig-ja, 9 MB,
+  @manualStableNotationPdf, 35 MB}
 
 @divEnd
 
@@ -293,7 +327,7 @@ LilyPond 記譜法を他のプログラムと統合する方法について説
   @rprogramnamed{Top,使用方法},
   @manualStableUsageSplit-ja,
   @manualStableUsageBig-ja, 400 KB,
-  @manualStableUsagePdf, 600 KB}
+  @manualStableUsagePdf, 650 KB}
 
 @divEnd
 
@@ -325,8 +359,8 @@ LSR は LilyPond の安定版で実行することを前提としているため
 @docLinks{コード断片集, snippets,
   @rlsrnamed{Top,コード断片集},
   @manualStableSnippetsSplit,
-  @manualStableSnippetsBig, 2.5 MB,
-  @manualStableSnippetsPdf, 8 MB}
+  @manualStableSnippetsBig, 1.5 MB,
+  @manualStableSnippetsPdf, 12.5 MB}
 
 @divEnd
 
@@ -404,8 +438,8 @@ LilyPond を使う理由については、@ref{導入部} に書かれていま
 @docLinksBare{Web, web,
   @ref{Top,Web},
   @manualDevelWebSplit-ja,
-  @manualDevelWebBig-ja, 1 MB,
-  @manualDevelWebPdf, 2 MB}
+  @manualDevelWebBig-ja, 2.5 MB,
+  @manualDevelWebPdf, 3.5 MB}
 
 @divEnd
 
@@ -427,11 +461,12 @@ LilyPond を使う理由については、@ref{導入部} に書かれていま
 @docLinks{変更点, changes,
   @rchangesnamed{Top,変更点},
   @manualStableChangesSplit,
-  @manualStableChangesBig, 6 KB,
-  @manualStableChangesPdf, 200 KB}
+  @manualStableChangesBig, 90 KB,
+  @manualStableChangesPdf, 80 KB}
 
 @divEnd
 
+
 @node 拡張
 @unnumberedsec 拡張
 @translationof Extending
@@ -448,8 +483,8 @@ LilyPond を使う理由については、@ref{導入部} に書かれていま
 @docLinks{拡張, extending,
   @rextendnamed{Top,拡張},
   @manualStableExtendingSplit,
-  @manualStableExtendingBig, 200 KB,
-  @manualStableExtendingPdf, 400 KB}
+  @manualStableExtendingBig, 300 KB,
+  @manualStableExtendingPdf, 500 KB}
 
 @divEnd
 
@@ -483,9 +518,8 @@ HTML ドキュメントでは、それらサブセクションにはクリック
 @docLinks{内部リファレンス, internals,
   @rinternalsnamed{Top,内部リファレンス},
   @manualStableInternalsSplit,
-  @manualStableInternalsBig, 2.5 MB,
-  @manualStableInternalsPdf, 2.8 MB}
-
+  @manualStableInternalsBig, 3 MB,
+  @manualStableInternalsPdf, 4 MB}
 
 @divEnd
 
@@ -532,6 +566,12 @@ HTML ドキュメントでは、それらサブセクションにはクリック
 @divClass{keep-bullets}
 @itemize
 
+@item @uref{http://lilypond.org/doc/v2.16/Documentation/web/manuals,
+LilyPond 2.16 ドキュメント}
+
+@item @uref{http://lilypond.org/doc/v2.14/Documentation/web/manuals,
+LilyPond 2.14 ドキュメント}
+
 @item @uref{http://lilypond.org/doc/v2.12/Documentation/,
 LilyPond 2.12 ドキュメント}
 
@@ -544,19 +584,19 @@ LilyPond 2.8 ドキュメント}
 @item @uref{http://lilypond.org/doc/v2.6/Documentation/,
 LilyPond 2.6 ドキュメント}
 
-@item @uref{http://lilypond.org/doc/v2.4/Documentation/,
+@item @uref{http://lilypond.org/doc/v2.4/Documentation/out-www/,
 LilyPond 2.4 ドキュメント}
 
-@item @uref{http://lilypond.org/doc/v2.2/Documentation/,
+@item @uref{http://lilypond.org/doc/v2.2/Documentation/out-www/,
 LilyPond 2.2 ドキュメント}
 
-@item @uref{http://lilypond.org/doc/v2.0/Documentation/,
+@item @uref{http://lilypond.org/doc/v2.0/Documentation/out-www/,
 LilyPond 2.0 ドキュメント}
 
-@item @uref{http://lilypond.org/doc/v1.8/Documentation/,
+@item @uref{http://lilypond.org/doc/v1.8/Documentation/out-www/,
 LilyPond 1.8 ドキュメント}
 
-@item @uref{http://lilypond.org/doc/v1.6/Documentation/,
+@item @uref{http://lilypond.org/doc/v1.6/Documentation/out-www/,
 LilyPond 1.6 ドキュメント}
 
 @end itemize
index 8aeb618952f4bab62ffa01b06b8546be3fe02bc1..95229692d691d250970a7c61665eba507af8c9bd 100644 (file)
@@ -320,7 +320,7 @@ of the note head to the default value for the final two notes:
 @funindex \once
 @funindex once
 
-@code{\override}, @code{\revert}. @code{\set}, and @code{\unset}
+@code{\override}, @code{\revert}, @code{\set}, and @code{\unset}
 commands may be prefixed with @code{\once}.  This causes such a
 command to be effective only during the current musical
 moment before the property reverts back to its previous value (this can
index 048833cef110a8b63c30cf5761e222eabd91501f..95daf3cc865ce13ff4c8876217bd55b24ed91fdf 100644 (file)
@@ -152,8 +152,8 @@ measIVl = {
   \new PianoStaff <<
     \new Staff = "upper"
     {
-      \override Staff.TimeSignature #'transparent = ##t
-      \override Staff.TimeSignature #'extra-spacing-width = #'(0.0 . 3.0)
+      \hide Staff.TimeSignature
+      \override Staff.TimeSignature.extra-spacing-width = #'(0.0 . 3.0)
       \accidentalStyle dodecaphonic
       \autoBeamOff
       \clef treble
@@ -176,7 +176,7 @@ measIVl = {
     }
     \new Staff = "lower"
     {
-      \override Staff.TimeSignature #'transparent = ##t
+      \hide Staff.TimeSignature
       \accidentalStyle dodecaphonic
       \autoBeamOff
       \clef bass
index 371c63a0227272a0860585032cdec22e43f07af7..9f4cf10301c26714b4160e5500f9851ac127cd35 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.21"
+\version "2.19.40"
 \include "example-header.ily"
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -45,7 +45,7 @@ upperVoiceOne = \relative {
   <f aes d f>8\([ \tuplet 5/4{<g g'>32( aes' g f g]) }
   \set subdivideBeams = ##t
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2)
+  \set beatStructure = 2,2,2
   <aes, aes'>16 <c f> \tuplet 5/4{ bes'32( c bes aes bes]) }
   \set subdivideBeams = ##f
   \ottava #1 <es es'>16 <f f'> <d d'> \appoggiatura f8 <es es'>16\)
@@ -90,7 +90,7 @@ lowerVoiceOne = \relative {
   \csl \stemUp
   \set subdivideBeams = ##t
   \set baseMoment = #(ly:make-moment 1/16)
-  \set beatStructure = #'(4 4 4)
+  \set beatStructure = 4,4,4
   s8 \hideNotes \slurUp \stemDown
     es,,64( bes'' s64 \unHideNotes \stemUp g64[ bes c d c]) s2
   \set subdivideBeams = ##f
index 7e0a1b7e586e498cc575e5bbea77b9e0063a766e..c55af988edfa33988dbbe4184978c0f5c8c35480 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Meest recente update Fri Jan  1 10:40:27 UTC 2016
+@emph{Meest recente update Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -111,7 +111,7 @@ gedeeltelijk
 @item
 2 Algemene muzieknotatie
 @*
-4443
+4437
 @tab Jan Nieuwenhuizen
 @tab 
 @tab 
@@ -165,7 +165,7 @@ gedeeltelijk
 @item
 4 Tweaking output
 @*
-16577
+16622
 @tab Jan Nieuwenhuizen
 @tab 
 @tab 
@@ -209,7 +209,7 @@ gedeeltelijk (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">gedeeltelijk</span>
+<span style="background-color: #ffdd42">gedeeltelijk</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -285,7 +285,7 @@ ja
 @item
 Inleiding
 @*
-5816
+5815
 @tab Jan Nieuwenhuizen
 @tab Tineke de Munnik
 @tab 
@@ -302,7 +302,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #dbff38">gedeeltelijk</span>
+<span style="background-color: #e1ff39">gedeeltelijk</span>
 @end html
 @end ifhtml
 @ifnothtml
index 85e56c6d235f0c4f04d17b09ee9157585842172a..d45ea1361beebc240b50e19c259abe36bceee12a 100644 (file)
@@ -623,7 +623,7 @@ toetsen aangeslagen worden om beginners te helpen bladmuziek
 lezen.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music
+@uref{https://twitter.com/adoromusic, Adoro Music
 Publishing}, partituren van hoge kwaliteit van religieuze
 muziek, beschikbaar voor directe download of ouderwets op papier.
 
@@ -667,7 +667,7 @@ april 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publiceert een
 artikel getiteld
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  Het is een inleiding in MuseScore,
 
 LilyPond en Chordii.  Auteur Carla Schroder schrijft
@@ -874,7 +874,7 @@ categorie prachtige muziek zetten].}
 @divEnd
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{De wijze waarop muziek wordt ingevoerd voor LilyPond
 laat mij op een muzikalere manier denken -- het is enkele
@@ -1360,7 +1360,7 @@ constraint-gebaseerde programmeertaal.
 LilyKDE3 voor KDE 3.5 en lilypond-KDE4 voor KDE 4.1.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, dat 
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, dat 
 @uref{http://www.musicxml.com/xml.html,MusicXML} importeerde, is geforkt
 in
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
index bb5a2c2b60fb443ce0c07f462884647e820cc785..b79b69100dba3330e58f331d332229b52e0a16d0 100644 (file)
@@ -91,18 +91,12 @@ Internals Reference:
 
 >> > > - list of contexts: my *danger unmaintainable*
 >> > > alarm just went off.  I'm
-
 I knew it would... And leaving out some of them is perfectly fine
-with me.
-I do think that a list like this, with the main contexts and a
-brief
-description of  what they do (perhaps also with a note about what
-default
-behavior is associated with each of them, but this may be
-unmanageable),
-should be there, and then we could simply list the remaining ones
-without
-further explanation and with links to the IR.
+with me. I do think that a list like this, with the main contexts and a
+brief description of  what they do (perhaps also with a note about what
+default behavior is associated with each of them, but this may be
+unmanageable), should be there, and then we could simply list the
+remaining ones without further explanation and with links to the IR.
 @end ignore
 
 @c TODO Improve layout, order and consistency of wording -td
@@ -224,7 +218,7 @@ expression out as a guitar tablature, printed on six lines.
 
 @strong{@emph{DrumStaff}}
 
-Handles typesetting for percussion.  Can contain @code{DrumVoice}
+Handles typesetting for percussion.  Can contain @code{DrumVoice}.
 
 @strong{@emph{VaticanaStaff}}
 
@@ -1741,26 +1735,24 @@ Add this much extra space between objects that are next to each other.
 @end table
 @end quotation
 
-By increasing the value of @code{padding}, we can move the
-fingering away from the note head.  The following command inserts
-3 staff spaces of white
-between the note and the fingering:
+By increasing the value of @code{padding}, we can move the fingering
+away from the note head.  The following command will insert @qq{three
+staff spaces} worth of distance between the note and a fingering mark:
+
 @example
 \once \override Voice.Fingering.padding = #3
 @end example
 
-Inserting this command before the Fingering object is created,
-i.e., before @code{c2}, yields the following result:
+Inserting the padding before the fingering object is created results in
+the following:
 
 @lilypond[quote,fragment,verbatim]
 \once \override Voice.Fingering.padding = #3
 c''-2
 @end lilypond
 
-
-In this case, the context for this tweak is @code{Voice}.  This
-fact can also be deduced from the program reference, for the page for
-the @rinternals{Fingering_engraver} plug-in says
+In this case, the context for this tweak is @code{Voice}.  See
+@rinternals{Fingering_engraver} plug-in, which says:
 
 @quotation
 Fingering_engraver is part of contexts: @dots{} @rinternals{Voice}
@@ -1774,25 +1766,33 @@ Another thing that is needed, is an overview of the various naming
 conventions:
 
 @itemize
-@item scheme functions: lowercase-with-hyphens (incl. one-word
+@item scheme functions: lowercase-with-hyphens (also includes one-word
 names)
-@item scheme functions: ly:plus-scheme-style
+
+@item LilyPond-specific scheme functions: ly:plus-scheme-style
+
 @item music events, music classes and music properties:
 as-scheme-functions
+
 @item Grob interfaces: scheme-style
+
 @item backend properties: scheme-style (but X and Y!)
+
 @item contexts (and MusicExpressions and grobs): Capitalized or
 CamelCase
+
 @item context properties: lowercaseFollowedByCamelCase
-@item engravers:
-Capitalized_followed_by_lowercase_and_with_underscores
+
+@item engravers: Capitalized_followed_by_lowercase_and_with_underscores
 @end itemize
 
 Questions to be answered:
 @itemize
+
 @item Which of these are conventions and which are rules?
+
 @item Which are rules of the underlying language, and which are
-LP-specific?
+LilyPond-specific?
 @end itemize
 
 @node Modifying properties
@@ -2434,56 +2434,59 @@ one encountered in the input file.
 
 @funindex \set
 @funindex \override
-Both @code{\set} and @code{\override} manipulate properties
-associated with contexts.  In either case, properties heed the
-hierarchy of contexts: properties not set in a context itself show
-the values of the respective parent context.
-
-Values and lifetime of context properties are dynamic and only
-available when music is being interpreted, @q{iterated}.  At the
-time of context creation, properties are initialized from the
-corresponding context definition and possible context
-modifications.  Afterwards, changes are achieved with
-property-setting commands in the music itself.
-
-Now grob definitions are a special category of context properties.
-Since their structure, bookkeeping and use is different from
-ordinary context properties, they are accessed with a different
-set of commands, and treated separately in the documentation.
-
-As opposed to plain context properties, grob definitions are
-subdivided into grob properties.  A @qq{grob} (graphical object)
-is usually created by an engraver at the time of interpreting a
-music expression and receives its initial properties from the
-current grob definition of the engraver's context.  The engraver
-(or other @q{backend} parts of LilyPond) may subsequently add or
-change properties to the grob, but that does not affect the
-context's grob definition.
-
-What we call @q{grob properties} in the context of user-level
-tweaking are actually the properties of a context's grob
-definition.  In contrast to ordinary context properties, grob
-definitions have the bookkeeping required to keep track of its
-parts, the individual grob properties (and even subproperties of
-them) separately so that it is possible to define those parts in
-different contexts and have the overall grob definition at the
-time of grob creation be assembled from pieces provided in
-different contexts among the current context and its parents.
-
-Grob definitions are manipulated using @code{\override} and
-@code{\revert} and have a name starting with a capital letter
-(like @samp{NoteHead}) whereas ordinary context properties are
-manipulated using @code{\set} and @code{\unset} and are named
-starting with a lowercase letter.
+
+The @code{\set} and @code{\override} commands manipulate properties
+associated with contexts.  In both cases, the properties follow a
+@emph{hierarchy of contexts}; properties that are not set themselves in
+a context will still show the values of their respective parent's
+context.
+
+The lifetime and value of a context property is dynamic and only
+available when music is being interpreted (i.e. @q{iterated}).  At the
+time of the context's creation, properties are initialized from its
+corresponding definitions (along with any other modifications) of that
+context.  Any subsequent changes are achieved with any
+@q{property-setting} commands that are within the music itself.
+
+Graphical Object (or @qq{grob}) definitions are a @emph{special}
+category of context properties as their structure and use is different
+from that of normal context properties.  Unlike normal context
+properties, grob definitions are subdivided into @emph{grob properties}.
+
+Also, in contrast to normal context properties, grob definitions have
+their own internal @q{bookkeeping} used to keep track of their own
+individual grob properties and any sub-properties.  This means that it
+is possible to define those parts within different contexts and yet
+still have the overall grob definition at the time of grob creation from
+all the pieces provided amongst the current context and its parent(s).
+
+A grob is usually created by an engraver at the time of interpreting a
+music expression and receives its initial properties from the current
+grob definition of the engraver's context.  The engraver (or other
+@q{backend} parts of LilyPond) can then change (or add to) the grob's
+initial properties.  However, this does not affect the context's own
+grob definition.
+
+What LilyPond calls @emph{grob properties} in the context of
+@q{user-level} tweaks are really the properties of a @emph{context's}
+own grob definition.
+
+Grob definitions are accessed with a different set of commands and are
+manipulated using @code{\override} and @code{\revert} and have a name
+starting with a capital letter (e.g. @samp{NoteHead}); whereas normal
+context properties are manipulated using @code{\set} and @code{\unset}
+and are named starting with a lowercase letter.
 
 @cindex tweak, relation to @code{\override}
 @funindex \tweak
 @funindex \overrideProperty
-The special commands @code{\tweak} and @code{\overrideProperty}
-change grob properties bypassing context properties completely.
-Instead they catch grobs as they are being created and then
-directly set properties on them when they originate from a tweaked
-music event or are of a particular kind, respectively.
+
+The commands @code{\tweak} and @code{\overrideProperty} change grob
+properties by bypassing all context properties completely and, instead,
+catch grobs as they are being created, setting properties on them for
+a music event (@code{\tweak}) or, in the case of
+@code{\overrideProperty} for a specific override.
+
 
 @node Modifying alists
 @subsection Modifying alists
@@ -2665,7 +2668,7 @@ render them in a @code{TabStaff} context, see
 
 To create fret diagrams above a staff, you have two choices.
 You can either use the @code{FretBoards} context (see
-@ref{Automatic fret diagrams} or you can enter them as a markup
+@ref{Automatic fret diagrams}) or you can enter them as a markup
 above the notes using the @code{\fret-diagram} command (see
 @ref{Fret diagram markups}).
 
@@ -2714,6 +2717,7 @@ be desirable to force a particular direction or placement.
 * The direction property::
 @end menu
 
+
 @node Articulation direction indicators
 @unnumberedsubsubsec Articulation direction indicators
 
@@ -2750,6 +2754,7 @@ Direction indicators affect only the next note:
 }
 @end lilypond
 
+
 @node The direction property
 @unnumberedsubsubsec The direction property
 
@@ -2801,8 +2806,8 @@ These indications affect all notes until they are canceled.
 @end lilypond
 
 In polyphonic music, it is generally better to specify an explicit
-@code{voice} than change an object's direction.  For more information.
-See @ref{Multiple voices}.
+@code{voice} than change an object's direction.  For more information,
+see @ref{Multiple voices}.
 
 @seealso
 Learning Manual:
@@ -3209,7 +3214,7 @@ the top edge of the text with the spanner line.
 
 @item arrow
 Setting this sub-property to @code{#t} produces an arrowhead at the
-end of the line.
+end-points of the line.
 
 @item padding
 This sub-property controls the space between the specified
@@ -3477,17 +3482,23 @@ effective with every layout object, and some combinations may
 even give errors.  The following limitations apply:
 
 @itemize @bullet
-@item Bar lines cannot be printed at start of line.
-@item A bar number cannot be printed at the start of the first
-line unless it is set to be different from 1.
-@item Clef -- see below
-@item Double percent repeats are either all printed or all
-suppressed.  Use begin-of line-invisible to print and
-all-invisible to suppress.
-@item Key signature -- see below
-@item ClefModifier -- see below
+@item Bar lines cannot be printed at the start of line.
+
+@item A bar number cannot be printed at the start of the @emph{first}
+line unless it is set to be different from @code{1}.
+
+@item Clef -- see the next section.
+
+@item Double percent repeats are either @emph{all printed} or
+@emph{all suppressed}.  Use @code{begin-of-line-invisible}
+to print them and @code{all-invisible} to suppress them.
+
+@item Key signature -- see the next section.
+
+@item ClefModifier -- see the next section.
 @end itemize
 
+
 @node Special considerations
 @unnumberedsubsubsec Special considerations
 
@@ -4185,19 +4196,21 @@ XinO = {
 }
 @end lilypond
 
-Any of the glyphs in the feta Font can be supplied to the
+Any of the glyphs in the Feta Font can be supplied to the
 @code{\musicglyph} markup command -- see @ref{The Feta font}.
 
-@c TODO Add inserting eps files or ref to later
+@file{EPS} files and Postscript commands can both be inserted inline
+using the @code{\epsfile} and @code{\postscript} markup commands
+respectively -- see @ref{Graphic}.
 
-@c TODO Add inserting Postscript or ref to later
 
 @seealso
 Notation Reference:
 @ref{Graphic notation inside markup},
 @ref{Formatting text},
 @ref{Text markup commands},
-@ref{The Feta font}.
+@ref{The Feta font},
+@ref{Graphic}.
 
 
 @node Modifying shapes
@@ -4608,6 +4621,10 @@ value needed which is then used by the first function to get the real
 value which is then used for fine-tuning much later during the spacing
 process.
 
+@c TODO: The following example supposedly showing a collision no longer
+@c 'works' since 2.18.x. Another example of a collision is needed.
+@c Issue #3512
+
 @lilypond[verbatim,quote,ragged-right]
 #(define (square-line-circle-space grob)
 (let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
index eb111e3ce81d17ed10d1cef8ebf0b5fddb558b45..c7c18bacb686c6f7a475860919ded4caa0940d68 100644 (file)
@@ -27,6 +27,7 @@ to fretted string instruments.
 * Common notation for fretted strings::
 * Guitar::
 * Banjo::
+* Lute::
 @end menu
 
 @node Common notation for fretted strings
@@ -2010,3 +2011,56 @@ Installed Files:
 
 Snippets:
 @rlsr{Fretted strings}.
+
+
+@node Lute
+@subsection Lute
+
+@menu
+* Lute tablatures::
+@end menu
+
+@node Lute tablatures
+@unnumberedsubsubsec Lute tablatures
+
+@cindex lute tablatures
+@cindex tablature, lute
+
+LilyPond supports tablature for lute.
+
+To get additional bass strings use @code{additionalBassStrings}, where the
+pitches of those strings are set. They will be printed below lowest line as:
+a, /a, //a, ///a, 4, 5 etc.
+
+@code{fret-letter-tablature-format} for @code{tablatureFormat} should be used,
+probably @code{fretLabels} for further customizing.
+
+@lilypond[quote,ragged-right,verbatim]
+m = { f'4 d' a f d a, g, fis, e, d, c,  \bar "|." }
+
+\score {
+  <<
+    \new Staff { \clef bass \cadenzaOn  \m }
+    \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
+
+@cindex lute tunings
+@cindex tunings, lute
+
+@knownissues
+Using @code{FretBoards} with @code{additionalBassStrings} is not supported and
+will yield unsatisfying results.
index ccfad7c9a70c32b5a69914df692a02e27cb72f0f..67506114b8a8e34b616a8f1009e44a40d7595e78 100644 (file)
@@ -277,7 +277,7 @@ Lilypond provides facilities to allow you to control what file names
 are used by the various back-ends when producing output files.
 
 In the previous section, we saw how Lilypond prevents name-clashes when
-producing several ouputs from a single source file.  You also have the
+producing several outputs from a single source file.  You also have the
 ability to specify your own suffixes for each @code{\book} block, so
 for example you can produce files called
 @file{eightminiatures-Romanze.pdf}, @file{eightminiatures-Menuetto.pdf}
@@ -1765,7 +1765,7 @@ inside a music expression.
 @end verbatim
 
 Markups used for formatting the table of contents are defined in the
-@code{\paper} block.  There two @q{pre-defined} markups already
+@code{\paper} block.  There are two @q{pre-defined} markups already
 available;
 
 @itemize
@@ -1846,7 +1846,7 @@ is defined for entering act names in a table of contents of an opera;
 
 @noindent
 A new markup variable (called @code{tocActMarkup}) is defined in the
-@code{\paper} block ;
+@code{\paper} block;
 
 @verbatim
 \paper {
@@ -1890,7 +1890,7 @@ tocAct =
   \markuplist \table-of-contents
   \tocAct \markup { Atto Primo }
   \tocItem \markup { Coro. Viva il nostro Alcide }
-  \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
+  \tocItem \markup { Cesare. Presti omai l'Egizia terra }
   \tocAct \markup { Atto Secondo }
   \tocItem \markup { Sinfonia }
   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
@@ -2285,8 +2285,8 @@ music = \relative c'' {
 
 Multiple @code{\removeWithTag} filters may be applied to a single
 music expression to remove several differently named tagged
-sections.  Alternatively, you can use a single
-@code{\removeWithTag} with a list of tags.
+sections.  Alternatively, you can use a single @code{\removeWithTag}
+with a list of tags.
 
 @lilypond[verbatim,quote]
 music = \relative c'' {
@@ -2304,41 +2304,74 @@ music = \relative c'' {
 }
 @end lilypond
 
-Two or more @code{\keepWithTag} filters applied to a single music
-expression will cause @emph{all} tagged sections to be removed, as
-the first filter will remove all tagged sections except the one
-named, and the second filter will remove even that tagged section.
-Usually you would rather want to use a single @code{\keepWithTag}
-command with a list of multiple tags: this will only remove tagged
-sections not given in @emph{any} of the tags.
+Using two or more @code{\keepWithTag} filters on a single music
+expression will cause @emph{all} of the tagged sections to be removed.
+The first filter will remove all except the one named and any subsequent
+filters will remove the rest.  Using one @code{\keepWithTag} command
+with a list of multiple tags will only remove tagged sections that are
+not specified in that list.
+
+@lilypond[verbatim,quote]
+music = \relative c'' {
+  \tag #'violinI { a4 a a a }
+  \tag #'violinII { b4 b b b }
+  \tag #'viola { c4 c c c }
+  \tag #'cello { d4 d d d }
+}
+
+\new Staff {
+  \keepWithTag #'(violinI violinII)
+  \music
+}
+@end lilypond
+
+@noindent
+will print @code{\tag}s @var{violinI} and @var{violinII} but not
+@var{viola} or @var{cello}.
 
 @cindex tag groups
 @funindex \tagGroup
-While @code{\keepWithTag} is convenient when dealing with
-@emph{one} set of alternatives, the removal of music tagged with
-@emph{unrelated} tags is problematic when using tags for more than
-one purpose.  For that reason, @q{tag groups} of related tags can
-be declared:
+
+While @code{\keepWithTag} is convenient when dealing with @emph{one} set
+of alternatives, the removal of music tagged with @emph{unrelated} tags
+is problematic when using them for more than one purpose.  In that case
+@q{groups} of tags can be declared:
 
 @example
 \tagGroup #'(violinI violinII viola cello)
 @end example
 
-declares the respective tags as belonging to one tag group.
+@noindent
+Now the all the different tags belong to a single @q{tag group}.  Note
+that individual tags cannot be members of more than one
+@emph{tag group}.
 
 @example
 \keepWithTag #'violinI @dots{}
 @end example
 
-will then only be concerned with tags from @code{violinI}'s tag
-group: any element of the included music that is tagged with one
-or more of tags from this set but @emph{not} with @code{violinI}
-will get removed.
+@noindent
+will now only show music tagged from @code{violinI}'s tag group and any
+music tagged with one of the @emph{other} tags will removed.
+
+@lilypond[verbatim,quote]
+music = \relative {
+  \tagGroup #'(violinI violinII viola cello)
+  \tag #'violinI { c''4^"violinI" c c c }
+  \tag #'violinII { a2 a }
+  \tag #'viola { e8 e e2. }
+  \tag #'cello { d'2 d4 d }
+  R1^"untagged"
+}
 
-To any @code{\keepWithTag} command, only tags from the tag groups
-of the tags given in the command are visible.
+\new Voice {
+  \keepWithTag #'violinI
+  \music
+}
+@end lilypond
 
-Tags cannot be members of more than one tag group.
+When using the @code{\keepWithTag} command, only tags from the tag
+groups of the tags given in the command are visible.
 
 @funindex \pushToTag
 @funindex \appendToTag
@@ -2352,15 +2385,15 @@ construct has @code{elements}, but sequential and simultaneous music are
 safe bets:
 
 @lilypond[verbatim,quote]
-test = { \tag #'here { \tag #'here <<c''>> } }
+music = { \tag #'here { \tag #'here <<c''>> } }
 
 {
   \pushToTag #'here c'
   \pushToTag #'here e'
-  \pushToTag #'here g' \test
+  \pushToTag #'here g' \music
   \appendToTag #'here c'
   \appendToTag #'here e'
-  \appendToTag #'here g' \test
+  \appendToTag #'here g' \music
 }
 @end lilypond
 
@@ -2452,7 +2485,7 @@ instruction containing non-ASCII characters, must be encoded in
 UTF-8.  The easiest way to enter such text is by using a
 Unicode-aware editor and saving the file with UTF-8 encoding.  Most
 popular modern editors have UTF-8 support, for example, vim, Emacs,
-jEdit, and GEdit do.  All MS Windows systems later than NT use
+jEdit, and Gedit do.  All MS Windows systems later than NT use
 Unicode as their native character encoding, so even Notepad can
 edit and save a file in UTF-8 format.  A more functional
 alternative for Windows is BabelPad.
@@ -2469,9 +2502,10 @@ will be generated.
 Here is an example showing Cyrillic, Hebrew and Portuguese
 text:
 
+@c NOTE: No verbatim in the following example as the code does not
+@c display correctly in PDF Font settings for Cyrillic and Hebrew
+
 @lilypond[quote]
-%c No verbatim here as the code does not display correctly in PDF
-% Font settings for Cyrillic and Hebrew
 % Linux Libertine fonts contain Cyrillic and Hebrew glyphs.
 \paper {
   #(define fonts
@@ -2631,7 +2665,7 @@ Installed Files:
 
 It is possible to output one or more fragments of a score by defining
 the explicit location of the music to be extracted within the
-@code{\layout} block of the the input file using the @code{clip-regions}
+@code{\layout} block of the input file using the @code{clip-regions}
 function, and then running LilyPond with the @option{-dclip-systems}
 option;
 
@@ -2659,14 +2693,14 @@ By default, each music fragment will be output as a separate @code{EPS}
 file, but other formats such as @code{PDF} or @code{PNG} can also be
 created if required.  The extracted music is output as if had been
 literally @q{cut} from the original printed score so if a fragment runs
-over one or more lines, a separate ouput file for each line will be
+over one or more lines, a separate output file for each line will be
 generated.
 
 @seealso
 Notation Reference:
 @ref{The layout block}.
 
-Application Usage
+Application Usage:
 @rprogram{Command-line usage}.
 
 
@@ -2729,11 +2763,10 @@ voices and staves, saving even more time.
 @cindex EPS output
 
 The default output formats for the printed score are Portable
-Document Format (PDF) and PostScript (PS).  Scalable Vector
-Graphics (SVG), Encapsulated PostScript (EPS) and Portable
-Network Graphics (PNG) output formats are also available through
-command line options, see
-@rprogram{Basic command line options for LilyPond}.
+Document Format (PDF) and PostScript (PS).  Portable
+Network Graphics (PNG), Scalable Vector Graphics (SVG) and Encapsulated
+PostScript (EPS) output is available through the command line option,
+see @rprogram{Basic command line options for LilyPond}.
 
 
 @node Replacing the notation font
@@ -2840,7 +2873,7 @@ When combined with the @file{articulate} script the following,
 additional musical notation can be output to MIDI;
 
 @itemize
-@item Appogiaturas.  These are made to take half the value of the note
+@item Appoggiaturas.  These are made to take half the value of the note
 following (without taking dots into account).  For example;
 
 @example
@@ -3533,10 +3566,10 @@ Installed Files:
 @warning{The @file{articulate} script may shorten chords, which might
 not be appropriate for some types of instrument, such as organ music.
 Notes that do not have any articulations attached to them may also be
-shortened; so to compensate for this, restrict the use of the
-@code{\articulate} function to shorter segments of music or modify the
+shortened; so to allow for this, restrict the use of the
+@code{\articulate} function to shorter segments of music, or modify the
 values of the variables defined in the @file{articulate} script to
-compenstate for the note-shortening behavior.}
+compensate for the note-shortening behavior.}
 
 
 
@@ -3585,15 +3618,16 @@ lilypond file.ly >display.txt
 @funindex \void
 Note that Lilypond does not just display the music expression, but
 also interprets it (since @code{\displayLilyMusic} returns it in
-addition to displaying it).  This is convenient since you can just
-insert @code{\displayLilyMusic} into existing music in order to get
-information about it.  If you don't actually want Lilypond to
-interpret the displayed music as well as display it, use @code{\void}
-in order to have it ignored:
+addition to displaying it).  Just insert @code{\displayLilyMusic} into
+the existing music in order to get information about it.
+
+To interpret and display a music section in the console but, at the same
+time, remove it from the output file use the @code{\void} command.
 
 @example
 @{
   \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+  c1
 @}
 @end example
 
index 241daf752fafcd6a0ec6e8aaa068190a9d077f49..3d8bf79f43efacfbd0afb4d72cd8345ee2debaed 100644 (file)
@@ -204,7 +204,7 @@ Augmented triad, @*minor seventh
 @tab
 @code{aug7}
 @tab
-@code{c1:aug}
+@code{c1:aug7}
 @tab
 @lilypond[line-width=2.1\cm,noragged-right,notime]
 <<
@@ -236,7 +236,7 @@ Minor triad, @*major seventh
 @tab
 @code{m7+}
 @tab
-@code{m7+}
+@code{c1:m7+}
 @tab
 @lilypond[line-width=2.1\cm,noragged-right,notime]
 <<
index 647d0a1a36584b9ee40c0fe4b48faffc7cee90e3..9529c6704bfb0d5999c0ae96b8e486d57411109f 100644 (file)
@@ -489,7 +489,7 @@ using Italian note names:
 The available languages and the note names they define are:
 
 @quotation
-@multitable {@code{nederlands}} {do re mi fa sol la sib si}
+@multitable {@code{nederlands}} {do re/re mi fa sol la sib si}
 @headitem Language
   @tab Note Names
 @item @code{nederlands}
@@ -502,7 +502,9 @@ The available languages and the note names they define are:
   @tab c d e f g a bf b
 @item @code{espanol} or @code{español}
   @tab do re mi fa sol la sib si
-@item @code{italiano} or @code{français}
+@item @code{français}
+  @tab do ré/re mi fa sol la sib si
+@item @code{italiano}
   @tab do re mi fa sol la sib si
 @item @code{norsk}
   @tab c d e f g a b h
@@ -535,7 +537,9 @@ also vary depending on the language:
     @tab -@code{ff}/-@code{-flatflat}
 @item @code{espanol} or @code{español}
   @tab -@code{s} @tab -@code{b} @tab -@code{ss}/-@code{x} @tab -@code{bb}
-@item @code{italiano} or @code{français}
+@item @code{français}
+  @tab -@code{d} @tab -@code{b} @tab -@code{dd}/-@code{x} @tab -@code{bb}
+@item @code{italiano}
   @tab -@code{d} @tab -@code{b} @tab -@code{dd} @tab -@code{bb}
 @item @code{norsk}
   @tab -@code{iss}/-@code{is} @tab -@code{ess}/-@code{es} @tab -@code{ississ}/-@code{isis}
@@ -589,7 +593,9 @@ appear in this table do not provide special note names yet.
   @tab -qs @tab -qf @tab -tqs @tab -tqf
 @item @code{espanol} or @code{español}
   @tab -cs @tab -cb @tab -tcs @tab -tcb
-@item @code{italiano} or @code{français}
+@item @code{français}
+  @tab -sd @tab -sb @tab -dsd @tab -bsb
+@item @code{italiano}
   @tab -sd @tab -sb @tab -dsd @tab -bsb
 @item @code{portugues}
   @tab -sqt @tab -bqt @tab -stqt @tab -btqt
@@ -1208,7 +1214,7 @@ This @emph{warning} clef can be suppressed.
 
 By default, a clef that has previously been printed will not be
 re-printed if the same @code{\clef} command is issued again and
-will be ignored.  The the command
+will be ignored.  The command
 @code{\set Staff.forceClef = ##t} changes this behaviour.
 
 @lilypond[verbatim,quote,fragment]
index 9f0adb7741f002a7b8371061f08366fc66889d58..27241d8fde0a836ec07292f6c747e5c5980d350a 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.19.22"
+@c \version "2.19.40"
 
 @node Rhythms
 @section Rhythms
@@ -1127,9 +1127,9 @@ argument:
 \score {
   \new Staff {
     \relative {
-      \time #'(2 2 3) 7/8
+      \time 2,2,3 7/8
       \repeat unfold 7 { c'8 } |
-      \time #'(3 2 2) 7/8
+      \time 3,2,2 7/8
       \repeat unfold 7 { c8 } |
     }
   }
@@ -1150,7 +1150,7 @@ signature is executed:
       \overrideTimeSignatureSettings
         4/4        % timeSignatureFraction
         1/4        % baseMomentFraction
-        #'(3 1)    % beatStructure
+        3,1        % beatStructure
         #'()       % beamExceptions
       \time 4/4
       \repeat unfold 8 { c8 } |
@@ -1196,7 +1196,7 @@ to the original values:
     \overrideTimeSignatureSettings
       4/4        % timeSignatureFraction
       1/4        % baseMomentFraction
-      #'(3 1)    % beatStructure
+      3,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     \repeat unfold 8 { c8 } |
@@ -1219,7 +1219,7 @@ for different staves by moving the @code{Timing_translator} and the
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -1228,7 +1228,7 @@ for different staves by moving the @code{Timing_translator} and the
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -2174,9 +2174,9 @@ is re-established.
   % beamExceptions are unlikely to be defined for 5/16 time,
   % but let's disable them anyway to be sure
   \set Timing.beamExceptions = #'()
-  \set Timing.beatStructure = #'(2 3)
+  \set Timing.beatStructure = 2,3
   c16^"(2+3)" c c c c |
-  \set Timing.beatStructure = #'(3 2)
+  \set Timing.beatStructure = 3,2
   c16^"(3+2)" c c c c |
 }
 @end lilypond
@@ -2189,7 +2189,7 @@ is re-established.
   % defined for 4/4 time
   \set Timing.beamExceptions = #'()
   \set Timing.baseMoment = #(ly:make-moment 1/4)
-  \set Timing.beatStructure = #'(1 1 1 1)
+  \set Timing.beatStructure = 1,1,1,1
   a8^"changed" a a a a a a a
 }
 @end lilypond
@@ -2203,7 +2203,7 @@ enclosing context will apply.
   \time 7/8
   % No need to disable beamExceptions
   % as they are not defined for 7/8 time
-  \set Staff.beatStructure = #'(2 3 2)
+  \set Staff.beatStructure = 2,3,2
   <<
     \new Voice = one {
       \relative {
@@ -2213,7 +2213,7 @@ enclosing context will apply.
     \new Voice = two {
       \relative {
         \voiceTwo
-        \set Voice.beatStructure = #'(1 3 3)
+        \set Voice.beatStructure = 1,3,3
         f'8 f f f f f f
       }
     }
@@ -2231,11 +2231,11 @@ staff:
 % Change applied to Voice by default --  does not work correctly
 % Because of autogenerated voices, all beating will
 % be at baseMoment (1 . 8)
-\set beatStructure = #'(3 1 1 2)
+\set beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 
 % Works correctly with context Staff specified
-\set Staff.beatStructure = #'(3 1 1 2)
+\set Staff.beatStructure = 3,1,1,2
 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
 @end lilypond
 
@@ -2249,7 +2249,7 @@ compatible with the new value of @code{baseMoment}.
 % No need to disable beamExceptions
 % as they are not defined for 5/8 time
 \set Timing.baseMoment = #(ly:make-moment 1/16)
-\set Timing.beatStructure = #'(7 3)
+\set Timing.beatStructure = 7,3
 \repeat unfold 10 { a'16 }
 @end lilypond
 
@@ -2278,7 +2278,7 @@ a simple example:
 @lilypond[quote,verbatim]
 \relative c'' {
   \time 3/16
-  \set Timing.beatStructure = #'(2 1)
+  \set Timing.beatStructure = 2,1
   \set Timing.beamExceptions =
     \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
   c16 c c |
@@ -2304,7 +2304,7 @@ context to the default behavior.
   \time 6/8
   \repeat unfold 6 { a8 }
   % group (4 + 2)
-  \set Timing.beatStructure = #'(4 2)
+  \set Timing.beatStructure = 4,2
   \repeat unfold 6 { a8 }
   % go back to default behavior
   \time 6/8
@@ -2326,7 +2326,7 @@ if @code{beamExceptions} is not reset.
 @lilypond[quote,verbatim,fragment]
 \time 4/4
 \set Timing.baseMoment = #(ly:make-moment 1/8)
-\set Timing.beatStructure = #'(3 3 2)
+\set Timing.beatStructure = 3,3,2
 % This won't beam (3 3 2) because of beamExceptions
 \repeat unfold 8 {c''8} |
 % This will beam (3 3 2) because we clear beamExceptions
@@ -2464,7 +2464,7 @@ in only one staff.
   \new Staff {
     \time 3/4
     \set Timing.baseMoment = #(ly:make-moment 1/8)
-    \set Timing.beatStructure = #'(1 5)
+    \set Timing.beatStructure = 1,5
     \set Timing.beamExceptions = #'()
     \repeat unfold 6 { a'8 }
   }
@@ -2485,7 +2485,7 @@ beaming settings for a time signature are described in
     \overrideTimeSignatureSettings
       3/4               % timeSignatureFraction
       1/8               % baseMomentFraction
-      #'(1 5)           % beatStructure
+      1,5               % beatStructure
       #'()             % beamExceptions
     \time 3/4
     \repeat unfold 6 { a'8 }
index d3cfa42ff17af0a4f8256ef8a2b76a58b9fe0f23..bd6d4d4b78645d164f13a49c37180eb1210a12c0 100644 (file)
@@ -637,11 +637,11 @@ Also see @code{check-consistency}.
 When specified in a @code{\paper} block this defines the horizontal
 extent available for the staff lines in un-indented systems.  If left
 unspecified, the paper's @code{line-width} is determined from
-@code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}
+@code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}.
 If the paper's @code{line-width} is specified, and both
-@code{left-margin} and @code{right-margin} are not, then the
-margins will be updated to center the systems on the page
-automatically.  Also see @code{check-consistency}.
+@code{left-margin} and @code{right-margin} are not, then the margins
+will be updated to center the systems on the page automatically.  Also
+see @code{check-consistency}.
 
 @code{line-width}s for individual scores can be specified in the
 scores' @code{\layout} blocks.  These values control the width of the
@@ -1414,26 +1414,28 @@ To manually force a line break at a bar line, use the
 }
 @end lilypond
 
-By default, a @code{\break} in the middle of a measure is ignored,
-and a warning is printed.  To force a line break in the middle of
-a measure, add an invisible bar line with @w{@samp{\bar ""}}:
+By default, a @code{\break} command inserted in the @q{middle} of a
+measure will be ignored (and a warning message will be output during the
+compilation of the LilyPond file).  Adding an invisible bar line
+-- @w{@samp{\bar ""}} -- before the @code{\break} command will force the
+issue:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
   c4 c c
-  \bar "" \break
+  \bar ""
+  \break
   c |
   c4 c c c |
 }
 @end lilypond
 
-A @code{\break} occurring at a bar line is also ignored if the
-previous measure ends in the middle of a note, such as when a
-tuplet begins and ends in different measures.  To allow
-@code{\break} commands to work in these situations, remove the
-@code{Forbid_line_break_engraver} from the @code{Voice} context.
-Note that manually forced line breaks have to be added in parallel
-with the music:
+A @code{\break} command that occurrs at a bar line will also ignored if
+the previous measure ends in the middle of a note (e.g. when a tuplet
+begins in one measure and ends in another).  In this case remove the
+@code{Forbid_line_break_engraver} from the @code{Voice} context and,
+use a simultaneous music construction inserting the @code{\break} at the
+appropriate place in the second @q{voice}:
 
 @lilypond[quote,ragged-right,verbatim]
 \new Voice \with {
@@ -1446,9 +1448,9 @@ with the music:
 }
 @end lilypond
 
-Similarly, line breaks are normally forbidden when beams cross bar
-lines.  This behavior can be changed by setting
-@code{\override Beam.breakable = ##t}:
+Similarly, by default, line breaks are ignored when beams cross bar
+lines.  Use the @code{\override Beam.breakable = ##t} command to force
+this:
 
 @lilypond[quote,ragged-right,verbatim]
 \relative c'' {
@@ -1458,7 +1460,7 @@ lines.  This behavior can be changed by setting
 }
 @end lilypond
 
-The @code{\noBreak} command forbids a line break at the bar line
+The @code{\noBreak} command will prevent a line break at the bar line
 where it is inserted.
 
 Within a score, automatic line breaking is prevented within music
@@ -1797,18 +1799,19 @@ set it to something @q{very large}.
 @end example
 
 @funindex minimumRepeatLengthForPageTurn
-With volta repeats, the @code{Page_turn_engraver} will only
-allow a page turn during the repeat if there is enough time at the
-beginning and end of the repeat to turn the page back.  If the
-repeat is very short, the @code{Page_turn_engraver} can also be
-used to disable page turns by setting a value for the context
-property @code{minimumRepeatLengthForPageTurn} where as
-@code{Page_turn_engraver} only allows turns in repeats whose
-duration is longer than this value.
-
-The page turning commands, @code{\pageTurn}, @code{\noPageTurn}
-and @code{\allowPageTurn}, may also be used at top-level, in
-top-level markups and between scores.
+
+When using volta repeats, the @code{Page_turn_engraver} will only allow
+a page turn during the repeat if there is enough time at the beginning
+and end of the repeat to turn the page back.  If the repeat is too
+short then the @code{Page_turn_engraver} can be used to @emph{disable}
+page turns by setting an appropriate value for the context property
+@code{minimumRepeatLengthForPageTurn}.  In this case the
+@code{Page_turn_engraver} will only allows turns in repeats whose
+duration is longer than the value specified.
+
+The page turning commands, @code{\pageTurn}, @code{\noPageTurn} and
+@code{\allowPageTurn}, may also be used at top-level, in top-level
+markups and between scores.
 
 @predefined
 @funindex \pageTurn
@@ -2484,16 +2487,16 @@ by looking at an example that includes no overrides at all.
 }
 @end lilypond
 
-This score isolates line- and page-breaking information in a dedicated
-voice.  This technique of creating a breaks voice will help keep layout
-separate from music entry as our example becomes more complicated.
-See @ref{Breaks}.
+This score isolates both line-breaking and page-breaking information in
+a dedicated voice.  This technique of creating a breaks voice will help
+keep layout separate from music entry as our example becomes more
+complicated.  Also see @ref{Breaks}.
 
-Explicit @code{\breaks} evenly divide the music into six measures per
-line.  Vertical spacing results from LilyPond's defaults.  To set
-the vertical startpoint of each system explicitly, we can set
-the @code{Y-offset} pair in the @code{line-break-system-details}
-attribute of the @code{NonMusicalPaperColumn} grob:
+By using explicit @code{\break} commands, the music is divided into five
+measures per line.  Vertical spacing is from LilyPond's own defaults but
+the vertical startpoint of each system is set explicitly using the
+@code{Y-offset} pair in the @code{line-break-system-details} attribute
+of the @code{NonMusicalPaperColumn} grob:
 
 @lilypond[verbatim,quote,staffsize=16]
 \header { tagline = ##f }
@@ -2724,7 +2727,7 @@ Snippets:
 
 @menu
 * Horizontal spacing overview::
-* New spacing area::
+* New spacing section::
 * Changing horizontal spacing::
 * Line width::
 * Proportional notation::
@@ -2795,17 +2798,17 @@ to the example above, they would be followed by half a NHW:
 \relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
 @end lilypond
 
+As explained in the @emph{Essay on automated music engraving}, stem
+directions will influence spacing (see @ressay{Optical spacing}) and can
+be adjusted using the @code{stem-spacing-correction} property of the
+@rinternals{NoteSpacing} object (which are generated for every
+@rinternals{Voice} context).
+
+The @code{StaffSpacing} object (generated in @rinternals{Staff} context)
+contains the same property for controlling the stem/bar line spacing.
 
-In the @emph{Essay on automated music engraving}, it was explained
-that stem directions influence spacing (see
-@ressay{Optical spacing}).  This is controlled with the
-@code{stem-spacing-correction} property in the
-@rinternals{NoteSpacing}, object.  These are generated for every
-@rinternals{Voice} context.  The @code{StaffSpacing} object
-(generated in @rinternals{Staff} context) contains the same
-property for controlling the stem/bar line spacing.  The following
-example shows these corrections, once with default settings, and
-once with exaggerated corrections:
+The following example shows this; once with the default settings and
+once with an exaggerated adjustment:
 
 @lilypond[quote,ragged-right]
 \fixed c' {
@@ -2845,21 +2848,23 @@ adjusting the padding value as necessary.
 No work-around exists for decreasing the amount of space.
 
 
-@node New spacing area
-@subsection New spacing area
+@node New spacing section
+@subsection New spacing section
 
 @funindex \newSpacingSection
-@cindex new spacing area
-@cindex spacing area, new
+@cindex new spacing section
+@cindex spacing section, new
 @cindex notes, spacing horizontally
 
-New sections with different spacing parameters can be started with
-@code{newSpacingSection}.  This is useful when there are
-sections with a different notions of long and short notes.
+New sections with different spacing parameters can be started with the
+@code{newSpacingSection} command.  This is useful for sections with
+different notions of @q{long} and @q{short} notes.  The
+@code{\newSpacingSection} command creates a new @code{SpacingSpanner}
+object at that musical moment.
 
-In the following example, the time signature change introduces a new
-section, and hence the 16ths notes are automatically spaced slightly
-wider.
+In the following example the time signature change introduces a new
+section, and the 16ths notes are automatically spaced slightly wider
+apart.
 
 @lilypond[verbatim,quote]
 \relative c' {
@@ -2872,14 +2877,12 @@ wider.
 }
 @end lilypond
 
-The @code{\newSpacingSection} command creates a new
-@code{SpacingSpanner} object at that musical moment.
 If the automatic spacing adjustments do not give the required spacing,
 manual @code{\override}s may be applied to its properties.  These must
 be applied at the same musical moment as the @code{\newSpacingSection}
-command itself.  They will then affect the spacing of all the following
+command itself and will then affect the spacing of all the following
 music until the properties are changed in a new spacing section, for
-example,
+example:
 
 @lilypond[verbatim,quote]
 \relative c' {
@@ -3280,7 +3283,7 @@ means that, by default, @code{uniform-stretching} is either turned on for the
 entire score or turned off for the entire score.  We can, however,
 override this behavior and turn on different spacing features at
 different places in the score.  We do this with the command
-@code{\newSpacingSection}.  See @ref{New spacing area}, for more info.
+@code{\newSpacingSection}.  See @ref{New spacing section}, for more info.
 
 Next we examine the effects of the @code{Separating_line_group_engraver} and
 see why proportional scores frequently remove this engraver.  The following
@@ -3376,7 +3379,7 @@ for these related settings.
 
 @seealso
 Notation Reference:
-@ref{New spacing area}.
+@ref{New spacing section}.
 
 Snippets:
 @rlsr{Spacing}.
index 9458e21e8b449954b2da8b444d31e7d17a64a137..f3fa10eb308fd9d9366d7aa33f1553fd95c4af42 100644 (file)
@@ -13,8 +13,7 @@
 Sometimes you may want to put lyrics for different performers on a
 single line: where there is rapidly alternating text, for example.
 This snippet shows how this can be done with @code{\\override
-VerticalAxisGroup #'nonstaff-nonstaff-spacing #'minimum-distance =
-##f}.
+VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = ##f}.
 
 "
   doctitle = "Arranging separate lyrics on a single line"
@@ -23,8 +22,7 @@ VerticalAxisGroup #'nonstaff-nonstaff-spacing #'minimum-distance =
 \layout {
   \context {
     \Lyrics
-    \override VerticalAxisGroup #'nonstaff-nonstaff-spacing
-       #'minimum-distance = ##f
+    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = ##f
   }
 }
 
index ae63f423c28b832141dd1207cc3fd0ccd147b175..926a1729e5a6ec515a48acb43eac42abf3e73393 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.18.0"
+\version "2.19.40"
 
 \header {
   lsrtags = "automatic-notation, connecting-notes, rhythms"
@@ -35,10 +35,10 @@ specified in @code{baseMoment}).
     >>
     \oneVoice
     \set baseMoment = #(ly:make-moment 1/8)
-    \set beatStructure = #'(2 2 2 2)
+    \set beatStructure = 2,2,2,2
     b32^"baseMoment 1 8"[ a g f c' b a g]
     \set baseMoment = #(ly:make-moment 1/16)
-    \set beatStructure = #'(4 4 4 4)
+    \set beatStructure = 4,4,4,4
     b32^"baseMoment 1 16"[ a g f c' b a g]
   }
 }
index be7e458d6363558e049d48004140eafcecdcb0c7..c517b35ecfffff7cdf8ed53a282de121ea1c40e5 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.18.0"
+\version "2.19.40"
 
 \header {
   lsrtags = "rhythms"
@@ -22,14 +22,14 @@ levels:
   \time 5/4
   % Set default beaming for all staves
   \set Score.baseMoment = #(ly:make-moment 1/8)
-  \set Score.beatStructure = #'(3 4 3)
+  \set Score.beatStructure = 3,4,3
   <<
     \new Staff {
       c8 c c c c c c c c c
     }
     \new Staff {
       % Modify beaming for just this staff
-      \set Staff.beatStructure = #'(6 4)
+      \set Staff.beatStructure = 6,4
       c8 c c c c c c c c c
     }
     \new Staff {
@@ -42,7 +42,7 @@ levels:
         % Modify beaming for this voice only
         \new Voice {
           \voiceTwo
-          \set Voice.beatStructure = #'(6 4)
+          \set Voice.beatStructure = 6,4
           a8 a a a a a a a a a
         }
       >>
index 1791b38b79810ac388069c2ce251590ae9ce2865..40810e6a19be23526a16ef04096f9dc4177a076a 100644 (file)
@@ -41,10 +41,8 @@ hairpinWithCenteredText =
                  (ly:grob-layout grob) 'staff-space))
                (staff-line-thickness
                  (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
-               (grob-name (lambda (x) (assq-ref
-                 (ly:grob-property x 'meta) 'name)))
                (par-x (ly:grob-parent grob X))
-               (dyn-text (eq? (grob-name par-x) 'DynamicText ))
+               (dyn-text (grob::has-interface par-x 'dynamic-text-interface))
                (dyn-text-stencil-x-length
                  (if dyn-text
                    (interval-length
diff --git a/Documentation/snippets/centering-markup-on-note-heads-automatically.ly b/Documentation/snippets/centering-markup-on-note-heads-automatically.ly
deleted file mode 100644 (file)
index 6b48240..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.di.unimi.it
-%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
-%% and then run scripts/auxiliar/makelsr.py
-%%
-%% This file is in the public domain.
-\version "2.18.0"
-
-\header {
-  lsrtags = "contexts-and-engravers, text, tweaks-and-overrides"
-
-  texidoc = "
-For technical reasons, text scripts attached to note heads cannot
-easily be centered on a note head's width, unlike articulations.
-
-Instead of using trial-and-error offset tweaks, this snippet uses a
-Scheme engraver to reset the horizontal parent of each markup to a
-@code{NoteColumn}.  This also allows text to follow note heads which
-have been shifted via @code{force-hshift}.
-
-
-
-"
-  doctitle = "Centering markup on note heads automatically"
-} % begin verbatim
-
-#(define (Text_align_engraver ctx)
-  (let ((scripts '())
-        (note-column #f))
-    (make-engraver
-     (acknowledgers
-      ((note-column-interface trans grob source)
-       ;; cache NoteColumn in this Voice context
-       (set! note-column grob))
-      ((text-script-interface trans grob source)
-       ;; whenever a TextScript is acknowledged,
-       ;; add it to `scripts' list
-       (set! scripts (cons grob scripts))))
-     ((stop-translation-timestep trans)
-      ;; if any TextScript grobs exist,
-      ;; set NoteColumn as X-parent
-      (for-each (lambda (script)
-                 (set! (ly:grob-parent script X) note-column))
-               scripts)
-      ;; clear scripts ready for next timestep
-      (set! scripts '())))))
-
-\layout {
-  \context {
-    \Voice
-    \consists #Text_align_engraver
-    \override TextScript.X-offset =
-      #ly:self-alignment-interface::aligned-on-x-parent
-    \override TextScript.self-alignment-X = #CENTER
-  }
-}
-
-\new Staff <<
-  \relative c'' {
-    \override NoteColumn.force-hshift = #3
-    c1-\markup { \arrow-head #Y #DOWN ##t }
-  }
-  \\
-  \relative c' {
-    a4 a-\markup { \huge ^ } a a
-  }
->>
index cc468d72ce03b8a592e6405607dbe723af479502..dcbd1f99d3a267908e29df8ff892c418b8b4be39 100644 (file)
@@ -1,10 +1,9 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.18.0
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
 \version "2.18.0"
 
 \header {
@@ -18,8 +17,7 @@ used for printing the stanza number.
   doctitle = "Changing stanza fonts"
 } % begin verbatim
 
-
-\new Voice {
+\relative c'' {
   \time 3/4
   g2 e4
   a2 f4
index 99e80cd7e2d833bce0f7885babce8fdb90d7d941..0b0097158bef92ad2798dc7fccb6d8cc0c96cbb6 100644 (file)
@@ -1,10 +1,9 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.18.0
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
 \version "2.18.0"
 
 \header {
@@ -18,7 +17,6 @@ The default font families for text can be overridden with
   doctitle = "Changing the default text font family"
 } % begin verbatim
 
-
 \paper {
   % change for other default global staff size.
   myStaffSize = #20
index 060b3faf2a3fbbf602380ab7a38b7b1d7d83e40c..eea44b0fbc117d0bf6e6fda7b3f15b1704ced300 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.18.0"
+\version "2.19.40"
 
 \header {
   lsrtags = "rhythms"
@@ -38,9 +38,9 @@ setting in @code{scm/time-signature-settings.scm}:
   \new Voice \relative c'' {
     \time 9/8
     g8 g d d g g a( bes g) |
-    \set Timing.beatStructure = #'(2 2 2 3)
+    \set Timing.beatStructure = 2,2,2,3
     g8 g d d g g a( bes g) |
-    \time #'(4 5) 9/8
+    \time 4,5 9/8
     g8 g d d g g a( bes g) |
     \time 5/8
     a4. g4 |
index 66b3139c7ad3d84be2171b875ddb83b6756d1573..3b3c016eb3f53d85bbb179dfbdf7bfeb3d2a5aa2 100644 (file)
@@ -3,7 +3,6 @@ adding-an-extra-staff-at-a-line-break.ly
 adding-an-extra-staff.ly
 automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly
 centered-measure-numbers.ly
-centering-markup-on-note-heads-automatically.ly
 changing-midi-output-to-one-channel-per-voice.ly
 changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly
 chant-or-psalms-notation.ly
index a433eb96d0a6cd764b2cb22f559a3058ba82664f..b90be170835f5163faa0c615ebe0bc6c8c89801b 100644 (file)
@@ -30,6 +30,7 @@ fixB = {
   \once \override Accidental.extra-offset = #'(4 . -.1)
 }
 
+
 \relative c' {
   << { \fixA <b d!>8 } \\ { \voiceThree \fixB dis } >> s
 }
index 7a75bb1a33fa98170414298349e200e51c5c806d..dc55c346f292d241239bf3fd83329cc80767a489 100644 (file)
 
   texidoc = "
 When working with grob callbacks, it can be helpful to understand a
-grob's @qq{ancestry}. Most grobs have @qq{parents} which influence the
+grob’s ancestry. Most grobs have parents which influence the
 positioning of the grob. X- and Y-parents influence the horizontal and
 vertical positions for the grob, respectively. Additionally, each
 parent may have parents of its own.
 
 
-Unfortunately, there are several aspects of a grob's ancestry that can
+Unfortunately, there are several aspects of a grobs ancestry that can
 lead to confusion:
 
-* The types of parents a grob has may depend on context. * For some
-grobs, the X- and Y-parents are the same. * A particular @qq{ancestor}
-may be related to a grob in multiple ways. * The concept of
-@qq{generations} is misleading.
+
+* The types of parents a grob has may depend on context.
+
+* For some grobs, the X- and Y-parents are the same.
+
+* A particular “ancestor” may be related to a grob in multiple ways.
+
+* The concept of “generations” is misleading.
 
 
 For example, the @code{System} grob can be both parent (on the Y-side)
@@ -31,35 +35,27 @@ and grandparent (twice on the X-side) to a @code{VerticalAlignment}
 grob.
 
 
-This macro prints (to the console) a textual representation of a grob's
+This macro prints (to the console) a textual representation of a grobs
 ancestry.
 
+When called this way:
 
-When called this way
-
-
-@{
- \\once \\override NoteHead #'before-line-breaking = #display-ancestry
- c @}
-
+@code{@{ \\once \\override NoteHead.before-line-breaking =
+#display-ancestry c @}}
 
 The following output is generated:
 
 
-------------------------------------
-
-NoteHead X,Y: NoteColumn
-    X: PaperColumn
-       X,Y: System
-    Y: VerticalAxisGroup
-       X: NonMusicalPaperColumn
-          X,Y: System
-       Y: VerticalAlignment
-          X: NonMusicalPaperColumn
-             X,Y: System
-          Y: System
-
-
+@code{NoteHead X,Y: NoteColumn
+     X: PaperColumn
+        X,Y: System
+     Y: VerticalAxisGroup
+        X: NonMusicalPaperColumn
+           X,Y: System
+        Y: VerticalAlignment
+           X: NonMusicalPaperColumn
+              X,Y: System
+           Y: System}
 
 "
   doctitle = "Displaying grob ancestry"
@@ -68,17 +64,17 @@ NoteHead X,Y: NoteColumn
 %% http://lsr.di.unimi.it/LSR/Item?id=622
 %% see also http://www.lilypond.org/doc/v2.18/Documentation/snippets/tweaks-and-overrides#tweaks-and-overrides-displaying-grob-ancestry
 
-#(define (grob-name grob)
-   (if (ly:grob? grob)
-       (assoc-ref (ly:grob-property grob 'meta) 'name)
-       #f))
+%% Remark:
+%% grob::name is in the source since 2.19.x could be deleted during next LSR-upgrade
+#(define (grob::name grob)
+  (assq-ref (ly:grob-property grob 'meta) 'name))
 
 #(define (get-ancestry grob)
-   (if (not (null? (ly:grob-parent grob X)))
-       (list (grob-name grob)
-             (get-ancestry (ly:grob-parent grob X))
-             (get-ancestry (ly:grob-parent grob Y)))
-       (grob-name grob)))
+  (if (not (null? (ly:grob-parent grob X)))
+      (list (grob::name grob)
+            (get-ancestry (ly:grob-parent grob X))
+            (get-ancestry (ly:grob-parent grob Y)))
+      (grob::name grob)))
 
 #(define (format-ancestry lst padding)
    (string-append
@@ -114,7 +110,9 @@ NoteHead X,Y: NoteColumn
    (format (current-error-port)
       "~3&~a~2%~a~&"
       (make-string 36 #\-)
-      (format-ancestry (get-ancestry grob) 0)))
+      (if (ly:grob? grob)
+          (format-ancestry (get-ancestry grob) 0)
+          (format #f "~a is not a grob" grob))))
 
 \relative c' {
   \once \override NoteHead.before-line-breaking = #display-ancestry
index 725be2d4627366b101ce06bc41325943f2e61ab5..e1b3dd9b742b13ed9253304bee464f69128f9447 100644 (file)
@@ -1,11 +1,10 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.19.22
-\version "2.19.22"
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
+\version "2.18.0"
 
 \header {
   lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides"
index dea97c455e977aaa952c4f6c23de39dbea17a31f..3010e3107ce07eccc71111b9ded4fae2630bd895 100644 (file)
@@ -1,14 +1,13 @@
-% DO NOT EDIT this file manually; it is automatically
-% generated from Documentation/snippets/new
-% Make any changes in Documentation/snippets/new/
-% and then run scripts/auxiliar/makelsr.py
-%
-% This file is in the public domain.
-%% Note: this file works from version 2.18.0
+%% DO NOT EDIT this file manually; it is automatically
+%% generated from LSR http://lsr.di.unimi.it
+%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
+%% and then run scripts/auxiliar/makelsr.py
+%%
+%% This file is in the public domain.
 \version "2.18.0"
 
 \header {
-  lsrtags = "tweaks-and-overrides, pitches, staff-notation"
+  lsrtags = "pitches, staff-notation, tweaks-and-overrides"
 
   texidoc = "
 It is possible to change the slope of the Ottava spanner.
@@ -17,7 +16,6 @@ It is possible to change the slope of the Ottava spanner.
   doctitle = "Modifying the Ottava spanner slope"
 } % begin verbatim
 
-
 \relative c'' {
   \override Staff.OttavaBracket.stencil = #ly:line-spanner::print
   \override Staff.OttavaBracket.bound-details =
diff --git a/Documentation/snippets/new/changing-stanza-fonts.ly b/Documentation/snippets/new/changing-stanza-fonts.ly
deleted file mode 100644 (file)
index 65f54fe..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-\version "2.18.0"
-
-\header {
-  lsrtags = "really-simple, vocal-music"
-
-  texidoc = "
-Fonts can be changed independently for each stanza, including the font
-used for printing the stanza number.
-
-"
-  doctitle = "Changing stanza fonts"
-}
-
-\new Voice {
-  \time 3/4
-  g2 e4
-  a2 f4
-  g2.
-}
-\addlyrics {
-  \set stanza = #"1. "
-  Hi, my name is Bert.
-}
-\addlyrics {
-  \override StanzaNumber.font-name = #"DejaVu Sans"
-  \set stanza = #"2. "
-  \override LyricText.font-family = #'typewriter
-  Oh, ché -- ri, je t'aime
-}
diff --git a/Documentation/snippets/new/changing-the-default-text-font-family.ly b/Documentation/snippets/new/changing-the-default-text-font-family.ly
deleted file mode 100644 (file)
index 7db90d3..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-\version "2.18.0"
-
-\header {
-  lsrtags = "text, tweaks-and-overrides"
-
-  texidoc = "
-The default font families for text can be overridden with
-@code{make-pango-font-tree}.
-
-"
-  doctitle = "Changing the default text font family"
-}
-
-\paper {
-  % change for other default global staff size.
-  myStaffSize = #20
-  %{
-     run
-         lilypond -dshow-available-fonts blabla
-     to show all fonts available in the process log.
-  %}
-
-  #(define fonts
-    (make-pango-font-tree "Times New Roman"
-                          "Nimbus Sans,Nimbus Sans L"
-                          "Luxi Mono"
-;;                        "Helvetica"
-;;                        "Courier"
-     (/ myStaffSize 20)))
-}
-
-\relative c'' {
-  c4^\markup {
-    roman: foo \bold bla \italic bar \italic \bold baz
-  }
-  c'4_\markup {
-    \override #'(font-family . sans)
-    {
-      sans: foo \bold bla \italic bar \italic \bold baz
-    }
-  }
-  c'2^\markup {
-    \override #'(font-family . typewriter)
-    {
-      mono: foo \bold bla \italic bar \italic \bold baz
-    }
-  }
-}
diff --git a/Documentation/snippets/new/how-to-change-fret-diagram-position.ly b/Documentation/snippets/new/how-to-change-fret-diagram-position.ly
deleted file mode 100644 (file)
index 39cf3cf..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-\version "2.19.22"
-
-\header {
-  lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides"
-
-  texidoc = "
-If you want to move the position of a fret diagram, for example, to
-avoid collision, or to place it between two notes, you have various
-possibilities:
-
-1) modify #'padding or #'extra-offset values (as shown in the first
-snippet)
-
-2) you can add an invisible voice and attach the fret diagrams to the
-invisible notes in that voice (as shown in the second example).
-
- If you need to move the fret according with a rythmic position inside
-the bar (in the example, the third beat of the measure) the second
-example is better, because the fret is aligned with the third beat
-itself.
-
-"
-  doctitle = "How to change fret diagram position"
-}
-harmonies = \chordmode
-{
-  a8:13
-% THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME
-  \once \override ChordNames.ChordName.extra-offset = #'(10 . 0)
-  b8:13 s2.
-% THIS LINE IS THE SECOND METHOD
-    s4 s4  b4:13
-}
-
-\score
-{
-  <<
-    \new ChordNames \harmonies
-    \new Staff
-    {a8^\markup { \fret-diagram  #"6-x;5-0;4-2;3-0;2-0;1-2;"  }
-% THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM
-     \once \override TextScript.extra-offset = #'(10 . 0)
-     b4.~^\markup { \fret-diagram  #"6-x;5-2;4-4;3-2;2-2;1-4;"  } b4. a8\break
-% HERE IS THE SECOND METHOD
-     <<
-       { a8 b4.~ b4. a8}
-       { s4 s4 s4^\markup { \fret-diagram  #"6-x;5-2;4-4;3-2;2-2;1-4;"  }
-       }
-     >>
-   }
-  >>
-}
diff --git a/Documentation/snippets/new/modifying-the-ottava-spanner-slope.ly b/Documentation/snippets/new/modifying-the-ottava-spanner-slope.ly
deleted file mode 100644 (file)
index bc9e4a4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-\version "2.18.0"
-
-\header {
-  lsrtags = "tweaks-and-overrides, pitches, staff-notation"
-
-  texidoc = "
-It is possible to change the slope of the Ottava spanner.
-
-"
-  doctitle = "Modifying the Ottava spanner slope"
-}
-
-\relative c'' {
-  \override Staff.OttavaBracket.stencil = #ly:line-spanner::print
-  \override Staff.OttavaBracket.bound-details =
-    #`((left . ((Y . 0) ; Change the integer here
-                (attach-dir . ,LEFT)
-                (padding . 0)
-                (stencil-align-dir-y . ,CENTER)))
-       (right . ((Y . 5) ; Change the integer here
-                 (padding . 0)
-                 (attach-dir . ,RIGHT)
-                 (text . ,(make-draw-dashed-line-markup (cons 0 -1.2))))))
-  \override Staff.OttavaBracket.left-bound-info =
-     #ly:line-spanner::calc-left-bound-info-and-text
-  \override Staff.OttavaBracket.right-bound-info =
-     #ly:line-spanner::calc-right-bound-info
-  \ottava #1
-  c1
-  c'''1
-}
index a23b5cb06323cb9f337bc8f8b4f8789e6efad74c..4c7aff1f023ed1ed6ea421079000e28327407366 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.6"
+\version "2.19.0"
 \include "catalan.ly"
 
 \header {
index 0030c5a1cb3f866f1f3348f3943e5d52bbbc9063..bd194133063ba9d663a1a57c33ee6571bab50b17 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.34"
+\version "2.19.40"
 
 \header {
   lsrtags = "rhythms"
@@ -33,22 +33,22 @@ changed to match the new @code{baseMoment}:
 
   % Set beam sub-group length to an eighth note
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c c c c]
 
   % Set beam sub-group length to a sixteenth note
   \set baseMoment = #(ly:make-moment 1/16)
-  \set beatStructure = #'(4 4 4 4)
+  \set beatStructure = 4,4,4,4
   c32[ c c c c c c c]
 
   % Shorten beam by 1/32
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c c c] r32
 
   % Shorten beam by 3/32
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c] r16.
   r2
 }
diff --git a/Documentation/snippets/new/user-defined-time-signatures.ly b/Documentation/snippets/new/user-defined-time-signatures.ly
new file mode 100644 (file)
index 0000000..0494666
--- /dev/null
@@ -0,0 +1,27 @@
+\version "2.19.16"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+New time signature styles can be defined.  The time signature in
+the second measure should be upside down in both staves.
+"
+
+  doctitle = "User defined time signatures"
+}
+
+#(add-simple-time-signature-style 'topsy-turvy
+   (lambda (fraction)
+     (make-rotate-markup 180 (make-compound-meter-markup fraction))))
+
+<<
+  \new Staff {
+    \time 3/4 f'2.
+    \override Score.TimeSignature.style = #'topsy-turvy
+    \time 3/4 R2. \bar "|."
+  }
+  \new Staff {
+    R2. e''
+  }
+>>
index b2f27eddc97db7b66cc475d1512d3805da605e78..16859e943172a1ccaef9e3c473cdfaec353c0027 100644 (file)
@@ -75,7 +75,7 @@ Piches headword
       <bs' fs'>2
       e'2
       |
-      <b'! a'>2 -\tweak #'style #'none \cresc
+      <b'! a'>2 -\tweak style #'none \cresc
       b'4
       <e'' cs''>4
       |
index bf28390f9f6acf4c29ed9aed86f057b951ff7b2c..b5f90ce2053d92cb9a402b2d2c63d66aff92ba66 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.18.0"
+\version "2.19.40"
 
 \header {
   lsrtags = "rhythms, version-specific"
@@ -25,6 +25,6 @@ new beaming endings:
   a8 a a a a a a a a a a a
 
   % Set new values for beam endings
-  \set Score.beatStructure = #'(3 4 3 2)
+  \set Score.beatStructure = 3,4,3,2
   a8 a a a a a a a a a a a
 }
index f041143575e9b42216862df5ddf2c1694bcf25af..382302b03f62772a51fd27999ed32efa28edd5a9 100644 (file)
@@ -64,6 +64,7 @@ time-signature-in-parentheses---method-3.ly
 time-signature-in-parentheses.ly
 time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly
 tweaking-grace-layout-within-music.ly
+user-defined-time-signatures.ly
 using-alternative-flag-styles.ly
 using-grace-note-slashes-with-normal-heads.ly
 using-ties-with-arpeggios.ly
index fddf7c230b014720c8a6fbc924b7ae8630775274..9419a6893e7261d72cdc0b75a6b5a08a5e6663a6 100644 (file)
@@ -81,7 +81,7 @@ staffTabLine = \new Staff \with {
   \key c \major
   \relative c''
   {
-    % disable the following line to see the the noteheads while writing the song
+    % disable the following line to see the noteheads while writing the song
     \NoNoteHead
     \override NoteHead.no-ledgers = ##t
 
index 952b5d833f3119e982a25913472060be5c53cf39..056cfca0088cb848e503569ab8458c75ff127d74 100644 (file)
@@ -4,8 +4,8 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.17.6
-\version "2.17.6"
+%% Note: this file works from version 2.19.0
+\version "2.19.0"
 \include "catalan.ly"
 
 \header {
index e73800041a1c51cefa92f9bbfd3f26e078b66151..05f6b9bc9b942be33adae0fbf81c6bf218fe7f0f 100644 (file)
@@ -4,8 +4,8 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.19.34
-\version "2.19.34"
+%% Note: this file works from version 2.19.40
+\version "2.19.40"
 
 \header {
   lsrtags = "rhythms"
@@ -41,22 +41,22 @@ changed to match the new @code{baseMoment}:
 
   % Set beam sub-group length to an eighth note
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c c c c]
 
   % Set beam sub-group length to a sixteenth note
   \set baseMoment = #(ly:make-moment 1/16)
-  \set beatStructure = #'(4 4 4 4)
+  \set beatStructure = 4,4,4,4
   c32[ c c c c c c c]
 
   % Shorten beam by 1/32
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c c c] r32
 
   % Shorten beam by 3/32
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   c32[ c c c c] r16.
   r2
 }
index 380f0926740f78265b73541c52b68014501205df..e87e87ed259db23ac0106359e6cc5e44c883a791 100644 (file)
@@ -6,7 +6,6 @@ aligning-objects-created-with-the--mark-command.ly
 aligning-syllables-with-melisma.ly
 blanking-staff-lines-using-the--whiteout-command.ly
 center-text-below-hairpin-dynamics.ly
-centering-markup-on-note-heads-automatically.ly
 changing-ottava-text.ly
 changing-the-default-text-font-family.ly
 combining-dynamics-with-markup-texts.ly
index 71a02386c76ee5b228ab7e03e7509a9732073d42..ed848f2c0a4941d07a3cefb7e3ec2ea32cad677d 100644 (file)
@@ -10,7 +10,6 @@ analysis-brackets-above-the-staff.ly
 asymmetric-slurs.ly
 avoiding-collisions-with-chord-fingerings.ly
 caesura-railtracks-with-fermata.ly
-centering-markup-on-note-heads-automatically.ly
 changing-a-single-notes-size-in-a-chord.ly
 changing-beam-thickness-and-spacing.ly
 changing-form-of-multi-measure-rests.ly
diff --git a/Documentation/snippets/user-defined-time-signatures.ly b/Documentation/snippets/user-defined-time-signatures.ly
new file mode 100644 (file)
index 0000000..3bf7b76
--- /dev/null
@@ -0,0 +1,35 @@
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.19.16
+\version "2.19.16"
+
+\header {
+  lsrtags = "rhythms"
+
+  texidoc = "
+New time signature styles can be defined.  The time signature in
+the second measure should be upside down in both staves.
+"
+
+  doctitle = "User defined time signatures"
+} % begin verbatim
+
+
+#(add-simple-time-signature-style 'topsy-turvy
+   (lambda (fraction)
+     (make-rotate-markup 180 (make-compound-meter-markup fraction))))
+
+<<
+  \new Staff {
+    \time 3/4 f'2.
+    \override Score.TimeSignature.style = #'topsy-turvy
+    \time 3/4 R2. \bar "|."
+  }
+  \new Staff {
+    R2. e''
+  }
+>>
index 199db158e1c24a40afc96c74401cd44c83e03960..086b1b6d98b4b25491260586070a9c562cf4e915 100644 (file)
@@ -34,8 +34,8 @@ menrest = #(define-music-function (note)
 
 MensStyle = {
   \autoBeamOff
-  \override NoteHead #'style = #'petrucci
-  \override Score.BarNumber #'transparent = ##t
+  \override NoteHead.style = #'petrucci
+  \override Score.BarNumber.transparent = ##t
   \override Stem.neutral-direction = #up
 }
 
index f3da7f3d93fc4db8583d405f8d1c765ce67efe9c..689cd80b31e3bb9ce9c252907d636a22774ee174 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Last updated Fri Jan  1 10:40:27 UTC 2016
+@emph{Last updated Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.333333333333 0.333333333333 0.333333333333
 
@@ -27,7 +27,7 @@ LilyPond Changes
 @item
 Section titles
 @*
-(2037)
+(2171)
 @tab Francisco Vila
 @*
 
@@ -45,7 +45,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #ff7855">partially up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -68,11 +68,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #40fe23">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @item
 LilyPond --- \TITLE\
@@ -179,11 +179,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -415,11 +415,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -537,11 +537,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Jacques Gerbaud
 @*
@@ -785,11 +785,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -890,7 +890,7 @@ up to date
 @item
 1 Scheme tutorial
 @*
-(6331)
+(6316)
 @tab Till Paala
 @*
 
@@ -908,7 +908,7 @@ partially translated (53 %)
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">partially up to date</span>
+<span style="background-color: #5bff27">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -931,11 +931,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -1004,11 +1004,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #6fff29">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Valentin Villenave
 @*
@@ -1236,11 +1236,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab John Mandereau
 @*
@@ -1772,11 +1772,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Nicolas Grandclaude
 @*
@@ -1984,7 +1984,7 @@ partially up to date
 @item
 2 Common notation
 @*
-(4443)
+(4437)
 @tab Walter Garcia-Fontes
 @*
 
@@ -2025,7 +2025,7 @@ partially translated (38 %)
 @ifhtml
 
 @html
-<span style="background-color: #c0ff34">partially up to date</span>
+<span style="background-color: #c7ff35">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -2073,11 +2073,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Nicolas Grandclaude
 @*
@@ -2089,11 +2089,11 @@ Gauvain Pocentek
 @ifhtml
 
 @html
-<small>Jean-Charles Malahieude</small>
+<small>J.-Charles Malahieude</small>
 @end html
 @end ifhtml
 @ifnothtml
-Jean-Charles Malahieude
+J.-Charles Malahieude
 @end ifnothtml
 @*
 
@@ -2376,11 +2376,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Valentin Villenave
 @*
@@ -2564,7 +2564,7 @@ partially up to date
 @item
 4 Tweaking output
 @*
-(16577)
+(16622)
 @tab Walter Garcia-Fontes
 @*
 
@@ -2642,22 +2642,22 @@ up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (98 %)</span>
+<span style="background-color: #1fff1f">translated</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (98 %)
+translated
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Valentin Villenave
 @*
@@ -2870,7 +2870,7 @@ partially translated (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">partially up to date</span>
+<span style="background-color: #ffdd42">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -2930,22 +2930,22 @@ up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (97 %)</span>
+<span style="background-color: #1fff1f">translated</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (97 %)
+translated
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -3053,7 +3053,7 @@ partially translated (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">partially up to date</span>
+<span style="background-color: #ffdd42">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3096,7 +3096,7 @@ partially translated (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdf42">partially up to date</span>
+<span style="background-color: #ffdd42">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3415,11 +3415,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #40fe23">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab John Mandereau
 @*
@@ -3737,7 +3737,7 @@ up to date
 @item
 1.1 Pitches
 @*
-(5203)
+(5202)
 @tab Till Paala
 @*
 
@@ -3778,11 +3778,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -3950,11 +3950,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -4610,7 +4610,7 @@ partially up to date
 @item
 1.6 Staff notation
 @*
-(2399)
+(2576)
 @tab Till Paala
 @*
 
@@ -4628,7 +4628,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #acff31">partially up to date</span>
+<span style="background-color: #c0ff34">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -4651,7 +4651,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #8aff2d">partially up to date</span>
+<span style="background-color: #9eff30">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -4739,11 +4739,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -4762,7 +4762,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">partially up to date</span>
+<span style="background-color: #b2fe32">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5668,7 +5668,7 @@ partially up to date
 @item
 2.4 Fretted string instruments
 @*
-(2756)
+(2842)
 @tab Till Paala
 @*
 
@@ -5686,7 +5686,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">partially up to date</span>
+<span style="background-color: #62ff28">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5709,7 +5709,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #39ff22">partially up to date</span>
+<span style="background-color: #40fe23">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5798,7 +5798,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">partially up to date</span>
+<span style="background-color: #54ff26">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6651,7 +6651,7 @@ partially up to date
 @item
 3 General input and output
 @*
-(12717)
+(12715)
 @tab Till Paala
 @*
 
@@ -6681,22 +6681,22 @@ partially up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (98 %)</span>
+<span style="background-color: #1fff1f">translated</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (98 %)
+translated
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #c7ff35">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -6792,7 +6792,7 @@ partially up to date
 @item
 4 Spacing issues
 @*
-(10884)
+(10895)
 @tab Till Paala
 @*
 
@@ -6810,7 +6810,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">partially up to date</span>
+<span style="background-color: #e1ff39">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6833,7 +6833,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">partially up to date</span>
+<span style="background-color: #8aff2d">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6901,11 +6901,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -6924,7 +6924,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">partially up to date</span>
+<span style="background-color: #e1ff39">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6933,7 +6933,7 @@ partially up to date
 @item
 5 Changing defaults
 @*
-(15581)
+(15610)
 @tab Till Paala
 @*
 
@@ -6951,7 +6951,7 @@ partially translated (85 %)
 @ifhtml
 
 @html
-<span style="background-color: #c0ff34">partially up to date</span>
+<span style="background-color: #cdfe36">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6963,18 +6963,18 @@ partially up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (99 %)</span>
+<span style="background-color: #1fff1f">translated</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (99 %)
+translated
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">partially up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -7062,11 +7062,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -7085,7 +7085,7 @@ partially translated (94 %)
 @ifhtml
 
 @html
-<span style="background-color: #8aff2d">partially up to date</span>
+<span style="background-color: #91ff2e">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -7135,11 +7135,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -7553,11 +7553,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab John Mandereau
 @*
@@ -7867,7 +7867,7 @@ up to date
 @item
 1 Running @command{lilypond}
 @*
-(5401)
+(5425)
 @tab Walter Garcia-Fontes
 @*
 
@@ -7885,7 +7885,7 @@ partially translated (95 %)
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #8aff2d">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -7942,18 +7942,18 @@ partially up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (95 %)</span>
+<span style="background-color: #1fff1f">translated</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (95 %)
+translated
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -8062,11 +8062,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Masamichi Hosoda
 @*
@@ -8087,16 +8087,16 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @item
 2 Updating files with @command{convert-ly}
 @*
-(1865)
+(1866)
 @tab Walter Garcia-Fontes
 @*
 
@@ -8160,11 +8160,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #ffe241">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -9237,11 +9237,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab John Mandereau
 @*
@@ -9712,7 +9712,7 @@ translated
 @item
 Introduction
 @*
-(5816)
+(5815)
 @tab Walter Garcia-Fontes
 @*
 
@@ -9730,7 +9730,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #68ff28">partially up to date</span>
+<span style="background-color: #76fe2a">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -9753,7 +9753,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #fffa3d">partially up to date</span>
+<span style="background-color: #fff73e">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -9778,11 +9778,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Francisco Vila
 @*
@@ -9801,7 +9801,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #acff31">partially up to date</span>
+<span style="background-color: #b9ff33">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -9871,7 +9871,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #f6fe3b">partially up to date</span>
+<span style="background-color: #fcff3c">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -9914,11 +9914,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Masamichi Hosoda
 @*
@@ -9941,11 +9941,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Jan Nieuwenhuizen
 @*
@@ -9984,7 +9984,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #dbff38">partially up to date</span>
+<span style="background-color: #e1ff39">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -10084,11 +10084,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Francisco Vila
 @*
@@ -10107,11 +10107,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #54ff26">partially up to date</span>
+<span style="background-color: #1fff1f">up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -10952,7 +10952,7 @@ up to date
 @item
 Community
 @*
-(3004)
+(3522)
 @tab Walter Garcia-Fontes
 @*
 
@@ -10970,7 +10970,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #b9ff33">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -10982,18 +10982,18 @@ partially up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (94 %)</span>
+<span style="background-color: #dfef77">partially translated (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (94 %)
+partially translated (95 %)
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #f6fe3b">partially up to date</span>
+<span style="background-color: #fff53e">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -11018,11 +11018,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #7dff2b">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Francisco Vila
 @*
@@ -11041,7 +11041,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #6fff29">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -11098,18 +11098,18 @@ up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (94 %)</span>
+<span style="background-color: #dfef77">partially translated (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (94 %)
+partially translated (95 %)
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #efff3a">partially up to date</span>
+<span style="background-color: #fff73e">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -11152,11 +11152,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #7dff2b">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -11175,7 +11175,7 @@ partially translated (97 %)
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially up to date</span>
+<span style="background-color: #c7ff35">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
index 3f13f7c17d1c78f106879a9bce7777a9956a7099..995119e57b061b5122dfb412a7b05e4de04c1a50 100644 (file)
@@ -246,6 +246,10 @@ which formats should be written.  Choices for @code{format} are
 
 Example: @code{lilypond -fpng @var{filename}.ly}
 
+@noindent
+For @code{svg} and @code{eps} formats use the @code{-dbackend} option.
+See @ref{Advanced command line options for LilyPond}.
+
 @item -h, --help
 Show a summary of usage.
 
@@ -466,12 +470,12 @@ can lead to very large file sizes.
 @tab @code{eps}
 @tab Used as default by the @command{lilypond-book} command.  This dumps
 every page as both a single file with all pages and fonts included and
-as separate encapsulated postscipt files for each page but without fonts
+as separate encapsulated postscript files for each page but without fonts
 included.
 
 @item
 @tab @code{null}
-@tab Do not output a printed score.  This the same effect as
+@tab Do not output a printed score.  This has the same effect as
 @code{-dno-print-pages}.
 
 @item
@@ -481,21 +485,22 @@ included.
 @item
 @tab @code{svg}
 @tab Scalable Vector Graphics.
-A single SVG file is created for every page of output.  Apart from
-LilyPond's own music glyphs, no other font information will be included.
-Any SVG viewer will therefore require the fonts be available to it for
-the proper rendering of both text and lyrics.  It is recommended to not
-to use font @q{aliases} or @q{lists} in case the SVG viewer is unable to
-handle them.  When using @emph{Web Open Font Format} (WOFF) files the
-additional @code{--svg-woff} switch is required.
+A single SVG file is created for every page of output.  Music glyphs
+are encoded as vector graphics, but text fonts are @emph{not} embedded
+in the SVG files.  Any SVG viewer will therefore need the relevant text
+fonts to be available to it for proper rendering of both text and
+lyrics.  It is recommended to not use font @q{lists} or @q{aliases}
+in case an SVG viewer is unable to handle them.  When using
+@emph{Web Open Font Format} (WOFF) files the additional
+@code{--svg-woff} switch is required.
 @end multitable
 
 @noindent
 @strong{Note for backend svg output:}
-LilyPond's default fonts (@code{LilyPond Serif},
-@code{LilyPond Sans Serif} and @code{LilyPond Monospace}) are just
-@emph{local} font aliases.  Therefore, when using the backend @code{svg}
-command you must explicitly define the default fonts in your source
+By default in svg output LilyPond will use the generic
+@code{font-family} values of @code{serif}, @code{sans-serif}, or
+@code{monospace}.  Therefore, when using the backend @code{svg} command
+you should explicitly define particular default fonts in your source
 file;
 
 @quotation
@@ -575,6 +580,10 @@ compilation.
 @tab @code{#f}
 @tab Dump output signatures of each system. Used for regression testing.
 
+@item @code{embed-source-code}
+@tab @code{#f}
+@tab Embed the LilyPond source files inside the generated PDF document.
+
 @item @code{eps-box-padding}
 @tab @code{#f}
 @tab Pad left edge of the output EPS bounding box by the given amount
@@ -1199,8 +1208,7 @@ staves are introduced in parallel, i.e. simultaneously:
 @end lilypond
 
 @node Warning this voice needs a voiceXx or shiftXx setting
-@unnumberedsubsec Warning this voice needs a @code{@bs{}voiceXx}
- or @code{@bs{}shiftXx} setting
+@unnumberedsubsec Warning this voice needs a @code{@bs{}voiceXx} or @code{@bs{}shiftXx} setting
 
 If notes from two different voices with stems in the same direction
 occur at the same musical moment, but the voices have no
index 60b71c29debad7246ea5a7ce89fa4becabbecf8c..bad4c8c9d8104bb209bd96195b6a54dfba3ad941 100644 (file)
@@ -19,7 +19,7 @@
 
 As LilyPond is improved, the syntax (input language) of some commands
 and functions can change.  This can result in unexpected errors,
-warnings or even output when input files, previously created with older
+warnings or even wrong output when input files, previously created for older
 versions of LilyPond are then used with later versions.
 
 To help with this the @command{convert-ly} command can be used to
index e56637349d8b88dbb7a37a9bcf43c92252661ced..5013b4d954681fdd5a44b45ee1e802450b6c4153 100644 (file)
@@ -904,31 +904,171 @@ developer mailing list (see @ref{Contact}).
 @divClass{column-center-middle-color2}
 @subheading Project Ideas List
 
-Below is a list of projects that was initially drawn up for GSoC 2012.
-It is maintained here as inspiration for future GSoC projects and for
-anyone who is interested in developing LilyPond.
+Below is a list of suggested projects for GSoC or for anyone who is
+interested in helping to improve LilyPond. (Last updated: February 2016)
 
-Note that this is not an exhaustive list.  Other GSoC projects are also
-possible.  There are a number of areas where LilyPond could be improved
-and the LilyPond development team is always willing to help those who
-would like to tackle a project like those listed below.
+Mentor availability varies from project to project and from year to year.
+Send us an email on our developer mailing list (see @ref{Contact}), and
+we will help you find a mentor for a project that fits your interests
+and skills.
+
+If you have ideas for a GSoC project that is not listed below you can
+send us an email as well.  There are a number of areas where LilyPond
+could be improved, and our development team is always willing to help
+those who would like to tackle a project like those listed below.
 
 A full list of all the current open issues can be found
 @uref{http://sourceforge.net/p/testlilyissues/issues/, here}.
 
 @divEnd
 
+@divClass{column-center-middle-color3}
+@subheading Improve internal chord structure
+
+The internal representation of LilyPond chords is not powerful enough
+to capture the nomenclature of jazz chords.  Currently the chord has
+a root, a bass and an inversion.  It would be nice to be able to handle
+stacked or polychords, minor/major, etc.  In order to do this, an
+internal representation with the ability to capture the essence of
+complex chords must be developed.  As a bonus, once the internal
+representation is developed, the output formatting of chord names can
+be improved.
+
+@strong{Difficulty:} Easy/medium
+@strong{Requirements:} Scheme (Guile), but the level necessary can be
+easily learned
+@strong{Recommended:} Chord theory and naming
+@strong{Mentor:} Carl Sorensen
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading ScholarLY
+
+ScholarLY is a library in
+@uref{https://openlilylib.org, openLilyLib} that provides functionality
+for annotating scores, making it possible to manage scholarly workflows
+completely in the context of the score document.  So far it is possible
+to enter annotations of different types, produce clickable messages in
+the console output and export to text and LaTeX files.
+
+There are numerous feature requests to turn this library into an
+even more powerful and comprehensive tool.  Some examples: Inserting
+music examples, producing footnotes, automatically applying styles
+to the annotated item (e.g. dash a slur, parenthesize an accidental),
+creating reports with point-and-click entries.  For a full description
+of this project suggestion please visit
+@uref{https://github.com/openlilylib/scholarly/wiki/GSoC, this Wiki page}.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} Scheme, possibly LaTeX, (optionally Python)
+@strong{Recommended:} Experience with or interest in scholarly
+edition and collaborative workflows.
+@strong{Mentor:} Urs Liska
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Adding variants of font glyphs
+
+@divClass{keep-bullets}
+@itemize
+
+@item
+Adding @q{on} and @q{between} staff-line variants.
+
+@item
+Shorter and narrower variants of some glyphs for example, accidentals.
+Another, more specific example could be an ancient notation breve
+notehead coming in two variants one with a small or big @q{hole} within
+it.
+
+@end itemize
+@divEnd
+
+@strong{Difficulty:} easy
+@strong{Requirements:} MetaFont, C++, good eye for details
+@strong{Recommended knowledge:} basic LilyPond knowledge
+@strong{Mentor:} Werner Lemberg
+
+@divEnd
+
 @divClass{column-center-middle-color3}
 @subheading Grace notes
 
 Fix problems with synchronization of grace notes.  Grace notes can
-intefere with LilyPond's timing and cause odd effects, especially when
+interfere with LilyPond's timing and cause odd effects, especially when
 multiple staffs are used where some have grace notes and others don't.
+This is one of the longest-standing and one of the more embarrassing
+@uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in
+LilyPond.
 
 @strong{Difficulty:} medium
 @strong{Requirements:} C++, MIDI
 @strong{Recommended:} familiarity with LilyPond internals
-@strong{Potential Mentors:} Mike Solomon, Carl Sorensen
+@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
+Carl Sorensen
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Improve default beam positioning
+
+For regular, cross-staff, broken and kneed beams.  Beaming should depend
+on context and neighbor notes (see section 2.2 of
+@uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon,_Jean-Pierre%29,
+this book}).  If possible also reduce beaming-computation time.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++, experience with writing heuristics
+@strong{Recommended knowledge:} aesthetic sense
+@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
+Carl Sorensen
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Allow spanners to cross voices
+
+Currently all sorts of spanners (ties, slurs, dynamics, text spanners,
+trills etc.) have to be ended in the context they were started.  However,
+this doesn't reflect the reality of notation in most polyphonic settings.
+Awkward workarounds with hidden voices are currently necessary to achieve
+cross-voice spanners.
+
+New ways of addressing this issue should be explored, for example by
+
+@divClass{keep-bullets}
+@itemize
+
+@item specifying a “target context” where the end of the spanner is
+expected
+
+@item explicitly specifying the ending object with an ID
+
+@end itemize
+@divEnd
+
+This feature would solve many problems that are commonly faced with
+piano music and combined parts. 
+
+@strong{Difficulty:} medium (?)
+@strong{Requirements:} C++, Scheme
+@strong{Potential Mentor:} Urs Liska
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Help improve compilation behavior
+
+Automatic code analysis tools, like valgrind memory leak detection or
+callgrind code profilers, provide valuable information about possible
+flaws in our C++ code.  Cleaning up warnings would allow us to automate
+the rejection of any patch which introduced extra warnings.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++
+@strong{Potential Mentors:} Reinhold Kainhofer (not available for GSoC
+2016), Joe Neeman
 
 @divEnd
 
@@ -962,9 +1102,13 @@ each output object to the XML tags.
 @end itemize
 @divEnd
 
+There are several possibilities for this project, including building upon
+the MusicXML export project from GSoC 2015.
+
 @strong{Difficulty:} medium
-@strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
-@strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon
+@strong{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
+@strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon (both not
+available for GSoC 2016)
 
 Familiarity with other scorewriters (for cross-testing) would also help.
 
@@ -973,7 +1117,7 @@ Familiarity with other scorewriters (for cross-testing) would also help.
 @divClass{column-center-middle-color3}
 @subheading Improve slurs and ties
 
-The default curves of slurs and ties are often unsatisfactory. Ties
+The engraving quality of slurs and ties is often unsatisfactory. Ties
 @q{broken} by clef or staff changes are not handled well.  The project
 could include collecting and sorting examples of bad output, deciding on
 the intended output and writing code to improve them.
@@ -981,61 +1125,8 @@ the intended output and writing code to improve them.
 @strong{Difficulty:} hard
 @strong{Requirements:} C++, experience with writing heuristics
 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
-@strong{Potential Mentor:} Mike Solomon
-
-@divEnd
-
-@divClass{column-center-middle-color3}
-@subheading Adding variants of font glyphs
-
-@divClass{keep-bullets}
-@itemize
-
-@item
-Adding @q{on} and @q{between} staff-line variants.
-
-@item
-Shorter and narrower variants of some glyphs for example, accidentals.
-Another, more specific example could be an ancient notation breve
-notehead coming in two variants one with a small or big @q{hole} within
-it.
-
-@end itemize
-@divEnd
-
-@strong{Difficulty:} easy
-@strong{Requirements:} MetaFont, C++, good eye for details
-@strong{Recommended knowledge:} basic LilyPond knowledge
-@strong{Potential Mentor:} Werner Lemberg
-
-@divEnd
-
-@divClass{column-center-middle-color3}
-@subheading Improve default beam positioning
-
-For regular, cross-staff, broken and kneed beams.  Beaming should depend
-on context and neighbor notes
-(see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
-section 2.2 here}).  If possible also reduce beaming-computation time.
-
-@strong{Difficulty:} medium
-@strong{Requirements:} C++, experience with writing heuristics
-@strong{Recommended knowledge:} aesthetic sense
-@strong{Potential Mentors:} Mike Solomon, Carl Sorensen
-
-@divEnd
-
-@divClass{column-center-middle-color3}
-@subheading Help improve compilation behavior
-
-Automatic code analysis tools, like valgrind memory leak detection or
-callgrind code profilers, provide valuable information about possible
-flaws in our C++ code.  Cleaning up warnings would allow us to automate
-the rejection of any patch which introduced extra warnings.
-
-@strong{Difficulty:} medium
-@strong{Requirements:} C++
-@strong{Potential Mentors:} Joe Neeman, Reinhold Kainhofer
+@strong{Potential Mentors:} Mike Solomon, Janek Warchoł (both not available for
+GSoC 2016)
 
 @divEnd
 
index 589b8fdaf2757fe2c80ae27538a96205eaa14498..8adbb98180e55fe54ab1de7e2d5d5c30eb776401 100644 (file)
@@ -189,7 +189,7 @@ See @ref{Easier editing}.
 @item
 @sourceimage{logo-freebsd,,,}
 @downloadStableFreeBSDBig
-64bit Systems
+64bit Systems.
 
 @end itemize
 
index b75104d040b60160d3102d6c5d80aa6cd96dbc27..77eda53f3a7adb37a1d89f4036b27ecd9bb554ae 100644 (file)
@@ -784,7 +784,7 @@ April 2011
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publishes an
 article titled
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  It is an introductory article on MuseScore,
 LilyPond and Chordii.  Author Carla Schroder states @qq{LilyPond is
 driven from the command line, but don’t let the lack of a GUI scare
@@ -979,7 +979,7 @@ typesetting].}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{The way that music is entered for LilyPond causes me to think in a
 more musical way -- there have been times when I've been stumped as
@@ -1446,7 +1446,7 @@ available for download at
 @uref{http://sourceforge.net/projects/mscore/files/mscore/,Sourceforge}.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, which imported
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, which imported
 @uref{http://www.makemusic.com/musicxml,MusicXML}, has been forked into
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
 and @uref{http://canorus.org,Canorus}.
index 8596786a1a93a6adf2144e46cb159b09620c3b2e..ccd09c884faa01fc7fb8ab7cfb678391f397bee0 100644 (file)
@@ -9,10 +9,10 @@
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subheading LilyPond 2.19.36 released  @emph{January 31, 2016}
+@subheading LilyPond 2.19.40 released  @emph{April 17, 2016}
 
 We are happy to announce the release of LilyPond
-2.19.36.  This release includes a number of enhancements, and contains some
+2.19.40.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
 require a stable version of Lilypond, we recommend using the 2.18
@@ -35,23 +35,19 @@ updated manuals.  We recommend all users to upgrade to this version.
 
 
 @newsItem
-@subheading LilyPond production named BEST EDITION 2014  @emph{March 11, 2014}
-
-We are thrilled that the edition of the songs of Oskar
-Fried (1871-1941), published recently by our fellow contributors Urs Liska
-and Janek Warchoł [1], received the "Musikeditionspreis BEST EDITION
-2014" of the German Music Publishers' Association [2].  The ceremony
-took place at the Frankfurt Musikmesse.
-
-We congratulate Janek and Urs for gaining such public recognition of
-typographical and editorial excellence of their work.  We are also delighted
-to inform you that they intend to make their work available under a Free
-license as soon as the publisher expenses are covered.  Please support this
-initiative by buying the printed volume through the publisher [3].
-
-[1] @uref{http://lilypondblog.org/category/fried-songs}@*
-[2] @uref{http://www.best-edition.de}@*
-[3] @uref{http://www.sound-rel.de}@*
+@subheading Two LilyPond projects in Google Summer of Code 2016  @emph{April 23, 2016}
+
+We are happy to see two students, Nathan Chou and Jeffery Shivers, working on
+LilyPond as participants in the Google Summer of Code this year.  We hope they
+produce great results and stay in the developer community afterwards.
+
+Nathan will tackle an annoying limitation, namely the unability of spanners
+to cross voices.  His work will make a class of ugly workarounds obsolete.
+Jeffery will bring the ScholarLY package[1] to production quality and add a
+LaTeX package to it, making it possible to create beautiful critical reports
+from data encoded directly in the LilyPond score.
+
+[1] @uref{https://github.com/openlilylib/scholarly}@*
 
 @newsEnd
 
index f6ef627fb55c46979ad16cf2949aa88f198d11df..dabfc79144f1179b44477a125ce126f2c0235a1f 100644 (file)
@@ -26,6 +26,54 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subheading LilyPond 2.19.39 released  @emph{March 27, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.39.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.19.38 released  @emph{March 13, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.38.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.19.37 released  @emph{February 28, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.37.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.19.36 released  @emph{January 31, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.36.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of Lilypond, we recommend using the 2.18
+version.
+
+@newsEnd
+
 @newsItem
 @subheading LilyPond 2.19.35 released  @emph{January 02, 2016}
 
@@ -411,6 +459,28 @@ a stable version of Lilypond, we recommend using the 2.18 version.
 
 @newsEnd
 
+@newsItem
+@subheading LilyPond production named BEST EDITION 2014  @emph{March 11, 2014}
+
+We are thrilled that the edition of the songs of Oskar
+Fried (1871-1941), published recently by our fellow contributors Urs Liska
+and Janek Warchoł [1], received the "Musikeditionspreis BEST EDITION
+2014" of the German Music Publishers' Association [2].  The ceremony
+took place at the Frankfurt Musikmesse.
+
+We congratulate Janek and Urs for gaining such public recognition of
+typographical and editorial excellence of their work.  We are also delighted
+to inform you that they intend to make their work available under a Free
+license as soon as the publisher expenses are covered.  Please support this
+initiative by buying the printed volume through the publisher [3].
+
+[1] @uref{http://lilypondblog.org/category/fried-songs}@*
+[2] @uref{http://www.best-edition.de}@*
+[3] @uref{http://www.sound-rel.de}@*
+
+@newsEnd
+
+
 @newsItem
 @subheading LilyPond 2.19.3 released  @emph{March 2, 2014}
 
@@ -1816,7 +1886,7 @@ due to a few remaining Critical bugs.
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publishes an
 article in the May 2011 issue titled
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  It is an introduction to MuseScore,
 LilyPond and Chordii.  Author Carla Schroder states @qq{LilyPond is
 driven from the command line, but don’t let the lack of a GUI scare
@@ -2965,7 +3035,7 @@ Reinhold Kainhofer.
 @subheading The LilyPond Report #13.  @emph{June 23, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-13,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123759/http://news.lilynet.net/?The-LilyPond-Report-13,this link} to read the full issue...
 @newsEnd
 
 
@@ -2973,7 +3043,7 @@ Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-13,this link} to
 @subheading The LilyPond Report #12.  @emph{June 16, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-12,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123754/http://news.lilynet.net/?The-LilyPond-Report-12,this link} to read the full issue...
 @newsEnd
 
 
@@ -3003,7 +3073,7 @@ to @code{\scaleDurations}.
 @subheading The LilyPond Report #11.  @emph{June 9, 2008}
 
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-11,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123750/http://news.lilynet.net/?The-LilyPond-Report-11,this link} to read the full issue...
 @newsEnd
 
 
@@ -3011,7 +3081,7 @@ Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-11,this link} to
 @subheading The LilyPond Report #10.  @emph{June 2, 2008}
 
 Welcome to this special tenth issue of the @emph{LilyPond Report}, entirely dedicated to Algorithmic Composition systems.@*
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-10,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123743/http://news.lilynet.net/?The-LilyPond-Report-10,this link} to read the full issue...
 @newsEnd
 
 
@@ -3056,7 +3126,7 @@ announce releases and special events.
 
 Welcome to this ninth issue of the @emph{LilyPond Report}!@*
 This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community.
-Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-9,this link} to read the full issue...
+Follow @uref{http://web.archive.org/web/20120220123946/http://news.lilynet.net/?The-LilyPond-Report-9,this link} to read the full issue...
 @newsEnd
 
 
@@ -3226,7 +3296,7 @@ and lots of updates for the translations.
 
 Release 2.11.28 is now available as a binary installer for
 FreeBSD x86_64.  Download
-@uref{http://lilypond.org/download/binaries/freebsd-64/lilypond-2.11.28-1.freebsd-64.sh,the installer} and
+@uref{http://lilypond.org/download/binaries/freebsd-64/,the installer} and
 do @emph{sh lilypond-2.11.28-1.freebsd-64.sh} in a command window.
 @newsEnd
 
@@ -4119,11 +4189,11 @@ to the @ref{Old downloads} get them!
 Starting with 2.7.26, the development team has been working on the
 installers. We're proud to announce another version of these: they are
 now available for
-@uref{http://lilypond.org/download/binaries/linux-x86/lilypond-2.7.27-1.linux.sh,
+@uref{http://lilypond.org/download/binaries/linux-x86/,
 Linux/x86},
-@uref{http://lilypond.org/download/binaries/MacOS/lilypond-2.7.27-2.zip,
+@uref{http://lilypond.org/download/binaries/darwin-ppc/,
 MacOS X} and
-@uref{http://lilypond.org/download/binaries/mingw/lilypond-2.7.27-2.exe,
+@uref{http://lilypond.org/download/binaries/mingw/,
 Windows}.
 @newsEnd
 
@@ -4735,8 +4805,8 @@ feature and has support for tetex-3.0.
 
 @newsItem
 @subheading February 28, 2005
-LilyPond 2.5.13 is available for Fedora Core 3. You need to install @uref{http://lilypond.org/download/binaries/Fedora-3/ghostscript-8.15rc3-0.i386.rpm,ESP
-Ghostscript 8.15rc3}. Unfortunately, this version of Ghostscript
+LilyPond 2.5.13 is available for Fedora Core 3. You need to install
+Ghostscript 8.15rc3. Unfortunately, this version of Ghostscript
 lacks the IJS dynamic library, which means that it will conflict with
 the gimp-print package. You may install it with --nodeps. Use at your
 own risk.
@@ -4804,7 +4874,7 @@ LilyPond 2.5.8 is out.  This
 release has many internal code cleanups. In addition,
 accuracy of error reporting has been improved.
 See the
-@uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3065&content-type=text/vnd.viewcvs-markup,
+@uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,
 change log
 } and @ref{Old downloads}!
 @newsEnd
@@ -4820,7 +4890,7 @@ assorted manual updates by Graham, and an overhaul of the
 font code by Werner.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3048&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4837,7 +4907,7 @@ backend now offloads all metric computations to LaTeX, the
 SVG and GNOME backends are broken, most probably.
 @ref{Old downloads}
 and check out the
-changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3013&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4849,7 +4919,7 @@ ps" output. The default output format has been changed back TeX
 while we stabilize the Pango/FontConfig integration.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev= 1.3000&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4862,7 +4932,7 @@ This has made a lot of things simpler, including font
 handling for the GNOME backend and SVG backend.
 @ref{Old downloads}
 and check out the
-changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2974&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4879,7 +4949,7 @@ by letting the grace notes follow a skip in a parallel
 expression.
 @ref{Old downloads}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2908&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4892,7 +4962,7 @@ layout. Don't forget to rebuild the fonts, as they have been
 changed to accomodate the solfa-notation.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2898&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4909,7 +4979,7 @@ SVG backend, support for the lmodern font set for TeX,
 various bugfixes.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2881&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4932,7 +5002,7 @@ the -f gnome backend. These tweaks can be saved and are
 applied to the PS and TeX output as well.
 @ref{Old downloads}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2837&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4950,7 +5020,7 @@ LilyPond 2.4.1 is out. This release includes a number of small
 fixes that were made to 2.4.0 last week.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2780.2&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4972,7 +5042,7 @@ candidate. This release fixes a number of minor bugs, and
 some problems with the conversion scripts.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2773&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4984,7 +5054,7 @@ lilypond-book. In addition, this release contains an
 important fix for raggedbottom page-layout.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2765&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -4995,7 +5065,7 @@ This release has more improvements by Werner for the TeX
 backend, and a bunch of other small fixes.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2752&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5006,7 +5076,7 @@ LilyPond 2.3.23 has bugfixes in the documentation, lilypond-book and
 candidate for LilyPond 2.4.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2742&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5018,7 +5088,7 @@ stable release.  In addition, it renames the \paper@{@} block to
 \paper@{@}.
 @ref{Old downloads}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2709&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5030,7 +5100,7 @@ and some small formatting improvements of the slur
 code.
 @ref{Old downloads}
 and check
-out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2692&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5043,13 +5113,13 @@ output once again. Also it has the usual bugfixes and updates
 in the documentation.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2674&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
 @newsItem
 @subheading September 29, 2004
-The LilyPond development team will be present at the @uref{http://www.nluug.nl/events/sane2004/bazaar/index.html,Free
+The LilyPond development team will be present at the @uref{https://web.archive.org/web/20040811160307/http://www.nluug.nl/events/sane2004/bazaar/index.html,Free
 Software Bazaar} of the NLUUG SANE 2004 conference today.  If you
 are in the neighborhood, drop by for live contact with the Team or
 just a friendly chat. Registration is not required to attend.
@@ -5061,7 +5131,7 @@ just a friendly chat. Registration is not required to attend.
 LilyPond 2.3.19 is out. It's mainly a bugfix release.
 @ref{Old downloads}
 and check out the changes
-in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2652&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5076,7 +5146,7 @@ renamed to `\chordmode', `\lyricmode', etc. The command
 similarly.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2614&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5096,7 +5166,7 @@ will get uglier by upgrading to 3.0, so that once 3.0 is out, nothing
 will hold users back in switching.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2562&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5110,7 +5180,7 @@ postscript output. Also, the types of events quoted with
 only notes and rests end up in quotes.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2553&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5124,7 +5194,7 @@ different voices that all use "\quote" can now refer to each
 other.
 @ref{Old downloads}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2534&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5153,7 +5223,7 @@ mensural flags, so they are adjusted for staff lines once
 again.
 @ref{Old downloads}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2520&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5163,7 +5233,7 @@ LilyPond 2.2.6 fixes a few minor issues, among others, the
 disappearing metronome mark.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.33&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5175,7 +5245,7 @@ chords, both above and below. This is switched on with the
 `doubleSlurs' property.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2489&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5185,7 +5255,7 @@ LilyPond 2.3.11 is out. This release basically is 2.3.10 with a few
 annoying bugs fixed.
 @ref{Old downloads}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2449&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5208,7 +5278,7 @@ that is dumped as verbatim PostScript
 
 @ref{Old downloads}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2435&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5226,7 +5296,7 @@ updating the manual, and after that's done we can release 3.0. The
 projected date for this to happen is in about a month.
 @ref{Old downloads}
 and check out
-the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2416&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5238,7 +5308,7 @@ situations, ledger lines will be shortened so they stay
 separate.  This also required a cleanup of the Ambitus
 implementation.
 @ref{Old downloads}
-and check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2395&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+and check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5255,7 +5325,7 @@ the LilyPond emacs mode, the `|' will now display the current
 beat within the measure.
 @ref{Old downloads}
 and check out the changes in
-the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2383&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5265,7 +5335,7 @@ LilyPond 2.2.5 was released. It has a few bug fixes from
 2.3.x.
 @ref{Old downloads}
 and check
-out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.28&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5284,7 +5354,7 @@ bugs, including a serious one that trashed a lot of beam
 formatting, and was also present in the 2.2 series.
 @ref{Old downloads}
 and check out the changes
-in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2306&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5294,7 +5364,7 @@ LilyPond 2.2.4 was released. It is mainly a bug fix
 release.
 @ref{Old downloads}
 and
-check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.23&content-type=text/vnd.viewcvs-markup,ChangeLog}.
+check out the changes in the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}.
 @newsEnd
 
 
@@ -5306,7 +5376,7 @@ module. Adventurous hackers can check the instructions at
 scm/output-gnome.scm and try to run
 buildscripts/guile-gnome.sh to see what the fuss is all about.
 Carl Sorensen also provided us with more patches to the
-fret-diagram output. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2293&content-type=text/vnd.viewcvs-markup,ChangeLog}
+fret-diagram output. Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Old downloads}.
 @newsEnd
@@ -5315,7 +5385,7 @@ and
 @newsItem
 @subheading June 20, 2004
 LilyPond 2.2.3 has a turkish translation and fixes a few minor
-bugs that were reported over the past month. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.16&content-type=text/vnd.viewcvs-markup,ChangeLog} for a full description and
+bugs that were reported over the past month. Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog} for a full description and
 @ref{Old downloads}.
 @newsEnd
 
@@ -5324,7 +5394,7 @@ bugs that were reported over the past month. Check out the @uref{http://savannah
 @subheading June 13, 2004
 LilyPond 2.3.4 further improves the output backends. As a
 result, manual page-breaks, multiple output formats and putting
-@code{\score} into markups now works.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2242&content-type=text/vnd.viewcvs-markup,ChangeLog}
+@code{\score} into markups now works.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Old downloads}.
 @newsEnd
@@ -5334,7 +5404,7 @@ and
 @subheading May 31, 2004
 LilyPond 2.3.3 has many internal changes relating to the output
 backend (PostScript) and page-layout. In addition, it contains a few
-bugfixes for recently reported problems.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2207&content-type=text/vnd.viewcvs-markup,ChangeLog}
+bugfixes for recently reported problems.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 and
 @ref{Old downloads}.
 @newsEnd
@@ -5343,7 +5413,7 @@ and
 @newsItem
 @subheading May 31, 2004
 LilyPond 2.2.2 is out.  It has a number of small bugfixes, so upgrade
-if any of these errors concern you.  Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.9,ChangeLog}
+if any of these errors concern you.  Check out the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd3c36946e4c341b0abb0f1c6bbdbc12883c1,ChangeLog}
 or head straight to the
 @ref{Old downloads}.
 @newsEnd
@@ -5718,7 +5788,7 @@ the
 @subheading January 18, 2004
 LilyPond 2.1.11 is now also
 available for Windows!  For downloading, go
-@uref{http://www.inf.bme.hu/~berti/lilypond/,here}.
+@uref{https://web.archive.org/web/20040204191423/http://www.inf.bme.hu/~berti/lilypond/,here}.
 @newsEnd
 
 
@@ -5852,7 +5922,7 @@ download @uref{install/#2.1,here}.
 @subheading October 11, 2003
 LilyPond 2.0.1  binaries for Mandrake 9.1
 available from
-@uref{http://rpm.nyvalls.se/sound9.1.html,here}
+@uref{https://web.archive.org/web/20031006165051/http://rpm.nyvalls.se/sound9.1.html,here}
 thanks to Heikki Junes.
 @newsEnd
 
@@ -5894,7 +5964,7 @@ or download @uref{install/#2.0,here} directly.
 @newsItem
 @subheading September 27, 2003
 PlanetCCRMA has been updated to include LilyPond 2.0. Go
-@uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond,
+@uref{http://ccrma.stanford.edu/planetccrma/software/soundapps.html#SECTION000621700000000000000,
 here} to download.  Thanks to Fernando Pablo
 Lopez-Lezcano!
 @newsEnd
@@ -6031,7 +6101,7 @@ The  LilyPond 1.9 development release is available. Read the
 @newsItem
 @subheading August 25, 2003
 Mandrake 9.1 RPMS available, get them
-@uref{http://rpm.nyvalls.se/sound9.1.html,here}.
+@uref{https://web.archive.org/web/20031006165051/http://rpm.nyvalls.se/sound9.1.html,here}.
 @newsEnd
 
 
@@ -6046,7 +6116,7 @@ read the @ref{Changes}.
 @subheading August 18, 2003
 PlanetCCRMA (eg. RedHat 8 and 9)
 has been updated to 1.8.
-Download @uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond,here.}
+Download @uref{http://ccrma.stanford.edu/planetccrma/software/soundapps.html#SECTION000621700000000000000,here.}
 @newsEnd
 
 
index c6da26a1bb1ac2d54cd91f32baacc1a6459e1927..9060d0709a207f6b810c251b1781405e5757f437 100644 (file)
 
 RewriteEngine On
 
+# Permanent redirect from www.lilypond.org to lilypond.org
+RewriteCond "%{HTTP_HOST}" "^www\.(.+)$" [NC]
+RewriteRule "^/?(.*)$"     "http://%1/$1" [R=301,L,NE]
+
 # Deny following of symlinks by robots.
 # HTTrack is a known offender.
 # better yet, to redirect this to page that tells adminstrator
@@ -45,9 +49,12 @@ RedirectMatch ^/stable    /doc/stable
 # the new website has a dedicated page for development.
 #RedirectMatch ^/development    /doc/development
 
-#old# default doc dir
-RedirectMatch ^/doc/*$ /doc/v2.18
-# make attempt at `latest' symlink avoid ^v catch-all doc fix rule below
+# Main doc URL redirects
+RedirectMatch ^/doc/?$ /manuals
+RedirectMatch ^/doc/stable/?$ /manuals
+RedirectMatch ^/doc/development/?$ /development
+
+# Allow to use deep links to latest stable or development docs
 RedirectMatch ^/doc//*latest/*(.*)$ /doc/v2.19/$1
 RedirectMatch ^/doc//*development/*(.*)$ /doc/v2.19/$1
 RedirectMatch ^/doc//*stable/*(.*)$ /doc/v2.18/$1
index 64fab42792be4d19eea0cb2ae463bbf1bb2bbc6b..254d792d1bc78a97a3d612f1b013066f699c3536 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{最近更新 Fri Jan  1 10:40:27 UTC 2016
+@emph{最近更新 Sat Mar  5 16:11:52 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -88,7 +88,7 @@ Anthony Fok
 @item
 简介
 @*
-5816
+5815
 @tab Ben Luo
 @*
 Anthony Fok
@@ -173,7 +173,7 @@ Anthony Fok
 @item
 社区
 @*
-3004
+3522
 @tab Ben Luo
 @*
 Anthony Fok
index 91e1b0efaa0cb9a4df62cc2e8e144328578f6a3f..64521c8f5072ba372c42cf543f787a93aa3374d8 100644 (file)
@@ -582,7 +582,7 @@ piano keyboard showing which keys to press to help beginners learn
 how to read sheet music.
 
 @item
-@uref{http://www.adoromusicpub.com/, Adoro Music Publishing},
+@uref{https://twitter.com/adoromusic, Adoro Music Publishing},
 high-quality scores of sacred music, available for immediate
 download or in traditional paper format.
 
@@ -626,7 +626,7 @@ If you've already decided to try LilyPond, first read about our
 
 @uref{http://www.linux-magazine.com,Linux Magazine} publishes an
 article titled
-@uref{http://www.linux-magazine.com/w3/issue/126/088-090_projects.pdf,
+@uref{http://www.linux-magazine.com/content/download/61706/482546/version/1/file/088-090_projects.pdf,
 Projects on the Move}.  It is an introductory article on MuseScore,
 LilyPond and Chordii.  Author Carla Schroder states @qq{LilyPond is
 driven from the command line, but don’t let the lack of a GUI scare
@@ -822,7 +822,7 @@ typesetting].}
 
 
 @divClass{testimonial-item}
-@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing}
+@subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{The way that music is entered for LilyPond causes me to think in a
 more musical way -- there have been times when I've been stumped as
@@ -1253,7 +1253,7 @@ language.
 LilyKDE3 for KDE 3.5 and lilypond-KDE4 for KDE 4.1 only.
 
 @item
-@uref{http://noteedit.berlios.de,NoteEdit}, which imported
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, which imported
 @uref{http://www.musicxml.com/xml.html,MusicXML}, has been forked
 into
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
diff --git a/VERSION b/VERSION
index 9cd0ed40f57c605d80848f11057242fbac643b29..b71387ae8bb5995f9d2a4006d7ddd607a4930687 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=19
-PATCH_LEVEL=37
+PATCH_LEVEL=41
 MY_PATCH_LEVEL=
 VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.36
+VERSION_DEVEL=2.19.40
index ca151e70f3f4fdfca196a9bb671ba177e1024da8..0a753325d1eec6384b6c0972ae2d8330543bfdb6 100644 (file)
@@ -237,8 +237,16 @@ STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11)
 STEPMAKE_PROGS(TEXI2HTML, texi2html, $DOCUMENTATION_REQUIRED, 1.82)
 STEPMAKE_PROGS(DBLATEX, dblatex, $DOCUMENTATION_REQUIRED, 0.1.4)
 STEPMAKE_PROGS(BIBTEX, bibtex, $DOCUMENTATION_REQUIRED)
-STEPMAKE_PROGS(PDFLATEX, pdflatex, $DOCUMENTATION_REQUIRED)
-STEPMAKE_PROGS(PDFTEX, pdfetex pdftex etex, $DOCUMENTATION_REQUIRED)
+STEPMAKE_PROGS(PDFLATEX, xelatex pdflatex, $DOCUMENTATION_REQUIRED)
+if test "$PDFLATEX" = "xelatex"; then
+    STEPMAKE_PROGS(PDFTEX, xetex, $DOCUMENTATION_REQUIRED)
+    if test "$PDFTEX" = "xetex"; then
+        # For avoiding PDF destination name replacement.
+        PDFTEX=$ugh_ugh_autoconf250_builddir/scripts/build/out$CONFIGSUFFIX/xetex-with-options
+    fi
+else
+    STEPMAKE_PROGS(PDFTEX, pdfetex pdftex etex, $DOCUMENTATION_REQUIRED)
+fi
 STEPMAKE_PROGS(TEXI2PDF, texi2pdf, $DOCUMENTATION_REQUIRED)
 STEPMAKE_PROGS(TEXINDEX, texindex, $DOCUMENTATION_REQUIRED)
 AC_MSG_CHECKING(for epsf.tex)
index 79aad6b6bb91700f79b61923097d5fa6736c346f..04fabcb0210f7d2833905c01c445719543165fb4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.11"
+\version "2.19.40"
 
 \header {
 
@@ -28,7 +28,7 @@ is changed, beams should start at the beginning of the measure.
   c c c r r4 \bar "||"
 
   \set Timing.baseMoment = #(ly:make-moment 1/8)
-  \set Timing.beatStructure = #'(3 3)
+  \set Timing.beatStructure = 3,3
   r8^\markup "Override to beam groups of 3 eighth notes" c c c c c
   r4. c8 c c c c c r4.
 }
index 8af2e93ec7bb871e7162e106cbd8d4cc902f671d..8137ffd06ab5f87ed8c28ea82e183364bf8a82ac 100644 (file)
@@ -7,13 +7,13 @@ signature. "
 \layout {
   ragged-right = ##t
   }
-\version "2.19.21"
+\version "2.19.40"
 
 
 \relative {
   \time 5/16
-  \set beatStructure = #'(2 3)
+  \set beatStructure = 2,3
   c''8[^"(2+3)" c16 c8]
-  \set beatStructure = #'(3 2)
+  \set beatStructure = 3,2
   c8[^"(3+2)" c16 c8]
 }
index 285c41ce29f15cd0435624d2d73088951edbbf6e..7a2109cd2276ff49bd1a032e8743427eba5e77b3 100644 (file)
@@ -1,11 +1,16 @@
 \version "2.16.0"
 \header {
     texidoc = "The layout of the major 7 can be tuned with
-@code{majorSevenSymbol}."
+@code{majorSevenSymbol}.  It does not break if @code{majorSevenSymbol} is unset.
+One should see: triangle - j7 - triangle - #7."
 }
 
 \chords {
     c:7+
     \set majorSevenSymbol = \markup { "j7" }
     c:7+
+    \unset majorSevenSymbol
+    c:7+
+    \unset Score.majorSevenSymbol
+    c:7+
 }
index 649309ac6e448c2824577dfe5fe36337c75394b1..1a51c2b12264197c9f3497e46297ca9554d722f3 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.24"
+\version "2.19.40"
 #(use-modules (srfi srfi-13)
               (ice-9 format))
 
@@ -172,7 +172,7 @@ stderr of this run."
 \test ##[ \clef "bass^(15)" #]
 \test ##[ \clef "alto_3" #]
 \test ##[ \time 2/4 #]
-\test ##[ \time #'(3 2) 5/8 #]
+\test ##[ \time 3,2 5/8 #]
 \test ##[ \bar "|." #]
 
 %% staff switches
diff --git a/input/regression/identifier-alists.ly b/input/regression/identifier-alists.ly
new file mode 100644 (file)
index 0000000..e70713e
--- /dev/null
@@ -0,0 +1,20 @@
+\version "2.19.39"
+
+\header {
+  texidoc = "Music variables may be structured into alists
+indexed by numbers or symbols."
+}
+
+\layout { ragged-right = ##t }
+
+violin.1 = { e''-\markup \typewriter "\\violin.1" }
+violin.2 = { c'-\markup \typewriter "\\violin.2" }
+viola.I = { e-\markup \typewriter "\\viola.I" }
+viola.II = { c-\markup \typewriter "\\viola.II" }
+
+\score {
+  <<
+    \new Staff << \violin.1 \\ \violin.2 >>
+    \new Staff \with { \clef "alto" } << \viola.I \\ \viola.II >>
+  >>
+}
index 270b5bc73d2cf15c899d98a8e459812db54ce04d..5e27084142ec371087fb306731c225f898980092 100644 (file)
@@ -7,7 +7,7 @@ brackets above beats when the beats of a time signature are grouped.  "
 
 }
 
-\version "2.19.21"
+\version "2.19.40"
 
 \layout  {
   ragged-right = ##t
@@ -22,11 +22,11 @@ brackets above beats when the beats of a time signature are grouped.  "
 \relative {
   \time 2/4 
   c'8 a'4 a8~
-  \time #'(3 2) 5/8 
+  \time 3,2 5/8 
   a8 bes4 r8 bes8->
   \time 2/4
   c,8 g'4 g8~
-  \time #'(3 2) 5/8 
+  \time 3,2 5/8 
   g8 a4 g a4.->
 }
 
index 883124d4a632b8ee867332101539951a904977ea..91c53a39280a918a51e3a52bc343acdc0d3d4cd9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.19.40"
 
 \header {
   texidoc = "
@@ -13,12 +13,12 @@ by the markups.
     \overrideTimeSignatureSettings
       #'(4 . 4)  % time signature fraction
       #'(1 . 4)  % base moment fraction
-      #'(1 1 1 1)    % beatStructure
+      1,1,1,1        % beatStructure
       #'()       % beamExceptions
     \overrideTimeSignatureSettings
       #'(3 . 4)  % time signature fraction
       #'(1 . 4)  % base moment fraction
-      #'(1 1 1)    % beatStructure
+      1,1,1        % beatStructure
       #'()       % beamExceptions
     \time 4/4
     c8^\markup {"Beam by 1/4"} c c c c c c c |
index 3a50f48384b1224ac990c19b55ccbe7c878ac13d..972ebb1d021a06119630c7093588c83247fd095f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.22"
+\version "2.19.38"
 
 \header {
   texidoc = "Various languages are supported for note names input.
@@ -22,6 +22,7 @@ and doesn't break point-and-click abilities.
   bes4 a g fis
 
   %% The \language command acts in the same way:
-  \language "italiano"
-  sol4 fa mib re
+  \language "français"
+  %% Accented characters are supported in some languages:
+  sol4 fa mib ré
 }
diff --git a/input/regression/notehead-height.ly b/input/regression/notehead-height.ly
new file mode 100644 (file)
index 0000000..badad17
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.19.38"
+
+\header {
+  texidoc="
+Noteheads do not extend above the upper staff line.
+"
+}
+
+\new Voice \with {
+  \override NoteHead.color = #green
+  } {
+  \relative {
+    f'4 a c e \bar "|."
+  }
+}
diff --git a/input/regression/tablature-additional-bass-strings.ly b/input/regression/tablature-additional-bass-strings.ly
new file mode 100644 (file)
index 0000000..a094f9a
--- /dev/null
@@ -0,0 +1,38 @@
+\version "2.19.37"
+
+\header
+{
+  texidoc = "Additional bass strings (for baroque lute, etc.) are supported in
+  TabStaff.  They are printed below lowest line as: a, /a, //a, ///a, 4, 5 etc.
+  @code{additionalBassStrings} needs to be set accordingly."
+}
+
+m = { e' b g d a, e, d, c, b,,\9 a,, g,, }
+mus = { \m \bar "||" \transpose c cis \m \bar "|." }
+
+\score {
+  <<
+    \new Staff { \clef bass \cadenzaOn  \mus }
+    %% FretBoards with `additionalBassStrings' return weird output
+    %% A warning is thrown if uncommented
+    %\new FretBoards \mus
+    \new TabStaff { \mus }
+  >>
+  \layout {
+    \context {
+      \Score
+      tablatureFormat = #fret-letter-tablature-format
+    }
+    \context {
+      \FretBoards
+      stringTunings = \stringTuning <e, a, d g b e'>
+      additionalBassStrings = \stringTuning <g,, a,, b,, c, d,>
+    }
+    \context {
+      \TabStaff
+      stringTunings = \stringTuning <e, a, d g b e'>
+      additionalBassStrings = \stringTuning <g,, a,, b,, c, d,>
+      fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
+    }
+  }
+}
index ad6dec591f587a7431f68f8067681342be0d5953..7daa85333c914a4768416324bc49f0b1e0011718 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.19.40"
 
 \header {
   texidoc = "
@@ -15,7 +15,7 @@ should be beamed 3/4, 1/4.  The lower staff should be beamed 1/4, 3/4.
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(3 1)    % beatStructure
+          3,1        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
@@ -24,7 +24,7 @@ should be beamed 3/4, 1/4.  The lower staff should be beamed 1/4, 3/4.
         \overrideTimeSignatureSettings
           4/4        % timeSignatureFraction
           1/4        % baseMomentFraction
-          #'(1 3)    % beatStructure
+          1,3        % beatStructure
           #'()       % beamExceptions
         \time 4/4
         \repeat unfold 8 {c''8}
index 60df2449e273810f7bc5b8a05b582bf2b174ae49..158a6149a2bed23a4a30eb8bea63ebaae57a13c6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.21"
+\version "2.19.40"
 
 \header {
 
@@ -10,7 +10,7 @@ Subdivision works properly for tuplets
 \relative {
   \set subdivideBeams = ##t
   \set baseMoment = #(ly:make-moment 1/8)
-  \set beatStructure = #'(2 2 2 2)
+  \set beatStructure = 2,2,2,2
   \repeat unfold 8 {
     \tuplet 3/2 { c''16 e d }
   }
index ab4f2a4ce4e3a09651b674a8f9598e2cdd6699f5..a560a25940b5dbd065d50ed6ad8d81f6af6b6782 100644 (file)
@@ -27,6 +27,8 @@
 #include "scm-hash.hh"
 #include "warn.hh"
 
+const char * const All_font_metrics::type_p_name_ = 0;
+
 Index_to_charcode_map const *
 All_font_metrics::get_index_to_charcode_map (const string &filename,
                                              int face_index,
index c88e4cccc1e8f6f391937e9a87cca340a1ab6a06..34a985d32da3cd1b16f2dda5e7bb2ff5a93fd5b2 100644 (file)
@@ -164,7 +164,7 @@ Completion_heads_engraver::make_note_head (Stream_event *ev)
   Item *note = make_item ("NoteHead", ev->self_scm ());
   Pitch *pit = unsmob<Pitch> (ev->get_property ("pitch"));
 
-  int pos = pit->steps ();
+  int pos = pit ? pit->steps () : 0;
   SCM c0 = get_property ("middleCPosition");
   if (scm_is_number (c0))
     pos += scm_to_int (c0);
index 534fced49aacc813db06a76a0d63c4768516fc14..e0acae14557319223f253df2655caf80950796c0 100644 (file)
@@ -39,10 +39,11 @@ general_pushpop_property (Context *context,
                           SCM grob_property_path,
                           SCM new_value)
 {
+  // Numbers may appear, but not in first place
   if (!scm_is_symbol (context_property)
       || !scm_is_symbol (scm_car (grob_property_path)))
     {
-      warning (_ ("need symbol arguments for \\override and \\revert"));
+      warning (_ ("need symbol argument for \\override and \\revert"));
       if (do_internal_type_checking_global)
         assert (false);
     }
index 23d7fd9fc2701b0f795d024b70326d44c164dc21..7891a1b9eb8fe17f44409f314ef6be32fe4d229c 100644 (file)
@@ -137,9 +137,9 @@ Engraver::internal_make_grob (SCM symbol,
 
 #ifdef DEBUG
   if (ly_is_procedure (creation_callback))
-    scm_apply_0 (creation_callback,
-                 scm_list_n (grob->self_scm (), scm_from_utf8_string (file),
-                             scm_from_int (line), scm_from_ascii_string (fun), SCM_UNDEFINED));
+    scm_call_4 (creation_callback,
+                grob->self_scm (), scm_from_utf8_string (file),
+                scm_from_int (line), scm_from_ascii_string (fun));
 #endif
 
   return grob;
index 843420c9dff1b10d929774e0aeb09d564c6ff3ca..3d5fa39a074314ddd4413e4ad3a2c75113b0be36 100644 (file)
@@ -32,7 +32,7 @@ internal_add_interface (SCM a, SCM b, SCM c)
       scm_permanent_object (tab);
     }
 
-  SCM entry = scm_list_n (a, b, c, SCM_UNDEFINED);
+  SCM entry = scm_list_3 (a, b, c);
 
   scm_hashq_set_x (all_ifaces, a, entry);
 }
index 5842662757b4650bba19c7fd5f68f5fd8f0dbe97..1129e481571672c1170c3a9e7da4e7ff30b24762 100644 (file)
@@ -94,10 +94,9 @@ Grob::instrumented_set_property (SCM sym, SCM v,
 SCM
 Grob::get_property_alist_chain (SCM def) const
 {
-  return scm_list_n (mutable_property_alist_,
+  return scm_list_3 (mutable_property_alist_,
                      immutable_property_alist_,
-                     def,
-                     SCM_UNDEFINED);
+                     def);
 }
 
 extern void check_interfaces_for_property (Grob const *me, SCM sym);
@@ -248,12 +247,11 @@ Grob::try_callback_on_alist (SCM *alist, SCM sym, SCM proc)
     {
 #ifdef DEBUG
       if (ly_is_procedure (cache_callback))
-        scm_apply_0 (cache_callback,
-                     scm_list_n (self_scm (),
-                                 sym,
-                                 proc,
-                                 value,
-                                 SCM_UNDEFINED));
+        scm_call_4 (cache_callback,
+                    self_scm (),
+                    sym,
+                    proc,
+                    value);
 #endif
       internal_set_value_on_alist (alist, sym, value);
     }
index a2d090a6dfd71c7567447e5ff75dd87ece76f756..f206a3b95d7ec375f6a864c44a8aab7b43170e05 100644 (file)
@@ -48,6 +48,7 @@ class All_font_metrics : public Smob<All_font_metrics>
 
   All_font_metrics (All_font_metrics const &);
 public:
+  static const char * const type_p_name_; // = 0
   SCM mark_smob () const;
 
   Index_to_charcode_map const *get_index_to_charcode_map (const string &filename,
index c4af7bce0579255dea4919f034065a00b3640bf8..130a304f935ea694c71d3f9d773ad1aed98e365d 100644 (file)
@@ -193,9 +193,11 @@ void set_context_property_on_children (Context *trans, SCM sym, SCM val);
   } while (0)
 
 SCM nested_property_alist (SCM alist, SCM prop_path, SCM value);
+SCM nested_property (SCM alist, SCM prop_path, SCM fallback = SCM_EOL);
 SCM nested_create_alist (SCM prop_path, SCM value);
 SCM partial_list_copy (SCM alist, SCM tail, SCM newtail);
 SCM assq_tail (SCM key, SCM alist, SCM alist_end);
+SCM assv_tail (SCM key, SCM alist, SCM alist_end);
 SCM assoc_tail (SCM key, SCM alist, SCM alist_end);
 SCM evict_from_alist (SCM, SCM, SCM);
 SCM nalist_to_alist (SCM nalist, int nested);
index 28f6e935622ff2bb37adb470fc162602beead3fa..97982895f50c851ef1b993c157956fdf9fb771b6 100644 (file)
@@ -65,6 +65,8 @@ namespace Lily {
   extern Variable hash_table_to_alist;
   extern Variable interpret_markup_list;
   extern Variable invalidate_alterations;
+  extern Variable key_p;
+  extern Variable key_list_p;
   extern Variable key_signature_interface_alteration_positions;
   extern Variable layout_extract_page_properties;
   extern Variable lilypond_main;
index 00a64eebb892db03b4231cb983e413c9a4051d34..27e7d85b719d70eb8f8d5aa101f60720ea3baeb5 100644 (file)
@@ -179,6 +179,7 @@ class Callback_wrapper : public Simple_smob<Callback_wrapper>
   Callback_wrapper (void (*trampoline) (SCM, SCM)) : trampoline_ (trampoline)
   { } // Private constructor, use only in make_smob
 public:
+  static const char * const type_p_name_; // = 0
   LY_DECLARE_SMOB_PROC (&Callback_wrapper::call, 2, 0, 0)
   SCM call (SCM target, SCM ev)
   {
index b25ead9de5b4cc02f684d49a1209ea62a26be3dd..c904dc3347fa457ad469aa04ad736a679a3dd835 100644 (file)
@@ -48,9 +48,6 @@ public:
   Moment start_mom () const;
   void print () const;
 
-  /// Transpose, with the interval central C to #p#
-  void transpose (Pitch p);
-
   /// Scale the music in time by #factor#.
   void compress (Moment factor);
 
@@ -77,7 +74,4 @@ SCM ly_camel_case_2_lisp_identifier (SCM name_sym);
 
 extern SCM ly_music_p_proc;
 
-/* common transposition function for music and event */
-void transpose_mutable (SCM alist, Pitch delta);
-
 #endif /* MUSIC_HH */
index cd1a5e2c92fb4ffb34a0581f85398750c1276d28..8683b4c6d10dd5f04531e40691c3bad00228890f 100644 (file)
@@ -33,6 +33,7 @@
 class Paper_outputter : public Smob<Paper_outputter>
 {
 public:
+  static const char * const type_p_name_; // = 0
   SCM mark_smob () const;
   virtual ~Paper_outputter ();
 private:
index 7a06e4773705cc301e4add6dc0b93dca1fc5104d..cb850555fb414983ff0024c502fd66a0da920336 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef PROPERTY_OBJECT_HH
 #define PROPERTY_OBJECT_HH
 
+#include "pitch.hh"
 #include "stencil.hh"
 #include "virtual-methods.hh"
 
@@ -61,6 +62,12 @@ public:
   SCM internal_get_property (SCM sym) const;
   void instrumented_set_property (SCM, SCM, const char *, int, const char *);
   void internal_set_property (SCM sym, SCM val);
+
+  // Needed in both Music and Stream_event
+  // For technical reasons defined in lily/music.cc
+  //
+  /// Transpose, with the interval central C to #p#
+  void transpose (Pitch p);
 };
 
 
index 19cd175c797fd7d9e63a5ac79dbb8c73696c1fa0..7c990e503419ce7db183489fae7ce90c0074d092 100644 (file)
@@ -26,6 +26,7 @@
 
 struct Scale : public Smob<Scale>
 {
+  static const char * const type_p_name_; // = 0
   virtual ~Scale ();
   Scale (vector<Rational> const &);
   Scale (Scale const &);
index 3453904f7152cf3c8cfe60b652fca9892803637a..241f316c4ec3dd622ed493936a5dcf63b36f3447 100644 (file)
@@ -46,6 +46,7 @@
 class Scheme_hash_table : public Smob1<Scheme_hash_table>
 {
 public:
+  static const char * const type_p_name_; // = 0
   int print_smob (SCM, scm_print_state *) const;
   bool try_retrieve (SCM key, SCM *val);
   bool contains (SCM key) const;
index 9ccaa61345565a02a4a50d5ac6d402389993b934..889d86a8cab3a342b374593a7a6afa1879d98f9f 100644 (file)
@@ -185,18 +185,11 @@ private:
   static int print_trampoline (SCM, SCM, scm_print_state *);
   static void smob_proc_init (scm_t_bits) { };
 
-  // type_p_name_ can be overriden in the Super class with a static
-  // const char [] string.  This requires both a declaration in the
-  // class as well as a single instantiation outside.  Using a
-  // template specialization for supplying a different string name
-  // right in Smob_base<Super> itself seems tempting, but the C++
-  // rules would then require a specialization declaration at the
-  // class definition site as well as a specialization instantiation
-  // in a single compilation unit.  That requires just as much source
-  // code maintenance while being harder to understand and quite
-  // trickier in its failure symptoms when things go wrong.  So we
-  // just use a static zero as "not here" indication.
-  static const int type_p_name_ = 0;
+  // type_p_name_ has to be defined in the Super class, either with a
+  // static const char [] string or as a null pointer of type const
+  // char *.  We used to provide a default here for convenience, but
+  // battling the various conflicting C++ standards was too much of a
+  // hassle.
 
   // LY_DECLARE_SMOB_PROC is used in the Super class definition for
   // making a smob callable like a function.  Its first argument is a
index 6c365d088effb2540559b99b2445849cc952e7b8..6fd03beecf050ce363338430753fb2a22991ac10 100644 (file)
@@ -35,6 +35,7 @@ class Engraver_dispatch_list : public Simple_smob<Engraver_dispatch_list>
 {
   vector<Engraver_dispatch_entry> dispatch_entries_;
 public:
+  static const char * const type_p_name_; // = 0
   void apply (Grob_info);
   SCM static create (SCM trans_list,
                      SCM iface_list, Direction);
index b0e8fee3c2321b8e7f078a7946048714deca168a..42d32b496af7bb5ec7a15f1b52cdbc4ea84959c8 100644 (file)
@@ -140,16 +140,33 @@ Ledger_line_spanner::set_spacing_rods (SCM smob)
   return SCM_UNSPECIFIED;
 }
 
-struct Ledger_request
+struct Head_data
 {
-  Interval ledger_extent_;
-  Interval head_extent_;
   int position_;
-  Ledger_request ()
+  vector<Real> ledger_positions_;
+  Interval head_extent_;
+  Interval ledger_extent_;
+  Interval accidental_extent_;
+  Head_data ()
   {
-    ledger_extent_.set_empty ();
     head_extent_.set_empty ();
-    position_ = 0;
+    ledger_extent_.set_empty ();
+    accidental_extent_.set_empty ();
+  }
+};
+
+struct Ledger_request
+{
+  Interval max_ledger_extent_;
+  Interval max_head_extent_;
+  int max_position_;
+  vector <Head_data> heads_;
+  map <Real, Interval> ledger_extents_;
+  Ledger_request ()
+  {
+    max_ledger_extent_.set_empty ();
+    max_head_extent_.set_empty ();
+    max_position_ = 0;
   }
 };
 
@@ -165,12 +182,12 @@ Ledger_line_spanner::print (SCM smob)
 {
   Spanner *me = unsmob<Spanner> (smob);
 
+  // Generate ledger requests from note head properties, etc.
   extract_grob_set (me, "note-heads", heads);
 
   if (heads.empty ())
     return SCM_EOL;
 
-  // find size of note heads.
   Grob *staff = Staff_symbol_referencer::get_staff_symbol (me);
   if (!staff)
     return SCM_EOL;
@@ -183,17 +200,11 @@ Ledger_line_spanner::print (SCM smob)
   Real length_fraction
     = robust_scm2double (me->get_property ("length-fraction"), 0.25);
 
-  Stencil ledgers;
-
-  Grob *common[NO_AXES];
-
-  for (int i = X_AXIS; i < NO_AXES; i++)
+  Grob *common_x = common_refpoint_of_array (heads, me, X_AXIS);
+  for (vsize i = heads.size (); i--;)
     {
-      Axis a = Axis (i);
-      common[a] = common_refpoint_of_array (heads, me, a);
-      for (vsize i = heads.size (); i--;)
-        if (Grob *g = unsmob<Grob> (me->get_object ("accidental-grob")))
-          common[a] = common[a]->common_refpoint (g, a);
+      if (Grob *g = unsmob<Grob> (heads[i]->get_object ("accidental-grob")))
+        common_x = common_x->common_refpoint (g, X_AXIS);
     }
 
   Ledger_requests reqs;
@@ -202,23 +213,43 @@ Ledger_line_spanner::print (SCM smob)
       Item *h = dynamic_cast<Item *> (heads[i]);
 
       int pos = Staff_symbol_referencer::get_rounded_position (h);
-      if (pos && !staff_extent.contains (pos))
+      vector<Real> ledger_positions =
+        Staff_symbol::ledger_positions (staff, pos);
+
+      // We work with all notes that produce ledgers and any notes that
+      // fall outside the staff that do not produce ledgers, such as
+      // notes in the first space just beyond the staff.
+      if (ledger_positions.size () != 0 || !staff_extent.contains (pos))
         {
-          Interval head_extent = h->extent (common[X_AXIS], X_AXIS);
+          Interval head_extent = h->extent (common_x, X_AXIS);
           Interval ledger_extent = head_extent;
           ledger_extent.widen (length_fraction * head_extent.length ());
 
-          Direction vdir = Direction (sign (pos));
+          Direction vdir = Direction (sign (pos != 0 ? pos : 1));
           int rank = h->get_column ()->get_rank ();
 
-          reqs[rank][vdir].ledger_extent_.unite (ledger_extent);
-          reqs[rank][vdir].head_extent_.unite (head_extent);
-          reqs[rank][vdir].position_
-            = vdir * max (vdir * reqs[rank][vdir].position_, vdir * pos);
+          reqs[rank][vdir].max_ledger_extent_.unite (ledger_extent);
+          reqs[rank][vdir].max_head_extent_.unite (head_extent);
+          reqs[rank][vdir].max_position_
+            = vdir * max (vdir * reqs[rank][vdir].max_position_,
+                          vdir * pos);
+          Head_data hd;
+          hd.position_ = pos;
+          hd.ledger_positions_ = ledger_positions;
+          hd.ledger_extent_ = ledger_extent;
+          hd.head_extent_ = head_extent;
+          if (Grob *g = unsmob<Grob> (h->get_object ("accidental-grob")))
+            hd.accidental_extent_ = g->extent (common_x, X_AXIS);
+          reqs[rank][vdir].heads_.push_back(hd);
         }
     }
 
-  // determine maximum size for non-colliding ledger.
+  if (reqs.size () == 0)
+    return SCM_EOL;
+
+  // Iterate through ledger requests and when ledger lines will be
+  // too close together horizontally, shorten max_ledger_extent to
+  // produce more space between them.
   Real gap = robust_scm2double (me->get_property ("gap"), 0.1);
   Ledger_requests::iterator last (reqs.end ());
   for (Ledger_requests::iterator i (reqs.begin ());
@@ -229,81 +260,111 @@ Ledger_line_spanner::print (SCM smob)
 
       for (DOWN_and_UP (d))
         {
-          if (!staff_extent.contains (last->second[d].position_)
-              && !staff_extent.contains (i->second[d].position_))
+          // Some rank--> vdir--> reqs will be 'empty' because notes
+          // will not be above AND below the staff for a given rank.
+          if (!staff_extent.contains (last->second[d].max_position_)
+              && !staff_extent.contains (i->second[d].max_position_))
             {
+              // Midpoint between the furthest bounds of the two heads.
               Real center
-                = (last->second[d].head_extent_[RIGHT]
-                   + i->second[d].head_extent_[LEFT]) / 2;
+                = (last->second[d].max_head_extent_[RIGHT]
+                   + i->second[d].max_head_extent_[LEFT]) / 2;
+
+              // Do both reqs have notes further than the first space
+              // beyond the staff?
+              // (due tilt of quarter note-heads)
+              /* FIXME */
+              bool both
+                = (!staff_extent.contains (last->second[d].max_position_
+                                           - sign (last->second[d].max_position_))
+                   && !staff_extent.contains (i->second[d].max_position_
+                                              - sign (i->second[d].max_position_)));
 
               for (LEFT_and_RIGHT (which))
                 {
                   Ledger_request &lr = ((which == LEFT) ? * last : *i).second[d];
 
-                  // due tilt of quarter note-heads
-                  /* FIXME */
-                  bool both
-                    = (!staff_extent.contains (last->second[d].position_
-                                               - sign (last->second[d].position_))
-                       && !staff_extent.contains (i->second[d].position_
-                                                  - sign (i->second[d].position_)));
                   Real limit = (center + (both ? which * gap / 2 : 0));
-                  lr.ledger_extent_.at (-which)
-                    = which * max (which * lr.ledger_extent_[-which], which * limit);
+                  lr.max_ledger_extent_.at (-which)
+                    = which * max (which * lr.max_ledger_extent_[-which],
+                                   which * limit);
                 }
             }
         }
     }
 
-  // create ledgers for note heads
-  Real ledgerlinethickness
-    = Staff_symbol::get_ledger_line_thickness (staff);
-  for (vsize i = heads.size (); i--;)
+  // Iterate through ledger requests and the data they have about each
+  // note head to generate the final extents for all ledger lines.
+  // Note heads that are different widths produce different ledger
+  // extents and these are merged so the widest extent prevails
+  // (the union of the intervals) for each ledger line.
+  for (Ledger_requests::iterator i (reqs.begin ());
+       i != reqs.end (); i++)
     {
-      Item *h = dynamic_cast<Item *> (heads[i]);
-
-      int pos = Staff_symbol_referencer::get_rounded_position (h);
-      vector<Real> ledger_positions = Staff_symbol::ledger_positions (staff, pos);
-      if (!ledger_positions.empty ())
+      for (DOWN_and_UP (d))
         {
-          int ledger_count = ledger_positions.size ();
-          Interval head_size = h->extent (common[X_AXIS], X_AXIS);
-          Interval ledger_size = head_size;
-          ledger_size.widen (ledger_size.length () * length_fraction);
-
-          if (pos && !staff_extent.contains (pos))
+          Ledger_request &lr = i->second[d];
+          for (vsize h = 0; h < lr.heads_.size (); h++)
             {
-              Interval max_size = reqs[h->get_column ()->get_rank ()]
-                                  [Direction (sign (pos))].ledger_extent_;
-
-              if (!max_size.is_empty ())
-                ledger_size.intersect (max_size);
+              vector<Real> &ledger_posns = lr.heads_[h].ledger_positions_;
+              Interval &ledger_size = lr.heads_[h].ledger_extent_;
+              Interval &head_size = lr.heads_[h].head_extent_;
+              Interval &acc_extent = lr.heads_[h].accidental_extent_;
+
+              // Limit ledger extents to a maximum to preserve space
+              // between ledgers when note heads get close.
+              if (!lr.max_ledger_extent_.is_empty ())
+                ledger_size.intersect (lr.max_ledger_extent_);
+
+              // Iterate through the ledgers for a given note head.
+              for (vsize l = 0; l < ledger_posns.size (); l++)
+                {
+                  Real lpos = ledger_posns[l];
+                  Interval x_extent = ledger_size;
+
+                  // Notes with accidental signs get shorter ledgers.
+                  // (Only happens for the furthest note in the column.)
+                  if (l == 0 && !acc_extent.is_empty ())
+                    {
+                      Real dist
+                        = linear_combination (Drul_array<Real> (acc_extent[RIGHT],
+                                                                head_size[LEFT]),
+                                              0.0);
+
+                      Real left_shorten = max (-ledger_size[LEFT] + dist, 0.0);
+                      x_extent[LEFT] += left_shorten;
+                      /*
+                        TODO: shorten 2 ledger lines for the case
+                        natural + downstem.
+                      */
+                    }
+                  if (lr.ledger_extents_.find (lpos) == lr.ledger_extents_.end ())
+                    lr.ledger_extents_[lpos] = x_extent;
+                  else
+                    lr.ledger_extents_[lpos].unite (x_extent);
+                }
             }
+        }
+    }
 
-          for (int i = 0; i < ledger_count; i++)
-            {
-              Real lpos = ledger_positions[i];
-              Interval x_extent = ledger_size;
-
-              if (i == 0)
-                if (Grob *g = unsmob<Grob> (h->get_object ("accidental-grob")))
-                  {
-                    Interval accidental_size = g->extent (common[X_AXIS], X_AXIS);
-                    Real d
-                      = linear_combination (Drul_array<Real> (accidental_size[RIGHT],
-                                                              head_size[LEFT]),
-                                            0.0);
-
-                    Real left_shorten = max (-ledger_size[LEFT] + d, 0.0);
-
-                    x_extent[LEFT] += left_shorten;
-                    /*
-                      TODO: shorten 2 ledger lines for the case natural +
-                      downstem.
-                    */
-                  }
+  // Create the stencil for the ledger line spanner by iterating
+  // through the ledger requests and their data on ledger extents.
+  Stencil ledgers;
+  Real ledgerlinethickness
+    = Staff_symbol::get_ledger_line_thickness (staff);
 
+  for (Ledger_requests::iterator i (reqs.begin ());
+       i != reqs.end (); i++)
+    {
+      for (DOWN_and_UP (d))
+        {
+          map<Real, Interval> &lex = i->second[d].ledger_extents_;
+          for (map<Real, Interval>::iterator k = lex.begin ();
+               k != lex.end (); k++)
+            {
               Real blotdiameter = ledgerlinethickness;
+              Real lpos = k->first;
+              Interval x_extent = k->second;
               Interval y_extent
                 = Interval (-0.5 * (ledgerlinethickness),
                             +0.5 * (ledgerlinethickness));
@@ -316,7 +377,7 @@ Ledger_line_spanner::print (SCM smob)
         }
     }
 
-  ledgers.translate_axis (-me->relative_coordinate (common[X_AXIS], X_AXIS),
+  ledgers.translate_axis (-me->relative_coordinate (common_x, X_AXIS),
                           X_AXIS);
 
   return ledgers.smobbed_copy ();
index a62216e0849988f632c98d50d502cf1b7fe23b6e..adc9124fb7dc948c613515dff9c2a585a9350987 100644 (file)
@@ -59,6 +59,8 @@ namespace Lily {
   Variable hash_table_to_alist ("hash-table->alist");
   Variable interpret_markup_list ("interpret-markup-list");
   Variable invalidate_alterations ("invalidate-alterations");
+  Variable key_p ("key?");
+  Variable key_list_p ("key-list?");
   Variable key_signature_interface_alteration_positions ("key-signature-interface::alteration-positions");
   Variable layout_extract_page_properties ("layout-extract-page-properties");
   Variable lilypond_main ("lilypond-main");
index b6cbda7f976160ee0b9cd5f0463a446eee9aa686..221d048cc00aa9a0f67f2f963b5932a43475328d 100644 (file)
@@ -285,6 +285,8 @@ Lily_lexer::set_identifier (SCM path, SCM val)
           SCM prev = ly_module_lookup (mod, sym);
           if (scm_is_true (prev))
             val = nested_property_alist (scm_variable_ref (prev), path, val);
+          else
+            val = nested_create_alist (path, val);
         }
       scm_module_define (mod, sym, val);
     }
index 2a8d28d8cbb6daa0d287eeccded86624f75fbb9d..c1e0b442e25dff095b30944d380adc7d3134ad89 100644 (file)
@@ -19,4 +19,6 @@
 
 #include "listener.hh"
 
+const char * const Callback_wrapper::type_p_name_ = 0;
+
 const char Listener::type_p_name_[] = "ly:listener?";
index bad54405eb0b4d73b039493f6c8eeacc902b049e..b6d13fc3568646eebcc70abe8f080dca2c7f54ad 100644 (file)
@@ -75,11 +75,10 @@ Lookup::beam (Real slope, Real width, Real thick, Real blot)
                      scm_cons (scm_from_double (p[Y_AXIS]),
                                points));
 
-  SCM expr = scm_list_n (ly_symbol2scm ("polygon"),
+  SCM expr = scm_list_4 (ly_symbol2scm ("polygon"),
                          ly_quote_scm (points),
                          scm_from_double (blot),
-                         SCM_BOOL_T,
-                         SCM_UNDEFINED);
+                         SCM_BOOL_T);
 
   return Stencil (b, expr);
 }
@@ -373,11 +372,10 @@ Lookup::round_filled_polygon (vector<Offset> const &points,
     }
   shrunk_box.widen (0.5*blotdiameter, 0.5*blotdiameter);
   box.unite (shrunk_box);
-  SCM polygon_scm = scm_list_n (ly_symbol2scm ("polygon"),
+  SCM polygon_scm = scm_list_4 (ly_symbol2scm ("polygon"),
                                 ly_quote_scm (shrunk_points_scm),
                                 scm_from_double (blotdiameter),
-                                SCM_BOOL_T,
-                                SCM_UNDEFINED);
+                                SCM_BOOL_T);
 
   Stencil polygon = Stencil (box, polygon_scm);
   return polygon;
@@ -549,7 +547,7 @@ Stencil
 Lookup::repeat_slash (Real w, Real s, Real t)
 {
 
-  Real x_width = sqrt ((t * t) + ((t / s) * (t / s)));
+  Real x_width = hypot (t, t/s);
   Real height = w * s;
 
   SCM controls = scm_list_n (ly_symbol2scm ("moveto"),
@@ -575,8 +573,8 @@ Lookup::repeat_slash (Real w, Real s, Real t)
                                SCM_BOOL_T,
                                SCM_UNDEFINED);
 
-  Box b (Interval (0, w + sqrt (sqr (t / s) + sqr (t))),
-         Interval (0, w * s));
+  Box b (Interval (0, w + x_width),
+         Interval (0, height));
 
   return Stencil (b, slashnodot); //  http://slashnodot.org
 }
@@ -585,7 +583,7 @@ Stencil
 Lookup::bracket (Axis a, Interval iv, Real thick, Real protrude, Real blot)
 {
   Box b;
-  Axis other = Axis ((a + 1) % 2);
+  Axis other = other_axis (a);
   b[a] = iv;
   b[other] = Interval (-1, 1) * thick * 0.5;
 
index d280953714b820c25513cd4e54ddf89b84b2ba80..644ba9beb727e5982603ba69485a1c4dfdda15b2 100644 (file)
@@ -30,7 +30,8 @@ void
 transpose_music_list (SCM lst, Pitch rq)
 {
   for (SCM s = lst; scm_is_pair (s); s = scm_cdr (s))
-    unsmob<Music> (scm_car (s))->transpose (rq);
+    if (Prob *p = unsmob<Prob> (scm_car (s)))
+      p->transpose (rq);
 }
 
 Moment
index 60d33436b98bf1ea17cc2bad6475a222e8b60c45..bbf7fe4f585da5c8ed909088627346767bb1971d 100644 (file)
@@ -198,10 +198,14 @@ Music::compress (Moment factor)
 /*
   This mutates alist.  Hence, make sure that it is not shared
 */
+
 void
-transpose_mutable (SCM alist, Pitch delta)
+Prob::transpose (Pitch delta)
 {
-  for (SCM s = alist; scm_is_pair (s); s = scm_cdr (s))
+  if (to_boolean (get_property ("untransposable")))
+    return;
+
+  for (SCM s = mutable_property_alist_; scm_is_pair (s); s = scm_cdr (s))
     {
       SCM entry = scm_car (s);
       SCM prop = scm_car (entry);
@@ -220,7 +224,7 @@ transpose_mutable (SCM alist, Pitch delta)
         }
       else if (scm_is_eq (prop, ly_symbol2scm ("element")))
         {
-          if (Music *m = unsmob<Music> (val))
+          if (Prob *m = unsmob<Prob> (val))
             m->transpose (delta);
         }
       else if (scm_is_eq (prop, ly_symbol2scm ("elements"))
@@ -235,15 +239,6 @@ transpose_mutable (SCM alist, Pitch delta)
     }
 }
 
-void
-Music::transpose (Pitch delta)
-{
-  if (to_boolean (get_property ("untransposable")))
-    return;
-
-  transpose_mutable (mutable_property_alist_, delta);
-}
-
 void
 Music::set_spot (Input ip)
 {
index 7c8b13047d726e8f8d45fc2e44300402e038d31a..edb7986a51e7e5127980eb13fd84134db18805a6 100644 (file)
@@ -37,9 +37,24 @@ assq_tail (SCM key, SCM alist, SCM based_on = SCM_EOL)
   return SCM_BOOL_F;
 }
 
+SCM
+assv_tail (SCM key, SCM alist, SCM based_on = SCM_EOL)
+{
+  for (SCM p = alist; !scm_is_eq (p, based_on); p = scm_cdr (p))
+    {
+      if (scm_is_true (scm_eqv_p (scm_caar (p), key)))
+        return p;
+    }
+  return SCM_BOOL_F;
+}
+
 SCM
 assoc_tail (SCM key, SCM alist, SCM based_on = SCM_EOL)
 {
+  if (SCM_IMP (key))
+    return assq_tail (key, alist, based_on);
+  if (scm_is_number (key) || scm_is_true (scm_char_p (key)))
+    return assv_tail (key, alist, based_on);
   for (SCM p = alist; !scm_is_eq (p, based_on); p = scm_cdr (p))
     {
       if (ly_is_equal (scm_caar (p), key))
@@ -68,10 +83,8 @@ SCM assq_pop_x (SCM key, SCM *alist)
 SCM
 evict_from_alist (SCM key, SCM alist, SCM alist_end)
 {
-// shortcircuit to an eq-using assoc_tail variant when key is a symbol
-// (common case)
-  SCM p = scm_is_symbol (key) ? assq_tail (key, alist, alist_end)
-    : assoc_tail (key, alist, alist_end);
+  SCM p = assoc_tail (key, alist, alist_end);
+
   if (scm_is_true (p))
     return partial_list_copy (alist, p, scm_cdr (p));
   return alist;
@@ -112,7 +125,8 @@ nested_property_alist (SCM alist, SCM prop_path, SCM value)
   SCM rest = scm_cdr (prop_path);
   if (scm_is_pair (rest))
     {
-      SCM where = assq_tail (key, alist);
+      SCM where = assoc_tail (key, alist);
+
       if (scm_is_false (where))
         return scm_acons (key, nested_create_alist (rest, value), alist);
       return scm_acons (key, nested_property_alist (scm_cdar (where),
@@ -131,6 +145,19 @@ nested_property_alist (SCM alist, SCM prop_path, SCM value)
   return scm_acons (key, value, alist);
 }
 
+SCM
+nested_property (SCM alist, SCM prop_path, SCM fallback)
+{
+  for (; scm_is_pair (prop_path); prop_path = scm_cdr (prop_path))
+    {
+      SCM tail = assoc_tail (scm_car (prop_path), alist);
+      if (scm_is_false (tail))
+        return fallback;
+      alist = scm_cdar (tail);
+    }
+  return alist;
+}
+
 void
 set_nested_property (Grob *me, SCM big_to_small, SCM value)
 {
@@ -144,7 +171,12 @@ set_nested_property (Grob *me, SCM big_to_small, SCM value)
 // This converts an alist with nested overrides in it to a proper
 // alist.  The number of nested overrides is known in advance,
 // everything up to the last nested override is copied, the tail is
-// shared
+// shared.
+//
+// The first nalist index has to be a symbol since the conversion
+// relies on eq? comparisons, uses some special non-symbol values for
+// special purposes, and does validity checking indexed by symbols.
+// Subindexing can be done with equal?-comparable indexes, however.
 
 SCM
 nalist_to_alist (SCM nalist, int nested)
@@ -179,7 +211,7 @@ nalist_to_alist (SCM nalist, int nested)
             scm_set_cdr_x (pair, scm_cons (elt, scm_cdr (pair)));
           continue;
         }
-
+      assert (scm_is_symbol (key));
       // plain override: apply any known corresponding partials
       SCM pair = assq_pop_x (key, &partials);
       if (scm_is_true (pair))
index a72ea59ccdef770d8f70c32f942a42ee4fe8a6d9..471a36a41a4572eb1941eb83ad4a27b244cb3c26 100644 (file)
@@ -40,6 +40,8 @@ using namespace std;
 #include "lily-imports.hh"
 
 
+const char * const Paper_outputter::type_p_name_ = 0;
+
 Paper_outputter::Paper_outputter (SCM port, const string &format)
 {
   file_ = port;
index f09b437fa3a5b43709b033f7bbea22357f2e737b..b8849e8f4acaa79447fe0a81daa4d6e0d8a218d3 100644 (file)
@@ -119,6 +119,7 @@ FIXME:
 using namespace std;
 
 #include "book.hh"
+#include "context.hh"
 #include "context-def.hh"
 #include "context-mod.hh"
 #include "dimensions.hh"
@@ -232,7 +233,7 @@ SCM loc_on_music (Lily_parser *parser, Input loc, SCM arg);
 SCM make_chord_elements (Input loc, SCM pitch, SCM dur, SCM modification_list);
 SCM make_chord_step (SCM step, Rational alter);
 SCM make_simple_markup (SCM a);
-SCM make_duration (SCM t, int dots = 0);
+SCM make_duration (SCM t, int dots = 0, SCM factor = SCM_UNDEFINED);
 bool is_regular_identifier (SCM id, bool multiple=false);
 SCM try_string_variants (SCM pred, SCM str);
 int yylex (YYSTYPE *s, YYLTYPE *loc, Lily_parser *parser);
@@ -347,11 +348,13 @@ If we give names, Bison complains.
 %token CHORD_REPETITION
 %token CONTEXT_MOD_IDENTIFIER
 %token DRUM_PITCH
-%token PITCH_IDENTIFIER
+ /* Artificial token for durations in argument lists */
+%token DURATION_ARG
 %token DURATION_IDENTIFIER
 %token EVENT_IDENTIFIER
 %token EVENT_FUNCTION
 %token FRACTION
+%token LOOKUP_IDENTIFIER
 %token LYRIC_ELEMENT
 %token MARKUP_FUNCTION
 %token MARKUP_LIST_FUNCTION
@@ -361,6 +364,7 @@ If we give names, Bison complains.
 %token MUSIC_IDENTIFIER
 %token NOTENAME_PITCH
 %token NUMBER_IDENTIFIER
+%token PITCH_IDENTIFIER
 %token REAL
 %token RESTNAME
 %token SCM_ARG
@@ -490,6 +494,15 @@ toplevel_expression:
        }
        ;
 
+lookup:
+       LOOKUP_IDENTIFIER
+       | LOOKUP_IDENTIFIER '.' symbol_list_rev
+       {
+               $$ = loc_on_music (parser, @$,
+                                  nested_property ($1, scm_reverse_x ($3, SCM_EOL)));
+       }
+       ;
+
 embedded_scm_bare:
        SCM_TOKEN
        {
@@ -501,6 +514,7 @@ embedded_scm_bare:
 embedded_scm_active:
        SCM_IDENTIFIER
        | scm_function_call
+       | lookup
        ;
 
 embedded_scm_bare_arg:
@@ -518,6 +532,7 @@ embedded_scm_bare_arg:
        | book_block
        | bookpart_block
        | output_def
+       | lookup
        ;
 
 /* The generic version may end in music, or not */
@@ -525,6 +540,7 @@ embedded_scm_bare_arg:
 embedded_scm:
        embedded_scm_bare
        | scm_function_call
+       | lookup
        ;
 
 /* embedded_scm_arg is _not_ casting pitches to music by default, this
@@ -642,12 +658,12 @@ assignment:
                parser->lexer_->set_identifier ($1, $3);
                 $$ = SCM_UNSPECIFIED;
        }
-       | assignment_id property_path '=' identifier_init {
-               SCM path = scm_cons (scm_string_to_symbol ($1), $2);
-               parser->lexer_->set_identifier (path, $4);
+       | assignment_id '.' property_path '=' identifier_init {
+               SCM path = scm_cons (scm_string_to_symbol ($1), $3);
+               parser->lexer_->set_identifier (path, $5);
                 $$ = SCM_UNSPECIFIED;
        }
-       | assignment_id '.' property_path '=' identifier_init {
+       | assignment_id ',' property_path '=' identifier_init {
                SCM path = scm_cons (scm_string_to_symbol ($1), $3);
                parser->lexer_->set_identifier (path, $5);
                 $$ = SCM_UNSPECIFIED;
@@ -658,6 +674,14 @@ assignment:
 identifier_init:
        identifier_init_nonumber
        | number_expression
+       | symbol_list_part_bare '.' property_path
+       {
+               $$ = scm_reverse_x ($1, $3);
+       }
+       | symbol_list_part_bare ',' property_path
+       {
+               $$ = scm_reverse_x ($1, $3);
+       }
        | post_event_nofinger post_events
        {
                $$ = scm_reverse_x ($2, SCM_EOL);
@@ -1671,6 +1695,10 @@ symbol_list_arg:
        {
                $$ = scm_append (scm_list_2 ($1, scm_reverse_x ($3, SCM_EOL)));
        }
+       | SYMBOL_LIST ',' symbol_list_rev
+       {
+               $$ = scm_append (scm_list_2 ($1, scm_reverse_x ($3, SCM_EOL)));
+       }
        ;
 
 symbol_list_rev:
@@ -1679,6 +1707,10 @@ symbol_list_rev:
        {
                $$ = scm_append_x (scm_list_2 ($3, $1));
        }
+       | symbol_list_rev ',' symbol_list_part
+       {
+               $$ = scm_append_x (scm_list_2 ($3, $1));
+       }
        ;
 
 // symbol_list_part delivers elements in reverse copy.
@@ -1686,9 +1718,9 @@ symbol_list_rev:
 symbol_list_part:
        symbol_list_element
        {
-               $$ = try_string_variants (Lily::symbol_list_p, $1);
+               $$ = try_string_variants (Lily::key_list_p, $1);
                if (SCM_UNBNDP ($$)) {
-                       parser->parser_error (@1, _("not a symbol"));
+                       parser->parser_error (@1, _("not a key"));
                        $$ = SCM_EOL;
                } else
                        $$ = scm_reverse ($$);
@@ -1699,8 +1731,24 @@ symbol_list_part:
 symbol_list_element:
        STRING
        | embedded_scm_bare
+       | UNSIGNED
        ;
 
+symbol_list_part_bare:
+       STRING
+       {
+               $$ = try_string_variants (Lily::key_list_p, $1);
+               if (SCM_UNBNDP ($$)) {
+                       parser->parser_error (@1, _("not a key"));
+                       $$ = SCM_EOL;
+               } else
+                       $$ = scm_reverse ($$);
+       }
+       | UNSIGNED
+       {
+               $$ = scm_list_1 ($1);
+       }
+       ;
 
 function_arglist_nonbackup:
        function_arglist_common
@@ -1756,7 +1804,11 @@ function_arglist_nonbackup:
                                               (parser, @3, $3),
                                               $1, $2);
        }
-       | function_arglist_nonbackup_reparse REPARSE duration_length
+       | function_arglist_nonbackup_reparse REPARSE multiplied_duration
+       {
+               $$ = check_scheme_arg (parser, @3, $3, $1, $2);
+       }
+       | function_arglist_nonbackup_reparse REPARSE reparsed_rhythm
        {
                $$ = check_scheme_arg (parser, @3, $3, $1, $2);
        }
@@ -1778,6 +1830,20 @@ function_arglist_nonbackup:
        }
        ;
 
+
+reparsed_rhythm:
+       DURATION_ARG dots multipliers post_events
+       {
+               $$ = make_music_from_simple (parser, @$,
+                                            make_duration ($1, scm_to_int ($2), $3));
+               Music *m = unsmob<Music> ($$);
+               assert (m);
+               if (scm_is_pair ($4))
+                       m->set_property ("articulations",
+                                        scm_reverse_x ($4, SCM_EOL));
+       } %prec ':'
+       ;
+
 function_arglist_nonbackup_reparse:
        EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup SCM_IDENTIFIER
        {
@@ -1852,18 +1918,36 @@ function_arglist_nonbackup_reparse:
        {
                $$ = $3;
                if (scm_is_true (scm_call_1 ($2, $4)))
+                       // May be 3 \cm or similar
                        MYREPARSE (@4, $2, REAL, $4);
+               else if (scm_is_true (scm_call_1 ($2, scm_list_1 ($4))))
+                       MYREPARSE (@4, $2, SYMBOL_LIST, scm_list_1 ($4));
                else {
                        SCM d = make_duration ($4);
-                       if (SCM_UNBNDP (d) || scm_is_false (scm_call_1 ($2, d)))
-                               MYREPARSE (@4, $2, REAL, $4); // trigger error
-                       else
-                               MYREPARSE (@4, $2, DURATION_IDENTIFIER, d);
+                       if (!SCM_UNBNDP (d)) {
+                               if (scm_is_true (scm_call_1 ($2, d)))
+                                       MYREPARSE (@4, $2, DURATION_IDENTIFIER, d);
+                               else if (scm_is_true
+                                        (scm_call_1
+                                         ($2, make_music_from_simple (parser, @4, d))))
+                                       MYREPARSE (@4, $2, DURATION_ARG, d);
+                               else
+                                       MYREPARSE (@4, $2, SCM_ARG, $4); // trigger error
+                       } else
+                               MYREPARSE (@4, $2, SCM_ARG, $4); // trigger error
                }
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup DURATION_IDENTIFIER {
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup DURATION_IDENTIFIER
+       {
                $$ = $3;
-               MYREPARSE (@4, $2, DURATION_IDENTIFIER, $4);
+               if (scm_is_true (scm_call_1 ($2, $4)))
+                       MYREPARSE (@4, $2, DURATION_IDENTIFIER, $4);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($2, make_music_from_simple (parser, @4, $4))))
+                       MYREPARSE (@4, $2, DURATION_ARG, $4);
+               else
+                       MYREPARSE (@4, $2, SCM_ARG, $4); // trigger error
        }
        ;
 
@@ -1940,19 +2024,28 @@ function_arglist_backup:
        }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup UNSIGNED
        {
+               $$ = $3;
                if (scm_is_true (scm_call_1 ($2, $4)))
-               {
+                       // May be 3 \cm or similar
                        MYREPARSE (@4, $2, REAL, $4);
-                       $$ = $3;
-               } else {
+               else if (scm_is_true (scm_call_1 ($2, scm_list_1 ($4))))
+                       MYREPARSE (@4, $2, SYMBOL_LIST, scm_list_1 ($4));
+               else {
                        SCM d = make_duration ($4);
-                       if (SCM_UNBNDP (d) || scm_is_false (scm_call_1 ($2, d)))
-                       {
+                       if (!SCM_UNBNDP (d)) {
+                               if (scm_is_true (scm_call_1 ($2, d)))
+                                       MYREPARSE (@4, $2, DURATION_IDENTIFIER, d);
+                               else if (scm_is_true
+                                        (scm_call_1
+                                         ($2, make_music_from_simple (parser, @4, d))))
+                                       MYREPARSE (@4, $2, DURATION_ARG, d);
+                               else {
+                                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                                       MYBACKUP (UNSIGNED, $4, @4);
+                               }
+                       } else {
                                $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
                                MYBACKUP (UNSIGNED, $4, @4);
-                       } else {
-                               MYREPARSE (@4, $2, DURATION_IDENTIFIER, d);
-                               $$ = $3;
                        }
                }
        }
@@ -2019,11 +2112,14 @@ function_arglist_backup:
        }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup DURATION_IDENTIFIER
        {
+               $$ = $3;
                if (scm_is_true (scm_call_1 ($2, $4)))
-               {
                        MYREPARSE (@4, $2, DURATION_IDENTIFIER, $4);
-                       $$ = $3;
-               } else {
+               else if (scm_is_true
+                        (scm_call_1
+                         ($2, make_music_from_simple (parser, @4, $4))))
+                       MYREPARSE (@4, $2, DURATION_ARG, $4);
+               else {
                        $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
                        MYBACKUP (DURATION_IDENTIFIER, $4, @4);
                }
@@ -2073,7 +2169,12 @@ function_arglist_backup:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $1, $2);
        }
-       | function_arglist_backup REPARSE duration_length
+       | function_arglist_backup REPARSE multiplied_duration
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_backup REPARSE reparsed_rhythm
        {
                $$ = check_scheme_arg (parser, @3,
                                       $3, $1, $2);
@@ -2204,7 +2305,12 @@ function_arglist_common:
                $$ = check_scheme_arg (parser, @3,
                                       $3, $1, $2);
        }
-       | function_arglist_common_reparse REPARSE duration_length
+       | function_arglist_common_reparse REPARSE multiplied_duration
+       {
+               $$ = check_scheme_arg (parser, @3,
+                                      $3, $1, $2);
+       }
+       | function_arglist_common_reparse REPARSE reparsed_rhythm
        {
                $$ = check_scheme_arg (parser, @3,
                                       $3, $1, $2);
@@ -2292,19 +2398,36 @@ function_arglist_common_reparse:
        {
                $$ = $2;
                if (scm_is_true (scm_call_1 ($1, $3)))
+                       // May be 3 \cm or similar
                        MYREPARSE (@3, $1, REAL, $3);
+               else if (scm_is_true (scm_call_1 ($1, scm_list_1 ($3))))
+                       MYREPARSE (@3, $1, SYMBOL_LIST, scm_list_1 ($3));
                else {
                        SCM d = make_duration ($3);
-                       if (SCM_UNBNDP (d) || scm_is_false (scm_call_1 ($1, d)))
-                               MYREPARSE (@3, $1, REAL, $3);
-                       else
-                               MYREPARSE (@3, $1, DURATION_IDENTIFIER, d);
+                       if (!SCM_UNBNDP (d)) {
+                               if (scm_is_true (scm_call_1 ($1, d)))
+                                       MYREPARSE (@3, $1, DURATION_IDENTIFIER, d);
+                               else if (scm_is_true
+                                        (scm_call_1
+                                         ($1, make_music_from_simple (parser, @3, d))))
+                                       MYREPARSE (@3, $1, DURATION_ARG, d);
+                               else
+                                       MYREPARSE (@3, $1, SCM_ARG, $3); // trigger error
+                       } else
+                               MYREPARSE (@3, $1, SCM_ARG, $3); // trigger error
                }
        }
        | EXPECT_SCM function_arglist_optional DURATION_IDENTIFIER
        {
                $$ = $2;
-               MYREPARSE (@3, $1, DURATION_IDENTIFIER, $3);
+               if (scm_is_true (scm_call_1 ($1, $3)))
+                       MYREPARSE (@3, $1, DURATION_IDENTIFIER, $3);
+               else if (scm_is_true
+                        (scm_call_1
+                         ($1, make_music_from_simple (parser, @3, $3))))
+                       MYREPARSE (@3, $1, DURATION_ARG, $3);
+               else
+                       MYREPARSE (@3, $1, SCM_ARG, $3); // trigger error
        }
        | EXPECT_SCM function_arglist_optional '-' UNSIGNED
        {
@@ -2474,9 +2597,6 @@ property_path:
        symbol_list_rev  {
                $$ = scm_reverse_x ($1, SCM_EOL);
        }
-       | symbol_list_rev property_path {
-               $$ = scm_reverse_x ($1, $2);
-       }
        ;
 
 property_operation:
@@ -2486,7 +2606,7 @@ property_operation:
        | UNSET symbol {
                $$ = scm_list_2 (ly_symbol2scm ("unset"), $2);
        }
-       | OVERRIDE property_path '=' scalar {
+       | OVERRIDE revert_arg '=' scalar {
                if (scm_ilength ($2) < 2) {
                        parser->parser_error (@2, _("bad grob property path"));
                        $$ = SCM_UNDEFINED;
@@ -2550,6 +2670,10 @@ revert_arg_part:
        {
                $$ = scm_append_x (scm_list_2 ($5, $3));
        }
+       | revert_arg_backup BACKUP SCM_ARG ',' symbol_list_part
+       {
+               $$ = scm_append_x (scm_list_2 ($5, $3));
+       }
        | revert_arg_backup BACKUP SCM_ARG symbol_list_part
        {
                $$ = scm_append_x (scm_list_2 ($4, $3));
@@ -2782,6 +2906,14 @@ scalar:
                $$ = scm_difference ($2, SCM_UNDEFINED);
        }
        | string
+       | symbol_list_part_bare '.' property_path
+       {
+               $$ = scm_reverse_x ($1, $3);
+       }
+       | symbol_list_part_bare ',' property_path
+       {
+               $$ = scm_reverse_x ($1, $3);
+       }
        ;
 
 event_chord:
@@ -3179,12 +3311,6 @@ script_dir:
        | '-'   { $$ = SCM_UNDEFINED; }
        ;
 
-duration_length:
-       multiplied_duration {
-               $$ = $1;
-       }
-       ;
-
 maybe_notemode_duration:
        {
                $$ = SCM_UNDEFINED;
@@ -3214,26 +3340,13 @@ steno_duration:
                }
        }
        | DURATION_IDENTIFIER dots      {
-               Duration *d = unsmob<Duration> ($1);
-               Duration k (d->duration_log (),
-                            d->dot_count () + scm_to_int ($2));
-               k = k.compressed (d->factor ());
-                scm_remember_upto_here_1 ($1);
-               $$ = k.smobbed_copy ();
+               $$ = make_duration ($1, scm_to_int ($2));
        }
        ;
 
 multiplied_duration:
-       steno_duration {
-               $$ = $1;
-       }
-       | multiplied_duration '*' UNSIGNED {
-               $$ = unsmob<Duration> ($$)->compressed (scm_to_int ($3)).smobbed_copy ();
-       }
-       | multiplied_duration '*' FRACTION {
-               Rational  m (scm_to_int (scm_car ($3)), scm_to_int (scm_cdr ($3)));
-
-               $$ = unsmob<Duration> ($$)->compressed (m).smobbed_copy ();
+       steno_duration multipliers {
+               $$ = make_duration ($1, 0, $2);
        }
        ;
 
@@ -3246,6 +3359,28 @@ dots:
        }
        ;
 
+multipliers:
+       /* empty */
+       {
+               $$ = SCM_UNDEFINED;
+       }
+       | multipliers '*' UNSIGNED
+       {
+               if (!SCM_UNBNDP ($1))
+                       $$ = scm_product ($1, $3);
+               else
+                       $$ = $3;
+       }
+       | multipliers '*' FRACTION
+       {
+               if (!SCM_UNBNDP ($1))
+                       $$ = scm_product ($1, scm_divide (scm_car ($3),
+                                                         scm_cdr ($3)));
+               else
+                       $$ = scm_divide (scm_car ($3), scm_cdr ($3));
+       }
+       ;
+
 tremolo_type:
        ':'     {
                $$ = scm_from_int (parser->default_tremolo_type_);
@@ -3943,8 +4078,12 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
        } else if (unsmob<Score> (sid)) {
                *destination = unsmob<Score> (sid)->clone ()->unprotect ();
                return SCM_IDENTIFIER;
+       } else if (scm_is_pair (sid)
+                  && scm_is_pair (scm_car (sid))
+                  && scm_is_true (Lily::key_p (scm_caar (sid)))) {
+               *destination = sid;
+               return LOOKUP_IDENTIFIER;
        }
-
        return -1;
 }
 
@@ -4014,7 +4153,7 @@ try_string_variants (SCM pred, SCM str)
        if (scm_is_true (scm_call_1 (pred, str)))
                return str;
        // a symbol may be interpreted as a list of symbols if it helps
-       if (scm_is_symbol (str)) {
+       if (scm_is_true (Lily::key_p (str))) {
                str = scm_list_1 (str);
                if (scm_is_true (scm_call_1 (pred, str)))
                        return str;
@@ -4028,6 +4167,10 @@ try_string_variants (SCM pred, SCM str)
                return SCM_UNDEFINED;
 
        str = scm_string_split (str, SCM_MAKE_CHAR ('.'));
+       for (SCM p = str; scm_is_pair (p); p = scm_cdr (p))
+               scm_set_car_x (p, scm_string_split (scm_car (p),
+                                                   SCM_MAKE_CHAR (',')));
+       str = scm_append_x (str);
        for (SCM p = str; scm_is_pair (p); p = scm_cdr (p))
                scm_set_car_x (p, scm_string_to_symbol (scm_car (p)));
 
@@ -4066,7 +4209,8 @@ is_regular_identifier (SCM id, bool multiple)
              || (c >= 'A' && c <= 'Z')
              || c > 0x7f)
                  middle = true;
-         else if (middle && (c == '-' || c == '_' || (multiple && c == '.')))
+         else if (middle && (c == '-' || c == '_' || (multiple &&
+                                                      (c == '.' || c == ','))))
                  middle = false;
          else
                  return false;
@@ -4092,6 +4236,14 @@ make_music_from_simple (Lily_parser *parser, Input loc, SCM simple)
                        n->set_property ("pitch", simple);
                        return n->unprotect ();
                }
+               SCM d = simple;
+               if (scm_is_integer (simple))
+                       d = make_duration (simple);
+               if (unsmob<Duration> (d)) {
+                       Music *n = MY_MAKE_MUSIC ("NoteEvent", loc);
+                       n->set_property ("duration", d);
+                       return n->unprotect ();
+               }
                return simple;
        } else if (parser->lexer_->is_lyric_state ()) {
                if (Text_interface::is_markup (simple))
@@ -4124,13 +4276,29 @@ make_simple_markup (SCM a)
 }
 
 SCM
-make_duration (SCM d, int dots)
+make_duration (SCM d, int dots, SCM factor)
 {
-       int t = scm_to_int (d);
-       if (t > 0 && (t & (t-1)) == 0)
-               return Duration (intlog2 (t), dots).smobbed_copy ();
-       else
-               return SCM_UNDEFINED;
+       Duration k;
+
+       if (Duration *dur = unsmob<Duration> (d)) {
+               if (!dots && SCM_UNBNDP (factor))
+                       return d;
+               k = *dur;
+               if (dots)
+                       k = Duration (k.duration_log (), k.dot_count () + dots)
+                               .compressed (k.factor ());
+       } else {
+               int t = scm_to_int (d);
+               if (t > 0 && (t & (t-1)) == 0)
+                       k = Duration (intlog2 (t), dots);
+               else
+                       return SCM_UNDEFINED;
+       }
+
+       if (!SCM_UNBNDP (factor))
+               k = k.compressed (ly_scm2rational (factor));
+
+       return k.smobbed_copy ();
 }
 
 SCM
index c4336250111170df3e40d0d58085cb645403ef37..885e1bd3b658ef593f0418a19b66449a881a0e77 100644 (file)
@@ -277,8 +277,7 @@ Quote_iterator::process (Moment m)
                   Pitch diff = pitch_interval (mp, qp);
                   ev = ev->clone ();
                   ev->make_transposable ();
-
-                  transpose_mutable (ev->get_property_alist (true), diff);
+                  ev->transpose (diff);
                   transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);
                 }
               quote_outlet_.get_context ()->event_source ()->broadcast (ev);
index 02c1dc5f8e2daca09b480ac977049c66e70d68e3..d6f566b9ed57517d28ae1ef2859d25438deff275 100644 (file)
@@ -90,6 +90,8 @@ LY_DEFINE (ly_set_default_scale, "ly:set-default-scale",
   return SCM_UNSPECIFIED;
 }
 
+const char * const Scale::type_p_name_ = 0;
+
 int
 Scale::step_count () const
 {
index dd8f9257b933a93d9bfb92b7593180aa3cb16f7d..3eb40ada7bfe929576fc50cb1c081d368951b488 100644 (file)
@@ -21,6 +21,8 @@
 
 #include <cassert>
 
+const char * const Scheme_hash_table::type_p_name_ = 0;
+
 SCM
 Scheme_hash_table::make_smob ()
 {
index b42300f47a7efc081ec34686f533088d7b1cc9bc..5d865fe706e565e1fa03365a24daa3ee3174a8a3 100644 (file)
@@ -86,3 +86,28 @@ Sources::~Sources ()
     }
 }
 
+#include "lily-parser.hh"
+#include "lily-lexer.hh"
+#include "lily-imports.hh"
+#include "fluid.hh"
+
+LY_DEFINE (ly_source_files, "ly:source-files", 0, 1, 0,
+           (SCM parser_smob),
+           "A list of LilyPond files being processed;"
+           "a PARSER may optionally be specified.")
+{
+
+  if (SCM_UNBNDP (parser_smob))
+    parser_smob = scm_fluid_ref (Lily::f_parser);
+  Lily_parser *parser = LY_ASSERT_SMOB (Lily_parser, parser_smob, 1);
+  Includable_lexer *lex = parser->lexer_;
+
+  SCM lst = SCM_EOL;
+  for (vector<string>::const_iterator
+       i = lex->file_name_strings_.begin();
+       i != lex->file_name_strings_.end(); ++i)
+       {
+         lst = scm_cons (ly_string2scm (*i), lst);
+       }
+  return scm_reverse_x (lst, SCM_EOL);
+}
index 987a879053dd808f7775c4b52ae94eb1d7438b09..3da186954132a5cfc3940471e116671bac07faf0 100644 (file)
@@ -104,10 +104,10 @@ Stencil::rotate_degrees_absolute (Real a, Offset absolute_off)
    *         *this = rotated()
    */
 
-  expr_ = scm_list_n (ly_symbol2scm ("rotate-stencil"),
+  expr_ = scm_list_3 (ly_symbol2scm ("rotate-stencil"),
                       scm_list_2 (scm_from_double (a),
                                   scm_cons (scm_from_double (x), scm_from_double (y))),
-                      expr_, SCM_UNDEFINED);
+                      expr_);
 
   /*
    * Calculate the new bounding box
@@ -167,9 +167,9 @@ Stencil::translate (Offset o)
     }
 
   if (!scm_is_null (expr_))
-    expr_ = scm_list_n (ly_symbol2scm ("translate-stencil"),
+    expr_ = scm_list_3 (ly_symbol2scm ("translate-stencil"),
                         ly_offset2scm (o),
-                        expr_, SCM_UNDEFINED);
+                        expr_);
   dim_.translate (o);
 }
 
index f34f494301345329cad032a90c5f6bb39b0db6cd..249fdce04a30820016bee93d980236bee636ef00 100644 (file)
@@ -87,6 +87,8 @@ Text_spanner_engraver::process_music ()
         {
           current_event_ = event_drul_[START];
           span_ = make_spanner ("TextSpanner", event_drul_[START]->self_scm ());
+          if (Direction d = to_dir (current_event_->get_property ("direction")))
+            span_->set_property ("direction", scm_from_int (d));
 
           Side_position_interface::set_axis (span_, Y_AXIS);
           event_drul_[START] = 0;
index 10bf06407598f452fffffd5b034caa42f7a2f7dc..41d5a171827ceb5bdf065d3eaf5eeebd0bcf1884 100644 (file)
@@ -21,6 +21,8 @@
 #include "engraver.hh"
 
 
+const char * const Engraver_dispatch_list::type_p_name_ = 0;
+
 void
 Engraver_dispatch_list::apply (Grob_info gi)
 {
index 0e389d4bcd087bf291413155e3398436393b9a17..7a7d6d48d16d3c139aca38ad9f0f38f307b5debb 100644 (file)
@@ -25,6 +25,7 @@
 class Unpure_pure_call : public Smob1<Unpure_pure_call>
 {
 public:
+  static const char * const type_p_name_; // = 0
   // Smob procedures unfortunately can only take at most 3 SCM
   // arguments.  Otherwise we could use a "3, 0, 1" call signature and
   // not require an argument count check of our own.
@@ -37,6 +38,8 @@ public:
   }
 };
 
+const char * const Unpure_pure_call::type_p_name_ = 0;
+
 SCM
 Unpure_pure_container::pure_part () const
 {
index 85a2c127ab6b570da98256a930b9e1d0bd0bd794..d12660579519601dfb43aff0a1ebd31be75b3478 100644 (file)
@@ -129,7 +129,7 @@ Volta_repeat_iterator::next_element (bool side_effect)
           else
             {
 
-              add_repeat_command (scm_list_n (ly_symbol2scm ("volta"), SCM_BOOL_F, SCM_UNDEFINED));
+              add_repeat_command (scm_list_2 (ly_symbol2scm ("volta"), SCM_BOOL_F));
 
               if (done_count_ - 1 < alt_count_)
                 {
@@ -148,8 +148,8 @@ Volta_repeat_iterator::next_element (bool side_effect)
             repstr = "1.--" + ::to_string (rep_count_ - alt_count_ + done_count_) + ".";
 
           if (done_count_ <= alt_count_)
-            add_repeat_command (scm_list_n (ly_symbol2scm ("volta"),
-                                            ly_string2scm (repstr), SCM_UNDEFINED));
+            add_repeat_command (scm_list_2 (ly_symbol2scm ("volta"),
+                                            ly_string2scm (repstr)));
         }
       else
         add_repeat_command (ly_symbol2scm ("end-repeat"));
index a36bc5e8f0ba7e5092227aea60261fb65e018cc5..7381ab5caa7fc0200326f4ffd0556560d5d2691b 100644 (file)
@@ -23,7 +23,7 @@ That's it.  For more information, visit http://lilypond.org .
 
 %}
 
-\version "2.19.36"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.40"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index 4d27606c5239cc3052308908c89782db7d27ad5a..6225500a8f3b3406c405ff39437f3db9173671c7 100644 (file)
@@ -32,7 +32,7 @@ Good luck with LilyPond!  Happy engraving.
 
 %}
 
-\version "2.19.36"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.40"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index 62559ca40fb6df178f3ab3b9d18954e6ad50769f..6421d9efa1f3fa2aa990743062a3dbb1a5c13521 100644 (file)
   \accepts "ChoirStaff"
   \accepts "ChordNames"
   \accepts "DrumStaff"
+  \accepts "Dynamics"
   \accepts "FiguredBass"
   \accepts "GrandStaff"
   \accepts "Lyrics"
@@ -827,6 +828,10 @@ context."
   \consists "Pitch_squash_engraver"
   squashedPosition = 0
 
+  %% generate no ledger lines, needed for staves with custom
+  %% line positions and ledger lines that appear inside the staff
+  \override NoteHead.no-ledgers = ##t
+
   %% the engravers that control the 'busy' flags for note-onsets and melismata
   \consists "Grob_pq_engraver"
   \consists "Tie_engraver"
index c8d0dfe2c34f000fb156f5e53cc6d8d0585315de..96f45ded93ccc3f784eeaea6e1ebe8a61764f2b1 100644 (file)
@@ -2,6 +2,8 @@
 
 #(use-modules (scm graphviz))
 
+#(use-modules (ice-9 regex))
+
 #(define last-grob-action '())
 
 #(define sym-blacklist '())
 
 #(define graph (make-empty-graph (ly:parser-output-name)))
 
-#(define (grob-name g)
-  (let* ((meta (ly:grob-property g 'meta))
-         (name-pair (assq 'name meta)))
-   (if (pair? name-pair)
-       (cdr name-pair)
-       #f)))
-
 % an event is relevant if
 % (it is on some whitelist or all whitelists are empty)
 % and
     (or
      (= 0 (length file-line-whitelist) (length sym-whitelist) (length grob-whitelist))
      (memq prop sym-whitelist)
-     (memq (grob-name grob) grob-whitelist)
+     (memq (grob::name grob) grob-whitelist)
      (member file-line file-line-whitelist))
     (and
      (not (memq prop sym-blacklist))
-     (not (memq (grob-name grob) grob-blacklist))
+     (not (memq (grob::name grob) grob-blacklist))
      (not (member file-line file-line-blacklist))))))
 
 #(define (grob-event-node grob label cluster)
 
 #(define (grob-mod grob file line func prop val)
   (let* ((val-str (truncate-value val))
-         (label (format #f "~a\\n~a:~a\\n~a <- ~a" (grob-name grob) file line prop val-str)))
+         (label (format #f "~a\\n~a:~a\\n~a <- ~a" (grob::name grob) file line prop val-str))
+         ;; to keep escaped "\"" we need to transform it to "\\\""
+         ;; otherwise the final pdf-creation will break
+         (escaped-label
+           (regexp-substitute/global #f "\"" label 'pre "\\\"" 'post)))
    (if (relevant? grob file line prop)
-       (grob-event-node grob label file))))
+       (grob-event-node grob escaped-label file))))
 
 #(define (grob-cache grob prop callback value)
   (let* ((val-str (truncate-value value))
-         (label (format #f "caching ~a.~a\\n~a -> ~a" (grob-name grob) prop callback value)))
+         (label (format #f "caching ~a.~a\\n~a -> ~a" (grob::name grob) prop callback value)))
    (if (relevant? grob #f #f prop)
        (grob-event-node grob label #f))))
 
 #(define (grob-create grob file line func)
-  (let ((label (format #f "~a\\n~a:~a" (grob-name grob) file line)))
+  (let ((label (format #f "~a\\n~a:~a" (grob::name grob) file line)))
    (grob-event-node grob label file)))
 
 #(ly:set-grob-modification-callback grob-mod)
index 77ca2d0b007bb489e96b3aca2e5a76f6e20d003e..a23d154fd814d7e1ebdfe4c2de03afb0ab0659d3 100644 (file)
@@ -93,7 +93,7 @@ markups), or inside a score.")
 
 alterBroken =
 #(define-music-function (property arg item)
-  (symbol-list-or-symbol? list? symbol-list-or-music?)
+  (key-list-or-symbol? list? key-list-or-music?)
   (_i "Override @var{property} for pieces of broken spanner @var{item}
 with values @var{arg}.  @var{item} may either be music in the form of
 a starting spanner event, or a symbol list in the form
@@ -908,7 +908,7 @@ octaveCheck =
 
 offset =
 #(define-music-function (property offsets item)
-  (symbol-list-or-symbol? scheme? symbol-list-or-music?)
+  (symbol-list-or-symbol? scheme? key-list-or-music?)
    (_i "Offset the default value of @var{property} of @var{item} by
 @var{offsets}.  If @var{item} is a string, the result is
 @code{\\override} for the specified grob type.  If @var{item} is
@@ -996,7 +996,7 @@ of @var{base-moment}, @var{beat-structure}, and @var{beam-exceptions}.")
 
 overrideProperty =
 #(define-music-function (grob-property-path value)
-   (symbol-list? scheme?)
+   (key-list? scheme?)
 
    (_i "Set the grob property specified by @var{grob-property-path} to
 @var{value}.  @var{grob-property-path} is a symbol list of the form
@@ -1339,7 +1339,7 @@ print @var{secondary-note} as a stemless note head in parentheses.")
 
 propertyOverride =
 #(define-music-function (grob-property-path value)
-   (symbol-list? scheme?)
+   (key-list? scheme?)
    (_i "Set the grob property specified by @var{grob-property-path} to
 @var{value}.  @var{grob-property-path} is a symbol list of the form
 @code{Context.GrobName.property} or @code{GrobName.property}, possibly
@@ -1362,7 +1362,7 @@ command.")
 
 propertyRevert =
 #(define-music-function (grob-property-path)
-   (symbol-list?)
+   (key-list?)
    (_i "Revert the grob property specified by @var{grob-property-path} to
 its previous value.  @var{grob-property-path} is a symbol list of the form
 @code{Context.GrobName.property} or @code{GrobName.property}, possibly
@@ -1399,7 +1399,7 @@ Scheme as a substitute for the built-in @code{\\set} command.")
 
 propertyTweak =
 #(define-music-function (prop value item)
-   (symbol-list-or-symbol? scheme? symbol-list-or-music?)
+   (key-list-or-symbol? scheme? key-list-or-music?)
    (_i "Add a tweak to the following @var{item}, usually music.
 This generally behaves like @code{\\tweak} but will turn into an
 @code{\\override} when @var{item} is a symbol list.
@@ -1630,7 +1630,7 @@ a context modification duplicating their effect.")
 
 shape =
 #(define-music-function (offsets item)
-   (list? symbol-list-or-music?)
+   (list? key-list-or-music?)
    (_i "Offset control-points of @var{item} by @var{offsets}.  The
 argument is a list of number pairs or list of such lists.  Each
 element of a pair represents an offset to one of the coordinates of a
@@ -1887,7 +1887,7 @@ command without explicit @samp{tuplet-span}, use
 
 tweak =
 #(define-music-function (prop value music)
-   (symbol-list-or-symbol? scheme? ly:music?)
+   (key-list-or-symbol? scheme? ly:music?)
    (_i "Add a tweak to the following @var{music}.
 Layout objects created by @var{music} get their property @var{prop}
 set to @var{value}.  If @var{prop} has the form @samp{Grob.property}, like with
index 7f7f4a5cc2f17ae13a1082b3f14065d4c3032351..81325dc46e0a23a1cd0dd4bec93747666bded4e9 100644 (file)
@@ -238,7 +238,19 @@ slash_thick# := 2/3 * 0.48 staff_space#;
 % the lines.  If you like that, modify overdone heads (unit:
 % stafflinethickness).
 %
-overdone_heads = 0.0;
+
+%% FIXME
+% There is a problem with noteheads slightly extending beyond the staff
+% lines.  This is due to the fact that staff_space + stafflinethickness
+% is sometimes an odd number, so the nothead height and depth are not
+% integers.  Then, when the font is converted to an outline font, the
+% system rounds up the 0.5 left over from dividing the notehead height
+% in two, and the notehead extends slightly beyond the staff line.
+% In order to resolve this problem, we use overdone_heads to slightly
+% reduce the notehead height.  Empirically, we have determined that 
+% reducing by 10% of stafflinethickness solves the problem.
+
+overdone_heads = -0.1;
 noteheight# := staff_space# + (1 + overdone_heads) * stafflinethickness#;
 
 define_pixels (slash_thick);
index 91af9420db648b99cca1a9741fd9fe7c588da2bf..45f8d4c26b1205c24cafd0b538acf02d4192ea6c 100644 (file)
@@ -6,10 +6,10 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.19.36\n"
+"Project-Id-Version: lilypond 2.19.40\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
 "lilypond.bugs\n"
-"POT-Creation-Date: 2016-01-31 16:19+0000\n"
+"POT-Creation-Date: 2016-04-17 12:02+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -839,52 +839,52 @@ msgstr ""
 msgid "Language does not support microtones contained in the piece"
 msgstr ""
 
-#: musicexp.py:491
+#: musicexp.py:497
 msgid "Tuplet brackets of curved shape are not correctly implemented"
 msgstr ""
 
-#: musicexp.py:677
+#: musicexp.py:683
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr ""
 
-#: musicexp.py:686
+#: musicexp.py:692
 msgid "encountered repeat without body"
 msgstr ""
 
 #. no self.elements!
-#: musicexp.py:856
+#: musicexp.py:862
 #, python-format
 msgid "Grace note with no following music: %s"
 msgstr ""
 
-#: musicexp.py:1018
+#: musicexp.py:1024
 #, python-format
 msgid "Invalid octave shift size found: %s. Using no shift."
 msgstr ""
 
-#: musicexp.py:1476
+#: musicexp.py:1482
 #, python-format
 msgid "Unable to convert alteration %s to a lilypond expression"
 msgstr ""
 
 #. TODO: Handle pieces without a time signature!
-#: musicxml.py:361
+#: musicxml.py:362
 msgid "Senza-misura time signatures are not yet supported!"
 msgstr ""
 
-#: musicxml.py:379
+#: musicxml.py:380
 msgid "Unable to interpret time signature! Falling back to 4/4."
 msgstr ""
 
-#: musicxml.py:435
+#: musicxml.py:436
 #, python-format
 msgid ""
 "Key alteration octave given for a non-existing alteration nr. %s, available "
 "numbers: %s!"
 msgstr ""
 
-#: musicxml.py:523
+#: musicxml.py:524
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr ""
@@ -1682,7 +1682,7 @@ msgstr ""
 msgid "natural alteration glyph not found"
 msgstr ""
 
-#: all-font-metrics.cc:159
+#: all-font-metrics.cc:161
 #, c-format
 msgid "cannot find font: `%s'"
 msgstr ""
@@ -1808,8 +1808,8 @@ msgstr ""
 msgid "cannot find line breaking that satisfies constraints"
 msgstr ""
 
-#: context-property.cc:45
-msgid "need symbol arguments for \\override and \\revert"
+#: context-property.cc:46
+msgid "need symbol argument for \\override and \\revert"
 msgstr ""
 
 #: context.cc:143
@@ -2131,7 +2131,7 @@ msgstr ""
 msgid "identifier name is a keyword: `%s'"
 msgstr ""
 
-#: lily-lexer.cc:299 lily-lexer.cc:312
+#: lily-lexer.cc:301 lily-lexer.cc:314
 #, c-format
 msgid "%s:EOF"
 msgstr ""
@@ -2177,7 +2177,7 @@ msgstr ""
 msgid "Parsing..."
 msgstr ""
 
-#: lookup.cc:178
+#: lookup.cc:177
 #, c-format
 msgid "Not drawing a box with negative dimension, %.2f by %.2f."
 msgstr ""
@@ -2990,7 +2990,7 @@ msgstr ""
 msgid "already have a text spanner"
 msgstr ""
 
-#: text-spanner-engraver.cc:130
+#: text-spanner-engraver.cc:132
 msgid "unterminated text spanner"
 msgstr ""
 
@@ -3103,119 +3103,119 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:476 parser.yy:947 parser.yy:1028 parser.yy:1248
+#: parser.yy:480 parser.yy:971 parser.yy:1052 parser.yy:1272
 msgid "bad expression type"
 msgstr ""
 
-#: parser.yy:859 parser.yy:1458 parser.yy:1503
+#: parser.yy:883 parser.yy:1482 parser.yy:1527
 msgid "not a context mod"
 msgstr ""
 
-#: parser.yy:1054
+#: parser.yy:1078
 msgid "Missing music in \\score"
 msgstr ""
 
-#: parser.yy:1091
+#: parser.yy:1115
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:1126
+#: parser.yy:1150
 msgid "Spurious expression in \\score"
 msgstr ""
 
-#: parser.yy:1156
+#: parser.yy:1180
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1331
+#: parser.yy:1355
 msgid "music expected"
 msgstr ""
 
-#: parser.yy:1341 parser.yy:1375
+#: parser.yy:1365 parser.yy:1399
 msgid "unexpected post-event"
 msgstr ""
 
-#: parser.yy:1383
+#: parser.yy:1407
 msgid "Ignoring non-music expression"
 msgstr ""
 
-#: parser.yy:1691
-msgid "not a symbol"
+#: parser.yy:1723 parser.yy:1742
+msgid "not a key"
 msgstr ""
 
-#: parser.yy:2491 parser.yy:2605 parser.yy:2618 parser.yy:2627
+#: parser.yy:2611 parser.yy:2729 parser.yy:2742 parser.yy:2751
 msgid "bad grob property path"
 msgstr ""
 
-#: parser.yy:2585
+#: parser.yy:2709
 msgid "only \\consists and \\remove take non-string argument."
 msgstr ""
 
-#: parser.yy:2646
+#: parser.yy:2770
 msgid "bad context property path"
 msgstr ""
 
-#: parser.yy:2731
+#: parser.yy:2855
 msgid "markup expected"
 msgstr ""
 
-#: parser.yy:2743
+#: parser.yy:2867
 msgid "simple string expected"
 msgstr ""
 
-#: parser.yy:2760
+#: parser.yy:2884
 msgid "symbol expected"
 msgstr ""
 
-#: parser.yy:2896
+#: parser.yy:3028
 msgid "not a rhythmic event"
 msgstr ""
 
-#: parser.yy:2946
+#: parser.yy:3078
 msgid "post-event expected"
 msgstr ""
 
-#: parser.yy:2955 parser.yy:2960
+#: parser.yy:3087 parser.yy:3092
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:3036
+#: parser.yy:3168
 msgid "expecting string or post-event as script definition"
 msgstr ""
 
-#: parser.yy:3140
+#: parser.yy:3272
 msgid "not an articulation"
 msgstr ""
 
-#: parser.yy:3212 parser.yy:3255
+#: parser.yy:3338 parser.yy:3390
 msgid "not a duration"
 msgstr ""
 
-#: parser.yy:3276
+#: parser.yy:3411
 msgid "bass number expected"
 msgstr ""
 
-#: parser.yy:3368
+#: parser.yy:3503
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:3407
+#: parser.yy:3542
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: parser.yy:3450
+#: parser.yy:3585
 msgid "markup outside of text script or \\lyricmode"
 msgstr ""
 
-#: parser.yy:3455
+#: parser.yy:3590
 msgid "unrecognized string, not in text script or \\lyricmode"
 msgstr ""
 
-#: parser.yy:3607 parser.yy:3616
+#: parser.yy:3742 parser.yy:3751
 msgid "not an unsigned integer"
 msgstr ""
 
-#: parser.yy:3703
+#: parser.yy:3838
 msgid "not a markup"
 msgstr ""
 
@@ -3417,27 +3417,27 @@ msgstr ""
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:3112
+#: define-markup-commands.scm:3122
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr ""
 
-#: define-markup-commands.scm:3588
+#: define-markup-commands.scm:3598
 #, scheme-format
 msgid "no brace found for point size ~S "
 msgstr ""
 
-#: define-markup-commands.scm:3589
+#: define-markup-commands.scm:3599
 #, scheme-format
 msgid "defaulting to ~S pt"
 msgstr ""
 
-#: define-markup-commands.scm:3847
+#: define-markup-commands.scm:3857
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
 
-#: define-markup-commands.scm:4060
+#: define-markup-commands.scm:4070
 #, scheme-format
 msgid "not a valid duration string: ~a - ignoring"
 msgstr ""
@@ -3457,16 +3457,16 @@ msgstr ""
 msgid "bad make-music argument: ~S"
 msgstr ""
 
-#: define-note-names.scm:1000
+#: define-note-names.scm:1107
 msgid "Select note names language."
 msgstr ""
 
-#: define-note-names.scm:1006
+#: define-note-names.scm:1113
 #, scheme-format
 msgid "Using `~a' note names..."
 msgstr ""
 
-#: define-note-names.scm:1009
+#: define-note-names.scm:1116
 #, scheme-format
 msgid "Could not find language `~a'.  Ignoring."
 msgstr ""
@@ -3536,7 +3536,7 @@ msgstr ""
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:728
+#: framework-ps.scm:751
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -3544,7 +3544,7 @@ msgid ""
 "\n"
 "  lilypond -dbackend=eps FILE\n"
 "\n"
-"If have cut & pasted a lilypond fragment from a webpage, be sure\n"
+"If you have cut & pasted a lilypond fragment from a webpage, be sure\n"
 "to only remove anything before\n"
 "\n"
 "  %% ****************************************************************\n"
@@ -3610,50 +3610,50 @@ msgstr ""
 msgid "define-session used after session start"
 msgstr ""
 
-#: lily.scm:417
+#: lily.scm:420
 msgid "Using (ice-9 curried-definitions) module\n"
 msgstr ""
 
-#: lily.scm:420
+#: lily.scm:423
 msgid "Guile 1.8\n"
 msgstr ""
 
-#: lily.scm:477
+#: lily.scm:480
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:903
+#: lily.scm:910
 msgid "Success: compilation successfully completed"
 msgstr ""
 
-#: lily.scm:904
+#: lily.scm:911
 msgid "Compilation completed with warnings or errors"
 msgstr ""
 
-#: lily.scm:965
+#: lily.scm:972
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:968
+#: lily.scm:975
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:990 lily.scm:1079
+#: lily.scm:997 lily.scm:1086
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:1070
+#: lily.scm:1077
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
 
-#: lily.scm:1089
+#: lily.scm:1096
 #, scheme-format
 msgid "Invoking `~a'...\n"
 msgstr ""
@@ -3893,7 +3893,7 @@ msgstr ""
 msgid "No string for pitch ~a (given frets ~a)"
 msgstr ""
 
-#: translation-functions.scm:587
+#: translation-functions.scm:598
 #, scheme-format
 msgid ""
 "No label for fret ~a (on string ~a);\n"
index 3c9caad397a8e72d65b80279172b71fcc8b691ee..3e43a281330f089304ed199745d0abf7a8b5598b 100644 (file)
@@ -3468,9 +3468,9 @@ def conv (str):
                   r"\1\2.\3", str)
     str = re.sub (r'''(\\(?:alterBroken|overrideProperty)\s+)#?"([A-Za-z]+)\s*\.\s*([A-Za-z]+)"''',
                   r"\1\2.\3", str)
-    str = re.sub (r'''(\\tweak\s+)#?"?([A-Za-z]+)"?\s+?#'([-A-Za-z]+)''',
+    str = re.sub (r'''(\\tweak\s+)#?"?([A-W][A-Za-z]*)"?\s+?#'([a-zX-Z][-A-Za-z]*)''',
                   r"\1\2.\3", str)
-    str = re.sub (r'''(\\tweak\s+)#'([-A-Za-z]+)''',
+    str = re.sub (r'''(\\tweak\s+)#'([a-zX-Z][-A-Za-z]*)''',
                   r"\1\2", str)
     str = re.sub ("(" + matchmarkup + ")|"
                   + r"(\\footnote(?:\s*"
@@ -3871,6 +3871,23 @@ def conv(str):
     str = re.sub (r"#'whiteout-box(?![a-z_-])\b", r"#'whiteout", str)
     return str
 
+@rule ((2, 19, 40), r"\time #'(2 3) ... -> \time 2,3 ...")
+def conv (str):
+    def repl (m):
+        return m.group(1) + re.sub (r"\s+", ",", m.group (2))
+
+    str = re.sub (r"(beatStructure\s*=\s*)#'\(([0-9]+(?:\s+[0-9]+)+)\)",
+                  repl, str)
+
+    str = re.sub (r"(\\time\s*)#'\(([0-9]+(?:\s+[0-9]+)+)\)", repl, str)
+    def repl (m):
+        subst = re.sub (r"\s+", ",", m.group (1))
+        return subst + (4 + len (m.group (1)) - len (subst)) * " " + m.group (2)
+
+    str = re.sub (r"#'\(([0-9]+(?:\s+[0-9]+)+)\)(\s+%\s*beatStructure)",
+                  repl, str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,
index 40b58c81f48598e229e12cb4fbac2642b3b02e48..998267550e22a2570a8dd0f51f6d2cba2a15a3ff 100644 (file)
@@ -341,6 +341,10 @@ def pitch_italiano (pitch):
 def pitch_catalan (pitch):
     return pitch_italiano (pitch)
 
+def pitch_francais (pitch):
+    str = pitch_generic (pitch, ['do', 'ré', 'mi', 'fa', 'sol', 'la', 'si'], ['b', 'sb', 'sd', 'd'])
+    return str
+
 def pitch_espanol (pitch):
     str = pitch_generic (pitch, ['do', 're', 'mi', 'fa', 'sol', 'la', 'si'], ['b', None, None, 's'])
     return str
@@ -358,8 +362,10 @@ def set_pitch_language (language):
         "norsk": pitch_norsk,
         "svenska": pitch_svenska,
         "italiano": pitch_italiano,
+        "français": pitch_francais,
         "catalan": pitch_catalan,
         "espanol": pitch_espanol,
+        "español": pitch_espanol,
         "vlaams": pitch_vlaams}
     pitch_generating_function = function_dict.get (language, pitch_general)
 
@@ -589,11 +595,11 @@ class TimeScaledMusic (MusicWrapper):
 
     def print_ly (self, func):
         if self.display_bracket == None:
-            func ("\\once \\override TupletBracket #'stencil = ##f")
+            func ("\\once \\omit TupletBracket")
             func.newline ()
         elif self.display_bracket == "curved":
             ly.warning (_ ("Tuplet brackets of curved shape are not correctly implemented"))
-            func ("\\once \\override TupletBracket #'stencil = #ly:slur::print")
+            func ("\\once \\override TupletBracket.stencil = #ly:slur::print")
             func.newline ()
 
         base_number_function = {None: "#f",
@@ -617,12 +623,12 @@ class TimeScaledMusic (MusicWrapper):
         if self.display_type == "actual" and self.normal_type:
             # Obtain the note duration in scheme-mode, i.e. \longa as \\longa
             base_duration = self.normal_type.ly_expression (None, True)
-            func ("\\once \\override TupletNumber #'text = #(tuplet-number::append-note-wrapper %s \"%s\")" %
+            func ("\\once \\override TupletNumber.text = #(tuplet-number::append-note-wrapper %s \"%s\")" %
                 (base_number_function, base_duration))
             func.newline ()
         elif self.display_type == "both": # TODO: Implement this using actual_type and normal_type!
             if self.display_number == None:
-                func ("\\once \\override TupletNumber #'stencil = ##f")
+                func ("\\once \\omit TupletNumber")
                 func.newline ()
             elif self.display_number == "both":
                 den_duration = self.normal_type.ly_expression (None, True)
@@ -632,20 +638,20 @@ class TimeScaledMusic (MusicWrapper):
                 else:
                     num_duration = den_duration
                 if (self.display_denominator or self.display_numerator):
-                    func ("\\once \\override TupletNumber #'text = #(tuplet-number::non-default-fraction-with-notes %s \"%s\" %s \"%s\")" %
+                    func ("\\once \\override TupletNumber.text = #(tuplet-number::non-default-fraction-with-notes %s \"%s\" %s \"%s\")" %
                                 (self.display_denominator, den_duration,
                                  self.display_numerator, num_duration))
                     func.newline ()
                 else:
-                    func ("\\once \\override TupletNumber #'text = #(tuplet-number::fraction-with-notes \"%s\" \"%s\")" %
+                    func ("\\once \\override TupletNumber.text = #(tuplet-number::fraction-with-notes \"%s\" \"%s\")" %
                                 (den_duration, num_duration))
                     func.newline ()
         else:
             if self.display_number == None:
-                func ("\\once \\override TupletNumber #'stencil = ##f")
+                func ("\\once \\omit TupletNumber")
                 func.newline ()
             elif self.display_number == "both":
-                func ("\\once \\override TupletNumber #'text = #%s" % base_number_function)
+                func ("\\once \\override TupletNumber.text = #%s" % base_number_function)
                 func.newline ()
 
         func ('\\times %d/%d ' %
@@ -1225,7 +1231,7 @@ class GlissandoEvent (SpanEvent):
                 "wavy"   : "zigzag"
             }. get (self.line_type, None)
             if style:
-                printer.dump ("\\once \\override Glissando #'style = #'%s" % style)
+                printer.dump ("\\once \\override Glissando.style = #'%s" % style)
     def ly_expression (self):
         return {-1: '\\glissando',
             1:''}.get (self.span_direction, '')
@@ -1524,7 +1530,7 @@ class NotestyleEvent (Event): #class changed by DaLa: additional attribute color
         return return_string
     def pre_note_ly (self, is_chord_element):
         if self.style and is_chord_element:
-            return "\\tweak #'style #%s" % self.style
+            return "\\tweak style #%s" % self.style
         else:
             return ''
     def ly_expression (self):
@@ -1863,7 +1869,7 @@ class TimeSignatureChange (Music):
             if self.style == "common":
                 st = "\\defaultTimeSignature"
             elif (self.style != "'()"):
-                st = "\\once \\override Staff.TimeSignature #'style = #%s " % self.style
+                st = "\\once \\override Staff.TimeSignature.style = #%s " % self.style
             elif (self.style != "'()") or is_common_signature:
                 st = "\\numericTimeSignature"
 
@@ -1962,9 +1968,9 @@ class StaffLinesEvent (Music):
         self.lines = lines
     def ly_expression (self):
         if (self.lines > 0):
-          return "\\stopStaff \\override Staff.StaffSymbol #'line-count = #%s \\startStaff" % self.lines
+          return "\\stopStaff \\override Staff.StaffSymbol.line-count = #%s \\startStaff" % self.lines
         else:
-          return "\\stopStaff \\revert Staff.StaffSymbol #'line-count \\startStaff"
+          return "\\stopStaff \\revert Staff.StaffSymbol.line-count \\startStaff"
 
 class TempoMark (Music):
     def __init__ (self):
@@ -2147,7 +2153,7 @@ class StaffGroup:
         if self.instrument_name or self.short_instrument_name:
             printer.dump ("\\consists \"Instrument_name_engraver\"")
         if self.spanbar == "no":
-            printer.dump ("\\override SpanBar #'transparent = ##t")
+            printer.dump ("\\hide SpanBar")
         brack = {"brace": "SystemStartBrace",
                  "none": "SystemStartBar",
                  "line": "SystemStartSquare"}.get (self.symbol, None)
index 48aa29450dbf437df2af0786816b88ddd5af86b4..f0b82f1333c7613bcd80f5c418c8f99afb96f35e 100644 (file)
@@ -124,6 +124,7 @@ class Music_xml_node(Xml_node):
         self.duration = Rational(0)
         self.start = Rational(0)
         self.converted = False
+        self.voice_id = None;
 
 
 class Music_xml_spanner(Music_xml_node):
@@ -440,6 +441,15 @@ class Unpitched(Music_xml_node):
         return p
 
 
+class Measure_element (Music_xml_node):
+    def get_voice_id (self):
+        voice = self.get_maybe_exist_named_child ('voice')
+        if voice:
+            return voice.get_text ()
+        else:
+            return self.voice_id;
+
+
 class Attributes(Measure_element):
 
     def __init__(self):
@@ -1310,7 +1320,25 @@ class Part(Music_xml_node):
                 measure_start_moment = now
                 measure_position = Rational(0)
 
-            for n in m.get_all_children():
+            voice_id = None;
+            assign_to_next_voice = []
+            for n in m.get_all_children ():
+                # assign a voice to all measure elements
+                if (n.get_name() == 'backup'):
+                    voice_id = None;
+
+                if isinstance(n, Measure_element):
+                    if n.get_voice_id ():
+                        voice_id = n.get_voice_id ()
+                        for i in assign_to_next_voice:
+                            i.voice_id = voice_id
+                        assign_to_next_voice = []
+                    else:
+                        if voice_id:
+                            n.voice_id = voice_id
+                        else:
+                            assign_to_next_voice.append (n)
+
                 # figured bass has a duration, but applies to the next note
                 # and should not change the current measure position!
                 if isinstance(n, FiguredBass):
@@ -1637,6 +1665,9 @@ class Hash_comment(Music_xml_node):
 class KeyAlter(Music_xml_node):
     pass
 
+class Direction (Measure_element):
+    pass
+
 class KeyOctave(Music_xml_node):
     pass
 
index badac67e5ca6f3a5ba3613edf46747b191ecbc38..a455afdd78a4cf69116dd7809bc2f227cf9b0bd1 100644 (file)
 (define-public (boolean-or-symbol? x)
   (or (boolean? x) (symbol? x)))
 
+(define-public (key? x)
+  (or (symbol? x) (index? x)))
+
+(define-public (key-list? x)
+  (and (list? x) (every key? x)))
+
+(define-public (key-list-or-music? x)
+  (if (list? x)
+      (every key? x)
+      (ly:music? x)))
+
+(define-public (key-list-or-symbol? x)
+  (if (list? x)
+      (every key? x)
+      (symbol? x)))
+
 (define-public (symbol-list? x)
   (and (list? x) (every symbol? x)))
 
index f798c0fdf6aa7fc82aba8dceb62691cfeab4f9b5..483b8cac8f18fc6bb20598ae7ef7ccfb120c48ff 100644 (file)
@@ -161,10 +161,12 @@ work than classifying the pitches."
       (let* ((num-markup (make-simple-markup
                           (number->string (pitch-step pitch))))
              (args (list num-markup))
-             (total (if (= (ly:pitch-alteration pitch) 0)
-                        (if (= (pitch-step pitch) 7)
-                            (list (ly:context-property context 'majorSevenSymbol))
-                            args)
+             (major-seven-symbol (ly:context-property context 'majorSevenSymbol))
+             (total
+                    (if (and (= (ly:pitch-alteration pitch) 0)
+                             (= (pitch-step pitch) 7)
+                             (markup? major-seven-symbol))
+                        (list major-seven-symbol)
                         (cons (accidental->markup (step-alteration pitch)) args))))
 
         (make-line-markup total)))
index 3c9e159eb57e9b406b3283a11b17444104c09c42..3ee68e5e6a5ebceba368c151b01e13effddc64aa 100644 (file)
@@ -48,6 +48,9 @@
 on the same note in different octaves may be horizontally staggered
 if in different voices.")
      (aDueText ,markup? "Text to print at a unisono passage.")
+     (additionalBassStrings ,list? "The additional tablature bass-strings, which
+will not get a seprate line in TabStaff.  It is a list of the pitches of each
+string (starting with the lowest numbered one).")
      (additionalPitchPrefix ,string? "Text with which to prefix
 additional pitches within a chord name.")
      (alignAboveContext ,string? "Where to insert newly created context in
index edd70f216dc8eaf448987f2e9f81836a4b3f7bd3..a6c84b8f6ee3b96c0c1398781ff0e5ecd2aedb5f 100644 (file)
@@ -2251,6 +2251,16 @@ Set the dimensions of @var{arg} to @var{x} and@tie{}@var{y}."
       `(delay-stencil-evaluation ,(delay expr))
       x y))))
 
+(define-markup-command (with-dimensions-from layout props arg1 arg2)
+  (markup? markup?)
+  #:category other
+  "
+Print @var{arg2} with the dimensions of @var{arg1}."
+  (let* ((stil1 (interpret-markup layout props arg1))
+         (x (ly:stencil-extent stil1 0))
+         (y (ly:stencil-extent stil1 1)))
+    (interpret-markup layout props (markup #:with-dimensions x y arg2))))
+
 (define-markup-command (pad-around layout props amount arg)
   (number? markup?)
   #:category align
@@ -4713,6 +4723,152 @@ where @var{X} is the number of staff spaces."
   "Like @code{\\override}, for markup lists."
   (interpret-markup-list layout (cons (list new-prop) props) args))
 
+(define-markup-list-command (table layout props column-align lst)
+  (number-list? markup-list?)
+  #:properties ((padding 0)
+                (baseline-skip))
+  "@cindex creating a table.
+
+Returns a table.
+
+@var{column-align} specifies how each column is aligned, possible values are
+-1, 0, 1.  The number of elements in @var{column-align} determines how many
+columns will be printed.
+The entries to print are given by @var{lst}, a markup-list.  If needed, the last
+row is filled up with @code{point-stencil}s.
+Overriding @code{padding} may be used to increase columns horizontal distance.
+Overriding @code{baseline-skip} to increase rows vertical distance.
+@lilypond[verbatim,quote]
+\\markuplist {
+  \\override #'(padding . 2)
+  \\table
+    #'(0 1 0 -1)
+    {
+      \\underline { center-aligned right-aligned center-aligned left-aligned }
+      one \number 1 thousandth \number 0.001
+      eleven \number 11 hundredth \number 0.01
+      twenty \number 20 tenth \number 0.1
+      thousand \number 1000 one \number 1.0
+    }
+}
+@end lilypond
+"
+
+  (define (split-lst initial-lst lngth result-lst)
+    ;; split a list into a list of sublists of length lngth
+    ;; eg. (split-lst '(1 2 3 4 5 6) 2 '())
+    ;; -> ((1 2) (3 4) (5 6))
+    (cond ((not (integer? (/ (length initial-lst) lngth)))
+           (ly:warning
+            "Can't split list of length ~a into ~a parts, returning empty list"
+            (length initial-lst) lngth)
+           '())
+          ((null? initial-lst)
+            (reverse result-lst))
+          (else
+            (split-lst
+              (drop initial-lst lngth)
+              lngth
+              (cons (take initial-lst lngth) result-lst)))))
+
+  (define (dists-list init padding lst)
+    ;; Returns a list, where each element of `lst' is
+    ;; added to the sum of the previous elements of `lst' plus padding.
+    ;; `init' will be the first element of the resulting list. The addition
+    ;; starts with the values of `init', `padding' and `(car lst)'.
+    ;; eg. (dists-list 0.01 0.1 '(1 2 3 4)))
+    ;; -> (0.01 1.11 3.21 6.31 10.41)
+    (if (or (not (number? init))
+            (not (number? padding))
+            (not (number-list? lst)))
+        (begin
+          (ly:warning
+            "not fitting argument for `dists-list', return empty lst ")
+          '())
+        (reverse
+          (fold (lambda (elem rl) (cons (+ elem padding (car rl)) rl))
+                (list init)
+                lst))))
+
+  (let* (;; get the number of columns
+         (columns (length column-align))
+         (init-stils (interpret-markup-list layout props lst))
+         ;; If the given markup-list is the result of a markup-list call, their
+         ;; length may not be easily predictable, thus we add point-stencils
+         ;; to fill last row of the table.
+         (rem (remainder (length init-stils) columns))
+         (filled-stils
+           (if (zero? rem)
+               init-stils
+               (append init-stils (make-list (- columns rem) point-stencil))))
+         ;; get the stencils in sublists of length `columns'
+         (stils
+           (split-lst filled-stils columns '()))
+         ;; procedure to return stencil-length
+         ;; If it is nan, return 0
+         (lengths-proc
+           (lambda (m)
+             (let ((lngth (interval-length (ly:stencil-extent m X))))
+               (if (nan? lngth) 0 lngth))))
+         ;; get the max width of each column in a list
+         (columns-max-x-lengths
+           (map
+             (lambda (x)
+               (apply max 0
+                      (map
+                        lengths-proc
+                        (map (lambda (l) (list-ref l x)) stils))))
+             (iota columns)))
+         ;; create a list of (basic) distances, which each column should
+         ;; moved, using `dists-list'. Some padding may be added.
+         (dist-sequence
+           (dists-list 0 padding columns-max-x-lengths))
+         ;; Get all stencils of a row, moved accurately to build columns.
+         ;; If the items of a column are aligned other than left, we need to
+         ;; move them to avoid collisions:
+         ;; center aligned: move all items half the width of the widest item
+         ;; right aligned: move all items the full width of the widest item.
+         ;; Added to the default-offset calculated in `dist-sequence'.
+         ;; `stencils-for-row-proc' needs four arguments:
+         ;;    stil    - a stencil
+         ;;    dist    - a numerical value as basic offset in X direction
+         ;;    column  - a numerical value for the column we're in
+         ;;    x-align - a numerical value how current column should be
+         ;;              aligned, where (-1, 0, 1) means (LEFT, CENTER, RIGHT)
+         (stencils-for-row-proc
+           (lambda (stil dist column x-align)
+             (ly:stencil-translate-axis
+               (ly:stencil-aligned-to stil X x-align)
+               (cond ((member x-align '(0 1))
+                      (let* (;; get the stuff for relevant column
+                             (stuff-for-column
+                               (map
+                                 (lambda (s) (list-ref s column))
+                                 stils))
+                             ;; get length of every column-item
+                             (lengths-for-column
+                               (map lengths-proc stuff-for-column))
+                             (widest
+                               (apply max 0 lengths-for-column)))
+                        (+ dist (/ widest (if (= x-align 0) 2 1)))))
+                     (else dist))
+               X)))
+         ;; get a list of rows using `ly:stencil-add' on a list of stencils
+         (rows
+           (map
+             (lambda (stil-list)
+               (apply ly:stencil-add
+                 (map
+                   ;; the procedure creating the stencils:
+                   stencils-for-row-proc
+                   ;; the procedure's args:
+                   stil-list
+                   dist-sequence
+                   (iota columns)
+                   column-align)))
+             stils)))
+   (space-lines baseline-skip rows)))
+
 (define-markup-list-command (map-markup-commands layout props compose args)
   (procedure? markup-list?)
   "This applies the function @var{compose} to every markup in
index 9eab9d5d6940836a438e86871bc1ffc641947a95..5825967428d9a3e14036480acd83b32d3d7ba627 100644 (file)
                 ))
 
 
+    ;; Language: Français ----------------------------------------------;
+    ;; Valentin Villenave <valentin@villenave.net>,
+    ;;
+    ;;  b   = flat (bémol)
+    ;;  bb  = double-flat
+    ;;  sb  = quarter-tone flat (demi-bémol)
+    ;;  bsb = three-quarter-tones flat
+    ;;
+    ;;  d   = sharp (dièse)
+    ;;  dd  = double-sharp
+    ;;  x   = double-sharp
+    ;;  sd  = quarter-tone sharp (demi-dièse)
+    ;;  dsd = three-quarter-tones sharp
+    ;;
+    ;;  English: c   d   e   f   g   a   b
+    ;;  French:  do  ré  mi  fa  sol la  si
+
+    (français . (
+                 (dobb . ,(ly:make-pitch -1 0 DOUBLE-FLAT))
+                 (dobsb . ,(ly:make-pitch -1 0 THREE-Q-FLAT))
+                 (dob . ,(ly:make-pitch -1 0 FLAT))
+                 (dosb . ,(ly:make-pitch -1 0 SEMI-FLAT))
+                 (do . ,(ly:make-pitch -1 0 NATURAL))
+                 (dosd . ,(ly:make-pitch -1 0 SEMI-SHARP))
+                 (dod . ,(ly:make-pitch -1 0 SHARP))
+                 (dodsd . ,(ly:make-pitch -1 0 THREE-Q-SHARP))
+                 (dodd . ,(ly:make-pitch -1 0 DOUBLE-SHARP))
+                 (dox . ,(ly:make-pitch -1 0 DOUBLE-SHARP))
+
+                 (rébb . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
+                 (rébsb . ,(ly:make-pitch -1 1 THREE-Q-FLAT))
+                 (réb . ,(ly:make-pitch -1 1 FLAT))
+                 (résb . ,(ly:make-pitch -1 1 SEMI-FLAT))
+                 (ré . ,(ly:make-pitch -1 1 NATURAL))
+                 (résd . ,(ly:make-pitch -1 1 SEMI-SHARP))
+                 (réd . ,(ly:make-pitch -1 1 SHARP))
+                 (rédsd . ,(ly:make-pitch -1 1 THREE-Q-SHARP))
+                 (rédd . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
+                 (réx . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
+
+                 (rebb . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
+                 (rebsb . ,(ly:make-pitch -1 1 THREE-Q-FLAT))
+                 (reb . ,(ly:make-pitch -1 1 FLAT))
+                 (resb . ,(ly:make-pitch -1 1 SEMI-FLAT))
+                 (re . ,(ly:make-pitch -1 1 NATURAL))
+                 (resd . ,(ly:make-pitch -1 1 SEMI-SHARP))
+                 (red . ,(ly:make-pitch -1 1 SHARP))
+                 (redsd . ,(ly:make-pitch -1 1 THREE-Q-SHARP))
+                 (redd . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
+                 (rex . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
+
+                 (mibb . ,(ly:make-pitch -1 2 DOUBLE-FLAT))
+                 (mibsb . ,(ly:make-pitch -1 2 THREE-Q-FLAT))
+                 (mib . ,(ly:make-pitch -1 2 FLAT))
+                 (misb . ,(ly:make-pitch -1 2 SEMI-FLAT))
+                 (mi . ,(ly:make-pitch -1 2 NATURAL))
+                 (misd . ,(ly:make-pitch -1 2 SEMI-SHARP))
+                 (mid . ,(ly:make-pitch -1 2 SHARP))
+                 (midsd . ,(ly:make-pitch -1 2 THREE-Q-SHARP))
+                 (midd . ,(ly:make-pitch -1 2 DOUBLE-SHARP))
+                 (mix . ,(ly:make-pitch -1 2 DOUBLE-SHARP))
+
+                 (fabb . ,(ly:make-pitch -1 3 DOUBLE-FLAT))
+                 (fabsb . ,(ly:make-pitch -1 3 THREE-Q-FLAT))
+                 (fab . ,(ly:make-pitch -1 3 FLAT))
+                 (fasb . ,(ly:make-pitch -1 3 SEMI-FLAT))
+                 (fa . ,(ly:make-pitch -1 3 NATURAL))
+                 (fasd . ,(ly:make-pitch -1 3 SEMI-SHARP))
+                 (fad . ,(ly:make-pitch -1 3 SHARP))
+                 (fadsd . ,(ly:make-pitch -1 3 THREE-Q-SHARP))
+                 (fadd . ,(ly:make-pitch -1 3 DOUBLE-SHARP))
+                 (fax . ,(ly:make-pitch -1 3 DOUBLE-SHARP))
+
+                 (solbb . ,(ly:make-pitch -1 4 DOUBLE-FLAT))
+                 (solbsb . ,(ly:make-pitch -1 4 THREE-Q-FLAT))
+                 (solb . ,(ly:make-pitch -1 4 FLAT))
+                 (solsb . ,(ly:make-pitch -1 4 SEMI-FLAT))
+                 (sol . ,(ly:make-pitch -1 4 NATURAL))
+                 (solsd . ,(ly:make-pitch -1 4 SEMI-SHARP))
+                 (sold . ,(ly:make-pitch -1 4 SHARP))
+                 (soldsd . ,(ly:make-pitch -1 4 THREE-Q-SHARP))
+                 (soldd . ,(ly:make-pitch -1 4 DOUBLE-SHARP))
+                 (solx . ,(ly:make-pitch -1 4 DOUBLE-SHARP))
+
+                 (labb . ,(ly:make-pitch -1 5 DOUBLE-FLAT))
+                 (labsb . ,(ly:make-pitch -1 5 THREE-Q-FLAT))
+                 (lab . ,(ly:make-pitch -1 5 FLAT))
+                 (lasb . ,(ly:make-pitch -1 5 SEMI-FLAT))
+                 (la . ,(ly:make-pitch -1 5 NATURAL))
+                 (lasd . ,(ly:make-pitch -1 5 SEMI-SHARP))
+                 (lad . ,(ly:make-pitch -1 5 SHARP))
+                 (ladsd . ,(ly:make-pitch -1 5 THREE-Q-SHARP))
+                 (ladd . ,(ly:make-pitch -1 5 DOUBLE-SHARP))
+                 (lax . ,(ly:make-pitch -1 5 DOUBLE-SHARP))
+
+                 (sibb . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
+                 (sibsb . ,(ly:make-pitch -1 6 THREE-Q-FLAT))
+                 (sib . ,(ly:make-pitch -1 6 FLAT))
+                 (sisb . ,(ly:make-pitch -1 6 SEMI-FLAT))
+                 (si . ,(ly:make-pitch -1 6 NATURAL))
+                 (sisd . ,(ly:make-pitch -1 6 SEMI-SHARP))
+                 (sid . ,(ly:make-pitch -1 6 SHARP))
+                 (sidsd . ,(ly:make-pitch -1 6 THREE-Q-SHARP))
+                 (sidd . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
+                 (six . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
+                 ))
+
+
     ;; Language: Italiano ----------------------------------------------;
     ;; Paolo Zuliani <zuliap@easynet.it>,
     ;; Eric Wurbel <wurbel@univ-tln.fr>
          (append language-pitch-names
                  (list (cons (cadr pair)
                              (cdr (assoc (car pair) language-pitch-names)))))))
- '((espanol español)
-   (italiano français)))
+ '((espanol español)))
 
 (define-public (note-names-language str)
   (_ "Select note names language.")
index f10809d00aa45ffb2f06b27977635caa467b3470..859efcd46ef5c87c935d25dd3199d2aba3a19b2d 100644 (file)
@@ -254,12 +254,15 @@ used.  This is used to select the proper design size for the text fonts.
 ; are aliases that are defined in mf/00-lilypond-fonts.conf.in (source file)
 ; or fonts/00-lilypond-fonts.conf (installed file).
 
-(define*-public (set-global-fonts #:key 
+(define*-public (set-global-fonts #:key
   (music "emmentaler")
   (brace "emmentaler")
-  (roman "LilyPond Serif")
-  (sans "LilyPond Sans Serif")
-  (typewriter "LilyPond Monospace")
+  (roman (if (eq? (ly:get-option 'backend) 'svg)
+             "serif" "LilyPond Serif"))
+  (sans (if (eq? (ly:get-option 'backend) 'svg)
+            "sans-serif" "LilyPond Sans Serif"))
+  (typewriter (if (eq? (ly:get-option 'backend) 'svg)
+                  "monospace" "LilyPond Monospace"))
   (factor 1))
   (let ((n (make-font-tree-node 'font-encoding 'fetaMusic)))
     (add-music-fonts n 'feta music brace feta-design-size-mapping factor)
@@ -267,7 +270,7 @@ used.  This is used to select the proper design size for the text fonts.
     (add-pango-fonts n 'sans sans factor)
     (add-pango-fonts n 'typewriter typewriter factor)
     n))
-    
+
 (define-public (make-pango-font-tree roman-str sans-str typewrite-str factor)
   (let ((n (make-font-tree-node 'font-encoding 'fetaMusic)))
     (add-music-fonts n 'feta "emmentaler" "emmentaler" feta-design-size-mapping factor)
@@ -278,9 +281,9 @@ used.  This is used to select the proper design size for the text fonts.
 
 (define-public (make-default-fonts-tree factor)
   (make-pango-font-tree
-   "LilyPond Serif"
-   "LilyPond Sans Serif"
-   "LilyPond Monospace"
+   (if (eq? (ly:get-option 'backend) 'svg) "serif" "LilyPond Serif")
+   (if (eq? (ly:get-option 'backend) 'svg) "sans-serif" "LilyPond Sans Serif")
+   (if (eq? (ly:get-option 'backend) 'svg) "monospace" "LilyPond Monospace")
    factor))
 
 (define-public all-text-font-encodings
index f6d1700f424355f278fe0d3facdfa1690a030125..ca3372ca92557b2d32129ea705f692f2e8977be0 100644 (file)
            (val (if overrideval overrideval fallbackval)))
       (if val
           (format port "/~a (~a)\n" field (metadata-encode (markup->string val (list header)))))))
-  (display "[ " port)
-  (metadata-lookup-output 'pdfauthor 'author "Author")
-  (format port "/Creator (LilyPond ~a)\n" (lilypond-version))
-  (metadata-lookup-output 'pdftitle 'title "Title")
-  (metadata-lookup-output 'pdfsubject 'subject "Subject")
-  (metadata-lookup-output 'pdfkeywords 'keywords "Keywords")
-  (metadata-lookup-output 'pdfmodDate 'modDate "ModDate")
-  (metadata-lookup-output 'pdfsubtitle 'subtitle "Subtitle")
-  (metadata-lookup-output 'pdfcomposer 'composer "Composer")
-  (metadata-lookup-output 'pdfarranger 'arranger "Arranger")
-  (metadata-lookup-output 'pdfpoet 'poet "Poet")
-  (metadata-lookup-output 'pdfcopyright 'copyright "Copyright")
-  (display "/DOCINFO pdfmark\n\n" port))
 
+  (if (module? header)
+      (begin
+       (display "mark " port)
+       (metadata-lookup-output 'pdfauthor 'author "Author")
+       (format port "/Creator (LilyPond ~a)\n" (lilypond-version))
+       (metadata-lookup-output 'pdftitle 'title "Title")
+       (metadata-lookup-output 'pdfsubject 'subject "Subject")
+       (metadata-lookup-output 'pdfkeywords 'keywords "Keywords")
+       (metadata-lookup-output 'pdfmodDate 'modDate "ModDate")
+       (metadata-lookup-output 'pdfsubtitle 'subtitle "Subtitle")
+       (metadata-lookup-output 'pdfcomposer 'composer "Composer")
+       (metadata-lookup-output 'pdfarranger 'arranger "Arranger")
+       (metadata-lookup-output 'pdfpoet 'poet "Poet")
+       (metadata-lookup-output 'pdfcopyright 'copyright "Copyright")
+       (display "/DOCINFO pdfmark\n\n" port)))
+
+  (if (ly:get-option 'embed-source-code)
+      (let ((source-list (delete-duplicates
+                          (remove (lambda (str)
+                                    (or
+                                     (string-contains str
+                                       (ly:get-option 'datadir))
+                                     (string=? str
+                                       "<included string>")))
+                            (ly:source-files)))))
+         (display "\n/pdfmark where
+{pop} {userdict /pdfmark /cleartomark load put} ifelse" port)
+         (for-each (lambda (fname idx)
+                     (format port "\n
+mark /_objdef {ly~a_stream} /type /stream   /OBJ pdfmark
+mark {ly~a_stream} << /Type /EmbeddedFile>> /PUT pdfmark
+mark {ly~a_stream} (~a) /PUT pdfmark
+mark /Name (LilyPond source file ~a)
+/FS << /Type /Filespec /F (~a) /EF << /F {ly~a_stream} >> >> /EMBED pdfmark
+mark {ly~a_stream} /CLOSE pdfmark
+\n"
+                idx idx idx
+                (ps-quote (ly:gulp-file fname))
+                  idx fname idx idx))
+          source-list (iota (length source-list))))))
 
 (define-public (output-framework basename book scopes fields)
   (let* ((port-tmp (make-tmpfile))
     ;; don't do BeginDefaults PageMedia: A4
     ;; not necessary and wrong
     (write-preamble paper #t port)
-    (if (module? header)
-        (handle-metadata header port))
+    (handle-metadata header port)
     (for-each
      (lambda (page)
        (set! page-number (1+ page-number))
@@ -730,7 +756,7 @@ system-by-system output.  For that, use the EPS backend instead,
 
   lilypond -dbackend=eps FILE
 
-If have cut & pasted a lilypond fragment from a webpage, be sure
+If you have cut & pasted a lilypond fragment from a webpage, be sure
 to only remove anything before
 
   %% ****************************************************************
index eb487d33e9f0cc19c4443105c4b1d8c6fc26fd32..5ead4e6c9cf9da25e8f12bcf08cdfa145692f613 100644 (file)
@@ -245,6 +245,9 @@ configurations.")
      #f
      "Dump output signatures of each system.  Used for
 regression testing.")
+    (embed-source-code
+     #f
+     "Embed the source files inside the generated PDF document.")
     (eps-box-padding
      #f
      "Pad left edge of the output EPS bounding box by
@@ -675,6 +678,10 @@ messages into errors.")
     (,fraction? . "fraction, as pair")
     (,grob-list? . "list of grobs")
     (,index? . "non-negative integer")
+    (,key? . "index or symbol")
+    (,key-list? . "list of indexes or symbols")
+    (,key-list-or-music? . "key list or music")
+    (,key-list-or-symbol? . "key list or symbol")
     (,markup? . "markup")
     (,markup-command-list? . "markup command list")
     (,markup-list? . "markup list")
index f9f532b0d0bcbc9265ee359e13a130c2ce1b037c..22f8648c31e8c0dcaacdad9a4894c6ef057bd0fc 100644 (file)
@@ -515,10 +515,18 @@ chords.  Returns a placement-list."
                  (cons tuning (map (lambda (x) (shift-octave x -1))
                                    pitches))))))))
 
+  ;; TODO: Does it make sense to have additional bass strings in a fret-diagram?
+  (if (and (not (null? rest))
+           (not (null? (ly:context-property context 'additionalBassStrings))))
+      (ly:warning "additional bass strings are not supported by FretBoards"))
+
   ;; body of determine-frets
   (let* ((predefined-fret-table
           (ly:context-property context 'predefinedDiagramTable))
-         (tunings (ly:context-property context 'stringTunings))
+         (tunings
+           (append
+             (ly:context-property context 'stringTunings)
+             (ly:context-property context 'additionalBassStrings '())))
          (string-count (length tunings))
          (grob (if (null? rest) '() (car rest)))
          (pitches (map (lambda (x) (ly:event-property x 'pitch)) notes))
@@ -576,18 +584,33 @@ chords.  Returns a placement-list."
 ;; The fret letter is taken from 'fretLabels if present
 (define-public (fret-letter-tablature-format
                 context string-number fret-number)
-  (let ((labels (ly:context-property context 'fretLabels)))
-    (make-translate-scaled-markup '(0 . -0.5)
-     (cond
-      ((= 0 (length labels))
-       (string (integer->char (+ fret-number (char->integer #\a)))))
-      ((and (<= 0 fret-number) (< fret-number (length labels)))
-       (list-ref labels fret-number))
-      (else
-       (ly:warning (_ "No label for fret ~a (on string ~a);
+  (let* ((labels (ly:context-property context 'fretLabels))
+         (string-tunings (ly:context-property context 'stringTunings))
+         (string-count (length string-tunings))
+         (letter
+           (cond
+            ((= 0 (length labels))
+             (string (integer->char (+ fret-number (char->integer #\a)))))
+            ((and (<= 0 fret-number) (< fret-number (length labels)))
+             (list-ref labels fret-number))
+            (else
+             (ly:warning
+               (_ "No label for fret ~a (on string ~a);
 only ~a fret labels provided")
-                   fret-number string-number (length labels))
-       ".")))))
+               fret-number string-number (length labels))
+             ".")))
+         (add-bass-string-nr ;; starting at zero
+           (- string-number string-count 1)))
+    (make-translate-scaled-markup '(0 . -0.5)
+      ;; For additional bass strings, we add zero up to three "/"-signs before
+      ;; the letter, even more bass strings will get numbers, starting with "4".
+      ;; In the rare case such a string isn't played open, we put out, eg."4b"
+      (make-concat-markup
+        (if (> string-number (+ string-count 4))
+            (list (number->string add-bass-string-nr)
+                  (if (zero? fret-number) "" letter))
+            (list (make-string (max 0 add-bass-string-nr) #\/)
+                  letter))))))
 
 ;; Display the fret number as a number
 (define-public (fret-number-tablature-format
@@ -635,8 +658,12 @@ only ~a fret labels provided")
 (define-public (tablature-position-on-lines context string-number)
   (let* ((string-tunings (ly:context-property context 'stringTunings))
          (string-count (length string-tunings))
+         (string-nr
+           (if (> string-number (length string-tunings))
+               (1+ (length string-tunings))
+               string-number))
          (string-one-topmost (ly:context-property context 'stringOneTopmost))
-         (staff-line (- (* 2 string-number) string-count 1)))
+         (staff-line (- (* 2 string-nr) string-count 1)))
     (if string-one-topmost
         (- staff-line)
         staff-line)))
index a6fafdc01251bb38559f84d2dc3c337855881029..9fba75445fd86e0e219fc52a2ba60764972cf495 100644 (file)
@@ -198,12 +198,15 @@ for file in html_files:
         ### add google tracker header
         if (line.find("</head>") >= 0):
             outfile.write("""<!-- Google tracking !-->
-<script src="http://www.google-analytics.com/urchin.js"
-type="text/javascript">
-</script>
-<script type="text/javascript">
-_uacct = "UA-68969-1";
-urchinTracker();
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-68969-1', 'auto');
+  ga('send', 'pageview');
+
 </script>
 """);
         #### add google tracker goals
diff --git a/scripts/build/xetex-with-options.sh b/scripts/build/xetex-with-options.sh
new file mode 100755 (executable)
index 0000000..f53ba0d
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# By the default settings,
+# XeTeX (xdvipdfmx) replaces link destination names with integers.
+# In this case, the replaced destination names of
+# remote PDF cannot be known. In order to avoid replacement,
+# we can use commandline option `-C 0x0010' for xdvipdfmx.
+
+exec xetex --output-driver='xdvipdfmx -C 0x0010' "$@"
index f140bba94b8ddb633f72e90a31d06525199c85ed..d164d451b89075c9d7670202182e788aa5659f40 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2015-12-20.12}
+\def\texinfoversion{2016-03-29.15}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
 % Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % Margin to add to right of even pages, to left of odd pages.
 \newdimen\bindingoffset
 \newdimen\normaloffset
-\newdimen\pagewidth \newdimen\pageheight
+\newdimen\txipagewidth \newdimen\txipageheight
 
 % Main output routine.
 %
   % Common context changes for both heading and footing.
   % Do this outside of the \shipout so @code etc. will be expanded in
   % the headline as they should be, not taken literally (outputting ''code).
-  \def\commmonheadfootline{\let\hsize=\pagewidth \texinfochars}
+  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
   %
   % Retrieve the information for the headings from the marks in the page,
   % and call Plain TeX's \makeheadline and \makefootline, which use the
 \newinsert\margin \dimen\margin=\maxdimen
 
 % Main part of page, including any footnotes
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+\def\pagebody#1{\vbox to\txipageheight{\boxmaxdepth=\maxdepth #1}}
 {\catcode`\@ =11
 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
 % marginal hacks, juha@viisa.uucp (Juha Takala)
   % \dimen0 is the vertical size of the group's box.
   \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox
   % \dimen2 is how much space is left on the page (more or less).
-  \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal
+  \dimen2 = \txipageheight   \advance\dimen2 by -\pagetotal
   % if the group doesn't fit on the current page, and it's a big big
   % group, force a page break.
   \ifdim \dimen0 > \dimen2
-    \ifdim \pagetotal < \vfilllimit\pageheight
+    \ifdim \pagetotal < \vfilllimit\txipageheight
       \page
     \fi
   \fi
@@ -1100,6 +1100,64 @@ where each line of input produces a line of output.}
 \newif\ifpdf
 \newif\ifpdfmakepagedest
 
+%
+% For LuaTeX
+%
+
+\ifx\luatexversion\thisisundefined
+\else
+  % Escape PDF strings UTF-8 to UTF-16
+  \begingroup
+    \catcode`\%=12
+    \directlua{
+      function UTF16oct(str)
+        tex.sprint(string.char(0x5c) .. '376' .. string.char(0x5c) .. '377')
+        for c in string.utfvalues(str) do
+          if c < 0x10000 then
+            tex.sprint(
+              string.format(string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o',
+                            (c / 256), (c % 256)))
+          else
+            c = c - 0x10000
+            local c_hi = c / 1024 + 0xd800
+            local c_lo = c % 1024 + 0xdc00
+            tex.sprint(
+              string.format(string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o',
+                            (c_hi / 256), (c_hi % 256),
+                            (c_lo / 256), (c_lo % 256)))
+          end
+        end
+      end
+    }
+  \endgroup
+  \def\pdfescapestring#1{\directlua{UTF16oct('\luaescapestring{#1}')}}
+  \ifnum\luatexversion>84
+    % For LuaTeX >= 0.85
+    \def\pdfdest{\pdfextension dest}
+    \let\pdfoutput\outputmode
+    \def\pdfliteral{\pdfextension literal}
+    \def\pdfcatalog{\pdfextension catalog}
+    \def\pdftexversion{\numexpr\pdffeedback version\relax}
+    \let\pdfximage\saveimageresource
+    \let\pdfrefximage\useimageresource
+    \let\pdflastximage\lastsavedimageresourceindex
+    \def\pdfendlink{\pdfextension endlink\relax}
+    \def\pdfoutline{\pdfextension outline}
+    \def\pdfstartlink{\pdfextension startlink}
+    \def\pdffontattr{\pdfextension fontattr}
+    \def\pdfobj{\pdfextension obj}
+    \def\pdflastobj{\numexpr\pdffeedback lastobj\relax}
+    \let\pdfpagewidth\pagewidth
+    \let\pdfpageheight\pageheight
+    \edef\pdfhorigin{\pdfvariable horigin}
+    \edef\pdfvorigin{\pdfvariable vorigin}
+  \fi
+\fi
+
 % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
 % can be set).  So we test for \relax and 0 as well as being undefined.
 \ifx\pdfoutput\thisisundefined
@@ -1283,18 +1341,23 @@ output) for that.)}
     % page number.  We could generate a destination for the section
     % text in the case where a section has no node, but it doesn't
     % seem worth the trouble, since most documents are normally structured.
-    \edef\pdfoutlinedest{#3}%
-    \ifx\pdfoutlinedest\empty
-      \def\pdfoutlinedest{#4}%
-    \else
-      \txiescapepdf\pdfoutlinedest
-    \fi
-    %
-    % Also escape PDF chars in the display string.
-    \edef\pdfoutlinetext{#1}%
-    \txiescapepdf\pdfoutlinetext
-    %
-    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+    {
+      \ifx\luatexversion\thisisundefined \else
+        \turnoffactive % LuaTeX can use Unicode strings for PDF
+      \fi
+      \edef\pdfoutlinedest{#3}%
+      \ifx\pdfoutlinedest\empty
+        \def\pdfoutlinedest{#4}%
+      \else
+        \txiescapepdf\pdfoutlinedest
+      \fi
+      %
+      % Also escape PDF chars in the display string.
+      \edef\pdfoutlinetext{#1}%
+      \txiescapepdf\pdfoutlinetext
+      %
+      \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+    }
   }
   %
   \def\pdfmakeoutlines{%
@@ -1449,6 +1512,233 @@ output) for that.)}
   \let\pdfmakeoutlines = \relax
 \fi  % \ifx\pdfoutput
 
+%
+% For XeTeX
+%
+\newif\iftxiuseunicodedestname
+\ifx\XeTeXrevision\thisisundefined
+\else
+  %
+  % XeTeX version check
+  %
+  \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99995}>-1
+    % XeTeX 0.99995+ contains xdvipdfmx 20160307+.
+    % It can handle Unicode destination name for PDF.
+    \txiuseunicodedestnametrue
+  \else
+    % XeTeX < 0.99995 can not handle Unicode destination name for PDF
+    % because xdvipdfmx 20150315 has UTF-16 convert issue.
+    % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
+    \txiuseunicodedestnamefalse
+  \fi
+  %
+  % PDF outline support
+  %
+  \pdfmakepagedesttrue \relax
+  % Emulate the primitive of pdfTeX
+  \def\pdfdest name#1 xyz{%
+    \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}%
+  }
+  \def\pdfmkdest#1{{%
+    % We have to set dummies so commands such as @code, and characters
+    % such as \, aren't expanded when present in a section title.
+    \indexnofonts
+    \iftxiuseunicodedestname
+      \def\pdfdestname{#1}% Pass through Unicode characters.
+    \else
+      \edef\pdfdestname{#1}% Replace Unicode characters to ASCII.
+    \fi
+    \turnoffactive
+    \makevalueexpandable
+    \txiescapepdf\pdfdestname
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
+  %
+  \def\dopdfoutline#1#2#3#4{%
+    \iftxiuseunicodedestname
+      \def\pdfoutlinedest{#3}% Pass through Unicode characters.
+    \else
+      \edef\pdfoutlinedest{#3}% Replace Unicode characters to ASCII.
+    \fi
+    \ifx\pdfoutlinedest\empty
+      \def\pdfoutlinedest{#4}%
+    \fi
+    {
+      \turnoffactive
+      \txiescapepdf\pdfoutlinedest
+      \edef\pdfoutlinetext{#1}%
+      \txiescapepdf\pdfoutlinetext
+      %
+      \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
+        << /S /GoTo /D (name\pdfoutlinedest) >> >> }%
+    }
+  }
+  %
+  \def\pdfmakeoutlines{%
+    \begingroup
+      %
+      % In the case of XeTeX, counts of subentries is not necesary.
+      % Therefore, read toc only once.
+      %
+      % We use the node names as the destinations.
+      \def\partentry##1##2##3##4{}% ignore parts in the outlines
+      \def\numchapentry##1##2##3##4{%
+        \dopdfoutline{##1}{1}{##3}{##4}}%
+      \def\numsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{2}{##3}{##4}}%
+      \def\numsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{3}{##3}{##4}}%
+      \def\numsubsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{4}{##3}{##4}}%
+      %
+      \let\appentry\numchapentry%
+      \let\appsecentry\numsecentry%
+      \let\appsubsecentry\numsubsecentry%
+      \let\appsubsubsecentry\numsubsubsecentry%
+      \let\unnchapentry\numchapentry%
+      \let\unnsecentry\numsecentry%
+      \let\unnsubsecentry\numsubsecentry%
+      \let\unnsubsubsecentry\numsubsubsecentry%
+      %
+      % In the case of XeTeX, xdvipdfmx converts strings to UTF-16.
+      % Therefore, the encoding and the language may not be considered.
+      %
+      \indexnofonts
+      \setupdatafile
+      % We can have normal brace characters in the PDF outlines, unlike
+      % Texinfo index files.  So set that up.
+      \def\{{\lbracecharliteral}%
+      \def\}{\rbracecharliteral}%
+      \catcode`\\=\active \otherbackslash
+      \input \tocreadfilename
+    \endgroup
+  }
+  {\catcode`[=1 \catcode`]=2
+   \catcode`{=\other \catcode`}=\other
+   \gdef\lbracecharliteral[{]%
+   \gdef\rbracecharliteral[}]%
+  ]
+
+  \special{pdf:docview << /PageMode /UseOutlines >> }
+  % ``\special{pdf:tounicode ...}'' is not necessary
+  % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it.
+  % However, due to UTF-16 convert issue of xdvipdfmx 20150315,
+  % ``\special{pdf:dest ...}'' can not handle non-ASCII strings.
+  % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
+%
+  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+    \ifx\PP\D\let\nextsp\relax
+    \else\let\nextsp\skipspaces
+      \addtokens{\filename}{\PP}%
+      \advance\filenamelength by 1
+    \fi
+    \nextsp}
+  \def\getfilename#1{%
+    \filenamelength=0
+    % If we don't expand the argument now, \skipspaces will get
+    % snagged on things like "@value{foo}".
+    \edef\temp{#1}%
+    \expandafter\skipspaces\temp|\relax
+  }
+  % make a live url in pdf output.
+  \def\pdfurl#1{%
+    \begingroup
+      % it seems we really need yet another set of dummies; have not
+      % tried to figure out what each command should do in the context
+      % of @url.  for now, just make @/ a no-op, that's the only one
+      % people have actually reported a problem with.
+      %
+      \normalturnoffactive
+      \def\@{@}%
+      \let\/=\empty
+      \makevalueexpandable
+      % do we want to go so far as to use \indexnofonts instead of just
+      % special-casing \var here?
+      \def\var##1{##1}%
+      %
+      \leavevmode\setcolor{\urlcolor}%
+      \special{pdf:bann << /Border [0 0 0]
+        /Subtype /Link /A << /S /URI /URI (#1) >> >>}%
+    \endgroup}
+  \def\endlink{\setcolor{\maincolor}\special{pdf:eann}}
+  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+  \def\maketoks{%
+    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+    \ifx\first0\adn0
+    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+    \else
+      \ifnum0=\countA\else\makelink\fi
+      \ifx\first.\let\next=\done\else
+        \let\next=\maketoks
+        \addtokens{\toksB}{\the\toksD}
+        \ifx\first,\addtokens{\toksB}{\space}\fi
+      \fi
+    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+    \next}
+  \def\makelink{\addtokens{\toksB}%
+    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+  \def\pdflink#1{%
+    \special{pdf:bann << /Border [0 0 0]
+      /Type /Annot /Subtype /Link /A << /S /GoTo /D (name#1) >> >>}%
+    \setcolor{\linkcolor}#1\endlink}
+  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+%
+  %
+  % @image support
+  %
+  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
+  \def\doxeteximage#1#2#3{%
+    \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % XeTeX (and the PDF format) support .pdf, .png, .jpg (among
+    % others).  Let's try in that order, PDF first since if
+    % someone has a scalable image, presumably better to use that than a
+    % bitmap.
+    \let\xeteximgext=\empty
+    \begingroup
+      \openin 1 #1.pdf \ifeof 1
+        \openin 1 #1.PDF \ifeof 1
+          \openin 1 #1.png \ifeof 1
+            \openin 1 #1.jpg \ifeof 1
+              \openin 1 #1.jpeg \ifeof 1
+                \openin 1 #1.JPG \ifeof 1
+                  \errmessage{Could not find image file #1 for XeTeX}%
+                \else \gdef\xeteximgext{JPG}%
+                \fi
+              \else \gdef\xeteximgext{jpeg}%
+              \fi
+            \else \gdef\xeteximgext{jpg}%
+            \fi
+          \else \gdef\xeteximgext{png}%
+          \fi
+        \else \gdef\xeteximgext{PDF}%
+        \fi
+      \else \gdef\xeteximgext{pdf}%
+      \fi
+      \closein 1
+    \endgroup
+    %
+    \def\xetexpdfext{pdf}%
+    \ifx\xeteximgext\xetexpdfext
+      \XeTeXpdffile "#1".\xeteximgext ""
+    \else
+      \def\xetexpdfext{PDF}%
+      \ifx\xeteximgext\xetexpdfext
+        \XeTeXpdffile "#1".\xeteximgext ""
+      \else
+        \XeTeXpicfile "#1".\xeteximgext ""
+      \fi
+    \fi
+    \ifdim \wd0 >0pt width \xeteximagewidth \fi
+    \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
+  }
+\fi
 
 \message{fonts,}
 
@@ -2609,6 +2899,7 @@ end
     \setbox0 = \hbox{\ignorespaces #2}% look for second arg
     \ifdim\wd0 > 0pt
       \ifpdf
+        % For pdfTeX and LuaTeX
         \ifurefurlonlylink
           % PDF plus option to not display url, show just arg
           \unhbox0             
@@ -2618,7 +2909,19 @@ end
           \unhbox0\ (\urefcode{#1})%
         \fi
       \else
-        \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
+        \ifx\XeTeXrevision\thisisundefined
+          \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
+        \else
+          % For XeTeX
+          \ifurefurlonlylink
+            % PDF plus option to not display url, show just arg
+            \unhbox0             
+          \else
+            % PDF, normally display both arg and url for consistency,
+            % visibility, if the pdf is eventually used to print, etc.
+            \unhbox0\ (\urefcode{#1})%
+          \fi
+        \fi
       \fi
     \else
       \urefcode{#1}% only url given, so show it
@@ -2719,7 +3022,18 @@ end
     \endlink
   \endgroup}
 \else
-  \let\email=\uref
+  \ifx\XeTeXrevision\thisisundefined
+    \let\email=\uref
+  \else
+    \def\email#1{\doemail#1,,\finish}
+    \def\doemail#1,#2,#3\finish{\begingroup
+      \unsepspaces
+      \pdfurl{mailto:#1}%
+      \setbox0 = \hbox{\ignorespaces #2}%
+      \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+      \endlink
+    \endgroup}
+  \fi
 \fi
 
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
@@ -3273,13 +3587,16 @@ end
 \newif\ifseenauthor
 \newif\iffinishedtitlepage
 
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+% @setcontentsaftertitlepage used to do an implicit @contents or
+% @shortcontents after @end titlepage, but it is now obsolete.
+\def\setcontentsaftertitlepage{%
+  \errmessage{@setcontentsaftertitlepage has been removed as a Texinfo
+              command; move your @contents command if you want the contents
+              after the title page.}}%
+\def\setshortcontentsaftertitlepage{%
+  \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
+              command; move your @shortcontents and @contents commands if you 
+              want the contents after the title page.}}%
 
 \parseargdef\shorttitlepage{%
   \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
@@ -3321,20 +3638,6 @@ end
   % Need this before the \...aftertitlepage checks so that if they are
   % in effect the toc pages will come out with page numbers.
   \HEADINGSon
-  %
-  % If they want short, they certainly want long too.
-  \ifsetshortcontentsaftertitlepage
-    \shortcontents
-    \contents
-    \global\let\shortcontents = \relax
-    \global\let\contents = \relax
-  \fi
-  %
-  \ifsetcontentsaftertitlepage
-    \contents
-    \global\let\contents = \relax
-    \global\let\shortcontents = \relax
-  \fi
 }
 
 \def\finishtitlepage{%
@@ -3438,7 +3741,7 @@ end
   %
   % Leave some space for the footline.  Hopefully ok to assume
   % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -12pt
+  \global\advance\txipageheight by -12pt
   \global\advance\vsize by -12pt
 }
 
@@ -3463,9 +3766,9 @@ end
 \def\oddheadingmarks{\headingmarks{odd}{heading}}
 \def\evenfootingmarks{\headingmarks{even}{footing}}
 \def\oddfootingmarks{\headingmarks{odd}{footing}}
-\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
+\parseargdef\everyheadingmarks{\headingmarks{even}{heading}{#1}
                           \headingmarks{odd}{heading}{#1} }
-\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
+\parseargdef\everyfootingmarks{\headingmarks{even}{footing}{#1}
                           \headingmarks{odd}{footing}{#1} }
 % #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
 \def\headingmarks#1#2#3 {%
@@ -3486,7 +3789,7 @@ end
 % By default, they are off at the start of a document,
 % and turned `on' after @end titlepage.
 
-\def\headings #1 {\csname HEADINGS#1\endcsname}
+\parseargdef\headings{\csname HEADINGS#1\endcsname}
 
 \def\headingsoff{% non-global headings elimination
   \evenheadline={\hfil}\evenfootline={\hfil}%
@@ -4737,11 +5040,10 @@ end
   \def\_{\normalunderscore}%
   \def\-{}% @- shouldn't affect sorting
   %
-  \def\lbracechar{{\indexlbrace}}%
-  \def\rbracechar{{\indexrbrace}}%
-  \let\{=\lbracechar
-  \let\}=\rbracechar
-  %
+  \uccode`\1=`\{ \uppercase{\def\{{1}}%
+  \uccode`\1=`\} \uppercase{\def\}{1}}%
+  \let\lbracechar\{%
+  \let\rbracechar\}%
   %
   % Non-English letters.
   \def\AA{AA}%
@@ -4901,9 +5203,15 @@ end
   \indexdummies % Must do this here, since \bf, etc expand at this stage
   \useindexbackslash % \indexbackslash isn't defined now so it will be output 
                      % as is; and it will print as backslash.
+  % The braces around \indexbrace are recognized by texindex.
+  %
   % Get the string to sort by, by processing the index entry with all
   % font commands turned off.
   {\indexnofonts
+   \def\lbracechar{{\indexlbrace}}%
+   \def\rbracechar{{\indexrbrace}}%
+   \let\{=\lbracechar
+   \let\}=\rbracechar
    \indexnonalnumdisappear
    \xdef\indexsortkey{}%
    \let\sortas=\indexwritesortas
@@ -5237,7 +5545,14 @@ end
         % preserve coloured links across page boundaries.  Otherwise the marks
         % would get in the way of \lastbox in \insertindexentrybox.
       \else
-        \hskip\skip\thinshrinkable #1%
+        \ifx\XeTeXrevision\thisisundefined
+          \hskip\skip\thinshrinkable #1%
+        \else
+          \pdfgettoks#1.%
+          \bgroup\let\domark\relax
+            \hskip\skip\thinshrinkable\the\toksA
+          \egroup
+        \fi
       \fi
     \fi
     \egroup % end \boxA
@@ -5372,7 +5687,11 @@ end
   \ifpdf
     \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
   \else
-    #2
+    \ifx\XeTeXrevision\thisisundefined
+      #2
+    \else
+      \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+    \fi
   \fi
   \par
 }}
@@ -5505,7 +5824,7 @@ end
   \wd0=\hsize \wd2=\hsize
   \vbox{%
     \vskip\doublecolumntopgap
-    \hbox to\pagewidth{\box0\hfil\box2}}%
+    \hbox to\txipagewidth{\box0\hfil\box2}}%
 }
 
 
@@ -5532,7 +5851,7 @@ end
   % goal.  When TeX sees \eject from below which follows the final
   % section, it invokes the new output routine that we've set after
   % \balancecolumns below; \onepageout will try to fit the two columns
-  % and the final section into the vbox of \pageheight (see
+  % and the final section into the vbox of \txipageheight (see
   % \pagebody), causing an overfull box.
   %
   % Note that glue won't work here, because glue does not exercise the
@@ -6016,7 +6335,7 @@ end
   \fi
 }
 
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname}
 
 \def\CHAPPAGoff{%
 \global\let\contentsalignmacro = \chappager
@@ -6049,7 +6368,13 @@ end
 \def\Yomitfromtockeyword{Yomitfromtoc}
 %
 \def\chapmacro#1#2#3{%
-  \checkenv{}% chapters, etc., should not start inside an environment.
+  \expandafter\ifx\thisenv\titlepage\else
+    \checkenv{}% chapters, etc., should not start inside an environment.
+  \fi
+  % FIXME: \chapmacro is currently called from inside \titlepage when
+  % \setcontentsaftertitlepage to print the "Table of Contents" heading, but
+  % this should probably be done by \sectionheading with an option to print
+  % in chapter size.
   %
   % Insert the first mark before the heading break (see notes for \domark).
   \let\prevchapterdefs=\lastchapterdefs
@@ -6156,30 +6481,6 @@ end
 }
 
 
-% I don't think this chapter style is supported any more, so I'm not
-% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
-%
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-%
-\def\unnchfopen #1{%
-  \chapoddpage
-  \vbox{\chapfonts \raggedtitlesettings #1\par}%
-  \nobreak\bigskip\nobreak
-}
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-\def\centerchfopen #1{%
-  \chapoddpage
-  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
-  \nobreak\bigskip \nobreak
-}
-\def\CHAPFopen{%
-  \global\let\chapmacro=\chfopen
-  \global\let\centerchapmacro=\centerchfopen}
-
-
 % Section titles.  These macros combine the section number parts and
 % call the generic \sectionheading to do the printing.
 %
@@ -7624,12 +7925,12 @@ end
 % Argument is macro body with arguments substituted
 \def\scanmacro#1{%
   \newlinechar`\^^M
-  \def\xprocessmacroarg{\eatspaces}%
+  \def\xeatspaces{\eatspaces}%
   %
   % Process the macro body under the current catcode regime.
   \scantokens{#1\texinfoc}\aftermacro%
   %
-  % The \c is to remove the \newlinechar added by \scantokens, and
+  % The \texinfoc is to remove the \newlinechar added by \scantokens, and
   % can be noticed by \parsearg.
   %   The \aftermacro allows a \comment at the end of the macro definition
   % to duplicate itself past the final \newlinechar added by \scantokens:
@@ -7642,15 +7943,7 @@ end
 
 % Used for copying and captions
 \def\scanexp#1{%
-  \bgroup
-  % Undo catcode changes of \startcontents and \printindex
-  % When called from @insertcopying or (short)caption, we need active
-  % backslash to get it printed correctly.
-  % FIXME: This may not be needed.
-  %\catcode`\@=0 \catcode`\\=\active \escapechar=`\@
-  \edef\temp{\noexpand\scanmacro{#1}}%
-  \temp
-  \egroup
+  \expandafter\scanmacro\expandafter{#1}%
 }
 
 \newcount\paramno   % Count of parameters
@@ -7720,7 +8013,7 @@ end
   \catcode`\_=\other
   \catcode`\|=\other
   \catcode`\~=\other
-  \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
+  \passthroughcharstrue
 }
 
 \def\scanargctxt{% used for copying and captions, not macros.
@@ -7854,7 +8147,7 @@ end
   \paramno=0\def\paramlist{}%
   \let\hash\relax
   % \hash is redefined to `#' later to get it into definitions
-  \let\processmacroarg\relax
+  \let\xeatspaces\relax
   \parsemargdefxxx#1,;,%
   \ifnum\paramno<10\relax\else
     \paramno0\relax
@@ -7866,7 +8159,7 @@ end
   \else \let\next=\parsemargdefxxx
     \advance\paramno by 1
     \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
-        {\processmacroarg{\hash\the\paramno}}%
+        {\xeatspaces{\hash\the\paramno}}%
     \edef\paramlist{\paramlist\hash\the\paramno,}%
   \fi\next}
 
@@ -8092,16 +8385,9 @@ end
 %%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%%
 
 
-
-% Remove following spaces at the expansion stage.
-% This works because spaces are discarded before each argument when TeX is 
-% getting the arguments for a macro.
-% This must not be immediately followed by a }.
-\long\def\gobblespaces#1{#1}
-
 % This defines a Texinfo @macro or @rmacro, called by \parsemacbody.
 %    \macrobody has the body of the macro in it, with placeholders for
-% its parameters, looking like "\processmacroarg{\hash 1}".
+% its parameters, looking like "\xeatspaces{\hash 1}".
 %    \paramno is the number of parameters
 %    \paramlist is a TeX parameter text, e.g. "#1,#2,#3,"
 % There are eight cases: recursive and nonrecursive macros of zero, one,
@@ -8112,14 +8398,13 @@ end
 \def\defmacro{%
   \let\hash=##% convert placeholders to macro parameter chars
   \ifnum\paramno=1
-    \def\processmacroarg{\gobblespaces}%
+    \def\xeatspaces##1{##1}%
     % This removes the pair of braces around the argument.  We don't
     % use \eatspaces, because this can cause ends of lines to be lost
     % when the argument to \eatspaces is read, leading to line-based
     % commands like "@itemize" not being read correctly.
   \else
-    \def\processmacroarg{\xprocessmacroarg}%
-    \let\xprocessmacroarg\relax
+    \let\xeatspaces\relax % suppress expansion
   \fi
   \ifrecursive   %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     \ifcase\paramno
@@ -8132,12 +8417,9 @@ end
          \noexpand\braceorline
          \expandafter\noexpand\csname\the\macname @@@\endcsname}%
       \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-         \expandafter\noexpand\csname\the\macname @@@@\endcsname{%
-           \noexpand\gobblespaces##1\empty}%
-           % The \empty is for \gobblespaces in case #1 is empty
-         }%
-      \expandafter\xdef\csname\the\macname @@@@\endcsname##1{%
-         \egroup\noexpand\scanmacro{\macrobody}}%
+        \egroup
+        \noexpand\scanmacro{\macrobody}%
+        }%
     \else
       \ifnum\paramno<10\relax % at most 9
         % See non-recursive section below for comments
@@ -8176,11 +8458,6 @@ end
          \noexpand\braceorline
          \expandafter\noexpand\csname\the\macname @@@\endcsname}%
       \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-         \expandafter\noexpand\csname\the\macname @@@@\endcsname{%
-           \noexpand\gobblespaces##1\empty}%
-           % The \empty is for \gobblespaces in case #1 is empty
-         }%
-      \expandafter\xdef\csname\the\macname @@@@\endcsname##1{%
         \egroup
         \noexpand\scanmacro{\macrobody}%
         }%
@@ -8499,6 +8776,7 @@ end
   %
   % Make link in pdf output.
   \ifpdf
+    % For pdfTeX and LuaTeX
     {\indexnofonts
      \turnoffactive
      \makevalueexpandable
@@ -8525,11 +8803,48 @@ end
      \fi
     }%
     \setcolor{\linkcolor}%
+  \else
+    \ifx\XeTeXrevision\thisisundefined
+    \else
+      % For XeTeX
+      {\indexnofonts
+       \turnoffactive
+       \makevalueexpandable
+       % This expands tokens, so do it after making catcode changes, so _
+       % etc. don't get their TeX definitions.  This ignores all spaces in
+       % #4, including (wrongly) those in the middle of the filename.
+       \getfilename{#4}%
+       %
+       % This (wrongly) does not take account of leading or trailing
+       % spaces in #1, which should be ignored.
+       \iftxiuseunicodedestname
+         \def\pdfxrefdest{#1}% Pass through Unicode characters.
+       \else
+         \edef\pdfxrefdest{#1}% Replace Unicode characters to ASCII.
+       \fi
+       \ifx\pdfxrefdest\empty
+         \def\pdfxrefdest{Top}% no empty targets
+       \else
+         \txiescapepdf\pdfxrefdest  % escape PDF special chars
+       \fi
+       %
+       \leavevmode
+       \ifnum\filenamelength>0
+         % By the default settings,
+         % XeTeX (xdvipdfmx) replaces link destination names with integers.
+         % In this case, the replaced destination names of
+         % remote PDF cannot be known. In order to avoid replacement,
+         % you can use commandline option `-C 0x0010' for xdvipdfmx.
+         \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
+           << /S /GoToR /F (\the\filename.pdf) /D (name\pdfxrefdest) >> >>}%
+       \else
+         \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
+           << /S /GoTo /D (name\pdfxrefdest) >> >>}%
+       \fi
+      }%
+      \setcolor{\linkcolor}%
+    \fi
   \fi
-  %
-  % Float references are printed completely differently: "Figure 1.2"
-  % instead of "[somenode], p.3".  We distinguish them by the
-  % LABEL-title being set to a magic string.
   {%
     % Have to otherify everything special to allow the \csname to
     % include an _ in the xref name, etc.
@@ -8538,6 +8853,10 @@ end
     \expandafter\global\expandafter\let\expandafter\Xthisreftitle
       \csname XR#1-title\endcsname
   }%
+  %
+  % Float references are printed completely differently: "Figure 1.2"
+  % instead of "[somenode], p.3".  \iffloat distinguishes them by
+  % \Xthisreftitle being set to a magic string.
   \iffloat\Xthisreftitle
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
@@ -8596,12 +8915,15 @@ end
       %
       % output the `page 3'.
       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-           \ifx,\tokenafterxref
-      \else\ifx.\tokenafterxref
-      \else\ifx;\tokenafterxref
-      \else\ifx)\tokenafterxref
-      \else,% add a , if xref not followed by punctuation
-      \fi\fi\fi\fi
+      % Add a , if xref followed by a space
+      \if\space\noexpand\tokenafterxref ,%
+      \else\ifx\       \tokenafterxref ,% @TAB
+      \else\ifx\*\tokenafterxref ,%   @*
+      \else\ifx\ \tokenafterxref ,%   @SPACE
+      \else\ifx\
+                \tokenafterxref ,%    @NL
+      \else\ifx\tie\tokenafterxref ,% @tie
+      \fi\fi\fi\fi\fi\fi
     \fi\fi
   \fi
   \endlink
@@ -8831,9 +9153,6 @@ end
   % now.  --karl, 15jan04.
   \catcode`\\=\other
   %
-  % Make the characters 128-255 be printing characters.
-  {\setnonasciicharscatcodenonglobal\other}%
-  %
   % @ is our escape character in .aux files, and we need braces.
   \catcode`\{=1
   \catcode`\}=2
@@ -8897,7 +9216,7 @@ end
   % We want to typeset this text as a normal paragraph, even if the
   % footnote reference occurs in (for example) a display environment.
   % So reset some parameters.
-  \hsize=\pagewidth
+  \hsize=\txipagewidth
   \interlinepenalty\interfootnotelinepenalty
   \splittopskip\ht\strutbox % top baseline for broken footnotes
   \splitmaxdepth\dp\strutbox
@@ -9076,12 +9395,21 @@ end
   %
   % Output the image.
   \ifpdf
+    % For pdfTeX and LuaTeX <= 0.80
     \dopdfimage{#1}{#2}{#3}%
   \else
-    % \epsfbox itself resets \epsf?size at each figure.
-    \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-    \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-    \epsfbox{#1.eps}%
+    \ifx\XeTeXrevision\thisisundefined
+      % For epsf.tex
+      % \epsfbox itself resets \epsf?size at each figure.
+      \setbox0 = \hbox{\ignorespaces #2}%
+        \ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+      \setbox0 = \hbox{\ignorespaces #3}%
+        \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+      \epsfbox{#1.eps}%
+    \else
+      % For XeTeX
+      \doxeteximage{#1}{#2}{#3}%
+    \fi
   \fi
   %
   \ifimagevmode
@@ -9203,7 +9531,7 @@ end
     %
     \ifx\thiscaption\empty \else
       \ifx\floatident\empty \else
-       \appendtomacro\captionline{: }% had ident, so need a colon between
+        \appendtomacro\captionline{: }% had ident, so need a colon between
       \fi
       %
       % caption text.
@@ -9230,30 +9558,17 @@ end
         \requireauxfile
         \atdummies
         %
-        % since we read the caption text in the macro world, where ^^M
-        % is turned into a normal character, we have to scan it back, so
-        % we don't write the literal three characters "^^M" into the aux file.
-       \scanexp{%
-         \xdef\noexpand\gtemp{%
-           \ifx\thisshortcaption\empty
-             \thiscaption
-           \else
-             \thisshortcaption
-           \fi
-         }%
-       }%
+        \ifx\thisshortcaption\empty
+          \def\gtemp{\thiscaption}%
+        \else
+          \def\gtemp{\thisshortcaption}%
+        \fi
         \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
-         \ifx\gtemp\empty \else : \gtemp \fi}}%
+          \ifx\gtemp\empty \else : \gtemp \fi}}%
       }%
     \fi
   \egroup  % end of \vtop
   %
-  % place the captured inserts
-  %
-  % BEWARE: when the floats start floating, we have to issue warning
-  % whenever an insert appears inside a float which could possibly
-  % float. --kasal, 26may04
-  %
   \checkinserts
 }
 
@@ -9428,6 +9743,70 @@ directory should work if nowhere else does.}
   \global\righthyphenmin = #3\relax
 }
 
+% XeTeX and LuaTeX can handle native Unicode.
+% Their default I/O is UTF-8 sequence instead of byte-wise.
+% Other TeX engine (pdfTeX etc.) I/O is byte-wise.
+%
+\newif\iftxinativeunicodecapable
+\newif\iftxiusebytewiseio
+
+\ifx\XeTeXrevision\thisisundefined
+  \ifx\luatexversion\thisisundefined
+    \txinativeunicodecapablefalse
+    \txiusebytewiseiotrue
+  \else
+    \txinativeunicodecapabletrue
+    \txiusebytewiseiofalse
+  \fi
+\else
+  \txinativeunicodecapabletrue
+  \txiusebytewiseiofalse
+\fi
+
+% Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex
+% for non-UTF-8 (byte-wise) encodings.
+%
+\def\setbytewiseio{%
+  \ifx\XeTeXrevision\thisisundefined
+  \else
+    \XeTeXdefaultencoding "bytes"  % For subsequent files to be read
+    \XeTeXinputencoding "bytes"  % For document root file
+    % Unfortunately, there seems to be no corresponding XeTeX command for
+    % output encoding.  This is a problem for auxiliary index and TOC files.
+    % The only solution would be perhaps to write out @U{...} sequences in
+    % place of non-ASCII characters.
+  \fi
+
+  \ifx\luatexversion\thisisundefined
+  \else
+    \directlua{
+    local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub
+    local function convert_char (char)
+      return utf8_char(byte(char))
+    end
+
+    local function convert_line (line)
+      return gsub(line, ".", convert_char)
+    end
+
+    callback.register("process_input_buffer", convert_line)
+
+    local function convert_line_out (line)
+      local line_out = ""
+      for c in string.utfvalues(line) do
+         line_out = line_out .. string.char(c)
+      end
+      return line_out
+    end
+
+    callback.register("process_output_buffer", convert_line_out)
+    }
+  \fi
+
+  \txiusebytewiseiotrue
+}
+
+
 % Helpers for encodings.
 % Set the catcode of characters 128 through 255 to the specified number.
 %
@@ -9452,6 +9831,7 @@ directory should work if nowhere else does.}
 %
 \def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz}
 \def\documentencodingzzz#1{%
+  %
   % Encoding being declared for the document.
   \def\declaredencoding{\csname #1.enc\endcsname}%
   %
@@ -9467,22 +9847,37 @@ directory should work if nowhere else does.}
      \asciichardefs
   %
   \else \ifx \declaredencoding \lattwo
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \lattwochardefs
   %
   \else \ifx \declaredencoding \latone
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \latonechardefs
   %
   \else \ifx \declaredencoding \latnine
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \latninechardefs
   %
   \else \ifx \declaredencoding \utfeight
-     \setnonasciicharscatcode\active
-     % since we already invoked \utfeightchardefs at the top level
-     % (below), do not re-invoke it, then our check for duplicated
-     % definitions triggers.  Making non-ascii chars active is enough.
+     \iftxinativeunicodecapable
+       % For native Unicode (XeTeX and LuaTeX)
+       \nativeunicodechardefs
+     \else
+       % For UTF-8 byte sequence (TeX, eTeX and pdfTeX)
+       \setnonasciicharscatcode\active
+       % since we already invoked \utfeightchardefs at the top level
+       % (below), do not re-invoke it, then our check for duplicated
+       % definitions triggers.  Making non-ascii chars active is enough.
+     \fi
   %
   \else
     \message{Ignoring unknown document encoding: #1.}%
@@ -9508,109 +9903,119 @@ directory should work if nowhere else does.}
 % macros containing the character definitions.
 \setnonasciicharscatcode\active
 %
+
+\def\gdefchar#1#2{%
+\gdef#1{%
+   \ifpassthroughchars
+     \string#1%
+   \else
+     #2%
+   \fi
+}}
+
 % Latin1 (ISO-8859-1) character definitions.
 \def\latonechardefs{%
-  \gdef^^a0{\tie}
-  \gdef^^a1{\exclamdown}
-  \gdef^^a2{{\tcfont \char162}} % cent
-  \gdef^^a3{\pounds}
-  \gdef^^a4{{\tcfont \char164}} % currency
-  \gdef^^a5{{\tcfont \char165}} % yen
-  \gdef^^a6{{\tcfont \char166}} % broken bar
-  \gdef^^a7{\S}
-  \gdef^^a8{\"{}}
-  \gdef^^a9{\copyright}
-  \gdef^^aa{\ordf}
-  \gdef^^ab{\guillemetleft}
-  \gdef^^ac{\ensuremath\lnot}
-  \gdef^^ad{\-}
-  \gdef^^ae{\registeredsymbol}
-  \gdef^^af{\={}}
-  %
-  \gdef^^b0{\textdegree}
-  \gdef^^b1{$\pm$}
-  \gdef^^b2{$^2$}
-  \gdef^^b3{$^3$}
-  \gdef^^b4{\'{}}
-  \gdef^^b5{$\mu$}
-  \gdef^^b6{\P}
-  \gdef^^b7{\ensuremath\cdot}
-  \gdef^^b8{\cedilla\ }
-  \gdef^^b9{$^1$}
-  \gdef^^ba{\ordm}
-  \gdef^^bb{\guillemetright}
-  \gdef^^bc{$1\over4$}
-  \gdef^^bd{$1\over2$}
-  \gdef^^be{$3\over4$}
-  \gdef^^bf{\questiondown}
-  %
-  \gdef^^c0{\`A}
-  \gdef^^c1{\'A}
-  \gdef^^c2{\^A}
-  \gdef^^c3{\~A}
-  \gdef^^c4{\"A}
-  \gdef^^c5{\ringaccent A}
-  \gdef^^c6{\AE}
-  \gdef^^c7{\cedilla C}
-  \gdef^^c8{\`E}
-  \gdef^^c9{\'E}
-  \gdef^^ca{\^E}
-  \gdef^^cb{\"E}
-  \gdef^^cc{\`I}
-  \gdef^^cd{\'I}
-  \gdef^^ce{\^I}
-  \gdef^^cf{\"I}
-  %
-  \gdef^^d0{\DH}
-  \gdef^^d1{\~N}
-  \gdef^^d2{\`O}
-  \gdef^^d3{\'O}
-  \gdef^^d4{\^O}
-  \gdef^^d5{\~O}
-  \gdef^^d6{\"O}
-  \gdef^^d7{$\times$}
-  \gdef^^d8{\O}
-  \gdef^^d9{\`U}
-  \gdef^^da{\'U}
-  \gdef^^db{\^U}
-  \gdef^^dc{\"U}
-  \gdef^^dd{\'Y}
-  \gdef^^de{\TH}
-  \gdef^^df{\ss}
-  %
-  \gdef^^e0{\`a}
-  \gdef^^e1{\'a}
-  \gdef^^e2{\^a}
-  \gdef^^e3{\~a}
-  \gdef^^e4{\"a}
-  \gdef^^e5{\ringaccent a}
-  \gdef^^e6{\ae}
-  \gdef^^e7{\cedilla c}
-  \gdef^^e8{\`e}
-  \gdef^^e9{\'e}
-  \gdef^^ea{\^e}
-  \gdef^^eb{\"e}
-  \gdef^^ec{\`{\dotless i}}
-  \gdef^^ed{\'{\dotless i}}
-  \gdef^^ee{\^{\dotless i}}
-  \gdef^^ef{\"{\dotless i}}
-  %
-  \gdef^^f0{\dh}
-  \gdef^^f1{\~n}
-  \gdef^^f2{\`o}
-  \gdef^^f3{\'o}
-  \gdef^^f4{\^o}
-  \gdef^^f5{\~o}
-  \gdef^^f6{\"o}
-  \gdef^^f7{$\div$}
-  \gdef^^f8{\o}
-  \gdef^^f9{\`u}
-  \gdef^^fa{\'u}
-  \gdef^^fb{\^u}
-  \gdef^^fc{\"u}
-  \gdef^^fd{\'y}
-  \gdef^^fe{\th}
-  \gdef^^ff{\"y}
+  \gdefchar^^a0{\tie}
+  \gdefchar^^a1{\exclamdown}
+  \gdefchar^^a2{{\tcfont \char162}} % cent
+  \gdefchar^^a3{\pounds}
+  \gdefchar^^a4{{\tcfont \char164}} % currency
+  \gdefchar^^a5{{\tcfont \char165}} % yen
+  \gdefchar^^a6{{\tcfont \char166}} % broken bar
+  \gdefchar^^a7{\S}
+  \gdefchar^^a8{\"{}}
+  \gdefchar^^a9{\copyright}
+  \gdefchar^^aa{\ordf}
+  \gdefchar^^ab{\guillemetleft}
+  \gdefchar^^ac{\ensuremath\lnot}
+  \gdefchar^^ad{\-}
+  \gdefchar^^ae{\registeredsymbol}
+  \gdefchar^^af{\={}}
+  %
+  \gdefchar^^b0{\textdegree}
+  \gdefchar^^b1{$\pm$}
+  \gdefchar^^b2{$^2$}
+  \gdefchar^^b3{$^3$}
+  \gdefchar^^b4{\'{}}
+  \gdefchar^^b5{$\mu$}
+  \gdefchar^^b6{\P}
+  \gdefchar^^b7{\ensuremath\cdot}
+  \gdefchar^^b8{\cedilla\ }
+  \gdefchar^^b9{$^1$}
+  \gdefchar^^ba{\ordm}
+  \gdefchar^^bb{\guillemetright}
+  \gdefchar^^bc{$1\over4$}
+  \gdefchar^^bd{$1\over2$}
+  \gdefchar^^be{$3\over4$}
+  \gdefchar^^bf{\questiondown}
+  %
+  \gdefchar^^c0{\`A}
+  \gdefchar^^c1{\'A}
+  \gdefchar^^c2{\^A}
+  \gdefchar^^c3{\~A}
+  \gdefchar^^c4{\"A}
+  \gdefchar^^c5{\ringaccent A}
+  \gdefchar^^c6{\AE}
+  \gdefchar^^c7{\cedilla C}
+  \gdefchar^^c8{\`E}
+  \gdefchar^^c9{\'E}
+  \gdefchar^^ca{\^E}
+  \gdefchar^^cb{\"E}
+  \gdefchar^^cc{\`I}
+  \gdefchar^^cd{\'I}
+  \gdefchar^^ce{\^I}
+  \gdefchar^^cf{\"I}
+  %
+  \gdefchar^^d0{\DH}
+  \gdefchar^^d1{\~N}
+  \gdefchar^^d2{\`O}
+  \gdefchar^^d3{\'O}
+  \gdefchar^^d4{\^O}
+  \gdefchar^^d5{\~O}
+  \gdefchar^^d6{\"O}
+  \gdefchar^^d7{$\times$}
+  \gdefchar^^d8{\O}
+  \gdefchar^^d9{\`U}
+  \gdefchar^^da{\'U}
+  \gdefchar^^db{\^U}
+  \gdefchar^^dc{\"U}
+  \gdefchar^^dd{\'Y}
+  \gdefchar^^de{\TH}
+  \gdefchar^^df{\ss}
+  %
+  \gdefchar^^e0{\`a}
+  \gdefchar^^e1{\'a}
+  \gdefchar^^e2{\^a}
+  \gdefchar^^e3{\~a}
+  \gdefchar^^e4{\"a}
+  \gdefchar^^e5{\ringaccent a}
+  \gdefchar^^e6{\ae}
+  \gdefchar^^e7{\cedilla c}
+  \gdefchar^^e8{\`e}
+  \gdefchar^^e9{\'e}
+  \gdefchar^^ea{\^e}
+  \gdefchar^^eb{\"e}
+  \gdefchar^^ec{\`{\dotless i}}
+  \gdefchar^^ed{\'{\dotless i}}
+  \gdefchar^^ee{\^{\dotless i}}
+  \gdefchar^^ef{\"{\dotless i}}
+  %
+  \gdefchar^^f0{\dh}
+  \gdefchar^^f1{\~n}
+  \gdefchar^^f2{\`o}
+  \gdefchar^^f3{\'o}
+  \gdefchar^^f4{\^o}
+  \gdefchar^^f5{\~o}
+  \gdefchar^^f6{\"o}
+  \gdefchar^^f7{$\div$}
+  \gdefchar^^f8{\o}
+  \gdefchar^^f9{\`u}
+  \gdefchar^^fa{\'u}
+  \gdefchar^^fb{\^u}
+  \gdefchar^^fc{\"u}
+  \gdefchar^^fd{\'y}
+  \gdefchar^^fe{\th}
+  \gdefchar^^ff{\"y}
 }
 
 % Latin9 (ISO-8859-15) encoding character definitions.
@@ -9618,119 +10023,119 @@ directory should work if nowhere else does.}
   % Encoding is almost identical to Latin1.
   \latonechardefs
   %
-  \gdef^^a4{\euro}
-  \gdef^^a6{\v S}
-  \gdef^^a8{\v s}
-  \gdef^^b4{\v Z}
-  \gdef^^b8{\v z}
-  \gdef^^bc{\OE}
-  \gdef^^bd{\oe}
-  \gdef^^be{\"Y}
+  \gdefchar^^a4{\euro}
+  \gdefchar^^a6{\v S}
+  \gdefchar^^a8{\v s}
+  \gdefchar^^b4{\v Z}
+  \gdefchar^^b8{\v z}
+  \gdefchar^^bc{\OE}
+  \gdefchar^^bd{\oe}
+  \gdefchar^^be{\"Y}
 }
 
 % Latin2 (ISO-8859-2) character definitions.
 \def\lattwochardefs{%
-  \gdef^^a0{\tie}
-  \gdef^^a1{\ogonek{A}}
-  \gdef^^a2{\u{}}
-  \gdef^^a3{\L}
-  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
-  \gdef^^a5{\v L}
-  \gdef^^a6{\'S}
-  \gdef^^a7{\S}
-  \gdef^^a8{\"{}}
-  \gdef^^a9{\v S}
-  \gdef^^aa{\cedilla S}
-  \gdef^^ab{\v T}
-  \gdef^^ac{\'Z}
-  \gdef^^ad{\-}
-  \gdef^^ae{\v Z}
-  \gdef^^af{\dotaccent Z}
-  %
-  \gdef^^b0{\textdegree}
-  \gdef^^b1{\ogonek{a}}
-  \gdef^^b2{\ogonek{ }}
-  \gdef^^b3{\l}
-  \gdef^^b4{\'{}}
-  \gdef^^b5{\v l}
-  \gdef^^b6{\'s}
-  \gdef^^b7{\v{}}
-  \gdef^^b8{\cedilla\ }
-  \gdef^^b9{\v s}
-  \gdef^^ba{\cedilla s}
-  \gdef^^bb{\v t}
-  \gdef^^bc{\'z}
-  \gdef^^bd{\H{}}
-  \gdef^^be{\v z}
-  \gdef^^bf{\dotaccent z}
-  %
-  \gdef^^c0{\'R}
-  \gdef^^c1{\'A}
-  \gdef^^c2{\^A}
-  \gdef^^c3{\u A}
-  \gdef^^c4{\"A}
-  \gdef^^c5{\'L}
-  \gdef^^c6{\'C}
-  \gdef^^c7{\cedilla C}
-  \gdef^^c8{\v C}
-  \gdef^^c9{\'E}
-  \gdef^^ca{\ogonek{E}}
-  \gdef^^cb{\"E}
-  \gdef^^cc{\v E}
-  \gdef^^cd{\'I}
-  \gdef^^ce{\^I}
-  \gdef^^cf{\v D}
-  %
-  \gdef^^d0{\DH}
-  \gdef^^d1{\'N}
-  \gdef^^d2{\v N}
-  \gdef^^d3{\'O}
-  \gdef^^d4{\^O}
-  \gdef^^d5{\H O}
-  \gdef^^d6{\"O}
-  \gdef^^d7{$\times$}
-  \gdef^^d8{\v R}
-  \gdef^^d9{\ringaccent U}
-  \gdef^^da{\'U}
-  \gdef^^db{\H U}
-  \gdef^^dc{\"U}
-  \gdef^^dd{\'Y}
-  \gdef^^de{\cedilla T}
-  \gdef^^df{\ss}
-  %
-  \gdef^^e0{\'r}
-  \gdef^^e1{\'a}
-  \gdef^^e2{\^a}
-  \gdef^^e3{\u a}
-  \gdef^^e4{\"a}
-  \gdef^^e5{\'l}
-  \gdef^^e6{\'c}
-  \gdef^^e7{\cedilla c}
-  \gdef^^e8{\v c}
-  \gdef^^e9{\'e}
-  \gdef^^ea{\ogonek{e}}
-  \gdef^^eb{\"e}
-  \gdef^^ec{\v e}
-  \gdef^^ed{\'{\dotless{i}}}
-  \gdef^^ee{\^{\dotless{i}}}
-  \gdef^^ef{\v d}
-  %
-  \gdef^^f0{\dh}
-  \gdef^^f1{\'n}
-  \gdef^^f2{\v n}
-  \gdef^^f3{\'o}
-  \gdef^^f4{\^o}
-  \gdef^^f5{\H o}
-  \gdef^^f6{\"o}
-  \gdef^^f7{$\div$}
-  \gdef^^f8{\v r}
-  \gdef^^f9{\ringaccent u}
-  \gdef^^fa{\'u}
-  \gdef^^fb{\H u}
-  \gdef^^fc{\"u}
-  \gdef^^fd{\'y}
-  \gdef^^fe{\cedilla t}
-  \gdef^^ff{\dotaccent{}}
+  \gdefchar^^a0{\tie}
+  \gdefchar^^a1{\ogonek{A}}
+  \gdefchar^^a2{\u{}}
+  \gdefchar^^a3{\L}
+  \gdefchar^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdefchar^^a5{\v L}
+  \gdefchar^^a6{\'S}
+  \gdefchar^^a7{\S}
+  \gdefchar^^a8{\"{}}
+  \gdefchar^^a9{\v S}
+  \gdefchar^^aa{\cedilla S}
+  \gdefchar^^ab{\v T}
+  \gdefchar^^ac{\'Z}
+  \gdefchar^^ad{\-}
+  \gdefchar^^ae{\v Z}
+  \gdefchar^^af{\dotaccent Z}
+  %
+  \gdefchar^^b0{\textdegree}
+  \gdefchar^^b1{\ogonek{a}}
+  \gdefchar^^b2{\ogonek{ }}
+  \gdefchar^^b3{\l}
+  \gdefchar^^b4{\'{}}
+  \gdefchar^^b5{\v l}
+  \gdefchar^^b6{\'s}
+  \gdefchar^^b7{\v{}}
+  \gdefchar^^b8{\cedilla\ }
+  \gdefchar^^b9{\v s}
+  \gdefchar^^ba{\cedilla s}
+  \gdefchar^^bb{\v t}
+  \gdefchar^^bc{\'z}
+  \gdefchar^^bd{\H{}}
+  \gdefchar^^be{\v z}
+  \gdefchar^^bf{\dotaccent z}
+  %
+  \gdefchar^^c0{\'R}
+  \gdefchar^^c1{\'A}
+  \gdefchar^^c2{\^A}
+  \gdefchar^^c3{\u A}
+  \gdefchar^^c4{\"A}
+  \gdefchar^^c5{\'L}
+  \gdefchar^^c6{\'C}
+  \gdefchar^^c7{\cedilla C}
+  \gdefchar^^c8{\v C}
+  \gdefchar^^c9{\'E}
+  \gdefchar^^ca{\ogonek{E}}
+  \gdefchar^^cb{\"E}
+  \gdefchar^^cc{\v E}
+  \gdefchar^^cd{\'I}
+  \gdefchar^^ce{\^I}
+  \gdefchar^^cf{\v D}
+  %
+  \gdefchar^^d0{\DH}
+  \gdefchar^^d1{\'N}
+  \gdefchar^^d2{\v N}
+  \gdefchar^^d3{\'O}
+  \gdefchar^^d4{\^O}
+  \gdefchar^^d5{\H O}
+  \gdefchar^^d6{\"O}
+  \gdefchar^^d7{$\times$}
+  \gdefchar^^d8{\v R}
+  \gdefchar^^d9{\ringaccent U}
+  \gdefchar^^da{\'U}
+  \gdefchar^^db{\H U}
+  \gdefchar^^dc{\"U}
+  \gdefchar^^dd{\'Y}
+  \gdefchar^^de{\cedilla T}
+  \gdefchar^^df{\ss}
+  %
+  \gdefchar^^e0{\'r}
+  \gdefchar^^e1{\'a}
+  \gdefchar^^e2{\^a}
+  \gdefchar^^e3{\u a}
+  \gdefchar^^e4{\"a}
+  \gdefchar^^e5{\'l}
+  \gdefchar^^e6{\'c}
+  \gdefchar^^e7{\cedilla c}
+  \gdefchar^^e8{\v c}
+  \gdefchar^^e9{\'e}
+  \gdefchar^^ea{\ogonek{e}}
+  \gdefchar^^eb{\"e}
+  \gdefchar^^ec{\v e}
+  \gdefchar^^ed{\'{\dotless{i}}}
+  \gdefchar^^ee{\^{\dotless{i}}}
+  \gdefchar^^ef{\v d}
+  %
+  \gdefchar^^f0{\dh}
+  \gdefchar^^f1{\'n}
+  \gdefchar^^f2{\v n}
+  \gdefchar^^f3{\'o}
+  \gdefchar^^f4{\^o}
+  \gdefchar^^f5{\H o}
+  \gdefchar^^f6{\"o}
+  \gdefchar^^f7{$\div$}
+  \gdefchar^^f8{\v r}
+  \gdefchar^^f9{\ringaccent u}
+  \gdefchar^^fa{\'u}
+  \gdefchar^^fb{\H u}
+  \gdefchar^^fc{\"u}
+  \gdefchar^^fd{\'y}
+  \gdefchar^^fe{\cedilla t}
+  \gdefchar^^ff{\dotaccent{}}
 }
 
 % UTF-8 character definitions.
@@ -9760,35 +10165,56 @@ directory should work if nowhere else does.}
   \fi
 }
 
+% Give non-ASCII bytes the active definitions for processing UTF-8 sequences
 \begingroup
   \catcode`\~13
+  \catcode`\$12
   \catcode`\"12
 
+  % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp
+  % substituting ~ and $ with a character token of that value.
   \def\UTFviiiLoop{%
     \global\catcode\countUTFx\active
     \uccode`\~\countUTFx
+    \uccode`\$\countUTFx
     \uppercase\expandafter{\UTFviiiTmp}%
     \advance\countUTFx by 1
     \ifnum\countUTFx < \countUTFy
       \expandafter\UTFviiiLoop
     \fi}
 
+  % For bytes other than the first in a UTF-8 sequence.  Not expected to
+  % be expanded except when writing to auxiliary files.
+  \countUTFx = "80
+  \countUTFy = "C2
+  \def\UTFviiiTmp{%
+    \gdef~{
+        \ifpassthroughchars $\fi}}%
+  \UTFviiiLoop
+
   \countUTFx = "C2
   \countUTFy = "E0
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiTwoOctets\expandafter$\fi}}%
   \UTFviiiLoop
 
   \countUTFx = "E0
   \countUTFy = "F0
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiThreeOctets\expandafter$\fi}}%
   \UTFviiiLoop
 
   \countUTFx = "F0
   \countUTFy = "F4
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiFourOctets\expandafter$\fi
+        }}%
   \UTFviiiLoop
 \endgroup
 
@@ -9797,13 +10223,26 @@ directory should work if nowhere else does.}
 % @U{xxxx} to produce U+xxxx, if we support it.
 \def\U#1{%
   \expandafter\ifx\csname uni:#1\endcsname \relax
-    \errhelp = \EMsimple       
-    \errmessage{Unicode character U+#1 not supported, sorry}%
+    \iftxinativeunicodecapable
+      % Any Unicode characters can be used by native Unicode.
+      % However, if the font does not have the glyph, the letter will miss.
+      \begingroup
+        \uccode`\.="#1\relax
+        \uppercase{.}
+      \endgroup
+    \else
+      \errhelp = \EMsimple     
+      \errmessage{Unicode character U+#1 not supported, sorry}%
+    \fi
   \else
     \csname uni:#1\endcsname
   \fi
 }
 
+% For UTF-8 byte sequence (TeX, e-TeX and pdfTeX)
+% Definition macro to replace the Unicode character
+% Definition macro that is used by @U command
+%
 \begingroup
   \catcode`\"=12
   \catcode`\<=12
@@ -9812,11 +10251,12 @@ directory should work if nowhere else does.}
   \catcode`\;=12
   \catcode`\!=12
   \catcode`\~=13
-  \gdef\DeclareUnicodeCharacter#1#2{%
+  \gdef\DeclareUnicodeCharacterUTFviii#1#2{%
     \countUTFz = "#1\relax
-    %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
     \begingroup
       \parseXMLCharref
+      %
+      % Access definitions of characters given UTF-8 sequences
       \def\UTFviiiTwoOctets##1##2{%
         \csname u8:##1\string ##2\endcsname}%
       \def\UTFviiiThreeOctets##1##2##3{%
@@ -9834,7 +10274,8 @@ directory should work if nowhere else does.}
       % define an additional control sequence for this code point.
       \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
     \endgroup}
-
+  %
+  % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp.
   \gdef\parseXMLCharref{%
     \ifnum\countUTFz < "A0\relax
       \errhelp = \EMsimple
@@ -9864,12 +10305,20 @@ directory should work if nowhere else does.}
     \uccode `#1\countUTFx
     \countUTFz = \countUTFy}
 
+  % Used to set \UTFviiiTmp to a UTF-8 byte sequence
   \gdef\parseUTFviiiB#1#2#3#4{%
     \advance\countUTFz by "#10\relax
     \uccode `#3\countUTFz
     \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
 \endgroup
 
+% For native Unicode (XeTeX and LuaTeX)
+% Definition macro that is set catcode other non global
+%
+\def\DeclareUnicodeCharacterNativeOther#1#2{%
+  \catcode"#1=\other
+}
+
 % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
 % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
 % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
@@ -9884,732 +10333,747 @@ directory should work if nowhere else does.}
 % We won't be doing that here in this simple file.  But we can try to at
 % least make most of the characters not bomb out.
 %
-\def\utfeightchardefs{%
-  \DeclareUnicodeCharacter{00A0}{\tie}
-  \DeclareUnicodeCharacter{00A1}{\exclamdown}
+\def\unicodechardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}%
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}%
   \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent
-  \DeclareUnicodeCharacter{00A3}{\pounds}
+  \DeclareUnicodeCharacter{00A3}{\pounds}%
   \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency
   \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen
   \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar
-  \DeclareUnicodeCharacter{00A7}{\S}
-  \DeclareUnicodeCharacter{00A8}{\"{ }}
-  \DeclareUnicodeCharacter{00A9}{\copyright}
-  \DeclareUnicodeCharacter{00AA}{\ordf}
-  \DeclareUnicodeCharacter{00AB}{\guillemetleft}
-  \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}
-  \DeclareUnicodeCharacter{00AD}{\-}
-  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
-  \DeclareUnicodeCharacter{00AF}{\={ }}
-
-  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
-  \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}
-  \DeclareUnicodeCharacter{00B2}{$^2$}
-  \DeclareUnicodeCharacter{00B3}{$^3$}
-  \DeclareUnicodeCharacter{00B4}{\'{ }}
-  \DeclareUnicodeCharacter{00B5}{$\mu$}
-  \DeclareUnicodeCharacter{00B6}{\P}
-  \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}
-  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
-  \DeclareUnicodeCharacter{00B9}{$^1$}
-  \DeclareUnicodeCharacter{00BA}{\ordm}
-  \DeclareUnicodeCharacter{00BB}{\guillemetright}
-  \DeclareUnicodeCharacter{00BC}{$1\over4$}
-  \DeclareUnicodeCharacter{00BD}{$1\over2$}
-  \DeclareUnicodeCharacter{00BE}{$3\over4$}
-  \DeclareUnicodeCharacter{00BF}{\questiondown}
-
-  \DeclareUnicodeCharacter{00C0}{\`A}
-  \DeclareUnicodeCharacter{00C1}{\'A}
-  \DeclareUnicodeCharacter{00C2}{\^A}
-  \DeclareUnicodeCharacter{00C3}{\~A}
-  \DeclareUnicodeCharacter{00C4}{\"A}
-  \DeclareUnicodeCharacter{00C5}{\AA}
-  \DeclareUnicodeCharacter{00C6}{\AE}
-  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
-  \DeclareUnicodeCharacter{00C8}{\`E}
-  \DeclareUnicodeCharacter{00C9}{\'E}
-  \DeclareUnicodeCharacter{00CA}{\^E}
-  \DeclareUnicodeCharacter{00CB}{\"E}
-  \DeclareUnicodeCharacter{00CC}{\`I}
-  \DeclareUnicodeCharacter{00CD}{\'I}
-  \DeclareUnicodeCharacter{00CE}{\^I}
-  \DeclareUnicodeCharacter{00CF}{\"I}
-
-  \DeclareUnicodeCharacter{00D0}{\DH}
-  \DeclareUnicodeCharacter{00D1}{\~N}
-  \DeclareUnicodeCharacter{00D2}{\`O}
-  \DeclareUnicodeCharacter{00D3}{\'O}
-  \DeclareUnicodeCharacter{00D4}{\^O}
-  \DeclareUnicodeCharacter{00D5}{\~O}
-  \DeclareUnicodeCharacter{00D6}{\"O}
-  \DeclareUnicodeCharacter{00D7}{\ensuremath\times}
-  \DeclareUnicodeCharacter{00D8}{\O}
-  \DeclareUnicodeCharacter{00D9}{\`U}
-  \DeclareUnicodeCharacter{00DA}{\'U}
-  \DeclareUnicodeCharacter{00DB}{\^U}
-  \DeclareUnicodeCharacter{00DC}{\"U}
-  \DeclareUnicodeCharacter{00DD}{\'Y}
-  \DeclareUnicodeCharacter{00DE}{\TH}
-  \DeclareUnicodeCharacter{00DF}{\ss}
-
-  \DeclareUnicodeCharacter{00E0}{\`a}
-  \DeclareUnicodeCharacter{00E1}{\'a}
-  \DeclareUnicodeCharacter{00E2}{\^a}
-  \DeclareUnicodeCharacter{00E3}{\~a}
-  \DeclareUnicodeCharacter{00E4}{\"a}
-  \DeclareUnicodeCharacter{00E5}{\aa}
-  \DeclareUnicodeCharacter{00E6}{\ae}
-  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
-  \DeclareUnicodeCharacter{00E8}{\`e}
-  \DeclareUnicodeCharacter{00E9}{\'e}
-  \DeclareUnicodeCharacter{00EA}{\^e}
-  \DeclareUnicodeCharacter{00EB}{\"e}
-  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
-  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
-  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
-  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
-
-  \DeclareUnicodeCharacter{00F0}{\dh}
-  \DeclareUnicodeCharacter{00F1}{\~n}
-  \DeclareUnicodeCharacter{00F2}{\`o}
-  \DeclareUnicodeCharacter{00F3}{\'o}
-  \DeclareUnicodeCharacter{00F4}{\^o}
-  \DeclareUnicodeCharacter{00F5}{\~o}
-  \DeclareUnicodeCharacter{00F6}{\"o}
-  \DeclareUnicodeCharacter{00F7}{\ensuremath\div}
-  \DeclareUnicodeCharacter{00F8}{\o}
-  \DeclareUnicodeCharacter{00F9}{\`u}
-  \DeclareUnicodeCharacter{00FA}{\'u}
-  \DeclareUnicodeCharacter{00FB}{\^u}
-  \DeclareUnicodeCharacter{00FC}{\"u}
-  \DeclareUnicodeCharacter{00FD}{\'y}
-  \DeclareUnicodeCharacter{00FE}{\th}
-  \DeclareUnicodeCharacter{00FF}{\"y}
-
-  \DeclareUnicodeCharacter{0100}{\=A}
-  \DeclareUnicodeCharacter{0101}{\=a}
-  \DeclareUnicodeCharacter{0102}{\u{A}}
-  \DeclareUnicodeCharacter{0103}{\u{a}}
-  \DeclareUnicodeCharacter{0104}{\ogonek{A}}
-  \DeclareUnicodeCharacter{0105}{\ogonek{a}}
-  \DeclareUnicodeCharacter{0106}{\'C}
-  \DeclareUnicodeCharacter{0107}{\'c}
-  \DeclareUnicodeCharacter{0108}{\^C}
-  \DeclareUnicodeCharacter{0109}{\^c}
-  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
-  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
-  \DeclareUnicodeCharacter{010C}{\v{C}}
-  \DeclareUnicodeCharacter{010D}{\v{c}}
-  \DeclareUnicodeCharacter{010E}{\v{D}}
-  \DeclareUnicodeCharacter{010F}{d'}
-
-  \DeclareUnicodeCharacter{0110}{\DH}
-  \DeclareUnicodeCharacter{0111}{\dh}
-  \DeclareUnicodeCharacter{0112}{\=E}
-  \DeclareUnicodeCharacter{0113}{\=e}
-  \DeclareUnicodeCharacter{0114}{\u{E}}
-  \DeclareUnicodeCharacter{0115}{\u{e}}
-  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
-  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
-  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
-  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
-  \DeclareUnicodeCharacter{011A}{\v{E}}
-  \DeclareUnicodeCharacter{011B}{\v{e}}
-  \DeclareUnicodeCharacter{011C}{\^G}
-  \DeclareUnicodeCharacter{011D}{\^g}
-  \DeclareUnicodeCharacter{011E}{\u{G}}
-  \DeclareUnicodeCharacter{011F}{\u{g}}
-
-  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
-  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
-  \DeclareUnicodeCharacter{0122}{\cedilla{G}}
-  \DeclareUnicodeCharacter{0123}{\cedilla{g}}
-  \DeclareUnicodeCharacter{0124}{\^H}
-  \DeclareUnicodeCharacter{0125}{\^h}
-  \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}
-  \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}
-  \DeclareUnicodeCharacter{0128}{\~I}
-  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
-  \DeclareUnicodeCharacter{012A}{\=I}
-  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
-  \DeclareUnicodeCharacter{012C}{\u{I}}
-  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
-  \DeclareUnicodeCharacter{012E}{\ogonek{I}}
-  \DeclareUnicodeCharacter{012F}{\ogonek{i}}
-
-  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
-  \DeclareUnicodeCharacter{0131}{\dotless{i}}
-  \DeclareUnicodeCharacter{0132}{IJ}
-  \DeclareUnicodeCharacter{0133}{ij}
-  \DeclareUnicodeCharacter{0134}{\^J}
-  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
-  \DeclareUnicodeCharacter{0136}{\cedilla{K}}
-  \DeclareUnicodeCharacter{0137}{\cedilla{k}}
-  \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}  
-  \DeclareUnicodeCharacter{0139}{\'L}
-  \DeclareUnicodeCharacter{013A}{\'l}
-  \DeclareUnicodeCharacter{013B}{\cedilla{L}}
-  \DeclareUnicodeCharacter{013C}{\cedilla{l}}
+  \DeclareUnicodeCharacter{00A7}{\S}%
+  \DeclareUnicodeCharacter{00A8}{\"{ }}%
+  \DeclareUnicodeCharacter{00A9}{\copyright}%
+  \DeclareUnicodeCharacter{00AA}{\ordf}%
+  \DeclareUnicodeCharacter{00AB}{\guillemetleft}%
+  \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}%
+  \DeclareUnicodeCharacter{00AD}{\-}%
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}%
+  \DeclareUnicodeCharacter{00AF}{\={ }}%
+  %
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}%
+  \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}%
+  \DeclareUnicodeCharacter{00B2}{$^2$}%
+  \DeclareUnicodeCharacter{00B3}{$^3$}%
+  \DeclareUnicodeCharacter{00B4}{\'{ }}%
+  \DeclareUnicodeCharacter{00B5}{$\mu$}%
+  \DeclareUnicodeCharacter{00B6}{\P}%
+  \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}%
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}%
+  \DeclareUnicodeCharacter{00B9}{$^1$}%
+  \DeclareUnicodeCharacter{00BA}{\ordm}%
+  \DeclareUnicodeCharacter{00BB}{\guillemetright}%
+  \DeclareUnicodeCharacter{00BC}{$1\over4$}%
+  \DeclareUnicodeCharacter{00BD}{$1\over2$}%
+  \DeclareUnicodeCharacter{00BE}{$3\over4$}%
+  \DeclareUnicodeCharacter{00BF}{\questiondown}%
+  %
+  \DeclareUnicodeCharacter{00C0}{\`A}%
+  \DeclareUnicodeCharacter{00C1}{\'A}%
+  \DeclareUnicodeCharacter{00C2}{\^A}%
+  \DeclareUnicodeCharacter{00C3}{\~A}%
+  \DeclareUnicodeCharacter{00C4}{\"A}%
+  \DeclareUnicodeCharacter{00C5}{\AA}%
+  \DeclareUnicodeCharacter{00C6}{\AE}%
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}%
+  \DeclareUnicodeCharacter{00C8}{\`E}%
+  \DeclareUnicodeCharacter{00C9}{\'E}%
+  \DeclareUnicodeCharacter{00CA}{\^E}%
+  \DeclareUnicodeCharacter{00CB}{\"E}%
+  \DeclareUnicodeCharacter{00CC}{\`I}%
+  \DeclareUnicodeCharacter{00CD}{\'I}%
+  \DeclareUnicodeCharacter{00CE}{\^I}%
+  \DeclareUnicodeCharacter{00CF}{\"I}%
+  %
+  \DeclareUnicodeCharacter{00D0}{\DH}%
+  \DeclareUnicodeCharacter{00D1}{\~N}%
+  \DeclareUnicodeCharacter{00D2}{\`O}%
+  \DeclareUnicodeCharacter{00D3}{\'O}%
+  \DeclareUnicodeCharacter{00D4}{\^O}%
+  \DeclareUnicodeCharacter{00D5}{\~O}%
+  \DeclareUnicodeCharacter{00D6}{\"O}%
+  \DeclareUnicodeCharacter{00D7}{\ensuremath\times}%
+  \DeclareUnicodeCharacter{00D8}{\O}%
+  \DeclareUnicodeCharacter{00D9}{\`U}%
+  \DeclareUnicodeCharacter{00DA}{\'U}%
+  \DeclareUnicodeCharacter{00DB}{\^U}%
+  \DeclareUnicodeCharacter{00DC}{\"U}%
+  \DeclareUnicodeCharacter{00DD}{\'Y}%
+  \DeclareUnicodeCharacter{00DE}{\TH}%
+  \DeclareUnicodeCharacter{00DF}{\ss}%
+  %
+  \DeclareUnicodeCharacter{00E0}{\`a}%
+  \DeclareUnicodeCharacter{00E1}{\'a}%
+  \DeclareUnicodeCharacter{00E2}{\^a}%
+  \DeclareUnicodeCharacter{00E3}{\~a}%
+  \DeclareUnicodeCharacter{00E4}{\"a}%
+  \DeclareUnicodeCharacter{00E5}{\aa}%
+  \DeclareUnicodeCharacter{00E6}{\ae}%
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}%
+  \DeclareUnicodeCharacter{00E8}{\`e}%
+  \DeclareUnicodeCharacter{00E9}{\'e}%
+  \DeclareUnicodeCharacter{00EA}{\^e}%
+  \DeclareUnicodeCharacter{00EB}{\"e}%
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}%
+  %
+  \DeclareUnicodeCharacter{00F0}{\dh}%
+  \DeclareUnicodeCharacter{00F1}{\~n}%
+  \DeclareUnicodeCharacter{00F2}{\`o}%
+  \DeclareUnicodeCharacter{00F3}{\'o}%
+  \DeclareUnicodeCharacter{00F4}{\^o}%
+  \DeclareUnicodeCharacter{00F5}{\~o}%
+  \DeclareUnicodeCharacter{00F6}{\"o}%
+  \DeclareUnicodeCharacter{00F7}{\ensuremath\div}%
+  \DeclareUnicodeCharacter{00F8}{\o}%
+  \DeclareUnicodeCharacter{00F9}{\`u}%
+  \DeclareUnicodeCharacter{00FA}{\'u}%
+  \DeclareUnicodeCharacter{00FB}{\^u}%
+  \DeclareUnicodeCharacter{00FC}{\"u}%
+  \DeclareUnicodeCharacter{00FD}{\'y}%
+  \DeclareUnicodeCharacter{00FE}{\th}%
+  \DeclareUnicodeCharacter{00FF}{\"y}%
+  %
+  \DeclareUnicodeCharacter{0100}{\=A}%
+  \DeclareUnicodeCharacter{0101}{\=a}%
+  \DeclareUnicodeCharacter{0102}{\u{A}}%
+  \DeclareUnicodeCharacter{0103}{\u{a}}%
+  \DeclareUnicodeCharacter{0104}{\ogonek{A}}%
+  \DeclareUnicodeCharacter{0105}{\ogonek{a}}%
+  \DeclareUnicodeCharacter{0106}{\'C}%
+  \DeclareUnicodeCharacter{0107}{\'c}%
+  \DeclareUnicodeCharacter{0108}{\^C}%
+  \DeclareUnicodeCharacter{0109}{\^c}%
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}%
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}%
+  \DeclareUnicodeCharacter{010C}{\v{C}}%
+  \DeclareUnicodeCharacter{010D}{\v{c}}%
+  \DeclareUnicodeCharacter{010E}{\v{D}}%
+  \DeclareUnicodeCharacter{010F}{d'}%
+  %
+  \DeclareUnicodeCharacter{0110}{\DH}%
+  \DeclareUnicodeCharacter{0111}{\dh}%
+  \DeclareUnicodeCharacter{0112}{\=E}%
+  \DeclareUnicodeCharacter{0113}{\=e}%
+  \DeclareUnicodeCharacter{0114}{\u{E}}%
+  \DeclareUnicodeCharacter{0115}{\u{e}}%
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}%
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}%
+  \DeclareUnicodeCharacter{0118}{\ogonek{E}}%
+  \DeclareUnicodeCharacter{0119}{\ogonek{e}}%
+  \DeclareUnicodeCharacter{011A}{\v{E}}%
+  \DeclareUnicodeCharacter{011B}{\v{e}}%
+  \DeclareUnicodeCharacter{011C}{\^G}%
+  \DeclareUnicodeCharacter{011D}{\^g}%
+  \DeclareUnicodeCharacter{011E}{\u{G}}%
+  \DeclareUnicodeCharacter{011F}{\u{g}}%
+  %
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}%
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}%
+  \DeclareUnicodeCharacter{0122}{\cedilla{G}}%
+  \DeclareUnicodeCharacter{0123}{\cedilla{g}}%
+  \DeclareUnicodeCharacter{0124}{\^H}%
+  \DeclareUnicodeCharacter{0125}{\^h}%
+  \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}%
+  \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}%
+  \DeclareUnicodeCharacter{0128}{\~I}%
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}%
+  \DeclareUnicodeCharacter{012A}{\=I}%
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}%
+  \DeclareUnicodeCharacter{012C}{\u{I}}%
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}%
+  \DeclareUnicodeCharacter{012E}{\ogonek{I}}%
+  \DeclareUnicodeCharacter{012F}{\ogonek{i}}%
+  %
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}%
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}%
+  \DeclareUnicodeCharacter{0132}{IJ}%
+  \DeclareUnicodeCharacter{0133}{ij}%
+  \DeclareUnicodeCharacter{0134}{\^J}%
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}%
+  \DeclareUnicodeCharacter{0136}{\cedilla{K}}%
+  \DeclareUnicodeCharacter{0137}{\cedilla{k}}%
+  \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}%
+  \DeclareUnicodeCharacter{0139}{\'L}%
+  \DeclareUnicodeCharacter{013A}{\'l}%
+  \DeclareUnicodeCharacter{013B}{\cedilla{L}}%
+  \DeclareUnicodeCharacter{013C}{\cedilla{l}}%
   \DeclareUnicodeCharacter{013D}{L'}% should kern
   \DeclareUnicodeCharacter{013E}{l'}% should kern
-  \DeclareUnicodeCharacter{013F}{L\U{00B7}}
-
-  \DeclareUnicodeCharacter{0140}{l\U{00B7}}
-  \DeclareUnicodeCharacter{0141}{\L}
-  \DeclareUnicodeCharacter{0142}{\l}
-  \DeclareUnicodeCharacter{0143}{\'N}
-  \DeclareUnicodeCharacter{0144}{\'n}
-  \DeclareUnicodeCharacter{0145}{\cedilla{N}}
-  \DeclareUnicodeCharacter{0146}{\cedilla{n}}
-  \DeclareUnicodeCharacter{0147}{\v{N}}
-  \DeclareUnicodeCharacter{0148}{\v{n}}
-  \DeclareUnicodeCharacter{0149}{'n}
-  \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}
-  \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}
-  \DeclareUnicodeCharacter{014C}{\=O}
-  \DeclareUnicodeCharacter{014D}{\=o}
-  \DeclareUnicodeCharacter{014E}{\u{O}}
-  \DeclareUnicodeCharacter{014F}{\u{o}}
-
-  \DeclareUnicodeCharacter{0150}{\H{O}}
-  \DeclareUnicodeCharacter{0151}{\H{o}}
-  \DeclareUnicodeCharacter{0152}{\OE}
-  \DeclareUnicodeCharacter{0153}{\oe}
-  \DeclareUnicodeCharacter{0154}{\'R}
-  \DeclareUnicodeCharacter{0155}{\'r}
-  \DeclareUnicodeCharacter{0156}{\cedilla{R}}
-  \DeclareUnicodeCharacter{0157}{\cedilla{r}}
-  \DeclareUnicodeCharacter{0158}{\v{R}}
-  \DeclareUnicodeCharacter{0159}{\v{r}}
-  \DeclareUnicodeCharacter{015A}{\'S}
-  \DeclareUnicodeCharacter{015B}{\'s}
-  \DeclareUnicodeCharacter{015C}{\^S}
-  \DeclareUnicodeCharacter{015D}{\^s}
-  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
-  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
-
-  \DeclareUnicodeCharacter{0160}{\v{S}}
-  \DeclareUnicodeCharacter{0161}{\v{s}}
-  \DeclareUnicodeCharacter{0162}{\cedilla{T}}
-  \DeclareUnicodeCharacter{0163}{\cedilla{t}}
-  \DeclareUnicodeCharacter{0164}{\v{T}}
-  \DeclareUnicodeCharacter{0165}{\v{t}}
-  \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}
-  \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}
-  \DeclareUnicodeCharacter{0168}{\~U}
-  \DeclareUnicodeCharacter{0169}{\~u}
-  \DeclareUnicodeCharacter{016A}{\=U}
-  \DeclareUnicodeCharacter{016B}{\=u}
-  \DeclareUnicodeCharacter{016C}{\u{U}}
-  \DeclareUnicodeCharacter{016D}{\u{u}}
-  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
-  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
-
-  \DeclareUnicodeCharacter{0170}{\H{U}}
-  \DeclareUnicodeCharacter{0171}{\H{u}}
-  \DeclareUnicodeCharacter{0172}{\ogonek{U}}
-  \DeclareUnicodeCharacter{0173}{\ogonek{u}}
-  \DeclareUnicodeCharacter{0174}{\^W}
-  \DeclareUnicodeCharacter{0175}{\^w}
-  \DeclareUnicodeCharacter{0176}{\^Y}
-  \DeclareUnicodeCharacter{0177}{\^y}
-  \DeclareUnicodeCharacter{0178}{\"Y}
-  \DeclareUnicodeCharacter{0179}{\'Z}
-  \DeclareUnicodeCharacter{017A}{\'z}
-  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
-  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
-  \DeclareUnicodeCharacter{017D}{\v{Z}}
-  \DeclareUnicodeCharacter{017E}{\v{z}}
-  \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
-
-  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
-  \DeclareUnicodeCharacter{01C5}{D\v{z}}
-  \DeclareUnicodeCharacter{01C6}{d\v{z}}
-  \DeclareUnicodeCharacter{01C7}{LJ}
-  \DeclareUnicodeCharacter{01C8}{Lj}
-  \DeclareUnicodeCharacter{01C9}{lj}
-  \DeclareUnicodeCharacter{01CA}{NJ}
-  \DeclareUnicodeCharacter{01CB}{Nj}
-  \DeclareUnicodeCharacter{01CC}{nj}
-  \DeclareUnicodeCharacter{01CD}{\v{A}}
-  \DeclareUnicodeCharacter{01CE}{\v{a}}
-  \DeclareUnicodeCharacter{01CF}{\v{I}}
-
-  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
-  \DeclareUnicodeCharacter{01D1}{\v{O}}
-  \DeclareUnicodeCharacter{01D2}{\v{o}}
-  \DeclareUnicodeCharacter{01D3}{\v{U}}
-  \DeclareUnicodeCharacter{01D4}{\v{u}}
-
-  \DeclareUnicodeCharacter{01E2}{\={\AE}}
-  \DeclareUnicodeCharacter{01E3}{\={\ae}}
-  \DeclareUnicodeCharacter{01E6}{\v{G}}
-  \DeclareUnicodeCharacter{01E7}{\v{g}}
-  \DeclareUnicodeCharacter{01E8}{\v{K}}
-  \DeclareUnicodeCharacter{01E9}{\v{k}}
-
-  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
-  \DeclareUnicodeCharacter{01F1}{DZ}
-  \DeclareUnicodeCharacter{01F2}{Dz}
-  \DeclareUnicodeCharacter{01F3}{dz}
-  \DeclareUnicodeCharacter{01F4}{\'G}
-  \DeclareUnicodeCharacter{01F5}{\'g}
-  \DeclareUnicodeCharacter{01F8}{\`N}
-  \DeclareUnicodeCharacter{01F9}{\`n}
-  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
-  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
-  \DeclareUnicodeCharacter{01FE}{\'{\O}}
-  \DeclareUnicodeCharacter{01FF}{\'{\o}}
-
-  \DeclareUnicodeCharacter{021E}{\v{H}}
-  \DeclareUnicodeCharacter{021F}{\v{h}}
-
-  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
-  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
-  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
-  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
-  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
-  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
-
-  \DeclareUnicodeCharacter{0232}{\=Y}
-  \DeclareUnicodeCharacter{0233}{\=y}
-  \DeclareUnicodeCharacter{0237}{\dotless{j}}
-
-  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
-
+  \DeclareUnicodeCharacter{013F}{L\U{00B7}}%
+  %
+  \DeclareUnicodeCharacter{0140}{l\U{00B7}}%
+  \DeclareUnicodeCharacter{0141}{\L}%
+  \DeclareUnicodeCharacter{0142}{\l}%
+  \DeclareUnicodeCharacter{0143}{\'N}%
+  \DeclareUnicodeCharacter{0144}{\'n}%
+  \DeclareUnicodeCharacter{0145}{\cedilla{N}}%
+  \DeclareUnicodeCharacter{0146}{\cedilla{n}}%
+  \DeclareUnicodeCharacter{0147}{\v{N}}%
+  \DeclareUnicodeCharacter{0148}{\v{n}}%
+  \DeclareUnicodeCharacter{0149}{'n}%
+  \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}%
+  \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}%
+  \DeclareUnicodeCharacter{014C}{\=O}%
+  \DeclareUnicodeCharacter{014D}{\=o}%
+  \DeclareUnicodeCharacter{014E}{\u{O}}%
+  \DeclareUnicodeCharacter{014F}{\u{o}}%
+  %
+  \DeclareUnicodeCharacter{0150}{\H{O}}%
+  \DeclareUnicodeCharacter{0151}{\H{o}}%
+  \DeclareUnicodeCharacter{0152}{\OE}%
+  \DeclareUnicodeCharacter{0153}{\oe}%
+  \DeclareUnicodeCharacter{0154}{\'R}%
+  \DeclareUnicodeCharacter{0155}{\'r}%
+  \DeclareUnicodeCharacter{0156}{\cedilla{R}}%
+  \DeclareUnicodeCharacter{0157}{\cedilla{r}}%
+  \DeclareUnicodeCharacter{0158}{\v{R}}%
+  \DeclareUnicodeCharacter{0159}{\v{r}}%
+  \DeclareUnicodeCharacter{015A}{\'S}%
+  \DeclareUnicodeCharacter{015B}{\'s}%
+  \DeclareUnicodeCharacter{015C}{\^S}%
+  \DeclareUnicodeCharacter{015D}{\^s}%
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}%
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}%
+  %
+  \DeclareUnicodeCharacter{0160}{\v{S}}%
+  \DeclareUnicodeCharacter{0161}{\v{s}}%
+  \DeclareUnicodeCharacter{0162}{\cedilla{T}}%
+  \DeclareUnicodeCharacter{0163}{\cedilla{t}}%
+  \DeclareUnicodeCharacter{0164}{\v{T}}%
+  \DeclareUnicodeCharacter{0165}{\v{t}}%
+  \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}%
+  \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}%
+  \DeclareUnicodeCharacter{0168}{\~U}%
+  \DeclareUnicodeCharacter{0169}{\~u}%
+  \DeclareUnicodeCharacter{016A}{\=U}%
+  \DeclareUnicodeCharacter{016B}{\=u}%
+  \DeclareUnicodeCharacter{016C}{\u{U}}%
+  \DeclareUnicodeCharacter{016D}{\u{u}}%
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}%
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}%
+  %
+  \DeclareUnicodeCharacter{0170}{\H{U}}%
+  \DeclareUnicodeCharacter{0171}{\H{u}}%
+  \DeclareUnicodeCharacter{0172}{\ogonek{U}}%
+  \DeclareUnicodeCharacter{0173}{\ogonek{u}}%
+  \DeclareUnicodeCharacter{0174}{\^W}%
+  \DeclareUnicodeCharacter{0175}{\^w}%
+  \DeclareUnicodeCharacter{0176}{\^Y}%
+  \DeclareUnicodeCharacter{0177}{\^y}%
+  \DeclareUnicodeCharacter{0178}{\"Y}%
+  \DeclareUnicodeCharacter{0179}{\'Z}%
+  \DeclareUnicodeCharacter{017A}{\'z}%
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}%
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}%
+  \DeclareUnicodeCharacter{017D}{\v{Z}}%
+  \DeclareUnicodeCharacter{017E}{\v{z}}%
+  \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}%
+  %
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}%
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}%
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}%
+  \DeclareUnicodeCharacter{01C7}{LJ}%
+  \DeclareUnicodeCharacter{01C8}{Lj}%
+  \DeclareUnicodeCharacter{01C9}{lj}%
+  \DeclareUnicodeCharacter{01CA}{NJ}%
+  \DeclareUnicodeCharacter{01CB}{Nj}%
+  \DeclareUnicodeCharacter{01CC}{nj}%
+  \DeclareUnicodeCharacter{01CD}{\v{A}}%
+  \DeclareUnicodeCharacter{01CE}{\v{a}}%
+  \DeclareUnicodeCharacter{01CF}{\v{I}}%
+  %
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}%
+  \DeclareUnicodeCharacter{01D1}{\v{O}}%
+  \DeclareUnicodeCharacter{01D2}{\v{o}}%
+  \DeclareUnicodeCharacter{01D3}{\v{U}}%
+  \DeclareUnicodeCharacter{01D4}{\v{u}}%
+  %
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}%
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}%
+  \DeclareUnicodeCharacter{01E6}{\v{G}}%
+  \DeclareUnicodeCharacter{01E7}{\v{g}}%
+  \DeclareUnicodeCharacter{01E8}{\v{K}}%
+  \DeclareUnicodeCharacter{01E9}{\v{k}}%
+  %
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}%
+  \DeclareUnicodeCharacter{01F1}{DZ}%
+  \DeclareUnicodeCharacter{01F2}{Dz}%
+  \DeclareUnicodeCharacter{01F3}{dz}%
+  \DeclareUnicodeCharacter{01F4}{\'G}%
+  \DeclareUnicodeCharacter{01F5}{\'g}%
+  \DeclareUnicodeCharacter{01F8}{\`N}%
+  \DeclareUnicodeCharacter{01F9}{\`n}%
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}%
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}%
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}%
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}%
+  %
+  \DeclareUnicodeCharacter{021E}{\v{H}}%
+  \DeclareUnicodeCharacter{021F}{\v{h}}%
+  %
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}%
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}%
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}%
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}%
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}%
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}%
+  %
+  \DeclareUnicodeCharacter{0232}{\=Y}%
+  \DeclareUnicodeCharacter{0233}{\=y}%
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}%
+  %
+  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}%
+  %
   % Greek letters upper case
-  \DeclareUnicodeCharacter{0391}{{\it A}}
-  \DeclareUnicodeCharacter{0392}{{\it B}}
-  \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}
-  \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}
-  \DeclareUnicodeCharacter{0395}{{\it E}}
-  \DeclareUnicodeCharacter{0396}{{\it Z}}
-  \DeclareUnicodeCharacter{0397}{{\it H}}
-  \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}
-  \DeclareUnicodeCharacter{0399}{{\it I}}
-  \DeclareUnicodeCharacter{039A}{{\it K}}
-  \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}
-  \DeclareUnicodeCharacter{039C}{{\it M}}
-  \DeclareUnicodeCharacter{039D}{{\it N}}
-  \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}
-  \DeclareUnicodeCharacter{039F}{{\it O}}
-  \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}
-  \DeclareUnicodeCharacter{03A1}{{\it P}}
+  \DeclareUnicodeCharacter{0391}{{\it A}}%
+  \DeclareUnicodeCharacter{0392}{{\it B}}%
+  \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}%
+  \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}%
+  \DeclareUnicodeCharacter{0395}{{\it E}}%
+  \DeclareUnicodeCharacter{0396}{{\it Z}}%
+  \DeclareUnicodeCharacter{0397}{{\it H}}%
+  \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}%
+  \DeclareUnicodeCharacter{0399}{{\it I}}%
+  \DeclareUnicodeCharacter{039A}{{\it K}}%
+  \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}%
+  \DeclareUnicodeCharacter{039C}{{\it M}}%
+  \DeclareUnicodeCharacter{039D}{{\it N}}%
+  \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}%
+  \DeclareUnicodeCharacter{039F}{{\it O}}%
+  \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}%
+  \DeclareUnicodeCharacter{03A1}{{\it P}}%
   %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma
-  \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}
-  \DeclareUnicodeCharacter{03A4}{{\it T}}
-  \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}
-  \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}
-  \DeclareUnicodeCharacter{03A7}{{\it X}}
-  \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}
-  \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}
-
+  \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}%
+  \DeclareUnicodeCharacter{03A4}{{\it T}}%
+  \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}%
+  \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}%
+  \DeclareUnicodeCharacter{03A7}{{\it X}}%
+  \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}%
+  \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}%
+  %
   % Vowels with accents
-  \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}
-  \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}
-  \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}
-  \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}
-  \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}
-  \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}
-
+  \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}%
+  \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}%
+  \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}%
+  \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}%
+  \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}%
+  \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}%
+  %
   % Standalone accent
-  \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}
-
+  \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}%
+  %
   % Greek letters lower case
-  \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}
-  \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}
-  \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}
-  \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}
-  \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}
-  \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}
-  \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}
-  \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}
-  \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}
-  \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}
-  \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}
-  \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}
-  \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}
-  \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}
-  \DeclareUnicodeCharacter{03BF}{{\it o}} % omicron
-  \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}
-  \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}
-  \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}
-  \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}
-  \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}
-  \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}
-  \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}
-  \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}
-  \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}
-  \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}
-
+  \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}%
+  \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}%
+  \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}%
+  \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}%
+  \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}%
+  \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}%
+  \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}%
+  \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}%
+  \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}%
+  \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}%
+  \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}%
+  \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}%
+  \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}%
+  \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}%
+  \DeclareUnicodeCharacter{03BF}{{\it o}}% omicron
+  \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}%
+  \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}%
+  \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}%
+  \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}%
+  \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}%
+  \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}%
+  \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}%
+  \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}%
+  \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}%
+  \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}%
+  %
   % More Greek vowels with accents
-  \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}
-  \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}
-  \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}
-  \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}
-  \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}
-
+  \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}%
+  \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}%
+  \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}%
+  \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}%
+  \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}%
+  %
   % Variant Greek letters
-  \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}
-  \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}
-  \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}
-
-  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
-  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
-  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
-  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
-  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
-  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
-  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
-  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
-  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
-  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
-  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
-  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
-
-  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
-  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
-
-  \DeclareUnicodeCharacter{1E20}{\=G}
-  \DeclareUnicodeCharacter{1E21}{\=g}
-  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
-  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
-  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
-  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
-  \DeclareUnicodeCharacter{1E26}{\"H}
-  \DeclareUnicodeCharacter{1E27}{\"h}
-
-  \DeclareUnicodeCharacter{1E30}{\'K}
-  \DeclareUnicodeCharacter{1E31}{\'k}
-  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
-  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
-  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
-  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
-  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
-  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
-  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
-  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
-  \DeclareUnicodeCharacter{1E3E}{\'M}
-  \DeclareUnicodeCharacter{1E3F}{\'m}
-
-  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
-  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
-  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
-  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
-  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
-  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
-  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
-  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
-  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
-  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
-
-  \DeclareUnicodeCharacter{1E54}{\'P}
-  \DeclareUnicodeCharacter{1E55}{\'p}
-  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
-  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
-  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
-  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
-  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
-  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
-  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
-  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
-
-  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
-  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
-  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
-  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
-  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
-  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
-  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
-  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
-  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
-  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
-
-  \DeclareUnicodeCharacter{1E7C}{\~V}
-  \DeclareUnicodeCharacter{1E7D}{\~v}
-  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
-  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
-
-  \DeclareUnicodeCharacter{1E80}{\`W}
-  \DeclareUnicodeCharacter{1E81}{\`w}
-  \DeclareUnicodeCharacter{1E82}{\'W}
-  \DeclareUnicodeCharacter{1E83}{\'w}
-  \DeclareUnicodeCharacter{1E84}{\"W}
-  \DeclareUnicodeCharacter{1E85}{\"w}
-  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
-  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
-  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
-  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
-  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
-  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
-  \DeclareUnicodeCharacter{1E8C}{\"X}
-  \DeclareUnicodeCharacter{1E8D}{\"x}
-  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
-  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
-
-  \DeclareUnicodeCharacter{1E90}{\^Z}
-  \DeclareUnicodeCharacter{1E91}{\^z}
-  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
-  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
-  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
-  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
-  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
-  \DeclareUnicodeCharacter{1E97}{\"t}
-  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
-  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
-
-  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
-  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
-
-  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
-  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
-  \DeclareUnicodeCharacter{1EBC}{\~E}
-  \DeclareUnicodeCharacter{1EBD}{\~e}
-
-  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
-  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
-  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
-  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
-
-  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
-  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
-
-  \DeclareUnicodeCharacter{1EF2}{\`Y}
-  \DeclareUnicodeCharacter{1EF3}{\`y}
-  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
-
-  \DeclareUnicodeCharacter{1EF8}{\~Y}
-  \DeclareUnicodeCharacter{1EF9}{\~y}
-
+  \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}%
+  \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}%
+  \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}%
+  %
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}%
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}%
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}%
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}%
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}%
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}%
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}%
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}%
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}%
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}%
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}%
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}%
+  %
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}%
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}%
+  %
+  \DeclareUnicodeCharacter{1E20}{\=G}%
+  \DeclareUnicodeCharacter{1E21}{\=g}%
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}%
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}%
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}%
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}%
+  \DeclareUnicodeCharacter{1E26}{\"H}%
+  \DeclareUnicodeCharacter{1E27}{\"h}%
+  %
+  \DeclareUnicodeCharacter{1E30}{\'K}%
+  \DeclareUnicodeCharacter{1E31}{\'k}%
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}%
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}%
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}%
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}%
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}%
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}%
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}%
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}%
+  \DeclareUnicodeCharacter{1E3E}{\'M}%
+  \DeclareUnicodeCharacter{1E3F}{\'m}%
+  %
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}%
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}%
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}%
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}%
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}%
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}%
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}%
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}%
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}%
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}%
+  %
+  \DeclareUnicodeCharacter{1E54}{\'P}%
+  \DeclareUnicodeCharacter{1E55}{\'p}%
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}%
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}%
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}%
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}%
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}%
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}%
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}%
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}%
+  %
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}%
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}%
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}%
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}%
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}%
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}%
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}%
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}%
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}%
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}%
+  %
+  \DeclareUnicodeCharacter{1E7C}{\~V}%
+  \DeclareUnicodeCharacter{1E7D}{\~v}%
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}%
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}%
+  %
+  \DeclareUnicodeCharacter{1E80}{\`W}%
+  \DeclareUnicodeCharacter{1E81}{\`w}%
+  \DeclareUnicodeCharacter{1E82}{\'W}%
+  \DeclareUnicodeCharacter{1E83}{\'w}%
+  \DeclareUnicodeCharacter{1E84}{\"W}%
+  \DeclareUnicodeCharacter{1E85}{\"w}%
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}%
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}%
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}%
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}%
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}%
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}%
+  \DeclareUnicodeCharacter{1E8C}{\"X}%
+  \DeclareUnicodeCharacter{1E8D}{\"x}%
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}%
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}%
+  %
+  \DeclareUnicodeCharacter{1E90}{\^Z}%
+  \DeclareUnicodeCharacter{1E91}{\^z}%
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}%
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}%
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}%
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}%
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}%
+  \DeclareUnicodeCharacter{1E97}{\"t}%
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}%
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}%
+  %
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}%
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}%
+  %
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}%
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}%
+  \DeclareUnicodeCharacter{1EBC}{\~E}%
+  \DeclareUnicodeCharacter{1EBD}{\~e}%
+  %
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}%
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}%
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}%
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}%
+  %
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}%
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}%
+  %
+  \DeclareUnicodeCharacter{1EF2}{\`Y}%
+  \DeclareUnicodeCharacter{1EF3}{\`y}%
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}%
+  %
+  \DeclareUnicodeCharacter{1EF8}{\~Y}%
+  \DeclareUnicodeCharacter{1EF9}{\~y}%
+  %
   % Punctuation
-  \DeclareUnicodeCharacter{2013}{--}
-  \DeclareUnicodeCharacter{2014}{---}
-  \DeclareUnicodeCharacter{2018}{\quoteleft}
-  \DeclareUnicodeCharacter{2019}{\quoteright}
-  \DeclareUnicodeCharacter{201A}{\quotesinglbase}
-  \DeclareUnicodeCharacter{201C}{\quotedblleft}
-  \DeclareUnicodeCharacter{201D}{\quotedblright}
-  \DeclareUnicodeCharacter{201E}{\quotedblbase}
-  \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}
-  \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}
-  \DeclareUnicodeCharacter{2022}{\bullet}
-  \DeclareUnicodeCharacter{202F}{\thinspace}
-  \DeclareUnicodeCharacter{2026}{\dots}
-  \DeclareUnicodeCharacter{2039}{\guilsinglleft}
-  \DeclareUnicodeCharacter{203A}{\guilsinglright}
-
-  \DeclareUnicodeCharacter{20AC}{\euro}
-
-  \DeclareUnicodeCharacter{2192}{\expansion}
-  \DeclareUnicodeCharacter{21D2}{\result}
-
+  \DeclareUnicodeCharacter{2013}{--}%
+  \DeclareUnicodeCharacter{2014}{---}%
+  \DeclareUnicodeCharacter{2018}{\quoteleft}%
+  \DeclareUnicodeCharacter{2019}{\quoteright}%
+  \DeclareUnicodeCharacter{201A}{\quotesinglbase}%
+  \DeclareUnicodeCharacter{201C}{\quotedblleft}%
+  \DeclareUnicodeCharacter{201D}{\quotedblright}%
+  \DeclareUnicodeCharacter{201E}{\quotedblbase}%
+  \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}%
+  \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}%
+  \DeclareUnicodeCharacter{2022}{\bullet}%
+  \DeclareUnicodeCharacter{202F}{\thinspace}%
+  \DeclareUnicodeCharacter{2026}{\dots}%
+  \DeclareUnicodeCharacter{2039}{\guilsinglleft}%
+  \DeclareUnicodeCharacter{203A}{\guilsinglright}%
+  %
+  \DeclareUnicodeCharacter{20AC}{\euro}%
+  %
+  \DeclareUnicodeCharacter{2192}{\expansion}%
+  \DeclareUnicodeCharacter{21D2}{\result}%
+  %
   % Mathematical symbols
-  \DeclareUnicodeCharacter{2200}{\ensuremath\forall}
-  \DeclareUnicodeCharacter{2203}{\ensuremath\exists}
-  \DeclareUnicodeCharacter{2208}{\ensuremath\in}
-  \DeclareUnicodeCharacter{2212}{\minus}
-  \DeclareUnicodeCharacter{2217}{\ast}
-  \DeclareUnicodeCharacter{221E}{\ensuremath\infty}
-  \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}
-  \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}
-  \DeclareUnicodeCharacter{2229}{\ensuremath\cap}
-  \DeclareUnicodeCharacter{2261}{\equiv}
-  \DeclareUnicodeCharacter{2264}{\ensuremath\leq}
-  \DeclareUnicodeCharacter{2265}{\ensuremath\geq}
-  \DeclareUnicodeCharacter{2282}{\ensuremath\subset}
-  \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}
-
-  \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}
-  \DeclareUnicodeCharacter{2032}{\ensuremath\prime}
-  \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}
-  \DeclareUnicodeCharacter{2111}{\ensuremath\Im}
-  \DeclareUnicodeCharacter{2113}{\ensuremath\ell}
-  \DeclareUnicodeCharacter{2118}{\ensuremath\wp}
-  \DeclareUnicodeCharacter{211C}{\ensuremath\Re}
-  \DeclareUnicodeCharacter{2127}{\ensuremath\mho}
-  \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}
-  \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}
-  \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}
-  \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}
-  \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}
-  \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}
-  \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}
-  \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}
-  \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}
-  \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}
-  \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}
-  \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}
-  \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}
-  \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}
-  \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}
-  \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}
-  \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}
-  \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}
-  \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}
-  \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}
-  \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}
-  \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}
-  \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}
-  \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}
-  \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}
-  \DeclareUnicodeCharacter{2201}{\ensuremath\complement}
-  \DeclareUnicodeCharacter{2202}{\ensuremath\partial}
-  \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}
-  \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}
-  \DeclareUnicodeCharacter{2209}{\ensuremath\notin}
-  \DeclareUnicodeCharacter{220B}{\ensuremath\owns}
-  \DeclareUnicodeCharacter{220F}{\ensuremath\prod}
-  \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}
-  \DeclareUnicodeCharacter{2211}{\ensuremath\sum}
-  \DeclareUnicodeCharacter{2213}{\ensuremath\mp}
-  \DeclareUnicodeCharacter{2218}{\ensuremath\circ}
-  \DeclareUnicodeCharacter{221A}{\ensuremath\surd}
-  \DeclareUnicodeCharacter{221D}{\ensuremath\propto}
-  \DeclareUnicodeCharacter{2220}{\ensuremath\angle}
-  \DeclareUnicodeCharacter{2223}{\ensuremath\mid}
-  \DeclareUnicodeCharacter{2228}{\ensuremath\vee}
-  \DeclareUnicodeCharacter{222A}{\ensuremath\cup}
-  \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}
-  \DeclareUnicodeCharacter{222E}{\ensuremath\oint}
-  \DeclareUnicodeCharacter{223C}{\ensuremath\sim}
-  \DeclareUnicodeCharacter{2240}{\ensuremath\wr}
-  \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}
-  \DeclareUnicodeCharacter{2245}{\ensuremath\cong}
-  \DeclareUnicodeCharacter{2248}{\ensuremath\approx}
-  \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}
-  \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}
-  \DeclareUnicodeCharacter{2260}{\ensuremath\neq}
-  \DeclareUnicodeCharacter{226A}{\ensuremath\ll}
-  \DeclareUnicodeCharacter{226B}{\ensuremath\gg}
-  \DeclareUnicodeCharacter{227A}{\ensuremath\prec}
-  \DeclareUnicodeCharacter{227B}{\ensuremath\succ}
-  \DeclareUnicodeCharacter{2283}{\ensuremath\supset}
-  \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}
-  \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}
-  \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}
-  \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}
-  \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}
-  \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}
-  \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}
-  \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}
-  \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}
-  \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}
-  \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}
-  \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}
-  \DeclareUnicodeCharacter{2299}{\ensuremath\odot}
-  \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}
-  \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}
-  \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}
-  \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}
-  \DeclareUnicodeCharacter{22A8}{\ensuremath\models}
-  \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}
-  \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}
-  \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}
-  \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}
-  \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}
-  \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}
-  \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}
-  \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}
-  \DeclareUnicodeCharacter{22C6}{\ensuremath\star}
-  \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}
-  \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}
-  \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}
-  \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}
-  \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}
-  \DeclareUnicodeCharacter{2322}{\ensuremath\frown}
-  \DeclareUnicodeCharacter{2323}{\ensuremath\smile}
-
-  \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}
-  \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}
-  \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}
-  \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}
-  \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}
-  \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}
-  \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}
-  \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}
-  \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}
-  \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}
-  \DeclareUnicodeCharacter{266D}{\ensuremath\flat}
-  \DeclareUnicodeCharacter{266E}{\ensuremath\natural}
-  \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}
-  \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}
-  \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}
-  \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}
-  \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}
-  \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}
-  \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}
-  \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}
-  \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}
-  \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}
-  \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}
-  \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}
-  \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}
-  \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}
-  \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}
-  \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}
-  \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}
-  \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}
-  \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}
-
-  \global\mathchardef\checkmark="1370 % actually the square root sign
-  \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}
-}% end of \utfeightchardefs
+  \DeclareUnicodeCharacter{2200}{\ensuremath\forall}%
+  \DeclareUnicodeCharacter{2203}{\ensuremath\exists}%
+  \DeclareUnicodeCharacter{2208}{\ensuremath\in}%
+  \DeclareUnicodeCharacter{2212}{\minus}%
+  \DeclareUnicodeCharacter{2217}{\ast}%
+  \DeclareUnicodeCharacter{221E}{\ensuremath\infty}%
+  \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}%
+  \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}%
+  \DeclareUnicodeCharacter{2229}{\ensuremath\cap}%
+  \DeclareUnicodeCharacter{2261}{\equiv}%
+  \DeclareUnicodeCharacter{2264}{\ensuremath\leq}%
+  \DeclareUnicodeCharacter{2265}{\ensuremath\geq}%
+  \DeclareUnicodeCharacter{2282}{\ensuremath\subset}%
+  \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}%
+  %
+  \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}%
+  \DeclareUnicodeCharacter{2032}{\ensuremath\prime}%
+  \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}%
+  \DeclareUnicodeCharacter{2111}{\ensuremath\Im}%
+  \DeclareUnicodeCharacter{2113}{\ensuremath\ell}%
+  \DeclareUnicodeCharacter{2118}{\ensuremath\wp}%
+  \DeclareUnicodeCharacter{211C}{\ensuremath\Re}%
+  \DeclareUnicodeCharacter{2127}{\ensuremath\mho}%
+  \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}%
+  \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}%
+  \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}%
+  \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}%
+  \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}%
+  \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}%
+  \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}%
+  \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}%
+  \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}%
+  \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}%
+  \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}%
+  \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}%
+  \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}%
+  \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}%
+  \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}%
+  \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}%
+  \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}%
+  \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}%
+  \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}%
+  \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}%
+  \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}%
+  \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}%
+  \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}%
+  \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}%
+  \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}%
+  \DeclareUnicodeCharacter{2201}{\ensuremath\complement}%
+  \DeclareUnicodeCharacter{2202}{\ensuremath\partial}%
+  \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}%
+  \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}%
+  \DeclareUnicodeCharacter{2209}{\ensuremath\notin}%
+  \DeclareUnicodeCharacter{220B}{\ensuremath\owns}%
+  \DeclareUnicodeCharacter{220F}{\ensuremath\prod}%
+  \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}%
+  \DeclareUnicodeCharacter{2211}{\ensuremath\sum}%
+  \DeclareUnicodeCharacter{2213}{\ensuremath\mp}%
+  \DeclareUnicodeCharacter{2218}{\ensuremath\circ}%
+  \DeclareUnicodeCharacter{221A}{\ensuremath\surd}%
+  \DeclareUnicodeCharacter{221D}{\ensuremath\propto}%
+  \DeclareUnicodeCharacter{2220}{\ensuremath\angle}%
+  \DeclareUnicodeCharacter{2223}{\ensuremath\mid}%
+  \DeclareUnicodeCharacter{2228}{\ensuremath\vee}%
+  \DeclareUnicodeCharacter{222A}{\ensuremath\cup}%
+  \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}%
+  \DeclareUnicodeCharacter{222E}{\ensuremath\oint}%
+  \DeclareUnicodeCharacter{223C}{\ensuremath\sim}%
+  \DeclareUnicodeCharacter{2240}{\ensuremath\wr}%
+  \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}%
+  \DeclareUnicodeCharacter{2245}{\ensuremath\cong}%
+  \DeclareUnicodeCharacter{2248}{\ensuremath\approx}%
+  \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}%
+  \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}%
+  \DeclareUnicodeCharacter{2260}{\ensuremath\neq}%
+  \DeclareUnicodeCharacter{226A}{\ensuremath\ll}%
+  \DeclareUnicodeCharacter{226B}{\ensuremath\gg}%
+  \DeclareUnicodeCharacter{227A}{\ensuremath\prec}%
+  \DeclareUnicodeCharacter{227B}{\ensuremath\succ}%
+  \DeclareUnicodeCharacter{2283}{\ensuremath\supset}%
+  \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}%
+  \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}%
+  \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}%
+  \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}%
+  \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}%
+  \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}%
+  \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}%
+  \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}%
+  \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}%
+  \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}%
+  \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}%
+  \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}%
+  \DeclareUnicodeCharacter{2299}{\ensuremath\odot}%
+  \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}%
+  \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}%
+  \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}%
+  \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}%
+  \DeclareUnicodeCharacter{22A8}{\ensuremath\models}%
+  \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}%
+  \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}%
+  \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}%
+  \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}%
+  \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}%
+  \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}%
+  \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}%
+  \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}%
+  \DeclareUnicodeCharacter{22C6}{\ensuremath\star}%
+  \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}%
+  \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}%
+  \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}%
+  \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}%
+  \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}%
+  \DeclareUnicodeCharacter{2322}{\ensuremath\frown}%
+  \DeclareUnicodeCharacter{2323}{\ensuremath\smile}%
+  %
+  \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}%
+  \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}%
+  \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}%
+  \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}%
+  \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}%
+  \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}%
+  \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}%
+  \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}%
+  \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}%
+  \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}%
+  \DeclareUnicodeCharacter{266D}{\ensuremath\flat}%
+  \DeclareUnicodeCharacter{266E}{\ensuremath\natural}%
+  \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}%
+  \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}%
+  \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}%
+  \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}%
+  \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}%
+  \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}%
+  \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}%
+  \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}%
+  \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}%
+  \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}%
+  \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}%
+  \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}%
+  \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}%
+  \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}%
+  \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}%
+  \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}%
+  \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}%
+  \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}%
+  \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}%
+  %
+  \global\mathchardef\checkmark="1370% actually the square root sign
+  \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}%
+}% end of \unicodechardefs
+
+% UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command)
+% It makes the setting that replace UTF-8 byte sequence.
+\def\utfeightchardefs{%
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii
+  \unicodechardefs
+}
 
-% US-ASCII character definitions.
-\def\asciichardefs{% nothing need be done
-   \relax
+% Whether the active definitions of non-ASCII characters expand to
+% non-active tokens with the same character code.  This is used to
+% write characters literally, instead of using active definitions for
+% printing the correct glyphs.
+\newif\ifpassthroughchars
+\passthroughcharsfalse
+
+% For native Unicode (XeTeX and LuaTeX)
+% Definition macro to replace / pass-through the Unicode character
+%
+\def\DeclareUnicodeCharacterNative#1#2{%
+  \catcode"#1=\active
+  \def\dodeclareunicodecharacternative##1##2##3{%
+    \begingroup
+      \uccode`\~="##2\relax
+      \uppercase{\gdef~}{%
+        \ifpassthroughchars
+          ##1%
+        \else
+          ##3%
+        \fi
+      }
+    \endgroup
+  }
+  \begingroup
+    \uccode`\.="#1\relax
+    \uppercase{\def\UTFNativeTmp{.}}%
+    \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}%
+  \endgroup
 }
 
-% Latin1 (ISO-8859-1) character definitions.
-\def\nonasciistringdefs{%
-  \setnonasciicharscatcode\active
-  \def\defstringchar##1{\def##1{\string##1}}%
-  %
-  \defstringchar^^80\defstringchar^^81\defstringchar^^82\defstringchar^^83%
-  \defstringchar^^84\defstringchar^^85\defstringchar^^86\defstringchar^^87%
-  \defstringchar^^88\defstringchar^^89\defstringchar^^8a\defstringchar^^8b%
-  \defstringchar^^8c\defstringchar^^8d\defstringchar^^8e\defstringchar^^8f%
-  %
-  \defstringchar^^90\defstringchar^^91\defstringchar^^92\defstringchar^^93%
-  \defstringchar^^94\defstringchar^^95\defstringchar^^96\defstringchar^^97%
-  \defstringchar^^98\defstringchar^^99\defstringchar^^9a\defstringchar^^9b%
-  \defstringchar^^9c\defstringchar^^9d\defstringchar^^9e\defstringchar^^9f%
-  %
-  \defstringchar^^a0\defstringchar^^a1\defstringchar^^a2\defstringchar^^a3%
-  \defstringchar^^a4\defstringchar^^a5\defstringchar^^a6\defstringchar^^a7%
-  \defstringchar^^a8\defstringchar^^a9\defstringchar^^aa\defstringchar^^ab%
-  \defstringchar^^ac\defstringchar^^ad\defstringchar^^ae\defstringchar^^af%
-  %
-  \defstringchar^^b0\defstringchar^^b1\defstringchar^^b2\defstringchar^^b3%
-  \defstringchar^^b4\defstringchar^^b5\defstringchar^^b6\defstringchar^^b7%
-  \defstringchar^^b8\defstringchar^^b9\defstringchar^^ba\defstringchar^^bb%
-  \defstringchar^^bc\defstringchar^^bd\defstringchar^^be\defstringchar^^bf%
-  %
-  \defstringchar^^c0\defstringchar^^c1\defstringchar^^c2\defstringchar^^c3%
-  \defstringchar^^c4\defstringchar^^c5\defstringchar^^c6\defstringchar^^c7%
-  \defstringchar^^c8\defstringchar^^c9\defstringchar^^ca\defstringchar^^cb%
-  \defstringchar^^cc\defstringchar^^cd\defstringchar^^ce\defstringchar^^cf%
-  %
-  \defstringchar^^d0\defstringchar^^d1\defstringchar^^d2\defstringchar^^d3%
-  \defstringchar^^d4\defstringchar^^d5\defstringchar^^d6\defstringchar^^d7%
-  \defstringchar^^d8\defstringchar^^d9\defstringchar^^da\defstringchar^^db%
-  \defstringchar^^dc\defstringchar^^dd\defstringchar^^de\defstringchar^^df%
-  %
-  \defstringchar^^e0\defstringchar^^e1\defstringchar^^e2\defstringchar^^e3%
-  \defstringchar^^e4\defstringchar^^e5\defstringchar^^e6\defstringchar^^e7%
-  \defstringchar^^e8\defstringchar^^e9\defstringchar^^ea\defstringchar^^eb%
-  \defstringchar^^ec\defstringchar^^ed\defstringchar^^ee\defstringchar^^ef%
-  %
-  \defstringchar^^f0\defstringchar^^f1\defstringchar^^f2\defstringchar^^f3%
-  \defstringchar^^f4\defstringchar^^f5\defstringchar^^f6\defstringchar^^f7%
-  \defstringchar^^f8\defstringchar^^f9\defstringchar^^fa\defstringchar^^fb%
-  \defstringchar^^fc\defstringchar^^fd\defstringchar^^fe\defstringchar^^ff%
+% Native Unicode (XeTeX and LuaTeX) character replacing definitions
+% It makes the setting that replace the Unicode characters.
+\def\nativeunicodechardefs{%
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative
+  \unicodechardefs
 }
 
+% For native Unicode (XeTeX and LuaTeX).  Make the character token expand
+% to the sequences given in \unicodechardefs for printing.
+\def\DeclareUnicodeCharacterNativeAtU#1#2{%
+  \def\UTFAtUTmp{#2}
+  \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp
+}
+
+% Native Unicode (XeTeX and LuaTeX) @U command definitions
+\def\nativeunicodechardefsatu{%
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU
+  \unicodechardefs
+}
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+   \relax
+}
 
 % define all the unicode characters we know about, for the sake of @U.
-\utfeightchardefs
+\iftxinativeunicodecapable
+  \nativeunicodechardefsatu
+\else
+  \utfeightchardefs
+\fi
 
 
 % Make non-ASCII characters printable again for compatibility with
@@ -10667,12 +11131,12 @@ directory should work if nowhere else does.}
   \advance\vsize by \topskip
   \outervsize = \vsize
   \advance\outervsize by 2\topandbottommargin
-  \pageheight = \vsize
+  \txipageheight = \vsize
   %
   \hsize = #2\relax
   \outerhsize = \hsize
   \advance\outerhsize by 0.5in
-  \pagewidth = \hsize
+  \txipagewidth = \hsize
   %
   \normaloffset = #4\relax
   \bindingoffset = #5\relax
@@ -10684,6 +11148,13 @@ directory should work if nowhere else does.}
     % whatever layout pdftex was dumped with.
     \pdfhorigin = 1 true in
     \pdfvorigin = 1 true in
+  \else
+    \ifx\XeTeXrevision\thisisundefined
+    \else
+      \pdfpageheight #7\relax
+      \pdfpagewidth #8\relax
+      % XeTeX does not have \pdfhorigin and \pdfvorigin.
+    \fi
   \fi
   %
   \setleading{\textleading}
@@ -10958,7 +11429,7 @@ directory should work if nowhere else does.}
 %
 {@catcode`- = @active
  @gdef@normalturnoffactive{%
-   @nonasciistringdefs
+   @passthroughcharstrue
    @let-=@normaldash
    @let"=@normaldoublequote
    @let$=@normaldollar %$ font-lock fix
@@ -10996,17 +11467,29 @@ directory should work if nowhere else does.}
   @global@let\ = @eatinput%
   @catcode`@^^M=13%
   @def@c{@fixbackslash@c}%
+  % Definition for the newline at the end of this file.
   @def ^^M{@let^^M@secondlinenl}%
-  @gdef @secondlinenl{@let^^M@thirdlinenl}%
-  @gdef @thirdlinenl{@fixbackslash}%
+  % Definition for a newline in the main Texinfo file.
+  @gdef @secondlinenl{@fixbackslash}%
 }}
 
 {@catcode`@^=7 @catcode`@^^M=13%
 @gdef@eatinput input texinfo#1^^M{@fixbackslash}}
 
+% Emergency active definition of newline, in case an active newline token
+% appears by mistake.
+{@catcode`@^=7 @catcode13=13%
+@gdef@enableemergencynewline{%
+  @gdef^^M{%
+    @par%
+    %<warning: active newline>@par%
+}}}
+
+
 @gdef@fixbackslash{%
   @ifx\@eatinput @let\ = @ttbackslash @fi
   @catcode13=5 % regular end of line
+  @enableemergencynewline
   @let@c=@texinfoc
   % Also turn back on active characters that might appear in the input
   % file name, in case not using a pre-dumped format.