tags
test-output-distance
Documentation/user/lilypond
+input/lsr/lilypond-snippets
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
In diesem Handbuch: siehe @ref{Clef}.
-@refbugs
+@knownissues
Der mensurale G-Schlüssel ist als Petrucci-G-schlüssel deklariert.
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.
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
}
@end lilypond
-@refbugs
+@knownissues
Einige Artikulationszeichen sind vertikal zu dich an den entsprechenden
Notenköpfen gesetzt.
@lilypondfile[quote,ragged-right]{divisiones.ly}
-@refcommands
+@predefined
@funindex \virgula
@code{\virgula},
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
}
@end lilypond
-@refbugs
+@knownissues
Die horizontale Positionierung ist sehr schlecht.
}
@end lilypond
-@refcommands
+@predefined
Folgende Notenpräfixe sind unterstützt:
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
benutzt werden.
-@refbugs
+@knownissues
Wenn Bassziffern über dem Notensystem mit Ergänzungslinien und
@code{implicitBassFigures} benutzt werden, kann es vorkommen, dass
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,
@cindex Akkorde, Jazz
-@refcommands
+@predefined
@funindex \germanChords
@code{\germanChords},
@file{scm/@/chord@/-entry@/.scm}.
-@refbugs
+@knownissues
Akkordsymbole werden nur von den Tonhöhenbezeichnungen bestimmt.
Akkordumkehrungen sind nicht definiert, noch werden Bassnoten
für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar
gemacht.
-@refcommands
+@predefined
@funindex \stemUp
@code{\stemUp} (Hälse nach oben),
Programmreferenz: @internalsref{Script}.
-@refbugs
+@knownissues
Diese Zeichen erscheinen zwar im Druck, haben aber keine Auswirkung
auf die produzierte MIDI-Datei.
@noindent
eingesetzt werden.
-@refcommands
+@predefined
@funindex \dynamicUp
@code{\dynamicUp},
@end lilypond
-@refcommands
+@predefined
@funindex \tieUp
Programmreferenz: @internalsref{Tie}.
-@refbugs
+@knownissues
Der Wechsel zwischen Systemen bei aktiver Überbindung produziert keinen
gekrümmten Bogen.
@end lilypond
-@refcommands
+@predefined
@funindex \slurUp
@code{\slurUp},
Es können keine simultanen Phrasierungsbögen gesetzt werden.
-@refcommands
+@predefined
@funindex \phrasingSlurUp
@code{\phrasingSlurUp},
-@refbugs
+@knownissues
Text über der Linie (wie etwa @emph{gliss.}) wird nicht unterstützt.
@c TODO: cross-voice arpeggio example?
@c such an example is already in LSR -J.Mandereau
-@refcommands
+@predefined
@code{\arpeggio},
@funindex \arpeggioUp
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
ohne Hals in Klammern gesetzt.
-@refcommands
+@predefined
@code{\startTrillSpan},
@funindex \startTrillSpan
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.
definiert.
Programmreferenz: @internalsref{Tab_note_heads_engraver}.
-@refbugs
+@knownissues
Spezialeffekte für Gitarren sind noch nicht implementiert.
@end ignore
+@macro version
+@value{version}
+@end macro
+
+
@c ***** Displaying text *****
@c we need this since @q{\} doesn't work with makeinfo 4.8 --
@c to get decent quotes in `foo' and ``foo''
@c these need to be split up so that "@qq{foo}." looks nice. :(
-@iftex
@macro q{TEXT}
-@quotesinglbase{}\TEXT\`
+@quotesinglbase{}\TEXT\@quoteleft{}
@end macro
@macro qq{TEXT}
-@quotedblbase{}\TEXT\``
+@quotedblbase{}\TEXT\@quotedblleft{}
@end macro
-@end iftex
+@macro warning{TEXT}
+@quotation
+@quotation
+@cartouche
+@b{Achtung:} \TEXT\
+@end cartouche
+@end quotation
+@end quotation
+@end macro
-@ifinfo
-@macro q{TEXT}
-‚\TEXT\‘
+@ifnotinfo
+@macro notation{TEXT}
+@var{\TEXT\}
@end macro
+@end ifnotinfo
-@macro qq{TEXT}
-„\TEXT\“
+@ifinfo
+@macro notation{TEXT}
+\TEXT\
@end macro
@end ifinfo
-
-@ifhtml
-@macro q{TEXT}
-@html
-‚\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
@end macro
-@macro refbugs
+@macro knownissues
@noindent
-@subsubheading Bugs
+@subsubheading Known issues and warnings
@end macro
-
+@c obsolete, remove when translation is fully updated
@macro context{TEXT}
@vindex \TEXT\
@code{\TEXT\}@c should use internalsref
@c **** Links and references ****
+@c obsolete
@c usage: @lsr{ancient,custodes.ly}
@macro lsr{DIR,TEXT}
@ifhtml
@end ifnothtml
@end macro
+@c don't update until this macro is correctly set up in English docs
@macro lsrdir{DIR}
@ifhtml
@uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/}
@ifhtml
@c ***** HTML *****
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
@ifset bigpage
@macro internalsref{TEXT}
@end macro
@macro rprogram{TEXT}
-Programmbenutzung, @ref{\TEXT\,,,lilypond-program}
-@c @internalsref{\TEXT\}
+Programmbenutzung, @ref{\TEXT\,,,lilypond-program.de}
@end macro
@macro ruser{TEXT}
-Benutzerhandbuch, @ref{\TEXT\,,,lilypond}
-@c @internalsref{\TEXT\}
+Benutzerhandbuch, @ref{\TEXT\,,,lilypond.de}
@end macro
@macro rlearning{TEXT}
-Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning}
-@c @internalsref{\TEXT\}
+Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning.de}
@end macro
@end iftex
Programmreferenz: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
-@refbugs
+@knownissues
Weil in den allgemeinen MIDI-Definitionen kein Rimshot enthalten ist,
wird sidestick für diesen Zweck benutzt.
* Cross staff stems::
@end menu
-@refbugs
+@knownissues
Dynamische Zeichen werden nicht automatisch mittig notiert, aber
dafür gibt es Lösungen, vgl. die
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.
Programmreferenz: @internalsref{VoiceFollower}.
-@refcommands
+@predefined
@funindex \showStaffSwitch
@code{\showStaffSwitch},
-@refbugs
+@knownissues
Es gibt keine allgemein anerkannten Standards für die
Notation von Dreiviertelton-Erniedrigungszeichen. LilyPonds
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
@lsr{repeats,volta@/-multi@/-staff@/.ly}.
-@refbugs
+@knownissues
@cindex Wiederholung, mehrdeutig
@end lilypond
-@refbugs
+@knownissues
Tremolos, die auf diese Weise notiert werden, werden nicht in die
MIDI-Datei aufgenommen.
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
}
@end lilypond
-@refcommands
+@predefined
@funindex \tupletUp
@code{\tupletUp},
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.
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
@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
dem @code{\remove}-Befehl entfernen.
-@refbugs
+@knownissues
Nicht alle Notenwerte (besonders wenn sie andere rhythmische
Aufteilungen beinhalten) können exakt durch normale Noten und
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
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
@end lilypond
-@refcommands
+@predefined
@funindex \oneVoice
@code{\oneVoice},
@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
@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.
@end menu
-
@node Inside the staff
@subsection Inside the staff
@end menu
@node Selecting notation font size
-@unnumberedsubsubsec Selecting notation font size
+@subsubsection Selecting notation font size
UNTRANSLATED NODE: IGNORE ME
@node Fingering instructions
-@unnumberedsubsubsec Fingering instructions
+@subsubsection Fingering instructions
@cindex digitación
@cindex cambio de dedo
@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}.
@node Parentheses
-@unnumberedsubsubsec Parentheses
+@subsubsection Parentheses
@cindex fantasma, notas
@cindex notas fantasma
@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
@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.
@node Grid lines
-@unnumberedsubsubsec Grid lines
+@subsubsection Grid lines
Se pueden dibujar líneas verticales, sincronizadas con las notas, entre
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}.
+
+
@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.
@node Expressive marks
@section Expressive marks
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+{expressive-headword.ly}
+
@menu
* Attached to notes::
* Curves::
@menu
-* Articulations::
+* Articulations and ornamentations::
* Dynamics::
@end menu
-@node Articulations
-@unnumberedsubsubsec Articulations
+@node Articulations and ornamentations
+@subsubsection Articulations and ornamentations
-@cindex Articulaciones
+@cindex articulaciones
@cindex guiones
@cindex ornamentos
@node Dynamics
-@unnumberedsubsubsec Dynamics
+@subsubsection Dynamics
@cindex Dynamics
@funindex \pppp
@subsection Curves
@menu
-* Ties::
* Slurs::
* Phrasing slurs::
-* Laissez vibrer ties::
* Breath marks::
* Falls and doits::
@end menu
-@node Ties
-@unnumberedsubsubsec Ties
-
-@cindex ligadura de unión
-@funindex ~
-
-Una ligadura de unión conecta dos notas adyacentes de la misma altura. La ligadura
-en efecto extiende la longitud de una nota. No deben confundirse las ligaduras de unión con
-las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican
-el fraseo musical. Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~}
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-e' ~ e' <c' e' g'> ~ <c' e' g'>
-@end lilypond
-
-Cuando se aplica una ligadura de unión a un acorde, se conectan todas las cabezas de las notas cuyas alturas coinciden.
-Si no coincide ningún par de cabezas, no se crea ninguna ligadura. Los acordes
-se pueden ligar parcialmente colocando la ligadura dentro del acorde,
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
-<c~ e g~ b> <c e g b>
-@end lilypond
-
-Una ligadura es simplemente una forma de extender la duración de una nota, parecida al
-puntillo. El ejemplo siguiente muestra dos formas de escribir
-exactamente el mismo concepto:
-
-@lilypond[quote,fragment,ragged-right]
-\time 3/4 c'2. c'2 ~ c'4
-@end lilypond
-
-@noindent
-Se usan ligaduras de expresión bien cuando la nota atraviesa la barra
-de compás o bien cuando no se pueden usar puntillos para denotar el
-ritmo. Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como
-
-@lilypond[fragment,quote,ragged-right]
-\relative {
- r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
-}
-@end lilypond
-
-Si necesita unir muchas notas a través de las líneas divisorias, puede
-resultar más fácil utilizar la división automática de notas (vea
-@ref{Automatic note splitting}). Este mecanismo divide las notas
-largas de forma automática y las liga a través de las barras de compás.
-
-@funindex \repeatTie
-
-Cuando la segunda vez de una repetición comienza con una nota ligada,
-es necesario repetir la ligadura. Esto se puede conseguir mediante @code{\repeatTie},
-
-@lilypond[fragment,quote,ragged-right,relative=2]
-r <c e g>\repeatTie
-@end lilypond
-
-@cindex ligaduras de repetición
-@cindex corchetes de repetición de primera y segunda vez y ligaduras
-
-@commonprop
-
-A veces se usan ligaduras para escribir arpegios. En este caso, dos notas ligadas no
-necesitan ser consecutivas. Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote}
-(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil,
-por ejemplo, para ligar un trémolo a un acorde. Por ejemplo,
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-\set tieWaitForNote = ##t
-\grace { c16[~ e~ g]~ } <c, e g>2
-\repeat tremolo 8 { c32~ c'~ } <c c,>1
-e8~ c~ a~ f~ <e' c a f>2
-@end lilypond
-
-Las ligaduras de pueden grabar manualmente modificando la propiedad
-@code{tie-configuration}. El primer número indica la distancia desde
-el centro del pentagrama en espacios de pentagrama, y el segundo
-número indica la dirección (1 = hacia arriba, -1 = hacia abajo).
-
-@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
-<c e g>2~ <c e g> |
-\override TieColumn #'tie-configuration =
- #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
-<c e g>~ <c e g> |
-@end lilypond
-
-
-@predefined
-
-
-@funindex \tieUp
-@code{\tieUp},
-@funindex \tieDown
-@code{\tieDown},
-@funindex \tieNeutral
-@code{\tieNeutral},
-@funindex \tieDotted
-@code{\tieDotted},
-@funindex \tieDashed
-@code{\tieDashed},
-@funindex \tieSolid
-@code{\tieSolid}.
-
-
-@seealso
-
-En el presente manual: @ref{Automatic note splitting}.
-
-Referencia del programa: @internalsref{Tie}.
-
-
-@knownissues
-
-Un cambio de pentagrama cuando hay una ligadura activa no producirá una ligadura inclinada.
-
-Los cambios de clave o de octava durante una ligadura de unión no
-están bien definidos realmente. En estos casos puede ser preferible una ligadura de expresión.
-
-
@node Slurs
-@unnumberedsubsubsec Slurs
+@subsubsection Slurs
-@cindex Ligaduras de expresión
+@cindex ligaduras de expresión
Una ligadura de expresión indica que las notas se deben tocar unidas o
@emph{legato}. Se escriben utilizando paréntesis
@node Phrasing slurs
-@unnumberedsubsubsec Phrasing slurs
+@subsubsection Phrasing slurs
@cindex ligaduras de fraseo
@cindex marcas de fraseo
Referencia del programa: @internalsref{PhrasingSlur}.
-
-@node Laissez vibrer ties
-@unnumberedsubsubsec Laissez vibrer ties
-@cindex Laissez vibrer
-@cindex Ligaduras laissez vibrer
-
-Las ligaduras L.v. (laissez vibrer, dejar vibrar) indican que las
-notas no se deben apagar al final. Se usan en la notación para piano,
-arpa y otros instrumentos de cuerda y percusión. Se pueden introducir escribiendo @code{\laissezVibrer},
-
-@lilypond[fragment,ragged-right,verbatim,relative=1]
-<c f g>\laissezVibrer
-@end lilypond
-
-@seealso
-
-Referencia del programa:
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
-
-Archivos de ejemplo:
-@lsr{connecting,laissez-vibrer-ties.ly}
-
-
@node Breath marks
-@unnumberedsubsubsec Breath marks
+@subsubsection Breath marks
Las marcas de respiración se introducen usando @code{\breathe}
@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
@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},
* Glissando::
* Arpeggio::
* Trills::
-* Analysis brackets::
@end menu
@node Glissando
-@unnumberedsubsubsec Glissando
+@subsubsection Glissando
@cindex Glissando
@funindex \glissando
@node Arpeggio
-@unnumberedsubsubsec Arpeggio
+@subsubsection Arpeggio
@cindex Arpeggio
@cindex acorde quebrado
@node Trills
-@unnumberedsubsubsec Trills
+@subsubsection Trills
Los trinos cortos se imprimen como una articulación normal; consulte @ref{Articulations}.
@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}.
@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
É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
@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
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b
+ Translation of GIT committish: a7074882aac1078e15104577c36ac4b35ece0ae4
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Pitches
@section Pitches
-This section discusses how to specify the pitch of notes.
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+{pitches-headword.ly}
+
+En esta sección se discute cómo especificar la altura de las notas.
+Este proceso se compone de tres fases: entrada, modificación y salida.
@menu
* Writing pitches::
* Changing multiple pitches::
* Displaying pitches::
+* Note heads::
@end menu
@node Writing pitches
@subsection Writing pitches
-Into text.
+En esta sección se describe la manera de introducir la altura de las
+notas. Esisten dos formas distintas de colocar las notas en su octava
+correspondiente: el modo absoluto y el relativo. En casi todas las
+ocasiones, será más práctico el modo relativo.
@menu
-* Normal pitches::
+* Absolute octave entry::
+* Relative octave entry::
* Accidentals::
-* Cautionary accidentals::
-* Micro tones::
* Note names in other languages::
@end menu
-@node Normal pitches
-@unnumberedsubsubsec Normal pitches
-@cindex Nombres de las notas
+@node Absolute octave entry
+@subsubsection Absolute octave entry
+
+@cindex nombres de las notas
@cindex alturas
+@cindex absoluta
+@cindex absoluta, especificación, de la octava
-El nombre de una nota se especifica usando las letras minúsculas de la @code{a} a la @code{g}.
-Una escala ascendente de Do mayor se tipografía con
+El nombre de una nota se especifica usando las letras minúsculas de la
+@code{a} a la @code{g}. Las notas cuyos nombres van desde @code{c}
+hasta @code{b} se imprimen en la octava inferior al Do central.
-@lilypond[quote,fragment,verbatim,ragged-right]
+@c NOTE: don't use c' here.
+@lilypond[verbatim,quote,ragged-right,fragment]
\clef bass
-c d e f g a b c'
+c d e f
+g a b c
+d e f g
@end lilypond
-El nombre de la nota @code{c} se tipografía una octava por debajo del Do central.
+@funindex '
+@funindex ,
-@lilypond[quote,fragment,verbatim,ragged-right]
+Se pueden especificar otras octavas mediante una comilla simple
+quote@tie{}(@code{'}) o una coma@tie{}(@code{,}) .
+Cada@tie{}@code{'} eleva la altura en una octava; cada@tie{}@code{,}
+baja la altura una octava.
+
+@lilypond[verbatim,quote,ragged-right,fragment]
\clef treble
-c1
+c' c'' e' g
+d'' d' d c
\clef bass
-c1
+c, c,, e, g
+d,, d, d c
@end lilypond
-@funindex '
-@funindex ,
+@seealso
+
+Music Glossary: @rglos{Pitch names}.
+
+Snippets: @lsrdir{Pitches,Pitches}.
-La especificación opcional de la octava tiene la forma de una serie de
-comillas simples o apóstrofes (@samp{'}) o bien una serie de comas
-(@samp{,}). Cada @samp{'} eleva la altura una octava;
-cada @samp{,} baja la altura una octava.
+
+@node Relative octave entry
+@subsubsection Relative octave entry
+
+@cindex Relativo
+@cindex Relativas, especificación de octavas
+@funindex \relative
+
+Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas.
+Cuando copie música existente, es fácil poner por accidente una nota en la octava
+equivocada y luego es difícil encontrar dicho error. La octava relativa
+previene estos errores haciendo que éstos tengan consecuencias mucho mayores:
+un solo error transporta una octava el resto de la pieza
+
+@example
+\relative @var{altura_inicial} @var{expresión_musical}
+@end example
+
+@noindent
+o bien
+
+@example
+\relative @var{expresión_musical}
+@end example
+
+@noindent
+@code{c'} se usa por defecto si no se define una altura inicial.
+
+La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como
+sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico
+entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos.
+Esta distancia se determina independientemente de las alteraciones; un
+@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará
+por encima del @code{ceses}. En otras palabras, una cuarta doble aumentada se considera
+un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada
+tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos.
+
+Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para
+elevar o bajar la altura en una octava más. Al entrar en el modo relativo,
+se puede especificar una altura de inicio absoluta que se comportará como
+la nota precedente a la primera nota de la @var{expresión_musical}. Si no
+se especifica ninguna altura inicial, se utilizará el Do central como
+comienzo.
+
+Aquí podemos ver el modo relativo en acción:
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+ b c d c b c bes a
+}
+@end lilypond
+
+Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta
@lilypond[quote,ragged-right,fragment,verbatim]
-\clef treble
-c' c'' e' g d'' d' d c
-\clef bass
-c, c,, e, g d,, d, d c
+\relative c'' {
+ c g c f, c' a, e''
+}
+@end lilypond
+
+Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para
+determinar la primera nota del siguiente acorde
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' {
+ c <c e g>
+ <c' e g>
+ <c, e' g>
+}
@end lilypond
-Se puede usar un método alternativo para declarar en qué octava grabar
-una nota; este método no requiere tantas especificaciones de octava
-(@code{'} y @code{,}). Consulte
-@ref{Relative octaves}.
+La altura después del @code{\relative} contiene un nombre de nota.
+
+La conversión relativa no afecta a las secciones @code{\transpose},
+@code{\chordmode} o @code{\relative} en su argumento. Para usar
+el modo relativo dentro de música transportada, se debe escribir
+un @code{\relative} adicional dentro de @code{\transpose}.
@node Accidentals
-@unnumberedsubsubsec Accidentals
+@subsubsection Accidentals
@cindex nombres de las notas, holandés
@cindex nombres de las notas, por omisión
@internalsref{NoteHead}.
-@node Cautionary accidentals
-@unnumberedsubsubsec Cautionary accidentals
-
@cindex alteración recordatoria
@cindex alteración de precaución
@cindex alteración con paréntesis
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
@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
@subsection Changing multiple pitches
@menu
-* Relative octaves::
-* Octave check::
+* Octave checks::
* Transpose::
@end menu
-@node Relative octaves
-@unnumberedsubsubsec Relative octaves
-
-@cindex Relativo
-@cindex Relativas, especificación de octavas
-@funindex \relative
-
-Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas.
-Cuando copie música existente, es fácil poner por accidente una nota en la octava
-equivocada y luego es difícil encontrar dicho error. La octava relativa
-previene estos errores haciendo que éstos tengan consecuencias mucho mayores:
-un solo error transporta una octava el resto de la pieza
-
-@example
-\relative @var{altura_inicial} @var{expresión_musical}
-@end example
-
-@noindent
-o bien
-
-@example
-\relative @var{expresión_musical}
-@end example
+@node Octave checks
+@subsubsection Octave checks
-@noindent
-@code{c'} se usa por defecto si no se define una altura inicial.
-
-La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como
-sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico
-entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos.
-Esta distancia se determina independientemente de las alteraciones; un
-@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará
-por encima del @code{ceses}. En otras palabras, una cuarta doble aumentada se considera
-un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada
-tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos.
-
-Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para
-elevar o bajar la altura en una octava más. Al entrar en el modo relativo,
-se puede especificar una altura de inicio absoluta que se comportará como
-la nota precedente a la primera nota de la @var{expresión_musical}. Si no
-se especifica ninguna altura inicial, se utilizará el Do central como
-comienzo.
-
-Aquí podemos ver el modo relativo en acción:
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
- b c d c b c bes a
-}
-@end lilypond
-
-Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c'' {
- c g c f, c' a, e''
-}
-@end lilypond
-
-Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para
-determinar la primera nota del siguiente acorde
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c' {
- c <c e g>
- <c' e g>
- <c, e' g>
-}
-@end lilypond
-
-La altura después del @code{\relative} contiene un nombre de nota.
-
-La conversión relativa no afecta a las secciones @code{\transpose},
-@code{\chordmode} o @code{\relative} en su argumento. Para usar
-el modo relativo dentro de música transportada, se debe escribir
-un @code{\relative} adicional dentro de @code{\transpose}.
-
-
-@node Octave check
-@unnumberedsubsubsec Octave check
-
-@cindex Comprobación de octava
+@cindex octava, comprobación de
+@cindex octava, corrección de
+@funindex =
+@funindex \octave
Las comprobaciones de octava hacen que los errores de octava sean más
fáciles de corregir: una nota puede venir seguida de @code{=}@var{comillas}
@end lilypond
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
@node Transpose
-@unnumberedsubsubsec Transpose
+@subsubsection Transpose
@cindex Transposición
@cindex Transposición de alturas
* Key signature::
* Ottava brackets::
* Instrument transpositions::
+* Automatic accidentals::
+* Ambitus::
@end menu
@node Clef
-@unnumberedsubsubsec Clef
+@subsubsection Clef
@funindex \clef
@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
@node Key signature
-@unnumberedsubsubsec Key signature
+@subsubsection Key signature
@cindex Armadura de la tonalidad
@funindex \key
@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
@node Instrument transpositions
-@unnumberedsubsubsec Instrument transpositions
+@subsubsection Instrument transpositions
@cindex transposición de MIDI
@cindex transposición instrumental
...
@end example
+@node Automatic accidentals
+@subsubsection Automatic accidentals
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Ambitus
+@subsubsection Ambitus
+
+@cindex ambitus
+@cindex rango de alturas
+@cindex tesitura
+
+El término @emph{ambitus} o ámbito, denota el rango de notas que
+abarca una voz dada en una parte musical. También puede denotar el
+margen de notas que es capaz de tocar un determinado instrumento
+musical. Los ámbitos se imprimen en las partes vocales de tal manera
+que los intérpretes puedan determinar con facilidad si cumplen con sus
+propias posibilidades.
+
+Los ámbitos se presentan al comienzo de la pieza junto a la clave
+inicial. El rango se especifica gráficamente mediante dos cabezas de
+nota que representan a las notas inferior y superior. Sólo se
+imprimen alteraciones si no forman parte de la armadura de la
+tonalidad.
+
+@lilypond[verbatim,quote,ragged-right]
+\layout {
+ \context {
+ \Voice
+ \consists Ambitus_engraver
+ }
+}
+
+\relative c'' {
+ aes c e2 cis,2
+}
+@end lilypond
+
+Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito
+por pentagrama en lugar de una por cada voz, añada el grabador
+@internalsref{Ambitus_engraver} al contexto @internalsref{Staff}
+y no al contexto @internalsref{Voice}. He aquí un ejemplo:
+
+@lilypond[verbatim,ragged-right,quote]
+\new Staff \with {
+ \consists "Ambitus_engraver"
+}
+<<
+ \new Voice \with {
+ \remove "Ambitus_engraver"
+ } \relative c'' {
+ \override Ambitus #'X-offset = #-1.0
+ \voiceOne
+ c4 a d e f2
+ }
+ \new Voice \with {
+ \remove "Ambitus_engraver"
+ } \relative c' {
+ \voiceTwo
+ es4 f g as b2
+ }
+>>
+@end lilypond
+
+@noindent
+Este ejemplo utiliza una capacidad avanzada,
+
+@example
+\override Ambitus #'X-offset = #-1.0
+@end example
+
+@noindent
+Este código mueve el ámbito a la izquierda. Se podría haber conseguido el mismo
+efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no
+reservaría espacio para el objeto que se ha movido.
+
+@seealso
+
+Referencia del programa: @internalsref{Ambitus},
+@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
+@internalsref{AmbitusAccidental}.
+
+Ejemplos:
+@lsr{vocal,ambitus@/.ly}.
+
+@knownissues
+
+No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito
+simultáneas en distintas voces.
+
+@node Note heads
+@subsection Note heads
+
+@menu
+* Special note heads::
+* Easy notation note heads::
+* Shape note heads::
+* Improvisation::
+@end menu
+
+@node Special note heads
+@subsubsection Special note heads
+
+@cindex note heads, special
+@cindex note heads, cross
+@cindex note heads, diamond
+@cindex note heads, parlato
+@cindex note heads, harmonic
+@cindex note heads, guitar
+@cindex special note heads
+@cindex cross note heads
+@cindex diamond note heads
+@cindex parlato note heads
+@cindex harmonic note heads
+@cindex guitar note heads
+
+Different note heads are used by various instruments for various
+meanings -- crosses are used for @q{parlato} with vocalists,
+stopped notes on guitar; diamonds are used for harmonics on string
+instruments, etc. There is a shorthand (@code{\harmonic}) for
+diamond shapes; the other note head styles are produced by
+tweaking the property:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+To see all note head styles, see @ref{Note head styles}.
+
+
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
+Notation Reference: @ref{Note head styles}.
+
+Internals Reference: @internalsref{NoteHead},
+@internalsref{LedgerLineSpanner}.
+
+@node Easy notation note heads
+@subsubsection Easy notation note heads
+
+@cindex notas, cabezas de, estudio
+@cindex notas, cabezas de, notación simplificada
+@cindex simplificada, notación
+@cindex Hal Leonard
+
+Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en inglés) dentro de la cabeza. Se usa
+en la música para principiantes
+
+@lilypond[verbatim,quote,ragged-right]
+#(set-global-staff-size 26)
+\relative c' {
+ \easyHeadsOn
+ c2 e4 f
+ g1
+ \easyHeadsOff
+ c,1
+}
+@end lilypond
+
+La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto
+@code{NoteHead}. Estos ajustes se pueden deshacer mediante la
+isntrucción @code{\easyHeadsOff}. Para que las letras sean legibles,
+se tienen que imprimir en un tamaño grande de la tipografía. Para
+imprimir con un tamaño de tipografía mayor, consulte @ref{Setting the
+staff size}.
+
+@predefined
+
+@funindex \easyHeadsOn
+@funindex \easyHeadsOff
+@code{\easyHeadsOn}, @code{\easyHeadsOff}
+
+
+@node Shape note heads
+@subsubsection Shape note heads
+
+@cindex notas, cabezas de, con formas
+@cindex notas, cabezas de, Aiken
+@cindex notas, cabezas de, sacred harp(?)
+@cindex formas, notas con
+@cindex Aiken, cabezas de nota con forma de
+@cindex sacred harp, cabezas de nota de
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+En notación de cabezas con forma, la forma de la cabeza corresponde
+a la función armónica de una nota dentro de la escala. Esta notación se hizo popular
+en los libros americanos de canciones durante el s.XIX.
+
+Las cabezas con formas se pueden producir estableciendo @code{\aikenHeads} o
+@code{\sacredHarpHeads}, según el estilo deseado.
+
+@lilypond[verbatim,relative=1,fragment]
+ \aikenHeads
+ c8 d4 e8 a2 g1
+ \sacredHarpHeads
+ c8 d4. e8 a2 g1
+@end lilypond
+
+Las formas se determinan en función del grado de la escala, donde la tónica
+está determinada por la instrucción @code{\key}
+
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+Las cabezas con formas están programadas a través de la propiedad @code{shapeNoteStyles}.
+Su valor es un vector de símbolos. El elemento en el lugar k indica qué estilo
+usa el grado k de la escala. Son posibles las combinaciones
+arbitrarias, p.ej.:
+
+@lilypond[verbatim,relative=1,fragment]
+ \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
+ c8 d4. e8 a2 g1
+@end lilypond
+
+
+@node Improvisation
+@subsubsection Improvisation
+
+UNTRANSLATED NODE: IGNORE ME
+
@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.
@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::
* Augmentation dots::
* Tuplets::
* Scaling durations::
+* Ties::
@end menu
@node Durations
-@unnumberedsubsubsec Durations
+@subsubsection Durations
@cindex duración
@funindex \longa
@node Augmentation dots
-@unnumberedsubsubsec Augmentation dots
+@subsubsection Augmentation dots
@funindex .
@node Tuplets
-@unnumberedsubsubsec Tuplets
+@subsubsection Tuplets
@cindex grupos especiales
@cindex tresillos
@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
En este manual: @ref{Tuplets}.
+@node Ties
+@subsubsection Ties
+
+@cindex ligadura de unión
+@funindex ~
+
+Una ligadura de unión conecta dos notas adyacentes de la misma altura. La ligadura
+en efecto extiende la longitud de una nota. No deben confundirse las ligaduras de unión con
+las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican
+el fraseo musical. Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~}
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+e' ~ e' <c' e' g'> ~ <c' e' g'>
+@end lilypond
+
+Cuando se aplica una ligadura de unión a un acorde, se conectan todas las cabezas de las notas cuyas alturas coinciden.
+Si no coincide ningún par de cabezas, no se crea ninguna ligadura. Los acordes
+se pueden ligar parcialmente colocando la ligadura dentro del acorde,
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+<c~ e g~ b> <c e g b>
+@end lilypond
+
+Una ligadura es simplemente una forma de extender la duración de una nota, parecida al
+puntillo. El ejemplo siguiente muestra dos formas de escribir
+exactamente el mismo concepto:
+
+@lilypond[quote,fragment,ragged-right]
+\time 3/4 c'2. c'2 ~ c'4
+@end lilypond
+
+@noindent
+Se usan ligaduras de expresión bien cuando la nota atraviesa la barra
+de compás o bien cuando no se pueden usar puntillos para denotar el
+ritmo. Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como
+
+@lilypond[fragment,quote,ragged-right]
+\relative {
+ r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
+}
+@end lilypond
+
+Si necesita unir muchas notas a través de las líneas divisorias, puede
+resultar más fácil utilizar la división automática de notas (vea
+@ref{Automatic note splitting}). Este mecanismo divide las notas
+largas de forma automática y las liga a través de las barras de compás.
+
+@funindex \repeatTie
+
+Cuando la segunda vez de una repetición comienza con una nota ligada,
+es necesario repetir la ligadura. Esto se puede conseguir mediante @code{\repeatTie},
+
+@lilypond[fragment,quote,ragged-right,relative=2,verbatim]
+\repeat volta 2 { c g <c e>2 ~ }
+\alternative {{ <c e>2. r4 } {<c e>2\repeatTie d4 c }}
+@end lilypond
+
+@cindex laissez vibrer
+@cindex ligaduras laissez vibrer
+
+Las ligaduras @notation{L.v.} (@notation{laissez vibrer}, dejar
+vibrar) indican que las notas no se deben apagar al final. Se usan en
+la notación para piano, arpa y otros instrumentos de cuerda y
+percusión. Se pueden introducir escribiendo @code{\laissezVibrer}:
+
+@lilypond[fragment,ragged-right,verbatim,relative=1]
+<c f g>\laissezVibrer
+@end lilypond
+
+Es posible controlar la colocación vertical de las ligaduras de unión;
+véase @ref{Controlling direction}.
+
+
+@seealso
+
+Referencia del programa:
+@internalsref{LaissezVibrerTie}
+@internalsref{LaissezVibrerTieColumn}
+
+Archivos de ejemplo:
+@lsr{connecting,laissez-vibrer-ties.ly}
+
+
+
+@cindex ligaduras de repetición
+@cindex corchetes de repetición de primera y segunda vez y ligaduras
+
+@commonprop
+
+A veces se usan ligaduras para escribir arpegios. En este caso, dos notas ligadas no
+necesitan ser consecutivas. Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote}
+(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil,
+por ejemplo, para ligar un trémolo a un acorde. Por ejemplo,
+
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
+\set tieWaitForNote = ##t
+\grace { c16[~ e~ g]~ } <c, e g>2
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
+e8~ c~ a~ f~ <e' c a f>2
+@end lilypond
+
+Las ligaduras se pueden grabar manualmente modificando la propiedad
+@code{tie-configuration} del objeto @code{TieColumn}. El primer
+número indica la distancia desde el centro del pentagrama en espacios
+de pentagrama, y el segundo número indica la dirección (1 = hacia
+arriba, -1 = hacia abajo).
+
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
+<c e g>2~ <c e g> |
+\override TieColumn #'tie-configuration =
+ #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
+<c e g>~ <c e g> |
+@end lilypond
+
+
+@predefined
+
+
+@funindex \tieUp
+@code{\tieUp},
+@funindex \tieDown
+@code{\tieDown},
+@funindex \tieNeutral
+@code{\tieNeutral},
+@funindex \tieDotted
+@code{\tieDotted},
+@funindex \tieDashed
+@code{\tieDashed},
+@funindex \tieSolid
+@code{\tieSolid}.
+
+
+@seealso
+
+En el presente manual: @ref{Automatic note splitting}.
+
+Referencia del programa: @internalsref{Tie}.
+
+
+@knownissues
+
+Un cambio de pentagrama cuando hay una ligadura activa no producirá una ligadura inclinada.
+
+Los cambios de clave o de octava durante una ligadura de unión no
+están bien definidos realmente. En estos casos puede ser preferible una ligadura de expresión.
+
+
+
@node Writing rests
@subsection Writing rests
@end menu
@node Rests
-@unnumberedsubsubsec Rests
+@subsubsection Rests
@cindex Silencios
@funindex \rest
@node Skips
-@unnumberedsubsubsec Skips
+@subsubsection Skips
@cindex Desplazamiento
@cindex Silencio invisible
@node Multi measure rests
-@unnumberedsubsubsec Multi measure rests
+@subsubsection Multi measure rests
@cindex multicompás, silencios
@cindex compás completo, silencios de
@end menu
@node Time signature
-@unnumberedsubsubsec Time signature
+@subsubsection Time signature
@cindex Indicación de compás
@cindex metro, medida
@node Upbeats
-@unnumberedsubsubsec Upbeats
+@subsubsection Upbeats
@cindex anacrusa
@cindex parte al alzar
@node Unmetered music
-@unnumberedsubsubsec Unmetered music
+@subsubsection Unmetered music
@cindex cadencia
@funindex \cadenzaOn
@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}
@end menu
@node Automatic beams
-@unnumberedsubsubsec Automatic beams
+@subsubsection Automatic beams
LilyPond inserta las barras de corchea automáticamente
@node Manual beams
-@unnumberedsubsubsec Manual beams
+@subsubsection Manual beams
@cindex barras manuales
@funindex ]
@node Feathered beams
-@unnumberedsubsubsec Feathered beams
+@subsubsection Feathered beams
UNTRANSLATED NODE: IGNORE ME
@end menu
@node Bar check
-@unnumberedsubsubsec Bar check
+@subsubsection Bar check
@cindex Compás, comprobación de
@funindex barCheckSynchronize
@node Bar lines
-@unnumberedsubsubsec Bar lines
+@subsubsection Bar lines
@cindex Barras de compás
@funindex \bar
@node Bar numbers
-@unnumberedsubsubsec Bar numbers
+@subsubsection Bar numbers
@cindex Compás, números de
@cindex números de compás
@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.
@node Rehearsal marks
-@unnumberedsubsubsec Rehearsal marks
+@subsubsection Rehearsal marks
@cindex Ensayo, letras de
@funindex \mark
@end menu
@node Grace notes
-@unnumberedsubsubsec Grace notes
+@subsubsection Grace notes
@funindex \grace
@cindex ornamentos
@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
@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
@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
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
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
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@contents
-@include macros.itexi
-
@include preface.itely
@include introduction.itely
@include tutorial.itely
@settitle GNU LilyPond -- utilisation du programme
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@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.
@contents
-@include macros.itexi
-
@include install.itely
@include setup.itely
@include running.itely
@settitle GNU LilyPond -- manuel de notation
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@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
@contents
-@include macros.itexi
-
@include notation.itely
@include specialist.itely
version that you are working on. See TRANSLATION for details.
@end ignore
+@macro version
+@value{version}
+@end macro
+
@c ***** Displaying text *****
@c WARNING: new @lsr macro in English docs takes 3 arguments
@c and new @lsrdir takes two arguments
+@c obsolete
@c usage: @lsr{ancient,custodes.ly}
@macro lsr{DIR,TEXT}
@ifhtml
@end ifnothtml
@end macro
+@c don't update until this macro is correctly set up in English docs
@macro lsrdir{DIR}
@ifhtml
@uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/}
@ifhtml
@c ***** HTML *****
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
@ifset bigpage
@macro internalsref{TEXT}
LilyPond pour laquelle le fichier a été écrit,
@example
-\version "2.11.38"
+\version @w{"@version{}"}
@end example
@noindent
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
@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"
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,
in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
<br>(how to install and run the program)
-<li><a class="title" href="../input/lsr/snippets/index.html">Snippets</a>
-(in <a class="title" href="../input/lsr/snippets-big-page.html">one big page</a>,
-in <a class="title" href="../input/lsr/snippets.pdf">PDF</a>)
+<li><a class="title" href="../input/lsr/lilypond-snippets/index.html">Snippets</a>
+(in <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">one big page</a>,
+in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
<br>(Short tricks, tips, and examples)
</ul>
--- /dev/null
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+ <p><i>Last updated Tue Feb 26 15:43:29 UTC 2008
+</i></p>
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- learning manual</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(406)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>Preface<br>(411)</td>
+ <td>Valentin Villenave<br>
+ <small>Ludovic Sardain</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Introduction<br>(3198)</td>
+ <td>Ludovic Sardain<br>
+ John Mandereau<br>
+ <small>Jean-Charles Malahieude<br>
+ Jean-Yves Baudais</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Tutorial<br>(5593)</td>
+ <td>Nicolas Grandclaude<br>
+ Ludovic Sardain<br>
+ Gauvain Pocentek<br>
+ <small>Jean-Charles Malahieude<br>
+ Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff8f50">partially up-to-date (23 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #40fe23">partially up-to-date (95 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Fundamental concepts<br>(8626)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (39 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Tweaking output<br>(11862)</td>
+ <td>Valentin Villenave<br>
+ Nicolas Klutchnikoff<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Working on LilyPond projects<br>(2985)</td>
+ <td>Ludovic Sardain<br>
+ <small>Jean-Yves Baudais<br>
+ Valentin Villenave<br>
+ John Mandereau<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Templates<br>(297)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9150">partially up-to-date (24 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Scheme tutorial<br>(960)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (91 %)</span><br>
+ <span style="background-color: #83fe2c">partially up-to-date (85 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- program usage</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(384)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Install<br>(1477)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #6fff29">partially up-to-date (88 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Setup<br>(947)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Running LilyPond<br>(2860)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 @command{lilypond-book}: Integrating text and music<br>(2840)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Converting from other formats<br>(975)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- The music typesetter</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(549)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Musical notation<br>(91)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.1 Pitches<br>(2808)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.2 Rhythms<br>(7056)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (82 %)</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (87 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.3 Expressive marks<br>(1602)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #91ff2e">partially up-to-date (83 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.4 Repeats<br>(717)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.5 Simultaneous notes<br>(916)</td>
+ <td>Frédéric Chiasson<br>
+ Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.6 Staff notation<br>(1637)</td>
+ <td>Valentin Villenave<br>
+ Jean-Charles Malahieude<br>
+ <small>John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (49 %)</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.7 Editorial annotations<br>(866)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (38 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (95 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.8 Text<br>(2329)</td>
+ <td>Jean-Charles Malahieude<br>
+ <small>Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Specialist notation<br>(54)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.1 Vocal music<br>(2630)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.2 Chords<br>(1275)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.3 Piano music<br>(702)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.4 Percussion<br>(481)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.5 Guitar<br>(826)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.6 Orchestral strings<br>(66)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.7 Bagpipes<br>(242)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (94 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.8 Ancient notation<br>(4289)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Input syntax<br>(2448)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+ <span style="background-color: #25fe1f">partially up-to-date (99 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Non-musical notation<br>(2164)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (4 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (3 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Spacing issues<br>(8399)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>6 Changing defaults<br>(5105)</td>
+ <td>Valentin Villenave<br>
+ <small>Gilles Thibault</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #b9ff33">partially up-to-date (77 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>7 Interfaces for programmers<br>(4547)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Literature list<br>(299)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Notation manual tables<br>(935)</td>
+ <td>Frédéric Chiasson<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (13 %)</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+ <span style="background-color: #62ff28">partially up-to-date (90 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (97 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>C Cheat sheet<br>(250)</td>
+ <td>Valentin Villenave<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
+++ /dev/null
-<html>
-<!--
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-!-->
-<head>
- <title>LilyPond documentation translations status</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-</head>
-
-<body>
-<p><a href="index.html">Up to documentation index</a></p>
-
-<h1>Documentation translations status</h1>
-
-<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
- documentation are translated; for each documentation section, you
- can read the word count in parentheses, who translated and verified
- it (translation checkers are printed with a smaller font size), how
- much of the original section in English has been translation, how
- up-to-date is the translation, and whether the translation has
- already been updated after Grand Documentation Project (GDP) was
- started.
-</p>
-
-<p>Please note that GDP makes a lot of changes to documentation in
- English, therefore translated documentation is mostly not
- up-to-date; however, this does not mean translated documentation is
- inaccurate regarding current LilyPond version, it only means that
- translated docmentation is not synced with documentation in English.
- We do our best to keep translated documentation consistent with
- current LilyPond syntax and features, and will update it per
- section, when GDP processing of the corresponding section in English
- is finished.
-</p>
-
-</body>
-</html>
--- /dev/null
+<html>
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+</body>
+</html>
# 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
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
$(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 $(@)
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!
A basic example of a lilypond input file is
@example
-\version "@version{}"
+\version @w{"@version{}"}
\score @{
@var{...compound music expression...} % all the music goes here!
\header @{ @}
soprano part).
@example
-\version "2.11.38"
+\version @w{"@version{}"}
melody = \relative c' @{
\clef treble
\key c \major
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
different notes.
@example
-\version "2.11.38"
+\version @w{"@version{}"}
sopranoMusic = \relative c' @{
\clef treble
\key c \major
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
@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"
and key:
@example
-\version "2.11.38"
+\version @w{"@version{}"}
\header @{
title = "Jesu, meine Freude"
composer = "J S Bach"
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
@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
@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}
version that you are working on. See TRANSLATION for details.
@end ignore
-@c FIXME: will deal with later.
-@c @value{version}
@macro version
-2.11.41
+@value{version}
@end macro
@c ***** Displaying text *****
@ref{\TEXT\,,,lilypond-learning-big-page}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets-big-page}
+@end macro
+
@end ifset
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifclear
@end ifhtml
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifdocbook
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifinfo
@macro rprogram{TEXT}
program usage manual, @ref{\TEXT\,,,lilypond-program}
-@c @internalsref{\TEXT\}
@end macro
@macro ruser{TEXT}
notation reference, @ref{\TEXT\,,,lilypond}
-@c @internalsref{\TEXT\}
@end macro
@macro rlearning{TEXT}
learning manual, @ref{\TEXT\,,,lilypond-learning}
-@c @internalsref{\TEXT\}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
@end macro
@end iftex
@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
was used to write the file:
@example
-\version "@version{}"
+\version @w{"@version{}"}
@end example
@noindent
underneath the @ref{Version number}.
@example
-\version "@version{}"
+\version @w{"@version{}"}
\header @{
title = "Symphony"
composer = "Me"
@example
%%% global.ly
-\version "@version{}"
+\version @w{"@version{}"}
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
\include "../init/init-layout.ly"
quotes), or generally if @version{} is not followed by a space,
enclose it with
- @w{ ... }
+ @w{ ... }
e.g.
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
in_f.close()
s = re.sub ('%', '%%', s)
- s = replace_symlinks_urls (s, prefix)
+ s = hack_urls (s, prefix)
s = add_header (s)
### add footer
raise Exception ('unknown option: ' + o)
def name2line (n):
- # UGR
s = r"""
@ifhtml
@html
-<A NAME="%s"></A>
+<a name="%s"></a>
@end html
@end ifhtml
-@lilypondfile[%s]{%s}""" % (n, fragment_options, n)
+@lilypondfile[%s]{%s}
+""" % (os.path.basename (n), fragment_options, n)
return s
if files:
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
import string
import os
import gettext
+import subprocess
def progress (str):
sys.stderr.write (str + '\n')
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)
'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')
}
'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 ()
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.
'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):
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 ()
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
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 ())
progress ("Generating status pages...")
-main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')[0]
main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
html_re = re.compile ('<html>', re.I)
main_status_page = html_re.sub ('''<html>
<!-- This page is automatically generated by translation-status.py from
-translations.template.html; DO NOT EDIT !-->''', main_status_page)
+translations.template.html.in; DO NOT EDIT !-->''', main_status_page)
main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
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')
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)
$(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
--- /dev/null
+\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
+++ /dev/null
-\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
-# 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 $<
$(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)
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
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=)
$(outdir)/%.lisp \
$(outdir)/%.otf-gtable \
$(outdir)/%.enc \
-$(outdir)/%.dep: $(outdir)/%.log
+$(outdir)/%.pe: $(outdir)/%.log
$(PYTHON) $(buildscript-dir)/mf-to-table.py \
--global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
--lisp=$(outdir)/$(<F:.log=.lisp) \
--outdir=$(outdir) \
- --dep $(outdir)/$(<F:.log=.dep) \
--enc $(outdir)/$(<F:.log=.enc) \
$<
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
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
'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)
'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'))
## 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)
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",
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)
import getopt
import sys
import os
-import string
dsr_font_regex = re.compile ('%%DocumentSuppliedResources: font (.*)')
begin_font_regex = re.compile ('%%BeginFont: (.*)')
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')
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:
import os
import re
import shutil
-import string
import sys
import optparse
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):
import os
import sys
-import string
import re
"""
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",
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]:
-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:
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)
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,
#
# Is this pythonic? Personally, I find this rather #define-nesque. --hwn
#
+ADDVERSION = 'addversion'
AFTER = 'after'
BEFORE = 'before'
DOCBOOK = 'docbook'
VERBATIM,
FONTLOAD,
FILENAME,
- ALT
+ ALT,
+ ADDVERSION
]
ly_options = {
''',
VERBATIM: r'''@exampleindent 0
-@verbatim
+%(version)s@verbatim
%(verb)s@end verbatim
''',
+
+ ADDVERSION: r'''@example
+\version @w{"@version{}"}
+@end example
+'''
},
}
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'
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}
## 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
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)\
TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@)) --version $(TOPLEVEL_VERSION) $< > $@
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)'
% 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
\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.
\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
}%
}
-%
% 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
\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
}
% 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
\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
\chardef\quoteleft=`\`
\chardef\quoteright=`\'
+
\message{page headings,}
\newskip\titlepagetopglue \titlepagetopglue = 1.5in
% @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.
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
+ \expandafter \let\csname top\endcsname=\ptextop % outer
\let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%