diff options
author | John Gourlay <john@weathervanefarm.net> | 2016-04-29 15:47:40 -0400 |
---|---|---|
committer | John Gourlay <john@weathervanefarm.net> | 2016-04-29 15:47:40 -0400 |
commit | 0398fdb9df24ac2e22a8cbff1b3c18ca04e9f221 (patch) | |
tree | ec2ba477b4140452a4184c6c7199d021d9ffe552 | |
parent | 1ad144eca54df3c4e5f43b555c01606e0cfd82b6 (diff) | |
parent | 7d3fa8cb4799303da8e5fd2ead35f1ac32180157 (diff) |
Merge branch 'master' into philomelos
Conflicts resolved in:
python/musicexp.py
python/musicxml.py
scripts/musicxml2ly.py
242 files changed, 21937 insertions, 16064 deletions
diff --git a/Documentation/ca/translations.itexi b/Documentation/ca/translations.itexi index 852bf4d225..c13a5fb703 100644 --- a/Documentation/ca/translations.itexi +++ b/Documentation/ca/translations.itexi @@ -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 diff --git a/Documentation/ca/web/introduction.itexi b/Documentation/ca/web/introduction.itexi index d148bd90b9..2ec65a2c2c 100644 --- a/Documentation/ca/web/introduction.itexi +++ b/Documentation/ca/web/introduction.itexi @@ -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}. diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 00e53b5e88..fc4052efa6 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -62,6 +62,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 to match, just like @code{ly:one-line-breaking}. The difference is that @@ -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 diff --git a/Documentation/contributor/administration.itexi b/Documentation/contributor/administration.itexi index a392f7d660..9af951ee8e 100644 --- a/Documentation/contributor/administration.itexi +++ b/Documentation/contributor/administration.itexi @@ -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 diff --git a/Documentation/contributor/doc-translation-list.itexi b/Documentation/contributor/doc-translation-list.itexi index 497007c2a7..b2f2eaec33 100644 --- a/Documentation/contributor/doc-translation-list.itexi +++ b/Documentation/contributor/doc-translation-list.itexi @@ -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 diff --git a/Documentation/contributor/doc-work.itexi b/Documentation/contributor/doc-work.itexi index 0435b96265..b9f1c7a77e 100644 --- a/Documentation/contributor/doc-work.itexi +++ b/Documentation/contributor/doc-work.itexi @@ -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. diff --git a/Documentation/contributor/introduction.itexi b/Documentation/contributor/introduction.itexi index 59eb050c1a..24abc03bf7 100644 --- a/Documentation/contributor/introduction.itexi +++ b/Documentation/contributor/introduction.itexi @@ -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 diff --git a/Documentation/contributor/issues.itexi b/Documentation/contributor/issues.itexi index 883328f85a..434ead511a 100644 --- a/Documentation/contributor/issues.itexi +++ b/Documentation/contributor/issues.itexi @@ -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 diff --git a/Documentation/contributor/quick-start.itexi b/Documentation/contributor/quick-start.itexi index a6da27402b..e3ee9e9141 100644 --- a/Documentation/contributor/quick-start.itexi +++ b/Documentation/contributor/quick-start.itexi @@ -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]: diff --git a/Documentation/contributor/source-code.itexi b/Documentation/contributor/source-code.itexi index 4a7357878c..9541fe963a 100644 --- a/Documentation/contributor/source-code.itexi +++ b/Documentation/contributor/source-code.itexi @@ -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 diff --git a/Documentation/contributor/website-work.itexi b/Documentation/contributor/website-work.itexi index 3136c1b144..d719843b53 100644 --- a/Documentation/contributor/website-work.itexi +++ b/Documentation/contributor/website-work.itexi @@ -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 - - diff --git a/Documentation/cs/translations.itexi b/Documentation/cs/translations.itexi index 8a5a56e56b..d09eee8427 100644 --- a/Documentation/cs/translations.itexi +++ b/Documentation/cs/translations.itexi @@ -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 diff --git a/Documentation/cs/web/introduction.itexi b/Documentation/cs/web/introduction.itexi index 6558ecaca5..7aedbb9b1a 100644 --- a/Documentation/cs/web/introduction.itexi +++ b/Documentation/cs/web/introduction.itexi @@ -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} diff --git a/Documentation/css/lilypond-manuals.css b/Documentation/css/lilypond-manuals.css index 04a6877d8d..e0e8eca9b6 100644 --- a/Documentation/css/lilypond-manuals.css +++ b/Documentation/css/lilypond-manuals.css @@ -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 */ /***********************************************************/ diff --git a/Documentation/de/notation/rhythms.itely b/Documentation/de/notation/rhythms.itely index c73fae7ef3..a87acd3a5d 100644 --- a/Documentation/de/notation/rhythms.itely +++ b/Documentation/de/notation/rhythms.itely @@ -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 } diff --git a/Documentation/de/notation/spacing.itely b/Documentation/de/notation/spacing.itely index 75abb5462f..67f8b0ab7d 100644 --- a/Documentation/de/notation/spacing.itely +++ b/Documentation/de/notation/spacing.itely @@ -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 diff --git a/Documentation/de/translations.itexi b/Documentation/de/translations.itexi index 97578ab585..5bf2b123a8 100644 --- a/Documentation/de/translations.itexi +++ b/Documentation/de/translations.itexi @@ -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 diff --git a/Documentation/de/web/introduction.itexi b/Documentation/de/web/introduction.itexi index be93bcdc54..d037998180 100644 --- a/Documentation/de/web/introduction.itexi +++ b/Documentation/de/web/introduction.itexi @@ -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} diff --git a/Documentation/es/changes.tely b/Documentation/es/changes.tely index 34feafdbc0..e6ed58abea 100644 --- a/Documentation/es/changes.tely +++ b/Documentation/es/changes.tely @@ -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. diff --git a/Documentation/es/essay.tely b/Documentation/es/essay.tely index 989be8cdc1..913940c7f0 100644 --- a/Documentation/es/essay.tely +++ b/Documentation/es/essay.tely @@ -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 diff --git a/Documentation/es/essay/engraving.itely b/Documentation/es/essay/engraving.itely index 94ee25cd29..1c849fcf3a 100644 --- a/Documentation/es/essay/engraving.itely +++ b/Documentation/es/essay/engraving.itely @@ -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? diff --git a/Documentation/es/essay/literature.itely b/Documentation/es/essay/literature.itely index a54923d7f6..b9080bb7d2 100644 --- a/Documentation/es/essay/literature.itely +++ b/Documentation/es/essay/literature.itely @@ -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). diff --git a/Documentation/es/extending.tely b/Documentation/es/extending.tely index 81989c5495..63697fa0e8 100644 --- a/Documentation/es/extending.tely +++ b/Documentation/es/extending.tely @@ -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 diff --git a/Documentation/es/extending/programming-interface.itely b/Documentation/es/extending/programming-interface.itely index c25922f54f..83a966eac2 100644 --- a/Documentation/es/extending/programming-interface.itely +++ b/Documentation/es/extending/programming-interface.itely @@ -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 -y 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 diff --git a/Documentation/es/extending/scheme-tutorial.itely b/Documentation/es/extending/scheme-tutorial.itely index 6483a5b75e..ba196bca61 100644 --- a/Documentation/es/extending/scheme-tutorial.itely +++ b/Documentation/es/extending/scheme-tutorial.itely @@ -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' @@ -21,18 +21,18 @@ @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 +y 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 diff --git a/Documentation/es/learning.tely b/Documentation/es/learning.tely index c672700ac0..a16de4f568 100644 --- a/Documentation/es/learning.tely +++ b/Documentation/es/learning.tely @@ -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 diff --git a/Documentation/es/learning/common-notation.itely b/Documentation/es/learning/common-notation.itely index 066feb3af1..ba01420684 100644 --- a/Documentation/es/learning/common-notation.itely +++ b/Documentation/es/learning/common-notation.itely @@ -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 +a 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! diff --git a/Documentation/es/learning/fundamental.itely b/Documentation/es/learning/fundamental.itely index 5c38195fbe..ff989e7dc0 100644 --- a/Documentation/es/learning/fundamental.itely +++ b/Documentation/es/learning/fundamental.itely @@ -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' @@ -14,10 +14,10 @@ @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 +a 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}. diff --git a/Documentation/es/learning/templates.itely b/Documentation/es/learning/templates.itely index e3aa730163..5cced5c9f8 100644 --- a/Documentation/es/learning/templates.itely +++ b/Documentation/es/learning/templates.itely @@ -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:: diff --git a/Documentation/es/learning/tutorial.itely b/Documentation/es/learning/tutorial.itely index 2e0199c712..a8b359b48f 100644 --- a/Documentation/es/learning/tutorial.itely +++ b/Documentation/es/learning/tutorial.itely @@ -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 diff --git a/Documentation/es/learning/tweaks.itely b/Documentation/es/learning/tweaks.itely index cb6b875df4..5b33f851f9 100644 --- a/Documentation/es/learning/tweaks.itely +++ b/Documentation/es/learning/tweaks.itely @@ -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 +a 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 +y 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} +y @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 +y 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}. diff --git a/Documentation/es/notation.tely b/Documentation/es/notation.tely index b187a81e0f..a70efba00c 100644 --- a/Documentation/es/notation.tely +++ b/Documentation/es/notation.tely @@ -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 diff --git a/Documentation/es/notation/changing-defaults.itely b/Documentation/es/notation/changing-defaults.itely index 91ddd9ab3e..8e102bf655 100644 --- a/Documentation/es/notation/changing-defaults.itely +++ b/Documentation/es/notation/changing-defaults.itely @@ -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} +y 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} +y @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 +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. @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 = diff --git a/Documentation/es/notation/editorial.itely b/Documentation/es/notation/editorial.itely index 8d6b154dd1..72e0b7fbae 100644 --- a/Documentation/es/notation/editorial.itely +++ b/Documentation/es/notation/editorial.itely @@ -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 +o 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 { diff --git a/Documentation/es/notation/expressive.itely b/Documentation/es/notation/expressive.itely index bd60012b69..f569690a31 100644 --- a/Documentation/es/notation/expressive.itely +++ b/Documentation/es/notation/expressive.itely @@ -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 { diff --git a/Documentation/es/notation/input.itely b/Documentation/es/notation/input.itely index abe7941049..43df988df2 100644 --- a/Documentation/es/notation/input.itely +++ b/Documentation/es/notation/input.itely @@ -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' @@ -14,15 +14,15 @@ @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 +y 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 +a 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 diff --git a/Documentation/es/notation/notation-appendices.itely b/Documentation/es/notation/notation-appendices.itely index 3611fc38ab..ad03fb2d8b 100644 --- a/Documentation/es/notation/notation-appendices.itely +++ b/Documentation/es/notation/notation-appendices.itely @@ -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' @@ -20,10 +20,11 @@ * 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 diff --git a/Documentation/es/notation/percussion.itely b/Documentation/es/notation/percussion.itely index c83c4a4c93..c2ed998cf0 100644 --- a/Documentation/es/notation/percussion.itely +++ b/Documentation/es/notation/percussion.itely @@ -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}. diff --git a/Documentation/es/notation/pitches.itely b/Documentation/es/notation/pitches.itely index 8941292863..81fb3778d5 100644 --- a/Documentation/es/notation/pitches.itely +++ b/Documentation/es/notation/pitches.itely @@ -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} +y @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 { diff --git a/Documentation/es/notation/repeats.itely b/Documentation/es/notation/repeats.itely index aa21ce274d..f2f8e2b49f 100644 --- a/Documentation/es/notation/repeats.itely +++ b/Documentation/es/notation/repeats.itely @@ -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 { diff --git a/Documentation/es/notation/rhythms.itely b/Documentation/es/notation/rhythms.itely index 46e0f7c3bd..7a2c6a24e2 100644 --- a/Documentation/es/notation/rhythms.itely +++ b/Documentation/es/notation/rhythms.itely @@ -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} +y @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. diff --git a/Documentation/es/notation/simultaneous.itely b/Documentation/es/notation/simultaneous.itely index cc63e37514..3528e6419e 100644 --- a/Documentation/es/notation/simultaneous.itely +++ b/Documentation/es/notation/simultaneous.itely @@ -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' @@ -17,15 +17,17 @@ @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 = { diff --git a/Documentation/es/notation/spacing.itely b/Documentation/es/notation/spacing.itely index b670ba8b0f..7d86ece5db 100644 --- a/Documentation/es/notation/spacing.itely +++ b/Documentation/es/notation/spacing.itely @@ -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 diff --git a/Documentation/es/notation/staff.itely b/Documentation/es/notation/staff.itely index ba0300710f..9cfc2be7e2 100644 --- a/Documentation/es/notation/staff.itely +++ b/Documentation/es/notation/staff.itely @@ -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 { @@ -1357,12 +1359,12 @@ y 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. diff --git a/Documentation/es/notation/text.itely b/Documentation/es/notation/text.itely index 368e8e1f99..aae020d905 100644 --- a/Documentation/es/notation/text.itely +++ b/Documentation/es/notation/text.itely @@ -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 diff --git a/Documentation/es/translations.itexi b/Documentation/es/translations.itexi index 0668b2bd06..ebcb99b0d2 100644 --- a/Documentation/es/translations.itexi +++ b/Documentation/es/translations.itexi @@ -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 diff --git a/Documentation/es/usage.tely b/Documentation/es/usage.tely index e1fd23af0d..c1399caaa5 100644 --- a/Documentation/es/usage.tely +++ b/Documentation/es/usage.tely @@ -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 diff --git a/Documentation/es/usage/running.itely b/Documentation/es/usage/running.itely index a55d99bb1b..62ec414ffc 100644 --- a/Documentation/es/usage/running.itely +++ b/Documentation/es/usage/running.itely @@ -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,30 +480,31 @@ 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} @@ -426,30 +512,60 @@ las fuentes. Utilizado como opción predeterminada por parte de 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}. diff --git a/Documentation/es/usage/updating.itely b/Documentation/es/usage/updating.itely index acb7b92fc5..95d310efbc 100644 --- a/Documentation/es/usage/updating.itely +++ b/Documentation/es/usage/updating.itely @@ -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' @@ -18,13 +18,16 @@ @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 - - diff --git a/Documentation/es/web.texi b/Documentation/es/web.texi index ee974b53a3..dd324b3ac1 100644 --- a/Documentation/es/web.texi +++ b/Documentation/es/web.texi @@ -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' @@ -13,16 +13,12 @@ @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 @@ -34,6 +30,15 @@ @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 diff --git a/Documentation/es/web/community.itexi b/Documentation/es/web/community.itexi index 6aa990a19b..c307ab534b 100644 --- a/Documentation/es/web/community.itexi +++ b/Documentation/es/web/community.itexi @@ -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 +o 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 diff --git a/Documentation/es/web/download.itexi b/Documentation/es/web/download.itexi index 507b5bdbf0..6d15a48bf2 100644 --- a/Documentation/es/web/download.itexi +++ b/Documentation/es/web/download.itexi @@ -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. diff --git a/Documentation/es/web/introduction.itexi b/Documentation/es/web/introduction.itexi index 53282b44e7..d4f5150249 100644 --- a/Documentation/es/web/introduction.itexi +++ b/Documentation/es/web/introduction.itexi @@ -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}. diff --git a/Documentation/es/web/manuals.itexi b/Documentation/es/web/manuals.itexi index cd92b96e10..80640c4e34 100644 --- a/Documentation/es/web/manuals.itexi +++ b/Documentation/es/web/manuals.itexi @@ -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' diff --git a/Documentation/es/web/news-front.itexi b/Documentation/es/web/news-front.itexi index f447fbc0c3..e08214ea3b 100644 --- a/Documentation/es/web/news-front.itexi +++ b/Documentation/es/web/news-front.itexi @@ -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,23 +18,150 @@ @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, diff --git a/Documentation/es/web/news.itexi b/Documentation/es/web/news.itexi index d040c34553..da7861a1a3 100644 --- a/Documentation/es/web/news.itexi +++ b/Documentation/es/web/news.itexi @@ -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 diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index f54b1ad0ce..5e63eabcd4 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -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. diff --git a/Documentation/extending/scheme-tutorial.itely b/Documentation/extending/scheme-tutorial.itely index f8f23a5fa4..fd0beaa9e1 100644 --- a/Documentation/extending/scheme-tutorial.itely +++ b/Documentation/extending/scheme-tutorial.itely @@ -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 diff --git a/Documentation/fr/extending/programming-interface.itely b/Documentation/fr/extending/programming-interface.itely index 83ffcf0d83..938212ab92 100644 --- a/Documentation/fr/extending/programming-interface.itely +++ b/Documentation/fr/extending/programming-interface.itely @@ -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}} diff --git a/Documentation/fr/extending/scheme-tutorial.itely b/Documentation/fr/extending/scheme-tutorial.itely index adf74a50ae..4664a82cc2 100644 --- a/Documentation/fr/extending/scheme-tutorial.itely +++ b/Documentation/fr/extending/scheme-tutorial.itely @@ -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) diff --git a/Documentation/fr/learning/common-notation.itely b/Documentation/fr/learning/common-notation.itely index 604ab7b313..43b221956b 100644 --- a/Documentation/fr/learning/common-notation.itely +++ b/Documentation/fr/learning/common-notation.itely @@ -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 diff --git a/Documentation/fr/learning/templates.itely b/Documentation/fr/learning/templates.itely index f85e0e80ec..34fa67f93b 100644 --- a/Documentation/fr/learning/templates.itely +++ b/Documentation/fr/learning/templates.itely @@ -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} diff --git a/Documentation/fr/learning/tweaks.itely b/Documentation/fr/learning/tweaks.itely index ba7e8b5211..51cb7cad7f 100644 --- a/Documentation/fr/learning/tweaks.itely +++ b/Documentation/fr/learning/tweaks.itely @@ -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 diff --git a/Documentation/fr/notation/changing-defaults.itely b/Documentation/fr/notation/changing-defaults.itely index 764a459f0e..06727c69be 100644 --- a/Documentation/fr/notation/changing-defaults.itely +++ b/Documentation/fr/notation/changing-defaults.itely @@ -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)) diff --git a/Documentation/fr/notation/fretted-strings.itely b/Documentation/fr/notation/fretted-strings.itely index 6179f04ee6..efed76bf99 100644 --- a/Documentation/fr/notation/fretted-strings.itely +++ b/Documentation/fr/notation/fretted-strings.itely @@ -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. diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index 369ea21219..0dc4cb7cdc 100644 --- a/Documentation/fr/notation/input.itely +++ b/Documentation/fr/notation/input.itely @@ -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 } >> >> diff --git a/Documentation/fr/notation/notation-appendices.itely b/Documentation/fr/notation/notation-appendices.itely index f5a8c10cb0..db37650e2d 100644 --- a/Documentation/fr/notation/notation-appendices.itely +++ b/Documentation/fr/notation/notation-appendices.itely @@ -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] << diff --git a/Documentation/fr/notation/pitches.itely b/Documentation/fr/notation/pitches.itely index 868772612a..1ef13ac7ff 100644 --- a/Documentation/fr/notation/pitches.itely +++ b/Documentation/fr/notation/pitches.itely @@ -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} diff --git a/Documentation/fr/notation/rhythms.itely b/Documentation/fr/notation/rhythms.itely index f8d4b13ddd..c23e2bfc86 100644 --- a/Documentation/fr/notation/rhythms.itely +++ b/Documentation/fr/notation/rhythms.itely @@ -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 } diff --git a/Documentation/fr/notation/spacing.itely b/Documentation/fr/notation/spacing.itely index 415c9b9ef0..f677b5c2d0 100644 --- a/Documentation/fr/notation/spacing.itely +++ b/Documentation/fr/notation/spacing.itely @@ -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 diff --git a/Documentation/fr/notation/staff.itely b/Documentation/fr/notation/staff.itely index 77a47a5512..9af9d3429a 100644 --- a/Documentation/fr/notation/staff.itely +++ b/Documentation/fr/notation/staff.itely @@ -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}. diff --git a/Documentation/fr/texidocs/automatic-beam-subdivisions.texidoc b/Documentation/fr/texidocs/automatic-beam-subdivisions.texidoc index 38661149c2..0175fa0956 100644 --- a/Documentation/fr/texidocs/automatic-beam-subdivisions.texidoc +++ b/Documentation/fr/texidocs/automatic-beam-subdivisions.texidoc @@ -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}. diff --git a/Documentation/fr/texidocs/beam-endings-in-score-context.texidoc b/Documentation/fr/texidocs/beam-endings-in-score-context.texidoc index 373ac8a06f..e955d72ef5 100644 --- a/Documentation/fr/texidocs/beam-endings-in-score-context.texidoc +++ b/Documentation/fr/texidocs/beam-endings-in-score-context.texidoc @@ -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 diff --git a/Documentation/fr/texidocs/center-text-below-hairpin-dynamics.texidoc b/Documentation/fr/texidocs/center-text-below-hairpin-dynamics.texidoc index d96ac85b15..bcc51ad1b5 100644 --- a/Documentation/fr/texidocs/center-text-below-hairpin-dynamics.texidoc +++ b/Documentation/fr/texidocs/center-text-below-hairpin-dynamics.texidoc @@ -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 index 3b97339937..0000000000 --- a/Documentation/fr/texidocs/centering-markup-on-note-heads-automatically.texidoc +++ /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" diff --git a/Documentation/fr/texidocs/changing-stanza-fonts.texidoc b/Documentation/fr/texidocs/changing-stanza-fonts.texidoc index 6748d92b96..2c02862fb2 100644 --- a/Documentation/fr/texidocs/changing-stanza-fonts.texidoc +++ b/Documentation/fr/texidocs/changing-stanza-fonts.texidoc @@ -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. diff --git a/Documentation/fr/texidocs/changing-the-default-text-font-family.texidoc b/Documentation/fr/texidocs/changing-the-default-text-font-family.texidoc index ddd14f34f1..8cdfed9f4d 100644 --- a/Documentation/fr/texidocs/changing-the-default-text-font-family.texidoc +++ b/Documentation/fr/texidocs/changing-the-default-text-font-family.texidoc @@ -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}. diff --git a/Documentation/fr/texidocs/conducting-signs,-measure-grouping-signs.texidoc b/Documentation/fr/texidocs/conducting-signs,-measure-grouping-signs.texidoc index fe96a26e9d..c44f2e1ce3 100644 --- a/Documentation/fr/texidocs/conducting-signs,-measure-grouping-signs.texidoc +++ b/Documentation/fr/texidocs/conducting-signs,-measure-grouping-signs.texidoc @@ -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}. diff --git a/Documentation/fr/texidocs/displaying-complex-chords.texidoc b/Documentation/fr/texidocs/displaying-complex-chords.texidoc index d0f56b5ee5..60a87790fa 100644 --- a/Documentation/fr/texidocs/displaying-complex-chords.texidoc +++ b/Documentation/fr/texidocs/displaying-complex-chords.texidoc @@ -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. diff --git a/Documentation/fr/texidocs/displaying-grob-ancestry.texidoc b/Documentation/fr/texidocs/displaying-grob-ancestry.texidoc index ac0f021915..14e3ded554 100644 --- a/Documentation/fr/texidocs/displaying-grob-ancestry.texidoc +++ b/Documentation/fr/texidocs/displaying-grob-ancestry.texidoc @@ -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" diff --git a/Documentation/fr/texidocs/how-to-change-fret-diagram-position.texidoc b/Documentation/fr/texidocs/how-to-change-fret-diagram-position.texidoc index 477b7b7192..c9e5384e25 100644 --- a/Documentation/fr/texidocs/how-to-change-fret-diagram-position.texidoc +++ b/Documentation/fr/texidocs/how-to-change-fret-diagram-position.texidoc @@ -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 : diff --git a/Documentation/fr/texidocs/reverting-default-beam-endings.texidoc b/Documentation/fr/texidocs/reverting-default-beam-endings.texidoc index 8efb2b8798..c8b097dae7 100644 --- a/Documentation/fr/texidocs/reverting-default-beam-endings.texidoc +++ b/Documentation/fr/texidocs/reverting-default-beam-endings.texidoc @@ -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 diff --git a/Documentation/fr/texidocs/string-number-extender-lines.texidoc b/Documentation/fr/texidocs/string-number-extender-lines.texidoc index 3ac96b6a40..68c4ad026c 100644 --- a/Documentation/fr/texidocs/string-number-extender-lines.texidoc +++ b/Documentation/fr/texidocs/string-number-extender-lines.texidoc @@ -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 diff --git a/Documentation/fr/texidocs/subdividing-beams.texidoc b/Documentation/fr/texidocs/subdividing-beams.texidoc index 6098eb2d8d..0884b088e1 100644 --- a/Documentation/fr/texidocs/subdividing-beams.texidoc +++ b/Documentation/fr/texidocs/subdividing-beams.texidoc @@ -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 diff --git a/Documentation/fr/texidocs/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.texidoc b/Documentation/fr/texidocs/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.texidoc index d668704730..1e46a54f79 100644 --- a/Documentation/fr/texidocs/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.texidoc +++ b/Documentation/fr/texidocs/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.texidoc @@ -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. diff --git a/Documentation/fr/translations.itexi b/Documentation/fr/translations.itexi index ee35f6731f..c031af2207 100644 --- a/Documentation/fr/translations.itexi +++ b/Documentation/fr/translations.itexi @@ -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 diff --git a/Documentation/fr/usage/running.itely b/Documentation/fr/usage/running.itely index c48d6af25c..6d1d3365f3 100644 --- a/Documentation/fr/usage/running.itely +++ b/Documentation/fr/usage/running.itely @@ -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 diff --git a/Documentation/fr/usage/suggestions.itely b/Documentation/fr/usage/suggestions.itely index a839730193..885929d4c7 100644 --- a/Documentation/fr/usage/suggestions.itely +++ b/Documentation/fr/usage/suggestions.itely @@ -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 diff --git a/Documentation/fr/usage/updating.itely b/Documentation/fr/usage/updating.itely index 068f582b63..193b56a33c 100644 --- a/Documentation/fr/usage/updating.itely +++ b/Documentation/fr/usage/updating.itely @@ -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" diff --git a/Documentation/fr/web/community.itexi b/Documentation/fr/web/community.itexi index 8b6d4eb7e0..7a44948fc3 100644 --- a/Documentation/fr/web/community.itexi +++ b/Documentation/fr/web/community.itexi @@ -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 diff --git a/Documentation/fr/web/download.itexi b/Documentation/fr/web/download.itexi index c8aee45a77..f620337811 100644 --- a/Documentation/fr/web/download.itexi +++ b/Documentation/fr/web/download.itexi @@ -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 diff --git a/Documentation/fr/web/introduction.itexi b/Documentation/fr/web/introduction.itexi index 8ec06c58a6..8ebffbf836 100644 --- a/Documentation/fr/web/introduction.itexi +++ b/Documentation/fr/web/introduction.itexi @@ -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}. diff --git a/Documentation/hu/translations.itexi b/Documentation/hu/translations.itexi index 1b3f2dcfae..6c39bc6665 100644 --- a/Documentation/hu/translations.itexi +++ b/Documentation/hu/translations.itexi @@ -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 diff --git a/Documentation/hu/web/community.itexi b/Documentation/hu/web/community.itexi index 95c643bb4d..864020d948 100644 --- a/Documentation/hu/web/community.itexi +++ b/Documentation/hu/web/community.itexi @@ -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 - - diff --git a/Documentation/hu/web/introduction.itexi b/Documentation/hu/web/introduction.itexi index 1352bc8c53..b75a4c9f11 100644 --- a/Documentation/hu/web/introduction.itexi +++ b/Documentation/hu/web/introduction.itexi @@ -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. diff --git a/Documentation/included/compile.itexi b/Documentation/included/compile.itexi index 7253087c70..896fa0cb3c 100644 --- a/Documentation/included/compile.itexi +++ b/Documentation/included/compile.itexi @@ -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 diff --git a/Documentation/it/learning/templates.itely b/Documentation/it/learning/templates.itely index 0e7a24c21d..b8e700d79f 100644 --- a/Documentation/it/learning/templates.itely +++ b/Documentation/it/learning/templates.itely @@ -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" diff --git a/Documentation/it/notation/changing-defaults.itely b/Documentation/it/notation/changing-defaults.itely index 1b4ed8dbf5..7f281e71c4 100644 --- a/Documentation/it/notation/changing-defaults.itely +++ b/Documentation/it/notation/changing-defaults.itely @@ -17,33 +17,34 @@ @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 @@ -3885,117 +3673,118 @@ a' @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 diff --git a/Documentation/it/notation/repeats.itely b/Documentation/it/notation/repeats.itely index 5ae16435c6..fba80f1563 100644 --- a/Documentation/it/notation/repeats.itely +++ b/Documentation/it/notation/repeats.itely @@ -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 } diff --git a/Documentation/it/notation/rhythms.itely b/Documentation/it/notation/rhythms.itely index 216dd8e74d..f39751159a 100644 --- a/Documentation/it/notation/rhythms.itely +++ b/Documentation/it/notation/rhythms.itely @@ -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 } diff --git a/Documentation/it/notation/spacing.itely b/Documentation/it/notation/spacing.itely index c7de10a38e..dfcd72bcde 100644 --- a/Documentation/it/notation/spacing.itely +++ b/Documentation/it/notation/spacing.itely @@ -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}. diff --git a/Documentation/it/notation/vocal.itely b/Documentation/it/notation/vocal.itely index 5d1b369de5..1ca2de981c 100644 --- a/Documentation/it/notation/vocal.itely +++ b/Documentation/it/notation/vocal.itely @@ -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 diff --git a/Documentation/it/translations.itexi b/Documentation/it/translations.itexi index 9bca9b3be3..241d92c865 100644 --- a/Documentation/it/translations.itexi +++ b/Documentation/it/translations.itexi @@ -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 diff --git a/Documentation/it/web/introduction.itexi b/Documentation/it/web/introduction.itexi index bf4b06bcaa..14c326f751 100644 --- a/Documentation/it/web/introduction.itexi +++ b/Documentation/it/web/introduction.itexi @@ -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} diff --git a/Documentation/ja/included/generating-output.itexi b/Documentation/ja/included/generating-output.itexi index c7534bfc10..4e256f7cbc 100644 --- a/Documentation/ja/included/generating-output.itexi +++ b/Documentation/ja/included/generating-output.itexi @@ -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{ファイル > 上書ãä¿å˜}} を使用ã—ãªã„ã§ãã ã•ã„。@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 + + diff --git a/Documentation/ja/learning/common-notation.itely b/Documentation/ja/learning/common-notation.itely index c8d7970770..ea545600af 100644 --- a/Documentation/ja/learning/common-notation.itely +++ b/Documentation/ja/learning/common-notation.itely @@ -215,7 +215,7 @@ LilyPond ã®éŸ³ç¬¦åã¯ãƒ”ッãƒã‚’示ã—ã¦ã„ã¾ã™ã€‚ @node è¦å‘Š 調å·ã¨ãƒ”ッム@unnumberedsubsubsec è¦å‘Š: 調å·ã¨ãƒ”ッム-@traslateof Warning key signatures and pitches +@translationof Warning key signatures and pitches 音楽用語集: @rglos{accidental}, @rglos{key signature}, diff --git a/Documentation/ja/notation/chords.itely b/Documentation/ja/notation/chords.itely index 1af7a8bd7a..d3035fe3cb 100644 --- a/Documentation/ja/notation/chords.itely +++ b/Documentation/ja/notation/chords.itely @@ -327,7 +327,7 @@ C ã®é•·ä¸‰å’ŒéŸ³ã‚’作り出ã™ã¨ã„ã†ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 @cindex chord steps, altering (和音ã®éŸ³ã‚’変化ã•ã›ã‚‹) -和音ã®éŸ³ã¯ã€æ•°å—ã®å¾Œã‚ã« @code{+} ã¾ãŸã¯@code{-] ã‚’ç½®ãã“ã¨ã§@c +和音ã®éŸ³ã¯ã€æ•°å—ã®å¾Œã‚ã« @code{+} ã¾ãŸã¯@code{-} ã‚’ç½®ãã“ã¨ã§@c 変化ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚@c å’ŒéŸ³æ§‹é€ ã®ä¸€éƒ¨ã¨ã—ã¦è‡ªå‹•çš„ã«å«ã¾ã‚Œã‚‹éŸ³ã‚’変化ã•ã›ã‚‹ã«ã¯ã€@c ãã®éŸ³ã‚’è¿½åŠ ã—ã¦å¤‰åŒ–ã•ã›ã¾ã™ã€‚ diff --git a/Documentation/ja/notation/expressive.itely b/Documentation/ja/notation/expressive.itely index ee64e08129..f28c43a396 100644 --- a/Documentation/ja/notation/expressive.itely +++ b/Documentation/ja/notation/expressive.itely @@ -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" diff --git a/Documentation/ja/notation/rhythms.itely b/Documentation/ja/notation/rhythms.itely index 311a31aad6..79127b122d 100644 --- a/Documentation/ja/notation/rhythms.itely +++ b/Documentation/ja/notation/rhythms.itely @@ -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 } diff --git a/Documentation/ja/notation/spacing.itely b/Documentation/ja/notation/spacing.itely index e0d122f418..a7bcbafe56 100644 --- a/Documentation/ja/notation/spacing.itely +++ b/Documentation/ja/notation/spacing.itely @@ -2942,7 +2942,7 @@ Essay on automated music engraving: @node æ–°ã—ã„ã‚¹ãƒšãƒ¼ã‚¹é ˜åŸŸ @subsection æ–°ã—ã„ã‚¹ãƒšãƒ¼ã‚¹é ˜åŸŸ -@translationof New spacing area +@translationof New spacing section @code{newSpacingSection} を用ã„ã‚‹ã“ã¨ã§ã€@c ç•°ãªã‚‹ã‚¹ãƒšãƒ¼ã‚¹ パラメータをæŒã¤æ–°ã—ã„セクションを開始ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚@c diff --git a/Documentation/ja/translations.itexi b/Documentation/ja/translations.itexi index aeff3a9753..ba7b60205c 100644 --- a/Documentation/ja/translations.itexi +++ b/Documentation/ja/translations.itexi @@ -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 diff --git a/Documentation/ja/usage/external.itely b/Documentation/ja/usage/external.itely index 17ea5d56fb..ae6ef2e14e 100644 --- a/Documentation/ja/usage/external.itely +++ b/Documentation/ja/usage/external.itely @@ -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) diff --git a/Documentation/ja/web.texi b/Documentation/ja/web.texi index 9d8aa30261..38db614f76 100644 --- a/Documentation/ja/web.texi +++ b/Documentation/ja/web.texi @@ -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' diff --git a/Documentation/ja/web/community.itexi b/Documentation/ja/web/community.itexi index ade5de27ed..1bb8693845 100644 --- a/Documentation/ja/web/community.itexi +++ b/Documentation/ja/web/community.itexi @@ -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 @@ -45,17 +46,20 @@ @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, -スペイン語ã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚° リスト} +@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr, +フランス語ã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚° リスト} @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 開発者ãŠã‚ˆã³ç¿»è¨³è€…ã®è°è«– @subsubheading 開発者メーリング リスト: @code{lilypond-devel@@gnu.org} -多ãã®é–‹ç™ºè€…ãŒã“ã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚° リストã«ç™»éŒ²ã—ã¦ã„ã¾ã™ã€‚@c -パッãƒã¯ã“ã“ã«é€ã£ã¦ãã ã•ã„。 +開発者ã®è°è«–ã¯ã“ã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã§è¡Œã‚ã‚Œã¦ã„ã¾ã™ã€‚@c +パッãƒã¯ã“ã“ã«é€ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ @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{ã“ã®ãƒã‚° トラッカーã«ç›´æŽ¥ãƒã‚°å ±å‘Šã‚’ @strong{é€ã‚‰ãªã„ã§ä¸‹ã•ã„}。@c トラッカーã«ç™»éŒ²ã•ã‚ŒãŸå•é¡Œã«ã¤ã„ã¦ã¯ã€è‡ªç”±ã«è¿½åŠ æƒ…å ±ã‚’æ›¸ã込んã§ãã ã•ã„。} @divEnd @@ -500,7 +501,7 @@ gmane lilypond.bugs web インタフェイス} ã§ãƒã‚°å ±å‘Šã‚’é€ã‚‹ã“ã¨ãŒ ãƒã‚°ã«ãƒžãƒ¼ã‚¯ã‚’付ã‘ã¦ã€@c ãã®ãƒã‚°ã«å¯¾ã—ã¦ä½•ã‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ãŒã‚ã£ãŸã¨ãã«è‡ªå‹•çš„ã« email ã‚’å—ã‘å–ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚@c -ã“ã‚Œã«ã¯ Google アカウントãŒå¿…è¦ã§ã™ã€‚ +ã“ã‚Œã«ã¯ Google アカウントã§ã®ãƒã‚°ã‚¤ãƒ³ãŒå¿…è¦ã§ã™ã€‚ @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}, @@ -1201,6 +1319,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 å¤‰æ›´å±¥æ´ ãƒãƒ¼ã‚¸ãƒ§ãƒ³æ¯Žã®é–‹ç™ºè€…ã«ã‚ˆã‚‹å¤‰æ›´å±¥æ´: diff --git a/Documentation/ja/web/download.itexi b/Documentation/ja/web/download.itexi index 511d4510e0..f9a8257c34 100644 --- a/Documentation/ja/web/download.itexi +++ b/Documentation/ja/web/download.itexi @@ -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' diff --git a/Documentation/ja/web/introduction.itexi b/Documentation/ja/web/introduction.itexi index eeb390e2ee..7fa0d615ae 100644 --- a/Documentation/ja/web/introduction.itexi +++ b/Documentation/ja/web/introduction.itexi @@ -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}. diff --git a/Documentation/ja/web/manuals.itexi b/Documentation/ja/web/manuals.itexi index 386d24b143..5db210ceb4 100644 --- a/Documentation/ja/web/manuals.itexi +++ b/Documentation/ja/web/manuals.itexi @@ -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 マニュアル @@ -36,21 +36,25 @@ @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 diff --git a/Documentation/learning/tweaks.itely b/Documentation/learning/tweaks.itely index 8aeb618952..95229692d6 100644 --- a/Documentation/learning/tweaks.itely +++ b/Documentation/learning/tweaks.itely @@ -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 diff --git a/Documentation/ly-examples/Stockhausen_Klavierstueck2.ly b/Documentation/ly-examples/Stockhausen_Klavierstueck2.ly index 048833cef1..95daf3cc86 100644 --- a/Documentation/ly-examples/Stockhausen_Klavierstueck2.ly +++ b/Documentation/ly-examples/Stockhausen_Klavierstueck2.ly @@ -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 diff --git a/Documentation/ly-examples/granados.ly b/Documentation/ly-examples/granados.ly index 371c63a022..9f4cf10301 100644 --- a/Documentation/ly-examples/granados.ly +++ b/Documentation/ly-examples/granados.ly @@ -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 diff --git a/Documentation/nl/translations.itexi b/Documentation/nl/translations.itexi index 7e0a1b7e58..c55af988ed 100644 --- a/Documentation/nl/translations.itexi +++ b/Documentation/nl/translations.itexi @@ -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 diff --git a/Documentation/nl/web/introduction.itexi b/Documentation/nl/web/introduction.itexi index 85e56c6d23..d45ea1361b 100644 --- a/Documentation/nl/web/introduction.itexi +++ b/Documentation/nl/web/introduction.itexi @@ -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} diff --git a/Documentation/notation/changing-defaults.itely b/Documentation/notation/changing-defaults.itely index bb5a2c2b60..b79b69100d 100644 --- a/Documentation/notation/changing-defaults.itely +++ b/Documentation/notation/changing-defaults.itely @@ -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)) diff --git a/Documentation/notation/fretted-strings.itely b/Documentation/notation/fretted-strings.itely index eb111e3ce8..c7c18bacb6 100644 --- a/Documentation/notation/fretted-strings.itely +++ b/Documentation/notation/fretted-strings.itely @@ -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. diff --git a/Documentation/notation/input.itely b/Documentation/notation/input.itely index ccfad7c9a7..67506114b8 100644 --- a/Documentation/notation/input.itely +++ b/Documentation/notation/input.itely @@ -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 diff --git a/Documentation/notation/notation-appendices.itely b/Documentation/notation/notation-appendices.itely index 241daf752f..3d8bf79f43 100644 --- a/Documentation/notation/notation-appendices.itely +++ b/Documentation/notation/notation-appendices.itely @@ -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] << diff --git a/Documentation/notation/pitches.itely b/Documentation/notation/pitches.itely index 647d0a1a36..9529c6704b 100644 --- a/Documentation/notation/pitches.itely +++ b/Documentation/notation/pitches.itely @@ -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] diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index 9f0adb7741..27241d8fde 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -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 } diff --git a/Documentation/notation/spacing.itely b/Documentation/notation/spacing.itely index d3cfa42ff1..bd6d4d4b78 100644 --- a/Documentation/notation/spacing.itely +++ b/Documentation/notation/spacing.itely @@ -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}. diff --git a/Documentation/snippets/arranging-separate-lyrics-on-a-single-line.ly b/Documentation/snippets/arranging-separate-lyrics-on-a-single-line.ly index 9458e21e8b..f3fa10eb30 100644 --- a/Documentation/snippets/arranging-separate-lyrics-on-a-single-line.ly +++ b/Documentation/snippets/arranging-separate-lyrics-on-a-single-line.ly @@ -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 } } diff --git a/Documentation/snippets/automatic-beam-subdivisions.ly b/Documentation/snippets/automatic-beam-subdivisions.ly index ae63f423c2..926a1729e5 100644 --- a/Documentation/snippets/automatic-beam-subdivisions.ly +++ b/Documentation/snippets/automatic-beam-subdivisions.ly @@ -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] } } diff --git a/Documentation/snippets/beam-endings-in-score-context.ly b/Documentation/snippets/beam-endings-in-score-context.ly index be7e458d63..c517b35ecf 100644 --- a/Documentation/snippets/beam-endings-in-score-context.ly +++ b/Documentation/snippets/beam-endings-in-score-context.ly @@ -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 } >> diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 1791b38b79..40810e6a19 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -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 index 6b48240774..0000000000 --- a/Documentation/snippets/centering-markup-on-note-heads-automatically.ly +++ /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 - } ->> diff --git a/Documentation/snippets/changing-stanza-fonts.ly b/Documentation/snippets/changing-stanza-fonts.ly index cc468d72ce..dcbd1f99d3 100644 --- a/Documentation/snippets/changing-stanza-fonts.ly +++ b/Documentation/snippets/changing-stanza-fonts.ly @@ -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 diff --git a/Documentation/snippets/changing-the-default-text-font-family.ly b/Documentation/snippets/changing-the-default-text-font-family.ly index 99e80cd7e2..0b0097158b 100644 --- a/Documentation/snippets/changing-the-default-text-font-family.ly +++ b/Documentation/snippets/changing-the-default-text-font-family.ly @@ -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 diff --git a/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly b/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly index 060b3faf2a..eea44b0fbc 100644 --- a/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly +++ b/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly @@ -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 | diff --git a/Documentation/snippets/contexts-and-engravers.snippet-list b/Documentation/snippets/contexts-and-engravers.snippet-list index 66b3139c7a..3b3c016eb3 100644 --- a/Documentation/snippets/contexts-and-engravers.snippet-list +++ b/Documentation/snippets/contexts-and-engravers.snippet-list @@ -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 diff --git a/Documentation/snippets/displaying-complex-chords.ly b/Documentation/snippets/displaying-complex-chords.ly index a433eb96d0..b90be17083 100644 --- a/Documentation/snippets/displaying-complex-chords.ly +++ b/Documentation/snippets/displaying-complex-chords.ly @@ -30,6 +30,7 @@ fixB = { \once \override Accidental.extra-offset = #'(4 . -.1) } + \relative c' { << { \fixA <b d!>8 } \\ { \voiceThree \fixB dis } >> s } diff --git a/Documentation/snippets/displaying-grob-ancestry.ly b/Documentation/snippets/displaying-grob-ancestry.ly index 7a75bb1a33..dc55c346f2 100644 --- a/Documentation/snippets/displaying-grob-ancestry.ly +++ b/Documentation/snippets/displaying-grob-ancestry.ly @@ -11,19 +11,23 @@ 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 grob’s 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 grob’s 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 diff --git a/Documentation/snippets/how-to-change-fret-diagram-position.ly b/Documentation/snippets/how-to-change-fret-diagram-position.ly index 725be2d462..e1b3dd9b74 100644 --- a/Documentation/snippets/how-to-change-fret-diagram-position.ly +++ b/Documentation/snippets/how-to-change-fret-diagram-position.ly @@ -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" diff --git a/Documentation/snippets/modifying-the-ottava-spanner-slope.ly b/Documentation/snippets/modifying-the-ottava-spanner-slope.ly index dea97c455e..3010e3107c 100644 --- a/Documentation/snippets/modifying-the-ottava-spanner-slope.ly +++ b/Documentation/snippets/modifying-the-ottava-spanner-slope.ly @@ -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 index 65f54fed92..0000000000 --- a/Documentation/snippets/new/changing-stanza-fonts.ly +++ /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 index 7db90d3d19..0000000000 --- a/Documentation/snippets/new/changing-the-default-text-font-family.ly +++ /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 index 39cf3cf470..0000000000 --- a/Documentation/snippets/new/how-to-change-fret-diagram-position.ly +++ /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 index bc9e4a48b5..0000000000 --- a/Documentation/snippets/new/modifying-the-ottava-spanner-slope.ly +++ /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 -} diff --git a/Documentation/snippets/new/staff-headword.ly b/Documentation/snippets/new/staff-headword.ly index a23b5cb063..4c7aff1f02 100644 --- a/Documentation/snippets/new/staff-headword.ly +++ b/Documentation/snippets/new/staff-headword.ly @@ -1,4 +1,4 @@ -\version "2.17.6" +\version "2.19.0" \include "catalan.ly" \header { diff --git a/Documentation/snippets/new/subdividing-beams.ly b/Documentation/snippets/new/subdividing-beams.ly index 0030c5a1cb..bd19413306 100644 --- a/Documentation/snippets/new/subdividing-beams.ly +++ b/Documentation/snippets/new/subdividing-beams.ly @@ -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 index 0000000000..0494666880 --- /dev/null +++ b/Documentation/snippets/new/user-defined-time-signatures.ly @@ -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'' + } +>> diff --git a/Documentation/snippets/pitches-headword.ly b/Documentation/snippets/pitches-headword.ly index b2f27eddc9..16859e9431 100644 --- a/Documentation/snippets/pitches-headword.ly +++ b/Documentation/snippets/pitches-headword.ly @@ -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 | diff --git a/Documentation/snippets/reverting-default-beam-endings.ly b/Documentation/snippets/reverting-default-beam-endings.ly index bf28390f9f..b5f90ce205 100644 --- a/Documentation/snippets/reverting-default-beam-endings.ly +++ b/Documentation/snippets/reverting-default-beam-endings.ly @@ -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 } diff --git a/Documentation/snippets/rhythms.snippet-list b/Documentation/snippets/rhythms.snippet-list index f041143575..382302b03f 100644 --- a/Documentation/snippets/rhythms.snippet-list +++ b/Documentation/snippets/rhythms.snippet-list @@ -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 diff --git a/Documentation/snippets/score-for-diatonic-accordion.ly b/Documentation/snippets/score-for-diatonic-accordion.ly index fddf7c230b..9419a6893e 100644 --- a/Documentation/snippets/score-for-diatonic-accordion.ly +++ b/Documentation/snippets/score-for-diatonic-accordion.ly @@ -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 diff --git a/Documentation/snippets/staff-headword.ly b/Documentation/snippets/staff-headword.ly index 952b5d833f..056cfca008 100644 --- a/Documentation/snippets/staff-headword.ly +++ b/Documentation/snippets/staff-headword.ly @@ -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 { diff --git a/Documentation/snippets/subdividing-beams.ly b/Documentation/snippets/subdividing-beams.ly index e73800041a..05f6b9bc9b 100644 --- a/Documentation/snippets/subdividing-beams.ly +++ b/Documentation/snippets/subdividing-beams.ly @@ -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 } diff --git a/Documentation/snippets/text.snippet-list b/Documentation/snippets/text.snippet-list index 380f092674..e87e87ed25 100644 --- a/Documentation/snippets/text.snippet-list +++ b/Documentation/snippets/text.snippet-list @@ -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 diff --git a/Documentation/snippets/tweaks-and-overrides.snippet-list b/Documentation/snippets/tweaks-and-overrides.snippet-list index 71a02386c7..ed848f2c0a 100644 --- a/Documentation/snippets/tweaks-and-overrides.snippet-list +++ b/Documentation/snippets/tweaks-and-overrides.snippet-list @@ -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 index 0000000000..3bf7b76123 --- /dev/null +++ b/Documentation/snippets/user-defined-time-signatures.ly @@ -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'' + } +>> diff --git a/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly b/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly index 199db158e1..086b1b6d98 100644 --- a/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly +++ b/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly @@ -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 } diff --git a/Documentation/translations.itexi b/Documentation/translations.itexi index f3da7f3d93..689cd80b31 100644 --- a/Documentation/translations.itexi +++ b/Documentation/translations.itexi @@ -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 diff --git a/Documentation/usage/running.itely b/Documentation/usage/running.itely index 3f13f7c17d..995119e57b 100644 --- a/Documentation/usage/running.itely +++ b/Documentation/usage/running.itely @@ -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 diff --git a/Documentation/usage/updating.itely b/Documentation/usage/updating.itely index 60b71c29de..bad4c8c9d8 100644 --- a/Documentation/usage/updating.itely +++ b/Documentation/usage/updating.itely @@ -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 diff --git a/Documentation/web/community.itexi b/Documentation/web/community.itexi index e56637349d..5013b4d954 100644 --- a/Documentation/web/community.itexi +++ b/Documentation/web/community.itexi @@ -904,14 +904,18 @@ 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}. @@ -919,16 +923,152 @@ A full list of all the current open issues can be found @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 diff --git a/Documentation/web/download.itexi b/Documentation/web/download.itexi index 589b8fdaf2..8adbb98180 100644 --- a/Documentation/web/download.itexi +++ b/Documentation/web/download.itexi @@ -189,7 +189,7 @@ See @ref{Easier editing}. @item @sourceimage{logo-freebsd,,,} @downloadStableFreeBSDBig -64bit Systems +64bit Systems. @end itemize diff --git a/Documentation/web/introduction.itexi b/Documentation/web/introduction.itexi index b75104d040..77eda53f3a 100644 --- a/Documentation/web/introduction.itexi +++ b/Documentation/web/introduction.itexi @@ -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}. diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 8596786a1a..ccd09c884f 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -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 diff --git a/Documentation/web/news.itexi b/Documentation/web/news.itexi index f6ef627fb5..dabfc79144 100644 --- a/Documentation/web/news.itexi +++ b/Documentation/web/news.itexi @@ -27,6 +27,54 @@ NOTE: @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} We are happy to announce the release of LilyPond @@ -412,6 +460,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} We are happy to announce the release of LilyPond 2.19.3. This @@ -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 diff --git a/Documentation/web/server/lilypond.org.htaccess b/Documentation/web/server/lilypond.org.htaccess index c6da26a1bb..9060d0709a 100644 --- a/Documentation/web/server/lilypond.org.htaccess +++ b/Documentation/web/server/lilypond.org.htaccess @@ -16,6 +16,10 @@ 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 diff --git a/Documentation/zh/translations.itexi b/Documentation/zh/translations.itexi index 64fab42792..254d792d1b 100644 --- a/Documentation/zh/translations.itexi +++ b/Documentation/zh/translations.itexi @@ -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 diff --git a/Documentation/zh/web/introduction.itexi b/Documentation/zh/web/introduction.itexi index 91e1b0efaa..64521c8f50 100644 --- a/Documentation/zh/web/introduction.itexi +++ b/Documentation/zh/web/introduction.itexi @@ -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} @@ -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 diff --git a/configure.ac b/configure.ac index ca151e70f3..0a753325d1 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/input/regression/autobeam-3-4-rules.ly b/input/regression/autobeam-3-4-rules.ly index 79aad6b6bb..04fabcb021 100644 --- a/input/regression/autobeam-3-4-rules.ly +++ b/input/regression/autobeam-3-4-rules.ly @@ -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. } diff --git a/input/regression/beam-beat-grouping.ly b/input/regression/beam-beat-grouping.ly index 8af2e93ec7..8137ffd06a 100644 --- a/input/regression/beam-beat-grouping.ly +++ b/input/regression/beam-beat-grouping.ly @@ -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] } diff --git a/input/regression/chord-name-major7.ly b/input/regression/chord-name-major7.ly index 285c41ce29..7a2109cd22 100644 --- a/input/regression/chord-name-major7.ly +++ b/input/regression/chord-name-major7.ly @@ -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+ } diff --git a/input/regression/display-lily-tests.ly b/input/regression/display-lily-tests.ly index 649309ac6e..1a51c2b122 100644 --- a/input/regression/display-lily-tests.ly +++ b/input/regression/display-lily-tests.ly @@ -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 index 0000000000..e70713e6b0 --- /dev/null +++ b/input/regression/identifier-alists.ly @@ -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 >> + >> +} diff --git a/input/regression/measure-grouping.ly b/input/regression/measure-grouping.ly index 270b5bc73d..5e27084142 100644 --- a/input/regression/measure-grouping.ly +++ b/input/regression/measure-grouping.ly @@ -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.-> } diff --git a/input/regression/multiple-time-sig-settings.ly b/input/regression/multiple-time-sig-settings.ly index 883124d4a6..91c53a3928 100644 --- a/input/regression/multiple-time-sig-settings.ly +++ b/input/regression/multiple-time-sig-settings.ly @@ -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 | diff --git a/input/regression/note-names.ly b/input/regression/note-names.ly index 3a50f48384..972ebb1d02 100644 --- a/input/regression/note-names.ly +++ b/input/regression/note-names.ly @@ -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 index 0000000000..badad176f8 --- /dev/null +++ b/input/regression/notehead-height.ly @@ -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 index 0000000000..a094f9af41 --- /dev/null +++ b/input/regression/tablature-additional-bass-strings.ly @@ -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") + } + } +} diff --git a/input/regression/time-signature-settings-by-staff.ly b/input/regression/time-signature-settings-by-staff.ly index ad6dec591f..7daa85333c 100644 --- a/input/regression/time-signature-settings-by-staff.ly +++ b/input/regression/time-signature-settings-by-staff.ly @@ -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} diff --git a/input/regression/tuplet-subdivision.ly b/input/regression/tuplet-subdivision.ly index 60df2449e2..158a6149a2 100644 --- a/input/regression/tuplet-subdivision.ly +++ b/input/regression/tuplet-subdivision.ly @@ -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 } } diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc index ab4f2a4ce4..a560a25940 100644 --- a/lily/all-font-metrics.cc +++ b/lily/all-font-metrics.cc @@ -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, diff --git a/lily/completion-note-heads-engraver.cc b/lily/completion-note-heads-engraver.cc index c88e4cccc1..34a985d32d 100644 --- a/lily/completion-note-heads-engraver.cc +++ b/lily/completion-note-heads-engraver.cc @@ -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); diff --git a/lily/context-property.cc b/lily/context-property.cc index 534fced49a..e0acae1455 100644 --- a/lily/context-property.cc +++ b/lily/context-property.cc @@ -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); } diff --git a/lily/engraver.cc b/lily/engraver.cc index 23d7fd9fc2..7891a1b9eb 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -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; diff --git a/lily/grob-interface-scheme.cc b/lily/grob-interface-scheme.cc index 843420c9df..3d5fa39a07 100644 --- a/lily/grob-interface-scheme.cc +++ b/lily/grob-interface-scheme.cc @@ -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); } diff --git a/lily/grob-property.cc b/lily/grob-property.cc index 5842662757..1129e48157 100644 --- a/lily/grob-property.cc +++ b/lily/grob-property.cc @@ -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); } diff --git a/lily/include/all-font-metrics.hh b/lily/include/all-font-metrics.hh index a2d090a6df..f206a3b95d 100644 --- a/lily/include/all-font-metrics.hh +++ b/lily/include/all-font-metrics.hh @@ -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, diff --git a/lily/include/context.hh b/lily/include/context.hh index c4af7bce05..130a304f93 100644 --- a/lily/include/context.hh +++ b/lily/include/context.hh @@ -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); diff --git a/lily/include/lily-imports.hh b/lily/include/lily-imports.hh index 28f6e93562..97982895f5 100644 --- a/lily/include/lily-imports.hh +++ b/lily/include/lily-imports.hh @@ -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; diff --git a/lily/include/listener.hh b/lily/include/listener.hh index 00a64eebb8..27e7d85b71 100644 --- a/lily/include/listener.hh +++ b/lily/include/listener.hh @@ -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) { diff --git a/lily/include/music.hh b/lily/include/music.hh index b25ead9de5..c904dc3347 100644 --- a/lily/include/music.hh +++ b/lily/include/music.hh @@ -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 */ diff --git a/lily/include/paper-outputter.hh b/lily/include/paper-outputter.hh index cd1a5e2c92..8683b4c6d1 100644 --- a/lily/include/paper-outputter.hh +++ b/lily/include/paper-outputter.hh @@ -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: diff --git a/lily/include/prob.hh b/lily/include/prob.hh index 7a06e47737..cb850555fb 100644 --- a/lily/include/prob.hh +++ b/lily/include/prob.hh @@ -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); }; diff --git a/lily/include/scale.hh b/lily/include/scale.hh index 19cd175c79..7c990e5034 100644 --- a/lily/include/scale.hh +++ b/lily/include/scale.hh @@ -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 &); diff --git a/lily/include/scm-hash.hh b/lily/include/scm-hash.hh index 3453904f71..241f316c4e 100644 --- a/lily/include/scm-hash.hh +++ b/lily/include/scm-hash.hh @@ -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; diff --git a/lily/include/smobs.hh b/lily/include/smobs.hh index 9ccaa61345..889d86a8ca 100644 --- a/lily/include/smobs.hh +++ b/lily/include/smobs.hh @@ -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 diff --git a/lily/include/translator-dispatch-list.hh b/lily/include/translator-dispatch-list.hh index 6c365d088e..6fd03beecf 100644 --- a/lily/include/translator-dispatch-list.hh +++ b/lily/include/translator-dispatch-list.hh @@ -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); diff --git a/lily/ledger-line-spanner.cc b/lily/ledger-line-spanner.cc index b0e8fee3c2..42d32b496a 100644 --- a/lily/ledger-line-spanner.cc +++ b/lily/ledger-line-spanner.cc @@ -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 (); diff --git a/lily/lily-imports.cc b/lily/lily-imports.cc index a62216e084..adc9124fb7 100644 --- a/lily/lily-imports.cc +++ b/lily/lily-imports.cc @@ -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"); diff --git a/lily/lily-lexer.cc b/lily/lily-lexer.cc index b6cbda7f97..221d048cc0 100644 --- a/lily/lily-lexer.cc +++ b/lily/lily-lexer.cc @@ -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); } diff --git a/lily/listener.cc b/lily/listener.cc index 2a8d28d8cb..c1e0b442e2 100644 --- a/lily/listener.cc +++ b/lily/listener.cc @@ -19,4 +19,6 @@ #include "listener.hh" +const char * const Callback_wrapper::type_p_name_ = 0; + const char Listener::type_p_name_[] = "ly:listener?"; diff --git a/lily/lookup.cc b/lily/lookup.cc index bad54405eb..b6d13fc356 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -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; diff --git a/lily/music-sequence.cc b/lily/music-sequence.cc index d280953714..644ba9beb7 100644 --- a/lily/music-sequence.cc +++ b/lily/music-sequence.cc @@ -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 diff --git a/lily/music.cc b/lily/music.cc index 60d33436b9..bbf7fe4f58 100644 --- a/lily/music.cc +++ b/lily/music.cc @@ -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")) @@ -236,15 +240,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) { set_property ("origin", ip.smobbed_copy ()); diff --git a/lily/nested-property.cc b/lily/nested-property.cc index 7c8b13047d..edb7986a51 100644 --- a/lily/nested-property.cc +++ b/lily/nested-property.cc @@ -38,8 +38,23 @@ assq_tail (SCM key, SCM alist, SCM based_on = SCM_EOL) } 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)) diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index a72ea59ccd..471a36a41a 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -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; diff --git a/lily/parser.yy b/lily/parser.yy index f09b437fa3..b8849e8f4a 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -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; @@ -4029,6 +4168,10 @@ try_string_variants (SCM pred, SCM str) 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))); // Let's attempt the symbol list interpretation first. @@ -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 diff --git a/lily/quote-iterator.cc b/lily/quote-iterator.cc index c433625011..885e1bd3b6 100644 --- a/lily/quote-iterator.cc +++ b/lily/quote-iterator.cc @@ -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); diff --git a/lily/scale.cc b/lily/scale.cc index 02c1dc5f8e..d6f566b9ed 100644 --- a/lily/scale.cc +++ b/lily/scale.cc @@ -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 { diff --git a/lily/scm-hash.cc b/lily/scm-hash.cc index dd8f9257b9..3eb40ada7b 100644 --- a/lily/scm-hash.cc +++ b/lily/scm-hash.cc @@ -21,6 +21,8 @@ #include <cassert> +const char * const Scheme_hash_table::type_p_name_ = 0; + SCM Scheme_hash_table::make_smob () { diff --git a/lily/sources.cc b/lily/sources.cc index b42300f47a..5d865fe706 100644 --- a/lily/sources.cc +++ b/lily/sources.cc @@ -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); +} diff --git a/lily/stencil.cc b/lily/stencil.cc index 987a879053..3da1869541 100644 --- a/lily/stencil.cc +++ b/lily/stencil.cc @@ -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); } diff --git a/lily/text-spanner-engraver.cc b/lily/text-spanner-engraver.cc index f34f494301..249fdce04a 100644 --- a/lily/text-spanner-engraver.cc +++ b/lily/text-spanner-engraver.cc @@ -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; diff --git a/lily/translator-dispatch-list.cc b/lily/translator-dispatch-list.cc index 10bf064075..41d5a17182 100644 --- a/lily/translator-dispatch-list.cc +++ b/lily/translator-dispatch-list.cc @@ -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) { diff --git a/lily/unpure-pure-container.cc b/lily/unpure-pure-container.cc index 0e389d4bcd..7a7d6d48d1 100644 --- a/lily/unpure-pure-container.cc +++ b/lily/unpure-pure-container.cc @@ -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 { diff --git a/lily/volta-repeat-iterator.cc b/lily/volta-repeat-iterator.cc index 85a2c127ab..d126605795 100644 --- a/lily/volta-repeat-iterator.cc +++ b/lily/volta-repeat-iterator.cc @@ -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")); diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly index a36bc5e8f0..7381ab5caa 100644 --- a/ly/Welcome-to-LilyPond-MacOS.ly +++ b/ly/Welcome-to-LilyPond-MacOS.ly @@ -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" diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly index 4d27606c52..6225500a8f 100644 --- a/ly/Welcome_to_LilyPond.ly +++ b/ly/Welcome_to_LilyPond.ly @@ -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" diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 62559ca40f..6421d9efa1 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -147,6 +147,7 @@ \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" diff --git a/ly/graphviz-init.ly b/ly/graphviz-init.ly index c8d0dfe2c3..96f45ded93 100644 --- a/ly/graphviz-init.ly +++ b/ly/graphviz-init.ly @@ -2,6 +2,8 @@ #(use-modules (scm graphviz)) +#(use-modules (ice-9 regex)) + #(define last-grob-action '()) #(define sym-blacklist '()) @@ -24,13 +26,6 @@ #(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 @@ -42,11 +37,11 @@ (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) @@ -62,18 +57,22 @@ #(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) diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 77ca2d0b00..a23d154fd8 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -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 diff --git a/mf/feta-params.mf b/mf/feta-params.mf index 7f7f4a5cc2..81325dc46e 100644 --- a/mf/feta-params.mf +++ b/mf/feta-params.mf @@ -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); diff --git a/po/lilypond.pot b/po/lilypond.pot index 91af9420db..45f8d4c26b 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -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" diff --git a/python/convertrules.py b/python/convertrules.py index 3c9caad397..3e43a28133 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -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, diff --git a/python/musicexp.py b/python/musicexp.py index 40b58c81f4..998267550e 100644 --- a/python/musicexp.py +++ b/python/musicexp.py @@ -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) diff --git a/python/musicxml.py b/python/musicxml.py index 48aa29450d..f0b82f1333 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -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 diff --git a/scm/c++.scm b/scm/c++.scm index badac67e5c..a455afdd78 100644 --- a/scm/c++.scm +++ b/scm/c++.scm @@ -60,6 +60,22 @@ (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))) diff --git a/scm/chord-ignatzek-names.scm b/scm/chord-ignatzek-names.scm index f798c0fdf6..483b8cac8f 100644 --- a/scm/chord-ignatzek-names.scm +++ b/scm/chord-ignatzek-names.scm @@ -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))) diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 3c9e159eb5..3ee68e5e6a 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -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 diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index edd70f216d..a6c84b8f6e 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -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 diff --git a/scm/define-note-names.scm b/scm/define-note-names.scm index 9eab9d5d69..5825967428 100644 --- a/scm/define-note-names.scm +++ b/scm/define-note-names.scm @@ -535,6 +535,114 @@ )) + ;; 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> @@ -993,8 +1101,7 @@ (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.") diff --git a/scm/font.scm b/scm/font.scm index f10809d00a..859efcd46e 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -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 diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index f6d1700f42..ca3372ca92 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -463,20 +463,47 @@ (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)) @@ -501,8 +528,7 @@ ;; 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 %% **************************************************************** diff --git a/scm/lily.scm b/scm/lily.scm index eb487d33e9..5ead4e6c9c 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -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") diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index f9f532b0d0..22f8648c31 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -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))) diff --git a/scripts/build/website_post.py b/scripts/build/website_post.py index a6fafdc012..9fba75445f 100644 --- a/scripts/build/website_post.py +++ b/scripts/build/website_post.py @@ -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 index 0000000000..f53ba0d0b8 --- /dev/null +++ b/scripts/build/xetex-with-options.sh @@ -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' "$@" diff --git a/tex/texinfo.tex b/tex/texinfo.tex index f140bba94b..d164d451b8 100644 --- a/tex/texinfo.tex +++ b/tex/texinfo.tex @@ -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 @@ -310,7 +310,7 @@ % 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. % @@ -334,7 +334,7 @@ % 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 @@ -433,7 +433,7 @@ \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) @@ -724,11 +724,11 @@ % \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. |