]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond into dev/jmandereau
authorJohn Mandereau <john.mandereau@gmail.com>
Fri, 29 Feb 2008 21:40:50 +0000 (22:40 +0100)
committerJohn Mandereau <john.mandereau@gmail.com>
Fri, 29 Feb 2008 21:40:50 +0000 (22:40 +0100)
* 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond:
  Misc small administrative changes.
  Remove remaining "user manual" strings.
  Small reminders and formatting tweaks.

Conflicts:
Please use @w{...} when @version{} is not followed by a white space
character.

Documentation/user/fundamental.itely
Documentation/user/macros.itexi
Documentation/user/tutorial.itely
Documentation/user/working.itely

57 files changed:
.gitignore
Documentation/GNUmakefile
Documentation/de/user/ancient.itely
Documentation/de/user/chords.itely
Documentation/de/user/editorial.itely
Documentation/de/user/expressive.itely
Documentation/de/user/guitar.itely
Documentation/de/user/macros.itexi
Documentation/de/user/percussion.itely
Documentation/de/user/piano.itely
Documentation/de/user/pitches.itely
Documentation/de/user/repeats.itely
Documentation/de/user/rhythms.itely
Documentation/de/user/simultaneous.itely
Documentation/es/user/editorial.itely
Documentation/es/user/expressive.itely
Documentation/es/user/lilypond-learning.tely
Documentation/es/user/pitches.itely
Documentation/es/user/rhythms.itely
Documentation/fr/user/fundamental.itely
Documentation/fr/user/lilypond-learning.tely
Documentation/fr/user/lilypond-program.tely
Documentation/fr/user/lilypond.tely
Documentation/fr/user/macros.itexi
Documentation/fr/user/tutorial.itely
Documentation/fr/user/working.itely
Documentation/index.html.in
Documentation/translations.html.in [new file with mode: 0644]
Documentation/translations.template.html [deleted file]
Documentation/translations.template.html.in [new file with mode: 0644]
Documentation/user/GNUmakefile
Documentation/user/README.txt
Documentation/user/fundamental.itely
Documentation/user/lilypond-book.itely
Documentation/user/macros.itexi
Documentation/user/templates.itely
Documentation/user/tutorial.itely
Documentation/user/working.itely
Documentation/user/writing-texinfo.txt
buildscripts/add_html_footer.py
buildscripts/lys-to-tely.py
buildscripts/translations-status.py
buildscripts/www_post.py
input/lsr/GNUmakefile
input/lsr/lilypond-snippets.tely [new file with mode: 0644]
input/lsr/snippets.tely [deleted file]
make/doclang-rules.make
make/doclang-targets.make
mf/GNUmakefile
python/convertrules.py
python/fontextract.py
python/lilylib.py
scripts/convert-ly.py
scripts/lilypond-book.py
stepmake/stepmake/texinfo-targets.make
stepmake/stepmake/texinfo-vars.make
tex/texinfo.tex

index 78ddd2aade5ee09961d04eb11cc570b259b134f3..014cbcf08c8def43529e5d3365ab55d26903733f 100644 (file)
@@ -71,3 +71,4 @@ pats
 tags
 test-output-distance
 Documentation/user/lilypond
+input/lsr/lilypond-snippets
index cde95c500cda153be9172df1a6524b8611936fcc..8f7228053ec2bc593c38b2a0408839f28c8f567f 100644 (file)
@@ -7,7 +7,7 @@ STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"'
 README_TOP_FILES= DEDICATION THANKS 
-EXTRA_DIST_FILES= texinfo.css TRANSLATION translations.template.html
+EXTRA_DIST_FILES= texinfo.css TRANSLATION
 
 include $(depth)/make/stepmake.make
 
index 485440b494fa690e366b7a4f835b0f28eb15fa15..734aecccc4a969dc0abc0e9cc8e937b413519bf4 100644 (file)
@@ -509,7 +509,7 @@ der Schlüssel gesetzt wird.
 
 In diesem Handbuch: siehe @ref{Clef}.
 
-@refbugs
+@knownissues
 
 Der mensurale G-Schlüssel ist als Petrucci-G-schlüssel deklariert.
 
@@ -541,7 +541,7 @@ für das Incipit bei der Transkription mensuraler Musik der Standardstil
 benutzt werden. Für die Notation des Gregorianischen Chorals gibt es keine 
 Fähnchen.
 
-@refbugs
+@knownissues
 
 Die Positionierung der Fähnchen an den Hälsen ist leicht verschoben seit einer 
 Änderung in einer frühen 2.3.x-Version.
@@ -648,7 +648,7 @@ Im folgenden Beispiel sind die unterschiedlichen Stile dargestellt.
 In diesem Handbuch: @ref{Time signature} bietet eine allgemeine Übersicht über 
 den Einsatz von Taktangaben.
 
-@refbugs
+@knownissues
 
 Die Verhältnisse der Notenwerte ändern sich nicht, wenn die Taktart (Mensur) 
 gewechselt wird. Zum Beispiel muss das Verhältnis 1 brevis = 3 semibrevis
@@ -696,7 +696,7 @@ sie mit der Notation des Editio Vaticana-Stils verwendet werden können.
 }
 @end lilypond
 
-@refbugs
+@knownissues
 
 Einige Artikulationszeichen sind vertikal zu dich an den entsprechenden 
 Notenköpfen gesetzt.
@@ -810,7 +810,7 @@ sich in der Datei @file{gregorian@/-init@/.ly} auch eine Definition für
 
 @lilypondfile[quote,ragged-right]{divisiones.ly}
 
-@refcommands
+@predefined
 
 @funindex \virgula
 @code{\virgula},
@@ -866,7 +866,7 @@ Abschnitten erklärt wird. Nur weiße Mensuralligaturen sind unterstützt -- mit
 Einschränkungen.
 
 
-@refbugs
+@knownissues
 
 Ligaturen benötigen von klassischer Notation unterschiedliche Platzaufteilung, 
 was sie aber noch nicht können. Darum ist fast immer zu viel Platz zwischen 
@@ -977,7 +977,7 @@ wie folgt ausgegeben:
 }
 @end lilypond
 
-@refbugs
+@knownissues
 
 Die horizontale Positionierung ist sehr schlecht.
 
@@ -1884,7 +1884,7 @@ funktionieren beide Befehle. Es ist auch möglich, mit
 }
 @end lilypond
 
-@refcommands
+@predefined
 
 Folgende Notenpräfixe sind unterstützt:
 
@@ -1926,7 +1926,7 @@ fallende Melodielinie zu notieren.
 Die musikalische Funktion @code{\augmentum} muss benutzt werden, um 
 augmentum-Punkte hinzuzufügen.
 
-@refbugs
+@knownissues
 
 Wenn ein @code{\augmentum}-Punkt am Ende des letzten Systems innerhalb 
 einer Ligatur gesetzt wird, ist er vertikal etwas falsch positioniert. Als 
@@ -2218,7 +2218,7 @@ Befehl
 benutzt werden.
 
 
-@refbugs
+@knownissues
 
 Wenn Bassziffern über dem Notensystem mit Ergänzungslinien und
 @code{implicitBassFigures}  benutzt werden, kann es vorkommen, dass 
index d36ffe221d08b54a3cb03cc376791b5b83d5c569..1997cb79b5ddba040e02df18fa3dcab0a62441ad 100644 (file)
@@ -210,7 +210,7 @@ um Pausen und Zwischenräume einzufügen. Mit Eigenschaftsbefehlen
 können verschiedene Einstellungen verändert werden.
 
 
-@refbugs
+@knownissues
 
 Jedes Intervall kann nur einmal in einem Akkord vorkommen. 
 Im folgenden Beispiel wird nur der erweiterte Akkord erstellt, 
@@ -395,7 +395,7 @@ wird in der Datei
 @cindex Akkorde, Jazz
 
 
-@refcommands
+@predefined
 
 @funindex \germanChords
 @code{\germanChords},
@@ -414,7 +414,7 @@ Init-Dateien: @file{scm/@/chords@/-ignatzek@/.scm} und
 @file{scm/@/chord@/-entry@/.scm}.
 
 
-@refbugs
+@knownissues
 
 Akkordsymbole werden nur von den Tonhöhenbezeichnungen bestimmt. 
 Akkordumkehrungen sind nicht definiert, noch werden Bassnoten 
index add8420e28b024cee29ed5be29247b5b535efa81..71155158e1fd0954cd8aae6597502bea70781b14 100644 (file)
@@ -162,7 +162,7 @@ ein Notenhals (@internalsref{Stem}) -Objekt erzeugt. Auch
 für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar 
 gemacht.
 
-@refcommands
+@predefined
 
 @funindex \stemUp
 @code{\stemUp} (Hälse nach oben),
index d9b1d13a5e7803d61f6d1d4a3ca0de4fbb0a79b5..c6c72608013705217525afee2f8c22e1591cbbf7 100644 (file)
@@ -117,7 +117,7 @@ a4^\prall^\markup { \sharp }
 Programmreferenz: @internalsref{Script}.
 
 
-@refbugs
+@knownissues
 
 Diese Zeichen erscheinen zwar im Druck, haben aber keine Auswirkung 
 auf die produzierte MIDI-Datei.
@@ -283,7 +283,7 @@ zu unterdrücken, kann der Befehl
 @noindent
 eingesetzt werden.
 
-@refcommands
+@predefined
 
 @funindex \dynamicUp
 @code{\dynamicUp},
@@ -408,7 +408,7 @@ die Richtung (1=nach oben, -1=nach unten).
 @end lilypond
 
 
-@refcommands
+@predefined
 
 
 @funindex \tieUp
@@ -432,7 +432,7 @@ Im Handbuch: @ref{Automatic note splitting}.
 Programmreferenz: @internalsref{Tie}.
 
 
-@refbugs
+@knownissues
 
 Der Wechsel zwischen Systemen bei aktiver Überbindung produziert keinen 
 gekrümmten Bogen.
@@ -485,7 +485,7 @@ markieren. Das kann in LilyPond erreicht werden, indem die Eigenschaft
 @end lilypond
 
 
-@refcommands
+@predefined
 
 @funindex \slurUp
 @code{\slurUp},
@@ -528,7 +528,7 @@ anstelle dessen muss
 Es können keine simultanen Phrasierungsbögen gesetzt werden.
 
 
-@refcommands
+@predefined
 
 @funindex \phrasingSlurUp
 @code{\phrasingSlurUp},
@@ -659,7 +659,7 @@ Beispiele:
 
 
 
-@refbugs
+@knownissues
 
 Text über der Linie (wie etwa @emph{gliss.}) wird nicht unterstützt.
 
@@ -717,7 +717,7 @@ Klaviersystem die Eigenschaft
 @c TODO: cross-voice arpeggio example?
 @c such an example is already in LSR -J.Mandereau
 
-@refcommands
+@predefined
 
 @code{\arpeggio},
 @funindex \arpeggioUp
@@ -737,7 +737,7 @@ Notationshandbuch: @ref{Ties}, um Arpeggios auszuschreiben.
 Programmreferenz: @internalsref{Arpeggio}.
 
 
-@refbugs
+@knownissues
 
 Es ist nicht möglich, Arpeggios zwischen Systemen und solche, die sich 
 nur auf ein System erstrecken, zum gleichen Zeitpunkt in einem 
@@ -776,7 +776,7 @@ Dabei ist das erste Argument die Hauptnote. Die zweite Note wird
 ohne Hals in Klammern gesetzt.
 
 
-@refcommands
+@predefined
 
 @code{\startTrillSpan},
 @funindex \startTrillSpan
index 550570883c67639d82d76d866d44d4a719031959..782dbb15631c01f74875ff5c47cdfe3dae0fcd17 100644 (file)
@@ -118,7 +118,7 @@ initialisiert werden:
 
 Programmreferenz: @internalsref{TabStaff}, @internalsref{TabVoice}.
 
-@refbugs
+@knownissues
 
 Akkorde werden nicht gesondert behandelt, sodass die Saitenauswahlfunktion 
 eventuell die selbe Saite für zwei Töne eines Akkordes auswählen kann.
@@ -185,7 +185,7 @@ In der Datei @file{scm/@/output@/-lib@/.scm} sind die Stimmungen
 definiert.
 Programmreferenz: @internalsref{Tab_note_heads_engraver}.
 
-@refbugs
+@knownissues
 
 Spezialeffekte für Gitarren sind noch nicht implementiert.
 
index 111f35f97de38cc9dcace91f745d0496b95a3898..fb3329078a50e8ca21d77b4ac3e0c9b6485d6864 100644 (file)
@@ -7,6 +7,11 @@
 @end ignore
 
 
+@macro version
+@value{version}
+@end macro
+
+
 @c   ***** Displaying text *****
 
 @c we need this since @q{\} doesn't work with makeinfo 4.8 --
 
 @c to get decent quotes in `foo' and ``foo''
 @c  these need to be split up so that "@qq{foo}." looks nice.  :(
-@iftex
 @macro q{TEXT}
-@quotesinglbase{}\TEXT\`
+@quotesinglbase{}\TEXT\@quoteleft{}
 @end macro
 
 @macro qq{TEXT}
-@quotedblbase{}\TEXT\``
+@quotedblbase{}\TEXT\@quotedblleft{}
 @end macro
-@end iftex
 
+@macro warning{TEXT}
+@quotation
+@quotation
+@cartouche
+@b{Achtung:} \TEXT\
+@end cartouche
+@end quotation
+@end quotation
+@end macro
 
-@ifinfo
-@macro q{TEXT}
-‚\TEXT\‘
+@ifnotinfo
+@macro notation{TEXT}
+@var{\TEXT\}
 @end macro
+@end ifnotinfo
 
-@macro qq{TEXT}
-„\TEXT\“
+@ifinfo
+@macro notation{TEXT}
+\TEXT\
 @end macro
 @end ifinfo
 
-
-@ifhtml
-@macro q{TEXT}
-@html
-&sbquo;\TEXT\&lsquo;
-@end html
+@macro smallspace
+@sp 1
 @end macro
 
-@macro qq{TEXT}
-@html
-&bdquo;\TEXT\&ldquo;
-@end html
-@end macro
-@end ifhtml
 
+@c   **** Displaying images not generated by lilypond-book
 
-@ifdocbook
-@macro q{TEXT}
-@html
-&sbquo;\TEXT\&lsquo;
-@end html
-@end macro
+@c current installation setup of Info docs requires that all images are
+@c expected to be found in lilypond/ subdirectory.  lilypond-book already
+@c generates proper @image commands for images of music; these macros
+@c definitions do the same for other images.
 
-@macro qq{TEXT}
-@html
-&bdquo;\TEXT\&ldquo;
-@end html
+@ifnotinfo
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
-@end ifdocbook
+@end ifnotinfo
 
-@macro warning{TEXT}
-@quotation
-@quotation
-@cartouche
-@b{Achtung:} \TEXT\
-@end cartouche
-@end quotation
-@end quotation
+@ifinfo
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
 @end macro
+@end ifinfo
 
-@c TODO: define different output for info
-@macro notation{TEXT}
-@var{\TEXT\}
-@end macro
 
 
 @c   **** Headings in a doc subsection ****
 
-@c not really a heading, but...
-@macro smallspace
-@sp 1
+@macro predefined
+@noindent
+@subsubheading Predefined commands
+
 @end macro
 
-@c obsolete; being removed.
-@macro refcommands
+@macro snippets
 @noindent
-@subsubheading Predefined commands
+@subsubheading Selected Snippets
 
 @end macro
 
+@c obsolete, remove when translation is fully updated
 @macro commonprop
 @noindent
 @subsubheading Commonly tweaked properties
 
 @end macro
 
-@macro refbugs
+@macro knownissues
 @noindent
-@subsubheading Bugs
+@subsubheading Known issues and warnings
 
 @end macro
 
-
+@c obsolete, remove when translation is fully updated
 @macro context{TEXT}
 @vindex \TEXT\
 @code{\TEXT\}@c should use internalsref
 
 @c   **** Links and references ****
 
+@c obsolete
 @c usage: @lsr{ancient,custodes.ly}
 @macro lsr{DIR,TEXT}
 @ifhtml
 @end ifnothtml
 @end macro
 
+@c don't update until this macro is correctly set up in English docs
 @macro lsrdir{DIR}
 @ifhtml
 @uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/}
 @ifhtml
 @c ***** HTML *****
 
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
 @ifset bigpage
 
 @macro internalsref{TEXT}
 @end macro
 
 @macro rprogram{TEXT}
-Programmbenutzung, @ref{\TEXT\,,,lilypond-program}
-@c @internalsref{\TEXT\}
+Programmbenutzung, @ref{\TEXT\,,,lilypond-program.de}
 @end macro
 
 @macro ruser{TEXT}
-Benutzerhandbuch, @ref{\TEXT\,,,lilypond}
-@c @internalsref{\TEXT\}
+Benutzerhandbuch, @ref{\TEXT\,,,lilypond.de}
 @end macro
 
 @macro rlearning{TEXT}
-Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning}
-@c @internalsref{\TEXT\}
+Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning.de}
 @end macro
 
 @end iftex
