From: Joe Neeman Date: Sat, 1 Mar 2008 02:14:34 +0000 (+0200) Subject: Merge branch 'original' into HEAD X-Git-Tag: release/2.11.42-1~7^2~15 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=024e51d1cb0e21d211baf91ad0774bc766dff687;hp=1c50972e1df0d11ce36f0f0ad04b0b860f10f910;p=lilypond.git Merge branch 'original' into HEAD --- diff --git a/.gitignore b/.gitignore index 78ddd2aade..014cbcf08c 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ pats tags test-output-distance Documentation/user/lilypond +input/lsr/lilypond-snippets diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index cde95c500c..8f7228053e 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -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 diff --git a/Documentation/de/user/ancient.itely b/Documentation/de/user/ancient.itely index 485440b494..734aecccc4 100644 --- a/Documentation/de/user/ancient.itely +++ b/Documentation/de/user/ancient.itely @@ -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 diff --git a/Documentation/de/user/chords.itely b/Documentation/de/user/chords.itely index d36ffe221d..1997cb79b5 100644 --- a/Documentation/de/user/chords.itely +++ b/Documentation/de/user/chords.itely @@ -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 diff --git a/Documentation/de/user/editorial.itely b/Documentation/de/user/editorial.itely index add8420e28..71155158e1 100644 --- a/Documentation/de/user/editorial.itely +++ b/Documentation/de/user/editorial.itely @@ -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), diff --git a/Documentation/de/user/expressive.itely b/Documentation/de/user/expressive.itely index d9b1d13a5e..c6c7260801 100644 --- a/Documentation/de/user/expressive.itely +++ b/Documentation/de/user/expressive.itely @@ -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 diff --git a/Documentation/de/user/guitar.itely b/Documentation/de/user/guitar.itely index 550570883c..782dbb1563 100644 --- a/Documentation/de/user/guitar.itely +++ b/Documentation/de/user/guitar.itely @@ -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. diff --git a/Documentation/de/user/macros.itexi b/Documentation/de/user/macros.itexi index 111f35f97d..fb3329078a 100644 --- a/Documentation/de/user/macros.itexi +++ b/Documentation/de/user/macros.itexi @@ -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 -- @@ -15,87 +20,77 @@ @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 -‚\TEXT\‘ -@end html +@macro smallspace +@sp 1 @end macro -@macro qq{TEXT} -@html -„\TEXT\“ -@end html -@end macro -@end ifhtml +@c **** Displaying images not generated by lilypond-book -@ifdocbook -@macro q{TEXT} -@html -‚\TEXT\‘ -@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 -„\TEXT\“ -@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 @@ -108,13 +103,13 @@ @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 @@ -130,6 +125,7 @@ @c **** Links and references **** +@c obsolete @c usage: @lsr{ancient,custodes.ly} @macro lsr{DIR,TEXT} @ifhtml @@ -140,6 +136,7 @@ @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\}/} @@ -162,14 +159,6 @@ @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} @@ -308,18 +297,15 @@ @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 diff --git a/Documentation/de/user/percussion.itely b/Documentation/de/user/percussion.itely index 4dbdeb598b..feabfc95a3 100644 --- a/Documentation/de/user/percussion.itely +++ b/Documentation/de/user/percussion.itely @@ -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. diff --git a/Documentation/de/user/piano.itely b/Documentation/de/user/piano.itely index f2bc655a4d..d9730d14d3 100644 --- a/Documentation/de/user/piano.itely +++ b/Documentation/de/user/piano.itely @@ -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}, diff --git a/Documentation/de/user/pitches.itely b/Documentation/de/user/pitches.itely index 0eef30ac6b..893603b32e 100644 --- a/Documentation/de/user/pitches.itely +++ b/Documentation/de/user/pitches.itely @@ -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 diff --git a/Documentation/de/user/repeats.itely b/Documentation/de/user/repeats.itely index 7a7e1e3d2a..fef54d5b1c 100644 --- a/Documentation/de/user/repeats.itely +++ b/Documentation/de/user/repeats.itely @@ -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. diff --git a/Documentation/de/user/rhythms.itely b/Documentation/de/user/rhythms.itely index 969f84eb05..eb109d8cff 100644 --- a/Documentation/de/user/rhythms.itely +++ b/Documentation/de/user/rhythms.itely @@ -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 diff --git a/Documentation/de/user/simultaneous.itely b/Documentation/de/user/simultaneous.itely index f5c19c8dab..067d58534d 100644 --- a/Documentation/de/user/simultaneous.itely +++ b/Documentation/de/user/simultaneous.itely @@ -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 diff --git a/Documentation/es/user/editorial.itely b/Documentation/es/user/editorial.itely index cc62b270ce..6d167e4111 100644 --- a/Documentation/es/user/editorial.itely +++ b/Documentation/es/user/editorial.itely @@ -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 @@ -33,13 +32,13 @@ @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}. + + diff --git a/Documentation/es/user/expressive.itely b/Documentation/es/user/expressive.itely index 99af9deded..6181779c02 100644 --- a/Documentation/es/user/expressive.itely +++ b/Documentation/es/user/expressive.itely @@ -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:: @@ -21,14 +24,14 @@ @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' ~ -@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] - -@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 \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]~ } 2 -\repeat tremolo 8 { c32~ c'~ } 1 -e8~ 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] -2~ | -\override TieColumn #'tie-configuration = - #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) -~ | -@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] -\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}. diff --git a/Documentation/es/user/lilypond-learning.tely b/Documentation/es/user/lilypond-learning.tely index bfb081a744..fb2f1d6f95 100644 --- a/Documentation/es/user/lilypond-learning.tely +++ b/Documentation/es/user/lilypond-learning.tely @@ -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 diff --git a/Documentation/es/user/lilypond.tely b/Documentation/es/user/lilypond.tely index c76de7ac1b..8486357d6b 100644 --- a/Documentation/es/user/lilypond.tely +++ b/Documentation/es/user/lilypond.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f + Translation of GIT committish: ef9e465a87b15c4fab12e08337a40b9afe1d3766 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -40,16 +40,21 @@ Distributions will want to install lilypond.info in postinstall, doing: @c -@c Info files are installed in subdirectories to allow images to be present. -@c -@dircategory LilyPond +@c Info files are no longer installed in a subdirectory, images are +@c expected to be found in lilypond/ subdirectory. +@dircategory GNU LilyPond: el tipografiador de música. @direntry -* LilyPond: (lilypond/lilypond). El tipografiador de música de GNU. -* abc2ly: (lilypond/lilypond-program)Invocar abc2ly. Importar archivos de ABC. -* convert-ly: (lilypond/lilypond-program)Invocar convert-ly. Versiones de LilyPond antiguas. -* etf2ly: (lilypond/lilypond-program)Invocar etf2ly. Importar archivos de Finale. -* lilypond-book: (lilypond/lilypond-program)LilyPond-book. Integrar texto y música. -* midi2ly: (lilypond/lilypond-program)Invocar midi2ly. Importar archivos MIDI. +* LilyPond Learning Manual: (lilypond-learning). Comience por aquí. +* Music Glossary: (music-glossary). Para usuarios de habla no inglesa. +* LilyPond: (lilypond). Referencia de la notación con LilyPond. +* LilyPond Internals Reference: (lilypond-internals). Definiciones para el trucaje. +* LilyPond Application Usage: (lilypond-program). Instalar y ejecutar las aplicaciones. +* abc2ly: (lilypond-program)Invocar abc2ly. Importar archivos de ABC. +* convert-ly: (lilypond-program)Actualizar archivos mediante convert-ly. Versiones de LilyPond antiguas. +* etf2ly: (lilypond-program)Invocar etf2ly. Importar archivos de Finale. +* lilypond-book: (lilypond-program)LilyPond-book. Integrar texto y música. +* midi2ly: (lilypond-program)Invocar midi2ly. Importar archivos MIDI. +* musicxml2ly: (lilypond-program)Invocar musicxml2ly. Importar MusicXML. @end direntry @c don't remove this comment. @@ -183,7 +188,7 @@ Free Documentation License''. @top GNU LilyPond --- El tipografiador de música @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Éste es el manual del usuario para GNU LilyPond versión @version{}. +Éste es el manual del usuario del programa GNU LilyPond versión @version{}. @cindex web, sitio @cindex URL @@ -196,20 +201,18 @@ de la presente documentación y de otras. @c TRANSLATE ME @menu -* Musical notation:: Musical notation. -* Specialist notation:: Notation which is only used for -specicific purposes. -* Changing defaults:: Ajuste fino de la salida. +* Musical notation:: Notación musical. +* Specialist notation:: Notación especializada. +* Input syntax:: General information about lilypond input files. * Non-musical notation:: Salida que no es notación musical. * Spacing issues:: Presentación de la salida sobre papel. +* Changing defaults:: Ajuste fino de la salida. * Interfaces for programmers:: Utilización por expertos. Apéndices * Literature list:: Obras de referencia sobre notación musical. -* Scheme tutorial:: Programación dentro de LilyPond. * Notation manual tables:: Tablas y cuadros. -* Templates:: Plantillas ya preparadas. * Cheat sheet:: Resumen de la sintaxis de LilyPond. * GNU Free Documentation License:: Licencia de este documento. * LilyPond command index:: @@ -223,16 +226,15 @@ Apéndices @include notation.itely @include specialist.itely -@include changing-defaults.itely +@include input.itely @include non-music.itely @include spacing.itely -@include programming-interface.itely +@include changing-defaults.itely +@include programming-interface.itely @include literature.itely -@include scheme-tutorial.itely @include notation-appendices.itely -@include templates.itely @include cheatsheet.itely @include fdl.itexi diff --git a/Documentation/es/user/pitches.itely b/Documentation/es/user/pitches.itely index 71055adf2a..0ac1e2a566 100644 --- a/Documentation/es/user/pitches.itely +++ b/Documentation/es/user/pitches.itely @@ -1,82 +1,168 @@ @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 + + +} @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 - - -} -@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 +@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 + diff --git a/Documentation/es/user/rhythms.itely b/Documentation/es/user/rhythms.itely index ee1ece7bec..1adff58ca0 100644 --- a/Documentation/es/user/rhythms.itely +++ b/Documentation/es/user/rhythms.itely @@ -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' ~ +@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] + +@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 2 ~ } +\alternative {{ 2. r4 } {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] +\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]~ } 2 +\repeat tremolo 8 { c32~ c'~ } 1 +e8~ 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] +2~ | +\override TieColumn #'tie-configuration = + #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) +~ | +@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 diff --git a/Documentation/fr/user/fundamental.itely b/Documentation/fr/user/fundamental.itely index 764d7e679f..17a6cdf3e6 100644 --- a/Documentation/fr/user/fundamental.itely +++ b/Documentation/fr/user/fundamental.itely @@ -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 diff --git a/Documentation/fr/user/lilypond-learning.tely b/Documentation/fr/user/lilypond-learning.tely index 2068b889a3..646db44a20 100644 --- a/Documentation/fr/user/lilypond-learning.tely +++ b/Documentation/fr/user/lilypond-learning.tely @@ -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 diff --git a/Documentation/fr/user/lilypond-program.tely b/Documentation/fr/user/lilypond-program.tely index b88b8fccfa..1db7f1862c 100644 --- a/Documentation/fr/user/lilypond-program.tely +++ b/Documentation/fr/user/lilypond-program.tely @@ -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 diff --git a/Documentation/fr/user/lilypond.tely b/Documentation/fr/user/lilypond.tely index 7fba0e33a0..98a082aedc 100644 --- a/Documentation/fr/user/lilypond.tely +++ b/Documentation/fr/user/lilypond.tely @@ -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 diff --git a/Documentation/fr/user/macros.itexi b/Documentation/fr/user/macros.itexi index 52c0c0d894..9fd2bcce9c 100644 --- a/Documentation/fr/user/macros.itexi +++ b/Documentation/fr/user/macros.itexi @@ -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 ***** @@ -173,6 +177,7 @@ @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 @@ -183,6 +188,7 @@ @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\}/} @@ -205,14 +211,6 @@ @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} diff --git a/Documentation/fr/user/tutorial.itely b/Documentation/fr/user/tutorial.itely index e1644f0d08..4d7bfa6134 100644 --- a/Documentation/fr/user/tutorial.itely +++ b/Documentation/fr/user/tutorial.itely @@ -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 diff --git a/Documentation/fr/user/working.itely b/Documentation/fr/user/working.itely index ae0b394095..d96c0985b0 100644 --- a/Documentation/fr/user/working.itely +++ b/Documentation/fr/user/working.itely @@ -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, diff --git a/Documentation/index.html.in b/Documentation/index.html.in index adc9705778..82f04b82b9 100644 --- a/Documentation/index.html.in +++ b/Documentation/index.html.in @@ -101,9 +101,9 @@ href="user/lilypond-program/index.html">Application Usage (AU) in PDF)
(how to install and run the program) -
  • Snippets -(in one big page, -in PDF) +
  • Snippets +(in one big page, +in PDF)
    (Short tricks, tips, and examples) diff --git a/Documentation/translations.html.in b/Documentation/translations.html.in new file mode 100644 index 0000000000..f85c4e553c --- /dev/null +++ b/Documentation/translations.html.in @@ -0,0 +1,702 @@ + + + + + LilyPond documentation translations status + + + + +

    Up to documentation index

    + +

    Documentation translations status

    + +

    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. +

    + +

    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. +

    + +

    Last updated Tue Feb 26 15:43:29 UTC 2008 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- learning manual frdees
    Section titles
    (406)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + partially up-to-date (93 %)
    +
    Preface
    (411)
    Valentin Villenave
    + Ludovic Sardain
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + up to date
    +
    1 Introduction
    (3198)
    Ludovic Sardain
    + John Mandereau
    + Jean-Charles Malahieude
    + Jean-Yves Baudais

    + translated
    + partially up-to-date (96 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (96 %)
    +
    Francisco Vila
    + translated
    +
    +
    2 Tutorial
    (5593)
    Nicolas Grandclaude
    + Ludovic Sardain
    + Gauvain Pocentek
    + Jean-Charles Malahieude
    + Valentin Villenave
    + John Mandereau

    + translated
    + partially up-to-date (23 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (95 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    3 Fundamental concepts
    (8626)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (39 %)
    + partially up-to-date (80 %)
    +
    not translated
    +
    not translated
    +
    4 Tweaking output
    (11862)
    Valentin Villenave
    + Nicolas Klutchnikoff
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (16 %)
    + partially up-to-date (9 %)
    +
    Till Rettig
    + partially translated (16 %)
    + partially up-to-date (9 %)
    +
    Francisco Vila
    + partially translated (16 %)
    +
    +
    5 Working on LilyPond projects
    (2985)
    Ludovic Sardain
    + Jean-Yves Baudais
    + Valentin Villenave
    + John Mandereau
    + Jean-Charles Malahieude

    + partially translated (79 %)
    + partially up-to-date (86 %)
    +
    Till Rettig
    + partially translated (79 %)
    + partially up-to-date (86 %)
    +
    Francisco Vila
    + partially translated (79 %)
    + up to date
    +
    A Templates
    (297)
    not translated
    +
    Till Rettig
    + translated
    + partially up-to-date (24 %)
    +
    Francisco Vila
    + translated
    +
    +
    B Scheme tutorial
    (960)
    not translated
    +
    Till Rettig
    + partially translated (91 %)
    + partially up-to-date (85 %)
    +
    not translated
    +
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- program usage frdees
    Section titles
    (384)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + partially up-to-date (93 %)
    +
    1 Install
    (1477)
    John Mandereau
    + Jean-Charles Malahieude
    + partially translated (11 %)
    + partially up-to-date (96 %)
    +
    not translated
    +
    Francisco Vila
    + partially translated (11 %)
    + partially up-to-date (88 %)
    +
    2 Setup
    (947)
    not translated
    +
    Till Rettig
    + translated
    + partially up-to-date (96 %)
    +
    Francisco Vila
    + translated
    +
    +
    3 Running LilyPond
    (2860)
    not translated
    +
    not translated
    +
    not translated
    +
    4 @command{lilypond-book}: Integrating text and music
    (2840)
    not translated
    +
    not translated
    +
    not translated
    +
    5 Converting from other formats
    (975)
    Jean-Charles Malahieude
    + translated
    + up to date
    +
    not translated
    +
    not translated
    +
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- The music typesetter frdees
    Section titles
    (549)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + partially up-to-date (86 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (86 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (96 %)
    +
    1 Musical notation
    (91)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + partially up-to-date (79 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (79 %)
    +
    1.1 Pitches
    (2808)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude

    + translated
    + partially up-to-date (13 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (13 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.2 Rhythms
    (7056)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude

    + translated
    + partially up-to-date (29 %)
    +
    Till Rettig
    + partially translated (82 %)
    + partially up-to-date (29 %)
    +
    Francisco Vila
    + partially translated (87 %)
    + up to date
    +
    1.3 Expressive marks
    (1602)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (29 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (29 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (83 %)
    +
    1.4 Repeats
    (717)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (39 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.5 Simultaneous notes
    (916)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    Till Rettig
    + partially translated (58 %)
    + partially up-to-date (39 %)
    +
    Francisco Vila
    + partially translated (58 %)
    + up to date
    +
    1.6 Staff notation
    (1637)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau
    + translated
    + partially up-to-date (41 %)
    +
    Till Rettig
    + partially translated (49 %)
    + partially up-to-date (41 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.7 Editorial annotations
    (866)
    Jean-Charles Malahieude
    + translated
    + partially up-to-date (9 %)
    +
    Till Rettig
    + partially translated (38 %)
    + partially up-to-date (9 %)
    +
    Francisco Vila
    + partially translated (95 %)
    + up to date
    +
    1.8 Text
    (2329)
    Jean-Charles Malahieude
    + Valentin Villenave
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    not translated
    +
    Francisco Vila
    + translated
    + up to date
    +
    2 Specialist notation
    (54)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + partially up-to-date (68 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (68 %)
    +
    2.1 Vocal music
    (2630)
    Valentin Villenave
    + Jean-Charles Malahieude
    + partially translated (89 %)
    + partially up-to-date (89 %)
    +
    not translated
    +
    Francisco Vila
    + partially translated (89 %)
    + up to date
    +
    2.2 Chords
    (1275)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (56 %)
    + partially up-to-date (87 %)
    +
    Till Rettig
    + partially translated (56 %)
    + partially up-to-date (87 %)
    +
    Francisco Vila
    + partially translated (56 %)
    + up to date
    +
    2.3 Piano music
    (702)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (89 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (89 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.4 Percussion
    (481)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (92 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (92 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.5 Guitar
    (826)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (91 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (91 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.6 Orchestral strings
    (66)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (61 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (61 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (61 %)
    +
    2.7 Bagpipes
    (242)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (80 %)
    +
    Till Rettig
    + partially translated (94 %)
    + partially up-to-date (80 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (80 %)
    +
    2.8 Ancient notation
    (4289)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (88 %)
    + partially up-to-date (94 %)
    +
    Till Rettig
    + partially translated (88 %)
    + partially up-to-date (94 %)
    +
    Francisco Vila
    + partially translated (88 %)
    + up to date
    +
    3 Input syntax
    (2448)
    Jean-Charles Malahieude
    + partially translated (7 %)
    + partially up-to-date (99 %)
    +
    not translated
    +
    not translated
    +
    4 Non-musical notation
    (2164)
    Valentin Villenave
    + Jean-Charles Malahieude
    + partially translated (4 %)
    + up to date
    +
    not translated
    +
    Francisco Vila
    + partially translated (3 %)
    + up to date
    +
    5 Spacing issues
    (8399)
    not translated
    +
    not translated
    +
    not translated
    +
    6 Changing defaults
    (5105)
    Valentin Villenave
    + Gilles Thibault
    + translated
    + partially up-to-date (77 %)
    +
    not translated
    +
    Francisco Vila
    + translated
    + up to date
    +
    7 Interfaces for programmers
    (4547)
    not translated
    +
    not translated
    +
    not translated
    +
    A Literature list
    (299)
    not translated
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + up to date
    +
    B Notation manual tables
    (935)
    Frédéric Chiasson
    + Jean-Charles Malahieude
    + partially translated (13 %)
    + partially up-to-date (93 %)
    +
    Till Rettig
    + partially translated (84 %)
    + partially up-to-date (90 %)
    +
    Francisco Vila
    + partially translated (97 %)
    +
    +
    C Cheat sheet
    (250)
    Valentin Villenave
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    +
    +
    +

    + + + diff --git a/Documentation/translations.template.html b/Documentation/translations.template.html deleted file mode 100644 index e0bbadc092..0000000000 --- a/Documentation/translations.template.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - LilyPond documentation translations status - - - - -

    Up to documentation index

    - -

    Documentation translations status

    - -

    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. -

    - -

    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. -

    - - - diff --git a/Documentation/translations.template.html.in b/Documentation/translations.template.html.in new file mode 100644 index 0000000000..e0bbadc092 --- /dev/null +++ b/Documentation/translations.template.html.in @@ -0,0 +1,40 @@ + + + + LilyPond documentation translations status + + + + +

    Up to documentation index

    + +

    Documentation translations status

    + +

    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. +

    + +

    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. +

    + + + diff --git a/Documentation/user/GNUmakefile b/Documentation/user/GNUmakefile index f94800161c..0a39a41a46 100644 --- a/Documentation/user/GNUmakefile +++ b/Documentation/user/GNUmakefile @@ -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 $(@) diff --git a/Documentation/user/README.txt b/Documentation/user/README.txt index 6b39a974a3..ae345e03d0 100644 --- a/Documentation/user/README.txt +++ b/Documentation/user/README.txt @@ -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! diff --git a/Documentation/user/editorial.itely b/Documentation/user/editorial.itely index 99f32bff59..674605cb26 100644 --- a/Documentation/user/editorial.itely +++ b/Documentation/user/editorial.itely @@ -248,7 +248,6 @@ gis a gis a \override NoteHead #'color = #(x11-color "LimeGreen") gis a - % this is deliberate nonsense; note that the stems remain black \override Stem #'color = #(x11-color 'Boggle) b2 cis @@ -306,33 +305,20 @@ for details. @cindex parentheses Objects may be parenthesized by prefixing @code{\parenthesize} to -the music event, +the music event. This only functions inside chords; to +parenthesize a single note it must be enclosed with @code{<>} as +if it is a chord. @lilypond[relative=2,fragment,verbatim,ragged-right] -< - c - \parenthesize d - g ->2-\parenthesize -. -d g -< - c, - \parenthesize fis -> +c2 < \parenthesize d> +<\parenthesize e> d @end lilypond -This only functions inside chords, to parenthesize a single note it -must be enclosed with @code{<>} as if it is a chord. - -@example -< \parenthesize NOTE> -@end example +Non-note objects may be parenthesized as well. @lilypond[relative=2,fragment,verbatim,ragged-right] -c4 -<\parenthesize d> -g -<\parenthesize d> +< c \parenthesize d g >2-\parenthesize -. d +g < c, \parenthesize fis > @end lilypond @seealso @@ -436,15 +422,19 @@ notes. \layout { \context { \Staff - \consists "Grid_point_engraver" %% sets of grid + \consists "Grid_point_engraver" + % sets up grids gridInterval = #(ly:make-moment 1 4) + % this sets the grid interval to 1 quarternote (crotchet) } } \new Score \with { \consists "Grid_line_span_engraver" - %% centers grid lines horizontally below note heads + %% centers grid lines horizontally below note heads by default + %the grid lines are aligned with the left side of the notehead \override NoteColumn #'X-offset = #-0.5 + % this moves them to the right half a staff space } \new ChoirStaff << @@ -455,8 +445,9 @@ notes. } } \new Staff { - %% centers grid lines vertically \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 ) + % by default the grid lines join the middle line of each staff, + % this moves them up one staff space \stemDown \clef bass \relative c { diff --git a/Documentation/user/fundamental.itely b/Documentation/user/fundamental.itely index 1e56b0e4f2..f9f9343f5f 100644 --- a/Documentation/user/fundamental.itely +++ b/Documentation/user/fundamental.itely @@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}. A basic example of a lilypond input file is @example -\version "2.11.38" +\version @w{"@version{}"} \score @{ @var{...compound music expression...} % all the music goes here! \header @{ @} @@ -1589,7 +1589,7 @@ engraver is removed from a context it can no longer produce its output. This is a crude way of modifying the output, but it can sometimes be useful. -@subsubsection Changing a single context +@subsubheading Changing a single context To remove an engraver from a single context we use the @code{\with} command placed immediately after the context creation @@ -1670,7 +1670,7 @@ the notes in all the voices on that staff: >> @end lilypond -@subsubsection Changing all contexts of the same type +@subsubheading Changing all contexts of the same type The examples above show how to remove or add engravers to individual contexts. It is also possible to remove or add @@ -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" diff --git a/Documentation/user/input.itely b/Documentation/user/input.itely index 5f2b84131a..9ad929c4af 100644 --- a/Documentation/user/input.itely +++ b/Documentation/user/input.itely @@ -16,6 +16,12 @@ rather than specific notation. FIXME: don't complain about anything in this chapter. It's still under heavy development. +FIXME: add comments +@verbatim +% %{ +@end verbatim +to 3.1. + @menu * Input files:: * Common syntax issues TODO name?:: @@ -542,6 +548,11 @@ Also mention \override Foo #'direction = #'DOWN. also mention the typical \fooDown, \fooNeutral predefined commands. +also mention that some directions are (without other tweaking) +always up or always down (like dynamics or fermata), while other +things can alternate between up or down based on the stem direction +(like slurs or accents). + @node Distances and measurements MAYBE MOVE @subsection Distances and measurements MAYBE MOVE diff --git a/Documentation/user/lilypond-book.itely b/Documentation/user/lilypond-book.itely index 86b274f9cf..cb796ef2af 100644 --- a/Documentation/user/lilypond-book.itely +++ b/Documentation/user/lilypond-book.itely @@ -105,9 +105,10 @@ directory as this file.) Save the code above to a file called @file{lilybook.lytex}, then in a terminal run +@c keep space after @version{} so TeX doesn't choke @example lilypond-book --output=out --pdf lilybook.lytex -@emph{lilypond-book (GNU LilyPond) 2.11.37} +@emph{lilypond-book (GNU LilyPond) @version{} } @emph{Reading lilybook.lytex...} @emph{..lots of stuff deleted..} @emph{Compiling lilybook.tex...} @@ -655,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 @@ -699,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 @@ -816,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} diff --git a/Documentation/user/lilypond-learning.tely b/Documentation/user/lilypond-learning.tely index c1e811970a..f700ed61c6 100644 --- a/Documentation/user/lilypond-learning.tely +++ b/Documentation/user/lilypond-learning.tely @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -23,7 +25,7 @@ @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Learning Manual of the LilyPond music engraving system @omftype program usage @omfcategory Applications|Publishing @omflanguage English @@ -64,21 +66,7 @@ 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 - +For LilyPond version @version{} @end titlepage @copying @@ -112,12 +100,8 @@ Free Documentation License''. @ifnottex @node Top @top GNU LilyPond --- learning manual -@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the learning manual for GNU LilyPond 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the learning manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -147,8 +131,6 @@ Appendices @contents -@include macros.itexi - @include preface.itely @include introduction.itely @include tutorial.itely diff --git a/Documentation/user/lilypond-program.tely b/Documentation/user/lilypond-program.tely index 6fa9f3900b..1ddba147e4 100644 --- a/Documentation/user/lilypond-program.tely +++ b/Documentation/user/lilypond-program.tely @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -23,7 +25,7 @@ @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Program Usage of the LilyPond music engraving system @omftype program usage @omfcategory Applications|Publishing @omflanguage English @@ -64,21 +66,7 @@ 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 - +For LilyPond version @version{} @end titlepage @copying @@ -114,10 +102,7 @@ Free Documentation License''. @top GNU LilyPond --- program usage @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the program usage manual for GNU LilyPond 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the program usage manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -143,8 +128,6 @@ Appendices @contents -@include macros.itexi - @include install.itely @include setup.itely @include running.itely diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 0631951f5a..59713a05d7 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -6,10 +6,12 @@ version that you are working on. See TRANSLATION for details. @end ignore @setfilename lilypond.info -@settitle GNU LilyPond user manual +@settitle GNU LilyPond User Manual @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -58,7 +60,7 @@ Distributions will want to install lilypond.info in postinstall, doing: @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Notation Reference of the LilyPond music engraving system @omftype user manual @omfcategory Applications|Publishing @omflanguage English @@ -82,7 +84,7 @@ This document is also available as a @titlepage @title LilyPond @subtitle The music typesetter -@titlefont{User manual} +@titlefont{Notation Reference} @author The LilyPond development team Copyright @copyright{} 1999--2007 by the authors @@ -98,21 +100,7 @@ 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 - +For LilyPond version @version{} @end titlepage @copying @@ -148,10 +136,7 @@ Free Documentation License''. @top GNU LilyPond --- The music typesetter @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -This is the user manual for GNU LilyPond 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the User Manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -187,8 +172,6 @@ Appendices @contents -@include macros.itexi - @include notation.itely @include specialist.itely diff --git a/Documentation/user/macros.itexi b/Documentation/user/macros.itexi index b0dafefd95..4ef3123bfd 100644 --- a/Documentation/user/macros.itexi +++ b/Documentation/user/macros.itexi @@ -7,8 +7,7 @@ @end ignore @macro version -@c @value{version} -2.11.41 +@value{version} @end macro @c ***** Displaying text ***** @@ -168,6 +167,10 @@ @ref{\TEXT\,,,lilypond-learning-big-page} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets-big-page} +@end macro + @end ifset @@ -198,6 +201,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifclear @end ifhtml @@ -231,6 +238,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifdocbook @@ -262,6 +273,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifinfo @@ -280,17 +295,18 @@ @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 diff --git a/Documentation/user/music-glossary.tely b/Documentation/user/music-glossary.tely index 45378ffd61..8bc021c3a3 100644 --- a/Documentation/user/music-glossary.tely +++ b/Documentation/user/music-glossary.tely @@ -50,9 +50,9 @@ Copyright @copyright{} 1999--2007 by the authors @c TODO: multiple omfcreators? @ignore -@omfcreator Christian Mondrup +@omfcreator Christian Mondrup, Kurt Kroon @omfdescription Glossary of musical terms with translations -@omftype user's guide +@omftype glossary @omfcategory Applications|Publishing @omflanguage English @end ignore diff --git a/Documentation/user/pitches.itely b/Documentation/user/pitches.itely index 0ec57da745..05b71b88db 100644 --- a/Documentation/user/pitches.itely +++ b/Documentation/user/pitches.itely @@ -1756,6 +1756,8 @@ ambitus. @node Note heads @subsection Note heads +This section suggests ways of altering note heads. + @menu * Special note heads:: * Easy notation note heads:: diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index b2f9977731..cf4c1a205d 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -153,7 +153,7 @@ rests from 128th to maxima (8 x whole) may be printed. @cindex triplets @funindex \times -Tuplets are made out of a music expression by multiplying all +Tuplets are made from a music expression by multiplying all the durations with a fraction: @example @@ -164,7 +164,7 @@ durations with a fraction: The duration of @var{musicexpr} will be multiplied by the fraction. The fraction's denominator will be printed over or under the notes, optionally with a bracket. The most common -tuplet is the triplet in which 3 notes have the length of 2, so +tuplet is the triplet in which 3 notes have the duration of 2, so the notes are 2/3 of their written length. @lilypond[quote,ragged-right,fragment,verbatim,relative=2] @@ -175,11 +175,9 @@ c4 c \times 2/3 {b4 a g} Tuplets may be nested: -@lilypond[fragment,ragged-right,verbatim,relative=2] -\relative c'' { - \autoBeamOff - c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 | -} +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] +\autoBeamOff +c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 | @end lilypond Modifying nested tuplets which begin at the same musical moment @@ -207,21 +205,6 @@ must be done with @code{\tweak}. @lilypondfile [verbatim,lilyquote,ragged-right,texidoc] {entering-several-tuplets-using-only-one--times-command.ly} -@ignore -@c TODO Remove when snippet works ok -@c Sent to Snippet 5 Feb 08 -The property @code{tupletSpannerDuration} specifies how long each -bracket should last. With this, you can make lots of tuplets -while typing @code{\times} only once, thus saving lots of typing. -In the next example, there are two triplets shown, while -@code{\times} was only used once. - -@lilypond[quote,fragment,relative=2,ragged-right,verbatim] -\set tupletSpannerDuration = #(ly:make-moment 1 4) -\times 2/3 { c8 c c c c c } -@end lilypond -@end ignore - @noindent For more information about @code{make-moment}, see @ref{Time administration}. @@ -381,8 +364,7 @@ full length mode and how to modify what material they cover. @code{\compressMusic} works similarly to \times, but does not create a tuplet bracket. One application is in polymetric -notation, as shown in the following example. See -@ref{Polymetric notation}. +notation, see @ref{Polymetric notation}. @lilypondfile [verbatim,lilyquote,ragged-right,texidoc] {printing-music-with-different-time-signatures.ly} @@ -2616,3 +2598,4 @@ Internals Reference: @internalsref{Timing_translator}, + diff --git a/Documentation/user/templates.itely b/Documentation/user/templates.itely index 9d710c5bec..b8d9893ae8 100644 --- a/Documentation/user/templates.itely +++ b/Documentation/user/templates.itely @@ -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 diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index c4681c27cc..7373f6222c 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -1585,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that was used to write the file: @example -\version "2.11.38" +\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 "2.11.38" +\version @w{"@version{}"} \header @{ title = "Symphony" composer = "Me" diff --git a/Documentation/user/tweaks.itely b/Documentation/user/tweaks.itely index 698a7b30ea..a68fd71359 100644 --- a/Documentation/user/tweaks.itely +++ b/Documentation/user/tweaks.itely @@ -424,7 +424,7 @@ the context. Let's use a very large value for the thickness at first, so we can be sure the command is working. We get: @example - \override Slur #'thickness = #5.0 +\override Slur #'thickness = #5.0 @end example Don't forget the @code{#'} preceding the @@ -662,7 +662,7 @@ Ok, so the @code{\override} command we need to print the lyrics in italics should be @example - \override LyricText #'font-shape = #'italic +\override LyricText #'font-shape = #'italic @end example @noindent @@ -703,7 +703,7 @@ object name, as otherwise the two names are run together and the interpreter cannot recognise them. So the command should be: @example - \override Lyrics . LyricText #'font-shape = #'italic +\override Lyrics . LyricText #'font-shape = #'italic @end example @warning{In lyrics always leave whitespace between the final @@ -3191,15 +3191,15 @@ To be effective under all circumstances these checks must be enabled by placing the overrides in a Score @code{\with} block, rather than in-line in music, as follows: -@verbatim -\new Score \with { +@example +\new Score \with @{ % Makes sure text scripts and lyrics are within the paper margins \override PaperColumn #'keep-inside-line = ##t \override NonMusicalPaperColumn #'keep-inside-line = ##t -} { +@} @{ .. -} -@end verbatim +@} +@end example @node Advanced tweaks with Scheme @subsection Advanced tweaks with Scheme @@ -3225,33 +3225,29 @@ the staff. #(define (color-notehead grob) "Color the notehead according to its position on the staff." (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7))) - (case mod-position ; Set rainbow colors - ((1) (ly:grob-set-property! grob 'color (x11-color 'red))) - ((2) (ly:grob-set-property! grob 'color (x11-color 'orange))) - ((3) (ly:grob-set-property! grob 'color (x11-color 'yellow))) - ((4) (ly:grob-set-property! grob 'color (x11-color 'green))) - ((5) (ly:grob-set-property! grob 'color (x11-color 'blue))) - ((6) (ly:grob-set-property! grob 'color (x11-color 'purple))) - ((0) (ly:grob-set-property! grob 'color (x11-color 'violet))) - ) + (case mod-position + ;; Return rainbow colors + ((1) (x11-color 'red )) ; for C + ((2) (x11-color 'orange )) ; for D + ((3) (x11-color 'yellow )) ; for E + ((4) (x11-color 'green )) ; for F + ((5) (x11-color 'blue )) ; for G + ((6) (x11-color 'purple )) ; for A + ((0) (x11-color 'violet )) ; for B + ) ) ) -rainbow = { - % Override color so it is obtained from color-notehead Scheme function - \override NoteHead #'color = #color-notehead -} - \relative c' { - \rainbow { - c2 c' | - b4 g8 a b4 c | - c,2 a' | - g1 | - } + % Arrange to obtain color from color-notehead procedure + \override NoteHead #'color = #color-notehead + c2 c' | + b4 g8 a b4 c | + c,2 a' | + g1 | } \addlyrics { - Some -- where o -- ver the Rain -- bow, way up high, + Some -- where o -- ver the Rain -- bow way up high, } @end lilypond diff --git a/Documentation/user/working.itely b/Documentation/user/working.itely index 4f8820da01..216f577e89 100644 --- a/Documentation/user/working.itely +++ b/Documentation/user/working.itely @@ -73,7 +73,7 @@ templates contain @code{\version} information. We highly recommend that you always include the @code{\version}, no matter how small your file is. Speaking from personal experience, it's quite frustrating to try to remember which version of LilyPond you were -using a few years ago. @code{convert-ly} requires you to declare +using a few years ago. @command{convert-ly} requires you to declare which version of LilyPond you used. @item @strong{Include checks}: @ruser{Bar and barnumber checks}, @@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains @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-layout.ly" diff --git a/Documentation/user/writing-texinfo.txt b/Documentation/user/writing-texinfo.txt index 4c988f754e..7913ed0ad7 100644 --- a/Documentation/user/writing-texinfo.txt +++ b/Documentation/user/writing-texinfo.txt @@ -161,6 +161,19 @@ commands. Do not use @itemize @bullet. +* To get LilyPond version, use @version{} (this does not work inside + LilyPond snippets). If you write "@version{}" (enclosed with + quotes), or generally if @version{} is not followed by a space, + enclose it with + + @w{ ... } + + e.g. + + @w{"@version{}"} + + to prevent an ugly line break in PDF output. + %%%%% SYNTAX SURVEY diff --git a/GNUmakefile.in b/GNUmakefile.in index 9f50bd0707..fb0265a36e 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -54,6 +54,7 @@ install-WWW: rsync -rl $(outdir)/offline-root/ $(DESTDIR)$(webdir) $(MAKE) -C Documentation/user local-install-WWW $(MAKE) -C Documentation/user install-info + $(MAKE) -C input/lsr install-info install-help2man: $(MAKE) -C scripts man install-help2man diff --git a/buildscripts/add_html_footer.py b/buildscripts/add_html_footer.py index b410b2a39e..7f30c94edc 100644 --- a/buildscripts/add_html_footer.py +++ b/buildscripts/add_html_footer.py @@ -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 diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py index dfaf671bed..e2df5a6bc3 100644 --- a/buildscripts/lys-to-tely.py +++ b/buildscripts/lys-to-tely.py @@ -80,24 +80,16 @@ for opt in options: else: raise Exception ('unknown option: ' + o) -def shorten_file_name (n): - # ugh, regtests file names appear as full paths in GUB builds - # we try to do something here - b = os.path.basename (n) - if os.path.exists (b): - return b - return n - def name2line (n): - # UGR s = r""" @ifhtml @html - + @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: @@ -106,7 +98,6 @@ if files: name = os.path.basename (name) template = template % vars () - files = map (shorten_file_name, files) files.sort () s = "\n".join (map (name2line, files)) s = template.replace (include_snippets, s, 1) diff --git a/buildscripts/translations-status.py b/buildscripts/translations-status.py index 494b59b881..0242e973a5 100644 --- a/buildscripts/translations-status.py +++ b/buildscripts/translations-status.py @@ -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 = '

    Last updated %s

    \n' % read_pipe ('LANG= date -u') +main_status_html = '

    Last updated %s

    \n' % read_pipe ('LANG= date -u')[0] main_status_html += '\n'.join ([doc.html_status () for doc in master_docs]) html_re = re.compile ('', re.I) @@ -359,7 +367,7 @@ end_body_re = re.compile ('', re.I) main_status_page = html_re.sub (''' ''', main_status_page) +translations.template.html.in; DO NOT EDIT !-->''', main_status_page) main_status_page = end_body_re.sub (main_status_html + '\n', main_status_page) diff --git a/buildscripts/www_post.py b/buildscripts/www_post.py index e27aeb7d2e..278895aff9 100644 --- a/buildscripts/www_post.py +++ b/buildscripts/www_post.py @@ -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') diff --git a/input/lsr/GNUmakefile b/input/lsr/GNUmakefile index 1ca2cbbf52..16946ea380 100644 --- a/input/lsr/GNUmakefile +++ b/input/lsr/GNUmakefile @@ -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 index 0000000000..7fed3d953f --- /dev/null +++ b/input/lsr/lilypond-snippets.tely @@ -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 index 5059eb7014..0000000000 --- a/input/lsr/snippets.tely +++ /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 diff --git a/input/manual/editorial-headword.ly b/input/manual/editorial-headword.ly index 6022cb4725..340971876f 100644 --- a/input/manual/editorial-headword.ly +++ b/input/manual/editorial-headword.ly @@ -46,18 +46,7 @@ d'8-2 \staccato | c'4-3 - r8 - r16. - c'32-3 \pp - | - c'8-2 - r16. - c'32 - c'8 - r16. - c'32 - | - c'8 + r4 } % LH Staff @@ -93,18 +82,7 @@ d8-2 \staccato | c4-3 - r8 - r16. - c32-3 - | - c8-2 - r16. - c32 - c8 - r16. - c32 - | - c8 + r4 } >> diff --git a/input/regression/musicxml/00c-Basics-Durations.xml b/input/regression/musicxml/00c-Basics-Durations.xml index cbb8dc62ed..c42439e04b 100644 --- a/input/regression/musicxml/00c-Basics-Durations.xml +++ b/input/regression/musicxml/00c-Basics-Durations.xml @@ -15,13 +15,13 @@ - 32 + 64 0 major - @@ -51,35 +47,25 @@ C 5 - 128 - + 512 1 - whole - - - + breve - - - C 5 - 128 + 256 1 whole - - - C 5 - 64 + 128 1 half down @@ -89,7 +75,7 @@ C 5 - 32 + 64 1 quarter down @@ -99,7 +85,7 @@ C 5 - 16 + 32 1 eighth down @@ -110,7 +96,7 @@ C 5 - 8 + 16 1 16th down @@ -122,7 +108,7 @@ C 5 - 4 + 8 1 32nd down @@ -135,7 +121,7 @@ C 5 - 2 + 4 1 64th down @@ -149,7 +135,7 @@ C 5 - 1 + 2 1 128th down @@ -164,7 +150,7 @@ C 5 - 1 + 2 1 128th down @@ -176,37 +162,62 @@ + + + + + + + C + 5 + + 1536 + 1 + longa + + + + C 5 - 96 + 768 1 - half + breve - down C 5 - 32 + 384 1 - quarter - down + whole + - - - C 5 - 48 + 192 + 1 + half + + + + + C + 5 + + 96 1 quarter @@ -217,7 +228,7 @@ C 5 - 24 + 48 1 eighth @@ -229,7 +240,7 @@ C 5 - 12 + 24 1 16th @@ -242,7 +253,7 @@ C 5 - 6 + 12 1 32nd @@ -256,11 +267,10 @@ C 5 - 3 + 6 1 64th - down continue continue continue @@ -271,11 +281,10 @@ C 5 - 2 + 3 1 128th - down continue continue continue @@ -287,17 +296,152 @@ C 5 - 2 + 3 1 128th - down end end end end end + + + + + + + + + C + 5 + + 1792 + 1 + longa + + + + + + + + + C + 5 + + 896 + 1 + breve + + + + + + C + 5 + + 448 + 1 + whole + + + + + + C + 5 + + 224 + 1 + half + + + + + + C + 5 + + 112 + 1 + quarter + + + + + + C + 5 + + 56 + 1 + eighth + + + begin + + + + C + 5 + + 28 + 1 + 16th + + + continue + begin + + + + C + 5 + + 14 + 1 + 32nd + + + continue + continue + begin + + + + C + 5 + + 7 + 1 + 64th + + + continue + continue + continue + begin + + + + C + 5 + + 7 + 1 + 64th + + + end + end + end + end + light-heavy diff --git a/lily/line-spanner.cc b/lily/line-spanner.cc index e9f18461a1..7c62929738 100644 --- a/lily/line-spanner.cc +++ b/lily/line-spanner.cc @@ -100,7 +100,7 @@ Line_spanner::calc_bound_info (SCM smob, Direction dir) } details = scm_acons (ly_symbol2scm ("X"), - scm_from_double (bound_grob->extent (commonx, X_AXIS) + scm_from_double (robust_relative_extent (bound_grob, commonx, X_AXIS) .linear_combination (attach)), details); } @@ -343,7 +343,7 @@ Line_spanner::print (SCM smob) line.translate (Offset (-me->relative_coordinate (commonx, X_AXIS), -me->relative_coordinate (my_common_y, Y_AXIS))); - + return line.smobbed_copy (); } diff --git a/lily/module-scheme.cc b/lily/module-scheme.cc index 9f4832628f..07943858a6 100644 --- a/lily/module-scheme.cc +++ b/lily/module-scheme.cc @@ -14,7 +14,7 @@ /* - If a variable in changed in SRC, we DEST doesn't see the + If a variable is changed in SRC, then DEST doesn't see the definitions. */ diff --git a/lily/note-collision.cc b/lily/note-collision.cc index 8ee404cb06..5ba8fe4872 100644 --- a/lily/note-collision.cc +++ b/lily/note-collision.cc @@ -575,7 +575,6 @@ ADD_INTERFACE (Note_collision_interface, "@code{force-hshift} and @code{horizontal-shift}.", /* properties */ - "ignore-collision " "merge-differently-dotted " "merge-differently-headed " "positioning-done "); diff --git a/lily/note-column.cc b/lily/note-column.cc index 68075fc250..e1a8e695fd 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -216,6 +216,7 @@ ADD_INTERFACE (Note_column, "arpeggio " "force-hshift " "horizontal-shift " + "ignore-collision " "note-heads " "rest " "rest-collision " diff --git a/make/doclang-rules.make b/make/doclang-rules.make index bed4120fb9..1f4865d009 100644 --- a/make/doclang-rules.make +++ b/make/doclang-rules.make @@ -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) diff --git a/make/doclang-targets.make b/make/doclang-targets.make index 09a6face3e..4f4750c9a7 100644 --- a/make/doclang-targets.make +++ b/make/doclang-targets.make @@ -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 diff --git a/mf/GNUmakefile b/mf/GNUmakefile index 41962e0c59..eb37ee3093 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -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)/$( #\'(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) diff --git a/python/fontextract.py b/python/fontextract.py index fa73a9961d..ee9505f37f 100644 --- a/python/fontextract.py +++ b/python/fontextract.py @@ -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: diff --git a/python/lilylib.py b/python/lilylib.py index cfa5e67d0a..f9cbff2c60 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -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): diff --git a/python/musicexp.py b/python/musicexp.py index adce691101..862b5d8c4f 100644 --- a/python/musicexp.py +++ b/python/musicexp.py @@ -2,9 +2,9 @@ import inspect import sys import string import re -import lilylib +import lilylib as ly -_ = lilylib._ +_ = ly._ from rational import Rational @@ -155,8 +155,12 @@ class Duration: def ly_expression (self, factor = None): if not factor: factor = self.factor - - str = '%d%s' % (1 << self.duration_log, '.'*self.dots) + + if self.duration_log < 0: + str = {-1: "\\breve", -2: "\\longa"}.get (self.duration_log, "1") + else: + str = '%d' % (1 << self.duration_log) + str += '.'*self.dots if factor <> Rational (1,1): if factor.denominator () <> 1: diff --git a/python/musicxml.py b/python/musicxml.py index e9d1ef8bed..7c398e1e5d 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -5,9 +5,9 @@ from rational import * import re import sys import copy -import lilylib +import lilylib as ly -_ = lilylib._ +_ = ly._ def error (str): ly.stderr_write ((_ ("error: %s") % str) + "\n") @@ -51,7 +51,7 @@ class Xml_node: return ''.join ([c.get_text () for c in self._children]) def message (self, msg): - lilylib.stderr_write (msg+'\n') + ly.stderr_write (msg+'\n') p = self while p: @@ -340,7 +340,7 @@ class Note (Measure_element): 'half': 1, 'whole': 0, 'breve': -1, - 'long': -2}.get (log, 0) + 'longa': -2}.get (log, 0) elif self.get_maybe_exist_named_child (u'grace'): # FIXME: is it ok to default to eight note for grace notes? return 3 @@ -379,7 +379,7 @@ class Part_list (Music_xml_node): if instrument_name: return instrument_name else: - lilylib.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id) + ly.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id) return "Grand Piano" class Part_group (Music_xml_node): diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index e5efca01d4..708214d315 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -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, diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index dee8223de6..7fe8210a9d 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -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} diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index e594aa7d47..f808a8325b 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -1386,6 +1386,7 @@ class LilyPondVoiceBuilder: else: duration_factor = Rational (diff.numerator ()) else: + # for skips of a whole or more, simply use s1*factor duration_log = 0 duration_factor = diff skip.duration.duration_log = duration_log diff --git a/stepmake/stepmake/texinfo-targets.make b/stepmake/stepmake/texinfo-targets.make index 875a5e929c..488b81f24b 100644 --- a/stepmake/stepmake/texinfo-targets.make +++ b/stepmake/stepmake/texinfo-targets.make @@ -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)\ diff --git a/stepmake/stepmake/texinfo-vars.make b/stepmake/stepmake/texinfo-vars.make index d36ff83b81..bd620ab56c 100644 --- a/stepmake/stepmake/texinfo-vars.make +++ b/stepmake/stepmake/texinfo-vars.make @@ -7,11 +7,13 @@ TEXINFO_SOURCES = $(TEXI_FILES) 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 +MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)' MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) diff --git a/tex/texinfo.tex b/tex/texinfo.tex index c49e670b02..736cc48e26 100644 --- a/tex/texinfo.tex +++ b/tex/texinfo.tex @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{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}}%