snippet-update:
$(PYTHON) $(buildscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely'
-endif
+DOCUMENTS_INCLUDES:=-I $(ISOLANG)/user \
+-I $(top-build-dir)/Documentation/$(ISOLANG)/user/out-www \
+-I $(top-src-dir)/input/lsr \
+-I $(top-build-dir)/input/lsr/out-www \
+-I user -I $(top-build-dir)/Documentation/user/out-www
+
+else # ISOLANG is empty
+
+DOCUMENTS_INCLUDES:=-I user \
+-I $(top-build-dir)/Documentation/user/out-www \
+-I $(top-src-dir)/input/lsr \
+-I $(top-build-dir)/input/lsr/out-www
+
+endif # ISOLANG
+
+check-xrefs:
+ $(PYTHON) $(buildscript-dir)/check_texi_refs.py --batch \
+ $(DOCUMENTS_INCLUDES) $(buildscript-dir)/manuals_definitions.py
+
+fix-xrefs:
+ $(PYTHON) $(buildscript-dir)/check_texi_refs.py --auto-fix \
+ $(DOCUMENTS_INCLUDES) $(buildscript-dir)/manuals_definitions.py
check-translation:
$(PYTHON) $(buildscript-dir)/check_translation.py $(buildscript-dir) $(CHECKED_FILES)
Für die Notation Alter Musik kann ein Notenkopfstil ausgewählt werden, der sich
vom Standard (@code{default}) unterscheidet. Dies wird erreicht, indem die
-@code{style}-Eigenschaft der Notenkopf-(@internalsref{NoteHead})-Objekte auf
+@code{style}-Eigenschaft der Notenkopf-(@rinternals{NoteHead})-Objekte auf
einen der Werte @code{baroque}, @code{neomensural}, @code{mensural} oder
@code{petrucci} gesetzt wird. Der barocke (@code{baroque}) Stil unterscheidet
sich vom Standard (@code{default}) nur in sofern, als eine viereckige Form für
@end lilypond
Für die Notation des Gregorianischen Chorals werden vom
-@internalsref{Gregorian_ligature_engraver} automatisch die richtigen Notenköpfe
+@rinternals{Gregorian_ligature_engraver} automatisch die richtigen Notenköpfe
ausgewählt, so dass man den Stil nicht manuell setzen muss. Trotzdem kann
der Stil manuell verändert werden, z. B. auf den Wert
@code{vaticana_punctum}, um Punktum-Neumen zu produzieren. Gleichfalls erstellt
-der @internalsref{Mensural_ligature_engraver} automatisch Ligaturen der
+der @rinternals{Mensural_ligature_engraver} automatisch Ligaturen der
Mensuralnotation. Siehe @ref{Ligatures} zu einer Übersicht über die Funktion
und Notation von Ligaturen.
Mit der @code{glyph-name-alist}-Eigenschaft der
-Versetzungszeichen-(@internalsref{Accidental})- und
-Vorzeichen-(@internalsref{KeySignature})-Eigenschaften können Vorzeichen
+Versetzungszeichen-(@rinternals{Accidental})- und
+Vorzeichen-(@rinternals{KeySignature})-Eigenschaften können Vorzeichen
und Versetzungszeichen für die Alte Musik ausgewählt werden.
@lilypond[quote,ragged-right,staffsize=26]
Ähnlich wie Versetzungszeichen können auch die Vorzeichen für die Angabe der
Tonart verändert werden, indem die @code{glyph-name-alist}-Eigenschaft
-des @internalsref{KeySignature}-Objektes gesetzt wird.
+des @rinternals{KeySignature}-Objektes gesetzt wird.
@seealso
von Versetzungszeichen. Der Abschnitt @ref{Key signature} zeigt die allgemeine
Benutzung von Vorzeichen.
-Programmreferenz: @internalsref{KeySignature}.
+Programmreferenz: @rinternals{KeySignature}.
Beispiele: @lsrdir{ancient}.
Besondere Pausensymbole für die Notation der Alten Musik können mit der
@code{style}-Eigenschaft des graphischen Objektes (grob) @qq{Pause}
-(@internalsref{Rest}) angewählt werden. Unterstützte Stile sind
+(@rinternals{Rest}) angewählt werden. Unterstützte Stile sind
klassisch (@code{classical}), @code{neomensural} und @code{mensural}.
Der klassische (@code{classical}) Stil unterscheidet sich vom Standardstil
(@code{default}) nur darin, dass die Viertelpause wie eine gespiegelte
@cindex Fähnchen, Alte Musik
Mit der Fähnchen-(@code{flag-style})-Eigenschaft der graphischen Objekte
-@qq{Hals} (@internalsref{Stem}) können auch Fähnchen passend zu den Notenköpfen
+@qq{Hals} (@rinternals{Stem}) können auch Fähnchen passend zu den Notenköpfen
der Alten Musik gesetzt werden. Neben dem Standardstil (@code{default}) ist
auch ein mensuraler Stil (@code{mensural}) unterstützt.
}
@end lilypond
-Mit der @code{style}-Eigenschaft des Objektes @internalsref{TimeSignature}
+Mit der @code{style}-Eigenschaft des Objektes @rinternals{TimeSignature}
können die Taktarten angewählt werden. Unterstützte Stile sind:
@code{neomensural} und @code{mensural}. In der Tabelle oben wurde der
neomensurale Stil verwendet. Dieser Stil ist geeignet, um im Incipt von
@emph{editio vaticana}. LilyPond stellt unterschiedliche Custos-Symbole für
die unterschiedlichen Notationsstile zur Verfügung.
-Damit Custodes angezeigt werden, muss ein @internalsref{Custos_engraver}
-im @internalsref{Staff}-Kontext gefordert werden. Der Aufruf folgt im Rahmen
+Damit Custodes angezeigt werden, muss ein @rinternals{Custos_engraver}
+im @rinternals{Staff}-Kontext gefordert werden. Der Aufruf folgt im Rahmen
des Layout-Kontextes, wie das folgende Beispiel zeigt.
@example
@seealso
-Programmreferenz: @internalsref{Custos}.
+Programmreferenz: @rinternals{Custos}.
Examples:
@lsr{ancient,custodes@/.ly}.
In diesem Handbuch: @ref{Breath marks}.
-Programmreferenz: @internalsref{BreathingSign}.
+Programmreferenz: @rinternals{BreathingSign}.
Beispiele: @lsr{expressive,breathing-sign.ly}.
Ligaturen werden eingegeben, indem die dazugehörigen Noten zwischen
@code{\[} und @code{\]} eingeschlossen werden. Einige Ligaturstile benötigen
zusätzliche Syntax für eine bestimmte Ligatur. In der Standardeinstellung
-setzt der @internalsref{LigatureBracket} ganz einfach eckige Klammern über
+setzt der @rinternals{LigatureBracket} ganz einfach eckige Klammern über
die Noten der Ligatur.
@lilypond[quote,ragged-right,verbatim]
Begrenzte Unterstützung für Ligaturen der weißen Mensuralnotation.
Um weiße Mensuralligaturen zu benutzen, muss innerhalb des Layout-Blocks
-im @internalsref{Voice}-Kontext der @internalsref{Mensural_ligature_engraver}
+im @rinternals{Voice}-Kontext der @rinternals{Mensural_ligature_engraver}
aktiviert werden und gleichzeitig der
-@internalsref{Ligature_bracket_engraver} (der die Klammern über den Noten
+@rinternals{Ligature_bracket_engraver} (der die Klammern über den Noten
setzt) entfernt werden, wie im Beispiel.
@example
}
@end lilypond
-Wenn der @internalsref{Ligature_bracket_engraver} nicht durch den
-@internalsref{Mensural_ligature_engraver} ersetzt wird, werden die Noten
+Wenn der @rinternals{Ligature_bracket_engraver} nicht durch den
+@rinternals{Mensural_ligature_engraver} ersetzt wird, werden die Noten
wie folgt ausgegeben:
@lilypond[quote,ragged-right]
@seealso
-Programmreferenz: @internalsref{Accidental_engraver}-Setzer und das
-@internalsref{AccidentalSuggestion}-Objekt.
+Programmreferenz: @rinternals{Accidental_engraver}-Setzer und das
+@rinternals{AccidentalSuggestion}-Objekt.
@node Figured bass
@unnumberedsubsubsec Figured bass
Die Unterstützung besteht aus zwei Teilen: Es gibt einen Eingabe-Modus,
aktiviert durch den Befehl @code{\figuremode}, in dem Ziffern für den Bass
als Nummern eingegeben werden können, und einen Kontext
- @internalsref{FiguredBass}, der dafür sorgt, dass die entsprechenden
- @internalsref{BassFigure}-Objekte auch erstellt werden.
+ @rinternals{FiguredBass}, der dafür sorgt, dass die entsprechenden
+ @rinternals{BassFigure}-Objekte auch erstellt werden.
Im Eingabemodus wird eine Gruppe von Bassziffern mit den Zeichen
@code{<} and @code{>} begrenzt. Die Dauer wird nach dem @code{>}-Zeichen
Auch wenn die Unterstützung für bezifferten Bass anscheinend an die
Akkord-Notation erinnert, ist sie doch sehr viel einfacher. Der Modus
@code{\figuremode} speichert einfach die Ziffern und der
-@internalsref{FiguredBass}-Kontext gibt sie so aus, wie sie notiert
+@rinternals{FiguredBass}-Kontext gibt sie so aus, wie sie notiert
werden. Es gibt also keine Umrechnung von Tonhöhen und die Notation
wird in der MIDI-Datei nicht umgesetzt.
@seealso
-Programmreferenz: @internalsref{NewBassFigure}-,
-@internalsref{BassFigureAlignment}-, @internalsref{BassFigureLine}-,
-@internalsref{BassFigureBracket}- und
-@internalsref{BassFigureContinuation}-Objekte und der
-@internalsref{FiguredBass}-Kontext.
+Programmreferenz: @rinternals{NewBassFigure}-,
+@rinternals{BassFigureAlignment}-, @rinternals{BassFigureLine}-,
+@rinternals{BassFigureBracket}- und
+@rinternals{BassFigureContinuation}-Objekte und der
+@rinternals{FiguredBass}-Kontext.
@cindex Symbole, Akkord-
Um Akkordsymbole anstelle der Noten zu setzen, muss der
-@internalsref{ChordNames}-Kontext. Die Akkorde können entweder
+@rinternals{ChordNames}-Kontext. Die Akkorde können entweder
mit der Notation aus dem vorigen Abschnitt oder direkt
mit der Akkordeingabe für Noten (@code{<} und @code{>})
notiert werden.
In den vorangegangenen Beispielen wurden alle Akkorde über dem
Notensystem mit den entsprechenden Noten ausgegeben. Das ist aber
nicht erforderlich. Akkorde können auch alleine gedruckt werden.
-Dabei kann es nötig sein, @internalsref{Volta_engraver} und
-@internalsref{Bar_engraver} einzufügen, damit Wiederholungen
+Dabei kann es nötig sein, @rinternals{Volta_engraver} und
+@rinternals{Bar_engraver} einzufügen, damit Wiederholungen
angezeigt werden.
@lilypond[ragged-right,verbatim]
@seealso
-Programmreferenz: @internalsref{Fingering}.
+Programmreferenz: @rinternals{Fingering}.
Beispiele: @lsr{expressive,fingering-chords.ly}
@unnumberedsubsubsec Stems
Immer, wenn das Programm eine Note findet, wird automatisch
-ein Notenhals (@internalsref{Stem}) -Objekt erzeugt. Auch
+ein Notenhals (@rinternals{Stem}) -Objekt erzeugt. Auch
für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar
gemacht.
Die vertikale Anordnung der Zeichen wird durch die
@code{script-priority}-Eigenschaft kontrolliert. Je kleiner die Zahl
ist, umso näher wird das Zeichen an die Note gesetzt. In dem
-nächsten Beispiel hat das Textsymbol (@internalsref{TextScript}),
+nächsten Beispiel hat das Textsymbol (@rinternals{TextScript}),
ein Kreuz, die niedrigste Priorität und wird also als unterstes
-gesetzt. Im zweiten Beispiel hat der Praller (das @internalsref{Script})
+gesetzt. Im zweiten Beispiel hat der Praller (das @rinternals{Script})
die niedrigste Priorität und erscheint innen. Wenn zwei Objekte die
gleiche Priorität haben, entscheidet die Reihenfolge, in der sie notiert
sind, welches zuerst kommt.
@seealso
-Programmreferenz: @internalsref{Script}.
+Programmreferenz: @rinternals{Script}.
@knownissues
@end lilypond
Hier können allerdings sehr kurze Klammern auftreten. Der Wert von
-@code{minimum-length} in @internalsref{Voice}.@internalsref{Hairpin}
+@code{minimum-length} in @rinternals{Voice}.@rinternals{Hairpin}
kann angepasst werden, etwa:
@example
gesetzt wird, zu erstellen, siehe den Abschnitt @ref{New dynamic marks}.
Vertikale Position der Zeichen wird von der Funktion
-@internalsref{DynamicLineSpanner} verwaltet.
+@rinternals{DynamicLineSpanner} verwaltet.
@commonprop
@seealso
-Programmreferenz: @internalsref{DynamicText}, @internalsref{Hairpin}.
+Programmreferenz: @rinternals{DynamicText}, @rinternals{Hairpin}.
Vertikale Positionierung der Symbole wird von der Eigenschaft
-@internalsref{DynamicLineSpanner} verwaltet.
+@rinternals{DynamicLineSpanner} verwaltet.
@node New dynamic marks
Im Handbuch: @ref{Automatic note splitting}.
-Programmreferenz: @internalsref{Tie}.
+Programmreferenz: @rinternals{Tie}.
@knownissues
@seealso
-Programmreferenz: @internalsref{Slur}.
+Programmreferenz: @rinternals{Slur}.
@node Phrasing slurs
@seealso
-Programmreferenz: @internalsref{PhrasingSlur}.
+Programmreferenz: @rinternals{PhrasingSlur}.
@node Laissez vibrer ties
@seealso
Programmreferenz:
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
+@rinternals{LaissezVibrerTie}
+@rinternals{LaissezVibrerTieColumn}
Beispiele:
@lsr{connecting,laissez-vibrer-ties.ly}
@seealso
-Programmreferenz: @internalsref{BreathingSign}.
+Programmreferenz: @rinternals{BreathingSign}.
Beispiele: @lsr{expressive,breathing-sign.ly}
@seealso
-Programmreferenz: @internalsref{Glissando}.
+Programmreferenz: @rinternals{Glissando}.
Beispiele:
@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
Wenn ein Arpeggio sich über mehrere Systeme erstreckt, kann mit einem
Klaviersystem die Eigenschaft
-@internalsref{PianoStaff}.@code{connectArpeggios} gesetzt werden.
+@rinternals{PianoStaff}.@code{connectArpeggios} gesetzt werden.
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new PianoStaff <<
Notationshandbuch: @ref{Ties}, um Arpeggios auszuschreiben.
-Programmreferenz: @internalsref{Arpeggio}.
+Programmreferenz: @rinternals{Arpeggio}.
@knownissues
@seealso
-Programmreferenz: @internalsref{TrillSpanner}.
+Programmreferenz: @rinternals{TrillSpanner}.
@seealso
-Programmreferenz: @internalsref{StringNumber},
+Programmreferenz: @rinternals{StringNumber},
@lsr{guitar/,string-number.ly}.
Viertelnote C auf der dritten Saite. In der Standardeinstellung ist
die erste Saite die höchste Saite und als Stimmung wird die übliche
Gitarrenstimmung auf sechs Saiten angenommen. Die Noten werden in
-einer Tabulatur gesetzt, indem @internalsref{TabStaff} und
-@internalsref{TabVoice}-Kontexte verwendet werden.
+einer Tabulatur gesetzt, indem @rinternals{TabStaff} und
+@rinternals{TabVoice}-Kontexte verwendet werden.
@lilypond[quote,ragged-right,fragment,verbatim]
\new TabStaff {
@seealso
-Programmreferenz: @internalsref{TabStaff}, @internalsref{TabVoice}.
+Programmreferenz: @rinternals{TabStaff}, @rinternals{TabVoice}.
@knownissues
In der Datei @file{scm/@/output@/-lib@/.scm} sind die Stimmungen
definiert.
-Programmreferenz: @internalsref{Tab_note_heads_engraver}.
+Programmreferenz: @rinternals{Tab_note_heads_engraver}.
@knownissues
Einige graphische Eigenschaften können verändert werden. Genaueres zur
Schnittstelle für die Griffsymboleigenschaften findet sich unter
-@internalsref{fret-diagram-interface}.
+@rinternals{fret-diagram-interface}.
@seealso
@seealso
-Program reference: @internalsref{StrokeFinger}
+Program reference: @rinternals{StrokeFinger}
@seealso
-Programmreferenz: @internalsref{Contexts}.
+Programmreferenz: @rinternals{Contexts}.
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
Im Handbuch: @rlearning{Single staff}.
-Programmreferenz: @internalsref{AutoChangeMusic}.
+Programmreferenz: @rinternals{AutoChangeMusic}.
@knownissues
@seealso
-Programmreferenz: @internalsref{VoiceFollower}.
+Programmreferenz: @rinternals{VoiceFollower}.
@predefined
What is printed can be modified by setting @code{pedal@var{X}Strings},
where @var{X} is one of the pedal types: @code{Sustain},
@code{Sostenuto} or @code{UnaCorda}. Refer to
-@internalsref{SustainPedal} in the program reference for more
+@rinternals{SustainPedal} in the program reference for more
information.
Pedalbenutzung kann auch durch eine Anzahl von Klammern angezeigt
Die Erscheinung der Pedal-Klammer kann mit den Eigenschaften
@code{edge-width}, @code{edge-height} und @code{shorten-pair} des
@code{PianoPedalBracket}-Objekts verändert werden (siehe
-@internalsref{PianoPedalBracket} in der Programmreferenz). Zum
+@rinternals{PianoPedalBracket} in der Programmreferenz). Zum
Beispiel kann die Klammer bis zum rechten Ende eines Notenkopfes
verlängert werden.
@c obsolete, remove when translation is fully updated
@macro context{TEXT}
@vindex \TEXT\
-@code{\TEXT\}@c should use internalsref
+@code{\TEXT\}@c should use rinternals
@end macro
+@macro lydoctitle {TEXT}
+@emph{\TEXT\}
+
+@end macro
@macro funindex {TEXT}
@findex \TEXT\
@c Definitions for references:
-@c @internalsref
+@c @rinternals
@c @rglos
@c @rprogram
@c @ruser
@ifset bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals-big-page,Programmreferenz}
@end macro
@ifclear bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Programmreferenz}
@end macro
@ifdocbook
@c ***** DOCBOOK-XML *****
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Programmreferenz}
@end macro
@ifinfo
@c **** INFO ****
-@macro internalsref{NAME}
+@macro rinternals{NAME}
@vindex \NAME\
@inforef{\NAME\,,lilypond-internals,Programmreferenz}
@end macro
@c **** TEX ****
@iftex
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@code{\TEXT\}
@end macro
@seealso
-Programmreferenz: @internalsref{RhythmicStaff}.
+Programmreferenz: @rinternals{RhythmicStaff}.
@node Entering percussion
@seealso
-Programmreferenz: @internalsref{note-event}.
+Programmreferenz: @rinternals{note-event}.
@node Percussion staves
@unnumberedsubsubsec Percussion staves
darstellt.
Um die Noten darstellen zu können, müssen sie sich innerhalb von
-einem @internalsref{DrumStaff}- und einem
-@internalsref{DrumVoice}-Kontext befinden.
+einem @rinternals{DrumStaff}- und einem
+@rinternals{DrumVoice}-Kontext befinden.
@lilypond[quote,ragged-right,verbatim]
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
Das Beispiel zeigt ausdrücklich definierte mehrstimmige Notation. Die
Kurznotation für mehrstimmige Musik, wie sie im Abschnitt
@ref{Basic polyphony} beschrieben wird, kann auch verwendet werden,
-wenn die @internalsref{DrumVoice} (Schlagzeugstimmen) am Anfang explizit
+wenn die @rinternals{DrumVoice} (Schlagzeugstimmen) am Anfang explizit
initialisiert werden.
@lilypond[quote,ragged-right,fragment,verbatim]
Es gibt auch weitere Layout-Einstellungen. Um diese zu verwenden,
muss die Eigenschaft @code{drumStyleTable} im
-@internalsref{DrumVoice}-Kontext entsprechend eingestellt werden.
+@rinternals{DrumVoice}-Kontext entsprechend eingestellt werden.
Folgende Variablen sind vordefiniert:
@table @code
Init-Dateien: @file{ly/@/drumpitch@/-init@/.ly}.
-Programmreferenz: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
+Programmreferenz: @rinternals{DrumStaff}, @rinternals{DrumVoice}.
@knownissues
@seealso
-Programmreferenz: @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
+Programmreferenz: @rinternals{LedgerLineSpanner},
+@rinternals{NoteHead}.
@node Cautionary accidentals
@seealso
-Programmreferenz: @internalsref{TransposedMusic}.
+Programmreferenz: @rinternals{TransposedMusic}.
Beispiel: @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}.
Handbuch: @ref{Grace notes}.
-Programmreferenz: @internalsref{Clef}.
+Programmreferenz: @rinternals{Clef}.
@node Key signature
@seealso
-Programmreferenz: @internalsref{KeyCancellation},
-@internalsref{KeySignature}.
+Programmreferenz: @rinternals{KeyCancellation},
+@rinternals{KeySignature}.
@node Ottava brackets
@seealso
-Programmreferenz: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic} und
-@internalsref{UnfoldedRepeatedMusic}.
+Programmreferenz: @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic} und
+@rinternals{UnfoldedRepeatedMusic}.
Beispiele:
@seealso
-Programmreferenz: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic} und
-@internalsref{UnfoldedRepeatedMusic}.
+Programmreferenz: @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic} und
+@rinternals{UnfoldedRepeatedMusic}.
@node Short repeats
@seealso
-Programmreferenz: @internalsref{RepeatSlash},
-@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
-@internalsref{DoublePercentRepeatCounter},
-@internalsref{PercentRepeatCounter},
-@internalsref{PercentRepeatedMusic}.
+Programmreferenz: @rinternals{RepeatSlash},
+@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat},
+@rinternals{DoublePercentRepeatCounter},
+@rinternals{PercentRepeatCounter},
+@rinternals{PercentRepeatedMusic}.
Im Handbuch: @ref{Tremolo subdivisions}, @ref{Repeats}.
-Programmreferenz: @internalsref{Beam}, @internalsref{StemTremolo}.
+Programmreferenz: @rinternals{Beam}, @rinternals{StemTremolo}.
@node Tremolo subdivisions
Im Handbuch: @ref{Tremolo repeats}.
-Programmreferenz: @internalsref{StemTremolo}.
+Programmreferenz: @rinternals{StemTremolo}.
@seealso
-Programmreferenz: @internalsref{Dots}, and @internalsref{DotColumn}.
+Programmreferenz: @rinternals{Dots}, and @rinternals{DotColumn}.
@node Tuplets
@seealso
-Programmreferenz: @internalsref{TupletBracket},
-@internalsref{TupletNumber} und @internalsref{TimeScaledMusic}.
+Programmreferenz: @rinternals{TupletBracket},
+@rinternals{TupletNumber} und @rinternals{TimeScaledMusic}.
@seealso
-Programmreferenz: @internalsref{Rest}.
+Programmreferenz: @rinternals{Rest}.
@node Skips
Durch ihn wird
überhaupt nichts gesetzt, auch keine transparenten Objekte.
-Die Überspringung mit @code{s} hingegen erstellt @internalsref{Staff} und
-@internalsref{Voice} wenn es erforderlich ist, genauso wie Noten und Pausen.
+Die Überspringung mit @code{s} hingegen erstellt @rinternals{Staff} und
+@rinternals{Voice} wenn es erforderlich ist, genauso wie Noten und Pausen.
Das folgende Beispiel etwa setzt ein leeres Notensystem:
@lilypond[quote,ragged-right,verbatim]
@seealso
-Programmreferenz: @internalsref{SkipMusic}.
+Programmreferenz: @rinternals{SkipMusic}.
@node Multi measure rests
@code{timeSignatureFraction}, @code{beatLength}
und @code{measureLength} im @code{Timing}-Kontext ein,
der normalerweise zu den Eigenschaften aller System
-(@internalsref{Score}-Ebene) gehört. Die Eigenschaft
+(@rinternals{Score}-Ebene) gehört. Die Eigenschaft
@code{measureLenght} bestimmt, wo Taktlinien eingefügt werden,
und wie automatische Balken gesetzt werden. Ein Verändern
der Eigenschaften von @code{timeSignatureFraction} gibt
Auf weitere Optionen kann man über die Scheme-Funktion
@code{set-time-signature} zugreifen. In Kombination mit
-@internalsref{Measure_grouping_engraver} werden hiermit
-@internalsref{MeasureGrouping}-Zeichen erzeugt. Solche
+@rinternals{Measure_grouping_engraver} werden hiermit
+@rinternals{MeasureGrouping}-Zeichen erzeugt. Solche
Zeichen erleichtern es, rhythmisch komplexe moderne Musik
zu lesen. Im nächsten Beispiel ist der 9/8-Takt in 2, 2, 2
und 3 Achtel unterteilt. Das wird im dritten Argument an
@seealso
-Programmreferenz: @internalsref{TimeSignature} und
-@internalsref{Timing_translator}.
+Programmreferenz: @rinternals{TimeSignature} und
+@rinternals{Timing_translator}.
Beispiele: @lsr{contemporary,compound-time-signature.ly}.
@unnumberedsubsubsec Automatic note splitting
Lange Noten können automatisch in übergebundene Noten aufgeteilt werden.
-Dieses Verhalten erreicht man, indem der @internalsref{Note_heads_engraver}
-mit dem @internalsref{Completion_heads_engraver} ausgetauscht wird.
+Dieses Verhalten erreicht man, indem der @rinternals{Note_heads_engraver}
+mit dem @rinternals{Completion_heads_engraver} ausgetauscht wird.
Im nächsten Beispiel werden Noten, die über die Taktlinie dauern, aufgeteilt
und übergebunden.
Wenn Sie wollen, dass auch Zeilenumbrüche an den Stellen, an denen
automatisch Noten aufgeteilt wurden, stattfinden, müssen Sie auch
-den Formatierer @internalsref{Forbid_line_break_engraver} mit
+den Formatierer @rinternals{Forbid_line_break_engraver} mit
dem @code{\remove}-Befehl entfernen.
@seealso
-Programmreferenz: @internalsref{Completion_heads_engraver}.
+Programmreferenz: @rinternals{Completion_heads_engraver}.
@node Beams
@seealso
-Programmreferenz: @internalsref{Beam}.
+Programmreferenz: @rinternals{Beam}.
@node Manual beams
Im Handbuch: @ref{Repeats}, @ref{System start delimiters}.
-Programmreferenz: @internalsref{BarLine} (auf Partitur
-(@internalsref{Staff})-Ebene erstellt),
-@internalsref{SpanBar} (zwischen Systemen).
+Programmreferenz: @rinternals{BarLine} (auf Partitur
+(@rinternals{Staff})-Ebene erstellt),
+@rinternals{SpanBar} (zwischen Systemen).
@node Bar numbers
@seealso
-Programmreferenz: @internalsref{GraceMusic}.
+Programmreferenz: @rinternals{GraceMusic}.
@knownissues
}
@end lilypond
-Dieser Trenner veranlasst, dass Stimmen (@internalsref{Voice})
+Dieser Trenner veranlasst, dass Stimmen (@rinternals{Voice})
-Kontexte@footnote{Polyphone Stimmen werden in anderen
Programmen teilweise als @qq{layers} (Schichten) bezeichnet.}
@cindex Layers
@node Explicitly instantiating voices
@unnumberedsubsubsec Explicitly instantiating voices
-@internalsref{Voice}-Kontexte können auch manuell innerhalb
+@rinternals{Voice}-Kontexte können auch manuell innerhalb
eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
@code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
entsprechendes Verhalten von vertikaler Verschiebung und Richtung
Normalerweise werden Notenköpfe mit einer unterschiedlichen Anzahl
von Punktierungen nicht verschmolzen, aber wenn die Objekt-Eigenschaft
@code{merge-differently-dotted} in ein
-Notenkollisions (@internalsref{NoteCollision})-Objekt gesetzt wird,
+Notenkollisions (@rinternals{NoteCollision})-Objekt gesetzt wird,
werden sie zusammengefasst.
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
Wenn LilyPond selber keine Lösung bieten kann, können die
Eigenschaft @code{force-hshift} des
-@internalsref{NoteColumn}-Objektes (siehe unten)
+@rinternals{NoteColumn}-Objektes (siehe unten)
sowie Pausen mit definierter Tonhöhe eingesetzt werden,
um Satzentscheidungen des Programmes zu überschreiben.
Programmreferenz: Die Objekte, die für Auflösung von Zusammenstößen
zuständig sind, sind
-@internalsref{NoteCollision} und @internalsref{RestCollision}.
+@rinternals{NoteCollision} und @rinternals{RestCollision}.
@knownissues
@itemize @bullet
@item Die Gruppe wird mit einer Klammer an der linken Seite geöffnet und
die Taktlinien sind verbunden. Das ist der Klaviersystem
-(@internalsref{GrandStaff})-Kontext.
+(@rinternals{GrandStaff})-Kontext.
@lilypond[verbatim,ragged-right,quote]
\new GrandStaff
@item Die Gruppe beginnt mit einer Klammer und die Taktlinien sind verbunden.
Dieses Verhalten erzeugt der Stimmgruppen
-(@internalsref{StaffGroup})-Kontext.
+(@rinternals{StaffGroup})-Kontext.
@lilypond[verbatim,ragged-right,quote]
\new StaffGroup
@item Die Gruppe beginnt mit einer Klammer, aber die Taktlinien sind nicht
miteinander verbunden. Das wird mit dem Chorsystem
-(@internalsref{ChoirStaff})-Kontext erreicht.
+(@rinternals{ChoirStaff})-Kontext erreicht.
@lilypond[verbatim,ragged-right,quote]
\new ChoirStaff
@seealso
Die Definition der Taktlinien am Beginn jedes Systems werden mit
-den Befehlen @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}
-und @internalsref{SystemStartBracket} festgelegt. Nur einer dieser
+den Befehlen @rinternals{SystemStartBar}, @rinternals{SystemStartBrace}
+und @rinternals{SystemStartBracket} festgelegt. Nur einer dieser
drei Typen wird in jedem Kontext erstellt, und dieser Typ wird durch
die @code{systemStartDelimiter}-Eigenschaft bestimmt.
@seealso
-Programmreferenz: @internalsref{StaffSymbol}.
+Programmreferenz: @rinternals{StaffSymbol}.
Beispiele: @lsrdir{staff}
@quotation
@seealso
-Programmreferenz: @internalsref{DynamicText}, @internalsref{Hairpin}.
+Programmreferenz: @rinternals{DynamicText}, @rinternals{Hairpin}.
Vertikale Positionierung dieser Symbole wird mit
-@internalsref{DynamicLineSpanner} erreicht.
+@rinternals{DynamicLineSpanner} erreicht.
@end quotation
@noindent
Para la notación antigua, se puede elegir un estilo de cabezas de notas distinto al @code{default}
(estilo por defecto). Esto se consigue estableciendo la propiedad @code{style}
-del objeto @internalsref{NoteHead} a los valores @code{baroque},
+del objeto @rinternals{NoteHead} a los valores @code{baroque},
@code{neomensural}, @code{mensural} o @code{petrucci}. El estilo
@code{baroque} se diferencia del estilo por defecto @code{default} únicamente en que usa
una forma cuadrada para las cabezas de las @code{\breve}. El estilo
@end lilypond
Cuando se tipografía una pieza en notación de Canto Gregoriano, el grabador
-@internalsref{Gregorian_ligature_engraver} selecciona automáticamente
+@rinternals{Gregorian_ligature_engraver} selecciona automáticamente
las cabezas adecuadas, de manera que no es necesario establecer el estilo de las cabezas
explícitamente. Aún así, el estilo de las cabezas se puede establecer, p.ej., a
@code{vaticana_punctum} para producir neumas punctum. De forma similar, se utiliza un grabador
-@internalsref{Mensural_ligature_engraver} para construir automáticamente
+@rinternals{Mensural_ligature_engraver} para construir automáticamente
ligaduras mensurales. Consulte @ref{Ligatures} para ver cómo funcionan los grabadores
de las ligaduras.
Utilice la propiedad @code{glyph-name-alist} del elemento gráfico
-@internalsref{Accidental} y @internalsref{KeySignature} para seleccionar
+@rinternals{Accidental} y @rinternals{KeySignature} para seleccionar
los símbolos de alteración de la notación antigua.
@lilypond[quote,ragged-right,staffsize=26]
De forma similar a las alteraciones accidentales, el estilo de la armadura de la tonalidad se puede
controlar a través de la propiedad @code{glyph-name-alist} del elemento gráfico
-@internalsref{KeySignature}.
+@rinternals{KeySignature}.
@seealso
alteraciones. @ref{Key signature} ofrece una introducción general al uso de
las armaduras de tonalidad.
-Referencia del programa: @internalsref{KeySignature}.
+Referencia del programa: @rinternals{KeySignature}.
Ejemplos: @lsrdir{ancient}
@cindex silencios antiguos
-Utilice la propiedad @code{style} del elemento gráfico @internalsref{Rest} para seleccionar
+Utilice la propiedad @code{style} del elemento gráfico @rinternals{Rest} para seleccionar
silencios antiguos. Los estilos contemplados son @code{classical},
@code{neomensural} y @code{mensural}. @code{classical} se diferencia
del estilo por defecto @code{default} solamente en que el silencio de negra parece
@cindex corchetes
-Utilice la propiedad @code{flag-style} del elemento gráfico @internalsref{Stem} para seleccionar
+Utilice la propiedad @code{flag-style} del elemento gráfico @rinternals{Stem} para seleccionar
los corchetes de estilo antiguo. Aparte del estilo de corchete por defecto @code{default},
sólo está contemplado el estilo @code{mensural}
}
@end lilypond
-Utilice la propiedad @code{style} del elemento gráfico @internalsref{TimeSignature} para
+Utilice la propiedad @code{style} del elemento gráfico @rinternals{TimeSignature} para
seleccionar las indicaciones de compás de la música antigua. Los estilos contemplados son
@code{neomensural} y @code{mensural}. La tabla anterior utiliza el
estilo @code{neomensural}. Este estilo es adecuado para el
como la @emph{editio vaticana}. Hay distintos glifos para el custos
que se utilizan en las diferentes variaciones de estilo notacional.
-Para tipografiar las custodias, simplemente coloque un grabador @internalsref{Custos_engraver} dentro del contexto
-@internalsref{Staff} (el contexto del pentagrama) al declarar el bloque de @code{\layout} (el bloque de disposición de la página),
+Para tipografiar las custodias, simplemente coloque un grabador @rinternals{Custos_engraver} dentro del contexto
+@rinternals{Staff} (el contexto del pentagrama) al declarar el bloque de @code{\layout} (el bloque de disposición de la página),
como se muestra en el ejemplo siguiente:
@example
@seealso
-Referencia del programa: @internalsref{Custos}.
+Referencia del programa: @rinternals{Custos}.
Ejemplos:
@lsr{ancient,custodes@/.ly}.
En el presente manual: @ref{Breath marks}.
-Referencia del programa: @internalsref{BreathingSign}.
+Referencia del programa: @rinternals{BreathingSign}.
Ejemplos: @lsr{expressive,breathing-sign.ly}.
Las ligaduras se escriben encerrándolas dentro de un par @code{\[} y @code{\]}.
Ciertos estilos de ligadura podrían necesitar una sintaxis de entrada adicional específica para
este tipo de ligadura en particular. Por defecto, el grabador
-@internalsref{LigatureBracket} se limita a colocar un corchete recto
+@rinternals{LigatureBracket} se limita a colocar un corchete recto
sobre la ligadura
@lilypond[quote,ragged-right,verbatim]
@end lilypond
Para seleccionar un estilo de ligaduras específico, se debe añadir el grabador adecuado
-al contexto @internalsref{Voice}, tal y como se explica en los
+al contexto @rinternals{Voice}, tal y como se explica en los
sub-apartados siguientes. Solamente están contempladas las ligaduras mensurales
blancas con ciertas limitaciones.
Las ligaduras mensurales blancas están contempladas de forma limitada.
Para grabar ligaduras mensurales blancas, en el bloque layout o de disposición de la página coloque el grabador
-@internalsref{Mensural_ligature_engraver} dentro del contexto
-@internalsref{Voice}, y elimine el grabador
-@internalsref{Ligature_bracket_engraver}, de la siguiente manera:
+@rinternals{Mensural_ligature_engraver} dentro del contexto
+@rinternals{Voice}, y elimine el grabador
+@rinternals{Ligature_bracket_engraver}, de la siguiente manera:
@example
\layout @{
}
@end lilypond
-Si no se sustituye el grabador @internalsref{Ligature_bracket_engraver} por el
-@internalsref{Mensural_ligature_engraver}, la misma música se transcribe
+Si no se sustituye el grabador @rinternals{Ligature_bracket_engraver} por el
+@rinternals{Mensural_ligature_engraver}, la misma música se transcribe
de la siguiente manera:
@lilypond[quote,ragged-right]
@seealso
-Referencia del programa: el grabador @internalsref{Accidental_engraver} y el objeto
-@internalsref{AccidentalSuggestion}.
+Referencia del programa: el grabador @rinternals{Accidental_engraver} y el objeto
+@rinternals{AccidentalSuggestion}.
@node Figured bass
@subsubsection Figured bass
El soporte para el bajo cifrado consta de dos partes: hay un modo de entrada,
que se inicia mediante @code{\figuremode}, en el que puede escribir las cifras del bajo
-como números, y hay un contexto llamado @internalsref{FiguredBass} que se ocupa
-de crear los objetos @internalsref{BassFigure} (cifras del bajo).
+como números, y hay un contexto llamado @rinternals{FiguredBass} que se ocupa
+de crear los objetos @rinternals{BassFigure} (cifras del bajo).
En el modo de entrada de cifras, un grupo de cifras del bajo se encuentra delimitado por
los paréntesis en ángulo @code{<} y @code{>}. La duración se introduce después del ángulo de cierre @code{>}
Aunque posiblemente la forma en que está contemplado el bajo cifrado se parece superficialmente a los
acordes, es mucho más simple. El modo @code{\figuremode} sencillamente
-almacena los números, y el contexto @internalsref{FiguredBass} los imprime
+almacena los números, y el contexto @rinternals{FiguredBass} los imprime
tal y como se han escrito. No hay ninguna conversión a alturas de nota ni se reproduce ninguna realización
del bajo en el archivo MIDI.
@seealso
-Referencia del programa: Objetos @internalsref{NewBassFigure},
-@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine},
-@internalsref{BassFigureBracket} y
-@internalsref{BassFigureContinuation} y el contexto
-@internalsref{FiguredBass}.
+Referencia del programa: Objetos @rinternals{NewBassFigure},
+@rinternals{BassFigureAlignment}, @rinternals{BassFigureLine},
+@rinternals{BassFigureBracket} y
+@rinternals{BassFigureContinuation} y el contexto
+@rinternals{FiguredBass}.
En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles,
consulte
@ifhtml
-@internalsref{Contexts}.
+@rinternals{Contexts}.
@end ifhtml
@ifnothtml
Traducción @expansion{} Contexto.
@noindent
el argumento @var{contexto} para la instrucción @code{\set} está omitido, por tanto
-el barrado automático está desactivado en la @internalsref{Voice} (voz) actual. Fíjese en que
+el barrado automático está desactivado en la @rinternals{Voice} (voz) actual. Fíjese en que
el contexto más bajo no siempre contiene la propiedad que quiere
cambiar. Por ejemplo, si intenta establecer la propiedad @code{skipBars}
(del contexto más bajo, en este caso @code{Voice}) no se producirá ningún
En la referencia del programa hay una descripción detallada de todas las propiedades de contexto disponibles,
véase
@ifhtml
-@internalsref{Tunable context properties}.
+@rinternals{Tunable context properties}.
@end ifhtml
@ifnothtml
Traducción @expansion{} propiedades de contexto ajustables.
Para ver una descripción completa de cada uno de los añadidos, consulte
@ifhtml
-@internalsref{Engravers}.
+@rinternals{Engravers}.
@end ifhtml
@ifnothtml
Referencia del programa @expansion Traducción @expansion{} Grabadores.
@end ifnothtml
cada uno de los contextos descritos en
@ifhtml
-@internalsref{Contexts}
+@rinternals{Contexts}
@end ifhtml
@ifnothtml
Referencia del programa @expansion Traducción @expansion{} Contexto.
@seealso
-Funcionamiento interno: @internalsref{OverrideProperty}, @internalsref{RevertProperty},
-@internalsref{PropertySet}, @internalsref{Backend} y
-@internalsref{All layout objects}.
+Funcionamiento interno: @rinternals{OverrideProperty}, @rinternals{RevertProperty},
+@rinternals{PropertySet}, @rinternals{Backend} y
+@rinternals{All layout objects}.
@knownissues
squashedPosition = #0
@end example
-El grabador @internalsref{Pitch_squash_engraver} modifica las cabezas de nota (creadas
-por el grabador @internalsref{Note_heads_engraver}) y establece sus posiciones verticales
+El grabador @rinternals{Pitch_squash_engraver} modifica las cabezas de nota (creadas
+por el grabador @rinternals{Note_heads_engraver}) y establece sus posiciones verticales
al valor de @code{squashedPosition}, en este caso@tie{}@code{0},
la línea central.
Todos estos añadidos tienen que cooperar, y esto se consigue con un añadido especial,
que se debe marcar con la palabra clave @code{\type}.
-Este será siempre @internalsref{Engraver_group},
+Este será siempre @rinternals{Engraver_group},
@example
\type "Engraver_group"
@quotation
@seealso
-Referencia de funcionamiento interno: @internalsref{Fingering}.
+Referencia de funcionamiento interno: @rinternals{Fingering}.
@end quotation
forward. For example, it says
@quotation
-Accepted by: @internalsref{Fingering_engraver},
+Accepted by: @rinternals{Fingering_engraver},
@end quotation
@noindent
plug-in, which says
@quotation
-This engraver creates the following layout objects: @internalsref{Fingering}.
+This engraver creates the following layout objects: @rinternals{Fingering}.
@end quotation
In other words, once the @code{FingerEvent}s are interpreted, the
@code{Fingering_engraver} plug-in will process them.
@c I can't figure out what this is supposed to mean. -gp
The @code{Fingering_engraver} is also listed to create
-@internalsref{Fingering} objects,
+@rinternals{Fingering} objects,
@c old info? it doesn't make any sense to me with our current docs.
This is also the
formato PDF.
@end ifnothtml
-Siga el enlace que lleva a @internalsref{Fingering}. Al principio de la página,
+Siga el enlace que lleva a @rinternals{Fingering}. Al principio de la página,
puede ver
@quotation
-Los objetos de digitación se crean por parte de: @internalsref{Fingering_engraver} y
-@internalsref{New_fingering_engraver}.
+Los objetos de digitación se crean por parte de: @rinternals{Fingering_engraver} y
+@rinternals{New_fingering_engraver}.
@end quotation
Siguiendo los enlaces relacionados dentro de la referencia del programa, podemos seguir el
@itemize
-@item @internalsref{Fingering}:
-los objetos @internalsref{Fingering} se crean por parte de:
-@internalsref{Fingering_engraver}
+@item @rinternals{Fingering}:
+los objetos @rinternals{Fingering} se crean por parte de:
+@rinternals{Fingering_engraver}
-@item @internalsref{Fingering_engraver}:
-Tipos de música aceptados: @internalsref{fingering-event}
+@item @rinternals{Fingering_engraver}:
+Tipos de música aceptados: @rinternals{fingering-event}
-@item @internalsref{fingering-event}:
+@item @rinternals{fingering-event}:
El tipo de evento musical @code{fingering-event} está descrito en Expresiones musicales con el nombre de
-@internalsref{FingerEvent}
+@rinternals{FingerEvent}
@end itemize
Este camino se recorre en contra de la corriente de información del programa: comienza
La referencia del programa también se puede examinar como un documento normal. Contiene
capítulos que tratan de
@ifhtml
-@internalsref{Music definitions},
+@rinternals{Music definitions},
@end ifhtml
@ifnothtml
@code{Music definitions}
@end ifnothtml
-de la @internalsref{Translation}, y del @internalsref{Backend}. Cada uno de los capítulos
+de la @rinternals{Translation}, y del @rinternals{Backend}. Cada uno de los capítulos
relaciona todas las definiciones utilizadas y todas las propiedades que se pueden
ajustar.
@cindex grob
La página HTML que pudimos ver en la sección anterior describe el
-objeto de presentación llamado @internalsref{Fingering}. Dicho objeto es un
+objeto de presentación llamado @rinternals{Fingering}. Dicho objeto es un
símbolo dentro de la partitura. Tiene propiedades que guardan números (como
grosores y direcciones), pero también punteros a objetos relacionados. Un
objeto de presentación también se llama un @emph{Grob}, que es una abreviatura de Graphical
-Object (objeto gráfico). Para ver más detalles acerca de los objetos gráficos o Grobs, consulte @internalsref{grob-interface}.
+Object (objeto gráfico). Para ver más detalles acerca de los objetos gráficos o Grobs, consulte @rinternals{grob-interface}.
La página dedicada a @code{Fingering} relaciona las definiciones del objeto
@code{Fingering}. Por ejemplo, la página dice
@end itemize
Cada uno de estos aspectos se capta en lo que se llaman @emph{interface}s,
-que se relacionan al final de la página dedicada a @internalsref{Fingering}
+que se relacionan al final de la página dedicada a @rinternals{Fingering}
@quotation
Este objeto contempla los siguientes interfaces:
-@internalsref{item-interface},
-@internalsref{self-alignment-interface},
-@internalsref{side-position-interface}, @internalsref{text-interface},
-@internalsref{text-script-interface}, @internalsref{font-interface},
-@internalsref{finger-interface} y @internalsref{grob-interface}.
+@rinternals{item-interface},
+@rinternals{self-alignment-interface},
+@rinternals{side-position-interface}, @rinternals{text-interface},
+@rinternals{text-script-interface}, @rinternals{font-interface},
+@rinternals{finger-interface} y @rinternals{grob-interface}.
@end quotation
Al pulsar sobre cualquiera de los enlaces nos desplazaremos a la página del respectivo interfaz del
En este caso, el contexto de este truco es @code{Voice}. Este
hecho se puede deducir también a partir de la referencia del programa, ya que la página dedicada al
-añadido @internalsref{Fingering_engraver} dice
+añadido @rinternals{Fingering_engraver} dice
@quotation
-El grabador Fingering_engraver es parte de los contextos: @dots{} @internalsref{Voice}
+El grabador Fingering_engraver es parte de los contextos: @dots{} @rinternals{Voice}
@end quotation
aplicar.
Esta técnica sólo funciona para los objetos que están conectados directamente a
-un @internalsref{Event} (evento) del texto de entrada, por ejemplo
+un @rinternals{Event} (evento) del texto de entrada, por ejemplo
@itemize
@item cabezas de nota, producidas por chord-pitch (p. ej.: las notas de un acorde)
si es así, establece @code{extra-offset}.
@end itemize
-Este procedimiento se instala dentro de @internalsref{Tie} (ligadura de unión), de forma que la última parte
+Este procedimiento se instala dentro de @rinternals{Tie} (ligadura de unión), de forma que la última parte
de la ligadura dividida se traslada hacia arriba.
@c KEEP LY
@cindex acordes, nombres de
@cindex acordes
-Para la presentación de los nombres de acordes impresos utilice el contexto @internalsref{ChordNames}.
+Para la presentación de los nombres de acordes impresos utilice el contexto @rinternals{ChordNames}.
Los acordes se puede introducir o bien usando la notación
descrita anteriormente, o directamente usando @code{<} y @code{>}
@end lilypond
Puede hacer que los cambios de acorde se hagan notar, estableciendo
-@internalsref{ChordNames}.@code{chordChanges} al valor verdadero. Esto sólo
+@rinternals{ChordNames}.@code{chordChanges} al valor verdadero. Esto sólo
mostrará los nombres de los acordes cuando ocurra un cambio en la estructura de acordes y al comienzo
de una línea
Todos los ejemplos anteriores muestran los acordes sobre una pauta. Esto no es
necesario. Los acordes también se pueden imprimir por separado. Puede ser necesario
-añadir @internalsref{Volta_engraver} y @internalsref{Bar_engraver}
+añadir @rinternals{Volta_engraver} y @rinternals{Bar_engraver}
para mostrar las repeticiones.
@lilypond[ragged-right,verbatim]
que tiene un convertidor para un formato directo.
@command{midi2ly} convierte las pistas en contextos de
-@internalsref{Staff}) y los canales en contextos de
-@internalsref{Voice}. Se utiliza el modo relativo para las alturas, y
+@rinternals{Staff}) y los canales en contextos de
+@rinternals{Voice}. Se utiliza el modo relativo para las alturas, y
las duraciones se escriben solamente cuando es necesario.
Es posible grabar un archivo MIDI usando un teclado digital y
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{fontSize},
-@internalsref{font-size},
-@internalsref{font-interface}.
+@rinternals{fontSize},
+@rinternals{font-size},
+@rinternals{font-interface}.
@node Fingering instructions
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{FingeringEvent},
-@internalsref{fingering-event},
-@internalsref{Fingering_engraver},
-@internalsref{New_fingering_engraver},
-@internalsref{Fingering}.
+@rinternals{FingeringEvent},
+@rinternals{fingering-event},
+@rinternals{Fingering_engraver},
+@rinternals{New_fingering_engraver},
+@rinternals{Fingering}.
@node Hidden notes
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{Note_spacing_engraver},
-@internalsref{NoteSpacing}.
+@rinternals{Note_spacing_engraver},
+@rinternals{NoteSpacing}.
@node Coloring objects
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funciionamiento interno:
-@internalsref{Parenthesis_engraver},
-@internalsref{ParenthesesItem},
-@internalsref{parentheses-interface}.
+@rinternals{Parenthesis_engraver},
+@rinternals{ParenthesesItem},
+@rinternals{parentheses-interface}.
@node Stems
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{Stem_engraver},
-@internalsref{Stem},
-@internalsref{stem-interface}.
+@rinternals{Stem_engraver},
+@rinternals{Stem},
+@rinternals{stem-interface}.
@node Outside the staff
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{Balloon_engraver},
-@internalsref{BalloonTextItem},
-@internalsref{balloon-interface}.
+@rinternals{Balloon_engraver},
+@rinternals{BalloonTextItem},
+@rinternals{balloon-interface}.
@node Grid lines
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{Grid_line_span_engraver},
-@internalsref{Grid_point_engraver},
-@internalsref{GridLine},
-@internalsref{GridPoint},
-@internalsref{grid-line-interface},
-@internalsref{grid-point-interface}.
+@rinternals{Grid_line_span_engraver},
+@rinternals{Grid_point_engraver},
+@rinternals{GridLine},
+@rinternals{GridPoint},
+@rinternals{grid-line-interface},
+@rinternals{grid-point-interface}.
@node Analysis brackets
@lsrdir{Editorial,Editorial-annotations}.
Referencia de funcionamiento interno:
-@internalsref{Horizontal_bracket_engraver},
-@internalsref{HorizontalBracket},
-@internalsref{horizontal-bracket-interface},
-@internalsref{Staff}.
+@rinternals{Horizontal_bracket_engraver},
+@rinternals{HorizontalBracket},
+@rinternals{horizontal-bracket-interface},
+@rinternals{Staff}.
Fragmentos de código: @lsrdir{Expressive,Expressive-marks}
-Referencia de funcionamiento interno: @internalsref{Script},
-@internalsref{TextScript}.
+Referencia de funcionamiento interno: @rinternals{Script},
+@rinternals{TextScript}.
@knownissues
Esto puede dar lugar a reguladores excesivamente cortos. Para
alargarlos, utilice por ejemplo @code{minimum-length} dentro de
-@internalsref{Voice}.@internalsref{Hairpin}:
+@rinternals{Voice}.@rinternals{Hairpin}:
@example
\override Voice.Hairpin #'minimum-length = #5
con los matices, consulte @ref{New dynamic marks}.
El posicionamiento vertical de las expresiones dinámicas se gestiona a
-través de @internalsref{DynamicLineSpanner}.
+través de @rinternals{DynamicLineSpanner}.
@predefined
Fragmentos de código: @lsrdir{Expressive,Expressive-marks}
-Referencia de funcionamiento interno: @internalsref{DynamicText},
-@internalsref{Hairpin}. El posicionamiento vertical de estos símbolos
-se maneja por parte de @internalsref{DynamicLineSpanner}.
+Referencia de funcionamiento interno: @rinternals{DynamicText},
+@rinternals{Hairpin}. El posicionamiento vertical de estos símbolos
+se maneja por parte de @rinternals{DynamicLineSpanner}.
@node Curves
@subsection Curves
@seealso
-Referencia del programa: @internalsref{Slur}.
+Referencia del programa: @rinternals{Slur}.
@node Phrasing slurs
@seealso
-Referencia del programa: @internalsref{PhrasingSlur}.
+Referencia del programa: @rinternals{PhrasingSlur}.
@node Breath marks
@subsubsection Breath marks
@seealso
-Referencia del programa: @internalsref{BreathingSign}.
+Referencia del programa: @rinternals{BreathingSign}.
Ejemplos: @lsr{expressive,breathing-sign.ly}
@seealso
-Referencia del programa: @internalsref{Glissando}.
+Referencia del programa: @rinternals{Glissando}.
Archivos de ejemplo:
@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
Fragmentos de código: @lsrdir{Expressive,Expressive-marks}
-Referencia de funcionamiento interno: @internalsref{Arpeggio},
-@internalsref{PianoStaff}.
+Referencia de funcionamiento interno: @rinternals{Arpeggio},
+@rinternals{PianoStaff}.
@knownissues
No es posible mezclar arpegios conectados y no conectados en un
-@internalsref{PianoStaff} en el mismo instante de tiempo.
+@rinternals{PianoStaff} en el mismo instante de tiempo.
@node Trills
Fragmentos de código: @lsrdir{Expressive,Expressive-marks}
-Referencia de funcionamiento interno: @internalsref{TrillSpanner}.
+Referencia de funcionamiento interno: @rinternals{TrillSpanner}.
@seealso
-Referencia del programa: @internalsref{StringNumber},
+Referencia del programa: @rinternals{StringNumber},
@lsr{guitar/,string-number.ly}.
seguida por un número, p.ej. @code{c4\3} es un Do negra sobre la tercera cuerda.
Por defecto, la cuerda 1 es la más aguda, y la afinación normal
es la afinación estándar de guitarra (con 6 cuerdas). Las notas
-se imprimen como tablatura, usando lo contextos @internalsref{TabStaff} y
-@internalsref{TabVoice}
+se imprimen como tablatura, usando lo contextos @rinternals{TabStaff} y
+@rinternals{TabVoice}
@lilypond[quote,ragged-right,fragment,verbatim]
\new TabStaff {
@seealso
-Referencia del programa: @internalsref{TabStaff}, @internalsref{TabVoice}.
+Referencia del programa: @rinternals{TabStaff}, @rinternals{TabVoice}.
@knownissues
El archivo @file{scm/@/output@/-lib@/.scm} contiene las afinaciones predefinidas
de las cuerdas.
-Referencia del programa: @internalsref{Tab_note_heads_engraver}.
+Referencia del programa: @rinternals{Tab_note_heads_engraver}.
@knownissues
Puede establecer un cierto número de propiedades gráficas según su elección.
Se pueden encontrar más detalles sobre el interface de las propiedades de los diagramas de trastes en
-@internalsref{fret-diagram-interface}.
+@rinternals{fret-diagram-interface}.
@seealso
@seealso
-Referencia del programa: @internalsref{StrokeFinger}
+Referencia del programa: @rinternals{StrokeFinger}
En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles,
consulte
@ifhtml
-@internalsref{Contexts}.
+@rinternals{Contexts}.
@end ifhtml
@ifnothtml
Traducción @expansion{} Contexto.
@seealso
-Referencia de funcionamiento interno: @internalsref{Contexts}.
+Referencia de funcionamiento interno: @rinternals{Contexts}.
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
En este manual: @ref{Inside the staff}.
-Referencia del programa: @internalsref{AutoChangeMusic}.
+Referencia del programa: @rinternals{AutoChangeMusic}.
@seealso
-Referencia de funcionamiento interno: @internalsref{VoiceFollower}.
+Referencia de funcionamiento interno: @rinternals{VoiceFollower}.
@predefined
Es posible modificar lo que se imprime estableciendo @code{pedal@var{X}Strings},
donde @var{X} es uno de los tipos de pedal: @code{Sustain},
@code{Sostenuto} o @code{UnaCorda}. Consulte
-@internalsref{SustainPedal} dentro de la referencia del programa para más
+@rinternals{SustainPedal} dentro de la referencia del programa para más
información.
Los pedales se pueden indicar también mediante una secuencia de corchetes, estableciendo la
Para hacer un ajuste fino del aspecto de un corchete de pedal, se
pueden modificar las propiedades @code{edge-width}, @code{edge-height}
y @code{shorten-pair} de los objetos @code{PianoPedalBracket} (véase
-@internalsref{PianoPedalBracket} en la Referencia del programa). Por
+@rinternals{PianoPedalBracket} en la Referencia del programa). Por
ejemplo, el corchete se puede extender hasta el borde derecho de la
cabeza de la nota
@c * Deprecated: not in English macros.itexi *
@macro context{TEXT}
@vindex \TEXT\
-@code{\TEXT\}@c should use internalsref
+@code{\TEXT\}@c should use rinternals
@end macro
@c * Deprecated: not in English macros.itexi *
@code{\TEXT\}
@end macro
+@macro lydoctitle {TEXT}
+@emph{\TEXT\}
+
+@end macro
+
@macro funindex {TEXT}
@findex \TEXT\
@kindex \TEXT\
@c Definitions for references:
-@c @internalsref
+@c @rinternals
@c @rglos
@c @rprogram
@c @ruser
@ifset bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals-big-page,Referencia de Funcionamiento Interno}
@end macro
@ifclear bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Referencia de Funcionamiento Interno}
@end macro
@ifdocbook
@c ***** DOCBOOK-XML *****
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Referencia de Funcionamiento Interno}
@end macro
@ifinfo
@c **** INFO ****
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@inforef{\TEXT\,,lilypond-internals,Referencia de Funcionamiento Interno}
@end macro
@c **** TEX ****
@iftex
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@code{\TEXT\}
@end macro
crescendi y decrescendi hacen que el volumen varíe de forma lineal
entre sus dos extremos. Las fracciones se pueden ajustar mediante
@code{dynamicAbsoluteVolumeFunction} dentro de un contexto
-@internalsref{Voice}. Para cada tipo de instrumento MIDI se puede
+@rinternals{Voice}. Para cada tipo de instrumento MIDI se puede
definir un rango de volumen. Esto proporciona un control de
ecualización básico, que puede realzar significativamente la calidad
de la salida MIDI. El ecualizador se puede controlar estableciendo un
@seealso
-Referencia del programa: @internalsref{RhythmicStaff}.
+Referencia del programa: @rinternals{RhythmicStaff}.
@node Entering percussion
@seealso
-Referencia del programa: @internalsref{note-event}.
+Referencia del programa: @rinternals{note-event}.
@node Percussion staves
@subsubsection Percussion staves
Para tipografiar la música, se deben interpretar las notas dentro de los contextos
-@internalsref{DrumStaff} y @internalsref{DrumVoice}
+@rinternals{DrumStaff} y @rinternals{DrumVoice}
@lilypond[quote,ragged-right,verbatim]
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
El ejemplo anterior muestra una notación polifónica prolija. La notación
polifónica abreviada, descrita en @rlearning{I'm hearing Voices}, también se puede usar si
-las @internalsref{DrumVoice}s se instancian primero a mano. Por ejemplo,
+las @rinternals{DrumVoice}s se instancian primero a mano. Por ejemplo,
@lilypond[quote,ragged-right,fragment,verbatim]
\new DrumStaff <<
También existen otras posibilidades en lo referente a la disposición. Para usarlas, establezca la
-propiedad @code{drumStyleTable} en el contexto @internalsref{DrumVoice}.
+propiedad @code{drumStyleTable} en el contexto @rinternals{DrumVoice}.
Se han predefinido las siguientes variables:
@table @code
Archivos de inicio: @file{ly/@/drumpitch@/-init@/.ly}.
-Referencia del programa: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
+Referencia del programa: @rinternals{DrumStaff}, @rinternals{DrumVoice}.
@knownissues
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{RelativeOctaveMusic}.
+@rinternals{RelativeOctaveMusic}.
@funindex \transpose
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{Accidental_engraver},
-@internalsref{Accidental},
-@internalsref{AccidentalCautionary},
-@internalsref{accidental-interface}.
+@rinternals{Accidental_engraver},
+@rinternals{Accidental},
+@rinternals{AccidentalCautionary},
+@rinternals{accidental-interface}.
@knownissues
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{RelativeOctaveCheck}.
+@rinternals{RelativeOctaveCheck}.
@node Transpose
@unnumberedsubsubsec Transpose
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{TransposedMusic}.
+@rinternals{TransposedMusic}.
@funindex \transpose
@funindex \chordmode
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{Clef_engraver},
-@internalsref{Clef},
-@internalsref{OctavateEight},
-@internalsref{clef-interface}.
+@rinternals{Clef_engraver},
+@rinternals{Clef},
+@rinternals{OctavateEight},
+@rinternals{clef-interface}.
@node Key signature
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{KeyChangeEvent},
-@internalsref{Key_engraver},
-@internalsref{Key_performer},
-@internalsref{KeyCancellation},
-@internalsref{KeySignature},
-@internalsref{key-cancellation-interface},
-@internalsref{key-signature-interface}.
+@rinternals{KeyChangeEvent},
+@rinternals{Key_engraver},
+@rinternals{Key_performer},
+@rinternals{KeyCancellation},
+@rinternals{KeySignature},
+@rinternals{key-cancellation-interface},
+@rinternals{key-signature-interface}.
@node Ottava brackets
@lsrdir{Pitches,Pitches}.
Internals Reference:
-@internalsref{Ottava_spanner_engraver},
-@internalsref{OttavaBracket},
-@internalsref{ottava-bracket-interface}.
+@rinternals{Ottava_spanner_engraver},
+@rinternals{OttavaBracket},
+@rinternals{ottava-bracket-interface}.
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{Accidental},
-@internalsref{Accidental_engraver},
-@internalsref{GrandStaff} and
-@internalsref{PianoStaff},
-@internalsref{Staff},
-@internalsref{AccidentalSuggestion},
-@internalsref{AccidentalPlacement},
-@internalsref{accidental-suggestion-interface}.
+@rinternals{Accidental},
+@rinternals{Accidental_engraver},
+@rinternals{GrandStaff} and
+@rinternals{PianoStaff},
+@rinternals{Staff},
+@rinternals{AccidentalSuggestion},
+@rinternals{AccidentalPlacement},
+@rinternals{accidental-suggestion-interface}.
@cindex alteraciones y notas simultáneas
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{Ambitus_engraver},
-@internalsref{Voice},
-@internalsref{Staff},
-@internalsref{Ambitus},
-@internalsref{AmbitusAccidental},
-@internalsref{AmbitusLine},
-@internalsref{AmbitusNoteHead},
-@internalsref{ambitus-interface}.
+@rinternals{Ambitus_engraver},
+@rinternals{Voice},
+@rinternals{Staff},
+@rinternals{Ambitus},
+@rinternals{AmbitusAccidental},
+@rinternals{AmbitusLine},
+@rinternals{AmbitusNoteHead},
+@rinternals{ambitus-interface}.
@knownissues
@ref{Note head styles}.
Referencia de funcionamiento interno:
-@internalsref{note-event},
-@internalsref{Note_heads_engraver},
-@internalsref{Ledger_line_engraver},
-@internalsref{NoteHead},
-@internalsref{LedgerLineSpanner},
-@internalsref{note-head-interface},
-@internalsref{ledger-line-spanner-interface}.
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{Ledger_line_engraver},
+@rinternals{NoteHead},
+@rinternals{LedgerLineSpanner},
+@rinternals{note-head-interface},
+@rinternals{ledger-line-spanner-interface}.
@node Easy notation note heads
@unnumberedsubsubsec Easy notation note heads
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{note-event},
-@internalsref{Note_heads_engraver},
-@internalsref{NoteHead},
-@internalsref{note-head-interface}.
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{NoteHead},
+@rinternals{note-head-interface}.
@node Shape note heads
@ref{Note head styles}.
Referencia de funcionamiento interno:
-@internalsref{note-event},
-@internalsref{Note_heads_engraver},
-@internalsref{NoteHead},
-@internalsref{note-head-interface}.
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{NoteHead},
+@rinternals{note-head-interface}.
@node Improvisation
@lsrdir{Pitches,Pitches}.
Referencia de funcionamiento interno:
-@internalsref{Pitch_squash_engraver},
-@internalsref{Voice},
-@internalsref{RhythmicStaff}.
+@rinternals{Pitch_squash_engraver},
+@rinternals{Voice},
+@rinternals{RhythmicStaff}.
Fragmentos de código: @lsrdir{Repeats,Repeats}
-Referencia de funcionamiento interno: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
-@internalsref{UnfoldedRepeatedMusic}.
+Referencia de funcionamiento interno: @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic},
+@rinternals{UnfoldedRepeatedMusic}.
@c Ejemplos:
Fragmentos de código: @lsrdir{Repeats,Repeats}
-Referencia del programa: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic} y
-@internalsref{UnfoldedRepeatedMusic}.
+Referencia del programa: @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic}, @rinternals{VoltaRepeatedMusic} y
+@rinternals{UnfoldedRepeatedMusic}.
@node Written-out repeats
Fragmentos de código: @lsrdir{Repeats,Repeats}
-Referencia del programa: @internalsref{RepeatSlash},
-@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
-@internalsref{DoublePercentRepeatCounter},
-@internalsref{PercentRepeatCounter},
-@internalsref{PercentRepeatedMusic}.
+Referencia del programa: @rinternals{RepeatSlash},
+@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat},
+@rinternals{DoublePercentRepeatCounter},
+@rinternals{PercentRepeatCounter},
+@rinternals{PercentRepeatedMusic}.
@node Tremolo repeats
@subsubsection Tremolo repeats
Referencia de la notación: @ref{Tremolo repeats}.
-Referencia de funcionamiento interno: @internalsref{Beam},
-@internalsref{StemTremolo}.
+Referencia de funcionamiento interno: @rinternals{Beam},
+@rinternals{StemTremolo}.
Fragmentos de código: @lsrdir{Repeats,Repeats}
-En otros lugares: @internalsref{StemTremolo}.
+En otros lugares: @rinternals{StemTremolo}.
@lsrdir{Rhythms,Rhythms}.
Referencia de funcionamiento interno:
-@internalsref{Dots},
-@internalsref{DotColumn}.
+@rinternals{Dots},
+@rinternals{DotColumn}.
@knownissues
@lsrdir{Rhythms,Rhythms}.
Referencia de funcionamiento interno:
-@internalsref{TupletBracket},
-@internalsref{TupletNumber},
-@internalsref{TimeScaledMusic}.
+@rinternals{TupletBracket},
+@rinternals{TupletNumber},
+@rinternals{TimeScaledMusic}.
@knownissues
@cindex adorno, notas de, dentro de corchetes de grupo especial
@lsrdir{Rhythms,Rhythms}.
Referencia de funcionamiento interno:
-@internalsref{LaissezVibrerTie},
-@internalsref{LaissezVibrerTieColumn},
-@internalsref{TieColumn},
-@internalsref{Tie}.
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}.
@knownissues
@seealso
Referencia de funcionamiento interno:
-@internalsref{Rest}.
+@rinternals{Rest}.
@node Skips
El comando skip es un mero contenedor musical vacío. No produce
ninguna salida, ni siguiera una salida transparente.
-El comando de desplazamiento @code{s} crea una @internalsref{Staff} y una
-@internalsref{Voice} cuando es necesario, de forma similar a los comandos de nota y de silencio.
+El comando de desplazamiento @code{s} crea una @rinternals{Staff} y una
+@rinternals{Voice} cuando es necesario, de forma similar a los comandos de nota y de silencio.
Por ejemplo, el fragmento siguiente produce un pentagrama vacío.
@lilypond[quote,ragged-right,verbatim]
@seealso
Referencia de funcionamiento interno:
-@internalsref{SkipMusic}.
+@rinternals{SkipMusic}.
@node Full measure rests
@seealso
Referencia de funcionamiento interno:
-@internalsref{MultiMeasureRestMusicGroup},
-@internalsref{MultiMeasureRest}.
+@rinternals{MultiMeasureRestMusicGroup},
+@rinternals{MultiMeasureRest}.
-El objeto de presentación @internalsref{MultiMeasureRestNumber} es para el número
-por defecto, y @internalsref{MultiMeasureRestText} para los textos
+El objeto de presentación @rinternals{MultiMeasureRestNumber} es para el número
+por defecto, y @rinternals{MultiMeasureRestText} para los textos
definidos por el usuario.
@code{\time} establece las propiedades @code{timeSignatureFraction},
@code{beatLength} y @code{measureLength} en el contexto @code{Timing},
-cuyo nombre alternativo normalmente es @internalsref{Score}. La
+cuyo nombre alternativo normalmente es @rinternals{Score}. La
propiedad @code{measureLength} determina el lugar en que se deben insertar las barras de compás
y cómo se generan las barras de corchea automáticas. La modificación del valor de
@code{timeSignatureFraction} también provoca que se imprima
Están disponibles más opciones a través de la función de Scheme
@code{set-time-signature}. En combinación con el grabador
-@internalsref{Measure_grouping_engraver} (agrupación de compases), creará signos de
-@internalsref{MeasureGrouping}. Estos signos facilitan la lectura de música moderna
+@rinternals{Measure_grouping_engraver} (agrupación de compases), creará signos de
+@rinternals{MeasureGrouping}. Estos signos facilitan la lectura de música moderna
rítmicamente compleja. En el siguiente ejemplo el compás de 9/8
se subdivide en 2, 2, 2 y 3. Esto se pasa a
@code{set-time-signature} como un tercer argumento con el valor @code{(2 2 2 3)}
@seealso
Referencia de funcionamiento interno:
-@internalsref{TimeSignature},
-@internalsref{Timing_translator}.
+@rinternals{TimeSignature},
+@rinternals{Timing_translator}.
Ejemplos: @lsr{contemporary,compound-time-signature.ly}.
@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}
-por el @internalsref{Completion_heads_engraver}. En los siguientes
+Se hace mediante la sustitución del @rinternals{Note_heads_engraver}
+por el @rinternals{Completion_heads_engraver}. En los siguientes
ejemplos, las notas que atraviesan la barra de compás se dividen y se unen mediante una ligadura.
@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
exactamente cuánto le falta a cada compás.
Si quiere permitir el salto de línea en las barras de compás en las
-que @internalsref{Completion_heads_engraver} divide las notas, debe
-eliminar también @internalsref{Forbid_line_break_engraver}.
+que @rinternals{Completion_heads_engraver} divide las notas, debe
+eliminar también @rinternals{Forbid_line_break_engraver}.
@knownissues
@seealso
Referencia de funcionamiento interno:
-@internalsref{Completion_heads_engraver}.
+@rinternals{Completion_heads_engraver}.
@node Beams
@seealso
Referencia de funcionamiento interno:
-@internalsref{Beam}.
+@rinternals{Beam}.
@node Setting automatic beam behavior
@subsubsection Setting automatic beam behavior
@ref{System start delimiters}.
Referencia de funcionamiento interno:
-@internalsref{BarLine} (creada al nivel de @internalsref{Staff} (pentagrama)),
-@internalsref{SpanBar} (a través de los pentagramas).
+@rinternals{BarLine} (creada al nivel de @rinternals{Staff} (pentagrama)),
+@rinternals{SpanBar} (a través de los pentagramas).
@node Bar numbers
@seealso
Referencia de funcionamiento interno:
-@internalsref{BarNumber}.
+@rinternals{BarNumber}.
Ejemplos: @lsrdir{staff}
@knownissues
-Los números de compás pueden colisionar con el corchete @internalsref{StaffGroup}, si hay uno
+Los números de compás pueden colisionar con el corchete @rinternals{StaffGroup}, si hay uno
en la parte de arriba. Para solucionarlo, se puede usar la propiedad de relleno
-@code{padding} de @internalsref{BarNumber} para
+@code{padding} de @rinternals{BarNumber} para
colocar el número correctamente.
@ref{Text marks}.
Referencia de funcionamiento interno:
-@internalsref{RehearsalMark}.
+@rinternals{RehearsalMark}.
Archivos de inicio: @file{scm/@/translation@/-functions@/.scm} contiene la definición
de @code{format-mark-numbers} y de
@seealso
Referencia de funcionamiento interno:
-@internalsref{GraceMusic}.
+@rinternals{GraceMusic}.
@knownissues
@rlsr{Simultaneous notes}.
Referencia de funcionamiento interno:
-@internalsref{ClusterSpanner},
-@internalsref{ClusterSpannerBeacon},
-@internalsref{Cluster_spanner_engraver}.
+@rinternals{ClusterSpanner},
+@rinternals{ClusterSpannerBeacon},
+@rinternals{Cluster_spanner_engraver}.
@c Examples: @rlsr{contemporary,cluster@/.ly}.
Normalmente las cabezas de nota con un número de puntillos diferente
no se mezclan en una sola, pero cuando se le da un valor verdadero a
la propiedad @code{merge-differently-dotted} en el objeto
-@internalsref{NoteCollision}, se juntan en una sola:
+@rinternals{NoteCollision}, se juntan en una sola:
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice << {
Cuando LilyPond no puede con todo, se pueden usar la propiedad
@code{force-hshift} (forzar desplazamiento) del objeto
-@internalsref{NoteColumn} y los silencios con altura para
+@rinternals{NoteColumn} y los silencios con altura para
sobreescribir las decisiones de composición tipográfica.
@lilypond[quote,verbatim,ragged-right]
Referencia de funcionamiento interno: los objetos responsables de
resolver las colisiones son
-@internalsref{NoteCollision} y
-@internalsref{RestCollision}.
+@rinternals{NoteCollision} y
+@rinternals{RestCollision}.
@knownissues
@end lilypond
Los dos argumentos de @code{\partcombine} se interpretan como
-contextos de @internalsref{Voice}. Si se están usando octavas
+contextos de @rinternals{Voice}. Si se están usando octavas
relativas, se debe especificar @code{\relative} para ambas expresiones
musicales, es decir:
@lsrdir{Simultaneous,Simultaneous-notes}.
Referencia de funcionamiento interno:
-@internalsref{PartCombineMusic}, @internalsref{Voice}.
+@rinternals{PartCombineMusic}, @rinternals{Voice}.
@knownissues
Internamente, el @code{\partcombine} interpreta los dos argumentos
como @code{Voice}s llamadas @code{one} y @code{two}, y después decide
cuándo se pueden combinar las partes. Como consecuencia, si los
-argumentos cambian a contextos de @internalsref{Voice} con nombres
+argumentos cambian a contextos de @rinternals{Voice} con nombres
diferentes, los eventos que contienen se ignorarán.
@itemize @bullet
@item El grupo comienza con una llave a la izquierda y las líneas de compás
-están conectadas. Esto se hace con el contexto @internalsref{GrandStaff}.
+están conectadas. Esto se hace con el contexto @rinternals{GrandStaff}.
@lilypond[verbatim,ragged-right,quote]
\new GrandStaff
@item El grupo comienza con un corchete recto y las líneas de compás están conectadas.
Esto se hace con el contexto
-@internalsref{StaffGroup}
+@rinternals{StaffGroup}
@lilypond[verbatim,ragged-right,quote]
\new StaffGroup
@end lilypond
@item El grupo comienza con un corchete recto pero las líneas de compás no están conectadas.
-Esto se hace con el contexto @internalsref{ChoirStaff}.
+Esto se hace con el contexto @rinternals{ChoirStaff}.
@lilypond[verbatim,ragged-right,quote]
\new ChoirStaff
@seealso
Las barras de compás al principio de cada sistema son
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace} y
-@internalsref{SystemStartBracket}. En cada contexto solamente se
+@rinternals{SystemStartBar}, @rinternals{SystemStartBrace} y
+@rinternals{SystemStartBracket}. En cada contexto solamente se
crea uno de estos tipos, y ese tipo está determinado por la propiedad
@code{systemStartDelimiter}.
@seealso
-Referencia del programa: @internalsref{StaffSymbol}.
+Referencia del programa: @rinternals{StaffSymbol}.
Ejemplos: @lsrdir{staff}
En las partituras orquestales, generalmente se eliminan las líneas de pauta que contienen sólo silencios;
así se ahorra espacio. Este estilo se llama @q{Partitura francesa}.
-Para @internalsref{Lyrics},
-@internalsref{ChordNames} y @internalsref{FiguredBass}, esta opción está
+Para @rinternals{Lyrics},
+@rinternals{ChordNames} y @rinternals{FiguredBass}, esta opción está
activada por defecto. Cuando las líneas de estos contextos resultan vacías
después del proceso de cálculo de los saltos de línea, se eliminan.
-Para las pautas normales hay un contexto especializado @internalsref{Staff}, que
+Para las pautas normales hay un contexto especializado @rinternals{Staff}, que
hace lo mismo: las pautas que no contienen nada (o solamente
silencios multicompás) se quitan. La definición de contexto se almacena dentro de la variable
@code{\RemoveEmptyStaffContext}. Observe cómo el segundo pentagrama del siguiente ejemplo
El primer sistema muestra todos los pentagramas al completo. Si queremos que los pentagramas vacíos se
quiten también del primer sistema, podemos establecer @code{remove-first} al valor true en
-@internalsref{VerticalAxisGroup}.
+@rinternals{VerticalAxisGroup}.
@example
\override Score.VerticalAxisGroup #'remove-first = ##t
@seealso
-Referencia del programa: @internalsref{MetronomeMark}.
+Referencia del programa: @rinternals{MetronomeMark}.
@knownissues
En una partitura orquestal, los nombres de los instrumentos se imprimen en el lado izquierdo
de los pentagramas.
-Esto se puede conseguir estableciendo @internalsref{Staff}.@code{instrumentName}
-y @internalsref{Staff}.@code{shortInstrumentName}, o bien
-@internalsref{PianoStaff}.@code{instrumentName} y
-@internalsref{PianoStaff}.@code{shortInstrumentName}. Esto
+Esto se puede conseguir estableciendo @rinternals{Staff}.@code{instrumentName}
+y @rinternals{Staff}.@code{shortInstrumentName}, o bien
+@rinternals{PianoStaff}.@code{instrumentName} y
+@rinternals{PianoStaff}.@code{shortInstrumentName}. Esto
imprimirá el texto antes del
principio del pentagrama. Para el primer pentagrama se usa @code{instrumentName},
y para los siguientes se usa @code{shortInstrumentName}.
@seealso
-Referencia del programa: @internalsref{InstrumentName}.
+Referencia del programa: @rinternals{InstrumentName}.
@node Quoting other voices
@knownissues
-Sólo los contenidos de la primera @internalsref{Voice} que aparece dentro de una
+Sólo los contenidos de la primera @rinternals{Voice} que aparece dentro de una
instrucción @code{\addQuote} se tendrán en consideración para su cita, así que
@var{música} no puede contener sentencias @code{\new} y @code{\context Voice}
que podrían producir el cambio a una Voz diferente.
Ejemplos: @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly}
-Referencia del programa: @internalsref{QuoteMusic}.
+Referencia del programa: @rinternals{QuoteMusic}.
@node Formatting cue notes
@end example
Esto insertará las notas de la parte @var{nombre} en una
-@internalsref{Voice} llamada @code{cue}. Esto ocurre de forma simultánea
+@rinternals{Voice} llamada @code{cue}. Esto ocurre de forma simultánea
con @var{música}, que por lo general es un silencio. Cuando comienzan las notas guía,
el pentagrama se hace polifónico por un momento. El argumento
@var{arriba_abajo} determina si las notas guía se deben tipografiar como
En este manual: @ref{Text markup}.
-Referencia del programa: @internalsref{TextScript}.
+Referencia del programa: @rinternals{TextScript}.
@node Text and line spanners
@seealso
-Referencia del programa: @internalsref{TextSpanner},
-@internalsref{Glissando}, @internalsref{VoiceFollower},
-@internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
+Referencia del programa: @rinternals{TextSpanner},
+@rinternals{Glissando}, @rinternals{VoiceFollower},
+@rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
Ejemplos: @lsr{expressive,line-styles.ly}, @lsr{expressive,line-arrows.ly}
@seealso
-Referencia del programa: @internalsref{TextSpanner}.
+Referencia del programa: @rinternals{TextSpanner}.
@node Text marks
@seealso
-Referencia del programa: @internalsref{RehearsalMark}.
+Referencia del programa: @rinternals{RehearsalMark}.
@node New dynamic marks
Consulte @ref{Text markup commands}, para ver una lista de todas las
instrucciones.
-@code{\markup} se usa principalmente para indicaciones del tipo @internalsref{TextScript},
+@code{\markup} se usa principalmente para indicaciones del tipo @rinternals{TextScript},
pero también se pueden usar en cualquier lugar donde se requiere texto en lilypond
@lilypond[quote,verbatim]
Ciertos objetos tienen procedimientos de alineación propios, que cancelan
cualquier efecto de las alineaciones aplicadas a sus argumentos de marcado en su conjunto.
-Por ejemplo la @internalsref{RehearsalMark} se centra
+Por ejemplo la @rinternals{RehearsalMark} se centra
horizontalmente, por lo que usar @code{\mark \markup @{ \left-align .. @}} no tiene
ningún efecto.
En el presente manual: @ref{Text markup commands}.
-Referencia del programa: @internalsref{TextScript}.
+Referencia del programa: @rinternals{TextScript}.
Archivos de inicio: @file{scm/@/new@/-markup@/.scm}.
@seealso
-Referencia de funcionamiento interno: @internalsref{LyricText},
-@internalsref{LyricSpace}.
+Referencia de funcionamiento interno: @rinternals{LyricText},
+@rinternals{LyricSpace}.
@node Working with lyrics and variables
@subsubsection Working with lyrics and variables
@c TODO: document \new Staff << Voice \lyricsto >> bug
Referencia de funcionamiento interno:
-@internalsref{LyricCombineMusic}, @internalsref{Lyrics}.
+@rinternals{LyricCombineMusic}, @rinternals{Lyrics}.
@node Aligning lyrics to a melody
La letra se imprime a través de su interpretación dentro del contexto
-llamado @internalsref{Lyrics}.
+llamado @rinternals{Lyrics}.
@example
\new Lyrics \lyricmode @dots{}
\new Lyrics \lyricsto @var{nombre} @dots{}
@end example
-Esto alinea la letra a las notas del contexto de @internalsref{Voice}
+Esto alinea la letra a las notas del contexto de @rinternals{Voice}
llamado @var{nombre}, que debe existir previamente. Por ello la
@code{Voice} normalmente se especifica en primer lugar, y después se
especifica la letra con @code{\lyricsto}. La instrucción
@noindent
El valor de la propiedad (aquí: @code{"lala"}) ha de ser el nombre de
-un contexto de @internalsref{Voice}. Sin este ajuste, las líneas de
+un contexto de @rinternals{Voice}. Sin este ajuste, las líneas de
extensión no se formatearán correctamente.
Presentamos a continuación un ejemplo que muestra el uso de las
@seealso
-Referencia de funcionamiento interno: @internalsref{Lyrics}.
+Referencia de funcionamiento interno: @rinternals{Lyrics}.
@node Multiple syllables to one note
@seealso
-Referencia de funcionamiento interno: @internalsref{LyricCombineMusic}.
+Referencia de funcionamiento interno: @rinternals{LyricCombineMusic}.
@c Here come the section which used to be "Melismata"
@c the new title might be more self-explanatory
@seealso
-Referencia de funcionamiento interno: @internalsref{Melisma_translator}.
+Referencia de funcionamiento interno: @rinternals{Melisma_translator}.
@c @lsr{vocal,lyric@/-combine.ly}.
@seealso
-Referencia de funcionamiento interno: @internalsref{LyricExtender},
-@internalsref{LyricHyphen}
+Referencia de funcionamiento interno: @rinternals{LyricExtender},
+@rinternals{LyricHyphen}
@node Lyrics and repeats
@seealso
-Referencia de funcionamiento interno: @internalsref{LyricText},
-@internalsref{StanzaNumber}, @internalsref{VocalName}.
+Referencia de funcionamiento interno: @rinternals{LyricText},
+@rinternals{StanzaNumber}, @rinternals{VocalName}.
Pour de la musique ancienne, vous disposez de plusieurs styles de tête
de note, en plus du style par défaut @code{default}. Vous pouvez
-affecter à la propriété @code{style} de l'objet @internalsref{NoteHead}
+affecter à la propriété @code{style} de l'objet @rinternals{NoteHead}
les valeurs @code{baroque}, @code{neomensural}, @code{mensural} ou
@code{petrucci}. En style @code{baroque}, la seule différence par
rapport au style @code{default} concerne la @code{\breve} qui sera
@end lilypond
Si vous écrivez en notation grégorienne, le
-@internalsref{Gregorian_ligature_engraver} se chargera de sélectionner
+@rinternals{Gregorian_ligature_engraver} se chargera de sélectionner
les têtes de note appropriées ; il est donc inutile de spécifier le
style à utiliser. Vous pouvez cependant spécifier par exemple le style
@code{vaticana_punctum} pour obtenir des neumes punctums. De même,
-c'est le @internalsref{Mensural_ligature_engraver} qui se chargera des
+c'est le @rinternals{Mensural_ligature_engraver} qui se chargera des
ligatures mensurales. Consultez la section @ref{Ligatures} pour savoir
comment fonctionnent les graveurs de ligature.
Pour utiliser les formes anciennes d'altération, utilisez la propriété
-@code{glyph-name-alist} des objets graphiques @internalsref{Accidental}
-et @internalsref{KeySignature}.
+@code{glyph-name-alist} des objets graphiques @rinternals{Accidental}
+et @rinternals{KeySignature}.
@lilypond[quote,ragged-right,staffsize=26]
\score {
À l'instar des altérations accidentelles, le style d'armure est géré
par la propriété @code{glyph-name-alist} de l'objet
-@internalsref{KeySignature}.
+@rinternals{KeySignature}.
@seealso
@ref{Automatic accidentals}, pour les principes généraux d'utilisation
des altérations ; @ref{Key signature} pour les armures.
-Référence du programme : @internalsref{KeySignature}.
+Référence du programme : @rinternals{KeySignature}.
Exemples : @lsrdir{ancient}
@cindex silences, musique ancienne
-La propriété @code{style} de l'objet @internalsref{Rest} permet
+La propriété @code{style} de l'objet @rinternals{Rest} permet
d'obtenir des silences de type ancien. Vous disposez des styles
@code{classical}, @code{neomensural} et @code{mensural}. Le style
@code{classical} ne se distingue du style @code{default} que par le
@cindex crochets
Le réglage de la propriété @code{flag-style} de l'objet hampe
-(@internalsref{Stem}) donne accès aux crochets de style ancien. Les
+(@rinternals{Stem}) donne accès aux crochets de style ancien. Les
seuls styles actuellement pris en charge sont @code{default} et
@code{mensural}.
}
@end lilypond
-La propriété @code{style} de l'objet @internalsref{TimeSignature} permet
+La propriété @code{style} de l'objet @rinternals{TimeSignature} permet
d'accéder aux indicateurs de métrique anciens. Les styles
@code{neomensural} et @code{mensural} sont disponibles. Vous avez vu
ci-dessus le style @code{neomensural}, particulièrement utilisé pour
de notation.
L'impression de guidons s'obtient en affectant, dans un bloc
-@code{\layout}, le @internalsref{Custos_engraver} au contexte
+@code{\layout}, le @rinternals{Custos_engraver} au contexte
@code{Staff}, comme le montre l'exemple suivant.
@example
@seealso
-Référence du programme : @internalsref{Custos}.
+Référence du programme : @rinternals{Custos}.
Exemples : @lsr{ancient,custodes@/.ly}.
Dans ce manuel : @ref{Breath marks}.
-Référence du programme : @internalsref{BreathingSign}.
+Référence du programme : @rinternals{BreathingSign}.
Exemples : @lsr{expressive,breathing-sign.ly}.
Les ligatures s'indiquent par une inclusion entre @code{\[} et
@code{\]}. Certains styles de ligature peuvent demander un complément
de syntaxe spécifique. Par défaut, le graveur
-@internalsref{LigatureBracket} place un simple crochet au dessus de
+@rinternals{LigatureBracket} place un simple crochet au dessus de
la ligature :
@lilypond[quote,ragged-right,verbatim]
@end lilypond
Selon le style de ligature désiré, il faut ajouter au contexte
-@internalsref{Voice} le graveur de ligature approprié, comme nous le
+@rinternals{Voice} le graveur de ligature approprié, comme nous le
verrons plus loin. Seules sont disponibles les ligatures mensurales
blanches, avec quelques limitations.
limitations.
La gravure des ligatures mensurales blanches s'obtient après avoir
-ajouté le @internalsref{Mensural_ligature_engraver} et enlevé le
-@internalsref{Ligature_bracket_engraver} dans le contexte
-@internalsref{Voice}, comme ici :
+ajouté le @rinternals{Mensural_ligature_engraver} et enlevé le
+@rinternals{Ligature_bracket_engraver} dans le contexte
+@rinternals{Voice}, comme ici :
@example
\layout @{
}
@end lilypond
-Si on ne remplace pas le @internalsref{Ligature_bracket_engraver}
-par le @internalsref{Mensural_ligature_engraver}, on obtient
+Si on ne remplace pas le @rinternals{Ligature_bracket_engraver}
+par le @rinternals{Mensural_ligature_engraver}, on obtient
@lilypond[quote,ragged-right]
\transpose c c' {
@seealso
-Référence du programme : le graveur @internalsref{Accidental_engraver}
-et l'objet @internalsref{AccidentalSuggestion}.
+Référence du programme : le graveur @rinternals{Accidental_engraver}
+et l'objet @rinternals{AccidentalSuggestion}.
@node Figured bass
La gestion de la basse chiffrée se décompose en deux parties. Dans un
premier temps, le mode @code{\figuremode} permet de saisir les accords
-sous forme chiffrée. Le contexte @internalsref{FiguredBass} s'occupera
-ensuite de gérer les objets @internalsref{BassFigure}.
+sous forme chiffrée. Le contexte @rinternals{FiguredBass} s'occupera
+ensuite de gérer les objets @rinternals{BassFigure}.
En mode de saisie, un chiffrage est délimité par @code{<} et
@code{>}. La durée est indiquée après le @code{>} :
Bien que la gestion de la basse chiffrée ressemble beaucoup à celle
des accords, elle est beaucoup plus simpliste. Le mode
@code{\figuremode} ne fait que stocker des chiffres que le contexte
-@internalsref{FiguredBass} se chargera d'imprimer tels quels. En
+@rinternals{FiguredBass} se chargera d'imprimer tels quels. En
aucune manière ils ne sont transformés en son, et ils ne sont pas
rendus dans un fichier MIDI.
@seealso
-Référence du programme : les objets @internalsref{NewBassFigure},
-@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine},
-@internalsref{BassFigureBracket} et
-@internalsref{BassFigureContinuation}, ainsi que le contexte
-@internalsref{FiguredBass}.
+Référence du programme : les objets @rinternals{NewBassFigure},
+@rinternals{BassFigureAlignment}, @rinternals{BassFigureLine},
+@rinternals{BassFigureBracket} et
+@rinternals{BassFigureContinuation}, ainsi que le contexte
+@rinternals{FiguredBass}.
Cette règle est équivalente à @code{modern}, mais les bécarres de précaution sont
imprimés de façon particulière : soit plus petits, soit (par défaut) entre parenthèses.
Il est possible de le définir au moyen de la propriété @code{cautionary-style}
-pour l'objet @internalsref{AccidentalSuggestion}.
+pour l'objet @rinternals{AccidentalSuggestion}.
@lilypond[quote,ragged-right]
musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
Cette règle sert aux altérations dans de la musique polyphonique destinée
autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble des voix.
Les altérations sont imprimées voix par voix, mais les autres voix, dans le même
-contexte @internalsref{Staff}, en @emph{tiennent compte} cette fois.
+contexte @rinternals{Staff}, en @emph{tiennent compte} cette fois.
@lilypond[quote,ragged-right]
musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
Cette règle est communément employée pour les partitions de piano au XXème siècle.
Très similaire à @code{modern} de par son comportement, elle s'en distingue en ce que
-les altérations tiennent compte des autre portées du contexte @internalsref{GrandStaff} ou
-@internalsref{PianoStaff}.
+les altérations tiennent compte des autre portées du contexte @rinternals{GrandStaff} ou
+@rinternals{PianoStaff}.
@lilypond[quote,ragged-right]
musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@seealso
-Référence du programme : @internalsref{Accidental_engraver},
-@internalsref{Accidental}, @internalsref{AccidentalSuggestion} et @internalsref{AccidentalPlacement}.
+Référence du programme : @rinternals{Accidental_engraver},
+@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et @rinternals{AccidentalPlacement}.
@knownissues
@noindent
aucun argument @var{contexte} n'a été donné à la commande @code{\set}.
De ce fait, les ligatures automatiques sont désactivées dans le
-contexte actuel, c'est-à-dire @internalsref{Voice}. Notez que le
+contexte actuel, c'est-à-dire @rinternals{Voice}. Notez que le
contexte le plus restreint n'est pas toujours le bon,
et peut ne pas contenir la propriété qui vous intéresse : ainsi, la propriété
@code{skipBars}, évoquée plus haut, ne relève pas du contexte @code{Voice},
La référence du programme contient une description exhaustive de toutes les
propriétés contexte par contexte : voir
@ifhtml
-@internalsref{Tunable context properties}.
+@rinternals{Tunable context properties}.
@end ifhtml
@ifnothtml
Translation @expansion{} Tunable context properties.
Vous trouverez une description exhaustive de chaque graveur dans
@ifhtml
-@internalsref{Engravers}.
+@rinternals{Engravers}.
@end ifhtml
@ifnothtml
Program reference @expansion Translation @expansion{} Engravers.
@end ifnothtml
Chaque contexte mentionné dans
@ifhtml
-@internalsref{Contexts}
+@rinternals{Contexts}
@end ifhtml
@ifnothtml
Program reference @expansion Translation @expansion{} Context.
@seealso
-Référence du programme : @internalsref{OverrideProperty}, @internalsref{RevertProperty},
-@internalsref{PropertySet}, @internalsref{Backend}, et
-@internalsref{All layout objects}.
+Référence du programme : @rinternals{OverrideProperty}, @rinternals{RevertProperty},
+@rinternals{PropertySet}, @rinternals{Backend}, et
+@rinternals{All layout objects}.
@knownissues
@end example
@noindent
-Le graveur @internalsref{Pitch_squash_engraver} intercepte les notes créées par
-@internalsref{Note_heads_engraver}, et les @q{écrase} pour qu'elles aient toutes la
+Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes créées par
+@rinternals{Note_heads_engraver}, et les @q{écrase} pour qu'elles aient toutes la
même position verticale, définie par @code{squashedPosition} : ici il s'agit de la
valeur@tie{}@code{0}, c'est-à-dire la ligne du milieu.
@item Afin que tous ces graveurs puissent travailler de concert, on leur adjoint un
sous-programme spécial, introduit par la commande @code{\type} : il s'agit de
-@internalsref{Engraver_group},
+@rinternals{Engraver_group},
@example
\type "Engraver_group"
@quotation
@seealso
-Référence du programme : @internalsref{Fingering}.
+Référence du programme : @rinternals{Fingering}.
@end quotation
forward. For example, it says
@quotation
-Accepted by: @internalsref{Fingering_engraver},
+Accepted by: @rinternals{Fingering_engraver},
@end quotation
@noindent
plug-in, which says
@quotation
-This engraver creates the following layout objects: @internalsref{Fingering}.
+This engraver creates the following layout objects: @rinternals{Fingering}.
@end quotation
In other words, once the @code{FingerEvent}s are interpreted, the
@c I can't figure out what this is supposed to mean. -gp
The @code{Fingering_engraver} is also listed to create
-@internalsref{Fingering} objects,
+@rinternals{Fingering} objects,
@c old info? it doesn't make any sense to me with our current docs.
This is also the
dans un document au format PDF.
@end ifnothtml
-Suivons le lien @internalsref{Fingering}. En haut de la nouvelle page,
+Suivons le lien @rinternals{Fingering}. En haut de la nouvelle page,
on peut lire
@quotation
-Fingering objects are created by: @internalsref{Fingering_engraver} and
-@internalsref{New_fingering_engraver}.
+Fingering objects are created by: @rinternals{Fingering_engraver} and
+@rinternals{New_fingering_engraver}.
@end quotation
En d'autres termes, @emph{Les indications de doigtés}
(@code{Fingering} en anglais) @emph{sont créées par les graveurs
-@internalsref{Fingering_engraver} et @internalsref{New_fingering_engraver}.}
+@rinternals{Fingering_engraver} et @rinternals{New_fingering_engraver}.}
En suivant derechef les liens propres à la référence du programme, on suit en fait
le cheminement qui aboutit à la création de la partition :
@itemize @bullet
-@item @internalsref{Fingering}:
-@internalsref{Fingering} objects are created by:
-@internalsref{Fingering_engraver}
+@item @rinternals{Fingering}:
+@rinternals{Fingering} objects are created by:
+@rinternals{Fingering_engraver}
-@item @internalsref{Fingering_engraver}:
-Music types accepted: @internalsref{fingering-event}
+@item @rinternals{Fingering_engraver}:
+Music types accepted: @rinternals{fingering-event}
-@item @internalsref{fingering-event}:
+@item @rinternals{fingering-event}:
Music event type @code{fingering-event} is in Music expressions named
-@internalsref{FingerEvent}
+@rinternals{FingerEvent}
@end itemize
Ce cheminement se produit, bien sûr, en sens inverse : nous sommes ici partis
La référence du programme peut également se parcourir comme un document normal.
On y trouve des chapitres tels que
@ifhtml
-@internalsref{Music definitions},
+@rinternals{Music definitions},
@end ifhtml
@ifnothtml
@code{Music definitions}
@end ifnothtml
-@internalsref{Translation}, ou encore @internalsref{Backend}. Chaque chapitre
+@rinternals{Translation}, ou encore @rinternals{Backend}. Chaque chapitre
recense toutes les définitions employées, et les propriétés sujettes à
ajustements.
(en anglais @q{Graphical Object}, d'où le diminutif @emph{Grob}).
Chaque objet est doté d'un certain nombre de propriétés (l'épaisseur du trait,
l'orientation, etc.), et lié à d'autres objets.
-Le fonctionnement de ces objets est décrit en détail dans @internalsref{grob-interface}.
+Le fonctionnement de ces objets est décrit en détail dans @rinternals{grob-interface}.
Prenons l'exemple des doigtés (en anglais @q{Fingering}).
La page @code{Fingering} de la Référence du programme établit une liste de définitions
@end itemize
Faire appliquer ces différents attributs est le rôle des @emph{interfaces},
-que l'on trouve en bas de la page @internalsref{Fingering}.
+que l'on trouve en bas de la page @rinternals{Fingering}.
@quotation
This object supports the following interfaces:
-@internalsref{item-interface},
-@internalsref{self-alignment-interface},
-@internalsref{side-position-interface}, @internalsref{text-interface},
-@internalsref{text-script-interface}, @internalsref{font-interface},
-@internalsref{finger-interface}, and @internalsref{grob-interface}.
+@rinternals{item-interface},
+@rinternals{self-alignment-interface},
+@rinternals{side-position-interface}, @rinternals{text-interface},
+@rinternals{text-script-interface}, @rinternals{font-interface},
+@rinternals{finger-interface}, and @rinternals{grob-interface}.
@end quotation
@noindent
Dans le cas présent, le réglage intervient dans le contexte @context{Voice},
ce qui pouvait également se déduire de la Référence du programme, où la page
-du graveur @internalsref{Fingering_engraver} indique :
+du graveur @rinternals{Fingering_engraver} indique :
@quotation
-Fingering_engraver is part of contexts: @dots{} @internalsref{Voice}
+Fingering_engraver is part of contexts: @dots{} @rinternals{Voice}
@end quotation
@noindent
Ce qui signifie
@quotation
-Le graveur Fingering_engraver fait partie des contextes : @dots{} @internalsref{Voice}
+Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Voice}
@end quotation
le nom de l'objet (@emph{grob}), ni le contexte dans lequel cela doit s'appliquer.
Ce procédé ne marche que pour des objets directement liés aux évènements
-(@internalsref{Event}) du fichier source. Par exemple :
+(@rinternals{Event}) du fichier source. Par exemple :
@itemize @bullet
@item Les têtes de notes au sein d'un accord, qui sont directement engendrées par
si oui, applique un espacement supplémentaire (@code{extra-offset}).
@end itemize
-On ajoute cette procédure à l'objet @internalsref{Tie} (liaison de tenue),
+On ajoute cette procédure à l'objet @rinternals{Tie} (liaison de tenue),
de façon à ce que le deuxième morceau d'une liaison divisée soit rehaussé.
@c KEEP LY
@cindex accords
Les chiffrages d'accords sont liés au contexte
-@internalsref{ChordNames}. Les accords peuvent être saisis soit au
+@rinternals{ChordNames}. Les accords peuvent être saisis soit au
moyen de la notation indiquée ci-dessus, soit directement avec les
symboles @code{<} et @code{>}.
Vous pouvez faire ressortir les chiffrages d'accords en assignant la
valeur vrai à la propriété @code{chordChanges} dans le contexte
-@internalsref{ChordNames}. De cette façon, les chiffrages ne sont
+@rinternals{ChordNames}. De cette façon, les chiffrages ne sont
imprimés qu'aux changements d'accord ou en début de ligne.
@lilypond[quote,verbatim,ragged-right]
Les exemples précédents montrent des chiffrages placés au-dessus de la
portée, mais ce n'est pas obligatoire : les accords peuvent également
être imprimés séparément -- auquel cas vous aurez peut-être besoin
-d'ajouter le @internalsref{Volta_engraver} et le
-@internalsref{Bar_engraver} afin que les éventuelles barres de reprises
+d'ajouter le @rinternals{Volta_engraver} et le
+@rinternals{Bar_engraver} afin que les éventuelles barres de reprises
s'affichent correctement.
@lilypond[ragged-right,verbatim]
convertisseur capable d'importer directement un fichier.
@command{midi2ly} convertit les pistes en contextes de portée
-(@internalsref{Staff}) et les canaux en contextes de voix
-(@internalsref{Voice}). Les hauteurs sont rendues en mode relatif, et
+(@rinternals{Staff}) et les canaux en contextes de voix
+(@rinternals{Voice}). Les hauteurs sont rendues en mode relatif, et
les durées spécifiées lorsque nécessaire.
Vous pouvez enregistrer un fichier MIDI grace à un clavier
La propriété @code{font-size} ne peut intervenir que pour les objets
qui utilisent des polices, autrement dit ceux qui disposent de
-l'interface de rendu @internalsref{font-interface}.
+l'interface de rendu @rinternals{font-interface}.
@predefined
@seealso
-Référence du programme : @internalsref{Fingering}.
+Référence du programme : @rinternals{Fingering}.
D'autres exemples : @lsr{expressive,fingering-chords.ly}.
Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
représentant la hauteur la plus basse et la plus haute. Pour imprimer
-cet ambitus, il faut ajouter le graveur @internalsref{Ambitus_engraver}
-au contexte @internalsref{Voice}. Ainsi,
+cet ambitus, il faut ajouter le graveur @rinternals{Ambitus_engraver}
+au contexte @rinternals{Voice}. Ainsi,
@example
\layout @{
@end lilypond
Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
-graveur @internalsref{Ambitus_engraver} au contexte @internalsref{Staff}
-plutôt qu'au contexte @internalsref{Voice} ; l'ambitus affiché sera
+graveur @rinternals{Ambitus_engraver} au contexte @rinternals{Staff}
+plutôt qu'au contexte @rinternals{Voice} ; l'ambitus affiché sera
alors celui de toutes les voix cumulées, non d'une seule des voix
actives.
@seealso
-Référence du programme : @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
+Référence du programme : @rinternals{Ambitus},
+@rinternals{AmbitusLine}, @rinternals{AmbitusNoteHead},
+@rinternals{AmbitusAccidental}.
Exemples :
@lsr{vocal,ambitus@/.ly}.
@node Stems
@unnumberedsubsubsec Stems
-Dès qu'une note est rencontrée, un objet @internalsref{Stem} se crée
+Dès qu'une note est rencontrée, un objet @rinternals{Stem} se crée
automatiquement. Pour les rondes et les silences, ils sont aussi
créés, mais en mode invisible.
@seealso
-Référence du programme : @internalsref{text-balloon-interface}.
+Référence du programme : @rinternals{text-balloon-interface}.
@node Grid lines
Les symboles s'ordonnent verticalement suivant la propriété
@code{script-priority}. Plus sa valeur numérique est faible, plus le
symbole sera proche de la note. Dans l'exemple suivant, l'objet
-@internalsref{TextScript} --- le dièse --- a d'abord la propriété la
+@rinternals{TextScript} --- le dièse --- a d'abord la propriété la
plus basse, et il est donc placé plus près de la note ; ensuite c'est
-l'objet @internalsref{Script} qui a la propriété la plus basse, et il se
+l'objet @rinternals{Script} qui a la propriété la plus basse, et il se
place alors sous le dièse. Lorsque deux objets ont la même priorité,
c'est l'ordre dans lequel ils sont indiqués qui détermine lequel sera
placé en premier.
@seealso
-Référence du programme : @internalsref{Script}.
+Référence du programme : @rinternals{Script}.
@knownissues
Cependant, ces deux indications graphiques peuvent se trouver très
comprimées horizontalement. Pour les rallonger, on peut modifier la
propriété @code{minimum-length} de
-@code{Voice.Hairpin} --- @internalsref{Voice}
-étant le contexte, et @internalsref{Hairpin} l'objet affecté. Par
+@code{Voice.Hairpin} --- @rinternals{Voice}
+étant le contexte, et @rinternals{Hairpin} l'objet affecté. Par
exemple :
@example
avec les nuances habituelles, voir @ref{New dynamic marks}.
Le positionnement vertical des nuances est géré par le
-@internalsref{DynamicLineSpanner}.
+@rinternals{DynamicLineSpanner}.
@commonprop
@seealso
-Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
+Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
Le placement vertical de ces éléments graphiques est géré par le
-@internalsref{DynamicLineSpanner}.
+@rinternals{DynamicLineSpanner}.
@node Curves
Dans ce même manuel : @ref{Automatic note splitting}.
-Référence du programme : @internalsref{Tie}.
+Référence du programme : @rinternals{Tie}.
@knownissues
@seealso
-Référence du programme : @internalsref{Slur}.
+Référence du programme : @rinternals{Slur}.
@node Phrasing slurs
@seealso
-Référence du programme : @internalsref{PhrasingSlur}.
+Référence du programme : @rinternals{PhrasingSlur}.
@node Laissez vibrer ties
@seealso
Référence du programme :
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
+@rinternals{LaissezVibrerTie}
+@rinternals{LaissezVibrerTieColumn}
D'autres exemples :
@lsr{connecting,laissez-vibrer-ties.ly}
@seealso
-Référence du programme : @internalsref{BreathingSign}.
+Référence du programme : @rinternals{BreathingSign}.
Exemples : @lsr{expressive,breathing-sign.ly}
@seealso
-Référence du programme : @internalsref{Glissando}.
+Référence du programme : @rinternals{Glissando}.
D'autres exemples : @lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}.
Quand un arpège couvre plusieurs portées, il est possible d'indiquer
l'arpège sur chacune des portées, puis de relier la ligne de vaguelettes
en assignant @emph{vrai} à la propriété @code{connectArpeggios}, par
-exemple dans le contexte @internalsref{PianoStaff} :
+exemple dans le contexte @rinternals{PianoStaff} :
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new PianoStaff <<
Dans ce même manuel : @ref{Ties}, pour noter explicitement des arpèges.
-Référence du programme : @internalsref{Arpeggio}.
+Référence du programme : @rinternals{Arpeggio}.
@knownissues
Il est impossible de mêler au même instant, dans un contexte
-@internalsref{PianoStaff}, des lignes d'arpèges connectées et d'autres
+@rinternals{PianoStaff}, des lignes d'arpèges connectées et d'autres
non connectées.
@seealso
-Référence du programme : @internalsref{TrillSpanner}.
+Référence du programme : @rinternals{TrillSpanner}.
@node Analysis brackets
On utilise des crochets en analyse musicale, pour indiquer la
structure d'une pièce. LilyPond permet d'utiliser une forme
simplifiée de crochets horizontaux imbriqués, dans la mesure où le
-contexte @internalsref{Staff} comporte le graveur
-@internalsref{Horizontal_bracket_engraver}. Un crochet s'ouvre avec
+contexte @rinternals{Staff} comporte le graveur
+@rinternals{Horizontal_bracket_engraver}. Un crochet s'ouvre avec
@code{\startGroup}, et se ferme avec @code{\stopGroup}.
@lilypond[quote,ragged-right,verbatim]
@seealso
-Référence du programme : @internalsref{HorizontalBracket}.
+Référence du programme : @rinternals{HorizontalBracket}.
@seealso
-Référence du programme : @internalsref{StringNumber},
+Référence du programme : @rinternals{StringNumber},
@lsr{guitar/,string-number.ly}.
noire à jouer sur la troisième corde. Par défaut, la première corde est
la plus aigüe, et les cordes suivent l'accord traditionnel d'une guitare
à six cordes. Les notes sont imprimées sous forme de tablature, dans
-les contextes @internalsref{TabStaff} et @internalsref{TabVoice}.
+les contextes @rinternals{TabStaff} et @rinternals{TabVoice}.
@lilypond[quote,ragged-right,fragment,verbatim]
\new TabStaff {
@seealso
-Référence du programme : @internalsref{TabStaff}, @internalsref{TabVoice}.
+Référence du programme : @rinternals{TabStaff}, @rinternals{TabVoice}.
@knownissues
Vous trouverez une liste complète des jeux prédéfinis dans le fichier
@file{scm/@/output@/-lib@/.scm}.
-Référence du programme : @internalsref{Tab_note_heads_engraver}.
+Référence du programme : @rinternals{Tab_note_heads_engraver}.
@knownissues
Par ailleurs, plusieurs propriétés permettent d'ajuster le graphisme
à votre convenance. Vous en trouverez les détails dans
-@internalsref{fret-diagram-interface}.
+@rinternals{fret-diagram-interface}.
@seealso
@seealso
-Référence du programme : @internalsref{StrokeFinger}
+Référence du programme : @rinternals{StrokeFinger}
@node Explicitly instantiating voices
@subsection Explicitly instantiating voices
-Les contextes @internalsref{Voice} peuvent être déclarés manuellement
+Les contextes @rinternals{Voice} peuvent être déclarés manuellement
dans un bloc @code{<< >>} pour créer de la musique polyphonique, en
utilisant @code{\voiceOne}, @dots{} jusqu'à @code{\voiceFour} pour
assigner des directions de hampes et un déplacement horizontal pour
Une description exhaustive de tous les contextes disponibles peut être trouvée dans la
référence du programme : voir
@ifhtml
-@internalsref{Contexts}.
+@rinternals{Contexts}.
@end ifhtml
@ifnothtml
Translation @expansion{} Context.
@seealso
-Program reference: @internalsref{Contexts}.
+Program reference: @rinternals{Contexts}.
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
Dans ce même manuel : @ruser{Changing staff manually}.
-Référence du programme : @internalsref{AutoChangeMusic}.
+Référence du programme : @rinternals{AutoChangeMusic}.
@seealso
-Référence du programme : @internalsref{VoiceFollower}.
+Référence du programme : @rinternals{VoiceFollower}.
@predefined
Les modalités d'impression de ces indications sont définies par la
propriété @code{pedal@var{X}Strings}, @var{X} étant l'une des trois
pédales @code{Sustain}, @code{Sostenuto} ou @code{UnaCorda}. Voyez
-la référence du programme, section @internalsref{SustainPedal}, pour en
+la référence du programme, section @rinternals{SustainPedal}, pour en
savoir plus.
La propriété @code{pedalSustainStyle} permet différentes notations de
moyen des propriétés @code{edge-width}, @code{edge-height}, et
@code{shorten-pair}, appliquées aux objets @code{PianoPedalBracket} ---
voir la référence du programme, section
-@internalsref{PianoPedalBracket}. Par exemple, on peut étirer le crochet
+@rinternals{PianoPedalBracket}. Par exemple, on peut étirer le crochet
jusqu'à l'extrémité droite de la dernière note :
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@c obsolete, remove when translation is fully updated
@macro context{TEXT}
@vindex \TEXT\
-@code{\TEXT\}@c should use internalsref
+@code{\TEXT\}@c should use rinternals
@end macro
@c obsolete, remove when translation is fully updated
@code{\TEXT\}
@end macro
+@macro lydoctitle {TEXT}
+@emph{\TEXT\}
+
+@end macro
+
@macro funindex {TEXT}
@findex \TEXT\
@kindex \TEXT\
@c Definitions for references:
-@c @internalsref
+@c @rinternals
@c @rglos
@c @rprogram
@c @ruser
@ifset bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals-big-page,Référence des propriétés internes}
@end macro
@ifclear bigpage
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Référence des propriétés internes}
@end macro
@ifdocbook
@c ***** DOCBOOK-XML *****
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-internals,Référence des propriétés internes}
@end macro
@ifinfo
@c **** INFO ****
-@macro internalsref{NAME}
+@macro rinternals{NAME}
@vindex \NAME\
@inforef{\NAME\,,lilypond-internals,Référence des propriétés internes}
@end macro
@c **** TEX ****
@iftex
-@macro internalsref{TEXT}
+@macro rinternals{TEXT}
@vindex \TEXT\
@code{\TEXT\}
@end macro
@seealso
-Référence du programme : @internalsref{RhythmicStaff}.
+Référence du programme : @rinternals{RhythmicStaff}.
@node Entering percussion
@seealso
-Référence du Programme : @internalsref{note-event}.
+Référence du Programme : @rinternals{note-event}.
@node Percussion staves
@unnumberedsubsubsec Percussion staves
portée représente un instrument à percussion.
Pour saisir cette musique, il faut que les notes soient situées dans
-des contextes @internalsref{DrumStaff} et @internalsref{DrumVoice}.
+des contextes @rinternals{DrumStaff} et @rinternals{DrumVoice}.
@lilypond[quote,ragged-right,verbatim]
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
L'exemple ci-dessus montre une notation polyphonique détaillée. La
notation polyphonique abrégée peut être employée lorsque le contexte
-@internalsref{DrumVoice} est spécifié explicitement :
+@rinternals{DrumVoice} est spécifié explicitement :
@lilypond[quote,ragged-right,fragment,verbatim]
\new DrumStaff <<
@end lilypond
On peut choisir d'autres mises en forme si l'on définit la propriété
-@code{drumStyleTable} dans le contexte @internalsref{DrumVoice}.
+@code{drumStyleTable} dans le contexte @rinternals{DrumVoice}.
Quelques variables prédéfinies sont disponibles :
@table @code
Fichier d'initialisation : @file{ly/@/drumpitch@/-init@/.ly}.
-Référence du programme : @internalsref{DrumStaff}, @internalsref{DrumVoice}.
+Référence du programme : @rinternals{DrumStaff}, @rinternals{DrumVoice}.
@knownissues
@seealso
-Référence du programme : @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
+Référence du programme : @rinternals{LedgerLineSpanner},
+@rinternals{NoteHead}.
@node Cautionary accidentals
@seealso
-Référence du programme : @internalsref{TransposedMusic}.
+Référence du programme : @rinternals{TransposedMusic}.
Exemple : @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}.
Dans ce manuel : @ref{Grace notes}.
-Référence du programme : @internalsref{Clef}.
+Référence du programme : @rinternals{Clef}.
@node Key signature
@seealso
-Référence du programme : @internalsref{KeyCancellation},
-@internalsref{KeySignature}.
+Référence du programme : @rinternals{KeyCancellation},
+@rinternals{KeySignature}.
@node Ottava brackets
@seealso
-Référence du programme : @internalsref{OttavaBracket}.
+Référence du programme : @rinternals{OttavaBracket}.
@knownissues
@seealso
-Référence du programme : @internalsref{NoteHead}.
+Référence du programme : @rinternals{NoteHead}.
@node Easy notation note heads
@end lilypond
La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
-@internalsref{NoteHead}. L'impression doit être de plus grande
+@rinternals{NoteHead}. L'impression doit être de plus grande
taille, afin que les lettres soient lisibles. Voir à ce propos
@ref{Setting the staff size}.
L'improvisation peut quelquefois s'indiquer à l'aide de notes de forme
allongée (@emph{slash}). Ces têtes de notes sont créées par
-l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
-contexte @internalsref{Voice}, de telle sorte que la commande
+l'adjonction du graveur @rinternals{Pitch_squash_engraver} au
+contexte @rinternals{Voice}, de telle sorte que la commande
@example
\set squashedPosition = #0
@seealso
-Program reference: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic}, et
-@internalsref{UnfoldedRepeatedMusic}.
+Program reference: @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic}, et
+@rinternals{UnfoldedRepeatedMusic}.
Examples
@seealso
-Référence du programme : @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic}, et
-@internalsref{UnfoldedRepeatedMusic}.
+Référence du programme : @rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic}, et
+@rinternals{UnfoldedRepeatedMusic}.
@node Other repeats
Dans ce manuel : @ref{Tremolo subdivisions}, @ref{Repeats}.
-Référence du programme : @internalsref{Beam}, @internalsref{StemTremolo}.
+Référence du programme : @rinternals{Beam}, @rinternals{StemTremolo}.
@node Tremolo subdivisions
Dans ce manuel : @ref{Tremolo repeats}.
-Référence du programme : @internalsref{StemTremolo}.
+Référence du programme : @rinternals{StemTremolo}.
@node Measure repeats
@seealso
-Référence du programme : @internalsref{RepeatSlash},
-@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
-@internalsref{DoublePercentRepeatCounter},
-@internalsref{PercentRepeatCounter},
-@internalsref{PercentRepeatedMusic}.
+Référence du programme : @rinternals{RepeatSlash},
+@rinternals{PercentRepeat}, @rinternals{DoublePercentRepeat},
+@rinternals{DoublePercentRepeatCounter},
+@rinternals{PercentRepeatCounter},
+@rinternals{PercentRepeatedMusic}.
@seealso
-Référence du programme : @internalsref{Dots}, @internalsref{DotColumn}.
+Référence du programme : @rinternals{Dots}, @rinternals{DotColumn}.
@node Tuplets
@seealso
-Référence du programme : @internalsref{TupletBracket},
-@internalsref{TupletNumber}, @internalsref{TimeScaledMusic}.
+Référence du programme : @rinternals{TupletBracket},
+@rinternals{TupletNumber}, @rinternals{TimeScaledMusic}.
@seealso
-Référence du programme : @internalsref{Rest}.
+Référence du programme : @rinternals{Rest}.
@node Skips
La commande de saut génère simplement une case musicale vide. Elle ne
produit rien sur la partition, pas même un symbole transparent. Le code
-de saut @code{s} crée tout de même une @internalsref{Staff} et une
-@internalsref{Voice} lorsque nécessaire, tout comme les commandes de
+de saut @code{s} crée tout de même une @rinternals{Staff} et une
+@rinternals{Voice} lorsque nécessaire, tout comme les commandes de
note et de silence. Ainsi, le code suivant aboutit à une portée vide.
@lilypond[quote,ragged-right,verbatim]
@seealso
-Référence du programme : @internalsref{SkipMusic}.
+Référence du programme : @rinternals{SkipMusic}.
@node Multi measure rests
@seealso
-Référence du programme : @internalsref{MultiMeasureRestMusic},
-@internalsref{MultiMeasureRest}.
+Référence du programme : @rinternals{MultiMeasureRestMusic},
+@rinternals{MultiMeasureRest}.
-L'objet de rendu @internalsref{MultiMeasureRestNumber} traite les
-nombres, et @internalsref{MultiMeasureRestText} le texte ajouté par
+L'objet de rendu @rinternals{MultiMeasureRestNumber} traite les
+nombres, et @rinternals{MultiMeasureRestText} le texte ajouté par
l'utilisateur.
@code{\time} définit les propriétés @code{timeSignatureFraction},
@code{beatLength} et @code{measureLength} dans le contexte
-@code{Timing}, qui en principe est assimilé à @internalsref{Score}. La
+@code{Timing}, qui en principe est assimilé à @rinternals{Score}. La
propriété @code{measureLength} détermine où des barres de mesure doivent
être insérées, et comment les groupements de notes doivent être gérés.
La modification de la valeur de @code{timeSignatureFraction} donne
Plus d'options sont accessibles au moyen de la fonction Scheme
@code{set-time-signature}. De concert avec le
-@internalsref{Measure_grouping_engraver}, elle crée les signes de
-@internalsref{MeasureGrouping}, qui facilitent la lecture de musiques
+@rinternals{Measure_grouping_engraver}, elle crée les signes de
+@rinternals{MeasureGrouping}, qui facilitent la lecture de musiques
modernes, complexes rythmiquement. Dans l'exemple suivant, les mesures
à 9/8 sont subdivisées en @code{(2 2 2 3)}, ce qui est donné comme
argument à la commande @code{set-time-signature}, en troisième position.
@seealso
-Référence du programme : @internalsref{TimeSignature} et
-@internalsref{Timing_translator}.
+Référence du programme : @rinternals{TimeSignature} et
+@rinternals{Timing_translator}.
Exemples : @lsr{contemporary,compound-time-signature.ly}.
mais on peut contourner ce problème. Dans l'exemple suivant,
l'indicateur de métrique est obtenu grâce à une étiquette textuelle.
Cette étiquette vient s'insérer dans l'objet graphique (@emph{grob})
-@internalsref{TimeSignature}. Voir aussi
+@rinternals{TimeSignature}. Voir aussi
@lsr{contemporary,compound-time-signature}.
@end lilypond
Il arrive aussi que chaque portée ait sa propre métrique. Vous y
-parviendrez en déplaçant le @internalsref{Timing_translator} dans le
-contexte @internalsref{Staff}.
+parviendrez en déplaçant le @rinternals{Timing_translator} dans le
+contexte @rinternals{Staff}.
@example
\layout @{
@unnumberedsubsubsec Automatic note splitting
On peut convertir automatiquement les notes longues en notes liées. Il
-faut pour cela remplacer le graveur @internalsref{Note_heads_engraver}
-par le graveur @internalsref{Completion_heads_engraver}. Dans les
+faut pour cela remplacer le graveur @rinternals{Note_heads_engraver}
+par le graveur @rinternals{Completion_heads_engraver}. Dans les
exemples suivants, les notes dépassant de la mesure sont divisées et
liées.
exactement la durée des décalages de mesure.
Si vous voulez permettre un saut de ligne aux barres de mesure où
-@internalsref{Completion_heads_engraver} divise les notes, vous devez
-aussi enlever @internalsref{Forbid_line_break_engraver}.
+@rinternals{Completion_heads_engraver} divise les notes, vous devez
+aussi enlever @rinternals{Forbid_line_break_engraver}.
@knownissues
@seealso
-Référence du programme : @internalsref{Completion_heads_engraver}.
+Référence du programme : @rinternals{Completion_heads_engraver}.
@node Beams
@seealso
-Référence du programme : @internalsref{Beam}.
+Référence du programme : @rinternals{Beam}.
@node Manual beams
Dans ce manuel : @ref{Repeats}, @ref{System start delimiters}.
-Référence du programme : @internalsref{BarLine} (faisant partie du
-contexte @internalsref{Staff}), @internalsref{SpanBar} (sur plusieurs
+Référence du programme : @rinternals{BarLine} (faisant partie du
+contexte @rinternals{Staff}), @rinternals{SpanBar} (sur plusieurs
portées).
@seealso
-Référence du programme : @internalsref{BarNumber}.
+Référence du programme : @rinternals{BarNumber}.
Exemples : @lsrdir{staff}
@knownissues
Les numéros de mesure peuvent entrer en collision avec les crochets de
-@internalsref{StaffGroup}. La propriété @code{padding} --- décalage
---- de l'objet @internalsref{BarNumber} permet alors d'ajuster leur
+@rinternals{StaffGroup}. La propriété @code{padding} --- décalage
+--- de l'objet @rinternals{BarNumber} permet alors d'ajuster leur
positionnement.
Dans ce manuel : @ref{Text marks}.
-Référence du programme : @internalsref{RehearsalMark}.
+Référence du programme : @rinternals{RehearsalMark}.
Fichiers d'initialisation : @file{scm/@/translation@/-functions@/.scm}
contient les définitions de @code{format-mark-numbers} et
@seealso
-Référence du programme : @internalsref{GraceMusic}.
+Référence du programme : @rinternals{GraceMusic}.
@knownissues
@cindex temps, gestion du
-Le temps est administré par le @internalsref{Time_signature_engraver},
-qui réside en principe dans le contexte @internalsref{Score}. Sa
+Le temps est administré par le @rinternals{Time_signature_engraver},
+qui réside en principe dans le contexte @rinternals{Score}. Sa
gestion traite les variables suivantes :
@table @code
@item La véritable notation proportionnelle exige que des symboles
puissent en écraser d'autres. Pour y parvenir, il faut retirer le
-@internalsref{Separating_line_group_engraver} du contexte
-@internalsref{Staff}.
+@rinternals{Separating_line_group_engraver} du contexte
+@rinternals{Staff}.
@item L'influence en matière d'espacement induite par le formatage
(clés, barres de mesure, etc) s'annule en assignant
@emph{vrai}@tie{}(#t) à la propriété @code{strict-note-spacing} de
-l'objet @internalsref{SpacingSpanner}.
+l'objet @rinternals{SpacingSpanner}.
@item Les affinages optiques se règlent en assignant @emph{vrai} à la
-propriété @code{uniform-stretching} du @internalsref{SpacingSpanner}.
+propriété @code{uniform-stretching} du @rinternals{SpacingSpanner}.
@end itemize
@seealso
-Référence du programme : @internalsref{ClusterSpanner},
-@internalsref{ClusterSpannerBeacon},
-@internalsref{Cluster_spanner_engraver}.
+Référence du programme : @rinternals{ClusterSpanner},
+@rinternals{ClusterSpannerBeacon},
+@rinternals{Cluster_spanner_engraver}.
Exemples : @lsr{contemporary,cluster@/.ly}.
}
@end lilypond
-Le séparateur permet aux contextes @internalsref{Voice}@footnote{Ces
+Le séparateur permet aux contextes @rinternals{Voice}@footnote{Ces
voix polyphoniques sont parfois appelées @qq{couches} ou @qq{calques} dans
d'autres logiciels de notation.}
@cindex couches
D'ordinaire, les têtes de notes pointées et non-pointées ne sont pas
fusionnées, mais lorsque la propriété @code{merge-differently-dotted} de
-l'objet @internalsref{NoteCollision} est définie, elles se trouvent
+l'objet @rinternals{NoteCollision} est définie, elles se trouvent
fusionnées :
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
et @code{\shiftOnnn} sont des niveaux supplémentaires de décalage.
Quand LilyPond est dépassé, la propriété @code{force-hshift} de l'objet
-@internalsref{NoteColumn}, et des silences à hauteur déterminée, peuvent
+@rinternals{NoteColumn}, et des silences à hauteur déterminée, peuvent
s'avérer utiles pour dicter au programme les choix de placement.
@lilypond[quote,verbatim,ragged-right]
@seealso
Référence du programme : les objets appropriés pour résoudre les
-collisions sont @internalsref{NoteCollision} et
-@internalsref{RestCollision}.
+collisions sont @rinternals{NoteCollision} et
+@rinternals{RestCollision}.
@knownissues
>>
@end lilypond
-LilyPond interprète dans un contexte @internalsref{Voice} les
+LilyPond interprète dans un contexte @rinternals{Voice} les
arguments fournis à @code{\partcombine}. Si vous travaillez avec des
octaves relatives, spécifiez @code{\relative} dans chacune des
expressions musicales, comme ceci :
@seealso
-Référence du programme : @internalsref{PartCombineMusic}.
+Référence du programme : @rinternals{PartCombineMusic}.
@knownissues
En interne, @code{\partcombine} interprète les deux arguments en tant
que @code{Voice}s, dénommées @code{one} et @code{two}, puis décide de
quand les parties seront fusionnées. Par conséquent, si les arguments
-changent pour d'autres noms de contexte @internalsref{Voice}, les
+changent pour d'autres noms de contexte @rinternals{Voice}, les
événements qu'ils contiendraient seront ignorés.
@itemize @bullet
@item Le groupe de portées est attaché par une accolade sur la gauche,
et les barres de mesure sont d'un seul tenant. Il s'agit du contexte
-@internalsref{GrandStaff}.
+@rinternals{GrandStaff}.
@lilypond[verbatim,ragged-right,quote]
\new GrandStaff
@item Le groupe de portées est attaché par un crochet, et les barres
de mesure sont d'un seul tenant. Il s'agit du contexte
-@internalsref{StaffGroup}.
+@rinternals{StaffGroup}.
@lilypond[verbatim,ragged-right,quote]
\new StaffGroup
@item Le groupe de portées est attaché par un crochet, mais les barres
de mesure sont séparées d'une portée à l'autre. Il s'agit du contexte
-@internalsref{ChoirStaff}.
+@rinternals{ChoirStaff}.
@lilypond[verbatim,ragged-right,quote]
\new ChoirStaff
@seealso
Les barres de mesure au début de chaque système prennent l'un des styles
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-@internalsref{SystemStartBracket}. Dans chaque contexte, seul l'un de
+@rinternals{SystemStartBar}, @rinternals{SystemStartBrace},
+@rinternals{SystemStartBracket}. Dans chaque contexte, seul l'un de
ces styles est utilisé, et c'est la propriété
@code{systemStartDelimiter} qui détermine lequel.
@seealso
-Référence du programme : @internalsref{StaffSymbol}.
+Référence du programme : @rinternals{StaffSymbol}.
D'autres exemples : @lsrdir{staff}.
silences sont habituellement masquées afin de gagner de la place. Ce
style d'édition s'appelle en anglais @qq{French Score}.
Cette fonctionnalité est activée par défaut dans les contextes
-@internalsref{Lyrics}, @internalsref{ChordNames} et
-@internalsref{FiguredBass}. Lorsque des lignes appartenant à ces
+@rinternals{Lyrics}, @rinternals{ChordNames} et
+@rinternals{FiguredBass}. Lorsque des lignes appartenant à ces
contextes se retrouvent vides après placement des sauts de ligne,
elles sont effacées.
En ce qui concerne les portées normales, il existe un contexte
-@internalsref{Staff} spécifique qui permet d'arriver à ce résultat :
+@rinternals{Staff} spécifique qui permet d'arriver à ce résultat :
les portées ne contenant rien ou uniquement des silences multi-mesures
seront retirées. La définition de ce contexte est enregistrée dans la
variable @code{\RemoveEmptyStaffContext}. Voyez comment la deuxième
Le premier système comportera absolument toutes les portées. Si vous
voulez masquer les portées vides y compris pour le premier système,
vous devrez assigner vrai à la propriété @code{remove-first} dans
-@internalsref{VerticalAxisGroup}.
+@rinternals{VerticalAxisGroup}.
@example
\override Score.VerticalAxisGroup #'remove-first = ##t
@seealso
-Référence du programme : @internalsref{MetronomeMark}.
+Référence du programme : @rinternals{MetronomeMark}.
@knownissues
chacune des portées.
Ce résultat s'obtient en spécifiant
-@internalsref{Staff}.@code{instrumentName} et
-@internalsref{Staff}.@code{shortInstrumentName}, ou
-@internalsref{PianoStaff}.@code{instrumentName} et
-@internalsref{PianoStaff}.@code{shortInstrumentName}. L'argument
+@rinternals{Staff}.@code{instrumentName} et
+@rinternals{Staff}.@code{shortInstrumentName}, ou
+@rinternals{PianoStaff}.@code{instrumentName} et
+@rinternals{PianoStaff}.@code{shortInstrumentName}. L'argument
textuel apparaîtra avant le début de la portée. La première ligne
affichera @code{instrumentName}, et les suivantes
@code{shortInstrumentName}.
@seealso
-Référence du programme : @internalsref{InstrumentName}.
+Référence du programme : @rinternals{InstrumentName}.
@node Quoting other voices
@knownissues
-Seul le contenu de la première @internalsref{Voice} rencontrée dans la
+Seul le contenu de la première @rinternals{Voice} rencontrée dans la
partie marquée d'une commande @code{\addQuote} pourra être retenu. Par
voie de conséquence, @code{music} ne saurait comprendre de @code{\new}
ou une instance @code{context Voice} qui la ferait passer à une autre voix.
Exemples : @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly}
-Référence du programme : @internalsref{QuoteMusic}.
+Référence du programme : @rinternals{QuoteMusic}.
@node Formatting cue notes
@end example
Des notes issues de la partie @var{nom} s'insèreront dans une
-@internalsref{Voice} nommée @code{cue}, simultanément avec
+@rinternals{Voice} nommée @code{cue}, simultanément avec
@var{musique} --- habituellement un silence. L'apparition des petites
notes initialise une polyphonie temporaire pour la portée concernée.
L'argument @var{updown} détermine si ces petites notes seront
Dans ce manuel : @ref{Text markup}.
-Référence du programme : @internalsref{TextScript}.
+Référence du programme : @rinternals{TextScript}.
@node Text and line spanners
@seealso
-Référence du programme : @internalsref{TextSpanner},
-@internalsref{Glissando}, @internalsref{VoiceFollower},
-@internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
+Référence du programme : @rinternals{TextSpanner},
+@rinternals{Glissando}, @rinternals{VoiceFollower},
+@rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
Exemples : @lsr{expressive,line-styles.ly}, @lsr{expressive,line-arrows.ly}
@seealso
-Référence du programme : @internalsref{TextSpanner}.
+Référence du programme : @rinternals{TextSpanner}.
@node Text marks
@seealso
-Référence du programme : @internalsref{RehearsalMark}.
+Référence du programme : @rinternals{RehearsalMark}.
@node New dynamic marks
@code{\markup} est avant tout conçu pour gérer les
-@internalsref{TextScript}s, mais rien ne s'oppose à son utilisation
+@rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
pour traiter du texte avec LilyPond.
@lilypond[quote,verbatim]
Certains objets possèdent leurs propres procédures d'alignement, qui
annuleront toute spécification d'alignement que vous pourriez affecter
à un argument de type @emph{markup} que vous leur auriez fourni. Par
-exemple, les @internalsref{RehearsalMark} sont centrées
+exemple, les @rinternals{RehearsalMark} sont centrées
horizontalement ; de fait, utiliser
@code{\mark \markup @{ \left-align .. @}} sera sans effet.
Dans ce manuel : @ref{Text markup commands}.
-Référence du programme : @internalsref{TextScript}.
+Référence du programme : @rinternals{TextScript}.
Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
@quotation
@seealso
-Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
+Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
Le placement vertical de ces symboles est contrôlé par
-@internalsref{DynamicLineSpanner}.
+@rinternals{DynamicLineSpanner}.
@end quotation
@noindent
@seealso
-Référence du programme : @internalsref{LyricText}, @internalsref{LyricSpace}.
+Référence du programme : @rinternals{LyricText}, @rinternals{LyricSpace}.
@node Working with lyrics and variables
@c TODO: document \new Staff << Voice \lyricsto >> bug
-Référence du programme : @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}.
+Référence du programme : @rinternals{LyricCombineMusic},
+@rinternals{Lyrics}.
Avant d'être imprimées, les paroles sont interprétées par le programme
-dans le contexte @internalsref{Lyrics}.
+dans le contexte @rinternals{Lyrics}.
@example
\new Lyrics \lyricmode @dots{}
@end example
Cette commande adapte les paroles aux notes de la voix (contexte
-@internalsref{Voice} dans le jargon LilyPond) @var{nom}. Ce contexte
+@rinternals{Voice} dans le jargon LilyPond) @var{nom}. Ce contexte
@code{Voice} doit exister avant l'indication des paroles avec
@code{\lyricsto}. La commande @code{\lyricsto} introduit
automatiquement le mode @code{\lyricmode}, donc dans ce cas vous n'avez
@noindent
La valeur que vous attribuez à cette propriété (ici @code{"lala"})
-doit désigner un contexte @internalsref{Voice}, sans quoi les mélismes
+doit désigner un contexte @rinternals{Voice}, sans quoi les mélismes
ne seront pas imprimés correctement.
Voici un exemple de cette manière de procéder :
@seealso
-Référence du programme : @internalsref{Lyrics}.
+Référence du programme : @rinternals{Lyrics}.
@node Multiple syllables to one note
@seealso
-Référence du programme : @internalsref{LyricCombineMusic}.
+Référence du programme : @rinternals{LyricCombineMusic}.
@c Here come the section which used to be "Melismata"
@c the new title might be more self-explanatory
@seealso
-Référence du programme : @internalsref{Melisma_translator}.
+Référence du programme : @rinternals{Melisma_translator}.
@lsr{vocal,lyric@/-combine.ly}.
@seealso
-Référence du programme : @internalsref{LyricExtender},
-@internalsref{LyricHyphen}
+Référence du programme : @rinternals{LyricExtender},
+@rinternals{LyricHyphen}
@node Lyrics and repeats
@seealso
-Référence du programme : @internalsref{LyricText},
-@internalsref{StanzaNumber}, @internalsref{VocalName}.
+Référence du programme : @rinternals{LyricText},
+@rinternals{StanzaNumber}, @rinternals{VocalName}.
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/lilypond-snippets/index.html">Snippets</a>
+<li><a class="title"href="../input/lsr/lilypond-snippets/index.html">Snippets List (SL)</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)
DEST_INFO_IMAGES_SUBDIR = Documentation/user
endif
-STEPMAKE_TEMPLATES=tex texinfo omf documentation
+STEPMAKE_TEMPLATES=texinfo omf documentation
OMF_FILES += $(outdir)/lilypond-internals.html.omf
LOCALSTEPMAKE_TEMPLATES=lilypond ly
## unused
$(outdir)/interfaces.itexi: dummy
cd $(outdir) && lilypond $(top-src-dir)/ly/generate-interface-doc
+
+.SECONDARY:
@node Introduction
@chapter Introduction
+This chapter introduces readers to LilyPond and the
+documentation.
+
+@menu
+* Background::
+* About the documentation::
+@end menu
+
+
+@node Background
+@section Background
+
+This section covers the overall goals and architecture of
+LilyPond.
@menu
* Engraving::
* What symbols to engrave?::
* Music representation::
* Example applications::
-* About this manual::
@end menu
@node Engraving
-@section Engraving
+@unnumberedsubsec Engraving
The art of music typography is called @emph{(plate) engraving}. The
term derives from the traditional process of music printing. Just a
@node Automated engraving
-@section Automated engraving
+@unnumberedsubsec Automated engraving
How do we go about implementing typography? If craftsmen need over
ten years to become true masters, how could we simple hackers ever
@node What symbols to engrave?
-@section What symbols to engrave?
+@unnumberedsubsec What symbols to engrave?
@cindex engraving
@cindex typography
@end lilypond
@node Music representation
-@section Music representation
+@unnumberedsubsec Music representation
Ideally, the input format for any high-level formatting system is an
abstract description of the content. In this case, that would be the
@node Example applications
-@section Example applications
+@unnumberedsubsec Example applications
We have written LilyPond as an experiment of how to condense the art
of music engraving into a computer program. Thanks to all that hard
to mix music and text in documents.
+@node About the documentation
+@section About the documentation
+
+FIXME: still needs some work.
+
+This section explains the different manuals:
+
+@itemize
+@item
+Learning Manual (LM): this introduces LilyPond, giving in-depth
+explanations of how to create notation.
+
+@item
+Music Glossary (MG): this explains musical terms and gives
+translations of terms in other languages.
+
+@item
+Notation Reference (NR): this is the main portion of the
+documentation. It provides detailed information about creating
+notation. This book assumes that the reader knows basic material
+covered in the LM and is familiar with the English musical terms
+presented in the MG.
+
+@item
+Application Usage (AU): this discusses the actual programs and
+operation system-specific issues.
+
+@item
+Snippet List (SL): this is a collection of short LilyPond examples
+(@qq{snippets}).
+
+@item
+Internals Reference (IR): this gives information about LilyPond
+internal programming information, which is required for
+constructing tweaks.
-@node About this manual
-@section About this manual
+@item
+Other documentation: there are a few other portions of the
+documentation, such as News items and the mailist archives.
-FIXME: needs almost-complete rewrite. -gp
+@end itemize
-There are four manuals about LilyPond: the @emph{Learning Manual},
-the @emph{Notation Reference}, the @emph{Application Usage}, and the
-@emph{Internals Reference}.
+@menu
+* About the Learning Manual (LM)::
+* About the Music Glossary (MG)::
+* About the Notation Reference (NR)::
+* About the Application Usage (AU)::
+* About the Snippet List (SL)::
+* About the Internals Reference (IR)::
+* Other documentation::
+@end menu
-@subheading Learning Manual (LM)
+@node About the Learning Manual (LM)
+@unnumberedsubsec About the Learning Manual (LM)
-This book explains how to begin learning LilyPond, as well as explaining
-some key concepts in easy terms. It is recommended to read these
-chapters in a linear fashion.
+This book explains how to begin learning LilyPond, as well as
+explaining some key concepts in easy terms. It is recommended to
+read these chapters in a linear fashion.
@itemize
@item
-@ifhtml
-The
-@end ifhtml
-@emph{@ref{Tutorial}},
-gives a gentle introduction to typesetting music. First time
-users should start here.
+@ref{Tutorial}: gives a gentle introduction to typesetting music.
+First time users should start here.
@item
-@emph{@ref{Fundamental concepts}},
-explains some general concepts about the LilyPond file format. If
-you are not certain where to place a command, read this chapter!
+@ref{Fundamental concepts}: explains some general concepts about
+the LilyPond file format. If you are not certain where to place a
+command, read this chapter!
@item
-@emph{@ref{Working on LilyPond projects}},
-discusses practical uses of LilyPond and how to avoid some common
-problems.
+@ref{Working on LilyPond projects}: discusses practical uses of
+LilyPond and how to avoid some common problems.
@item
-@emph{@ref{Tweaking output}},
-shows how to change the default engraving that LilyPond
-produces.
+@ref{Tweaking output}: shows how to change the default engraving
+that LilyPond produces.
@end itemize
-@subheading Notation Reference (NR)
+@node About the Music Glossary (MG)
+@unnumberedsubsec About the Music Glossary (MG)
+
+@cindex idiom
+@cindex jargon
+@cindex terminology
+@cindex foreign languages
+@cindex language
-This book explains all the LilyPond commands which produce notation. It
-assumes that readers are familiar with the concepts in the Learning
-manual.
+@ref{Top,Music glossary,,music-glossary}:
+this explains musical terms, and includes translations to various
+languages. If you are not familiar with music notation or music
+terminology (especially if you are a non-native English speaker),
+it is highly advisable to consult the glossary.
-All of this needs to be rewritten after GDP, anyway.
-@ignore
+@node About the Notation Reference (NR)
+@unnumberedsubsec About the Notation Reference (NR)
+
+This book explains all the LilyPond commands which produce
+notation. It assumes that readers are familiar with the concepts
+in the Learning manual.
@itemize
@item
-@emph{@r ef{Basic notation}},
+@ruser{Basic notation}:
discusses topics grouped by notation construct. This section gives
details about basic notation that will be useful in almost any
notation project.
@item
-@emph{@r ef{Instrument-specific notation}},
+@ruser{Specialist notation}:
discusses topics grouped by notation construct. This section gives
details about special notation that will only be useful for particular
instrument (or vocal) groups.
@item
-@emph{@r ef{Advanced notation}},
-discusses topics grouped by notation construct. This section gives
-details about complicated or unusual notation.
-
-@item
-@emph{@r ef{Changing defaults}},
-explains how to fine tune layout.
+@ruser{Input syntax}:
@item
-@emph{@r ef{Non-musical notation}},
-discusses non-musical output such as titles, multiple movements,
-and how to select which MIDI instruments to use.
+@ruser{Non-musical notation}:
@item
-@emph{@r ef{Spacing issues}},
+@ruser{Spacing issues}:
discusses issues which affect the global output, such as selecting
paper size or specifying page breaks.
@item
-@emph{@r ef{Interfaces for programmers}},
-explains how to create music functions.
+@ruser{Changing defaults}:
-@end itemize
+@item
+@ruser{Interfaces for programmers}:
+explains how to create music functions with scheme.
+@end itemize
-@subsubheading Appendices
-This book contains useful reference charts.
+The NR also contains appendices with useful reference charts.
@itemize
@item
-@ifhtml
-The
-@end ifhtml
-@emph{@r ef{Literature list}},
-contains a set of useful reference books for those who wish to know
-more on notation and engraving.
+@ruser{Literature list}:
+contains a set of useful reference books for those who wish to
+know more on notation and engraving.
@item
-The
-@emph{@r ef{Scheme tutorial}},
+@ruser{Scheme tutorial}:
presents a short introduction to Scheme, the programming
language that music functions use.
@item
-@emph{@r ef{Notation manual tables}},
-are a set of tables showing the chord names, MIDI instruments,
-a list of color names, and the Feta font.
+@ruser{Notation manual tables}:
+are a set of tables showing the chord names, MIDI instruments, a
+list of color names, and the Feta font.
@item
-@emph{@r ef{Templates}},
+@ruser{Templates}:
of LilyPond pieces. Just cut and paste a
template into a file, add notes, and you're done!
@item
-The
-@emph{@r ef{Cheat sheet}},
+@ruser{Cheat sheet}:
is a handy reference of the most common LilyPond commands.
@item
-The
-@emph{@r ef{LilyPond command index}},
+@ruser{LilyPond command index}:
is an index of all LilyPond @code{\commands}.
@item
-The
-@emph{@r ef{LilyPond index}},
+@ruser{LilyPond index}:
is a complete index.
@end itemize
-@end ignore
-
-@subheading Program usage
+@node About the Application Usage (AU)
+@unnumberedsubsec About the Application Usage (AU)
This book explains how to execute the program and how to integrate
LilyPond notation with other programs.
@itemize
@item
-@emph{@rprogram{Install}},
+@rprogram{Install}:
explains how to install LilyPond (including compilation if desired).
@item
-@emph{@rprogram{Setup}},
+@rprogram{Setup}:
describes how to configure your computer for optimum LilyPond usage,
such as using special environments for certain text editors.
@item
-@emph{@rprogram{Running LilyPond}},
+@rprogram{Running LilyPond}:
shows how to run LilyPond and its helper programs. In addition, this
section explains how to upgrade input files from previous versions of
LilyPond.
@item
-@emph{@rprogram{LilyPond-book}},
-explains the details behind creating
-documents with in-line music examples, like this manual.
+@rprogram{LilyPond-book}:
+explains the details behind creating documents with in-line music
+examples, like this manual.
@item
-@emph{@rprogram{Converting from other formats}},
+@rprogram{Converting from other formats}:
explains how to run the conversion programs. These programs are
supplied with the LilyPond package, and convert a variety of music
formats to the @code{.ly} format.
@end itemize
+@node About the Snippet List (SL)
+@unnumberedsubsec About the Snippet List (SL)
-@subsubheading Other information
+@cindex snippets
+@cindex LSR
-There are a number of other places which may be very valuable.
+The Snippet List 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.
-@itemize
-@cindex idiom
-@cindex jargon
-@cindex terminology
-@cindex foreign languages
-@cindex language
-@item
-@ifnottex
-The @ref{Top,Music glossary,,music-glossary}, explains musical terms and
-includes translations to various languages. It is also available in
-PDF.
-@end ifnottex
-@iftex
-The music glossary explains musical terms, and includes translations
-to various languages. It is a separate document, available in HTML
-and PDF.
-@end iftex
-If you are not familiar with music notation or music terminology
-(especially if you are a non-native English speaker), it is highly
-advisable to consult the glossary.
+Please note that this document is not an exact subset of LSR. LSR
+is running a stable LilyPond version, so any snippet which
+demonstrates new features of a development version must be added
+separately. These are stored in @file{input/new/} in the LilyPond
+source tree.
-@cindex snippets
-@cindex LSR
+The list of snippets for each subsection of the Notation Reference
+(NR) are also linked from the @strong{See also} portion.
+
+@itemize
@item
The
@ifhtml
and special features of LilyPond. Most of these snippets can also be
found in the @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet
Repository}. This website also has a searchable LilyPond manual.
+@end itemize
+
+
+@node About the Internals Reference (IR)
+@unnumberedsubsec About the Internals Reference (IR)
+@itemize
@item
The
@iftex
@end itemize
+@node Other documentation
+@unnumberedsubsec Other documentation
+
+FIXME: most of this should go higher up. Discuss News, mailist
+archives, ...?
+
+There are a number of other places which may be very valuable.
+
Once you are an experienced user, you can use the manual as reference:
there is an extensive index@footnote{If you are looking for something,
and you cannot find it in the manual, that is considered a bug. In
@uref{http://@/www@/.lilypond@/.org/}.
+
+
Most LilyPond test documents (in the @file{input} directory of the
distribution) are small @file{.ly} files which look exactly like this.
+For localization purpose, if the Texinfo document contains
+@code{@@documentlanguage @var{LANG}} and @file{foo@/.ly} header
+contains a @code{texidoc@var{LANG}} field, and if @command{lilypond}
+is called with @option{--header=@/texidoc@var{LANG}}, then
+@file{foo@/.texidoc@var{LANG}} will be included instead of
+@file{foo@/.texidoc}.
+
@item lilyquote
(Only for Texinfo output.) This option is similar to quote, but only
the music snippet (and the optional verbatim block implied by
useful if you want to @code{quote} the music snippet but not the
@code{texidoc} documentation block.
+@item doctitle
+(Only for Texinfo output.) This option works similarly to
+@code{texidoc} option: if @command{lilypond} is called with the
+@option{--header=@/doctitle} option, and the file to be processed is
+called @file{foo@/.ly} and contains a @code{doctitle} field in the
+@code{\header}, it creates a file @file{foo@/.doctitle}. When
+@code{doctitle} option is used, the contents of @file{foo@/.doctitle},
+which should be a single line of @var{text}, is inserted in the
+Texinfo document as @code{@@lydoctitle @var{text}}.
+@code{@@lydoctitle} should be a macro defined in the Texinfo document.
+The same remark about @code{texidoc} processing with localized
+languages also applies to @code{doctitle}.
+
@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
@node Top
@top GNU LilyPond --- learning manual
-This is the learning manual for GNU LilyPond version @version{}.
+This is the Learning Manual (LM) for GNU LilyPond version @version{}.
+For more information about how this fits with the other
+documentation, see @ref{About the documentation}.
@cindex web site
@cindex URL
@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 version @version{}.
+This is the Application Usage (AU) manual for GNU LilyPond version @version{}.
+For more information about how this fits with the other
+documentation, see @rlearning{About the documentation}.
@cindex web site
@cindex URL
@top GNU LilyPond --- The music typesetter
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the Notation Reference for GNU LilyPond version @version{}.
+This is the Notation Reference (NR) for GNU LilyPond version @version{}.
+For more information about how this fits with the other
+documentation, see @rlearning{About the documentation}.
@cindex web site
@cindex URL
@end macro
+@macro lydoctitle {TEXT}
+@emph{\TEXT\}
+
+@end macro
+
@macro funindex {TEXT}
@findex \TEXT\
@kindex \TEXT\
@c **** Links and references ****
-@c TO BE DEPRECATED
-@c usage: @lsrdir{ancient,Ancient-notation}
-@macro lsrdir{SECTION,DIR}
-@ifhtml
-@uref{source/input/lsr/lilypond-snippets/\DIR\.html,\SECTION\}
-@end ifhtml
-@ifnothtml
-\DIR\
-@end ifnothtml
-@end macro
-
-
@c Definitions for references:
@c @rglos
@c @rlearning
@ifset bigpage
-@c TO BE DEPRECATED
-@macro internalsref{TEXT}
-@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals-big-page,Internals Reference}
-@end macro
-
-
@macro rglos{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,music-glossary-big-page,Music Glossary}
@ifclear bigpage
-@c DEPRECATED
-@macro internalsref{TEXT}
-@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals,Internals Reference}
-@end macro
-
-
@macro rglos{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,music-glossary,Music Glossary}
@ifdocbook
@c ***** DOCBOOK-XML *****
-@c DEPRECATED
-@macro internalsref{TEXT}
-@vindex \TEXT\
-@ref{\TEXT\,,,lilypond-internals,Internals Reference}
-@end macro
-
-
-
@macro rglos{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,music-glossary,Music Glossary}
@ifinfo
@c **** INFO ****
-@c DEPRECATED
-@macro internalsref{TEXT}
-@vindex \TEXT\
-@inforef{\TEXT\,,lilypond-internals,Internals Reference}
-@end macro
-
-
-
@macro rglos{TEXT}
@vindex \TEXT\
@inforef{\TEXT\,,music-glossary,Music Glossary}
@c **** TEX ****
@iftex
-@c DEPRECATED
-@macro internalsref{TEXT}
-@vindex \TEXT\
-@code{\TEXT\}
-@end macro
-
-
-
@macro rglos{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,music-glossary,Music Glossary}
@end iftex
-
-@c EOF
\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@setfilename music-glosssary.info
@settitle Music Glossary
-
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@afourpaper
@c see lilypond.tely for info installation note
@c @evenheading @thispage @| @|
@c @oddheading @| @| @thispage @|
-@include macros.itexi
+This is the Music Glossary (MG) for GNU LilyPond version @version{}.
+For more information about how this fits with the other
+documentation, see @rlearning{About the documentation}.
+
@c arrowref
@macro aref{word}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{preventing-extra-naturals-from-being-automatically-added.ly}
@seealso
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{tweaking-clef-properties.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{non-traditional-key-signatures.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{ottava-text.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{adding-ambitus-per-voice.ly}
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{ambitus-with-multiple-voices.ly}
@snippets
-@lilypondfile[verbatim,lilyquote,texidoc]
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{applying-note-head-styles-depending-on-the-step-of-the-scale.ly}
@noindent
@c \version "2.11.38"
+@ignore
+GDP TODO list
+
+\compressMusic -> \scaleDurations.
+approved by Han-Wen; just needs somebody to kick up a fuss about
+it.
+
+1.2.3.1 Time signature
+Needs an example of beatLength, which is broken (see my recent
+mail
+to -bug). What to do? For now I've left a paragraph of text
+which really
+needs to be inserted with an example in a snippet.
+
+1.2.3.4 Polymetric notation
+Quite extensive changes. Could you please check through. Divided
+into three
+sections. Necessarily uses tweaks. I've also left an @lsr under
+@seealso
+Snippets - is this permitted or is @lsr now verboten? This
+snippet is too
+long to include, but seems relevant.
+A snippet "grouping beats" hasn't yet appeared (only sent to vv a
+couple of
+days ago). Text left in Snippets: with TODO.
+@end ignore
+
@node Rhythms
@section Rhythms
recommended to use enharmonic transcription, or to use special
cluster notation (see @ref{Clusters}).
-
@node Automatic part combining
@subsubsection Automatic part combining
+
@cindex automatic part combining
@cindex part combiner
@cindex combining parts
+@funindex \partcombine
-Automatic part combining is used to merge two parts of music onto
-a staff. It is aimed at typesetting orchestral scores. When the
-two parts are identical for a period of time, only one is shown.
-In places where the two parts differ, they are typeset as separate
+Automatic part combining is used to merge two parts of music onto a
+staff. It is aimed at typesetting orchestral scores. When the two
+parts are identical for a period of time, only one is shown. In
+places where the two parts differ, they are typeset as separate
voices, and stem directions are set automatically. Also, solo and
-@emph{a due} parts are identified and can be marked.
+@notation{a due} parts are identified and marked by default.
-The syntax for part combining is
+The syntax for part combining is:
@example
\partcombine @var{musicexpr1} @var{musicexpr2}
@end example
+The following example demonstrates the basic functionality of the part
+combiner: putting parts on one staff and setting stem directions and
+polyphony. The same variables are used for the independent
+parts and the combined staff.
-The following example demonstrates the basic functionality of the
-part combiner: putting parts on one staff, and setting stem
-directions and polyphony.
+@lilypond[quote,verbatim,ragged-right]
+instrumentOne = \relative c' {
+ c4 d e f
+ R1
+ d'4 c b a
+ b4 g2 f4
+ e1
+}
-@lilypond[quote,verbatim,ragged-right,fragment]
-\new Staff \partcombine
- \relative g' { g g a( b) c c r r }
- \relative g' { g g r4 r e e g g }
+instrumentTwo = \relative g' {
+ R1
+ g4 a b c
+ d c b a
+ g f( e) d
+ e1
+}
+
+<<
+ \new Staff \instrumentOne
+ \new Staff \instrumentTwo
+ \new Staff \partcombine \instrumentOne \instrumentTwo
+>>
@end lilypond
-The first @code{g} appears only once, although it was specified
-twice (once in each part). Stem, slur, and tie directions are set
-automatically, depending whether there is a solo or unisono. The
-first part (with context called @code{one}) always gets up stems,
-and @q{Solo}, while the second (called @code{two}) always gets
-down stems and @q{Solo II}.
+The notes in the third measure appear only once, although they were
+specified in both parts. Stem, slur, and tie directions are set
+automatically, depending whether there is a solo or unison. When
+needed in polyphony situations, the first part (with context called
+@code{one}) always gets up stems, while the second (called @code{two})
+always gets down stems. In solo situations, the parts get marked with
+@q{Solo} and @q{Solo II}, respectively. The unisono (@notation{a due})
+parts are marked by default with the text @qq{a2}.
-If you just want the merging parts, and not the textual markings,
-you may set the property @code{printPartCombineTexts} to false.
+Both arguments to @code{\partcombine} will be interpreted as
+@code{Voice} contexts. If using relative octaves,
+@code{\relative} should be specified for both music expressions,
+i.e.,
+
+@example
+\partcombine
+ \relative @dots{} @var{musicexpr1}
+ \relative @dots{} @var{musicexpr2}
+@end example
+
+@noindent
+A @code{\relative} section that is outside of @code{\partcombine}
+has no effect on the pitches of @var{musicexpr1} and
+@var{musicexpr2}.
+
+@snippets
+
+Parts may be merged without printing text:
@lilypond[quote,verbatim,ragged-right]
\new Staff <<
>>
@end lilypond
-To change the text that is printed for solos or merging, you may
-set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
-properties.
+The printed text may be changed:
@lilypond[quote,verbatim,ragged-right]
\new Staff <<
- \set Score.soloText = #"ichi"
- \set Score.soloIIText = #"ni"
- \set Score.aDueText = #"tachi"
+ \set Score.soloText = #"girl"
+ \set Score.soloIIText = #"boy"
+ \set Score.aDueText = #"together"
\partcombine
- \relative g' { g4 g a( b) r }
- \relative g' { g4 g r r f }
+ \relative g' { g4 g r r a2 g }
+ \relative g' { r4 r a( b) a2 g }
>>
@end lilypond
-Both arguments to @code{\partcombine} will be interpreted as
-@rinternals{Voice} contexts. If using relative octaves,
-@code{\relative} should be specified for both music expressions,
-i.e.,
-
-@example
-\partcombine
- \relative @dots{} @var{musicexpr1}
- \relative @dots{} @var{musicexpr2}
-@end example
-
-@noindent
-A @code{\relative} section that is outside of @code{\partcombine}
-has no effect on the pitches of @var{musicexpr1} and
-@var{musicexpr2}.
@seealso
Music Glossary:
-@rglos{a due}.
+@rglos{a due},
+@rglos{part}.
+
+Notation Reference:
+@ref{Writing parts}.
Snippets:
@rlsr{Simultaneous notes}.
+
Internals Reference:
@rinternals{PartCombineMusic},
@rinternals{Voice}.
switch to differently named @rinternals{Voice} contexts, the
events in those will be ignored.
+@c IIRC in users list someone pointed out more issues. FV
@node Writing music in parallel
@subsubsection Writing music in parallel
@cindex Writing music in parallel
@cindex Interleaved music
+@funindex parallelMusic
-Music for multiple parts can be interleaved:
+Music for multiple parts can be interleaved in input code. The
+function @code{\parallelMusic} accepts a list with the names of a
+number of variables to be created, and a musical expression. The
+content of alternate measures from the expression become the value of
+the respective variables, so you can use them afterwards to print the
+music.
+
+@warning{Bar checks @code{|} must be used, and the measures must
+be of the same length.}
@lilypond[quote,fragment,verbatim]
\parallelMusic #'(voiceA voiceB) {
+ % Bar 1
r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
c'2 c'2 |
+
+ % Bar 2
r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
c'2 c'2 |
}
\new StaffGroup <<
- \new Staff \new Voice \voiceA
- \new Staff \new Voice \voiceB
+ \new Staff \voiceA
+ \new Staff \voiceB
>>
@end lilypond
-This works quite well for piano music.
+Relative mode may be used. Note that the @code{\relative} command
+is not used inside @code{\parallelMusic} itself. The notes are
+relative to the preceding note in the voice, not to the previous
+note in the input -- in other words, relative notes for
+@code{voiceA} ignore the notes in @code{voiceB}.
+
+@lilypond[quote,fragment,verbatim]
+\parallelMusic #'(voiceA voiceB) {
+ % Bar 1
+ r8 g16 c e g, c e r8 g,16 c e g, c e |
+ c2 c |
+
+ % Bar 2
+ r8 a,16 d f a, d f r8 a,16 d f a, d f |
+ c2 c |
+ }
+\new StaffGroup <<
+ \new Staff \relative c'' \voiceA
+ \new Staff \relative c' \voiceB
+>>
+@end lilypond
+
+This works quite well for piano music. This example maps four
+consecutive measures to four variables:
@lilypond[quote,verbatim]
-global = { \key g \major \time 2/4 }
-music = {
- \parallelMusic #'(voiceA voiceB voiceC voiceD) {
- % Bar 1
- a'8 b' c'' d'' |
- d'4 e' |
- c16 d e f d e f g |
- a,4 a,4 |
-
- % Bar 2
- e''8 f'' g'' a'' |
- f'4 g' |
- e16 f g a f g a b |
- a,4 a,4 |
-
- % Bar 3 ...
- }
+global = {
+ \key g \major
+ \time 2/4
}
-\score {
- \new PianoStaff <<
- \new Staff {
- \global
- <<
- \voiceA \\
- \voiceB
- >>
- }
- \new Staff {
- \global \clef bass
- <<
- \voiceC \\
- \voiceD
- >>
- }
- >>
+\parallelMusic #'(voiceA voiceB voiceC voiceD) {
+ % Bar 1
+ a8 b c d |
+ d4 e |
+ c16 d e fis d e fis g |
+ a4 a |
+
+ % Bar 2
+ e8 fis g a |
+ fis4 g |
+ e16 fis g a fis g a b |
+ a4 a |
+
+ % Bar 3 ...
+}
+
+\score {
+\new PianoStaff <<
+ \new Staff {
+ \global
+ <<
+ \relative c'' \voiceA \\
+ \relative c' \voiceB
+ >>
+ }
+ \new Staff {
+ \global \clef bass
+ <<
+ \relative c \voiceC \\
+ \relative c \voiceD
+ >>
+ }
+>>
}
@end lilypond
+
@seealso
+Learning Manual:
+@rlearning{Organizing pieces with variables}
+
Snippets:
@rlsr{Simultaneous notes}.
@c \version "2.11.38"
-@c A menu is needed before every deeper *section nesting of @node's; run
-@c M-x texinfo-all-menus-update
-@c to automatically fill in these menus before saving changes
+@ignore
+GDP TODO list
+
+Negative numbers are allowed:
+> Are you sure? The following works well
+> \paper{
+> first-page-number = -2
+> }
+> and prints page number -1 on the second page, for example.
+
+
+- default paper size is A4.
+
+
+In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
+states:
+
+"@code{layout-set-staff-size} does not change the distance between
+the
+staff lines."
+
+Could we add a sentence:
+"Use instead the pair fontSize = #@var{N}
+ \override StaffSymbol #'staff-space = #(magstep
+@var{N})
+inside the Staff context to change the size of the font and the
+distance between
+staff lines accordingly."
+
+Actually I found, that the @internalsref{StaffSymbol} at line 481
+sends to an uncomplete
+documentation. The property staff-space is not explained here. I
+thought Y-extent might be of
+help, but it is in turn explained by x-space which again is
+missing from the list. Who has the
+knowledge to fix this?
+
+@end ignore
@node Spacing issues
@chapter Spacing issues
@ref{Mensural contexts}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{Staff}, @internalsref{DrumStaff},
-@internalsref{GregorianTranscriptionStaff}, @internalsref{RhythmicStaff},
-@internalsref{TabStaff}, @internalsref{MensuralStaff},
-@internalsref{VaticanaStaff}, @internalsref{StaffSymbol}.
+Internals Reference: @rinternals{Staff}, @rinternals{DrumStaff},
+@rinternals{GregorianTranscriptionStaff}, @rinternals{RhythmicStaff},
+@rinternals{TabStaff}, @rinternals{MensuralStaff},
+@rinternals{VaticanaStaff}, @rinternals{StaffSymbol}.
@rglos{bracket}, @rglos{grand staff}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{Staff}, @internalsref{ChoirStaff},
-@internalsref{GrandStaff}, @internalsref{PianoStaff},
-@internalsref{StaffGroup}, @internalsref{systemStartDelimiter},
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-@internalsref{SystemStartBracket}, @internalsref{systemStartSquare}.
+Internals Reference: @rinternals{Staff}, @rinternals{ChoirStaff},
+@rinternals{GrandStaff}, @rinternals{PianoStaff},
+@rinternals{StaffGroup}, @rinternals{systemStartDelimiter},
+@rinternals{SystemStartBar}, @rinternals{SystemStartBrace},
+@rinternals{SystemStartBracket}, @rinternals{systemStartSquare}.
@node Deeper nested staff groups
@seealso
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{InnerChoirStaffGroup},
-@internalsref{InnerStaffGroup}, @internalsref{SystemStartBar},
-@internalsref{SystemStartBrace}, @internalsref{SystemStartBracket},
-@internalsref{systemStartDelimiterHierarchy}.
+Internals Reference: @rinternals{InnerChoirStaffGroup},
+@rinternals{InnerStaffGroup}, @rinternals{SystemStartBar},
+@rinternals{SystemStartBrace}, @rinternals{SystemStartBracket},
+@rinternals{systemStartDelimiterHierarchy}.
Glossary: @rglos{line}, @rglos{ledger line}, @rglos{staff}.
-Internals Reference: @internalsref{StaffSymbol}.
+Internals Reference: @rinternals{StaffSymbol}.
@knownissues
Music Glossary: @rglos{ossia}, @rglos{staff}, @rglos{Frenched staff}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{StaffSymbol}.
+Internals Reference: @rinternals{StaffSymbol}.
@node Hiding staves
Notation Reference: @ref{Staff symbol}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{ChordNames},
-@internalsref{FiguredBass}, @internalsref{Lyrics},
-@internalsref{Staff}, @internalsref{VerticalAxisGroup}.
+Internals Reference: @rinternals{ChordNames},
+@rinternals{FiguredBass}, @rinternals{Lyrics},
+@rinternals{Staff}, @rinternals{VerticalAxisGroup}.
@node Writing parts
@subsection Writing parts
Notation Reference: @ref{Formatting text}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{MetronomeMark}, @ref{MIDI
+Internals Reference: @rinternals{MetronomeMark}, @ref{MIDI
output}.
Notation Reference: @ref{Modifying context plug-ins}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{InstrumentName},
-@internalsref{PianoStaff}, @internalsref{Staff}.
+Internals Reference: @rinternals{InstrumentName},
+@rinternals{PianoStaff}, @rinternals{Staff}.
@node Quoting other voices
Notation Reference: @ref{Instrument transpositions}.
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{QuoteMusic}, @internalsref{Voice}.
+Internals Reference: @rinternals{QuoteMusic}, @rinternals{Voice}.
@node Formatting cue notes
@seealso
Snippets:
-@lsrdir{Staff,Staff-notation}.
+@rlsr{Staff notation}.
-Internals Reference: @internalsref{Voice}.
+Internals Reference: @rinternals{Voice}.
looking at the internal LilyPond files. To explore these, first
find the directory appropriate to your system, as follows:
-@strong{Linux}
+@strong{Download from lilypond.org: Linux}
Navigate to
-@file{@var{installdir}/lilypond/usr/share/lilypond/current/}
+@file{@var{INSTALLDIR}/lilypond/usr/share/lilypond/current/}
-@strong{MacOS X}
+@strong{Download from lilypond.org: MacOS X}
Navigate to
-@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/Resources/share/lilypond/current/}
by either @code{cd}-ing into this directory from the
Terminal, or control-clicking on the LilyPond application and
selecting @q{Show Package Contents}.
-@strong{Windows}
+@strong{Download from lilypond.org: Windows}
Using Windows Explorer, navigate to
-@file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
+@file{@var{INSTALLDIR}/LilyPond/usr/share/lilypond/current/}
+
+@strong{Installed from a package manager or from source: all}
+
+Navigate to
+@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, where
+@var{PREFIX} is set by your package manager or @code{configure}
+script, and @var{X.Y.Z} is the LilyPond version number.
+
+
+@sp 1
Within this directory the two interesting subdirectories are
@itemize
-@item @file{../ly/ } - contains files in LilyPond format
-@item @file{../scm/} - contains files in Scheme format
+@item @file{ly/} - contains files in LilyPond format
+@item @file{scm/} - contains files in Scheme format
@end itemize
-Let's begin by looking at some files in @file{../ly/}.
-Open @file{../ly/property-init.ly} in a text editor. The one
+Let's begin by looking at some files in @file{ly/}.
+Open @file{ly/property-init.ly} in a text editor. The one
you normally use for @code{.ly} files will be fine. This file
contains the definitions of all the standard LilyPond built-in
commands, such as @code{\stemUp} and @code{\slurDotted}. You will
head of your input file.
The following are the most useful files to be found in
-@file{../ly/}:
+@file{ly/}:
@multitable @columnfractions .4 .6
@headitem Filename
@tab Contents
-@item @file{../ly/engraver-init.ly}
+@item @file{ly/engraver-init.ly}
@tab Definitions of engraver Contexts
-@item @file{../ly/paper-defaults.ly}
+@item @file{ly/paper-defaults.ly}
@tab Specifications of paper-related defaults
-@item @file{../ly/performer-init.ly}
+@item @file{ly/performer-init.ly}
@tab Definitions of performer Contexts
-@item @file{../ly/property-init.ly}
+@item @file{ly/property-init.ly}
@tab Definitions of all common built-in commands
@end multitable
@multitable @columnfractions .4 .6
@headitem Filename
@tab Contents
-@item @file{../scm/auto-beam.scm}
+@item @file{scm/auto-beam.scm}
@tab Sub-beaming defaults
-@item @file{../scm/define-grobs.scm}
+@item @file{scm/define-grobs.scm}
@tab Default settings for grob properties
-@item @file{../scm/define-markup-commands.scm}
+@item @file{scm/define-markup-commands.scm}
@tab Specify all markup commands
-@item @file{../scm/midi.scm}
+@item @file{scm/midi.scm}
@tab Default settings for MIDI output
-@item @file{../scm/output-lib.scm}
+@item @file{scm/output-lib.scm}
@tab Settings that affect appearance of frets, colors,
accidentals, bar lines, etc
-@item @file{../scm/parser-clef.scm}
+@item @file{scm/parser-clef.scm}
@tab Definitions of supported clefs
-@item @file{../scm/script.scm}
+@item @file{scm/script.scm}
@tab Default settings for articulations
@end multitable
This section includes extra information for writing for unfretted
string instruments.
-@ignore
-The subsection on Bowed instruments is commmented out
-until we have something to say about them -td
-@end ignore
-
@menu
-* Common notation for unfretted strings::
-@c * Bowed instruments::
-* Plucked instruments::
+* Common notation for unfretted strings::
+* Bowed instruments::
+* Plucked instruments::
@end menu
@node Common notation for unfretted strings
@subsection Common notation for unfretted strings
@menu
-* References for unfretted strings::
+* References for unfretted strings::
@end menu
@node References for unfretted strings
@subsubsection References for unfretted strings
-@c TODO Add refs to fingerings, \thumb, bowings
+@c TODO Add refs to fingerings, \thumb
@c TODO Add multiple fingering indications?
-@c TODO Add snippet showing pizzicato markings
TBC
@c TODO Decide whether to resurrect Bowed instruments subsection
@c and if so which of the above should go there
-@ignore
@node Bowed instruments
@subsection Bowed instruments
@menu
-* Artificial harmonics (strings)::
+* References for bowed strings::
@end menu
-@node Artificial harmonics (strings)
-@subsubsection Artificial harmonics (strings)
+@node References for bowed strings
+@subsubsection References for bowed strings
+
+@c link to slurs, articulation (for \upbow \downbow). maybe
+@c an example as well.
+@c TODO Add snippet showing pizzicato markings
@cindex artificial harmonics
<c g'\harmonic>4
@end lilypond
-@end ignore
@node Plucked instruments
@subsection Plucked instruments
@menu
-* Harp::
+* Harp::
@end menu
@node Harp
@subsubsection Harp
+TBC
+
+@c has nothing to do with harps, AFAIK.
+@ignore
Sacred Harp notation uses four shaped note heads. In the major,
the tonic is a triangle and then proceeding up the scale you
have circle, square, triangle, circle, square, diamond. In the
The \sacredHarpHeads command gives the wrong shapes when the key
is minor. A work-around is to switch the key to the relative
major to obtain the right shapes.
+@end ignore
+
src-ext = c cc yy ll hh icc py scm tex ps texi itexi tely itely sh
-web-clean: snippets-clean
- $(MAKE) out=www clean
- $(MAKE) $(tree-share-prefix)/lilypond-force
+web-clean: snippets-clean $(tree-share-prefix)/lilypond-force
default: $(config_h) build-dir-setup
Till Retting - NR Rewriter
Ralph Palmer - NR Rewriter
Patrick McCarty - NR Rewriter
+Andrew Hawryluk - NR Rewriter
+Jonathan Kulp - NR Rewriter
Kurt Kroon - Glossary Updates
Alard de Boer - Formatting
Michael Rasmussen - Formatting
check_texi_refs.py
Interactive Texinfo cross-references checking and fixing tool
-
"""
import re
import os
import optparse
+import imp
outdir = 'out-www'
log = sys.stderr
stdout = sys.stdout
-warn_not_fixed = "*** Warning: this broken x-ref has not been fixed!\n"
+file_not_found = 'file not found in include path'
+
+warn_not_fixed = '*** Warning: this broken x-ref has not been fixed!\n'
opt_parser = optparse.OptionParser (usage='check_texi_refs.py [OPTION]... FILE',
description='''Check and fix \
dest='interactive',
default=True)
+opt_parser.add_option ('-c', '--check-comments',
+ help="Also check commented out x-refs",
+ action='store_true',
+ dest='check_comments',
+ default=False)
+
opt_parser.add_option ('-p', '--check-punctuation',
- help="Check for punctuation after x-ref",
+ help="Check punctuation after x-refs",
action='store_true',
dest='check_punctuation',
default=False)
+opt_parser.add_option ("-I", '--include', help="add DIR to include path",
+ metavar="DIR",
+ action='append', dest='include_path',
+ default=[os.path.abspath (os.getcwd ())])
+
(options, files) = opt_parser.parse_args ()
class InteractionError (Exception):
pass
+manuals_defs = imp.load_source ('manuals_defs', files[0])
manuals = {}
+
+def find_file (name, prior_directory='.'):
+ p = os.path.join (prior_directory, name)
+ out_p = os.path.join (prior_directory, outdir, name)
+ if os.path.isfile (p):
+ return p
+ elif os.path.isfile (out_p):
+ return out_p
+
+ # looking for file in include_path
+ for d in options.include_path:
+ p = os.path.join (d, name)
+ if os.path.isfile (p):
+ return p
+
+ # file not found in include_path: looking in `outdir' subdirs
+ for d in options.include_path:
+ p = os.path.join (d, outdir, name)
+ if os.path.isfile (p):
+ return p
+
+ raise EnvironmentError (1, file_not_found, name)
+
+
exit_code = 0
def set_exit_code (n):
global exit_code
exit_code = max (exit_code, n)
+
if options.interactive:
try:
import readline
def search_prompt ():
return None
+
ref_re = re.compile (r'@(ref|ruser|rlearning|rprogram|rglos)\{([^,\\]*?)\}(.)',
re.DOTALL)
node_include_re = re.compile (r'(?m)^@(node|include)\s+(.+?)$')
whitespace_re = re.compile (r'\s+')
line_start_re = re.compile ('(?m)^')
-manuals_to_refs = {'lilypond': 'ruser',
- 'lilypond-learning': 'rlearning',
- 'lilypond-program': 'rprogram',
- # 'lilypond-snippets': 'rlsr',
- 'music-glossary': 'rglos'}
-
def which_line (index, newline_indices):
"""Calculate line number of a given string index
sup = m
return inf + 1
-def read_file (f, d):
- """Look for all node names and cross-references in a Texinfo document
-Return a dictionary with three keys:
+comments_re = re.compile ('(?<!@)(@c(?:omment)? \
+.*?\\n|^@ignore\\n.*?\\n@end ignore\\n)', re.M | re.S)
- 'manual' contains the cross-reference
-macro name which matches the base name of f in global manuals_to_refs
-dictionary,
+def calc_comments_boundaries (texinfo_doc):
+ return [(m.start (), m.end ()) for m in comments_re.finditer (texinfo_doc)]
- 'nodes' is a dictionary of `node name':(file name, line number),
-
- 'contents' is a dictionary of file:`full file contents'.
- 'newline_indices' is a dictionary of
-file:[list of beginning-of-line string indices]
+def is_commented_out (start, end, comments_boundaries):
+ for k in range (len (comments_boundaries)):
+ if (start > comments_boundaries[k][0]
+ and end <= comments_boundaries[k][1]):
+ return True
+ elif end <= comments_boundaries[k][0]:
+ return False
+ return False
-Included files that can be read are processed too.
-"""
+def read_file (f, d):
s = open (f).read ()
- # TODO (maybe as option)
- # s = trim_comments (s)
base = os.path.basename (f)
dir = os.path.dirname (f)
- if d == {}:
- d['manual'] = manuals_to_refs.get (os.path.splitext (base)[0], '')
- print "Processing manual %s(%s)" % (f, d['manual'])
- d['nodes'] = {}
- d['contents'] = {}
- d['newline_indices'] = {}
- d['newline_indices'][f] = [m.end () for m in line_start_re.finditer (s)]
d['contents'][f] = s
+ d['newline_indices'][f] = [m.end () for m in line_start_re.finditer (s)]
+ if options.check_comments:
+ d['comments_boundaries'][f] = []
+ else:
+ d['comments_boundaries'][f] = calc_comments_boundaries (s)
+
for m in node_include_re.finditer (s):
if m.group (1) == 'node':
line = which_line (m.start (), d['newline_indices'][f])
d['nodes'][m.group (2)] = (f, line)
elif m.group (1) == 'include':
- p = os.path.join (dir, m.group (2))
- if os.path.isfile (p):
- read_file (p, d)
- else:
- p = os.path.join (dir, outdir, m.group (2))
- if os.path.isfile (p):
- read_file (p, d)
- return d
+ try:
+ p = find_file (m.group (2), dir)
+ except EnvironmentError, (errno, strerror):
+ if strerror == file_not_found:
+ continue
+ else:
+ raise
+ read_file (p, d)
+
+
+def read_manual (name):
+ """Look for all node names and cross-references in a Texinfo document
+
+Return a (manual, dictionary) tuple where manual is the cross-reference
+macro name defined by references_dict[name], and dictionary
+has the following keys:
+
+ 'nodes' is a dictionary of `node name':(file name, line number),
+
+ 'contents' is a dictionary of file:`full file contents',
+
+ 'newline_indices' is a dictionary of
+file:[list of beginning-of-line string indices],
+
+ 'comments_boundaries' is a list of (start, end) tuples,
+which contain string indices of start and end of each comment.
+
+Included files that can be found in the include path are processed too.
+
+"""
+ d = {}
+ d['nodes'] = {}
+ d['contents'] = {}
+ d['newline_indices'] = {}
+ d['comments_boundaries'] = {}
+ manual = manuals_defs.references_dict.get (name, '')
+ try:
+ f = find_file (name + '.tely')
+ except EnvironmentError, (errno, strerror):
+ if not strerror == file_not_found:
+ raise
+ else:
+ try:
+ f = find_file (name + '.texi')
+ except EnvironmentError, (errno, strerror):
+ if strerror == file_not_found:
+ sys.stderr.write (name + '.{texi,tely}: ' +
+ file_not_found + '\n')
+ return (manual, d)
+ else:
+ raise
+
+ log.write ("Processing manual %s (%s)\n" % (f, manual))
+ read_file (f, d)
+ return (manual, d)
+
log.write ("Reading files...\n")
-manuals = dict ([(d['manual'], d)
- for d in [read_file (f, dict ()) for f in files]])
+manuals = dict ([read_manual (name)
+ for name in manuals_defs.references_dict.keys ()])
ref_fixes = set ()
+bad_refs_count = 0
fixes_count = 0
def add_fix (old_type, old_ref, new_type, new_ref):
ref_fixes.add ((old_type, old_ref, new_type, new_ref))
+
def lookup_fix (r):
found = []
for (old_type, old_ref, new_type, new_ref) in ref_fixes:
n = ''
return (text, n)
+
def choose_in_numbered_list (message, string_list, sep=' ', retries=3):
S = set (string_list)
S.discard ('')
t -= 1
raise InteractionError ("%d retries limit exceeded" % retries)
+
def check_ref (manual, file, m):
- global fixes_count
+ global fixes_count, bad_refs_count
+ bad_ref = False
type = m.group (1)
original_name = m.group (2)
name = whitespace_re.sub (' ', original_name). strip ()
line = which_line (m.start (), newline_indices)
linebroken = '\n' in m.group (2)
next_char = m.group (3)
+ commented_out = is_commented_out \
+ (m.start (), m.end (), manuals[manual]['comments_boundaries'][file])
+ useful_fix = not outdir in file
- # check for puncuation after x-ref
+ # check puncuation after x-ref
if options.check_punctuation and not next_char in '.,;:!?':
- stdout.write ("Warning: %s: %d: `%s': x-ref not followed by punctuation\n"
- % (file, line, name))
+ stdout.write ("Warning: %s: %d: `%s': x-ref \
+not followed by punctuation\n" % (file, line, name))
# validate xref
explicit_type = type
new_name = name
- if type != 'ref' and type == manual:
+ if type != 'ref' and type == manual and not commented_out:
+ bad_ref = True
stdout.write ("\n%s: %d: `%s': external %s x-ref should be internal\n"
% (file, line, name, type))
if options.auto_fix or yes_prompt ("Fix this?"):
if type == 'ref':
explicit_type = manual
- if not name in manuals[explicit_type]['nodes']:
+ if not name in manuals[explicit_type]['nodes'] and not commented_out:
+ bad_ref = True
fixed = False
stdout.write ('\n')
if type == 'ref':
found.append (k)
stdout.write (" found as `%s' x-ref\n" % k)
- if len (found) == 1 and (options.auto_fix
- or yes_prompt ("Fix this x-ref?")):
+ if (len (found) == 1
+ and (options.auto_fix or yes_prompt ("Fix this x-ref?"))):
add_fix (type, name, found[0], name)
type = found[0]
fixed = True
- elif len (found) > 1:
+ elif len (found) > 1 and useful_fix:
if options.interactive or options.auto_fix:
stdout.write ("* Several manuals contain this node name, \
cannot determine manual automatically.\n")
else:
concatenated = choose_in_numbered_list ("Choose \
node name and manual for this x-ref by index number or beginning of name:\n", \
- [' '.join ([i[0], i[1], '(in %s)' % i[2]]) for i in node_list],
+ [' '.join ([i[0], i[1], '(in %s)' % i[2]])
+ for i in node_list],
sep='\n')
if concatenated:
t, z = concatenated.split (' ', 1)
fixed = True
break
+ if fixed and type == manual:
+ type = 'ref'
+ bad_refs_count += int (bad_ref)
+ if bad_ref and not useful_fix:
+ stdout.write ("*** Warning: this file is automatically generated, \
+please fix the code source manually.\n")
+
# compute returned string
if new_name == name:
return ('@%s{%s}' % (type, original_name)) + next_char
manuals[key]['contents'][file])
if s != manuals[key]['contents'][file]:
open (file, 'w').write (s)
-
except KeyboardInterrupt:
log.write ("Operation interrupted, exiting.\n")
sys.exit (2)
-
except InteractionError, instance:
log.write ("Operation refused by user: %s\nExiting.\n" % instance)
sys.exit (3)
-log.write ("Done, fixed %d x-refs.\n" % fixes_count)
+log.write ("Done, %d bad x-refs found, fixed %d.\n" %
+ (bad_refs_count, fixes_count))
--- /dev/null
+#!/usr/bin/python
+
+# This module is imported by check_texi_refs.py
+
+references_dict = {
+ 'lilypond': 'ruser',
+ 'lilypond-learning': 'rlearning',
+ 'lilypond-program': 'rprogram',
+ 'lilypond-snippets': 'rlsr',
+ 'music-glossary': 'rglos',
+ 'lilypond-internals': 'rinternals' }
# urg, can't name itely templates foo.itely.in because of standard rule
-STEPMAKE_TEMPLATES=documentation texinfo tex
+STEPMAKE_TEMPLATES=documentation texinfo
LOCALSTEPMAKE_TEMPLATES=lilypond ly
EXTRA_DIST_FILES += README $(call src-wildcard,*.snippet-list)
+default:
+
ifneq ($(out),)
MAIN_INFO_DOC = lilypond-snippets
INFO_DOCS = lilypond-snippets
DEST_INFO_IMAGES_SUBDIR = input/lsr
endif
-default:
-
include $(depth)/make/stepmake.make
IN_ITELY_FILES = $(call src-wildcard,*-intro.itely)
GENERATED_ITELY_FILES = $(IN_ITELY_FILES:%-intro.itely=$(outdir)/%.itely)
$(outdir)/%.itely: %-intro.itely %.snippet-list
- xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f printfilename,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
+ xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f doctitle,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
$(outdir)/lilypond-snippets.texi: $(GENERATED_ITELY_FILES) $(LY_FILES)
$(outdir)/lilypond-snippets/index.html \
$(outdir)/lilypond-snippets-big-page.html \
$(source-links)
+
+.SECONDARY:
@include version.itexi
+@macro lydoctitle{TEXT}
+@section \TEXT\
+@end macro
+
@dircategory GNU LilyPond --- the music typesetter
@direntry
* LilyPond Snippets: (lilypond-snippets). Short tricks, tips, and examples.
+++ /dev/null
-\version "2.11.45"
-\header {
- lsrtags = "expressive-marks,tweaks-and-overrides"
- texidoc = "
-Using Scheme code to override the stencil for @code{MetronomeMark}
-objects, this example allows the creation of metronome marks which include
-text directions. The function @code{\movement} is called with three
-arguments: the text label, note duration, and beats per minute.
-"
- doctitle = "Adding text indications to metronome marks"
-}
-
-#(define-markup-command (mvt layout props arg) (markup?)
- (interpret-markup layout props
- (markup #:huge #:bold arg)))
-
-#(define (string->duration duration-string)
- "Parse the `duration-string', e.g. ''4..'' or ''breve.'', and return a duration object."
- (let* ((length (string-length duration-string))
- (dot-index (or (string-index duration-string #\.) length))
- (len (substring duration-string 0 dot-index))
- (dots (- length dot-index)))
- (ly:make-duration (cond ((string=? len "breve") -1)
- ((string=? len "longa") -2)
- ((string=? len "maxima") -3)
- (else (log2 (string->number len))))
- dots 1 1)))
-
-movement = #(define-music-function (parser location text duration count music)
- (string? string? integer? ly:music?)
- (define (format-movement-markup dur count context)
- (markup #:mvt text #:hspace 1
- #:concat ("(" #:general-align Y DOWN #:smaller #:note duration 1)
- "="
- #:concat ((number->string count) ")")))
- #{
- \set Score.metronomeMarkFormatter = #$format-movement-markup
- \set Score.tempoWholesPerMinute = #$(ly:moment-mul (ly:make-moment count 1)
- (ly:duration-length
- (string->duration duration)))
- \set Score.tempoUnitDuration = #$(string->duration duration)
- \set Score.tempoUnitCount = $count
- $music
- \set Score.metronomeMarkFormatter = #format-metronome-markup
- #})
-
-\layout { ragged-right = ##f }
-
-\relative c' {
- \time 3/4
- \movement "Allegro" "2." #92
- c2 e4
- g2.
- \movement "Moderato" "4" #104
- f4 e d
- \tempo 4 = 92
- c2.
-}
texidoc = "
In order to make parts of a crescendo hairpin invisible, the following
method is used: A white rectangle is drawn on top of the respective
-part of the crescendo hairpin, making it invisible. The rectangle is
+part of the crescendo hairpin, making it invisible. The rectangle is
defined as postscript code within a text markup.
To fine-tune the position and size of the markup, the number
preceding @code{setgray} in the postscript definition can be set to a
-value <1 making it grey. The two numbers before @code{scale} in the
-postscript code are responsible for the width and height of the
+value less than one, making it grey. The two numbers before @code{scale}
+in the postscript code are responsible for the width and height of the
rectangle, the two numbers before @code{translate} change the x- and
-y-origin of the rectangle.
+y-origin of the rectangle.
Make sure to put the hairpin in a lower layer than the text markup to
-actually draw the rectangle above the hairpin.
+draw the rectangle over the hairpin.
"
doctitle = "Broken crescendo hairpin"
}
-\score {
- \relative c' {
- << {
- \dynamicUp
- \override DynamicLineSpanner #'staff-padding = #4
- r2 r16 c'8.\pp r4
- } \\ {
- \override DynamicLineSpanner #'layer = #0
- des,2\mf\< ~
- \override TextScript #'layer = #2
- des16_\markup {
- \postscript #"1.9 -8 translate 5 4 scale 1 setgray 0 0 moveto 0 1
+\relative c' {
+ << {
+ \dynamicUp
+ \override DynamicLineSpanner #'staff-padding = #4
+ r2 r16 c'8.\pp r4
+ } \\ {
+ \override DynamicLineSpanner #'layer = #0
+ des,2\mf\< ~
+ \override TextScript #'layer = #2
+ des16_\markup {
+ \postscript #"1.9 -8 translate 5 4 scale 1 setgray 0 0 moveto 0 1
lineto 1 1 lineto 1 0 lineto 0 0 lineto fill"
- }
- r8. des4 ~ des16->\sff
- } >>
- }
- \layout { ragged-right = ##t }
+ }
+ r8. des4 ~ des16->\sff
+ } >>
}
The result will be files named
@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}.
-@itemize @bullet
-@item If system starts and ends are included, they include extents of the System grob, e.g., instrument names.
-@item Grace notes at the end point of the region are not included.
-@item Regions can span multiple systems. In this case, multiple EPS files are generated.
+@itemize
+@item
+If system starts and ends are included, they include extents of the
+System grob, e.g., instrument names.
+
+@item
+Grace notes at the end point of the region are not included.
+
+@item
+Regions can span multiple systems. In this case, multiple EPS files
+are generated.
+
@end itemize
"
doctitle = "Clip systems"
\score {
\lyrics {
\markup { from-2.0.1-to-4.0.1-clip.eps }
- \markup { \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps" (ly:parser-output-name parser)) }
+ \markup {
+ \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps"
+ (ly:parser-output-name parser)) }
}
}
}
% Thanks to Risto Vääräniemi for this snippet
-\paper { ragged-right = ##t }
-
{
\key a \major
\set Score.markFormatter = #format-mark-box-letters
\mark \markup { \box \bold "Intro" }
d'1
\mark \default
- d'
+ d'1
}
--- /dev/null
+\version "2.11.38"
+\header {
+ lsrtags = "staff-notation,tweaks-and-overrides"
+ texidoc = "If there is only one staff in one of the staff types
+@code{ChoirStaff}, @code{InnerChoirStaff}, @code{InnerStaffGroup}
+or @code{StaffGroup}, the bracket and the starting bar line will not
+be displayed as standard behavior. This can be changed by overriding
+the relevant properties, as demonstrated in this example.
+
+Note that in contexts such as @code{PianoStaff} and @code{GrandStaff}
+where the systems begin with a brace instead of a bracket, another
+property has to be set, as shown on the second system in the example.
+"
+ doctitle = "Display bracket with only one staff in a system"
+}
+
+\markup \column {
+ \score {
+ \new StaffGroup <<
+ % Must be lower than the actual number of staff lines
+ \override StaffGroup.SystemStartBracket #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'1
+ }
+ >>
+ \layout {}
+ }
+ \score {
+ \new PianoStaff <<
+ \override PianoStaff.SystemStartBrace #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'1
+ }
+ >>
+ \layout {}
+ }
+}
\version "2.11.23"
-\layout { ragged-right= ##t }
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
The @code{print-function} can be overridden to draw a box around an
-arbitrary grob.
+arbitrary grob.
"
doctitle = "Drawing boxes around grobs"
}
\relative c'' {
- \override TextScript #'stencil =
- #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
+ \override TextScript #'stencil =
+ #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
c'4^"foo"
- \override Stem #'stencil =
- #(make-stencil-boxer 0.05 0.25 ly:stem::print)
+ \override Stem #'stencil =
+ #(make-stencil-boxer 0.05 0.25 ly:stem::print)
\override Score.RehearsalMark #'stencil =
- #(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
+ #(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
b8
\revert Stem #'stencil
\version "2.11.23"
-\layout { ragged-right= ##t }
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
doctitle = "Drawing circles around various objects"
}
-\relative c'{
-c1
-\set Score.markFormatter
- = #(lambda (mark context)
+\relative c' {
+ c1
+ \set Score.markFormatter =
+ #(lambda (mark context)
(make-circle-markup (format-mark-numbers mark context)))
-\mark \default
-c2 d^\markup{\circle \finger "2"}
-\override Score.BarNumber #'break-visibility = #all-visible
-\override Score.BarNumber #'stencil
- = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
+ \mark \default
+ c2 d^\markup { \circle \finger 2 }
+ \override Score.BarNumber #'break-visibility = #all-visible
+ \override Score.BarNumber #'stencil =
+ #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
}
%make the staff lines invisible on staves
\override Staff.BarLine #'transparent = ##t
- \skip 1*8 % the actual music
+ % the actual music
+ \skip 1*8
% let finis bar go through all staves
\override Staff.BarLine #'transparent = ##f
\clef "neomensural-c1"
\key f \major
\time 2/2
- c''1.
+ c''1.
}
>>
\new Lyrics \lyricsto discantusIncipit { IV- }
c'4 e'4.( d'8 c' b |
a4) b a2 |
b4.( c'8 d'4) c'4 |
- \once \override NoteHead #'transparent = ##t c'1 |
+ \once \override NoteHead #'transparent = ##t
+ c'1 |
b\breve |
}
}
\clef "neomensural-c3"
\key f \major
\time 2/2
- r1 f'1.
+ r1 f'1.
}
>>
\new Lyrics \lyricsto altusIncipit { IV- }
altusNotes = {
\transpose c' c'' {
\clef "treble"
- r2 g2. e4 fis g | % two bars
+ % two measures
+ r2 g2. e4 fis g |
a2 g4 e |
fis g4.( fis16 e fis4) |
g1 |
- \once \override NoteHead #'transparent = ##t g1 |
+ \once \override NoteHead #'transparent = ##t
+ g1 |
g\breve |
}
}
altusLyrics = \lyricmode {
- Ju -- bi -- la -- te | % two bars
+ % two measures
+ Ju -- bi -- la -- te |
De -- o, om -- |
nis ter -- ra, |
"..." |
R1 |
R1 |
R1 |
- r2 d'2. d'4 b e' | % two bars
- \once \override NoteHead #'transparent = ##t e'1 |
+ % two measures
+ r2 d'2. d'4 b e' |
+ \once \override NoteHead #'transparent = ##t
+ e'1 |
d'\breve |
}
}
tenorLyrics = \lyricmode {
- Ju -- bi -- la -- te | % two bars
+ % two measures
+ Ju -- bi -- la -- te |
"..." |
-us.
}
R1 |
R1 |
g2. e4 |
- \once \override NoteHead #'transparent = ##t e1 |
+ \once \override NoteHead #'transparent = ##t
+ e1 |
g\breve |
}
}
bassusLyrics = \lyricmode {
Ju -- bi- |
"..." |
- -us.
+ -us.
}
\score {
<<
\new StaffGroup = choirStaff <<
\new Voice = "discantusNotes" <<
- \global
+ \global
\set Staff.instrumentName = "Discantus"
\incipit \discantusIncipit
\discantusNotes
>>
\new Lyrics = "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
\new Voice = "altusNotes" <<
- \global
+ \global
\set Staff.instrumentName = "Altus"
\incipit \altusIncipit
\altusNotes
>>
\new Lyrics = "altusLyrics" \lyricsto altusNotes { \altusLyrics }
\new Voice = "tenorNotes" <<
- \global
+ \global
\set Staff.instrumentName = "Tenor"
\incipit \tenorIncipit
\tenorNotes
\bassusNotes
>>
>>
- \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
+ \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
%% Keep the bass lyrics outside of the staff group to avoid bar lines
%% between the lyrics.
>>
\layout {
\context {
\Score
- %% no bars in staves
+ %% no bar lines in staves
\override BarLine #'transparent = ##t
}
- %% the next three instructions keep the lyrics between the barlines
+ %% the next three instructions keep the lyrics between the bar lines
\context {
- \Lyrics
+ \Lyrics
\consists "Bar_engraver"
\override BarLine #'transparent = ##t
}
- \context { \StaffGroup \consists "Separating_line_group_engraver" }
+ \context {
+ \StaffGroup
+ \consists "Separating_line_group_engraver"
+ }
\context {
\Voice
%% no slurs
\override Slur #'transparent = ##t
%% Comment in the below "\remove" command to allow line
- %% breaking also at those barlines where a note overlaps
- %% into the next bar. The command is commented out in this
+ %% breaking also at those bar lines where a note overlaps
+ %% into the next measure. The command is commented out in this
%% short example score, but especially for large scores, you
%% will typically yield better line breaking and thus improve
%% overall spacing if you comment in the following command.
+++ /dev/null
-\version "2.11.35"
-
-\header {
- lsrtags = "fretted-strings"
- texidoc = "
-You can format a tablature with letters instead of numbers - so that
-0->a, 1->b, 2->c, etc.
-
-BROKEN IN 2.11, COMMENTED OUT."
- doctitle = "Letter tablature formatting"
-}
-{ c'4 }
\version "2.10.0"
-\layout { ragged-right= ##t }
\header {
lsrtags = "expressive-marks"
- texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
+ texidoc = "Arrows can be applied to text-spanners and line-spanners
+(such as the Glissando)"
doctitle = "Line arrows"
}
\override Glissando #'arrow-length = #0.5
\override Glissando #'arrow-width = #0.25
- a8\startTextSpan gis8 a4 b4\glissando
- b,4 | g' c\stopTextSpan c
+ a8\startTextSpan gis a4 b\glissando b,
+ g'4 c\stopTextSpan c2
}
\header {
lsrtags = "pitches"
texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
- microtonal alterations. Consult the initialization file
- @code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
- for details of pitch names and alterations.
- "
+microtonal alterations. Consult the initialization file
+@code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
+for details of pitch names and alterations.
+"
doctitle = "Makam"
}
\include "makam-init.ly"
\relative c' {
- \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
- c cc db fk
- gbm gfc gfb efk
- fk db cc c
+ \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
+ c4 cc db fk
+ gbm4 gfc gfb efk
+ fk4 db cc c
}
\version "2.11.23"
-\layout { ragged-right = ##t }
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
other behavior is retained. The object still takes up space, it takes
part in collisions, and slurs, ties and beams can be attached to it.
-
-The snippet demonstrates how to connect different voices using ties.
+This snippet demonstrates how to connect different voices using ties.
Normally, ties only connect two notes in the same voice. By
introducing a tie in a different voice, and blanking the first up-stem
in that voice, the tie appears to cross voices. To prevent the blanked stem's
b8 ~ b\noBeam
\once \override Stem #'transparent = ##t
\once \override Stem #'length = #8
- g ~ g\noBeam
+ g8 ~ g\noBeam
} \\ {
- b g g e
+ b8 g g e
} >>
}
#(set-default-paper-size "a6")
#(define-markup-list-command (paragraph layout props args) (markup-list?)
- (interpret-markup-list layout props
+ (interpret-markup-list layout props
(make-justified-lines-markup-list (cons (make-hspace-markup 2) args))))
-%% Candide, Voltaire
+% Candide, Voltaire
\markuplines \override-lines #'(baseline-skip . 2.5) {
\paragraph {
Il y avait en Westphalie, dans le château de M. le baron de
doctitle = "Outputting the version number"
}
-\score { \context Lyrics {
- \override Score.RehearsalMark #'self-alignment-X = #LEFT
- \mark #(ly:export (string-append "Processed with LilyPond version " (lilypond-version)))
+\score {
+ \context Lyrics {
+ \override Score.RehearsalMark #'self-alignment-X = #LEFT
+ \mark #(ly:export (string-append "Processed with LilyPond version "
+ (lilypond-version)))
s2
}
}
\version "2.11.26"
-\layout { ragged-right= ##t }
\header {
lsrtags = "spacing"
texidoc = "Page labels may be placed inside music or at top-level,
-and refered to in markups."
+and referred to in markups."
doctitle = "Page label"
}
(markup #:fill-line (text #:page-ref label "8" "?"))))
\book {
- \markup \huge \fill-line { \null "Title Page" \null }
+ \markup \huge \fill-line { \null Title Page \null }
\pageBreak
\label #'toc
\markup \column {
- \large \fill-line { \null "Table of contents" \null }
+ \large \fill-line { \null Table of contents \null }
\toc-line #'toc "Table of contents"
\toc-line #'firstScore "First Score"
\toc-line #'markA "Mark A"
\label #'firstScore
\score {
- { c'2 c'
- \mark \markup { A (page \concat { \page-ref #'markA "0" "?" ) }} \label #'markA
- c' c'
+ {
+ c'2 c'
+ \mark \markup { A (page \concat { \page-ref #'markA "0" "?" ) } } \label #'markA
+ c'2 c'
\pageBreak
\mark "B" \label #'markB
- d' d'
- d' d'
- \once \override Score . RehearsalMark #'break-visibility = #begin-of-line-invisible
+ d'2 d'
+ d'2 d'
+ \once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
\mark "C" \label #'markC
}
\header { piece = "First score" }
\key c \major
\time 4/4
- a b c d
+ a4 b c d
}
lower = \relative c {
}
dynamics = {
- s2\fff\> s4
- s\!\pp
+ s2\fff\> s4 s\!\pp
}
pedal = {
- s2\sustainDown s2\sustainUp
+ s2\sustainDown s\sustainUp
}
\score {
\context {
\type "Engraver_group"
\name Dynamics
- \alias Voice % So that \cresc works, for example.
+ % So that \cresc works, for example.
+ \alias Voice
\consists "Output_property_engraver"
\override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
}
\score {
\new PianoStaff <<
- \new Staff = "upper" << \upper \dynamics >>
- \new Staff = "lower" << \lower \dynamics >>
- \new Dynamics = "pedal" \pedal
+ \new Staff = "upper" << \upper \dynamics \pedal >>
+ \new Staff = "lower" << \lower \dynamics \pedal >>
>>
- \midi {
- \context {
- \type "Performer_group"
- \name Dynamics
- \consists "Piano_pedal_performer"
- }
- \context {
- \PianoStaff
- \accepts Dynamics
- }
- }
+ \midi {}
}
\version "2.11.42"
-\layout { ragged-right = ##t }
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
\header {
lsrtags = "pitches,staff-notation"
texidoc = "Quotations take into account the transposition of both
-source and target. In this example, all instruments play sounding
-middle C; the target is an instrument in F. The target part may be
-transposed using @code{\\transpose}. In this case, all the pitches (including the
-quoted ones) are transposed."
+source and target. In this example, all instruments play sounding
+middle C; the target is an instrument in F. The target part may be
+transposed using @code{\\transpose}. In this case, all the pitches
+(including the quoted ones) are transposed.
+"
doctitle = "Quoting another voice with transposition"
}
}
{
- \set Staff.instrumentName = \markup \center-align { "Horn" "in F" }
+ \set Staff.instrumentName = \markup \center-align { Horn \line { in F } }
\quoteTest
\transpose c' d' << \quoteTest s4_"up a tone" >>
}
\version "2.11.10"
-\layout { ragged-right= ##t }
\header {
lsrtags = "staff-notation"
texidoc = "With @code{\\quote}, fragments of previously entered
-music may be quoted. @code{quotedEventTypes} will determines what
-things are quoted. In this example, a 16th rest is not quoted, since
+music may be quoted. @code{quotedEventTypes} will determines which
+items are quoted. In this example, a 16th rest is not quoted, since
@code{rest-event} is not in @code{quotedEventTypes}."
doctitle = "Quoting another voice"
}
quoteMe = \relative c' { fis4 r16 a8.-> b4-\ff c }
-\addQuote quoteMe \quoteMe
-original = \relative c'' { c8 d s2 es8 gis8 }
+\addQuote quoteMe \quoteMe
+original = \relative c'' {
+ c8 d s2
+ \once \override NoteColumn #'ignore-collision = ##t
+ es8 gis8
+}
<<
- \new Staff {
- \set Staff.instrumentName = "quoteMe"
- \quoteMe
- }
- \new Staff {
- \set Staff.instrumentName = "orig"
- \original
- }
- \new Staff \relative c'' <<
- \set Staff.instrumentName = "orig+quote"
- \set Staff.quotedEventTypes = #'(note-event articulation-event)
- \original
- \new Voice {
- s4
+ \new Staff {
+ \set Staff.instrumentName = "quoteMe"
+ \quoteMe
+ }
+ \new Staff {
+ \set Staff.instrumentName = "orig"
+ \original
+ }
+ \new Staff \relative c'' <<
+ \set Staff.instrumentName = "orig+quote"
+ \set Staff.quotedEventTypes = #'(note-event articulation-event)
+ \original
+ \new Voice {
+ s4
\set fontSize = #-4
\override Stem #'length-fraction = #(magstep -4)
\quoteDuring #"quoteMe" { \skip 2. }
- }
- >>
+ }
+ >>
>>
lsrtags = "expressive-marks"
texidoc = "If the note which ends a hairpin falls on a downbeat,
the hairpin stops at the bar line immediately preceding. This behavior
-can be controlled by overriding the @code{'to-barline} property.
+can be controlled by overriding the @code{to-barline} property.
"
doctitle = "Setting hairpin behavior at bar lines"
}
\version "2.11.26"
-\layout { ragged-right= ##t }
\header {
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
-@code{\\markuplines \\table-of-contents}. The TOC items are added with
+@code{\\markuplines \\table-of-contents}. The TOC items are added with
the @code{\\tocItem} command."
doctitle = "Table of contents"
}
\book {
\markuplines \table-of-contents
\pageBreak
-
- \tocItem \markup "The first score"
+ \tocItem \markup { The first score }
\score {
- {
+ {
c'1 \pageBreak
- \mark "A" \tocItem \markup "Mark A"
- d'
+ \mark "A" \tocItem \markup { Mark A }
+ d'1
}
}
\pageBreak
- \tocItem \markup "The second score"
+ \tocItem \markup { The second score }
\score {
- { e' }
+ { e'1 }
\header { piece = "Second score" }
}
}
\version "2.11.33"
\header {
lsrtags = "pitches"
- texidoc = "This example uses some Scheme code to enforce enharmonic modifications for
-notes in order to have the minimum number of accidentals. In this
-case, the following rules apply:
+ texidoc = "This example uses some Scheme code to enforce enharmonic
+modifications for notes in order to have the minimum number of
+accidentals. In this case, the following rules apply:
@itemize
@item
#(define (naturalize-pitch p)
(let* ((o (ly:pitch-octave p))
- (a (* 4 (ly:pitch-alteration p)))
+ (a (* 4 (ly:pitch-alteration p)))
; alteration, a, in quarter tone steps, for historical reasons
(n (ly:pitch-notename p)))
(cond
(cond
((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
((< a -2) (set! a (+ a 4)) (set! n (- n 1))))
- (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
- (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
+ (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
+ (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
(ly:make-pitch o n (/ a 4))))
#(define (naturalize music)
\transpose c deses \music
\naturalizeMusic \transpose c deses \music
}
- \layout { ragged-right = ##t }
+ \layout {}
}
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
-With the @code{\tweak} command, you can tune every grob directly. Here
+With the @code{\\tweak} command, every grob can be tuned directly. Here
are some examples of available tweaks.
"
doctitle = "Using the @code{\tweak} command to tweak individual grobs"
}
-{
+\relative c' {
+ \time 2/4
\set fingeringOrientations = #'(right)
<
- \tweak #'font-size #3 c
+ \tweak #'font-size #3 c
\tweak #'color #red d-\tweak #'font-size #8 -4
- \tweak #'style #'cross g
- \tweak #'duration-log #1 a
- >4
+ \tweak #'style #'cross g
+ \tweak #'duration-log #2 a
+ >2
}
Red Hat Fedora
taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
- ttfonts-zh_CN fonts-ja fonts-hebrew
+ ttfonts-zh_CN fonts-ja fonts-hebrew
Debian GNU/Linux
apt-get install emacs-intl-fonts xfonts-intl-.* \
- ttf-kochi-gothic ttf-kochi-mincho \
- xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
+ ttf-kochi-gothic ttf-kochi-mincho \
+ xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
%}
\header {
lsrtags = "text"
texidoc = "Various scripts may be used for texts (like titles and
-lyrics) introduced by entering them in UTF-8 encoding, and using a
-Pango based backend. Depending on the fonts installed, this fragment
-will render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
+lyrics) by entering them in UTF-8 encoding, and using a Pango based
+backend. Depending on the fonts installed, this fragment will
+render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
"
doctitle = "UTF-8"
}
Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
}
-hebrew = \lyricmode {
+hebrew = \lyricmode {
זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
}
-japanese = \lyricmode {
+japanese = \lyricmode {
いろはにほへど ちりぬるを
わがよたれぞ つねならむ
うゐのおくや まけふこえて
- あさきゆめみじ ゑひもせず
+ あさきゆめみじ ゑひもせず
}
% "a legal song to you"
-portuguese = \lyricmode {
+portuguese = \lyricmode {
à vo -- cê uma can -- ção legal
}
-\paper {
- ragged-right = ##t
-}
-
-\relative {
- c2 d e f g f e
+\relative {
+ c2 d
+ e2 f
+ g2 f
+ e1
}
\addlyrics { \bulgarian }
\addlyrics { \hebrew }
\layout { ragged-right= ##t }
\header {
lsrtags = "repeats,staff-notation"
- texidoc = "By adding @code{Volta_engraver}, repeat brackets
-can be put over staves other than the topmost one in a score."
+ texidoc = "By adding the @code{Volta_engraver} to the relevant
+staff, volte can be put over staves other than the topmost
+one in a score."
doctitle = "Volta multi-staff"
}
-vmus = \relative c'' {
- \repeat volta 2 c1 \alternative { d e }
+% LSR: this is a test which should get automatically
+% LSR: removed from input/lsr/ -gp
+voltaMusic = \relative c'' {
+ \repeat volta 2
+ c1
+ \alternative {
+ d e
+ }
}
<<
\new StaffGroup <<
- \context Staff \vmus
- \new Staff \vmus
+ \context Staff \voltaMusic
+ \new Staff \voltaMusic
>>
\new StaffGroup <<
- \new Staff \with { \consists Volta_engraver }
- \vmus
- \new Staff \vmus
+ \new Staff \with { \consists "Volta_engraver" }
+ \voltaMusic
+ \new Staff \voltaMusic
>>
>>
bool pure, int start, int end,
vector<Skyline_pair> *const ret)
{
- /* each child's skyline was calculated according to the common refpoint of its
- elements. Here we need all the skylines to be positioned with respect to
- a single refpoint, so we need the common refpoint of the common refpoints
- of the elements of the children */
- vector<Grob*> child_refpoints;
- for (vsize i = 0; i < elements->size (); i++)
- {
- Grob *elt = (*elements)[i];
- Grob *child_common = unsmob_grob ((a == Y_AXIS)
- ? elt->get_object ("X-common")
- : elt->get_object ("Y-common"));
-
- if (!child_common)
- {
- extract_grob_set (elt, "elements", child_elts);
- child_common = common_refpoint_of_array (child_elts, elt, other_axis (a));
- }
-
- child_refpoints.push_back (child_common);
- }
-
- Grob *other_common = common_refpoint_of_array (child_refpoints, me, other_axis (a));
+ Grob *other_common = common_refpoint_of_array (*elements, me, other_axis (a));
for (vsize i = elements->size (); i--;)
{
Grob *g = (*elements)[i];
Skyline_pair skylines;
- /* each skyline is calculated relative to (potentially) a different other_axis
- coordinate. In order to compare the skylines effectively, we need to shift them
- to some absolute reference point */
if (!pure)
{
Skyline_pair *skys = Skyline_pair::unsmob (g->get_property (a == Y_AXIS
skylines.insert (b, 0, other_axis (a));
}
- Real offset = child_refpoints[i]->relative_coordinate (other_common, other_axis (a));
+ /* This skyline was calculated relative to the grob g. In order to compare it to
+ skylines belonging to other grobs, we need to shift it so that it is relative
+ to the common reference. */
+ Real offset = g->relative_coordinate (other_common, other_axis (a));
skylines.shift (offset);
}
else
"Order grobs from top to bottom, left to right, right to left"
" or bottom to top. For vertical alignments of staves, the"
" @code{break-system-details} of the left"
- " @internalsref{NonMusicalPaperColumn} may be set to tune"
+ " @rinternals{NonMusicalPaperColumn} may be set to tune"
" vertical spacing. Set @code{alignment-extra-space} to add"
" extra space for staves. Set"
" @code{fixed-alignment-extra-space} to force staves in"
}
if (arpeggio_)
- {
- Pointer_group_interface::add_grob (note_column_, ly_symbol2scm ("elements"), arpeggio_);
- note_column_->set_object ("arpeggio", arpeggio_->self_scm ());
- }
+ note_column_->set_object ("arpeggio", arpeggio_->self_scm ());
}
}
#include "accidental-placement.hh"
#include "axis-group-interface.hh"
#include "lookup.hh"
+#include "note-column.hh"
#include "note-head.hh"
#include "paper-column.hh"
#include "pointer-group-interface.hh"
if (left)
elts = Accidental_placement::get_relevant_accidentals (read_only_elts, left);
else
- elts = read_only_elts;
+ {
+ elts = read_only_elts;
+
+ /* This is a special-case for NoteColumn: we want to include arpeggio in its
+ skyline (so spacing takes it into account) but we don't want to include it
+ in the NoteColumn's extent because some spanners (eg. Hairpin) bound themselves
+ on the NoteColumn and we don't want them to include arpeggios in their bounds.
+ */
+ if (Grob *a = Note_column::arpeggio (me)) {
+ elts.push_back (a);
+ }
+ }
Grob *ycommon = common_refpoint_of_array (elts, me, Y_AXIS);
ANTI_ALIAS_FACTOR=2
LILYPOND_JOBS=$(if $(CPU_COUNT),-djob-count=$(CPU_COUNT),)
LANG_TEXIDOC_FLAGS:=$(foreach lang,$(LANGS),--header=texidoc$(lang))
+LANG_DOCTITLE_FLAGS:=$(foreach lang,$(LANGS),--header=doctitle$(lang))
LILYPOND_BOOK_LILYPOND_FLAGS=-dbackend=eps \
--formats=ps,png,pdf \
$(LILYPOND_JOBS) \
-dinclude-eps-fonts \
-dgs-load-fonts \
+--header=doctitle \
+$(LANG_DOCTITLE_FLAGS) \
--header=texidoc \
$(LANG_TEXIDOC_FLAGS) \
-I $(top-src-dir)/input/manual \
@item context
In which context is the rule applied. For example, if @var{context}
-is @internalsref{Score} then all staves share accidentals, and if
-@var{context} is @internalsref{Staff} then all voices in the same staff
+is @rinternals{Score} then all staves share accidentals, and if
+@var{context} is @rinternals{Staff} then all voices in the same staff
share accidentals, but staves do not.
@item octavation
(defaultBarType ,string? "Set the default type of bar line. See
@code{whichBar} for information on available bar types.
-This variable is read by @internalsref{Timing_translator} at
-@internalsref{Score} level.")
+This variable is read by @rinternals{Timing_translator} at
+@rinternals{Score} level.")
(doubleSlurs ,boolean? "If set, two slurs are created for every
slurred note, one above and one below the chord.")
(drumPitchTable ,hash-table? "A table mapping percussion
(ignoreBarChecks ,boolean? "Ignore bar checks.")
(ignoreFiguredBassRest ,boolean? "Don't swallow rest events.")
(ignoreMelismata ,boolean? "Ignore melismata for this
-@internalsref{Lyrics} line.")
+@rinternals{Lyrics} line.")
(implicitBassFigures ,list? "A list of bass figures that are not
printed as numbers, but only as extender lines.")
(implicitTimeSignatureVisibility ,vector? "break visibility for
(soloText ,string? "The text for the start of a solo when
part-combining.")
(squashedPosition ,integer? "Vertical position of squashing for
-@internalsref{Pitch_squash_engraver}.")
+@rinternals{Pitch_squash_engraver}.")
(staffLineLayoutFunction ,procedure? "Layout of staff lines,
@code{traditional}, or @code{semitone}.")
(stanza ,markup? "Stanza @q{number} to print before the start of a
@noindent
This will create a start-repeat bar in this staff only. Valid values
-are described in @internalsref{bar-line-interface}.")
+are described in @rinternals{bar-line-interface}.")
)))
(ly:add-interface
'vertically-spaceable-interface
"Objects that should be kept at constant vertical distances. Typically:
-@internalsref{VerticalAxisGroup} objects of @internalsref{Staff} contexts."
+@rinternals{VerticalAxisGroup} objects of @rinternals{Staff} contexts."
'())
Fractional values are allowed.")
(force-hshift ,number? "This specifies a manual shift for notes
in collisions. The unit is the note head width of the first voice
-note. This is used by @internalsref{note-collision-interface}.")
+note. This is used by @rinternals{note-collision-interface}.")
(forced ,boolean? "Manually forced accidental.")
(fraction ,number-pair? "Numerator and denominator of a time
signature object.")
slur, the closer it is to this height.")
(horizontal-shift ,integer? "An integer that identifies ranking
of @code{NoteColumn}s for horizontal shifting. This is used by
-@internalsref{note-collision-interface}.")
+@rinternals{note-collision-interface}.")
(horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the
left and one to the right of this grob.")
collisions, even if they have different note heads. The
smaller of the two heads is rendered invisible. This is used in
polyphonic guitar notation. The value of this setting is used by
-@internalsref{note-collision-interface}.
+@rinternals{note-collision-interface}.
@code{merge-differently-headed} only applies to opposing stem
directions (i.e., voice 1 &@tie{}2).")
(shortest-duration-space ,ly:dimension? "Start with this much
space for the shortest duration. This is expressed in
@code{spacing-increment} as unit. See also
-@internalsref{spacing-spanner-interface}.")
+@rinternals{spacing-spanner-interface}.")
(shortest-playing-duration ,ly:moment? "The duration of the
shortest playing here.")
(shortest-starter-duration ,ly:moment? "The duration of the
try to space the non-musical column as though the clef is not there.")
(spacing-increment ,number? "Add this much space for a doubled
duration. Typically, the width of a note head. See also
-@internalsref{spacing-spanner-interface}.")
+@rinternals{spacing-spanner-interface}.")
(springs-and-rods ,boolean? "Dummy variable for triggering
spacing routines.")
(stacking-dir ,ly:dir? "Stack objects in which direction?")
@cindex overriding properties within text markup
Add the first argument in to the property list. Properties may be
-any sort of property supported by @internalsref{font-interface} and
-@internalsref{text-interface}, for example
+any sort of property supported by @rinternals{font-interface} and
+@rinternals{text-interface}, for example
@example
\\override #'(font-family . married) \"bla\"
@end iftex
-@macro internalsref{NAME}
+@macro rinternals{NAME}
@ref{\\NAME\\}
@end macro
RAGGED_RIGHT = 'ragged-right'
RELATIVE = 'relative'
STAFFSIZE = 'staffsize'
+DOCTITLE = 'doctitle'
TEXIDOC = 'texidoc'
TEXINFO = 'texinfo'
VERBATIM = 'verbatim'
NOFRAGMENT,
NOINDENT,
PRINTFILENAME,
+ DOCTITLE,
TEXIDOC,
LANG,
VERBATIM,
map (consider_file, [base + '.tex',
base + '.eps',
base + '.texidoc',
- base + '.texidoc' + document_language,
+ base + '.doctitle',
base + '-systems.texi',
base + '-systems.tex',
base + '-systems.pdftexi'])
+ if document_language:
+ map (consider_file,
+ [base + '.texidoc' + document_language,
+ base + '.doctitle' + document_language])
# UGH - junk global_options
if (base + '.eps' in result and self.format in (HTML, TEXINFO)
def output_texinfo (self):
str = self.output_print_filename (TEXINFO)
base = self.basename ()
+ if DOCTITLE in self.option_dict:
+ doctitle = base + '.doctitle'
+ translated_doctitle = doctitle + document_language
+ if os.path.exists (translated_doctitle):
+ str += '@lydoctitle %s\n' % open (translated_doctitle).read ()
+ elif os.path.exists (doctitle):
+ str += '@lydoctitle %s\n' % open (doctitle).read ()
if TEXIDOC in self.option_dict:
texidoc = base + '.texidoc'
translated_texidoc = texidoc + document_language
'(-0.1 . 0.1) '(0.1 . 1)))
0.7 X))))""",
"eyeglasses": """eyeglassesps = #"0.15 setlinewidth
-% 255 0 0 setrgbcolor
--0.9 0 translate
-1.1 1.1 scale
-1.2 0.7 moveto
-0.7 0.7 0.5 0 361 arc
-stroke
-2.20 0.70 0.50 0 361 arc
-stroke
-1.45 0.85 0.30 0 180 arc
-stroke
-0.20 0.70 moveto
-0.80 2.00 lineto
-0.92 2.26 1.30 2.40 1.15 1.70 curveto
-stroke
-2.70 0.70 moveto
-3.30 2.00 lineto
-3.42 2.26 3.80 2.40 3.65 1.70 curveto
-stroke"
+ -0.9 0 translate
+ 1.1 1.1 scale
+ 1.2 0.7 moveto
+ 0.7 0.7 0.5 0 361 arc
+ stroke
+ 2.20 0.70 0.50 0 361 arc
+ stroke
+ 1.45 0.85 0.30 0 180 arc
+ stroke
+ 0.20 0.70 moveto
+ 0.80 2.00 lineto
+ 0.92 2.26 1.30 2.40 1.15 1.70 curveto
+ stroke
+ 2.70 0.70 moveto
+ 3.30 2.00 lineto
+ 3.42 2.26 3.80 2.40 3.65 1.70 curveto
+ stroke"
eyeglasses = \markup { \with-dimensions #'(0 . 4.4) #'(0 . 2.5) \postscript #eyeglassesps }"""
}
web:
$(MAKE) out=www WWW
$(MAKE) out=www WWW-post
+
+web-clean:
+ $(MAKE) out=www clean