index 4dbdeb598b4354bcbe533fe6280dd970239cd7ab..feabfc95a31fe1f3414d3c0e0b93a30b1485eb43 100644 (file)
@@ -288,7 +288,7 @@ Init-Dateien: @file{ly/@/drumpitch@/-init@/.ly}.
 
 Programmreferenz: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
 
-@refbugs
+@knownissues
 
 Weil in den allgemeinen MIDI-Definitionen kein Rimshot enthalten ist, 
 wird sidestick für diesen Zweck benutzt.
index f2bc655a4d74f3ec456575d364d16c234618105f..d9730d14d3031a60a2362356314102d5918ff4d0 100644 (file)
@@ -35,7 +35,7 @@ das Klaviersystem und andere Eigenheiten der Pianonotation besprochen.
 * Cross staff stems::           
 @end menu
 
-@refbugs
+@knownissues
 
 Dynamische Zeichen werden nicht automatisch mittig notiert, aber 
 dafür gibt es Lösungen, vgl. die 
@@ -96,7 +96,7 @@ Im Handbuch: @ref{Manual staff switches}.
 
 Programmreferenz: @internalsref{AutoChangeMusic}.
  
-@refbugs
+@knownissues
 
 Der Systemwechsel wird nicht immer an der optimalen Stelle vorgenommen. 
 Für hohe Qualität muss der Wechsel mit der Hand eingegeben werden.
@@ -250,7 +250,7 @@ Stimmenverlaufs ausgegeben werden. Das wird erreicht, indem
 
 Programmreferenz: @internalsref{VoiceFollower}.
 
-@refcommands
+@predefined
 
 @funindex \showStaffSwitch
 @code{\showStaffSwitch},
index 0eef30ac6ba9433b23733b3c6c14d61afe34c5e3..893603b32e65b9840b25c9adbcb15ebc54f6fbe5 100644 (file)
@@ -207,7 +207,7 @@ Mikrotöne werden auch in die MIDI-Dateien geschrieben.
 
 
 
-@refbugs
+@knownissues
 
 Es gibt keine allgemein anerkannten Standards für die 
 Notation von Dreiviertelton-Erniedrigungszeichen. LilyPonds
@@ -521,7 +521,7 @@ Programmreferenz: @internalsref{TransposedMusic}.
 Beispiel: @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}.
 
 
-@refbugs
+@knownissues
 
 Wenn Sie sowohl  @code{\transpose} als auch @code{\relative} 
 benutzen wollen, muss die @code{\transpose}-Umgebung sich 
index 7a7e1e3d2a9cc887077f101d0e3fbf5900a7e991..fef54d5b1c846a12d6c950a622adb79145b9cf34 100644 (file)
@@ -189,7 +189,7 @@ System ausgegeben. Das kann verändert werden, indem
 @lsr{repeats,volta@/-multi@/-staff@/.ly}.
 
 
-@refbugs
+@knownissues
 
 @cindex Wiederholung, mehrdeutig
 
@@ -364,7 +364,7 @@ c'2:8 c':32 | c': c': |
 @end lilypond
 
 
-@refbugs
+@knownissues
 
 Tremolos, die auf diese Weise notiert werden, werden nicht in die 
 MIDI-Datei aufgenommen.
index 969f84eb05a5e4cf592902d697b40d7afb2f7e43..eb109d8cff026a2560c53e92edf52981566197e5 100644 (file)
@@ -107,7 +107,7 @@ ergeben eine doppelte Punktierung.
 a'4 b' c''4. b'8 a'4. b'4.. c''8.
 @end lilypond
 
-@refcommands
+@predefined
 
 Punkte werden normalerweise nach oben verschoben, damit sie die Notenlinien 
 nicht berühren. Das gilt aber nicht für mehrstimmige Passagen. Mit den 
@@ -161,7 +161,7 @@ Diese Brüche können auch ineinander geschachtelt werden, etwa so:
 }
 @end lilypond
 
-@refcommands
+@predefined
 
 @funindex \tupletUp
 @code{\tupletUp},
@@ -500,7 +500,7 @@ Programmreferenz: @internalsref{TimeSignature} und
 Beispiele: @lsr{contemporary,compound-time-signature.ly}.
 
 
-@refbugs
+@knownissues
 
 Automatische Balken richten sich nicht nach den Taktunterteilungen, die 
 mit @code{set-time-signature} erzeugt werden.
@@ -539,7 +539,7 @@ die darstellt, wie groß der Abstand zum Taktanfang ist. Deshalb ist
 sie eine negative Zahl; @code{\partial 4} wird also intern übersetzt 
 zu: @qq{Eine Viertel bleibt übrig vom ganzen Takt.}
 
-@refbugs
+@knownissues
 
 Dieser Befehl berücksichtigt keine Verzierungen/Vorschläge am Anfang der 
 Noten. Wenn ein Stück mit einem Vorschlag anfängt, muss der Befehl 
@@ -580,7 +580,7 @@ d4 e d c
 @end lilypond
 
 
-@refbugs
+@knownissues
 
 LilyPond fügt Zeilen- und Seitenumbrüche nur an einer Taktlinie 
 ein. Wenn die Kadenz nicht vor einem Umbruch endet, müssen Sie 
@@ -631,7 +631,7 @@ den Formatierer  @internalsref{Forbid_line_break_engraver}  mit
 dem @code{\remove}-Befehl entfernen.
 
 
-@refbugs
+@knownissues
 
 Nicht alle Notenwerte (besonders wenn sie andere rhythmische 
 Aufteilungen beinhalten) können exakt durch normale Noten und 
@@ -761,7 +761,7 @@ wenn ein großer Abstand zwischen Notenköpfen gefunden wird. Die Größe
 des Wertes kann mit dem 
 @code{auto-knee-gap}-Objekt eingestellt werden.
 
-@refbugs
+@knownissues
 
 Automatisch erstellte Balken zwischen Systemen können nicht zusammen 
 mit automatisch versteckten Systemen verwendet werden. Siehe auch
@@ -1154,7 +1154,7 @@ zu werden.
 Programmreferenz: @internalsref{GraceMusic}.
 
 
-@refbugs
+@knownissues
 
 Eine Partitur, die mit einem @code{\grace}-Ausdruck beginnt, benötigt 
 eine explizit gesetzte neue Stimme (@code{\new Voice}), sonst werden 
index f5c19c8dabca78a2470d70f7e0aef8c028cfd1de..067d58534dca6787b0fbe14008265c0334942417 100644 (file)
@@ -340,7 +340,7 @@ Spalte zu rücken, und das Vereinigen funktioniert wie gewünscht.
 @end lilypond
 
 
-@refcommands
+@predefined
 
 @funindex \oneVoice
 @code{\oneVoice},
@@ -393,7 +393,7 @@ zuständig sind, sind
 @internalsref{NoteCollision} und @internalsref{RestCollision}.
 
 
-@refbugs
+@knownissues
 
 Wenn @code{merge-differently-headed} mit einer nach oben gerichteten 
 Achtel oder kleineren Note verwendet wird, und die nach unten gerichtete 
index cc62b270ce63a9d2c010c1ea66539ae02e45ec09..6d167e41119b009cacbb97a05d770b3a84441d6b 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: e5ddf62fed87ae3b1a0b28fa6842e10f39734fb7
+    Translation of GIT committish: 98ae4afd530d6a059a81356119d8138ed25b2650
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -18,7 +18,6 @@
 @end menu
 
 
-
 @node Inside the staff
 @subsection Inside the staff
 
 @end menu
 
 @node Selecting notation font size
-@unnumberedsubsubsec Selecting notation font size
+@subsubsection Selecting notation font size
 
 UNTRANSLATED NODE: IGNORE ME
 
 
 @node Fingering instructions
-@unnumberedsubsubsec Fingering instructions
+@subsubsection Fingering instructions
 
 @cindex digitación
 @cindex cambio de dedo
@@ -132,6 +131,13 @@ Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}.
 @node Coloring objects
 @subsubsection Coloring objects
 
+@cindex coloreados, objetos
+@cindex colores
+@cindex colorear objects
+@cindex coloreadas, notas
+@cindex colorear notas
+@cindex notas, coloreadas
+
 Se pueden asignar colores a los objetos individuales.  Podemos usar los nombres de color
 que se relacionan en la @ref{List of colors}.
 
@@ -210,7 +216,7 @@ para ver más detalles.
 
 
 @node Parentheses
-@unnumberedsubsubsec Parentheses
+@subsubsection Parentheses
 
 @cindex fantasma, notas
 @cindex notas fantasma
@@ -234,100 +240,8 @@ Esto sólo funciona dentro de los acordes, incluso para notas sueltas
 @end example
 
 
-@node Ambitus
-@unnumberedsubsubsec Ambitus
-@cindex ambitus
-
-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.
-
-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.  Para imprimir el ámbito, añada el grabador
-@internalsref{Ambitus_engraver} al contexto @internalsref{Voice},
-por ejemplo
-
-@example
-\layout @{
-  \context @{
-    \Voice
-    \consists Ambitus_engraver
-  @}
-@}
-@end example
-
-Lo que da como resultado la siguiente salida:
-
-@lilypond[quote,ragged-right]
-\layout {
-  \context {
-    \Staff
-    \consists Ambitus_engraver
-  }
-}
-
-\relative \new Staff {
-  as'' c e2 cis,2
-}
-@end lilypond
-
-Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito
-por pentagrama en lugar de una por cada voz, añada el grabador
-@internalsref{Ambitus_engraver} al contexto @internalsref{Staff}
-y no al contexto @internalsref{Voice}.  He aquí un ejemplo:
-
-@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
-  \consists "Ambitus_engraver"
-}
-<<
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c'' {
-    \override Ambitus #'X-offset = #-1.0
-    \voiceOne
-    c4 a d e f2
-  }
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c' {
-    \voiceTwo
-    es4 f g as b2
-  }
->>
-@end lilypond
-
-@noindent
-Este ejemplo utiliza una capacidad avanzada,
-
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
-
-@noindent
-Este código mueve el ámbito a la izquierda.  Se podría haber conseguido el mismo
-efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no
-reservaría espacio para el objeto que se ha movido.
-
-@seealso
-
-Referencia del programa: @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
-
-Ejemplos:
-@lsr{vocal,ambitus@/.ly}.
-
-@knownissues
-
-No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito
-simultáneas en distintas voces.
-
-
 @node Stems
-@unnumberedsubsubsec Stems
+@subsubsection Stems
 
 Cuando se encuentra con una nota, se crea un objeto
 @internalsref{Stem} (plica) automáticamente.  Para las redondas y los
@@ -367,7 +281,7 @@ a4 b c b
 @end menu
 
 @node Balloon help
-@unnumberedsubsubsec Balloon help
+@subsubsection Balloon help
 
 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.
@@ -397,7 +311,7 @@ Referencia del programa: @internalsref{text-balloon-interface}.
 
 
 @node Grid lines
-@unnumberedsubsubsec Grid lines
+@subsubsection Grid lines
 
 Se pueden dibujar líneas verticales, sincronizadas con las notas, entre
 pentagramas.
@@ -439,35 +353,40 @@ pentagramas.
 Ejemplos: @lsrdir{education}
 
 
-@node Blank music sheet
-@unnumberedsubsubsec Blank music sheet
-
-@cindex papel de música vacío
-@cindex Pentagramas, hoja en blanco
+@node Analysis brackets
+@subsubsection Analysis brackets
 
-También se pueden producir hojas de papel de música en blanco utilizando notas invisibles y
-suprimiendo el grabador @code{Bar_number_engraver}.
+@cindex corchetes
+@cindex fraseo, corchetes de
+@cindex musicológico, análisis
+@cindex notas, corchetes de agrupación de
 
+Los corchetes se usan en análisis musical para indicar las estructuras presentes en las piezas
+musicales.  LilyPond contempla una forma básica de corchetes horizontales anidados.
+Para usarlos, añada el grabador @internalsref{Horizontal_bracket_engraver}
+al contexto @internalsref{Staff}.  Un corchete se abre con
+@code{\startGroup} y se cierra con @code{\stopGroup}
 
-@lilypond[quote,verbatim]
-\layout{ indent = #0 }
-emptymusic = {
-  \repeat unfold 2 % Change this for more lines.
-  { s1\break }
-  \bar "|."
-}
-\new Score \with {
-  \override TimeSignature #'transparent = ##t
-% un-comment this line if desired
-%  \override Clef #'transparent = ##t
-  defaultBarType = #""
-  \remove Bar_number_engraver
-} <<
-
-% modify these to get the staves you want
-  \new Staff \emptymusic
-  \new TabStaff \emptymusic
->>
+@lilypond[quote,ragged-right,verbatim]
+\score {
+  \relative c'' {
+    c4\startGroup\startGroup
+    c4\stopGroup
+    c4\startGroup
+    c4\stopGroup\stopGroup
+  }
+  \layout {
+    \context {
+      \Staff \consists "Horizontal_bracket_engraver"
+}}}
 @end lilypond
 
+@seealso
+
+Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}.
+
+Referencia de funcionamiento interno: @internalsref{HorizontalBracket},
+@internalsref{Horizontal_bracket_engraver}, @internalsref{Staff}.
+
+
 
index 99af9deded8459daca35db41786239065ce55592..6181779c02b0021b2629c0198a2525187fc4c300 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b
+    Translation of GIT committish: 7e040d362b174f596b1c458bd708defc69cdcc42
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -9,6 +9,9 @@
 @node Expressive marks
 @section Expressive marks
 
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+{expressive-headword.ly}
+
 @menu
 * Attached to notes::           
 * Curves::                      
 
 
 @menu
-* Articulations::               
+* Articulations and ornamentations::  
 * Dynamics::                    
 @end menu
 
-@node Articulations
-@unnumberedsubsubsec Articulations
+@node Articulations and ornamentations
+@subsubsection Articulations and ornamentations
 
-@cindex Articulaciones
+@cindex articulaciones
 @cindex guiones
 @cindex ornamentos
 
@@ -126,7 +129,7 @@ representación de MIDI de la música.
 
 
 @node Dynamics
-@unnumberedsubsubsec Dynamics
+@subsubsection Dynamics
 
 @cindex Dynamics
 @funindex \pppp
@@ -297,136 +300,16 @@ El posicionamiento vertical de estos símbolos se maneja por medio de
 @subsection Curves
 
 @menu
-* Ties::                        
 * Slurs::                       
 * Phrasing slurs::              
-* Laissez vibrer ties::         
 * Breath marks::                
 * Falls and doits::             
 @end menu
 
