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
\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f
+ Translation of GIT committish: ef9e465a87b15c4fab12e08337a40b9afe1d3766
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c
-@c Info files are installed in subdirectories to allow images to be present.
-@c
-@dircategory LilyPond
+@c Info files are no longer installed in a subdirectory, images are
+@c expected to be found in lilypond/ subdirectory.
+@dircategory GNU LilyPond: el tipografiador de música.
@direntry
-* LilyPond: (lilypond/lilypond). El tipografiador de música de GNU.
-* abc2ly: (lilypond/lilypond-program)Invocar abc2ly. Importar archivos de ABC.
-* convert-ly: (lilypond/lilypond-program)Invocar convert-ly. Versiones de LilyPond antiguas.
-* etf2ly: (lilypond/lilypond-program)Invocar etf2ly. Importar archivos de Finale.
-* lilypond-book: (lilypond/lilypond-program)LilyPond-book. Integrar texto y música.
-* midi2ly: (lilypond/lilypond-program)Invocar midi2ly. Importar archivos MIDI.
+* LilyPond Learning Manual: (lilypond-learning). Comience por aquí.
+* Music Glossary: (music-glossary). Para usuarios de habla no inglesa.
+* LilyPond: (lilypond). Referencia de la notación con LilyPond.
+* LilyPond Internals Reference: (lilypond-internals). Definiciones para el trucaje.
+* LilyPond Application Usage: (lilypond-program). Instalar y ejecutar las aplicaciones.
+* abc2ly: (lilypond-program)Invocar abc2ly. Importar archivos de ABC.
+* convert-ly: (lilypond-program)Actualizar archivos mediante convert-ly. Versiones de LilyPond antiguas.
+* etf2ly: (lilypond-program)Invocar etf2ly. Importar archivos de Finale.
+* lilypond-book: (lilypond-program)LilyPond-book. Integrar texto y música.
+* midi2ly: (lilypond-program)Invocar midi2ly. Importar archivos MIDI.
+* musicxml2ly: (lilypond-program)Invocar musicxml2ly. Importar MusicXML.
@end direntry
@c don't remove this comment.
@top GNU LilyPond --- El tipografiador de música
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-Éste es el manual del usuario para GNU LilyPond versión @version{}.
+Éste es el manual del usuario del programa GNU LilyPond versión @version{}.
@cindex web, sitio
@cindex URL
@c TRANSLATE ME
@menu
-* Musical notation:: Musical notation.
-* Specialist notation:: Notation which is only used for
-specicific purposes.
-* Changing defaults:: Ajuste fino de la salida.
+* Musical notation:: Notación musical.
+* Specialist notation:: Notación especializada.
+* Input syntax:: General information about lilypond input files.
* Non-musical notation:: Salida que no es notación musical.
* Spacing issues:: Presentación de la salida sobre papel.
+* Changing defaults:: Ajuste fino de la salida.
* Interfaces for programmers:: Utilización por expertos.
Apéndices
* Literature list:: Obras de referencia sobre notación musical.
-* Scheme tutorial:: Programación dentro de LilyPond.
* Notation manual tables:: Tablas y cuadros.
-* Templates:: Plantillas ya preparadas.
* Cheat sheet:: Resumen de la sintaxis de LilyPond.
* GNU Free Documentation License:: Licencia de este documento.
* LilyPond command index::
@include notation.itely
@include specialist.itely
-@include changing-defaults.itely
+@include input.itely
@include non-music.itely
@include spacing.itely
-@include programming-interface.itely
+@include changing-defaults.itely
+@include programming-interface.itely
@include literature.itely
-@include scheme-tutorial.itely
@include notation-appendices.itely
-@include templates.itely
@include cheatsheet.itely
@include fdl.itexi
@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!
gis a
\override NoteHead #'color = #(x11-color "LimeGreen")
gis a
-
% this is deliberate nonsense; note that the stems remain black
\override Stem #'color = #(x11-color 'Boggle)
b2 cis
@cindex parentheses
Objects may be parenthesized by prefixing @code{\parenthesize} to
-the music event,
+the music event. This only functions inside chords; to
+parenthesize a single note it must be enclosed with @code{<>} as
+if it is a chord.
@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
- c
- \parenthesize d
- g
->2-\parenthesize -.
-d g
-<
- c,
- \parenthesize fis
->
+c2 < \parenthesize d>
+<\parenthesize e> d
@end lilypond
-This only functions inside chords, to parenthesize a single note it
-must be enclosed with @code{<>} as if it is a chord.
-
-@example
-< \parenthesize NOTE>
-@end example
+Non-note objects may be parenthesized as well.
@lilypond[relative=2,fragment,verbatim,ragged-right]
-c4
-<\parenthesize d>
-g
-<\parenthesize d>
+< c \parenthesize d g >2-\parenthesize -. d
+g < c, \parenthesize fis >
@end lilypond
@seealso
\layout {
\context {
\Staff
- \consists "Grid_point_engraver" %% sets of grid
+ \consists "Grid_point_engraver"
+ % sets up grids
gridInterval = #(ly:make-moment 1 4)
+ % this sets the grid interval to 1 quarternote (crotchet)
}
}
\new Score \with {
\consists "Grid_line_span_engraver"
- %% centers grid lines horizontally below note heads
+ %% centers grid lines horizontally below note heads by default
+ %the grid lines are aligned with the left side of the notehead
\override NoteColumn #'X-offset = #-0.5
+ % this moves them to the right half a staff space
}
\new ChoirStaff <<
}
}
\new Staff {
- %% centers grid lines vertically
\override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+ % by default the grid lines join the middle line of each staff,
+ % this moves them up one staff space
\stemDown
\clef bass
\relative c {
A basic example of a lilypond input file is
@example
-\version "2.11.38"
+\version @w{"@version{}"}
\score @{
@var{...compound music expression...} % all the music goes here!
\header @{ @}
output. This is a crude way of modifying the output, but it
can sometimes be useful.
-@subsubsection Changing a single context
+@subsubheading Changing a single context
To remove an engraver from a single context we use the
@code{\with} command placed immediately after the context creation
>>
@end lilypond
-@subsubsection Changing all contexts of the same type
+@subsubheading Changing all contexts of the same type
The examples above show how to remove or add engravers to
individual contexts. It is also possible to remove or add
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"
FIXME: don't complain about anything in this chapter. It's still
under heavy development.
+FIXME: add comments
+@verbatim
+% %{
+@end verbatim
+to 3.1.
+
@menu
* Input files::
* Common syntax issues TODO name?::
also mention the typical \fooDown, \fooNeutral predefined commands.
+also mention that some directions are (without other tweaking)
+always up or always down (like dynamics or fermata), while other
+things can alternate between up or down based on the stem direction
+(like slurs or accents).
+
@node Distances and measurements MAYBE MOVE
@subsection Distances and measurements MAYBE MOVE
Save the code above to a file called @file{lilybook.lytex}, then in a
terminal run
+@c keep space after @version{} so TeX doesn't choke
@example
lilypond-book --output=out --pdf lilybook.lytex
-@emph{lilypond-book (GNU LilyPond) 2.11.37}
+@emph{lilypond-book (GNU LilyPond) @version{} }
@emph{Reading lilybook.lytex...}
@emph{..lots of stuff deleted..}
@emph{Compiling lilybook.tex...}
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}
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@c don't remove this comment.
@ignore
@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Learning Manual of the LilyPond music engraving system
@omftype program usage
@omfcategory Applications|Publishing
@omflanguage English
@vskip 20pt
-@lilypond[ragged-right]
-\score {
- \context Lyrics {
- \override Score.RehearsalMark #'self-alignment-X = #LEFT
- \override Score.RehearsalMark #'font-size = #-2
- \mark #(ly:export (string-append
- "(For LilyPond version " (lilypond-version) ")"))
- s2
- }
- \layout {
- indent = 0.0\pt
- }
-}
-@end lilypond
-
+For LilyPond version @version{}
@end titlepage
@copying
@ifnottex
@node Top
@top GNU LilyPond --- learning manual
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the learning manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the learning manual for GNU LilyPond version @version{}.
@cindex web site
@cindex URL
@contents
-@include macros.itexi
-
@include preface.itely
@include introduction.itely
@include tutorial.itely
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@c don't remove this comment.
@ignore
@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Program Usage of the LilyPond music engraving system
@omftype program usage
@omfcategory Applications|Publishing
@omflanguage English
@vskip 20pt
-@lilypond[ragged-right]
-\score {
- \context Lyrics {
- \override Score.RehearsalMark #'self-alignment-X = #LEFT
- \override Score.RehearsalMark #'font-size = #-2
- \mark #(ly:export (string-append
- "(For LilyPond version " (lilypond-version) ")"))
- s2
- }
- \layout {
- indent = 0.0\pt
- }
-}
-@end lilypond
-
+For LilyPond version @version{}
@end titlepage
@copying
@top GNU LilyPond --- program usage
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the program usage manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the program usage manual for GNU LilyPond version @version{}.
@cindex web site
@cindex URL
@contents
-@include macros.itexi
-
@include install.itely
@include setup.itely
@include running.itely
version that you are working on. See TRANSLATION for details.
@end ignore
@setfilename lilypond.info
-@settitle GNU LilyPond user manual
+@settitle GNU LilyPond User Manual
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@c don't remove this comment.
@ignore
@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Notation Reference of the LilyPond music engraving system
@omftype user manual
@omfcategory Applications|Publishing
@omflanguage English
@titlepage
@title LilyPond
@subtitle The music typesetter
-@titlefont{User manual}
+@titlefont{Notation Reference}
@author The LilyPond development team
Copyright @copyright{} 1999--2007 by the authors
@vskip 20pt
-@lilypond[ragged-right]
-\score {
- \context Lyrics {
- \override Score.RehearsalMark #'self-alignment-X = #LEFT
- \override Score.RehearsalMark #'font-size = #-2
- \mark #(ly:export (string-append
- "(For LilyPond version " (lilypond-version) ")"))
- s2
- }
- \layout {
- indent = 0.0\pt
- }
-}
-@end lilypond
-
+For LilyPond version @version{}
@end titlepage
@copying
@top GNU LilyPond --- The music typesetter
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the user manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the User Manual for GNU LilyPond version @version{}.
@cindex web site
@cindex URL
@contents
-@include macros.itexi
-
@include notation.itely
@include specialist.itely
@end ignore
@macro version
-@c @value{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
@c TODO: multiple omfcreators?
@ignore
-@omfcreator Christian Mondrup
+@omfcreator Christian Mondrup, Kurt Kroon
@omfdescription Glossary of musical terms with translations
-@omftype user's guide
+@omftype glossary
@omfcategory Applications|Publishing
@omflanguage English
@end ignore
@node Note heads
@subsection Note heads
+This section suggests ways of altering note heads.
+
@menu
* Special note heads::
* Easy notation note heads::
@cindex triplets
@funindex \times
-Tuplets are made out of a music expression by multiplying all
+Tuplets are made from a music expression by multiplying all the
durations with a fraction:
@example
The duration of @var{musicexpr} will be multiplied by the
fraction. The fraction's denominator will be printed over or
under the notes, optionally with a bracket. The most common
-tuplet is the triplet in which 3 notes have the length of 2, so
+tuplet is the triplet in which 3 notes have the duration of 2, so
the notes are 2/3 of their written length.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
Tuplets may be nested:
-@lilypond[fragment,ragged-right,verbatim,relative=2]
-\relative c'' {
- \autoBeamOff
- c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
-}
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\autoBeamOff
+c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
@end lilypond
Modifying nested tuplets which begin at the same musical moment
@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
{entering-several-tuplets-using-only-one--times-command.ly}
-@ignore
-@c TODO Remove when snippet works ok
-@c Sent to Snippet 5 Feb 08
-The property @code{tupletSpannerDuration} specifies how long each
-bracket should last. With this, you can make lots of tuplets
-while typing @code{\times} only once, thus saving lots of typing.
-In the next example, there are two triplets shown, while
-@code{\times} was only used once.
-
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\set tupletSpannerDuration = #(ly:make-moment 1 4)
-\times 2/3 { c8 c c c c c }
-@end lilypond
-@end ignore
-
@noindent
For more information about @code{make-moment}, see
@ref{Time administration}.
@code{\compressMusic} works similarly to \times, but does not
create a tuplet bracket. One application is in polymetric
-notation, as shown in the following example. See
-@ref{Polymetric notation}.
+notation, see @ref{Polymetric notation}.
@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
{printing-music-with-different-time-signatures.ly}
+
@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 "2.11.38"
+\version @w{"@version{}"}
@end example
@noindent
underneath the @ref{Version number}.
@example
-\version "2.11.38"
+\version @w{"@version{}"}
\header @{
title = "Symphony"
composer = "Me"
at first, so we can be sure the command is working. We get:
@example
- \override Slur #'thickness = #5.0
+\override Slur #'thickness = #5.0
@end example
Don't forget the @code{#'} preceding the
in italics should be
@example
- \override LyricText #'font-shape = #'italic
+\override LyricText #'font-shape = #'italic
@end example
@noindent
the interpreter cannot recognise them. So the command should be:
@example
- \override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics . LyricText #'font-shape = #'italic
@end example
@warning{In lyrics always leave whitespace between the final
by placing the overrides in a Score @code{\with} block, rather than
in-line in music, as follows:
-@verbatim
-\new Score \with {
+@example
+\new Score \with @{
% Makes sure text scripts and lyrics are within the paper margins
\override PaperColumn #'keep-inside-line = ##t
\override NonMusicalPaperColumn #'keep-inside-line = ##t
-} {
+@} @{
..
-}
-@end verbatim
+@}
+@end example
@node Advanced tweaks with Scheme
@subsection Advanced tweaks with Scheme
#(define (color-notehead grob)
"Color the notehead according to its position on the staff."
(let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
- (case mod-position ; Set rainbow colors
- ((1) (ly:grob-set-property! grob 'color (x11-color 'red)))
- ((2) (ly:grob-set-property! grob 'color (x11-color 'orange)))
- ((3) (ly:grob-set-property! grob 'color (x11-color 'yellow)))
- ((4) (ly:grob-set-property! grob 'color (x11-color 'green)))
- ((5) (ly:grob-set-property! grob 'color (x11-color 'blue)))
- ((6) (ly:grob-set-property! grob 'color (x11-color 'purple)))
- ((0) (ly:grob-set-property! grob 'color (x11-color 'violet)))
- )
+ (case mod-position
+ ;; Return rainbow colors
+ ((1) (x11-color 'red )) ; for C
+ ((2) (x11-color 'orange )) ; for D
+ ((3) (x11-color 'yellow )) ; for E
+ ((4) (x11-color 'green )) ; for F
+ ((5) (x11-color 'blue )) ; for G
+ ((6) (x11-color 'purple )) ; for A
+ ((0) (x11-color 'violet )) ; for B
+ )
)
)
-rainbow = {
- % Override color so it is obtained from color-notehead Scheme function
- \override NoteHead #'color = #color-notehead
-}
-
\relative c' {
- \rainbow {
- c2 c' |
- b4 g8 a b4 c |
- c,2 a' |
- g1 |
- }
+ % Arrange to obtain color from color-notehead procedure
+ \override NoteHead #'color = #color-notehead
+ c2 c' |
+ b4 g8 a b4 c |
+ c,2 a' |
+ g1 |
}
\addlyrics {
- Some -- where o -- ver the Rain -- bow, way up high,
+ Some -- where o -- ver the Rain -- bow way up high,
}
@end lilypond
highly recommend that you always include the @code{\version}, no matter
how small your file is. Speaking from personal experience, it's
quite frustrating to try to remember which version of LilyPond you were
-using a few years ago. @code{convert-ly} requires you to declare
+using a few years ago. @command{convert-ly} requires you to declare
which version of LilyPond you used.
@item @strong{Include checks}: @ruser{Bar and barnumber checks},
@example
%%% global.ly
-\version "2.11.38"
+\version @w{"@version{}"}
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
\include "../init/init-layout.ly"
Do not use @itemize @bullet.
+* To get LilyPond version, use @version{} (this does not work inside
+ LilyPond snippets). If you write "@version{}" (enclosed with
+ quotes), or generally if @version{} is not followed by a space,
+ enclose it with
+
+ @w{ ... }
+
+ e.g.
+
+ @w{"@version{}"}
+
+ to prevent an ugly line break in PDF output.
+
%%%%% SYNTAX SURVEY
rsync -rl $(outdir)/offline-root/ $(DESTDIR)$(webdir)
$(MAKE) -C Documentation/user local-install-WWW
$(MAKE) -C Documentation/user install-info
+ $(MAKE) -C input/lsr install-info
install-help2man:
$(MAKE) -C scripts man install-help2man
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
else:
raise Exception ('unknown option: ' + o)
-def shorten_file_name (n):
- # ugh, regtests file names appear as full paths in GUB builds
- # we try to do something here
- b = os.path.basename (n)
- if os.path.exists (b):
- return b
- return n
-
def name2line (n):
- # UGR
s = r"""
@ifhtml
@html
-<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:
name = os.path.basename (name)
template = template % vars ()
- files = map (shorten_file_name, files)
files.sort ()
s = "\n".join (map (name2line, files))
s = template.replace (include_snippets, s, 1)
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
d'8-2 \staccato
|
c'4-3
- r8
- r16.
- c'32-3 \pp
- |
- c'8-2
- r16.
- c'32
- c'8
- r16.
- c'32
- |
- c'8
+ r4
}
% LH Staff
d8-2 \staccato
|
c4-3
- r8
- r16.
- c32-3
- |
- c8-2
- r16.
- c32
- c8
- r16.
- c32
- |
- c8
+ r4
}
>>
<part id="P1">
<measure number="1">
<attributes>
- <divisions>32</divisions>
+ <divisions>64</divisions>
<key>
<fifths>0</fifths>
<mode>major</mode>
</key>
- <time symbol="common">
- <beats>4</beats>
+ <time>
+ <beats>16</beats>
<beat-type>4</beat-type>
</time>
<clef>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>128</duration>
- <tie type="start"/>
+ <duration>1024</duration>
<voice>1</voice>
- <type>whole</type>
- <notations>
- <tied type="start"/>
- </notations>
+ <type>longa</type>
</note>
</measure>
<!--=======================================================-->
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>128</duration>
- <tie type="stop"/>
+ <duration>512</duration>
<voice>1</voice>
- <type>whole</type>
- <notations>
- <tied type="stop"/>
- </notations>
+ <type>breve</type>
</note>
- </measure>
- <!--=======================================================-->
- <measure number="3">
<note>
<pitch>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>128</duration>
+ <duration>256</duration>
<voice>1</voice>
<type>whole</type>
</note>
- </measure>
- <!--=======================================================-->
- <measure number="4">
<note>
<pitch>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>64</duration>
+ <duration>128</duration>
<voice>1</voice>
<type>half</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>32</duration>
+ <duration>64</duration>
<voice>1</voice>
<type>quarter</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>16</duration>
+ <duration>32</duration>
<voice>1</voice>
<type>eighth</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>8</duration>
+ <duration>16</duration>
<voice>1</voice>
<type>16th</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>4</duration>
+ <duration>8</duration>
<voice>1</voice>
<type>32nd</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>2</duration>
+ <duration>4</duration>
<voice>1</voice>
<type>64th</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>1</duration>
+ <duration>2</duration>
<voice>1</voice>
<type>128th</type>
<stem>down</stem>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>1</duration>
+ <duration>2</duration>
<voice>1</voice>
<type>128th</type>
<stem>down</stem>
</note>
</measure>
<!--=======================================================-->
+ <measure number="4">
+ <attributes>
+ <time>
+ <beats>24</beats>
+ <beat-type>4</beat-type>
+ </time>
+ </attributes>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1536</duration>
+ <voice>1</voice>
+ <type>longa</type>
+ <dot/>
+ </note>
+ </measure>
+ <!--=======================================================-->
<measure number="5">
<note>
<pitch>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>96</duration>
+ <duration>768</duration>
<voice>1</voice>
- <type>half</type>
+ <type>breve</type>
<dot/>
- <stem>down</stem>
</note>
<note>
<pitch>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>32</duration>
+ <duration>384</duration>
<voice>1</voice>
- <type>quarter</type>
- <stem>down</stem>
+ <type>whole</type>
+ <dot/>
</note>
- </measure>
- <!--=======================================================-->
- <measure number="6">
<note>
<pitch>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>48</duration>
+ <duration>192</duration>
+ <voice>1</voice>
+ <type>half</type>
+ <dot/>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>96</duration>
<voice>1</voice>
<type>quarter</type>
<dot/>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>24</duration>
+ <duration>48</duration>
<voice>1</voice>
<type>eighth</type>
<dot/>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>12</duration>
+ <duration>24</duration>
<voice>1</voice>
<type>16th</type>
<dot/>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>6</duration>
+ <duration>12</duration>
<voice>1</voice>
<type>32nd</type>
<dot/>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>3</duration>
+ <duration>6</duration>
<voice>1</voice>
<type>64th</type>
<dot/>
- <stem>down</stem>
<beam number="1">continue</beam>
<beam number="2">continue</beam>
<beam number="3">continue</beam>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>2</duration>
+ <duration>3</duration>
<voice>1</voice>
<type>128th</type>
<dot/>
- <stem>down</stem>
<beam number="1">continue</beam>
<beam number="2">continue</beam>
<beam number="3">continue</beam>
<step>C</step>
<octave>5</octave>
</pitch>
- <duration>2</duration>
+ <duration>3</duration>
<voice>1</voice>
<type>128th</type>
<dot/>
- <stem>down</stem>
<beam number="1">end</beam>
<beam number="2">end</beam>
<beam number="3">end</beam>
<beam number="4">end</beam>
<beam number="5">end</beam>
</note>
+ </measure>
+ <!--=======================================================-->
+ <measure number="6">
+ <attributes>
+ <time>
+ <beats>28</beats>
+ <beat-type>4</beat-type>
+ </time>
+ </attributes>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1792</duration>
+ <voice>1</voice>
+ <type>longa</type>
+ <dot/>
+ <dot/>
+ </note>
+ </measure>
+ <!--=======================================================-->
+ <measure number="7">
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>896</duration>
+ <voice>1</voice>
+ <type>breve</type>
+ <dot/>
+ <dot/>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>448</duration>
+ <voice>1</voice>
+ <type>whole</type>
+ <dot/>
+ <dot/>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>224</duration>
+ <voice>1</voice>
+ <type>half</type>
+ <dot/>
+ <dot/>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>112</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <dot/>
+ <dot/>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>56</duration>
+ <voice>1</voice>
+ <type>eighth</type>
+ <dot/>
+ <dot/>
+ <beam number="1">begin</beam>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>28</duration>
+ <voice>1</voice>
+ <type>16th</type>
+ <dot/>
+ <dot/>
+ <beam number="1">continue</beam>
+ <beam number="2">begin</beam>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>14</duration>
+ <voice>1</voice>
+ <type>32nd</type>
+ <dot/>
+ <dot/>
+ <beam number="1">continue</beam>
+ <beam number="2">continue</beam>
+ <beam number="3">begin</beam>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>7</duration>
+ <voice>1</voice>
+ <type>64th</type>
+ <dot/>
+ <dot/>
+ <beam number="1">continue</beam>
+ <beam number="2">continue</beam>
+ <beam number="3">continue</beam>
+ <beam number="4">begin</beam>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>7</duration>
+ <voice>1</voice>
+ <type>64th</type>
+ <dot/>
+ <dot/>
+ <beam number="1">end</beam>
+ <beam number="2">end</beam>
+ <beam number="3">end</beam>
+ <beam number="4">end</beam>
+ </note>
<barline location="right">
<bar-style>light-heavy</bar-style>
</barline>
}
details = scm_acons (ly_symbol2scm ("X"),
- scm_from_double (bound_grob->extent (commonx, X_AXIS)
+ scm_from_double (robust_relative_extent (bound_grob, commonx, X_AXIS)
.linear_combination (attach)),
details);
}
line.translate (Offset (-me->relative_coordinate (commonx, X_AXIS),
-me->relative_coordinate (my_common_y, Y_AXIS)));
-
+
return line.smobbed_copy ();
}
/*
- If a variable in changed in SRC, we DEST doesn't see the
+ If a variable is changed in SRC, then DEST doesn't see the
definitions.
*/
"@code{force-hshift} and @code{horizontal-shift}.",
/* properties */
- "ignore-collision "
"merge-differently-dotted "
"merge-differently-headed "
"positioning-done ");
"arpeggio "
"force-hshift "
"horizontal-shift "
+ "ignore-collision "
"note-heads "
"rest "
"rest-collision "
-# 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 sys
import string
import re
-import lilylib
+import lilylib as ly
-_ = lilylib._
+_ = ly._
from rational import Rational
def ly_expression (self, factor = None):
if not factor:
factor = self.factor
-
- str = '%d%s' % (1 << self.duration_log, '.'*self.dots)
+
+ if self.duration_log < 0:
+ str = {-1: "\\breve", -2: "\\longa"}.get (self.duration_log, "1")
+ else:
+ str = '%d' % (1 << self.duration_log)
+ str += '.'*self.dots
if factor <> Rational (1,1):
if factor.denominator () <> 1:
import re
import sys
import copy
-import lilylib
+import lilylib as ly
-_ = lilylib._
+_ = ly._
def error (str):
ly.stderr_write ((_ ("error: %s") % str) + "\n")
return ''.join ([c.get_text () for c in self._children])
def message (self, msg):
- lilylib.stderr_write (msg+'\n')
+ ly.stderr_write (msg+'\n')
p = self
while p:
'half': 1,
'whole': 0,
'breve': -1,
- 'long': -2}.get (log, 0)
+ 'longa': -2}.get (log, 0)
elif self.get_maybe_exist_named_child (u'grace'):
# FIXME: is it ok to default to eight note for grace notes?
return 3
if instrument_name:
return instrument_name
else:
- lilylib.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id)
+ ly.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id)
return "Grand Piano"
class Part_group (Music_xml_node):
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}
else:
duration_factor = Rational (diff.numerator ())
else:
+ # for skips of a whole or more, simply use s1*factor
duration_log = 0
duration_factor = diff
skip.duration.duration_log = duration_log
## 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)\
OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt))
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@)) --version $(TOPLEVEL_VERSION) $< > $@
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
-MAKEINFO_FLAGS = --enable-encoding
+MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)'
MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
% 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}}%