-@node Ties
-@unnumberedsubsubsec Ties
-
-@cindex ligadura de unión
-@funindex ~
-
-Una ligadura de unión conecta dos notas adyacentes de la misma altura.  La ligadura
-en efecto extiende la longitud de una nota.  No deben confundirse las ligaduras de unión con
-las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican
-el fraseo musical.  Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~}
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-e' ~ e' <c' e' g'> ~ <c' e' g'>
-@end lilypond
-
-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 la ligadura dentro del acorde,
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
-<c~ e g~ b> <c e g b>
-@end lilypond
-
-Una ligadura es simplemente una forma de extender la duración de una nota, parecida al
-puntillo.  El ejemplo siguiente muestra dos formas de escribir
-exactamente el mismo concepto:
-
-@lilypond[quote,fragment,ragged-right]
-\time 3/4 c'2. c'2 ~ c'4
-@end lilypond
-
-@noindent
-Se usan ligaduras de expresión bien cuando la nota atraviesa la barra
-de compás o bien cuando no se pueden usar puntillos para denotar el
-ritmo.  Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como
-
-@lilypond[fragment,quote,ragged-right]
-\relative {
-  r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
-}
-@end lilypond
-
-Si necesita unir muchas notas a través de las líneas divisorias, puede
-resultar más fácil utilizar la división automática de notas (vea
-@ref{Automatic note splitting}).  Este mecanismo divide las notas
-largas de forma automática y las liga a través de las barras de compás.
-
-@funindex \repeatTie
-
-Cuando la segunda vez de una repetición comienza con una nota ligada,
-es necesario repetir la ligadura.  Esto se puede conseguir mediante @code{\repeatTie},
-
-@lilypond[fragment,quote,ragged-right,relative=2]
-r <c e g>\repeatTie
-@end lilypond
-
-@cindex ligaduras de repetición
-@cindex corchetes de repetición de primera y segunda vez y ligaduras
-
-@commonprop
-
-A veces se usan ligaduras para escribir arpegios.  En este caso, dos notas ligadas no
-necesitan ser consecutivas.  Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote}
-(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil,
-por ejemplo, para ligar un trémolo a un acorde.  Por ejemplo,
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-\set tieWaitForNote = ##t
-\grace { c16[~ e~ g]~ } <c, e g>2
-\repeat tremolo 8 { c32~ c'~ } <c c,>1
-e8~ c~ a~ f~ <e' c a f>2
-@end lilypond
-
-Las ligaduras de pueden grabar manualmente modificando la propiedad
-@code{tie-configuration}.  El primer número indica la distancia desde
-el centro del pentagrama en espacios de pentagrama, y el segundo
-número indica la dirección (1 = hacia arriba, -1 = hacia abajo).
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-<c e g>2~ <c e g> |
-\override TieColumn #'tie-configuration =
-  #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
-<c e g>~ <c e g> |
-@end lilypond
-
-
-@predefined
-
-
-@funindex \tieUp
-@code{\tieUp},
-@funindex \tieDown
-@code{\tieDown},
-@funindex \tieNeutral
-@code{\tieNeutral},
-@funindex \tieDotted
-@code{\tieDotted},
-@funindex \tieDashed
-@code{\tieDashed},
-@funindex \tieSolid
-@code{\tieSolid}.
-
-
-@seealso
-
-En el presente manual: @ref{Automatic note splitting}.
-
-Referencia del programa: @internalsref{Tie}.
-
-
-@knownissues
-
-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.
-
-
 @node Slurs
-@unnumberedsubsubsec Slurs
+@subsubsection Slurs
 
-@cindex Ligaduras de expresión
+@cindex ligaduras de expresión
 
 Una ligadura de expresión indica que las notas se deben tocar unidas o
 @emph{legato}.  Se escriben utilizando paréntesis
@@ -485,7 +368,7 @@ Referencia del programa: @internalsref{Slur}.
 
 
 @node Phrasing slurs
-@unnumberedsubsubsec Phrasing slurs
+@subsubsection Phrasing slurs
 
 @cindex ligaduras de fraseo
 @cindex marcas de fraseo
@@ -521,32 +404,8 @@ No se pueden tener varias ligaduras de fraseo simultáneas.
 
 Referencia del programa: @internalsref{PhrasingSlur}.
 
-
-@node Laissez vibrer ties
-@unnumberedsubsubsec Laissez vibrer ties
-@cindex Laissez vibrer
-@cindex Ligaduras laissez vibrer
-
-Las ligaduras L.v. (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 escribiendo @code{\laissezVibrer},
-
-@lilypond[fragment,ragged-right,verbatim,relative=1]
-<c f g>\laissezVibrer
-@end lilypond
-
-@seealso
-
-Referencia del programa:
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
-
-Archivos de ejemplo:
-@lsr{connecting,laissez-vibrer-ties.ly}
-
-
 @node Breath marks
-@unnumberedsubsubsec Breath marks
+@subsubsection Breath marks
 
 Las marcas de respiración se introducen usando @code{\breathe}
 
@@ -555,11 +414,12 @@ c'4 \breathe d4
 @end lilypond
 
 
-@commonprop
+@snippets
+
+El glifo de la marca de respiración se puede ajustar por medio de la
+sobreescritura de la propiedad @code{text} del objeto de presentación
+@code{BreathingSign} con cualquier texto de marcado.  Por ejemplo,
 
-El glifo de la marca de respiración se puede ajustar por medio de la sobreescritura de la propiedad
-@code{text} del objeto de presentación @code{BreathingSign} con cualquier texto de marcado.
-Por ejemplo,
 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
 c'4
 \override BreathingSign #'text
@@ -576,7 +436,7 @@ Ejemplos: @lsr{expressive,breathing-sign.ly}
 
 
 @node Falls and doits
-@unnumberedsubsubsec Falls and doits
+@subsubsection Falls and doits
 
 Se pueden expresar caídas y subidas de tono (falls y doits) añadidas a
 las notas mediante el comando @code{\bendAfter},
@@ -595,11 +455,10 @@ c4-\bendAfter #-3
 * Glissando::                   
 * Arpeggio::                    
 * Trills::                      
-* Analysis brackets::           
 @end menu
 
 @node Glissando
-@unnumberedsubsubsec Glissando
+@subsubsection Glissando
 
 @cindex Glissando
 @funindex \glissando
@@ -642,7 +501,7 @@ La impresión de texto sobre la línea (como @emph{gliss.}) no está contemplada
 
 
 @node Arpeggio
-@unnumberedsubsubsec Arpeggio
+@subsubsection Arpeggio
 
 @cindex Arpeggio
 @cindex acorde quebrado
@@ -720,7 +579,7 @@ No es posible mezclar arpegios conectados y no conectados en un
 
 
 @node Trills
-@unnumberedsubsubsec Trills
+@subsubsection Trills
 
 Los trinos cortos se imprimen como una articulación normal; consulte @ref{Articulations}.
 
@@ -759,38 +618,7 @@ imprime como una cabeza de nota sin plica entre paréntesis.
 
 @seealso
 
-Referencia del programa: @internalsref{TrillSpanner}.
-
-
-@node Analysis brackets
-@unnumberedsubsubsec Analysis brackets
-@cindex corchetes
-@cindex fraseo, corchetes de
-@cindex musicológico, análisis
-@cindex notas, corchetes de agrupación de
-
-Los corchetes se usan en análisis musical para indicar las estructuras presentes en las piezas
-musicales.  LilyPond contempla una forma básica de corchetes horizontales anidados.
-Para usarlos, añada el grabador @internalsref{Horizontal_bracket_engraver}
-al contexto @internalsref{Staff}.  Un corchete se abre con
-@code{\startGroup} y se cierra con @code{\stopGroup}
-
-@lilypond[quote,ragged-right,verbatim]
-\score {
-  \relative c'' {
-    c4\startGroup\startGroup
-    c4\stopGroup
-    c4\startGroup
-    c4\stopGroup\stopGroup
-  }
-  \layout {
-    \context {
-      \Staff \consists "Horizontal_bracket_engraver"
-}}}
-@end lilypond
-
-@seealso
-
-Referencia del programa: @internalsref{HorizontalBracket}.
+Fragmentos de código: @lsrdir{Expressive,Expressive-marks}
 
+Referencia de funcionamiento interno: @internalsref{TrillSpanner}.
 
index bfb081a744c7696317ca21de0a5ecbebc828eeec..fb2f1d6f950e051894c663064b5029c39db305ed 100644 (file)
@@ -119,7 +119,7 @@ Free Documentation License''.
 
 @c TRANSLATE ME
 @ifnottex
-This file documents GNU LilyPond program usage.
+Este archivo es la documentación sobre la utilización del programa GNU LilyPond.
 
 Copyright @copyright{} 1999--2007 por los autores
 
@@ -158,27 +158,26 @@ Free Documentation License''.
 
 Éste es el manual de aprendizaje de GNU LilyPond, versión @version{}.
 
-@cindex web site
+@cindex página web
 @cindex URL
 
-More information can be found at
-@uref{http://@/www@/.lilypond@/.org/}.  The website contains on-line copies
-of this and other documentation.
+Encontrará más información en
+@uref{http://@/www@/.lilypond@/.org/}.  La página web contiene copias
+en línea de la presente y otras documentaciones.
 
 @menu
 * Preface::                        Prefacio.
 * Introduction::                   Qué, por qué y cómo.
 * Tutorial::                       Introducción en forma de tutorial.
-* Putting it all together::        Más explicaciones sobre conceptos de
-LilyPond.
-* Working on LilyPond projects::   Sobre la utilización en el mundo
-real.
-* Tweaking output::                Introducción a las modificaciones de
-la salida.
+* Fundamental concepts::           Conceptos básicos necesarios para leer el resto de este manual.
+* Tweaking output::                Introducción a las modificaciones de la salida.
+* Working on LilyPond projects::   Sobre la utilización en el mundo real.
 
 Apéndices
 
-* GNU Free Documentation License:: License of this document.
+* Templates::                      Plantillas listas para usar.
+* Scheme tutorial::                Programar dentro de LilyPond.
+* GNU Free Documentation License:: La licencia de este documento.
 * LilyPond index::
 @end menu
 @end ifnottex
@@ -190,9 +189,11 @@ Apéndices
 @include introduction.itely
 @include tutorial.itely
 @include putting.itely
-@include working.itely
 @include tweaks.itely
+@include working.itely
 
+@include templates.itely
+@include scheme-tutorial.itely
 @include fdl.itexi
 
 @node LilyPond index
index 71055adf2a54480332e6bf16a91edbc61851b18b..0ac1e2a566fa8ba8fe5f146996916ed00c7a6afd 100644 (file)
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b
+    Translation of GIT committish: a7074882aac1078e15104577c36ac4b35ece0ae4
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+
 @node Pitches
 @section Pitches
 
-This section discusses how to specify the pitch of notes.
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+{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.
 
 @menu
 * Writing pitches::             
 * Changing multiple pitches::   
 * Displaying pitches::          
+* Note heads::                  
 @end menu
 
 
 @node Writing pitches
 @subsection Writing pitches
 
-Into text.
+En esta sección se describe la manera de introducir la altura de las
+notas.  Esisten 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
-* Normal pitches::              
+* Absolute octave entry::       
+* Relative octave entry::       
 * Accidentals::                 
-* Cautionary accidentals::      
-* Micro tones::                 
 * Note names in other languages::  
 @end menu
 
-@node Normal pitches
-@unnumberedsubsubsec Normal pitches
 
-@cindex Nombres de las notas
+@node Absolute octave entry
+@subsubsection Absolute octave entry
+
+@cindex nombres de las notas
 @cindex alturas
+@cindex absoluta
+@cindex absoluta, especificación, de la octava
 
-El nombre de una nota se especifica usando las letras minúsculas de la @code{a} a la @code{g}.
-Una escala ascendente de Do mayor se tipografía con
+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.
 
-@lilypond[quote,fragment,verbatim,ragged-right]
+@c NOTE: don't use c' here.
+@lilypond[verbatim,quote,ragged-right,fragment]
 \clef bass
-c d e f g a b c'
+c d e f
+g a b c
+d e f g
 @end lilypond
 
-El nombre de la nota @code{c} se tipografía una octava por debajo del Do central.
+@funindex '
+@funindex ,
 
-@lilypond[quote,fragment,verbatim,ragged-right]
+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.
+
+@lilypond[verbatim,quote,ragged-right,fragment]
 \clef treble
-c1
+c' c'' e' g
+d'' d' d c
 \clef bass
-c1
+c, c,, e, g
+d,, d, d c
 @end lilypond
 
-@funindex '
-@funindex ,
+@seealso
+
+Music Glossary: @rglos{Pitch names}.
+
+Snippets: @lsrdir{Pitches,Pitches}.
 
-La especificación opcional de la octava tiene la forma de una serie de
-comillas simples o apóstrofes (@samp{'}) o bien una serie de comas
-(@samp{,}).  Cada @samp{'} eleva la altura una octava;
-cada @samp{,} baja la altura una octava.
+
+@node Relative octave entry
+@subsubsection Relative octave entry
+
+@cindex Relativo
+@cindex Relativas, especificación de octavas
+@funindex \relative
+
+Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas.
+Cuando copie música existente, es fácil poner por accidente una nota en la octava
+equivocada y luego es difícil encontrar dicho error.  La octava relativa
+previene estos errores haciendo que éstos tengan consecuencias mucho mayores:
+un solo error transporta una octava el resto de la pieza
+
+@example
+\relative @var{altura_inicial} @var{expresión_musical}
+@end example
+
+@noindent
+o bien
+
+@example
+\relative @var{expresión_musical}
+@end example
+
+@noindent
+@code{c'} se usa por defecto si no se define una altura inicial.
+
+La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como
+sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico
+entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos.
+Esta distancia se determina independientemente de las alteraciones; un
+@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará
+por encima del @code{ceses}.  En otras palabras, una cuarta doble aumentada se considera
+un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada
+tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos.
+
+Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para
+elevar o bajar la altura en una octava más.  Al entrar en el modo relativo,
+se puede especificar una altura de inicio absoluta que se comportará como
+la nota precedente a la primera nota de la @var{expresión_musical}.  Si no
+se especifica ninguna altura inicial, se utilizará el Do central como
+comienzo.
+
+Aquí podemos ver el modo relativo en acción:
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+  b c d c b c bes a
+}
+@end lilypond
+
+Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-\clef treble
-c' c'' e' g d'' d' d c
-\clef bass
-c, c,, e, g d,, d, d c
+\relative c'' {
+  c g c f, c' a, e''
+}
+@end lilypond
+
+Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para
+determinar la primera nota del siguiente acorde
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' {
+  c <c e g>
+  <c' e g>
+  <c, e' g>
+}
 @end lilypond
 
-Se puede usar un método alternativo para declarar en qué octava grabar
-una nota; este método no requiere tantas especificaciones de octava
-(@code{'} y @code{,}).  Consulte
-@ref{Relative octaves}.
+La altura después del @code{\relative} contiene un nombre de nota.
+
+La conversión relativa no afecta a las secciones @code{\transpose},
+@code{\chordmode} o @code{\relative} en su argumento.  Para usar
+el modo relativo dentro de música transportada, se debe escribir 
+un @code{\relative} adicional dentro de @code{\transpose}.
 
 
 @node Accidentals
-@unnumberedsubsubsec Accidentals
+@subsubsection Accidentals
 
 @cindex nombres de las notas, holandés
 @cindex nombres de las notas, por omisión
@@ -140,9 +226,6 @@ Referencia del programa: @internalsref{LedgerLineSpanner},
 @internalsref{NoteHead}.
 
 
-@node Cautionary accidentals
-@unnumberedsubsubsec Cautionary accidentals
-
 @cindex alteración recordatoria
 @cindex alteración de precaución
 @cindex alteración con paréntesis
@@ -170,10 +253,6 @@ cis cis cis! cis? c c? c! c
 La producción automática de alteraciones accidentales se puede ajustar de muchas formas.
 Para ver más información, consulte @ref{Automatic accidentals}.
 
-
-@node Micro tones
-@unnumberedsubsubsec Micro tones
-
 @cindex cuartos de tono
 @cindex semi-bemoles, semi-sostenidos
 
@@ -196,7 +275,7 @@ no se ajustan a ningún estándar.
 
 
 @node Note names in other languages
-@unnumberedsubsubsec Note names in other languages
+@subsubsection Note names in other languages
 
 Existen conjuntos predefinidos de nombres de notas para algunos idiomas
 aparte del inglés.  Para usarlos, incluya el archivo de inicio
@@ -261,93 +340,18 @@ espanol.ly     do  re  mi  fa  sol la  sib si
 @subsection Changing multiple pitches
 
 @menu
-* Relative octaves::            
-* Octave check::                
+* Octave checks::               
 * Transpose::                   
 @end menu
 
 
-@node Relative octaves
-@unnumberedsubsubsec Relative octaves
-
-@cindex Relativo
-@cindex Relativas, especificación de octavas
-@funindex \relative
-
-Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas.
-Cuando copie música existente, es fácil poner por accidente una nota en la octava
-equivocada y luego es difícil encontrar dicho error.  La octava relativa
-previene estos errores haciendo que éstos tengan consecuencias mucho mayores:
-un solo error transporta una octava el resto de la pieza
-
-@example
-\relative @var{altura_inicial} @var{expresión_musical}
-@end example
-
-@noindent
-o bien
-
-@example
-\relative @var{expresión_musical}
-@end example
+@node Octave checks
+@subsubsection Octave checks
 
-@noindent
-@code{c'} se usa por defecto si no se define una altura inicial.
-
-La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como
-sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico
-entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos.
-Esta distancia se determina independientemente de las alteraciones; un
-@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará
-por encima del @code{ceses}.  En otras palabras, una cuarta doble aumentada se considera
-un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada
-tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos.
-
-Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para
-elevar o bajar la altura en una octava más.  Al entrar en el modo relativo,
-se puede especificar una altura de inicio absoluta que se comportará como
-la nota precedente a la primera nota de la @var{expresión_musical}.  Si no
-se especifica ninguna altura inicial, se utilizará el Do central como
-comienzo.
-
-Aquí podemos ver el modo relativo en acción:
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
-  b c d c b c bes a
-}
-@end lilypond
-
-Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c'' {
-  c g c f, c' a, e''
-}
-@end lilypond
-
-Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para
-determinar la primera nota del siguiente acorde
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c' {
-  c <c e g>
-  <c' e g>
-  <c, e' g>
-}
-@end lilypond
-
-La altura después del @code{\relative} contiene un nombre de nota.
-
-La conversión relativa no afecta a las secciones @code{\transpose},
-@code{\chordmode} o @code{\relative} en su argumento.  Para usar
-el modo relativo dentro de música transportada, se debe escribir 
-un @code{\relative} adicional dentro de @code{\transpose}.
-
-
-@node Octave check
-@unnumberedsubsubsec Octave check
-
-@cindex Comprobación de octava
+@cindex octava, comprobación de
+@cindex octava, corrección de
+@funindex =
+@funindex \octave
 
 Las comprobaciones de octava hacen que los errores de octava sean más
 fáciles de corregir: una nota puede venir seguida de @code{=}@var{comillas}
@@ -406,8 +410,12 @@ así que la comprobación se puede borrar sin que cambie la salida de la pieza.
 @end lilypond
 
 
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
 @node Transpose
-@unnumberedsubsubsec Transpose
+@subsubsection Transpose
 
 @cindex Transposición
 @cindex Transposición de alturas
@@ -497,10 +505,12 @@ debe escribir @code{\transpose} por fuera de @code{\relative}, porque
 * Key signature::               
 * Ottava brackets::             
 * Instrument transpositions::   
+* Automatic accidentals::       
+* Ambitus::                     
 @end menu
 
 @node Clef
-@unnumberedsubsubsec Clef
+@subsubsection Clef
 
 @funindex \clef
 
@@ -542,7 +552,6 @@ clave de Do en 1ª
 @item @code{mezzosoprano} @tab
 clave de Do en 2ª
 @item @code{baritone} @tab
-clave de Do en 5ª
 @item @code{varbaritone} @tab
 clave de Fa en 3ª
 @item @code{subbass} @tab
@@ -604,7 +613,7 @@ Referencia del programa: @internalsref{Clef}.
 
 
 @node Key signature
-@unnumberedsubsubsec Key signature
+@subsubsection Key signature
 
 @cindex Armadura de la tonalidad
 @funindex \key
@@ -678,7 +687,7 @@ Referencia del programa: @internalsref{KeyCancellation},
 @internalsref{KeySignature}.
 
 @node Ottava brackets
-@unnumberedsubsubsec Ottava brackets
+@subsubsection Ottava brackets
 
 Los corchetes de @q{Ottava} introducen un trasporte adicional de una octava para el pentagrama.
 Se crean por medio de la invocación de la función
@@ -725,7 +734,7 @@ en el interior de un corchete de octavación.
 
 
 @node Instrument transpositions
-@unnumberedsubsubsec Instrument transpositions
+@subsubsection Instrument transpositions
 
 @cindex transposición de MIDI
 @cindex transposición instrumental
@@ -778,3 +787,235 @@ c'4^"en Sol"
 ...
 @end example
 
+@node Automatic accidentals
+@subsubsection Automatic accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ambitus
+@subsubsection Ambitus
+
+@cindex ambitus
+@cindex rango de alturas
+@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.
+
+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
+imprimen alteraciones si no forman parte de la armadura de la
+tonalidad.
+
+@lilypond[verbatim,quote,ragged-right]
+\layout {
+  \context {
+    \Voice
+    \consists Ambitus_engraver
+  }
+}
+
+\relative c'' {
+  aes c e2 cis,2
+}
+@end lilypond
+
+Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito
+por pentagrama en lugar de una por cada voz, añada el grabador
+@internalsref{Ambitus_engraver} al contexto @internalsref{Staff}
+y no al contexto @internalsref{Voice}.  He aquí un ejemplo:
+
+@lilypond[verbatim,ragged-right,quote]
+\new Staff \with {
+  \consists "Ambitus_engraver"
+}
+<<
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c'' {
+    \override Ambitus #'X-offset = #-1.0
+    \voiceOne
+    c4 a d e f2
+  }
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c' {
+    \voiceTwo
+    es4 f g as b2
+  }
+>>
+@end lilypond
+
+@noindent
+Este ejemplo utiliza una capacidad avanzada,
+
+@example
+\override Ambitus #'X-offset = #-1.0
+@end example
+
+@noindent
+Este código mueve el ámbito a la izquierda.  Se podría haber conseguido el mismo
+efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no
+reservaría espacio para el objeto que se ha movido.
+
+@seealso
+
+Referencia del programa: @internalsref{Ambitus},
+@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
+@internalsref{AmbitusAccidental}.
+
+Ejemplos:
+@lsr{vocal,ambitus@/.ly}.
+
+@knownissues
+
+No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito
+simultáneas en distintas voces.
+
+@node Note heads
+@subsection Note heads
+
+@menu
+* Special note heads::          
+* Easy notation note heads::    
+* Shape note heads::            
+* Improvisation::               
+@end menu
+
+@node Special note heads
+@subsubsection Special note heads
+
+@cindex note heads, special
+@cindex note heads, cross
+@cindex note heads, diamond
+@cindex note heads, parlato
+@cindex note heads, harmonic
+@cindex note heads, guitar
+@cindex special note heads
+@cindex cross note heads
+@cindex diamond note heads
+@cindex parlato note heads
+@cindex harmonic note heads
+@cindex guitar note heads
+
+Different note heads are used by various instruments for various
+meanings -- crosses are used for @q{parlato} with vocalists,
+stopped notes on guitar; diamonds are used for harmonics on string
+instruments, etc.  There is a shorthand (@code{\harmonic}) for
+diamond shapes; the other note head styles are produced by
+tweaking the property:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+To see all note head styles, see @ref{Note head styles}.
+
+
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
+Notation Reference: @ref{Note head styles}.
+
+Internals Reference: @internalsref{NoteHead},
+@internalsref{LedgerLineSpanner}.
+
+@node Easy notation note heads
+@subsubsection Easy notation note heads
+
+@cindex notas, cabezas de, estudio
+@cindex notas, cabezas de, notación simplificada
+@cindex simplificada, notación
+@cindex Hal Leonard
+
+Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en inglés) dentro de la cabeza.  Se usa
+en la música para principiantes
+
+@lilypond[verbatim,quote,ragged-right]
+#(set-global-staff-size 26)
+\relative c' {
+  \easyHeadsOn
+  c2 e4 f
+  g1
+  \easyHeadsOff
+  c,1
+}
+@end lilypond
+
+La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto
+@code{NoteHead}.  Estos ajustes se pueden deshacer mediante la
+isntrucción @code{\easyHeadsOff}. Para que las letras sean legibles,
+se tienen que imprimir en un tamaño grande de la tipografía.  Para
+imprimir con un tamaño de tipografía mayor, consulte @ref{Setting the
+staff size}.
+
+@predefined
+
+@funindex \easyHeadsOn
+@funindex \easyHeadsOff
+@code{\easyHeadsOn}, @code{\easyHeadsOff}
+
+
+@node Shape note heads
+@subsubsection Shape note heads
+
+@cindex notas, cabezas de, con formas
+@cindex notas, cabezas de, Aiken
+@cindex notas, cabezas de, sacred harp(?)
+@cindex formas, notas con
+@cindex Aiken, cabezas de nota con forma de
+@cindex sacred harp, cabezas de nota de
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+En 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 con formas se pueden producir estableciendo @code{\aikenHeads} o
+@code{\sacredHarpHeads}, según el estilo deseado.
+
+@lilypond[verbatim,relative=1,fragment]
+  \aikenHeads
+  c8 d4 e8 a2 g1
+  \sacredHarpHeads
+  c8 d4. e8 a2 g1
+@end lilypond
+
+Las formas se determinan en función del grado de la escala, donde la tónica
+está determinada por la instrucción @code{\key}
+
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+Las cabezas con formas están programadas a través de la propiedad @code{shapeNoteStyles}.
+Su valor es un vector de símbolos.  El elemento en el lugar k indica qué estilo
+usa el grado k de la escala.  Son posibles las combinaciones
+arbitrarias, p.ej.:
+
+@lilypond[verbatim,relative=1,fragment]
+  \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
+  c8 d4. e8 a2 g1
+@end lilypond
+
+
+@node Improvisation
+@subsubsection Improvisation
+
+UNTRANSLATED NODE: IGNORE ME
+
index ee1ece7becd87357bca65c55ea39977c7b18b9d4..1adff58ca0e08fbee86e1ea5dc6b26469a04d04c 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b
+    Translation of GIT committish: f9251f6baccf426a9184b7947a85bbacc807a043
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -9,7 +9,10 @@
 @node Rhythms
 @section Rhythms
 
-This section discusses rhythms, durations, and bars.
+@lilypondfile[ragged-right,line-width=16\cm,staffsize=14,quote]
+{rhythms-headword.ly}
+
+Esta sección trata de los ritmos, las duraciones y los compases.
 
 @menu
 * Writing rhythms::             
@@ -29,10 +32,11 @@ This section discusses rhythms, durations, and bars.
 * Augmentation dots::           
 * Tuplets::                     
 * Scaling durations::           
+* Ties::                        
 @end menu
 
 @node Durations
-@unnumberedsubsubsec Durations
+@subsubsection Durations
 
 @cindex duración
 @funindex \longa
@@ -91,7 +95,7 @@ anterior.  Por omisión, el valor de la primera nota es el de una negra.
 
 
 @node Augmentation dots
-@unnumberedsubsubsec Augmentation dots
+@subsubsection Augmentation dots
 
 @funindex .
 
@@ -121,7 +125,7 @@ Referencia del programa: @internalsref{Dots} y @internalsref{DotColumn}.
 
 
 @node Tuplets
-@unnumberedsubsubsec Tuplets
+@subsubsection Tuplets
 
 @cindex grupos especiales
 @cindex tresillos
@@ -269,7 +273,7 @@ Referencia del programa: @internalsref{TupletBracket},
 
 
 @node Scaling durations
-@unnumberedsubsubsec Scaling durations
+@subsubsection Scaling durations
 
 Es posible alterar la duración de las figuras en un factor @var{N/M}
 añadiendo @samp{*@var{N/M}} (o @samp{*@var{N}} si @var{M=1}).  Esto no
@@ -292,6 +296,154 @@ b16*4 c4
 En este manual: @ref{Tuplets}.
 
 
+@node Ties
+@subsubsection Ties
+
+@cindex ligadura de unión
+@funindex ~
+
+Una ligadura de unión conecta dos notas adyacentes de la misma altura.  La ligadura
+en efecto extiende la longitud de una nota.  No deben confundirse las ligaduras de unión con
+las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican
+el fraseo musical.  Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~}
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+e' ~ e' <c' e' g'> ~ <c' e' g'>
+@end lilypond
+
+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 la ligadura dentro del acorde,
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+<c~ e g~ b> <c e g b>
+@end lilypond
+
+Una ligadura es simplemente una forma de extender la duración de una nota, parecida al
+puntillo.  El ejemplo siguiente muestra dos formas de escribir
+exactamente el mismo concepto:
+
+@lilypond[quote,fragment,ragged-right]
+\time 3/4 c'2. c'2 ~ c'4
+@end lilypond
+
+@noindent
+Se usan ligaduras de expresión bien cuando la nota atraviesa la barra
+de compás o bien cuando no se pueden usar puntillos para denotar el
+ritmo.  Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como
+
+@lilypond[fragment,quote,ragged-right]
+\relative {
+  r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
+}
+@end lilypond
+
+Si necesita unir muchas notas a través de las líneas divisorias, puede
+resultar más fácil utilizar la división automática de notas (vea
+@ref{Automatic note splitting}).  Este mecanismo divide las notas
+largas de forma automática y las liga a través de las barras de compás.
+
+@funindex \repeatTie
+
+Cuando la segunda vez de una repetición comienza con una nota ligada,
+es necesario repetir la ligadura.  Esto se puede conseguir mediante @code{\repeatTie},
+
+@lilypond[fragment,quote,ragged-right,relative=2,verbatim]
+\repeat volta 2 { c g <c e>2 ~ }
+\alternative {{ <c e>2. r4 } {<c e>2\repeatTie d4 c }}
+@end lilypond
+
+@cindex laissez vibrer
+@cindex ligaduras laissez vibrer
+
+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 escribiendo @code{\laissezVibrer}:
+
+@lilypond[fragment,ragged-right,verbatim,relative=1]
+<c f g>\laissezVibrer
+@end lilypond
+
+Es posible controlar la colocación vertical de las ligaduras de unión;
+véase @ref{Controlling direction}.
+
+
+@seealso
+
+Referencia del programa:
+@internalsref{LaissezVibrerTie}
+@internalsref{LaissezVibrerTieColumn}
+
+Archivos de ejemplo:
+@lsr{connecting,laissez-vibrer-ties.ly}
+
+
+
+@cindex ligaduras de repetición
+@cindex corchetes de repetición de primera y segunda vez y ligaduras
+
+@commonprop
+
+A veces se usan ligaduras para escribir arpegios.  En este caso, dos notas ligadas no
+necesitan ser consecutivas.  Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote}
+(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil,
+por ejemplo, para ligar un trémolo a un acorde.  Por ejemplo,
+
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
+\set tieWaitForNote = ##t
+\grace { c16[~ e~ g]~ } <c, e g>2
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
+e8~ c~ a~ f~ <e' c a f>2
+@end lilypond
+
+Las ligaduras se pueden grabar manualmente modificando la propiedad
+@code{tie-configuration} del objeto @code{TieColumn}.  El primer
+número indica la distancia desde el centro del pentagrama en espacios
+de pentagrama, y el segundo número indica la dirección (1 = hacia
+arriba, -1 = hacia abajo).
+
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
+<c e g>2~ <c e g> |
+\override TieColumn #'tie-configuration =
+  #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
+<c e g>~ <c e g> |
+@end lilypond
+
+
+@predefined
+
+
+@funindex \tieUp
+@code{\tieUp},
+@funindex \tieDown
+@code{\tieDown},
+@funindex \tieNeutral
+@code{\tieNeutral},
+@funindex \tieDotted
+@code{\tieDotted},
+@funindex \tieDashed
+@code{\tieDashed},
+@funindex \tieSolid
+@code{\tieSolid}.
+
+
+@seealso
+
+En el presente manual: @ref{Automatic note splitting}.
+
+Referencia del programa: @internalsref{Tie}.
+
+
+@knownissues
+
+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.
+
+
+
 @node Writing rests
 @subsection Writing rests
 
@@ -302,7 +454,7 @@ En este manual: @ref{Tuplets}.
 @end menu
 
 @node Rests
-@unnumberedsubsubsec Rests
+@subsubsection Rests
 @cindex Silencios
 
 @funindex \rest
@@ -338,7 +490,7 @@ Referencia del programa: @internalsref{Rest}.
 
 
 @node Skips
-@unnumberedsubsubsec Skips
+@subsubsection Skips
 
 @cindex Desplazamiento
 @cindex Silencio invisible
@@ -383,7 +535,7 @@ Referencia del programa: @internalsref{SkipMusic}.
 
 
 @node Multi measure rests
-@unnumberedsubsubsec Multi measure rests
+@subsubsection Multi measure rests
 
 @cindex multicompás, silencios
 @cindex compás completo, silencios de
@@ -510,7 +662,7 @@ de los compases estará desactivada.
 @end menu
 
 @node Time signature
-@unnumberedsubsubsec Time signature
+@subsubsection Time signature
 
 @cindex Indicación de compás
 @cindex metro, medida
@@ -592,7 +744,7 @@ EL barrado automático no utiliza la agrupación de compases especificada con
 
 
 @node Upbeats
-@unnumberedsubsubsec Upbeats
+@subsubsection Upbeats
 
 @cindex anacrusa
 @cindex parte al alzar
@@ -647,7 +799,7 @@ desagradables.
 
 
 @node Unmetered music
-@unnumberedsubsubsec Unmetered music
+@subsubsection Unmetered music
 
 @cindex cadencia
 @funindex \cadenzaOn
@@ -684,13 +836,13 @@ para indicar dónde se pueden producir los saltos.
 
 
 @node Polymetric notation
-@unnumberedsubsubsec Polymetric notation
+@subsubsection Polymetric notation
 
 UNTRANSLATED NODE: IGNORE ME
 
 
 @node Automatic note splitting
-@unnumberedsubsubsec Automatic note splitting
+@subsubsection Automatic note splitting
 
 Las notas largas se pueden convertir automáticamente en notas ligadas.
 Se hace mediante la sustitución del @internalsref{Note_heads_engraver}
@@ -741,7 +893,7 @@ Referencia del programa: @internalsref{Completion_heads_engraver}.
 @end menu
 
 @node Automatic beams
-@unnumberedsubsubsec Automatic beams
+@subsubsection Automatic beams
 
 LilyPond inserta las barras de corchea automáticamente
 
@@ -768,7 +920,7 @@ Referencia del programa: @internalsref{Beam}.
 
 
 @node Manual beams
-@unnumberedsubsubsec Manual beams
+@subsubsection Manual beams
 
 @cindex barras manuales
 @funindex ]
@@ -852,7 +1004,7 @@ rodean las notas, como los textos y las alteraciones.
 
 
 @node Feathered beams
-@unnumberedsubsubsec Feathered beams
+@subsubsection Feathered beams
 
 UNTRANSLATED NODE: IGNORE ME
 
@@ -869,7 +1021,7 @@ UNTRANSLATED NODE: IGNORE ME
 @end menu
 
 @node Bar check
-@unnumberedsubsubsec Bar check
+@subsubsection Bar check
 
 @cindex Compás, comprobación de
 @funindex barCheckSynchronize
@@ -914,7 +1066,7 @@ pipeSymbol = \bar "||"
 
 
 @node Bar lines
-@unnumberedsubsubsec Bar lines
+@subsubsection Bar lines
 
 @cindex Barras de compás
 @funindex \bar
@@ -999,7 +1151,7 @@ Referencia del programa: @internalsref{BarLine} (creada al nivel de
 
 
 @node Bar numbers
-@unnumberedsubsubsec Bar numbers
+@subsubsection Bar numbers
 
 @cindex Compás, números de
 @cindex números de compás
@@ -1066,7 +1218,7 @@ colocar el número correctamente.
 
 
 @node Barnumber check
-@unnumberedsubsubsec Barnumber check
+@subsubsection Barnumber check
 
 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.
@@ -1082,7 +1234,7 @@ compás actual) no es 123 cuando se está procesando.
 
 
 @node Rehearsal marks
-@unnumberedsubsubsec Rehearsal marks
+@subsubsection Rehearsal marks
 
 @cindex Ensayo, letras de
 @funindex \mark
@@ -1196,7 +1348,7 @@ Ejemplos: @lsr{parts,rehearsal-mark-numbers.ly}
 @end menu
 
 @node Grace notes
-@unnumberedsubsubsec Grace notes
+@subsubsection Grace notes
 
 @funindex \grace
 @cindex ornamentos
@@ -1405,7 +1557,7 @@ yuxtaposición de secciones de adorno, y podría producir caídas u otros errore
 
 
 @node Aligning to cadenzas
-@unnumberedsubsubsec Aligning to cadenzas
+@subsubsection Aligning to cadenzas
 
 En un contexto orquestal, las cadenzas presentan un problema especial:
 al construir una partitura que tiene una cadenza, todos los demás instrumentos
@@ -1435,13 +1587,13 @@ cadenza = \relative c' {
 
 
 @node Time administration
-@unnumberedsubsubsec Time administration
+@subsubsection Time administration
 
 UNTRANSLATED NODE: IGNORE ME
 
 
 @node Proportional notation (introduction)
-@unnumberedsubsubsec Proportional notation (introduction)
+@subsubsection Proportional notation (introduction)
 
 UNTRANSLATED NODE: IGNORE ME
 
index 764d7e679fc312f9110570bcb09e39b751aec71f..17a6cdf3e66e4170a49d34ea6ff8730f9a20e134 100644 (file)
@@ -704,7 +704,7 @@ pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
 @qq{notes et paroles}, pour la partie de soprano.
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -734,7 +734,7 @@ Maintenant, on veut ajouter une partie de violoncelle.
 Jetons un coup d'oeil sur l'exemple avec les notes seules :
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melodie = \relative c' @{
   \clef treble
   \key c \major
@@ -772,7 +772,7 @@ Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de Fa, comme
 le veut l'usage, et donnons-lui d'autres notes.
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 musiqueSoprano = \relative c' @{
   \clef treble
   \key c \major
index 2068b889a33b26ecd5f84ccbf6f80cf5def8c5db..646db44a20e2ea049083434d7faace3f5204fcdb 100644 (file)
@@ -10,6 +10,8 @@
 @documentencoding UTF-8
 
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -85,25 +87,11 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-2
-    \mark #(ly:export (string-append
-      "(For LilyPond version " (lilypond-version) ")"))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-
+Pour LilyPond version @version{}
 @end titlepage
 
 @copying
-Copyright @copyright{} 1999--2007 by the authors
+Copyright @copyright{} 1999--2008 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -132,9 +120,25 @@ Free Documentation License''.
 @end copying
 
 @ifnottex
-This file documents GNU LilyPond program usage.
+Ce fichier documente GNU LilyPond.
+
+Copyright @copyright{} 1999--2008 par les auteurs
+
+@emph{The translation of the following copyright notice is provided
+for courtesy to non-English speakers, but only the notice in English
+legally counts.}
+
+@emph{La traduction de la notice de droits d'auteur ci-dessous vise à
+faciliter sa compréhension par le lecteur non anglophone, mais seule la
+notice en anglais a valeur légale.}
 
-Copyright 1999--2007 by the authors
+@quotation
+Vous avez le droit de copier, distribuer et/ou modifier ce document
+selon les termes de la Licence GNU de documentation libre, version 1.1
+ou tout autre version ultérieure publiée par la Free Software
+Foundation, ``sans aucune section invariante''.
+Une copie de la licence est fournie à la section ``Licence GNU de documentation libre''.
+@end quotation
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -151,10 +155,7 @@ Free Documentation License''.
 @top GNU LilyPond --- manuel d'initiation
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-Ce document est le manuel d'initiation pour GNU LilyPond 2.11.x.
-@ifhtml
-(Allez au bas de la page pour voir le numéro de version exact).
-@end ifhtml
+Ce document est le manuel d'initiation pour GNU LilyPond @version{}.
 
 @cindex web site
 @cindex URL
@@ -183,8 +184,6 @@ Annexes
 @contents
 
 
-@include macros.itexi
-
 @include preface.itely
 @include introduction.itely
 @include tutorial.itely
index b88b8fccfaac7f851d36913e8ad5af4e57e1ea6e..1db7f1862cc9e383f8fba10e1b36f977ef444c18 100644 (file)
@@ -10,6 +10,8 @@
 @settitle GNU LilyPond -- utilisation du programme
 @documentencoding UTF-8
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -52,11 +54,11 @@ Ce document est également disponible au format
 @titlepage
 @title GNU LilyPond
 @subtitle Le système de gravure musicale
-@titlefont{Utilisation du programme}
+@titlefont{Utilisation des programmes}
 @author L'équipe de développement de LilyPond
 
 
-Copyright @copyright{} 1999--2007 by the authors
+Copyright @copyright{} 1999--2008 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -85,28 +87,14 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-    \context Lyrics {
-        \override Score.RehearsalMark #'self-alignment-X = #LEFT
-        \override Score.RehearsalMark #'font-size = #-2 
-        \mark #(ly:export (string-append
-             "(Pour LilyPond version " (lilypond-version) ")"))
-        s2
-     }
-     \layout {
-         indent = 0.0\pt
-     }
-}
-@end lilypond
-
+Pour LilyPond version @version{}
 @end titlepage
 
 
 @ifnottex
-Ce fichier documente l'utilisation du programme GNU LilyPond.
+Ce fichier documente GNU LilyPond.
 
-Copyright @copyright{} 1999--2007 par les auteurs
+Copyright @copyright{} 1999--2008 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -137,13 +125,10 @@ Free Documentation License''.
 
 @ifnottex
 @node Top
-@top GNU LilyPond --- utilisation du programme
+@top GNU LilyPond --- utilisation des programmes
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-Ce document est le manuel d'utilisation du programme pour GNU LilyPond 2.11.x.
-@ifhtml
-(Allez au bas de la page pour voir le numéro de version exact).
-@end ifhtml
+Ce document est le manuel d'utilisation des programmes pour GNU LilyPond @version{}.
 
 @cindex web site
 @cindex URL
@@ -156,7 +141,7 @@ ligne de ce manuel, ainsi qu'une documentation supplémentaire.
 
 @menu
 * Install::                        installation, compilation.
-* Setup::                          utilisation de LilyPond avec d'autres programmes.
+* Setup::                          environnement de travail pour LilyPond.
 * Running LilyPond::               mode d'emploi.
 * LilyPond-book::                  intégration de texte et musique.
 * Converting from other formats::  conversion vers le format source lilypond.
@@ -171,8 +156,6 @@ Annexes
 @contents
 
 
-@include macros.itexi
-
 @include install.itely
 @include setup.itely
 @include running.itely
index 7fba0e33a049d37f9e69f385a210f4be912cb83f..98a082aedc7b2b1e3dc7f9ccf94c2b680726f604 100644 (file)
@@ -10,6 +10,8 @@
 @settitle GNU LilyPond -- manuel de notation
 @documentencoding UTF-8
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -19,7 +21,8 @@
 @end tex
 @end iftex
 
-@c @direntry has not been added yet, as Emacs and standalone Info have no i18n support -JM
+@c @direntry has not been added yet, as Emacs and standalone Info have
+@c no i18n support -JM
 
 @c don't remove this comment.
 @ignore
@@ -54,11 +57,11 @@ Ce document est également disponible au format
 @titlepage
 @title GNU LilyPond
 @subtitle Le système de gravure musicale
-@titlefont{Manuel de référence}
+@titlefont{Manuel de notation}
 @author L'équipe de développement de LilyPond
 
 
-Copyright @copyright{} 1999--2007 by the authors
+Copyright @copyright{} 1999--2008 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -87,28 +90,14 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-    \context Lyrics {
-        \override Score.RehearsalMark #'self-alignment-X = #LEFT
-        \override Score.RehearsalMark #'font-size = #-2 
-        \mark #(ly:export (string-append
-             "(Pour LilyPond version " (lilypond-version) ")"))
-        s2
-     }
-     \layout {
-         indent = 0.0\pt
-     }
-}
-@end lilypond
-
+Pour LilyPond version @version{}
 @end titlepage
 
 
 @ifnottex
 Ce fichier documente GNU LilyPond.
 
-Copyright @copyright{} 1999--2007 par les auteurs
+Copyright @copyright{} 1999--2008 par les auteurs
 
 @emph{The translation of the following copyright notice is provided
 for courtesy to non-English speakers, but only the notice in English
@@ -142,10 +131,7 @@ Free Documentation License''.
 @top GNU LilyPond --- le système de gravure musicale
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-Ce document est le manuel de référence de GNU LilyPond 2.11.x.
-@ifhtml
-(Allez au bas de la page pour voir le numéro de version exact).
-@end ifhtml
+Ce document est le manuel de notation de GNU LilyPond @version{}.
 
 @cindex web site
 @cindex URL
@@ -180,8 +166,6 @@ Annexes
 @contents
 
 
-@include macros.itexi
-
 @include notation.itely
 @include specialist.itely
 
index 52c0c0d89438a31d3352f5d72a774bf131487d58..9fd2bcce9c1d9f592b746f6cc246eb99db83ce54 100644 (file)
@@ -6,6 +6,10 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@macro version
+@value{version}
+@end macro
+
 
 @c   ***** Displaying text *****
 
 @c WARNING: new @lsr macro in English docs takes 3 arguments
 @c and new @lsrdir takes two arguments
 
+@c obsolete
 @c usage: @lsr{ancient,custodes.ly}
 @macro lsr{DIR,TEXT}
 @ifhtml
 @end ifnothtml
 @end macro
 
+@c don't update until this macro is correctly set up in English docs
 @macro lsrdir{DIR}
 @ifhtml
 @uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/}
 @ifhtml
 @c ***** HTML *****
 
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
 @ifset bigpage
 
 @macro internalsref{TEXT}
index e1644f0d080c351734f29411a5aa463ff6f02836..4d7bfa6134a8e49dda24dcf21cf8816552840a58 100644 (file)
@@ -1377,7 +1377,7 @@ La déclaration @code{\version} stipule le numéro de la version de
 LilyPond pour laquelle le fichier a été écrit,
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 @end example
 
 @noindent
index ae0b394095d57471ee64c357928e26078d655113..d96c0985b0e0f7ea652cf4ce61760a16453b50ee 100644 (file)
@@ -70,13 +70,13 @@ faciliter leur mise à jour.
 Voici quelques conseils qui peuvent vous éviter certains problèmes ou
 en résoudre d'autres.
 
-@itemize @bullet
+@itemize
 @item @strong{Ajoutez le numéro de version dans chaque fichier}.
 Notez que chaque fichier modèle contient une ligne @code{\version
 "2.11.32"}.  Nous vous conseillons fortement d'inclure cette ligne,
 même pour de petits fichiers.  Par expérience, il est très difficile
 de se rappeler quelle version de LilyPond on utilisait quelques
-années auparavant.  L'utilitaire @code{convert-ly} demande que vous
+années auparavant.  L'utilitaire @command{convert-ly} demande que vous
 spécifiiez la version de LilyPond vous utilisiez alors.
 
 @item @strong{Ajoutez des contrôles}: @ruser{Bar check}, @ruser{Octave
@@ -542,7 +542,7 @@ chaque fichier de musique par @code{\include "../global.ly"} qui contient :
 
 @example
 %%%   global.ly
-\version "2.11.38"
+\version @w{"@version{}"}
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-mise-en-page.ly"
@@ -560,14 +560,14 @@ plus faciles à lire et à écrire, ou permettent d'intégrer de nouvelles
 fonctionnalités.
 
 LilyPond est fourni avec un utilitaire qui facilite cette mise à
-jour : @code{convert-ly}.  Pour savoir comment utiliser ce programme,
+jour : @command{convert-ly}.  Pour savoir comment utiliser ce programme,
 voir @rprogram{Updating files with convert-ly}.
 
-Malheureusement, @code{convert-ly} ne peut pas réaliser toutes les
+Malheureusement, @command{convert-ly} ne peut pas réaliser toutes les
 modifications.  Il s'occupe des changements qui ne requièrent qu'une
 simple substitution de texte --- comme @code{raggedright} devenant
 @code{ragged-right} ---, les autres étant trop compliqués à effectuer.
-Les changements de syntaxe qui ne sont pas gérés par @code{convert-ly}
+Les changements de syntaxe qui ne sont pas gérés par @command{convert-ly}
 sont énumérés dans @rprogram{Updating files with convert-ly}.
 
 Par exemple, dans les versions 2.4 et antérieures de LilyPond,
index adc97057782506d51b918fb9103adb3f7275e749..82f04b82b945c7ed835be2a513db310c0936239d 100644 (file)
@@ -101,9 +101,9 @@ href="user/lilypond-program/index.html">Application Usage (AU)</a>
 in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
            <br>(how to install and run the program)
 
-<li><a class="title" href="../input/lsr/snippets/index.html">Snippets</a>
-(in <a class="title" href="../input/lsr/snippets-big-page.html">one big page</a>,
-in <a class="title" href="../input/lsr/snippets.pdf">PDF</a>)
+<li><a class="title" href="../input/lsr/lilypond-snippets/index.html">Snippets</a>
+(in <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">one big page</a>,
+in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
      <br>(Short tricks, tips, and examples)
 
        </ul>
diff --git a/Documentation/translations.html.in b/Documentation/translations.html.in
new file mode 100644 (file)
index 0000000..f85c4e5
--- /dev/null
@@ -0,0 +1,702 @@
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+  documentation are translated; for each documentation section, you
+  can read the word count in parentheses, who translated and verified
+  it (translation checkers are printed with a smaller font size), how
+  much of the original section in English has been translation, how
+  up-to-date is the translation, and whether the translation has
+  already been updated after Grand Documentation Project (GDP) was
+  started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+  English, therefore translated documentation is mostly not
+  up-to-date; however, this does not mean translated documentation is
+  inaccurate regarding current LilyPond version, it only means that
+  translated docmentation is not synced with documentation in English.
+  We do our best to keep translated documentation consistent with
+  current LilyPond syntax and features, and will update it per
+  section, when GDP processing of the corresponding section in English
+  is finished.
+</p>
+
+ <p><i>Last updated Tue Feb 26 15:43:29 UTC 2008
+</i></p>
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- learning manual</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(406)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>Preface<br>(411)</td>
+  <td>Valentin Villenave<br>
+   <small>Ludovic Sardain</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Introduction<br>(3198)</td>
+  <td>Ludovic Sardain<br>
+   John Mandereau<br>
+   <small>Jean-Charles Malahieude<br>
+   Jean-Yves Baudais</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Tutorial<br>(5593)</td>
+  <td>Nicolas Grandclaude<br>
+   Ludovic Sardain<br>
+   Gauvain Pocentek<br>
+   <small>Jean-Charles Malahieude<br>
+   Valentin Villenave<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff8f50">partially up-to-date (23 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #40fe23">partially up-to-date (95 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Fundamental concepts<br>(8626)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (39 %)</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 Tweaking output<br>(11862)</td>
+  <td>Valentin Villenave<br>
+   Nicolas Klutchnikoff<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Working on LilyPond projects<br>(2985)</td>
+  <td>Ludovic Sardain<br>
+   <small>Jean-Yves Baudais<br>
+   Valentin Villenave<br>
+   John Mandereau<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>A Templates<br>(297)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9150">partially up-to-date (24 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>B Scheme tutorial<br>(960)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (91 %)</span><br>
+   <span style="background-color: #83fe2c">partially up-to-date (85 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- program usage</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(384)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Install<br>(1477)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+   <span style="background-color: #6fff29">partially up-to-date (88 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Setup<br>(947)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Running LilyPond<br>(2860)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 @command{lilypond-book}: Integrating text and music<br>(2840)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Converting from other formats<br>(975)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- The music typesetter</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(549)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Musical notation<br>(91)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.1 Pitches<br>(2808)</td>
+  <td>Frédéric Chiasson<br>
+   <small>Valentin Villenave<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.2 Rhythms<br>(7056)</td>
+  <td>Frédéric Chiasson<br>
+   <small>Valentin Villenave<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (82 %)</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (87 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.3 Expressive marks<br>(1602)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #91ff2e">partially up-to-date (83 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.4 Repeats<br>(717)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.5 Simultaneous notes<br>(916)</td>
+  <td>Frédéric Chiasson<br>
+   Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.6 Staff notation<br>(1637)</td>
+  <td>Valentin Villenave<br>
+   Jean-Charles Malahieude<br>
+   <small>John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (49 %)</span><br>
+   <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.7 Editorial annotations<br>(866)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (38 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (95 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.8 Text<br>(2329)</td>
+  <td>Jean-Charles Malahieude<br>
+   <small>Valentin Villenave<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Specialist notation<br>(54)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.1 Vocal music<br>(2630)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.2 Chords<br>(1275)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.3 Piano music<br>(702)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.4 Percussion<br>(481)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.5 Guitar<br>(826)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.6 Orchestral strings<br>(66)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.7 Bagpipes<br>(242)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (94 %)</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.8 Ancient notation<br>(4289)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Input syntax<br>(2448)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+   <span style="background-color: #25fe1f">partially up-to-date (99 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 Non-musical notation<br>(2164)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (4 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (3 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Spacing issues<br>(8399)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>6 Changing defaults<br>(5105)</td>
+  <td>Valentin Villenave<br>
+   <small>Gilles Thibault</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #b9ff33">partially up-to-date (77 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>7 Interfaces for programmers<br>(4547)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>A Literature list<br>(299)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>B Notation manual tables<br>(935)</td>
+  <td>Frédéric Chiasson<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (13 %)</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+   <span style="background-color: #62ff28">partially up-to-date (90 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (97 %)</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>C Cheat sheet<br>(250)</td>
+  <td>Valentin Villenave<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
diff --git a/Documentation/translations.template.html b/Documentation/translations.template.html
deleted file mode 100644 (file)
index e0bbadc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-<!--
-    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
-!-->
-<head>
-  <title>LilyPond documentation translations status</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-</head>
-
-<body>
-<p><a href="index.html">Up to documentation index</a></p>
-
-<h1>Documentation translations status</h1>
-
-<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
-  documentation are translated; for each documentation section, you
-  can read the word count in parentheses, who translated and verified
-  it (translation checkers are printed with a smaller font size), how
-  much of the original section in English has been translation, how
-  up-to-date is the translation, and whether the translation has
-  already been updated after Grand Documentation Project (GDP) was
-  started.
-</p>
-
-<p>Please note that GDP makes a lot of changes to documentation in
-  English, therefore translated documentation is mostly not
-  up-to-date; however, this does not mean translated documentation is
-  inaccurate regarding current LilyPond version, it only means that
-  translated docmentation is not synced with documentation in English.
-  We do our best to keep translated documentation consistent with
-  current LilyPond syntax and features, and will update it per
-  section, when GDP processing of the corresponding section in English
-  is finished.
-</p>
-
-</body>
-</html>
diff --git a/Documentation/translations.template.html.in b/Documentation/translations.template.html.in
new file mode 100644 (file)
index 0000000..e0bbadc
--- /dev/null
@@ -0,0 +1,40 @@
+<html>
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+  documentation are translated; for each documentation section, you
+  can read the word count in parentheses, who translated and verified
+  it (translation checkers are printed with a smaller font size), how
+  much of the original section in English has been translation, how
+  up-to-date is the translation, and whether the translation has
+  already been updated after Grand Documentation Project (GDP) was
+  started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+  English, therefore translated documentation is mostly not
+  up-to-date; however, this does not mean translated documentation is
+  inaccurate regarding current LilyPond version, it only means that
+  translated docmentation is not synced with documentation in English.
+  We do our best to keep translated documentation consistent with
+  current LilyPond syntax and features, and will update it per
+  section, when GDP processing of the corresponding section in English
+  is finished.
+</p>
+
+</body>
+</html>
index f94800161cf37f1577e46ff92e25bde34fb85717..0a39a41a4690a4c3c02b36be136b58816c6b12fe 100644 (file)
@@ -24,11 +24,13 @@ PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
 # this prevents aux files from being reused for translated docs
 TEXI2PDF_FLAGS = --tidy
 
+MAIN_INFO_DOC = lilypond
 INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
 INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
 
 ifeq ($(out),www)
 INFO_IMAGES_DIR = lilypond
+DEST_INFO_IMAGES_SUBDIR = Documentation/user
 endif
 
 STEPMAKE_TEMPLATES=tex texinfo omf documentation
@@ -48,80 +50,6 @@ info: $(INFO_FILES)
 
 xml: $(outdir)/lilypond/lilypond.xml $(outdir)/lilypond-internals/lilypond-internals.xml
 
-# There are two modes for info: with and without images.
-ifeq ($(out),www)
-
-# This builds all .info targets with images, in out-www.
-# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
-
-local-install-info: info
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
-## Can not have absolute symlinks because some binary packages build schemes
-## install files in nonstandard root.  Best we can do is to notify the
-## builder or packager.
-       @echo
-       @echo "***************************************************************"
-       @echo "Please add or update the LilyPond direntries, do"
-       @echo
-       @echo "    install-info --info-dir=$(infodir) $(outdir)/lilypond.info"
-       @echo
-       @echo "For images in the INFO docs to work, do: "
-       @echo
-       @echo "    (cd $(infodir) && ln -sfT ../doc/lilypond/html/Documentation/user lilypond)"
-       @echo "or add something like that to the postinstall script."
-       @echo
-else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
-       install-info --info-dir=$(infodir) $(outdir)/lilypond.info
-       cd $(infodir) && ln -sfT $(webdir)/Documentation/user lilypond
-endif # installing directly into standard /usr/...
-
-local-uninstall-WWW:
-       rm -f $(infodir)/lilypond
-
-else # out!=www
-
-local-install-info: info
-       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
-ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
-## Can not have absolute symlinks because some binary packages build schemes
-## install files in nonstandard root.  Best we can do is to notify the
-## builder or packager.
-       @echo
-       @echo "***************************************************************"
-       @echo "Please add or update the LilyPond direntries, do"
-       @echo
-       @echo "    install-info --info-dir=$(infodir) out/lilypond.info"
-       @echo
-       @echo "For images in the INFO docs to work, do"
-       @echo
-       @echo "    make out=www install-info "
-       @echo
-       @echo "and read the extra instructions."
-       @echo
-else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
-       install-info --info-dir=$(infodir) $(outdir)/lilypond.info
-       @echo
-       @echo "***************************************************************"
-       @echo "For images in the INFO docs to work, do"
-       @echo
-       @echo "    make out=www install-info "
-       @echo
-endif # installing into standard /usr/* root# installing into /usr/...
-
-endif # out!=www
 
 # All web targets, except info image symlinks and info docs are
 # installed in non-recursing target from TOP-SRC-DIR
@@ -191,7 +119,8 @@ DEEP_HTML_FILES =\
  $(outdir)/lilypond-learning/index.html
 
 # Symlinks to refer to external source documents from split and non-split HTML
-source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source
+source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source \
+ $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source
 
 $(outdir)/source:
        @rm -f $(@)
index 6b39a974a348dcfb67b4ca6d2bc0b1cb5019015d..ae345e03d089d67c16ce0a3eb5c8025a119731f0 100644 (file)
@@ -11,7 +11,7 @@ General policy: policy.txt
 convert-ly -e --from=... --to=... --no-version *.itely
 
 % to find the current version number,
-grep "version \"" tutorial.itely
+grep "version \"" fundamental.itely
 
 Please don't forget updating translated docs (in LANGS/user) too!
 
index 89a0d051cdce21a6236a3f18eff14b396534a684..f9f9343f5f4e141663235d1ad910b329aca6ac1f 100644 (file)
@@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}.
 A basic example of a lilypond input file is
 
 @example
-\version "@version{}"
+\version @w{"@version{}"}
 \score @{
   @var{...compound music expression...}  % all the music goes here!
   \header @{ @}
@@ -1739,7 +1739,7 @@ cello.  In this case, we would start with @q{Notes and lyrics} (for the
 soprano part).
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1767,7 +1767,7 @@ text = \lyricmode @{
 Now we want to add a cello part.  Let's look at the @q{Notes only} example:
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1804,7 +1804,7 @@ celli normally use bass clef.  We'll also give the cello some
 different notes.
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 sopranoMusic = \relative c' @{
   \clef treble
   \key c \major
@@ -1873,7 +1873,7 @@ This looks a bit messy; the indentation is messed up now.  That is
 easily fixed.  Here's the complete soprano and cello template.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.37"
+\version "2.11.38"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
@@ -1921,7 +1921,6 @@ from Handel's Messiah:
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
-\version "2.11.38"
 global = { \key d \major \time 4/4 }
 sopMusic = \relative c'' {
   \clef "treble"
@@ -2193,7 +2192,7 @@ music definitions and one to define the time signature
 and key:
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 \header @{
   title = "Jesu, meine Freude"
   composer = "J S Bach"
index f0af1fcf1706209bb3712cefe55c24152ec9504a..cb796ef2af8bef5713f25c3f4cbc2fb5e6653ee4 100644 (file)
@@ -656,6 +656,10 @@ will be printed with a verbatim block like
   f2 e
 @end example
 
+@item addversion
+(Only for Texinfo output.)  Prepend line @code{\version
+@@w@{"@@version@{@}"@}} to @code{verbatim} output.
+
 @item texidoc
 (Only for Texinfo output.)  If @command{lilypond} is called with the
 @option{--header=@/texidoc} option, and the file to be processed is
@@ -700,8 +704,9 @@ useful if you want to @code{quote} the music snippet but not the
 
 @item printfilename
 If a LilyPond input file is included with @code{\lilypondfile}, print
-the file name right before the music snippet.  For HTML output, this is
-a link.
+the file name right before the music snippet.  For HTML output, this
+is a link.  Only the base name of the file is printed, i.e. the
+directory part of the file path is stripped.
 
 @item fontload
 This option includes fonts in all of the generated EPS-files for this
@@ -817,7 +822,11 @@ Print a short help message.
 
 @item -I @var{dir}
 @itemx --include=@var{dir}
-Add @var{dir} to the include path.
+Add @var{dir} to the include path.  @command{lilypond-book} also looks
+for already compiled snippets in the include path, and does not write
+them back to the output directory, so in some cases it is necessary to
+invoke further processing commands such as @command{makeinfo} or
+@command{latex} with the same @code{-I @var{dir}} options.
 
 @item -o @var{dir}
 @itemx --output=@var{dir}
index cf268fafb3eefa84708ff1f49f5d8e3f084b1d3f..4ef3123bfdbed271a2cd015e2b581f5ef4a555c9 100644 (file)
@@ -6,10 +6,8 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c FIXME: will deal with later.
-@c @value{version}
 @macro version
-2.11.41
+@value{version}
 @end macro
 
 @c   ***** Displaying text *****
 @ref{\TEXT\,,,lilypond-learning-big-page}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets-big-page}
+@end macro
+
 @end ifset
 
 
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifclear
 
 @end ifhtml
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifdocbook
 
 
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifinfo
 
 
 
 @macro rprogram{TEXT}
 program usage manual, @ref{\TEXT\,,,lilypond-program}
-@c @internalsref{\TEXT\}
 @end macro
 
 @macro ruser{TEXT}
 notation reference, @ref{\TEXT\,,,lilypond}
-@c @internalsref{\TEXT\}
 @end macro
 
 @macro rlearning{TEXT}
 learning manual, @ref{\TEXT\,,,lilypond-learning}
-@c @internalsref{\TEXT\}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
 @end macro
 
 @end iftex
index 9d710c5bec745625b0a1bf925e20f5f413dd863b..b8d9893ae8650127809456c1ef2560a32b0408c4 100644 (file)
@@ -31,13 +31,13 @@ beautiful printed scores!
 
 @appendixsubsec Notes only
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
 {single-staff-template-with-only-notes.ly}
 
 
 @appendixsubsec Notes and lyrics
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
 {single-staff-template-with-notes-and-lyrics.ly}
 
 @appendixsubsec Notes and chords
index e8600174514de25fd5bb44644ce2288fc72bffde..7373f6222cfddb35ed4ea5ee89b6daf96b1c6f13 100644 (file)
@@ -1585,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that
 was used to write the file:
 
 @example
-\version "@version{}"
+\version @w{"@version{}"}
 @end example
 
 @noindent
@@ -1607,7 +1607,7 @@ main music expression; the @code{\header} block is usually placed
 underneath the @ref{Version number}.
 
 @example
-\version "@version{}"
+\version @w{"@version{}"}
 \header @{
   title = "Symphony"
   composer = "Me"
index 59e2ff3fc3a0056683797483e490a90434c2d5c4..216f577e89535a0f2f4d71a3b9322acfc564fc56 100644 (file)
@@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains
 
 @example
 %%%   global.ly
-\version "@version{}"
+\version @w{"@version{}"}
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-layout.ly"
index 75b6c60657e23526712b38183d215ba344d37faf..7913ed0ad76407f366f13ed43d7e14c82b462021 100644 (file)
@@ -166,7 +166,7 @@ commands.
   quotes), or generally if @version{} is not followed by a space,
   enclose it with
 
-   @w{ ... }
+  @w{ ... }
 
   e.g.
 
index b410b2a39e9fd72661e1edddde7c833f8bdff784..7f30c94edca2ae4555372b7875a9906f6f71926d 100644 (file)
@@ -87,15 +87,21 @@ def build_pages_dict (filelist):
 def source_links_replace (m, source_val):
     return 'href="' + os.path.join (source_val, m.group (1)) + '"'
 
-splitted_docs_re = re.compile ('(input/lsr/out-www/snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/')
+splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/')
 
-# On systems without symlinks (e.g. Windows), docs are not very usable
-# Get rid of symlinks references here
+snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
+
+## Windows does not support symlinks.
+# This function avoids creating symlinks for splitted HTML manuals
 # Get rid of symlinks in GNUmakefile.in (local-WWW-post)
 # this also fixes missing PNGs only present in translated docs
-def replace_symlinks_urls (s, prefix):
+def hack_urls (s, prefix):
     if splitted_docs_re.match (prefix):
         s = re.sub ('(href|src)="(lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
+
+    # fix Snippets xrefs ad hoc
+    s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
+
     source_path = os.path.join (os.path.dirname (prefix), 'source')
     if not os.path.islink (source_path):
         return s
@@ -262,7 +268,7 @@ def add_html_footer (translation,
             in_f.close()
 
             s = re.sub ('%', '%%', s)
-            s = replace_symlinks_urls (s, prefix)
+            s = hack_urls (s, prefix)
             s = add_header (s)
 
             ### add footer
index c026522434e37b77a453592aaca71487c2e5b1b3..e2df5a6bc3fbb2f282d755bd54f17a7f1fa8d8d3 100644 (file)
@@ -81,15 +81,15 @@ for opt in options:
         raise Exception ('unknown option: ' + o)
 
 def name2line (n):
-    # UGR
     s = r"""
 @ifhtml
 @html
-<A NAME="%s"></A>
+<a name="%s"></a>
 @end html
 @end ifhtml
 
-@lilypondfile[%s]{%s}""" % (n, fragment_options, n)
+@lilypondfile[%s]{%s}
+""" % (os.path.basename (n), fragment_options, n)
     return s
 
 if files:
index 494b59b881330529dbd39a9b2e2ec732f19e0ad4..0242e973a5a1bbf2b21ec659f6408c9f6e9833c4 100644 (file)
@@ -5,8 +5,8 @@ USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
 
   This script must be run from Documentation/
 
-  Reads template files translations.template.html
-and for each LANG in LANGUAGES LANG/translations.template.html
+  Reads template files translations.template.html.in
+and for each LANG in LANGUAGES LANG/translations.template.html.in
 
   Writes translations.html.in and for each LANG in LANGUAGES
 translations.LANG.html.in
@@ -17,6 +17,7 @@ import re
 import string
 import os
 import gettext
+import subprocess
 
 def progress (str):
     sys.stderr.write (str + '\n')
@@ -38,11 +39,17 @@ for l in langdefs.LANGUAGES:
         translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
 
 def read_pipe (command):
-    pipe = os.popen (command)
-    output = pipe.read ()
-    if pipe.close ():
+    child = subprocess.Popen (command,
+                              stdout = subprocess.PIPE,
+                              stderr = subprocess.PIPE,
+                              shell = True)
+    (output, error) = child.communicate ()
+    code = str (child.wait ())
+    if not child.stdout or child.stdout.close ():
         print "pipe failed: %(command)s" % locals ()
-    return output
+    if code != '0':
+        error = code + ' ' + error
+    return (output, error)
 
 comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
 space_re = re.compile (r'\s+', re.M)
@@ -68,6 +75,7 @@ format_table = {
     'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
     'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
     'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+    'N/A': {'short':_doc ('N/A'), 'long':'', 'color':'d587ff' },
     'pre-GDP':_doc ('pre-GDP'),
     'post-GDP':_doc ('post-GDP')
 }
@@ -84,44 +92,42 @@ texi_level = {
     'appendix': ('l', 1)
 }
 
-appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
+appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY',
+                                          'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
 
 class SectionNumber (object):
     def __init__ (self):
-        self.__current_number = [0]
-        self.__type = 'n'
+        self.__data = [[0,'u']]
 
     def __increase_last_index (self):
-        if isinstance (self.__current_number[-1], str):
-            self.__current_number[-1] = self.__current_number[-1].translate (appendix_number_trans)
-        else:
-            self.__current_number[-1] += 1
+        type = self.__data[-1][1]
+        if type == 'l':
+            self.__data[-1][0] = self.__data[-1][0].translate (appendix_number_trans)
+        elif type == 'n':
+            self.__data[-1][0] += 1
 
-    # ugh, current implementation is too naive:
-    # unnumbered stuff is really printed without number for @top only
     def format (self):
-        if self.__current_number == [0] or self.__type == 'u':
+        if self.__data[-1][1] == 'u':
             return ''
-        return '.'.join ([str (i) for i in self.__current_number[1:]]) + ' '
+        return '.'.join ([str (i[0]) for i in self.__data if i[1] != 'u']) + ' '
 
     def increase (self, (type, level)):
         if level == 0:
-            self.__current_number = [0]
-        while level + 1 < len (self.__current_number):
-            del self.__current_number[-1]
-        if level + 1 > len (self.__current_number):
-            self.__type = type
+            self.__data = [[0,'u']]
+        while level + 1 < len (self.__data):
+            del self.__data[-1]
+        if level + 1 > len (self.__data):
+            self.__data.append ([0, type])
             if type == 'l':
-                self.__current_number.append ('@')
-            else:
-                self.__current_number.append (0)
-
-        if type == self.__type:
+                self.__data[-1][0] = '@'
+        if type == self.__data[-1][1]:
             self.__increase_last_index ()
-        elif type == 'l' and level == 1:
-            self.__current_number[-1] = 'A'
         else:
-            self.__current_number[-1] = 1
+            self.__data[-1] = ([0, type])
+            if type == 'l':
+                self.__data[-1][0] = 'A'
+            elif type == 'n':
+                self.__data[-1][0] = 1
         return self.format ()
 
 
@@ -135,12 +141,6 @@ def percentage_color (percent):
         c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
     return ''.join (c)
 
-def line_word_count (tely_line):
-    if tely_line.startswith ('@'):
-        return 0
-    tely_line = comments_re.sub ('', tely_line)
-    return len (space_re.split (tely_line))
-
 def tely_word_count (tely_doc):
     '''
     Calculate word count of a Texinfo document node by node.
@@ -223,21 +223,26 @@ class TranslatedTelyDocument (TelyDocument):
                                   'the whole file against the original in English, then ' + \
                                   'fill in HEAD committish in the header.\n')
             sys.exit (1)
-        diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
-        insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
-        deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
-        outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
-        self.uptodate_percentage = 100 - int (outdateness_percentage)
-        if self.uptodate_percentage > 100:
-            alternative = 50
-            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
-                          % (self.filename, self.uptodate_percentage, alternative))
-            self.uptodate_percentage = alternative
-        elif self.uptodate_percentage < 1:
-            alternative = 1
-            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
-                          % (self.filename, self.uptodate_percentage, alternative))
-            self.uptodate_percentage = alternative
+        (diff_string, error) = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename})
+        if error:
+            sys.stderr.write ('warning: %s: %s' % (self.filename, error))
+            self.uptodate_percentage = None
+        else:
+            diff = diff_string.splitlines ()
+            insertions = sum ([len (l) - 1 for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+            deletions = sum ([len (l) - 1 for l in diff if l.startswith ('-') and not l.startswith ('---')])
+            outdateness_percentage = 50.0 * (deletions + insertions) / (masterdocument.size + 0.5 * (deletions - insertions))
+            self.uptodate_percentage = 100 - int (outdateness_percentage)
+            if self.uptodate_percentage > 100:
+                alternative = 50
+                progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                              % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
+            elif self.uptodate_percentage < 1:
+                alternative = 1
+                progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                              % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
 
     def completeness (self, formats=['long']):
         if isinstance (formats, str):
@@ -255,13 +260,15 @@ class TranslatedTelyDocument (TelyDocument):
         if isinstance (formats, str):
             formats = [formats]
         p = self.uptodate_percentage
-        if p == 100:
+        if p == None:
+            status = 'N/A'
+        elif p == 100:
             status = 'up to date'
         else:
             status = 'outdated'
         l = {}
         for f in formats:
-            if f == 'color':
+            if f == 'color' and p != None:
                 l['color'] = percentage_color (p)
             else:
                 l[f] = format_table[status][f] % locals ()
@@ -298,6 +305,7 @@ class MasterTelyDocument (TelyDocument):
     def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
         #print "init MasterTelyDocument %s" % filename
         TelyDocument.__init__ (self, filename)
+        self.size = len (self.contents)
         self.word_count = tely_word_count (self.contents)
         translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
         #print translations
@@ -338,11 +346,11 @@ class MasterTelyDocument (TelyDocument):
 
 progress ("Reading documents...")
 
-tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
-master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
+master_docs = [MasterTelyDocument (os.path.normpath (filename)) for filename in tely_files]
 master_docs = [doc for doc in master_docs if doc.translations]
 
-main_status_page = open ('translations.template.html').read ()
+main_status_page = open ('translations.template.html.in').read ()
 
 ## TODO
 #per_lang_status_pages = dict ([(l, open (os.path.join (l, 'translations.template.html')). read ())
@@ -351,7 +359,7 @@ main_status_page = open ('translations.template.html').read ()
 
 progress ("Generating status pages...")
 
-main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')[0]
 main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
 
 html_re = re.compile ('<html>', re.I)
@@ -359,7 +367,7 @@ end_body_re = re.compile ('</body>', re.I)
 
 main_status_page = html_re.sub ('''<html>
 <!-- This page is automatically generated by translation-status.py from
-translations.template.html; DO NOT EDIT !-->''', main_status_page)
+translations.template.html.in; DO NOT EDIT !-->''', main_status_page)
 
 main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
 
index e27aeb7d2ee02807205ba95507c793026dff18a4..278895aff93b7cc51ea73e9cd980fe932cfa2e0b 100644 (file)
@@ -82,6 +82,10 @@ for t in targets:
         if not os.path.exists (dest):
             os.symlink (p, dest)
 
+    ## ad-hoc renaming to make xrefs between PDFs work
+    os.rename (os.path.join (out_root, 'input/lsr/lilypond-snippets.pdf'),
+               os.path.join (out_root, 'Documentation/user/lilypond-snippets.pdf'))
+
 # need this for content negotiation with documentation index
 if 'online' in targets:
     f = open (os.path.join (target_pattern % 'online', 'Documentation/.htaccess'), 'w')
index 1ca2cbbf522039e1f7854647bcd263819ad48302..16946ea380e995a088f23360793a473d12894e03 100644 (file)
@@ -6,6 +6,16 @@ STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 EXTRA_DIST_FILES += README $(call src-wildcard,*.snippet-list)
 
+ifneq ($(out),)
+MAIN_INFO_DOC = lilypond-snippets
+INFO_DOCS = lilypond-snippets
+INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
+INFO_IMAGES_DIR = lilypond-snippets
+DEST_INFO_IMAGES_SUBDIR = input/lsr
+endif
+
+default:
+
 include $(depth)/make/stepmake.make
 
 IN_ITELY_FILES = $(call src-wildcard,*-intro.itely)
@@ -14,14 +24,27 @@ GENERATED_ITELY_FILES = $(IN_ITELY_FILES:%-intro.itely=$(outdir)/%.itely)
 $(outdir)/%.itely: %-intro.itely %.snippet-list
        xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f printfilename,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
 
-$(outdir)/snippets.texi: snippets.tely $(GENERATED_ITELY_FILES)
-       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
+$(outdir)/lilypond-snippets.texi: $(GENERATED_ITELY_FILES)
+
+info: $(INFO_FILES)
+
+ifneq ($(out),www)
+# cancel install-info target and $(INFO_FILES) 'default' target
+# (there is no lilypond-snippets.info without images)
+local-install-info:
+
+$(INFO_FILES):
+       true
+endif
 
-$(outdir)/snippets-big-page.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+# All web targets, except info image symlinks and info docs are
+# installed in non-recursing target from TOP-SRC-DIR
+local-install-WWW: local-install-info
+local-uninstall-WWW: local-uninstall-info
 
-$(outdir)/snippets/index.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+local-clean:
+       rm -f $(INFO_IMAGES_DIR)
 
-local-WWW: $(outdir)/snippets.pdf $(outdir)/snippets/index.html $(outdir)/snippets-big-page.html
+local-WWW: info $(outdir)/lilypond-snippets.pdf \
+  $(outdir)/lilypond-snippets/index.html \
+  $(outdir)/lilypond-snippets-big-page.html
diff --git a/input/lsr/lilypond-snippets.tely b/input/lsr/lilypond-snippets.tely
new file mode 100644 (file)
index 0000000..85cde17
--- /dev/null
@@ -0,0 +1,141 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@setfilename lilypond-snippets.info
+@settitle LilyPond snippets
+@documentencoding UTF-8
+@documentlanguage en
+
+@iftex
+@afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
+@end iftex
+
+@dircategory GNU LilyPond --- the music typesetter
+@direntry
+* LilyPond Snippets: (lilypond-snippets)        Short tricks, tips, and examples.
+@end direntry
+
+@finalout
+
+@titlepage
+@title LilyPond
+@subtitle The music typesetter
+@titlefont{Snippets}
+@author LilyPond Snippet Repository contributors
+
+@vskip 20pt
+
+This document shows a selected set of LilyPond snippets from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+(LSR). It is in the public domain.
+
+We would like to address many thanks to Sebastiano Vigna for maintaining
+LSR web site and database, and the University of Milano for hosting LSR.
+
+Please note that this document is not an exact subset of LSR: some
+snippets come from @file{input/new} LilyPond sources directory, and
+snippets from LSR are converted through @command{convert-ly}, as LSR is
+based on a stable LilyPond version, and this document is for version
+@value{version}.
+
+Snippets are grouped by tags; tags listed in the table of contents match
+a section of LilyPond notation manual.  Snippets may have several tags,
+and not all LSR tags may appear in this document.
+
+In the HTML version of this document, you can click on the file name
+or figure for each example to see the corresponding input file.
+
+@end titlepage
+
+@iftex
+@contents
+@end iftex
+
+@ifnottex
+@node Top
+@top LilyPond examples
+
+This document shows a selected set of LilyPond snippets from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+(LSR). It is in the public domain.
+
+Please note that it is not an exact subset of LSR: some snippets come
+from @file{input/new} LilyPond sources directory, and snippets from LSR
+are converted through @command{convert-ly}, as LSR is based on a stable
+LilyPond version, and this document is for version @value{version}.
+
+Snippets are grouped by tags; tags listed in the table of contents match
+a section of LilyPond notation manual.  Snippets may have several tags,
+and not all LSR tags may appear in this document.
+
+In the HTML version of this document, you can click on the file name
+or figure for each example to see the corresponding input file.
+@end ifnottex
+
+@c maybe generate/update @menu and @includes automatically? --jm
+@menu
+Musical notation
+* Pitches::
+* Rhythms::
+* Expressive marks::
+* Repeats::
+* Simultaneous notes::
+* Staff notation::
+* Editorial and educational use::
+* Text::
+
+Specialist notation
+* Vocal music::
+* Chords::
+* Piano::
+* Percussion::
+* Guitar::
+* Strings::
+@c * Bagpipes::
+* Ancient notation::
+
+Other collections
+* Contexts and engravers::
+* Tweaks and overrides::
+* Paper and layout::
+* Titles::
+* Spacing::
+* MIDI::
+* Templates::
+@end menu
+
+
+@c Please take care of naming every .itely
+@c with an existing tag name.
+
+@include pitches.itely
+@include rhythms.itely
+@include expressive-marks.itely
+@include repeats.itely
+@include simultaneous-notes.itely
+@include staff-notation.itely
+@include editorial-and-educational-use.itely
+@include text.itely
+
+@include vocal-music.itely
+@include chords.itely
+@include piano-music.itely
+@include percussion.itely
+@include guitar.itely
+@include strings.itely
+@c ignore empty section
+@c @include bagpipes.itely
+@include ancient-notation.itely
+
+@include contexts-and-engravers.itely
+@include tweaks-and-overrides.itely
+@include paper-and-layout.itely
+@include titles.itely
+@include spacing.itely
+@include midi.itely
+@include template.itely
+
+@bye
diff --git a/input/lsr/snippets.tely b/input/lsr/snippets.tely
deleted file mode 100644 (file)
index 5059eb7..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
-@setfilename snippets.info
-@settitle LilyPond snippets
-@documentencoding UTF-8
-@documentlanguage en
-
-@iftex
-@afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
-@finalout
-
-@titlepage
-@title LilyPond
-@subtitle The music typesetter
-@titlefont{Snippets}
-@author LilyPond Snippet Repository contributors
-
-@vskip 20pt
-
-This document shows a selected set of LilyPond snippets from the
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
-(LSR). It is in the public domain.
-
-We would like to address many thanks to Sebastiano Vigna for maintaining
-LSR web site and database, and the University of Milano for hosting LSR.
-
-Please note that this document is not an exact subset of LSR: some
-snippets come from @file{input/new} LilyPond sources directory, and
-snippets from LSR are converted through @command{convert-ly}, as LSR is
-based on a stable LilyPond version, and this document may be for a newer
-version (see below).
-
-Snippets are grouped by tags; tags listed in the table of contents match
-a section of LilyPond notation manual.  Snippets may have several tags,
-and not all LSR tags may appear in this document.
-
-In the HTML version of this document, you can click on the file name
-or figure for each example to see the corresponding input file.
-
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-1
-    \mark #(ly:export (string-append
-      "This document is for LilyPond version " (lilypond-version) "."))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-@end titlepage
-
-@iftex
-@contents
-@end iftex
-
-@ifnottex
-@node Top
-@top LilyPond examples
-
-This document shows a selected set of LilyPond snippets from the
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
-(LSR). It is in the public domain.
-
-Please note that it is not an exact subset of LSR: some snippets come
-from @file{input/new} LilyPond sources directory, and snippets from LSR
-are converted through @command{convert-ly}, as LSR is based on a stable
-LilyPond version, and this document may be for a newer version (see
-below).
-
-Snippets are grouped by tags; tags listed in the table of contents match
-a section of LilyPond notation manual.  Snippets may have several tags,
-and not all LSR tags may appear in this document.
-
-In the HTML version of this document, you can click on the file name
-or figure for each example to see the corresponding input file.
-@end ifnottex
-
-@c maybe generate/update @menu and @includes automatically? --jm
-@menu
-Musical notation
-* Pitches::
-* Rhythms::
-* Expressive marks::
-* Repeats::
-* Simultaneous notes::
-* Staff notation::
-* Editorial and educational use::
-* Text::
-
-Specialist notation
-* Vocal music::
-* Chords::
-* Piano::
-* Percussion::
-* Guitar::
-* Strings::
-@c * Bagpipes::
-* Ancient notation::
-
-Other collections
-* Contexts and engravers::
-* Tweaks and overrides::
-* Paper and layout::
-* Titles::
-* Spacing::
-* MIDI::
-* Templates::
-@end menu
-
-
-@c Please take care of naming every .itely
-@c with an existing tag name.
-
-@include pitches.itely
-@include rhythms.itely
-@include expressive-marks.itely
-@include repeats.itely
-@include simultaneous-notes.itely
-@include staff-notation.itely
-@include editorial-and-educational-use.itely
-@include text.itely
-
-@include vocal-music.itely
-@include chords.itely
-@include piano-music.itely
-@include percussion.itely
-@include guitar.itely
-@include strings.itely
-@c ignore empty section
-@c @include bagpipes.itely
-@include ancient-notation.itely
-
-@include contexts-and-engravers.itely
-@include tweaks-and-overrides.itely
-@include paper-and-layout.itely
-@include titles.itely
-@include spacing.itely
-@include midi.itely
-@include template.itely
-
-@bye
index bed4120fb90384d9e6900e0870a3c5eebdfec020..1f4865d0099ae368e4bb01800f97e44921778dc2 100644 (file)
@@ -1,6 +1,3 @@
-# cancel the rule that generates .n[o lilypond images t]exi files
-$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES)
-
 $(outdir)/%/index.html: $(outdir)/%.texi
        mkdir -p $(dir $@)
        -$(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
@@ -14,7 +11,7 @@ $(outdir)/%.pdftexi: $(outdir)/%.texi doc-po
 $(outdir)/%.pdf: $(outdir)/%.pdftexi
        cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
 
-$(OUT_TEXI_FILES): $(ITELY_FILES)
+$(OUT_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES)
 
 $(DEEP_HTML_FILES) $(PDF_FILES): $(ITELY_FILES) $(ITEXI_FILES)
 
index 09a6face3e5904bd2b3c40f4047af871c026a1e4..4f4750c9a72d6c666be1913889b5e0ad7b339222 100644 (file)
@@ -6,13 +6,5 @@ local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES) doc-po $(BIG_PAGE_HTML_FILES)
        find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf)
        find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
 
-local-WWW-clean: deep-WWW-clean
-
-deep-WWW-clean:
-       rm -rf $(outdir)/lilypond*
-
-web-clean: clean
-       $(MAKE) out=www local-WWW-clean
-
 doc-po:
        $(MAKE) -C $(depth)/Documentation/po out=www messages
index 41962e0c594c5e3880aa5d2548fd8fe230de83c6..eb37ee3093e8f2747d5c7f03fae9b3799bcc5fb6 100644 (file)
@@ -23,8 +23,7 @@ BRACES = a b c d e f g h i
 
 OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf) \
            $(outdir)/aybabtu.otf
-PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) \
-            $(STAFF_SIZES:%=$(outdir)/emmentaler-%.dep)
+PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe)
 OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \
             $(BRACES:%=$(outdir)/feta-braces-%.otf-table)
 FETA_FONTS = $(FETA_MF_FILES:.mf=)
@@ -174,12 +173,11 @@ tree-regen:
 $(outdir)/%.lisp \
 $(outdir)/%.otf-gtable \
 $(outdir)/%.enc \
-$(outdir)/%.dep: $(outdir)/%.log
+$(outdir)/%.pe: $(outdir)/%.log
        $(PYTHON) $(buildscript-dir)/mf-to-table.py \
                  --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
                  --lisp=$(outdir)/$(<F:.log=.lisp) \
                  --outdir=$(outdir) \
-                 --dep $(outdir)/$(<F:.log=.dep) \
                  --enc $(outdir)/$(<F:.log=.enc) \
                  $<
 
index 8c29dc99cfc928de5dc8cc1052e8ecaef7ddb244..22ed07ad6072fac7c4d164ca80813fef6bc13c91 100644 (file)
@@ -390,7 +390,7 @@ conversions.append (((1,3,38), conv, '\musicalpitch { a b c } -> #\'(a b c)'))
 
 def conv (str):
     def replace (match):
-       return '\\key %s;' % string.lower (match.group (1))
+       return '\\key %s;' % match.group (1).lower ()
 
     str = re.sub ("\\\\key ([^;]+);",  replace, str)
     return str
@@ -619,7 +619,7 @@ def regularize_id (str):
         elif x not in string.letters:
             x = 'x'
         elif x in string.lowercase and lastx == '_':
-            x = string.upper (x)
+            x = x.upper ()
         s = s + x
         lastx = x
     return s
@@ -991,7 +991,7 @@ def conv(str):
            'set-point-and-click!'
            ]
 
-    origre = r'\b(%s)' % string.join (changed, '|')
+    origre = r'\b(%s)' % '|'.join (changed)
 
     str = re.sub (origre, r'ly:\1',str)
     str = re.sub ('set-point-and-click!', 'set-point-and-click', str)
@@ -1034,7 +1034,7 @@ def conv(str):
             'sfz',
             ]
 
-    origstr = string.join (kws, '|')
+    origstr = '|'.join (kws)
     str = re.sub (r'([^_^-])\\(%s)\b' % origstr, r'\1-\\\2', str)
     return str
 conversions.append (((1,7,6), conv, 'note\\script -> note-\script'))
@@ -1296,9 +1296,8 @@ def sub_chord (m):
 
     ## end of while <>
 
-    suffix = string.join (slur_strs, '') + string.join (pslur_strs,
-                                                       '') \
-            + string.join (dyns, '')
+    suffix = ''.join (slur_strs) + ''.join (pslur_strs) \
+            + ''.join (dyns)
 
     return '@STARTCHORD@%s@ENDCHORD@%s%s' % (str , dur_str, suffix)
 
@@ -1651,7 +1650,7 @@ conversions.append (((1,9,8), conv, """dash-length -> dash-fraction"""))
 
 def conv (str):
     def func(match):
-       return "#'font-size = #%d" % (2*string.atoi (match.group (1)))
+       return "#'font-size = #%d" % (2*int (match.group (1)))
 
     str =re.sub (r"#'font-relative-size\s*=\s*#\+?([0-9-]+)", func, str)
     str =re.sub (r"#'font-family\s*=\s*#'ancient",
@@ -1711,8 +1710,8 @@ def conv (str):
 
     def sub_note (match):
        dur = ''
-       log = string.atoi (match.group (1))
-       dots = string.atoi (match.group (2))
+       log = int (match.group (1))
+       dots = int (match.group (2))
 
        if log >= 0:
            dur = '%d' % (1 << log)
index fa73a9961d0e0610b477464de47a32ef45492b16..ee9505f37f8eaa7c4c8094d11c538cdfd84f4d10 100644 (file)
@@ -3,7 +3,6 @@ import re
 import getopt
 import sys
 import os
-import string
 
 dsr_font_regex = re.compile ('%%DocumentSuppliedResources: font (.*)')
 begin_font_regex = re.compile ('%%BeginFont: (.*)')
@@ -66,7 +65,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename):
                in_font = 0
 
                if curr_font_name in extract_from_this:
-                   font_dict[curr_font_name] = string.join (curr_font, '')
+                   font_dict[curr_font_name] = ''.join (curr_font)
                    if verbose:
                        sys.stderr.write (_('Extracted %s')
                                          % curr_font_name + '\n')
@@ -79,7 +78,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename):
 
        if extract_from_this:
            sys.stderr.write ("Failed to extract %s from %s\n"
-                             % (string.join (extract_from_this, ', '), filename))
+                             % (', '.join (extract_from_this), filename))
 
 def write_extracted_fonts (output_file_name, font_dict):
     if verbose:
index cfa5e67d0a7b0de58428f76b3ea96efac1cecdc1..f9cbff2c60a84ee84a3ebeb772e6eacc720b9adc 100644 (file)
@@ -11,7 +11,6 @@ import glob
 import os
 import re
 import shutil
-import string
 import sys
 import optparse
 
@@ -185,7 +184,7 @@ def strip_extension (f, ext):
 
 def search_exe_path (name):
     p = os.environ['PATH']
-    exe_paths = string.split (p, ':')
+    exe_paths = p.split (':')
     for e in exe_paths:
        full = os.path.join (e, name)
        if os.path.exists (full):
index e5efca01d41271a7c472722ec56d63078751e55d..708214d3154fce87e7d8698328bdb95a15e761ca 100644 (file)
@@ -12,7 +12,6 @@
 
 import os
 import sys
-import string
 import re
 
 """
@@ -92,19 +91,26 @@ def get_option_parser ():
     
     p.add_option ('-e', '--edit', help=_ ("edit in place"),
               action='store_true')
+
     p.add_option ('-n', '--no-version',
               help=_ ("do not add \\version command if missing"),
               action='store_true',
               dest='skip_version_add',
               default=False)
+
+    p.add_option ('-c', '--current-version',
+              help=_ ("force updating \\version number to %s") % program_version,
+              action='store_true',
+              dest='force_current_version',
+              default=False)
     
     p.add_option ("-s", '--show-rules',
-              help=_ ("show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"),
+              help=_ ("show rules [default: --from=0, --to=%s]") % program_version,
               dest='show_rules',
               action='store_true', default=False)
     
     p.add_option ('-t', '--to',
-              help=_ ("convert to VERSION [default: @TOPLEVEL_VERSION@]"),
+              help=_ ("convert to VERSION [default: %s]") % program_version,
               metavar=_ ('VERSION'),
               action='store',
               dest="to_version",
@@ -120,10 +126,10 @@ def get_option_parser ():
 
 
 def str_to_tuple (s):
-    return tuple (map (int, string.split (s, '.')))
+    return tuple ([int(n) for n in s.split ('.')])
 
 def tup_to_str (t):
-    return string.join (map (lambda x: '%s' % x, list (t)), '.')
+    return '.'.join (['%s' % x for x in t])
 
 def version_cmp (t1, t2):
     for x in [0, 1, 2]:
@@ -173,9 +179,8 @@ string."""
 
 
 
-def guess_lilypond_version (filename):
-    s = open (filename).read ()
-    m = lilypond_version_re.search (s)
+def guess_lilypond_version (input):
+    m = lilypond_version_re.search (input)
     if m:
         return m.group (1)
     else:
@@ -191,12 +196,19 @@ def do_one_file (infile_name):
     ly.stderr_write (_ ("Processing `%s\'... ") % infile_name)
     sys.stderr.write ('\n')
 
+    if infile_name:
+        infile = open (infile_name, 'r')
+        input = infile.read ()
+        infile.close ()
+    else:
+        input = sys.stdin.read ()
+
     from_version = None
     to_version = None
     if global_options.from_version:
         from_version = global_options.from_version
     else:
-        guess = guess_lilypond_version (infile_name)
+        guess = guess_lilypond_version (input)
         if not guess:
             raise UnknownVersion ()
         from_version = str_to_tuple (guess)
@@ -207,16 +219,12 @@ def do_one_file (infile_name):
         to_version = latest_version ()
 
 
-    if infile_name:
-        infile = open (infile_name, 'r')
-    else:
-        infile = sys.stdin
-
-
-    (last, result) = do_conversion (infile.read (), from_version, to_version)
-    infile.close ()
+    (last, result) = do_conversion (input, from_version, to_version)
 
     if last:
+        if global_options.force_current_version and last == to_version:
+            last = str_to_tuple (program_version)
+
         newversion = r'\version "%s"' % tup_to_str (last)
         if lilypond_version_re.search (result):
             result = re.sub (lilypond_version_re_str,
index dee8223de6e66d51cdd85f2b6268f963cc2ddba4..7fe8210a9d6b312fb30074aba22db21e17c7e52e 100644 (file)
@@ -197,6 +197,7 @@ default_ly_options = { 'alt': "[image of music]" }
 #
 # Is this pythonic?  Personally, I find this rather #define-nesque. --hwn
 #
+ADDVERSION = 'addversion'
 AFTER = 'after'
 BEFORE = 'before'
 DOCBOOK = 'docbook'
@@ -514,7 +515,8 @@ simple_options = [
     VERBATIM,
     FONTLOAD,
     FILENAME,
-    ALT
+    ALT,
+    ADDVERSION
 ]
 
 ly_options = {
@@ -679,9 +681,14 @@ output = {
 ''',
 
         VERBATIM: r'''@exampleindent 0
-@verbatim
+%(version)s@verbatim
 %(verb)s@end verbatim
 ''',
+
+        ADDVERSION: r'''@example
+\version @w{"@version{}"}
+@end example
+'''
     },
 }
 
@@ -1244,20 +1251,13 @@ class Lilypond_snippet (Snippet):
         str = ''
         if PRINTFILENAME in self.option_dict:
             base = self.basename ()
-            filename = self.substring ('filename')
-            str = output[global_options.format][PRINTFILENAME] % vars ()
+            filename = os.path.basename (self.substring ('filename'))
+            str = output[format][PRINTFILENAME] % vars ()
 
         return str
 
     def output_texinfo (self):
-        str = ''
-        if self.output_print_filename (TEXINFO):
-            str += ('@html\n'
-                + self.output_print_filename (HTML)
-                + '\n@end html\n')
-            str += ('@tex\n'
-                + self.output_print_filename (LATEX)
-                + '\n@end tex\n')
+        str = self.output_print_filename (TEXINFO)
         base = self.basename ()
         if TEXIDOC in self.option_dict:
             texidoc = base + '.texidoc'
@@ -1266,10 +1266,11 @@ class Lilypond_snippet (Snippet):
 
         substr = ''
         if VERBATIM in self.option_dict:
+            version = ''
+            if ADDVERSION in self.option_dict:
+                version = output[TEXINFO][ADDVERSION]
             verb = self.verb_ly ()
-            substr += output[TEXINFO][VERBATIM] % vars ()
-            if not QUOTE in self.option_dict:
-                substr = output[TEXINFO][NOQUOTE] % {'str':substr}
+            substr = output[TEXINFO][VERBATIM] % vars ()
         substr += self.output_info ()
         if LILYQUOTE in self.option_dict:
             substr = output[TEXINFO][QUOTE] % {'str':substr}
index 875a5e929cbfc83bf80d902aacf839bb46330fe9..488b81f24bac9423cce410b380e337f505f694e7 100644 (file)
@@ -11,8 +11,6 @@ check-info: texinfo-all-menus-update
 ## info stuff
 local-install: install-info
 local-uninstall: uninstall-info
-local-install-info:
-local-uninstall-info:
 install-info: local-install-info
 uninstall-info: local-uninstall-info
 
@@ -22,6 +20,79 @@ install-info: $(INFO_FILES)
 uninstall-info:
        $(INFO_INSTALL_COMMAND) local-uninstall
 
+ifeq ($(INFO_FILES),)
+local-install-info:
+local-uninstall-info:
+
+else # $(INFO_FILES) non empty
+# There are two modes for info: with and without images.
+ifeq ($(out),www)
+
+# This builds all .info targets with images, in out-www.
+# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
+
+local-install-info: info
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
+## Can not have absolute symlinks because some binary packages build schemes
+## install files in nonstandard root.  Best we can do is to notify the
+## builder or packager.
+       @echo
+       @echo "***************************************************************"
+       @echo "Please add or update the LilyPond direntries, do"
+       @echo
+       @echo "    install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info"
+       @echo
+       @echo "For images in the INFO docs to work, do: "
+       @echo
+       @echo "    (cd $(infodir) && ln -sfT ../doc/lilypond/html/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR))"
+       @echo "or add something like that to the postinstall script."
+       @echo
+else # installing directly into standard /usr/...
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+       $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
+       install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
+       cd $(infodir) && ln -sfT $(webdir)/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR)
+endif # installing directly into standard /usr/...
+
+local-uninstall-WWW:
+       rm -f $(infodir)/$(INFO_IMAGES_DIR)
+
+else # out!=www
+
+local-install-info: info
+       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
+## Can not have absolute symlinks because some binary packages build schemes
+## install files in nonstandard root.  Best we can do is to notify the
+## builder or packager.
+       @echo
+       @echo "***************************************************************"
+       @echo "Please add or update the LilyPond direntries, do"
+       @echo
+       @echo "    install-info --info-dir=$(infodir) out/$(MAIN_INFO_DOC).info"
+       @echo
+       @echo "For images in the INFO docs to work, do"
+       @echo
+       @echo "    make out=www install-info "
+       @echo
+       @echo "and read the extra instructions."
+       @echo
+else # installing directly into standard /usr/...
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+       $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
+       install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
+       @echo
+       @echo "***************************************************************"
+       @echo "For images in the INFO docs to work, do"
+       @echo
+       @echo "    make out=www install-info "
+       @echo
+endif # installing into standard /usr/* root# installing into /usr/...
+
+endif # out!=www
+
+endif # $(INFO_FILES) non empty
 
 TEXINFO_ALL_MENUS_UPDATE_EL ='\
   (let ((error nil)\
index b9642e8aca4d89b0ab5beb499be805c4ead2d962..bd620ab56cf4348495b62003b11a3cb40c5bd641 100644 (file)
@@ -10,6 +10,7 @@ OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt))
 TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
 GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@))  --version $(TOPLEVEL_VERSION) $< > $@
 
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
 TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
 
 MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)'
index c49e670b02db360f171da3efcfb64ee430086c0a..736cc48e2633051e5f8455ef47a1cf480ae439a8 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2007-09-03.05}
+\def\texinfoversion{2008-02-28.18}
 %
-% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007 Free Software Foundation, Inc.
+% 2007, 2008 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -97,6 +97,7 @@
 \let\ptexslash=\/
 \let\ptexstar=\*
 \let\ptext=\t
+\let\ptextop=\top
 
 % If this character appears in an error message or help string, it
 % starts a new line in the output.
@@ -916,15 +917,18 @@ where each line of input produces a line of output.}
   \temp
 }
 
-% @include file    insert text of that file as input.
+% @include FILE -- \input text of FILE.
 %
 \def\include{\parseargusing\filenamecatcodes\includezzz}
 \def\includezzz#1{%
   \pushthisfilestack
   \def\thisfile{#1}%
   {%
-    \makevalueexpandable
-    \def\temp{\input #1 }%
+    \makevalueexpandable  % we want to expand any @value in FILE.  
+    \edef\temp{\noexpand\input #1 }%
+    %
+    % This trickery is to read FILE outside of a group, in case it makes
+    % definitions, etc.
     \expandafter
   }\temp
   \popthisfilestack
@@ -1642,11 +1646,17 @@ output) for that.)}
   }%
 }
 
-%
 % PDF CMaps.  See also LaTeX's t1.cmap.
 %
-% \cmapOT1
-\ifpdf
+% do nothing with this by default.
+\expandafter\let\csname cmapOT1\endcsname\gobble
+\expandafter\let\csname cmapOT1IT\endcsname\gobble
+\expandafter\let\csname cmapOT1TT\endcsname\gobble
+
+% if we are producing pdf, and we have \pdffontattr, then define cmaps.
+% (\pdffontattr was introduced many years ago, but people still run
+% older pdftex's; it's easy to conditionalize, so we do.)
+\ifpdf \ifx\pdffontattr\undefined \else
   \begingroup
     \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
     \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1894,11 +1904,7 @@ end
   \expandafter\edef\csname cmapOT1TT\endcsname#1{%
     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
   }%
-\else
-  \expandafter\let\csname cmapOT1\endcsname\gobble
-  \expandafter\let\csname cmapOT1IT\endcsname\gobble
-  \expandafter\let\csname cmapOT1TT\endcsname\gobble
-\fi
+\fi\fi
 
 
 % Set the font macro #1 to the font named #2, adding on the
@@ -1912,7 +1918,7 @@ end
 }
 % This is what gets called when #5 of \setfont is empty.
 \let\cmap\gobble
-
+% emacs-page end of cmaps
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -2558,6 +2564,13 @@ end
 \let\env=\code
 \let\command=\code
 
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow   (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
 % @uref (abbreviation for `urlref') takes an optional (comma-separated)
 % second argument specifying the text to display and an optional third
 % arg as text to display instead of (rather than in addition to) the url
@@ -2765,6 +2778,7 @@ end
 \chardef\quoteleft=`\`
 \chardef\quoteright=`\'
 
+
 \message{page headings,}
 
 \newskip\titlepagetopglue \titlepagetopglue = 1.5in
@@ -5649,14 +5663,15 @@ end
 
 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
 %
-% Since these characters are used in examples, it should be an even number of
+% Since these characters are used in examples, they should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
 %
 \def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
 \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
 
 % The @error{} command.
 % Adapted from the TeXbook's \boxit.
@@ -5714,6 +5729,7 @@ end
   \let\/=\ptexslash
   \let\*=\ptexstar
   \let\t=\ptext
+  \expandafter \let\csname top\endcsname=\ptextop  % outer
   \let\frenchspacing=\plainfrenchspacing
   %
   \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%