txt-to-html:
$(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+po-update:
+ make -C po po-update
+
ifneq ($(ISOLANG),)
new-lang:
@if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \
cp fr/GNUmakefile $(ISOLANG)
cp fr/user/GNUmakefile $(ISOLANG)/user
sed -i -e 's/ISOLANG *= *fr/ISOLANG = $(ISOLANG)/' $(ISOLANG)/GNUmakefile $(ISOLANG)/user/GNUmakefile
- $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -o doc.pot --skeleton --gettext ../user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) -o doc.pot --skeleton --gettext ../user/lilypond.tely
mv $(outdir)/*.*tely $(ISOLANG)/user
msgmerge -U po/lilypond-doc.pot $(outdir)/doc.pot
cp po/lilypond-doc.pot po/$(ISOLANG).po
check-translation:
find $(ISOLANG)/user/ -name '*.*tely' | xargs $(PYTHON) $(buildscript-dir)/check_translation.py $(buildscript-dir)
+
+skeleton-update:
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) --skeleton ../user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir)
endif
--- /dev/null
+LILYPOND DOCUMENTATION TRANSLATION
+
+
+SOURCES
+
+The sources live in a GIT repository. Git 1.4.4.1 or newer is
+required, and Git 1.5.x is highly recommended. To get a fresh version
+run
+
+ mkdir lily ; cd lily
+ git init-db
+ git fetch git://git.sv.gnu.org/lilypond.git/ refs/heads/master:remotemaster
+ git checkout -b master remotemaster
+
+
+GIT
+
+The reader is supposed to be familiar with Git, for example by
+having experience from lilypond.org translation; see
+http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=blob_plain;f=README;hb=web/master
+
+
+REQUIREMENTS
+
+Working on LilyPond documentation translations requires:
+
+ * python
+ * make
+ * gettext
+
+
+STARTING A TRANSLATION IN A NEW LANGUAGE
+
+At top of the source directory, do
+
+ ./autogen.sh
+
+or (if you want to install your self-compiled LilyPond locally):
+
+ ./autogen.sh --prefix=$HOME
+
+If you want to compile LilyPond -- which is almost required to build
+the docs, but is not required to do translation only -- fix all
+dependencies and rerun ./configure (with the same options as for
+autogen).
+
+Cd into Documentation and run:
+
+ make ISOLANG=<MY-LANGUAGE> new-lang
+
+where <MY-LANGUAGE> is the ISO 639 language code
+
+Add a language definition for your language in
+buildscripts/langdefs.py.
+
+See next section about what files to translate and the following
+detailed instructions after the next section.
+
+FILES TO BE TRANSLATED
+
+All the following files are in Documentation/
+Translation of Documentation/foo/bar should be
+Documentation/<LANG>/foo/bar.
+Unmentioned files should not be translated.
+
+Priorities: 1. delivery, 2. 3. 4. 5. later, 6. optional.
+
+Files marked with priority 3, 4 or 5 may be submitted individually.
+
+-1- Documentation index, Tutorial and Cheat Sheet
+1 user/lilypond.tely
+1 user/tutorial.itely
+1 user/dedication.itely
+1 user/cheatsheet.itely
+1 index.html.in
+
+-2- User manual introduction
+2 user/preface.itely
+2 user/introduction.itely
+
+-3- Learning manual
+3 user/putting.itely -- Putting it all together
+3 user/working.itely -- Working on LilyPond files
+3 user/tweaks.itely -- Tweaking output
+
+-4- Notation reference
+4 user/basic-notation.itely -- Basic notation
+4 user/instrument-notation.itely -- Instrument-specific notation
+4 user/advanced-notation.itely -- Advanced notation
+4 user/changing-defaults.itely -- Changing defaults
+4 user/non-music.itely -- Non-musical notation
+4 user/spacing.itely -- Spacing issues
+4 user/programming-interface.itely -- Interfaces for programmers
+4 user/scheme-tutorial.itely -- Scheme tutorial
+
+-5- Program usage
+5 user/running.itely -- Running LilyPond
+5 user/lilypond-book.itely -- LilyPond-book
+5 user/converters.itely -- Converting from other formats
+
+-6- Appendices whose translation is optional
+6 user/literature.itely
+6 user/templates.itely
+6 user/notation-appendices.itely
+
+* WORD COUNTS FOR CATEGORIES
+
+LANG=C wc --words $(grep ^1 TRANSLATION | cut -d ' ' -f 2 | sed 's@^@site/@')
+
+LANG=C wc --words $(grep ^2 TRANSLATION | cut -d ' ' -f 2 | sed 's@^@site/@')
+
+
+TRANSLATION DETAILED INSTRUCTIONS
+
+Please follow all these instructions with care to ensure quality work.
+
+* USER MANUAL
+
+Any title which comes with one of the following commands must not be
+translated directly in the Texinfo source
+
+@node @top @majorheading
+@chapter @unnumbered @appendix @chapheading
+@section @unnumberedsec @appendixsec @heading
+@subsection @unnumberedsubsec @appendixsubsec @subheading
+@subsubsection @unnumberedsubsubsec @appendixsubsubsec @subsubheading
+@ref @rglos
+
+
+In any section which looks like
+
+@menu
+* node1:: thing1
+* node2:: thing2
+...
+@end menu
+
+the node names (nodeN) are NOT to be translated, whereas extra title
+information (thingN) is.
+
+
+Every node name or section title must from now on be translated
+separately in a .po file (just as well as LilyPond output messages).
+This .po file should be in Documentation/po.
+
+Make sure to keep *verbatim* copies of music snippets (in @lilypond blocs).
+@example blocs do not have to be verbatim copies, e.g. variable names,
+file names and comments should be translated.
+
+Index entries (@cindex and so on) should be translated.
+
+Carefully apply every rule exposed in Documentation/README.txt. If
+one of these rules conflicts with a rule specific to your language,
+please ask the Translation meister and/or the Documentation Editor on
+lilypond-devel@gnu.org.
+
+
+* DOCUMENTATION INDEX index.html.in
+
+
+
+CHECK STATE OF TRANSLATION
+
+
+
+UPDATE A TRANSLATION
+
+
+
+TECHNICAL BACKGROUND
+
+*** This section is a draft and should be overhauled ***
+- J. Mandereau
+
+When starting a translation, texi-langutils.py quickly parses
+lilypond.tely and the included .itely's, and generates a skeleton with
+node and sectionning commands. When translating a .itely file, the
+skeleton file is replaced with the real translation, in exception of
+the the node, sectioning and glossary reference commands, which
+remains in English. All this ensures easy navigation between nodes in
+different languages in HTML docs, i.e.: there is automatic language
+selection on lilypond.org, all sections and cross-references are
+always available, at least in English (for example, see the "Other
+languages: xxx" menu at bottom of tutorial pages). From the user's
+point of view, docs in his native language with node and sections in
+English are painful, so texi-langutils generates a .po of node and
+section names; this .po file is used to translate the section titles
+in the HTML generated docs.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Advanced notation
@chapter Advanced notation
@menu
* Text scripts::
+* Text and line spanners::
* Text spanners::
* Text marks::
* Text markup::
UNTRANSLATED NODE: IGNORE ME
+@node Text and line spanners
+@subsection Text and line spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Text spanners
@subsection Text spanners
UNTRANSLATED NODE: IGNORE ME
+@include markup-commands.tely
@node Font selection
@subsection Font selection
@menu
* Polymetric notation::
* Time administration::
-* Proportional notation::
+* Proportional notation (introduction)::
* Clusters::
* Special noteheads::
* Feathered beams::
UNTRANSLATED NODE: IGNORE ME
-@node Proportional notation
-@subsection Proportional notation
+@node Proportional notation (introduction)
+@subsection Proportional notation (introduction)
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@funindex ,
L'octave précise peut être spécifiée sous forme d'une série
-d'apostrophes (`@samp{'}') ou d'une série de virgules
-(`@samp{,}'). Chaque @code{'} hausse la note d'une octave ; chaque
-@code{,} baisse la note d'une octave.
+d'apostrophes @samp{'} ou d'une série de virgules @samp{,}. Chaque
+@samp{'} hausse la note d'une octave, chaque @samp{,} baisse la note
+d'une octave.
@lilypond[quote,ragged-right,fragment,verbatim]
\clef treble
@end lilypond
LilyPond interprète l'entrée @code{d e f} comme @qq{imprimer un ré
-naturel, un mi naturel et un fa naturel} sans tenir compte de
+naturel, un mi naturel et un fa naturel}, sans tenir compte de
l'armure. Pour plus d'information à propos de la distinction entre le
contenu musical et sa représentation, voir @ref{Accidentalas and key signatures}.
Normalement, les altérations sont imprimées automatiquement, mais il
se peut que vous vouliez les imprimer manuellement. On peut forcer
l'impression d'une altération , dite @qq{de précaution}, en ajoutant un
-point d'exclamation `@samp{!}' après la hauteur de note. Une
+point d'exclamation @samp{!} après la hauteur de note. Une
altération entre parenthèses peut être obtenue en ajoutant un point
-d'interrogation `@samp{?}' après la hauteur de note. Ces signes
+d'interrogation @samp{?} après la hauteur de note. Ces signes
peuvent aussi être utilisés pour imprimer des bécarres.
@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
@c Oh, and should this be made into a multitable?
@cindex note names, other languages)
@example
- Note Names sharp flat
+ Noms de note dièse bémol
nederlands.ly c d e f g a bes b -is -es
english.ly c d e f g a bf b -s/-sharp -f/-flat
- -x (double)
+ -x (double)
deutsch.ly c d e f g a b h -is -es
norsk.ly c d e f g a b h -iss/-is -ess/-es
svenska.ly c d e f g a b h -iss -ess
@end example
@noindent
-or
+ou
@example
\relative @var{musicexpr}
Les signes de changement d'octaves @code{'} et @code{,} peuvent être
ajoutés pour hausser ou baisser la note d'une octave supplémentaire.
-Lorsque l'on entre en mode \relative, une hauteur absolue de départ
+Lorsque l'on entre en mode @code{\relative}, une hauteur absolue de départ
peut être spécifiée, et agira dès lors comme si elle précédait la
première note de @var{musicexpr}. Si aucune hauteur de départ n'est
spécifiée, le do central sert de point de départ.
Voici le mode \relative en action.
@lilypond[quote,fragment,ragged-right,verbatim]
\relative c'' {
- b c d c b c bes a
+ b c d c b c bes a
}
@end lilypond
@lilypond[quote,ragged-right,fragment,verbatim]
\relative c'' {
- c g c f, c' a, e''
+ c g c f, c' a, e''
}
@end lilypond
@lilypond[quote,ragged-right,fragment,verbatim]
\relative c' {
- c <c e g>
- <c' e g>
- <c, e' g>
+ c <c e g>
+ <c' e g>
+ <c, e' g>
}
@end lilypond
@noindent
le @code{d} générera un avertissement, puisqu'on attend un @code{d''}
-(il n'y a qu'une tierce entre @code{b'} et @code{d''}), mais qu'on
-obtient un @code{d'}. Sur la partition, l'octave sera corrigée pour
-donner un @code{d''} et la prochaine note sera calculée en fonction de
-@code{d''} plutôt que @code{d'}.
+mais qu'on obtient un @code{d'} --- il n'y a qu'une tierce entre
+@code{b'} et @code{d''}. Sur la partition, l'octave sera corrigée
+pour donner un @code{d''} et la prochaine note sera calculée en
+fonction de @code{d''} au lieu de @code{d'}.
Il existe aussi une vérification d'octave sans changement visible en
sortie, avec cette syntaxe :
\octave @var{pitch}
@end example
-Cette commande vérifie que @var{pitch} (sans apostrophes ou virgules)
+Cette commande vérifie que @var{pitch} (sans apostrophe ni virgule)
donne @var{pitch} (avec apostrophes ou virgules) dans le mode
@code{\relative} comparé à la note donnée dans la commande
@code{\relative}. Sinon, un avertissement est émis et l'octave est
@example
\relative c' @{
- e
- \octave a'
- \octave b'
+ e
+ \octave a'
+ \octave b'
@}
@end example
@lilypond[quote,ragged-right,verbatim,fragment]
\relative c' {
- e
- \octave b
- a
+ e
+ \octave b
+ a
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
mus = { \key d \major cis d fis g }
\new Staff {
- \clef "F" \mus
- \clef "G"
- \transpose c g' \mus
- \transpose c f' \mus
+ \clef "F" \mus
+ \clef "G"
+ \transpose c g' \mus
+ \transpose c f' \mus
}
@end lilypond
Les pauses d'une mesure complète, qui sont placées au centre de la
mesure, doivent être entrées comme des mesures de silences. Elles
peuvent être utilisées pour une seule mesure comme pour plusieurs, et
-leur utilisation est expliquée dans la section @ref{Multi measure
-rests}.
+leur utilisation est expliquée dans la section
+@ref{Multi measure rests}.
Pour spécifier explicitement la position verticale d'un silence,
écrivez une note suivie de @code{\rest}. Un silence sera placé à la
@funindex \skip
@funindex s
-Un silence invisible (que l'on pourrait appeler un @qq{saut}) peut être
-entré comme une note avec le nom de note `@samp{s}' ou avec
-@code{\skip @var{duration}}
+Un silence invisible --- que l'on pourrait appeler un @qq{saut} ---
+peut être entré comme une note avec le nom de note `@samp{s}' ou avec
+@code{\skip @var{durée}}
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
a4 a4 s4 a4 \skip 1 a4
@lilypond[quote,ragged-right,verbatim]
<<
- \relative { a'2 a2 }
- \new Lyrics \lyricmode { \skip 2 bla2 }
+ \relative { a'2 a2 }
+ \new Lyrics \lyricmode { \skip 2 bla2 }
>>
@end lilypond
@lilypond[quote]
\score {
\relative c'' {
- a\breve*1/2 \autoBeamOff
- a1 a2 a4 a8 a16 a32 a64 a64
- \bar "empty"
- \break
- r\longa*1/4 r\breve *1/2
- r1 r2 r4 r8 r16 r32 r64 r64
- }
- \layout {
- ragged-right = ##t
- indent=0\mm
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
- \context {
- \Staff
- \remove "Clef_engraver"
- \override StaffSymbol #'transparent = ##t
- \override TimeSignature #'transparent = ##t
- \override BarLine #'transparent = ##t
- \consists "Pitch_squash_engraver"
- }
- }
+ a\breve*1/2 \autoBeamOff
+ a1 a2 a4 a8 a16 a32 a64 a64
+ \bar "empty"
+ \break
+ r\longa*1/4 r\breve *1/2
+ r1 r2 r4 r8 r16 r32 r64 r64
+ }
+ \layout {
+ ragged-right = ##t
+ indent=0\mm
+ \context {
+ \Score
+ \remove "Bar_number_engraver"
+ }
+ \context {
+ \Staff
+ \remove "Clef_engraver"
+ \override StaffSymbol #'transparent = ##t
+ \override TimeSignature #'transparent = ##t
+ \override BarLine #'transparent = ##t
+ \consists "Pitch_squash_engraver"
+ }
+ }
}
@end lilypond
la même façon.
@lilypond[quote,ragged-right,fragment,verbatim]
-a'4 b' c''4. b'8 a'4. b'4.. c''8.
+a'4 b' c''4. b'8 a'4. b'4.. c''8.
@end lilypond
@refcommands
@seealso
-Référence du programme : @internalsref{Dots}, and @internalsref{DotColumn}.
+Référence du programme : @internalsref{Dots}, @internalsref{DotColumn}.
@node Tuplets
@cindex triplets
@funindex \times
-Les n-olets (comme les triolets, quintolets, etc.) sont obtenus en
+Les nolets --- triolets, quintolets, etc. --- sont obtenus en
multipliant toutes les durées d'une expression musicale par une
fraction.
@noindent
La durée de @var{musicexpr} sera multipliée par la fraction. Le
dénominateur de la fraction sera imprimé au-dessus des notes,
-optionnellement avec un crochet. Le n-olet le plus courant est le
+optionnellement avec un crochet. Le nolet le plus courant est le
triolet, dans lequel 3 notes ont la durée de 2, et où les notes durent
donc 2/3 de leur valeur écrite.
g'4 \times 2/3 {c'4 c' c'} d'4 d'4
@end lilypond
-Les n-olets peuvent être imbriqués ; par exemple,
+Les nolets peuvent être imbriqués ; par exemple,
@lilypond[fragment,ragged-right,verbatim,relative=2]
\override TupletNumber #'text = #tuplet-number::calc-fraction-text
\times 4/6 {
- a4 a
- \times 3/5 { a a a a a }
+ a4 a
+ \times 3/5 { a a a a a }
}
@end lilypond
@code{tuplet-number::calc-fraction-text}, la fraction entière
@var{num}:@var{den} sera imprimée à la place.
-Pour éviter d'imprimer les chiffres des n-olets, utilisez
+Pour éviter d'imprimer les chiffres des nolets, utilisez
@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
@end lilypond
-Les crochets de n-olets peuvent aller jusqu'aux prémisses de la mesure
+Les crochets de nolets peuvent aller jusqu'aux prémisses de la mesure
suivante, ou à la prochaine note.
@lilypond[ragged-right]
\new RhythmicStaff {
- \set tupletFullLength = ##t
- \time 4/4
- \times 4/5 {
- c4 c1
- }
- \set tupletFullLengthNote = ##t
- \time 2/4
- \times 2/3 {
- c4 c c
- }
- \time 3/4
- c4
+ \set tupletFullLength = ##t
+ \time 4/4
+ \times 4/5 {
+ c4 c1
+ }
+ \set tupletFullLengthNote = ##t
+ \time 2/4
+ \times 2/3 {
+ c4 c c
+ }
+ \time 3/4
+ c4
}
@end lilypond
@seealso
Référence du programme : @internalsref{TupletBracket},
-@internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
+@internalsref{TupletNumber}, @internalsref{TimeScaledMusic}.
Exemples: @inputfileref{input/@/regression,tuplet@/-nest@/.ly}.
@subsection Scaling durations
Vous pouvez altérer la durée des notes en lui joignant une fraction
-@var{N/M}, donnant @q{@code{*}@var{N/M}} (ou @q{@code{*}@var{N}} si
-@var{M=1}). Ceci n'affectera pas l'apparence des notes ou silences
+@var{N/M}, donnant @q{@code{*}@var{N/M}} --- ou @q{@code{*}@var{N}} si
+@var{M=1}. Ceci n'affectera pas l'apparence des notes ou silences
produits.
Dans l'exemple suivant, les trois premières notes prennent exactement
@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
\new Voice \with {
- \remove "Note_heads_engraver"
- \consists "Completion_heads_engraver"
+ \remove "Note_heads_engraver"
+ \consists "Completion_heads_engraver"
} {
- c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
+ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
}
@end lilypond
@refbugs
Bien que toutes les durées (particulièrement celles contenant des
-n-olets) ne puissent pas être représentées exactement avec des notes
-normales et des points, le graveur n'insèrera pas de n-olets.
+nolets) ne puissent pas être représentées exactement avec des notes
+normales et des points, le graveur n'insèrera pas de nolets.
-@code{Completion_heads_engraver} affecte seulement les notes; il ne
+@code{Completion_heads_engraver} affecte seulement les notes, il ne
divise pas les silences.
@seealso
@lilypond[quote,verbatim,fragment]
\new Staff \relative c' {
- c16 d e f
- <<
- { g4 f e | d2 e2 } \\
- { r8 e4 d c8 ~ | c b16 a b8 g ~ g2 } \\
- { s2. | s4 b4 c2 }
- >>
+ c16 d e f
+ <<
+ { g4 f e | d2 e2 } \\
+ { r8 e4 d c8 ~ | c b16 a b8 g ~ g2 } \\
+ { s2. | s4 b4 c2 }
+ >>
}
@end lilypond
-Le séparateur permet aux @internalsref{Voice} contexts@footnote{Ces
-voix polyphoniques sont parfois appelées @qq{couches ou calques} dans
-d'autres logiciels de notation.
+Le séparateur permet aux contextes @internalsref{Voice}@footnote{Ces
+voix polyphoniques sont parfois appelées @qq{couches} ou @qq{calques} dans
+d'autres logiciels de notation.}
@cindex layers
d'être identifiées. Elles portent les noms @code{"1"}, @code{"2"},
etc. Dans chacun de ces contextes, la direction verticale des
-liaisons, hampes, etc. est réglée de manière appropriée.
+liaisons, hampes, etc. sont réglées de manière appropriée.
Ces voix sont toutes séparées de la voix qui contient les notes en
dehors de la construction @code{<< \\ >>}. Cela doit être pris en
@lilypond[quote,verbatim,fragment]
\new Staff \relative c' {
- \override NoteHead #'style = #'cross
- c16 d e f
- <<
- { g4 f e } \\
- { \override NoteHead #'style = #'triangle
- r8 e4 d c8 ~ }
- >> |
- <<
- { d2 e2 } \\
- { c8 b16 a b8 g ~ g2 } \\
- { \override NoteHead #'style = #'slash s4 b4 c2 }
- >>
+ \override NoteHead #'style = #'cross
+ c16 d e f
+ <<
+ { g4 f e } \\
+ { \override NoteHead #'style = #'triangle
+ r8 e4 d c8 ~ }
+ >> |
+ <<
+ { d2 e2 } \\
+ { c8 b16 a b8 g ~ g2 } \\
+ { \override NoteHead #'style = #'slash s4 b4 c2 }
+ >>
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
- \override NoteHead #'style = #'cross
- c16 d e f
- \voiceOne
- <<
- { g4 f e | d2 e2 }
- \new Voice="1" { \voiceTwo
- r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
- \oneVoice
- }
- \new Voice { \voiceThree
- s2. | s4 b4 c2
- \oneVoice
- }
- >>
- \oneVoice
+ \override NoteHead #'style = #'cross
+ c16 d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2 }
+ \new Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ \oneVoice
+ }
+ \new Voice { \voiceThree
+ s2. | s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
}
@end lilypond
La définition correcte des voix permet à la mélodie d'être liée.
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
- c16^( d e f
- \voiceOne
- <<
- { g4 f e | d2 e2) }
- \context Voice="1" { \voiceTwo
- r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
- \oneVoice
- }
- \new Voice { \voiceThree
- s2. s4 b4 c2
- \oneVoice
- }
- >>
- \oneVoice
+ c16^( d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2) }
+ \context Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ \oneVoice
+ }
+ \new Voice { \voiceThree
+ s2. s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
- c16^( d e f
- \voiceOne
- <<
- { g4 f e | d2 e2) }
- \context Voice="1" { \voiceTwo
- r8 e4 d c8 ~ |
- <<
- {c8 b16 a b8 g ~ g2}
- \new Voice { \voiceThree
- s4 b4 c2
- \oneVoice
- }
- >>
- \oneVoice
- }
- >>
- \oneVoice
+ c16^( d e f
+ \voiceOne
+ <<
+ { g4 f e | d2 e2) }
+ \context Voice="1" { \voiceTwo
+ r8 e4 d c8 ~ |
+ <<
+ {c8 b16 a b8 g ~ g2}
+ \new Voice { \voiceThree
+ s4 b4 c2
+ \oneVoice
+ }
+ >>
+ \oneVoice
+ }
+ >>
+ \oneVoice
}
@end lilypond
@subsection Collision Resolution
D'ordinaire, les têtes de notes pointées et non-pointées ne sont pas
-fusionnées, mais lorsque la propriété d'objet
-@code{merge-differently-dotted} est définie dans l'objet
-@internalsref{NoteCollision}, elles se trouvent fusionnées :
+fusionnées, mais lorsque la propriété @code{merge-differently-dotted}
+de l'objet @internalsref{NoteCollision} est définie, elles se trouvent
+fusionnées :
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice << {
- g8 g8
- \override Staff.NoteCollision
- #'merge-differently-dotted = ##t
- g8 g8
+ g8 g8
+ \override Staff.NoteCollision
+ #'merge-differently-dotted = ##t
+ g8 g8
} \\ { g8.[ f16] g8.[ f16] } >>
@end lilypond
De même, vous pouvez fusionner une tête de blanche avec une tête de
-croche, en définissant
-@code{merge-differently-headed}
+croche, en définissant @code{merge-differently-headed}
+
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\new Voice << {
c8 c4.
@lilypond[quote,verbatim,ragged-right]
\relative <<
{
- <d g>
- <d g>
+ <d g>
+ <d g>
} \\ {
- <b f'>
- \once \override NoteColumn #'force-hshift = #1.7
- <b f'>
+ <b f'>
+ \once \override NoteColumn #'force-hshift = #1.7
+ <b f'>
} >>
@end lilypond
collisions sont
@internalsref{NoteCollision} et @internalsref{RestCollision}.
-Exemples :
-@inputfileref{input/@/regression,collision@/-dots@/.ly},
-@inputfileref{input/@/regression,collision@/-head-chords@/.ly},
-@inputfileref{input/@/regression,collision@/-heads@/.ly},
-@inputfileref{input/@/regression,collision@/-mesh@/.ly}, et
-@inputfileref{input/@/regression,collisions@/.ly}.
-
@refbugs
@lilypond[quote,ragged-right,verbatim]
{
- \set Staff.clefGlyph = #"clefs.F"
- \set Staff.clefPosition = #2
- c'4
- \set Staff.clefGlyph = #"clefs.G"
- c'4
- \set Staff.clefGlyph = #"clefs.C"
- c'4
- \set Staff.clefOctavation = #7
- c'4
- \set Staff.clefOctavation = #0
- \set Staff.clefPosition = #0
- c'4
- \clef "bass"
- c'4
- \set Staff.middleCPosition = #4
- c'4
+ \set Staff.clefGlyph = #"clefs.F"
+ \set Staff.clefPosition = #2
+ c'4
+ \set Staff.clefGlyph = #"clefs.G"
+ c'4
+ \set Staff.clefGlyph = #"clefs.C"
+ c'4
+ \set Staff.clefOctavation = #7
+ c'4
+ \set Staff.clefOctavation = #0
+ \set Staff.clefPosition = #0
+ c'4
+ \clef "bass"
+ c'4
+ \set Staff.middleCPosition = #4
+ c'4
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\score {
- \relative c'' {
- #(set-time-signature 9 8 '(2 2 2 3))
- g8[ g] d[ d] g[ g] a8[( bes g]) |
- #(set-time-signature 5 8 '(3 2))
- a4. g4
- }
- \layout {
- \context {
- \Staff
- \consists "Measure_grouping_engraver"
- }
- }
+ \relative c'' {
+ #(set-time-signature 9 8 '(2 2 2 3))
+ g8[ g] d[ d] g[ g] a8[( bes g]) |
+ #(set-time-signature 5 8 '(3 2))
+ a4. g4
+ }
+ \layout {
+ \context {
+ \Staff
+ \consists "Measure_grouping_engraver"
+ }
+ }
}
@end lilypond
être entrées avec la commande
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e | a2. c,4 | b2
+\partial 16*5 c16 cis d dis e | a2. c,4 | b2
@end lilypond
La syntaxe de cette commande est
@example
-\partial @var{duration}
+\partial @var{durée}
@end example
-@code{duration} étant la valeur rythmique devant être ajoutée avant la
+@code{durée} étant la valeur rythmique devant être ajoutée avant la
mesure suivante.
Le programme traduit cette commande en
@example
-\set Timing.measurePosition = -@var{length of duration}
+\set Timing.measurePosition = -@var{durée}
@end example
@refbugs
-Cette commande de prend pas en compte les petites notes (appogiatures,
-accacciatures) au début de la musique. Lorsqu'un morceau commence par
+Cette commande ne prend pas en compte les notes d'agrément ou
+appogiatures au début de la musique. Lorsqu'un morceau commence par
une levée faite de petites notes, la commande @code{\partial} devrait
être placée après celles-ci.
@lilypond[quote,ragged-right,fragment,verbatim]
<<
- \new StaffGroup <<
- \new Staff {
- e'4 d'
- \bar "||"
- f' e'
- }
- \new Staff { \clef bass c4 g e g }
- >>
- \new Staff { \clef bass c2 c2 }
+ \new StaffGroup <<
+ \new Staff {
+ e'4 d'
+ \bar "||"
+ f' e'
+ }
+ \new Staff { \clef bass c4 g e g }
+ >>
+ \new Staff { \clef bass c2 c2 }
>>
@end lilypond
Dans ce manuel : @ref{Repeats}, @ref{System start delimiters}.
-Référence du programme : @internalsref{BarLine} (created at
-@internalsref{Staff} level), @internalsref{SpanBar} (across staves).
+Référence du programme : @internalsref{BarLine} (faisant partie du
+contexte @internalsref{Staff}), @internalsref{SpanBar} (sur plusieurs
+portées).
D'autres exemples : @inputfileref{input/@/test,bar@/-lines@/.ly},
@lilypond[verbatim,ragged-right,quote]
\new GrandStaff
\relative <<
- \new Staff { c1 c }
- \new Staff { c c }
+ \new Staff { c1 c }
+ \new Staff { c c }
>>
@end lilypond
@lilypond[verbatim,ragged-right,quote]
\new StaffGroup
\relative <<
- \new Staff { c1 c }
- \new Staff { c c }
+ \new Staff { c1 c }
+ \new Staff { c c }
>>
@end lilypond
@lilypond[verbatim,ragged-right,quote]
\new ChoirStaff
\relative <<
- \new Staff { c1 c }
- \new Staff { c c }
+ \new Staff { c1 c }
+ \new Staff { c c }
>>
@end lilypond
@lilypond[verbatim,ragged-right,quote]
\relative <<
- \new Staff { c1 c }
- \new Staff { c c }
+ \new Staff { c1 c }
+ \new Staff { c c }
>>
@end lilypond
@end itemize
@end lilypond
-@c Does any French translator have any clue
-@c about how to tranlate this ?
Cette manière de procéder peut être utilisée pour introduire des
-qq{Ossias} dans des partitions à portées discontinues @qq{à la française},
+@qq{ossias} dans des partitions à nombre de portées variable,
comme sur l'exemple suivant :
@cindex ossia
D'autres exemples : @inputfileref{input/@/test,staff@/-lines@/.ly},
@inputfileref{input/@/test@/,ossia.ly},
@inputfileref{input/@/test,staff@/-size@/.ly},
-@inputfileref{input/@/regression,staff@/-line@/-positions@/.ly}.
-
+@lsr{staff,staff-line-positions.ly}
@node Writing music in parallel
@subsection Writing music in parallel
@lilypond[quote,fragment,verbatim]
\parallelMusic #'(voiceA voiceB) {
- r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
- c'2 c'2 |
- r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
- c'2 c'2 |
+ r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
+ c'2 c'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 \new Voice \voiceA
+ \new Staff \new Voice \voiceB
>>
@end lilypond
@lilypond[quote,fragment,ragged-right]
-\time 3/4 c'2. c'2 ~ c'4
+\time 3/4 c'2. c'2 ~ c'4
@end lilypond
@noindent
@lilypond[fragment,quote,ragged-right]
\relative {
- r8 c8 ~ c2 r4 | r8^"et non pas" c2 ~ c8 r4
+ r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
}
@end lilypond
@funindex \repeatTie
-Lorsque l'indication "2." d'une reprise commence sur une note liée, la
+Lorsque l'indication @q{2.} d'une reprise commence sur une note liée, la
liaison doit être répétée. C'est à cela que sert la commande
@code{\repeatTie}.
Les liaisons de tenues servent parfois à rendre un accord arpégé. Dans
ce cas, les notes liées ne sont pas toutes l'une contre l'autre. Il
-faut alors définir comme vraie ("t" pour "true") la propriété
+faut alors définir comme vraie (@q{t} pour @q{true}) la propriété
@code{tieWaitForNote}. Cette même méthode peut servir, par exemple, Ã
lier un trémolo à un accord :
-@lilypond[fragment,verbatim,relative=1,ragged-right]
+@lilypond[fragment,verbatim,relative=1,ragged-right,quote]
\set tieWaitForNote = ##t
\grace { c16[~ e~ g]~ } <c, e g>2
\repeat "tremolo" 8 { c32~ c'~ } <c c,>1
Référence du programme : @internalsref{Tie}.
-D'autres exemples :
-@inputfileref{input/@/regression,tie-arpeggio.ly}
-@inputfileref{input/@/regression,tie-manual.ly}
-
-
@refbugs
Certains auteurs utilisent deux liaisons lorsqu'ils veulent
lier des accords. Dans LilyPond, il faut pour cela définir comme
-vraie ("true") la propriété @code{doubleSlurs} :
+vraie (@q{true}) la propriété @code{doubleSlurs} :
@lilypond[verbatim,ragged-right,relative,fragment,quote]
\set doubleSlurs = ##t
@cindex Ties, laissez vibrer
-Les liaisons de "Laissez Vibrer" (L.V.) sont utilisées pour
+Les liaisons @qq{Laissez vibrer} (L.V.) sont utilisées pour
le piano, la harpe, et certains instruments de percussion. Elles
indiquent à l'instrumentiste de laisser sonner la note au lieu de
l'étouffer. Cet effet s'obtient avec la commande
@internalsref{LaissezVibrerTieColumn}
D'autres exemples :
-@inputfileref{input/regression,laissez-vibrer-tie.ly}
-
+@lsr{connecting,laissez-vibrer-ties.ly}
@node Automatic beams
@subsection Automatic beams
-LilyPond décide lui-même de la manière de grouper les notes et
-d'imprimer les ligatures :
+LilyPond décide automatiquement de la manière de grouper les notes et
+d'imprimer les ligatures
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
+\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
@end lilypond
-
-Cependant lorsque ces décisions ne sont pas satisfaisantes, il est
+Lorsque ces décisions ne sont pas satisfaisantes, il est
possible de préciser quels groupements l'ont veut, ou même de définir
des séquences de groupements en lieu et place des groupements
par défaut. Voir @ref{Setting automatic beam behavior}
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
{
- r4 r8[ g' a r8] r8 g[ | a] r8
+ r4 r8[ g' a r8] r8 g[ | a] r8
}
@end lilypond
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
{
- f8[ r16
- f g a]
- f8[ r16
- \set stemLeftBeamCount = #1
- f g a]
+ f8[ r16
+ f g a]
+ f8[ r16
+ \set stemLeftBeamCount = #1
+ f g a]
}
@end lilypond
Lorsqu'une ligature entre des notes franchit une barre de mesure,
le retour à la ligne est en principe interdit à cet endroit.
-Ce comportement peut être changé en définissant @code{allowBeamBreak}
-comme vrai.
+Ce comportement peut être changé en définissant @code{breakable}.
-@funindex allowBeamBreak
+@funindex breakable
@cindex beams and line breaks
@cindex beams, kneed
@cindex kneed beams
@lilypond[quote,ragged-right]
<<
- \relative c''{
- c4 \grace c16 c4 \grace {
- c16[ d16] } c2 c4
- }
- \new Lyrics \lyricmode {
- \override LyricText #'font-family = #'typewriter
-
- \markup { (0,0) } 4
- \grace { \markup {
- ( \fraction 1 4 , \fraction -1 16 ) } 16 }
- \markup { (\fraction 1 4 , 0 ) } 4
- \grace {
- \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
- \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
- }
- \markup { ( \fraction 2 4 , 0 ) }
- }
+ \relative c''{
+ c4 \grace c16 c4 \grace {
+ c16[ d16] } c2 c4
+ }
+ \new Lyrics \lyricmode {
+ \override LyricText #'font-family = #'typewriter
+
+ \markup { (0,0) } 4
+ \grace { \markup {
+ ( \fraction 1 4 , \fraction -1 16 ) } 16 }
+ \markup { (\fraction 1 4 , 0 ) } 4
+ \grace {
+ \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
+ \markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
+ }
+ \markup { ( \fraction 2 4 , 0 ) }
+ }
>>
@end lilypond
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
<< \new Staff { e4 \grace { c16[ d e f] } e4 }
- \new Staff { c4 \grace { g8[ b] } c4 } >>
+ \new Staff { c4 \grace { g8[ b] } c4 } >>
@end lilypond
@funindex \afterGrace
Les petites notes se placent alors à 3/4 de la durée de la note
réelle. Cet espacement peut être changé en définissant
-@code{afterGraceFraction} ; ainsi :
+@code{afterGraceFraction} ; ainsi,
@example
afterGraceFraction = #(cons 7 8)
@end example
@noindent
-
-placera la petite note à 7/8èmes de la note réelle.
-
+placera la petite note à 7/8 de la note réelle.
On peut obtenir le même effet manuellement, de la façon suivante :
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\new Voice {
- << { d1^\trill_( }
- { s2 \grace { c16[ d] } } >>
- c4)
+ << { d1^\trill_( }
+ { s2 \grace { c16[ d] } } >>
+ c4)
}
@end lilypond
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\new Voice {
- \acciaccatura {
- \stemDown
- f16->
- \stemNeutral
- }
- g4
+ \acciaccatura {
+ \stemDown
+ f16->
+ \stemNeutral
+ }
+ g4
}
@end lilypond
@noindent
-
Tous les réglages ajoutés doivent également être désactivés dans cette
même section.
@commonprop
-Les petites notes peuvent être obligées à s'espacer
-de manière fluctuante.
+Il est possible de forcer un espacement fluctuant des notes d'agrément.
@lilypond[relative=2,ragged-right]
<<
- \override Score.SpacingSpanner #'strict-grace-spacing = ##t
- \new Staff {
- c'4
- \afterGrace
- c'4
- { c'16[ c'8 c'16] }
- c'4
- }
- \new Staff {
- c'16[ c'16 c'16 c'16]
- c'16[ c'16 c'16 c'16]
- c'4
- }
+ \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+ \new Staff {
+ c'4
+ \afterGrace
+ c'4
+ { c'16[ c'8 c'16] }
+ c'4
+ }
+ \new Staff {
+ c'16[ c'16 c'16 c'16]
+ c'16[ c'16 c'16 c'16]
+ c'4
+ }
>>
@end lilypond
@refbugs
-
Une partition commençant par une section @code{\grace} doit faire
intervenir la commande @code{\new Voice}, sans quoi la note réelle et
la petite note se retrouveront sur des portées différentes.
@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
<< \new Staff { e4 \bar "|:" \grace c16 d4 }
- \new Staff { c4 \bar "|:" d4 } >>
+ \new Staff { c4 \bar "|:" d4 } >>
@end lilypond
@noindent
La commande @{\thumb} peut être utilisée pour indiquer, par exemple
dans une partition de violoncelle, si une note doit être jouée
-avec le pouce (en anglais "thumb") :
+avec le pouce (@q{thumb} en anglais) :
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
<a_\thumb a'-3>8 <b_\thumb b'-3>
Référence du programme : @internalsref{Fingering}.
-D'autres exemples : @inputfileref{input/@/regression,finger@/-chords@/.ly}.
+D'autres exemples : @lsr{expressive,fingering-chords.ly}.
@node Dynamics
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\set hairpinToBarline = ##f
-c4\< c2. c4\!
+c4\< c2. c4\!
@end lilypond
-
+@c VERIF sens de soufflet
On peut avoir recours à l'indication @code{\espressivo} pour
indiquer un @qq{soufflet} --- crescendo puis decrescendo --- sur
une seule note.
Des crescendos ou decrescendos @qq{al niente} peuvent être indiqués
-de manière graphique, en définissant comme vraie (lettre "t") la
+de manière graphique, en définissant comme vraie (lettre @q{t}) la
propriété @code{circled-tip}, ce qui affiche un cercle à leur
extrémité.
On peut même ajouter ses propres indications textuelles :
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-\set crescendoText = \markup { \italic "cresc. poco" }
+\set crescendoText = \markup { \italic "cresc. poco" }
\set crescendoSpanner = #'dashed-line
a'2\< a a a\!\mf
@end lilypond
@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
c'4
\override BreathingSign #'text
- = #(make-musicglyph-markup "scripts.rvarcomma")
+ = #(make-musicglyph-markup "scripts.rvarcomma")
\breathe
d4
@end lilypond
@lilypond[verbatim,ragged-right,relative=2,quote,fragment]
\new Voice {
- << { c1 \startTrillSpan }
- { s2. \grace { d16[\stopTrillSpan e] } } >>
- c4 }
+ << { c1 \startTrillSpan }
+ { s2. \grace { d16[\stopTrillSpan e] } } >>
+ c4 }
@end lilypond
@cindex Pitched trills
Un glissando relie une hauteur à une autre en passant par chaque
-hauteur intermédiaire. Il est indiqué graphiquement, par une ligne
-ou des vaguelettes entre ces deux notes. On l'obtient en
-accolant la commande @code{\glissando} à la première note.
+hauteur intermédiaire. Il est indiqué graphiquement, par une ligne ou
+des vaguelettes entre ces deux notes. On l'obtient en accolant la
+commande @code{\glissando} à la première note.
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
c2\glissando c'
Référence du programme : @internalsref{Glissando}.
-D'autres exemples : @file{input/@/regression/@/glissando@/.ly}.
+D'autres exemples : @lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}.
@refbugs
@end lilypond
-Le sens de l'arpège est parfois indiqué, par une flêche suivant la
+Le sens de l'arpège est parfois indiqué, par une flèche suivant la
vaguelette :
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new Voice {
- \arpeggioUp
- <c e g c>\arpeggio
- \arpeggioDown
- <c e g c>\arpeggio
+ \arpeggioUp
+ <c e g c>\arpeggio
+ \arpeggioDown
+ <c e g c>\arpeggio
}
@end lilypond
@commonprop
-
Quand un arpège se lit sur plusieurs portées, il est possible
d'indiquer l'arpège sur chacune des portées, puis de relier la
ligne de vaguelettes en définissant comme vraie la propriété
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new PianoStaff <<
- \set PianoStaff.connectArpeggios = ##t
- \new Staff { <c' e g c>\arpeggio }
- \new Staff { \clef bass <c,, e g>\arpeggio }
+ \set PianoStaff.connectArpeggios = ##t
+ \new Staff { <c' e g c>\arpeggio }
+ \new Staff { \clef bass <c,, e g>\arpeggio }
>>
@end lilypond
@refbugs
-
-Il est impossible de méler au même moment, dans un contexte
+Il est impossible de mêler au même moment, dans un contexte
@internalsref{PianoStaff}, des lignes d'arpèges
connectées et d'autres non connectées.
joués dans le rendu MIDI.
@item percent
-Pour répéter des temps ou des mesures, sous forme de signes
-"pourcentage". Ceux-ci, par défaut, ne seront pas joués dans le rendu
+Pour répéter des temps ou des mesures, sous forme de signes de
+pourcentage. Ceux-ci, par défaut, ne seront pas joués dans le rendu
MIDI. Les répétitions indiquées par ces symboles doivent être
déclarées dans un contexte @code{Voice}.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\new Staff {
- \partial 4
- \repeat volta 4 { e | c2 d2 | e2 f2 | }
- \alternative { { g4 g g } { a | a a a a | b2. } }
+ \partial 4
+ \repeat volta 4 { e | c2 d2 | e2 f2 | }
+ \alternative { { g4 g g } { a | a a a a | b2. } }
}
@end lilypond
@lilypond[verbatim,ragged-right,quote]
\relative c''{
- \time 3/4
- c c c
- \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
- \repeat "volta" 5 { d d d }
- \alternative { { e e e f f f }
- { g g g } }
+ \time 3/4
+ c c c
+ \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
+ \repeat "volta" 5 { d d d }
+ \alternative { { e e e f f f }
+ { g g g } }
}
@end lilypond
D'autres exemples :
-
Les crochets précédant une reprise s'impriment d'ordinaire
seulement au-dessus de la portée du haut. On peut ajuster cela
-en définissant la propriété @code{voltaOnThisStaff} : voir @inputfileref{input/@/regression,volta@/-multi@/-staff@/.ly}.
-
+en définissant la propriété @code{voltaOnThisStaff} : voir
+@lsr{repeats,volta@/-multi@/-staff@/.ly}
@refbugs
@cindex repeat, ambiguous
-Des reprises enchâssées telles que :
+Des reprises enchassées telles que
@example
\repeat @dots{}
@cindex expanding repeats
@funindex \unfoldRepeats
-
Au prix de quelques réglages, les reprises de toutes sortes peuvent
être rendues dans le fichier MIDI. Il suffit pour cela d'avoir
recours à la fonction @code{\unfoldRepeats}, qui rend toutes les
@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
\unfoldRepeats {
- \repeat tremolo 8 {c'32 e' }
- \repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
- \alternative {
- { g' a' a' g' }
- {f' e' d' c' }
- }
+ \repeat tremolo 8 {c'32 e' }
+ \repeat percent 2 { c''8 d'' }
+ \repeat volta 2 {c'4 d' e' f'}
+ \alternative {
+ { g' a' a' g' }
+ {f' e' d' c' }
+ }
}
\bar "|."
@end lilypond
le rendu MIDI, il faut établir deux blocs @code{\score} : un pour le
MIDI, avec des reprises explicites, et l'autre pour la partition, avec
des reprises notées sous forme de barres de reprises, de trémolos ou
-de symboles "pourcentage". Par exemple :
+de symboles de pourcentage. Par exemple
@example
\score @{
- @var{..music..}
+ @var{..musique..}
\layout @{ .. @}
@}
\score @{
- \unfoldRepeats @var{..music..}
+ \unfoldRepeats @var{..musique..}
\midi @{ .. @}
@}
@end example
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
c4
- \set Score.repeatCommands = #'((volta "93") end-repeat)
+ \set Score.repeatCommands = #'((volta "93") end-repeat)
c4 c4
- \set Score.repeatCommands = #'((volta #f))
+ \set Score.repeatCommands = #'((volta #f))
c4 c4
@end lilypond
commande @code{\repeat} suivie du style de trémolo désiré :
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
- \repeat "tremolo" 8 { c16 d16 }
- \repeat "tremolo" 4 { c16 d16 }
- \repeat "tremolo" 2 { c16 d16 }
+ \repeat "tremolo" 8 { c16 d16 }
+ \repeat "tremolo" 4 { c16 d16 }
+ \repeat "tremolo" 2 { c16 d16 }
}
@end lilypond
Référence du programme : @internalsref{Beam}, @internalsref{StemTremolo}.
-D'autres exemples : @inputfileref{input/@/regression,chord@/-tremolo@/.ly},
-@inputfileref{input/@/regression,stem@/-tremolo@/.ly}.
-
@node Tremolo subdivisions
@subsection Tremolo subdivisions
@refbugs
-
Les trémolos entrés de cette manière ne sont pas rendus dans
le fichier MIDI.
@seealso
+Dans ce manuel : @ref{Tremolo repeats}.
-Dans ce même Manuel : @ref{Tremolo repeats}.
-
-Autre part : @internalsref{StemTremolo}.
+Référence du programme : @internalsref{StemTremolo}.
@node Measure repeats
@cindex percent repeats
@cindex measure repeats
-
Le style de reprises @code{percent} sert à répéter une
séquence de notes. Elle sera imprimée une fois, puis remplacée par
un symbole spécial. Les séquences d'une ou deux mesures sont
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
- \repeat "percent" 4 { c4 }
- \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
+ \repeat "percent" 4 { c4 }
+ \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
}
@end lilypond
-
Les répétitions de plus de 2 mesures sont surmontées d'un compteur,
-si l'on définit comme vraie (lettre "t") la propriété
+si l'on définit comme vraie (lettre @q{t}) la propriété
@code{countPercentRepeats}.
@lilypond[relative=2,fragment,quote,verbatim,ragged-right]
\new Voice {
\set countPercentRepeats = ##t
- \repeat "percent" 4 { c1 }
+ \repeat "percent" 4 { c1 }
}
@end lilypond
-
-Des symboles de pourcentage isolés peuvent aussi être obtenus, au moyen d'un silence multi-mesures dont on modifie l'aspect :
-
+Des symboles de pourcentage isolés peuvent aussi être obtenus, au
+moyen d'un silence multi-mesures dont on modifie l'aspect :
@lilypond[fragment,verbatim,quote]
\override MultiMeasureRest #'stencil
- = #ly:multi-measure-rest::percent
+ = #ly:multi-measure-rest::percent
R1
@end lilypond
-
-
@seealso
Référence du programme : @internalsref{RepeatSlash},
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Changing defaults
@chapter Changing defaults
* Layout tunings within contexts::
* Changing context default settings::
* Defining new contexts::
-* Aligning contexts::
+* Aligning contexts::
@end menu
-
@node Contexts explained
@subsection Contexts explained
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Cheat sheet
@appendix Cheat sheet
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0d9d3feea8ca1b22388bd1c67545a518987e72f1
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Converting from other formats
@chapter Converting from other formats
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@quotation
+Nous souhaitons dédier ce programme à tous les amis que nous avons
+rencontrés par la musique.
+
+Han-Wen et Jan
+@end quotation
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Instrument-specific notation
@chapter Instrument-specific notation
UNTRANSLATED NODE: IGNORE ME
+@subsubsection Adding stanza numbers
+@subsubsection Adding dynamics marks
+@subsubsection Adding singer names
+@subsubsection Printing stanzas at the end
+@subsubsection Printing stanzas at the end in multiple columns
@node Ambitus
@subsection Ambitus
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 94e27fe2da58c91791e1cacb32c16a4acccf0638
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
Les
@emph{@ref{Templates}}
de pièces LilyPond. Copiez et collez un modèle
-dans un fichier, ajouter les notes, et c'est prêt!
+dans un fichier, ajouter les notes, et c'est prêt !
@item
La
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node LilyPond-book
-@chapter @command{lilypond-book}: Integrating text and music
+@chapter
UNTRANSLATED NODE: IGNORE ME
* Invoking lilypond-book::
* Filename extensions::
* Many quotes of a large score::
-* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into OpenOffice.org::
* Inserting LilyPond output into other programs::
@end menu
@node An example of a musicological document
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@ifnottex
Ce fichier documente GNU LilyPond.
-Copyright @copyright{} 1999--2006 by the authors
+Copyright @copyright{} 1999--2007 par les auteurs
@quotation
Permission is granted to copy, distribute and/or modify this document
@top GNU LilyPond --- The music typesetter
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.10.x.
+Ce document est le manuel de l'utilisateur pour GNU LilyPond 2.11.x.
@ifhtml
(Allez au bas de la page pour voir le numéro de version exact).
@end ifhtml
@uref{http://@/www@/.lilypond@/.org/}. Ce site contient des copies en
ligne de ce manuel, ainsi qu'une documentation supplémentaire.
-@ignore
@include dedication.itely
-@end ignore
@menu
Manuel d'apprentissage
Manuel de référence
* Basic notation:: notation musicale standard.
-* Instrument-specific notation:: notation spécifique à un instrument.
+* Instrument-specific notation:: notation spécifique à des instruments.
* Advanced notation:: notation plus rarement utilisée.
* Changing defaults:: retoucher la mise en forme.
* Non-musical notation:: aspects autres que la notation musicale.
* Literature list:: ouvrages de référence sur la notation musicale.
* Scheme tutorial:: programmer au sein de LilyPond.
* Notation manual tables:: tables et diagrammes.
-* Example templates:: modèles prêts à l'emploi.
+* Templates:: modèles prêts à l'emploi.
* Cheat sheet:: résumé de la syntaxe de LilyPond.
* GNU Free Documentation License:: licence de ce document.
* LilyPond command index::
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Literature list
@appendix Literature list
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; -*-
+@c FIXME: rearranged this file; macros that don't depend on the output
+@c format should go at the beginning. -gp
+
+@c in retrospect this is _not_ one of the output-insensitive macros.
+@c I'll fix it soon.
+@c usage: @lsr{ancient,custodes.ly}
+@macro lsr{DIR,NAME}
+@uref{source/input/lsr/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}
+@end macro
+
+@macro lsrdir{DIR}
+@uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}}
+@end macro
+
@ifnottex
@macro texisharp {word}
#
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Non-musical notation
@chapter Non-musical notation
@menu
* File structure (introduction)::
-* Multiple scores in a book::
-* Extracting fragments of notation::
* File structure::
* A single music expression::
+* Multiple scores in a book::
+* Extracting fragments of notation::
* Including LilyPond files::
* Text encoding::
@end menu
UNTRANSLATED NODE: IGNORE ME
-@node Multiple scores in a book
-@subsection Multiple scores in a book
+@node File structure
+@subsection File structure
UNTRANSLATED NODE: IGNORE ME
-@node Extracting fragments of notation
-@subsection Extracting fragments of notation
+@node A single music expression
+@subsection A single music expression
UNTRANSLATED NODE: IGNORE ME
-@node File structure
-@subsection File structure
+@node Multiple scores in a book
+@subsection Multiple scores in a book
UNTRANSLATED NODE: IGNORE ME
-@node A single music expression
-@subsection A single music expression
+@node Extracting fragments of notation
+@subsection Extracting fragments of notation
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Notation manual tables
@appendix Notation manual tables
* MIDI instruments::
* List of colors::
* The Feta font::
+* Note head styles::
@end menu
@node Chord name chart
@appendixsec Chord name chart
UNTRANSLATED NODE: IGNORE ME
+@node Note head styles
+@appendixsec Note head styles
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Interfaces for programmers
@chapter Interfaces for programmers
* Mathematics in functions::
* Void functions::
* Functions without arguments::
+* Overview of available music functions::
@end menu
@node Overview of music functions
@subsection Overview of music functions
UNTRANSLATED NODE: IGNORE ME
+@node Overview of available music functions
+@subsection Overview of available music functions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@include identifiers.tely
@node Programmer interfaces
@section Programmer interfaces
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@chapter Putting it all together
Ce chapitre traite des principes généraux de LilyPond, et de
-la manière de créer des blocs @code{\score} @footnote{Le terme @qq{score} signifie partition en anglais.}.
+la manière de créer des blocs @code{\score} @footnote{Le terme @q{score} signifie partition en anglais.}.
@menu
Commencez par le modèle qui vous semblera le plus proche de ce à quoi
vous voulez aboutir. Disons par exemple que vous voulez écrire une pièce
-pour soprano et violoncelle : dans ce cas l'on pourrait commencer par
-@qq{Notes and lyrics}, pour la partie de soprano.
+pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les
+@qq{notes et paroles}, pour la partie de soprano.
@example
-\version "2.10.10"
+\version "2.11.20"
melodie = \relative c' @{
\clef treble
\key c \major
@end example
Maintenant, on veut ajouter une partie de violoncelle.
-Jetons un coup d'oeil sur l'exemple @qq{Notes only} :
+Jetons un coup d'oeil sur l'exemple avec les notes seules :
@example
-\version "2.10.10"
+\version "2.11.20"
melodie = \relative c' @{
\clef treble
\key c \major
On n'a pas besoin de deux commandes @code{\version}. Ce dont on a besoin,
c'est la section @code{melodie}. De même, on n'a pas besoin de deux sections
-@code{\score} -- si nous les gardions toutes les deux, on obtiendrait deux
+@code{\score} --- si nous les gardions toutes les deux, on obtiendrait deux
parties séparées ; mais nous voulons un vrai duo, avec les deux parties ensemble.
Dans la section @code{\score}, on n'a pas besoin non plus de deux @code{\layout}
ou de deux @code{\midi}.
le veut l'usage, et donnons-lui d'autres notes.
@example
-\version "2.10.10"
+\version "2.11.20"
musiqueSoprano = \relative c' @{
\clef treble
\key c \major
@end example
Voilà qui est mieux, mais la partie de violoncelle n'apparaît pas sur
-la partition -- en effet, nous ne l'avons pas utilisée dans la section
+la partition --- en effet, nous ne l'avons pas utilisée dans la section
@code{\score}. Si l'on veut que la partie de violoncelle s'imprime sous
la partie de soprano, on va devoir ajouter :
@noindent
en dessous de tout ce qui concerne la soprano. Il nous faut également
encadrer la musique par des @code{<<} et @code{>>}, qui feront comprendre
-à LilyPond que plusieurs évènements -- ici, des objets @code{Staff} --
+à LilyPond que plusieurs évènements --- ici, des objets @code{Staff} ---
se déroulent en même temps. Le bloc @code{\score} ressemble maintenant Ã
-ceci :
@example
\score@{
soprano et violoncelle au complet :
@lilypond[quote,verbatim,ragged-right]
-\version "2.10.10"
-musiqueSoprano = \relative c' {
+\version "2.11.15"
+sopranoMusic = \relative c' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
-parolesSoprano = \lyricmode {
- Laaa Siii Dooo Rééé
+sopranoLyrics = \lyricmode {
+ Aaa Bee Cee Dee
}
-musiqueVioloncelle = \relative c {
+celloMusic = \relative c {
\clef bass
\key c \major
\time 4/4
\score{
<<
<<
- \new Voice = "voixUn" {
+ \new Voice = "one" {
\autoBeamOff
- \musiqueSoprano
+ \sopranoMusic
}
- \new Lyrics \lyricsto "voixUn" \parolesSoprano
+ \new Lyrics \lyricsto "one" \sopranoLyrics
>>
- \new Staff \musiqueVioloncelle
+ \new Staff \celloMusic
>>
\layout { }
\midi { }
la simplicité au détriment de certains détails. Vous trouverez une
description plus complète dans @ref{File structure}.
-La plupart des exemples de ce manuel sont de courts fragments, par exemple :
+La plupart des exemples de ce manuel sont de courts fragments, par exemple
@example
c4 a b c
@end example
La plupart des exemples font aussi intervenir la commande
-@code{\relative}, suivie de @code{c'} ou @code{c''}. Elle
-n'est pas à proprement parler nécessaire pour le traitement
-des exemples, mais dans la plupart des cas le résultat sera
-vraiment déplorable si vous l'oubliez.
+@code{\relative}, suivie de @code{c'} ou @code{c''}. Elle n'est pas Ã
+proprement parler nécessaire pour le traitement des exemples, mais
+dans la plupart des cas le résultat sera vraiment déplorable si vous
+l'oubliez.
@lilypond[quote,fragment,ragged-right,verbatim]
\relative c'' {
}
@end lilypond
-C'est ici que nous entamons les choses sérieuses :
-le code LilyPond, sous cette forme, est en réalité
-un @emph{autre} raccourci. Même s'il est traité sans
-problème, et aboutit au bon résultat, c'est une forme
+C'est ici que nous entamons les choses sérieuses : le code LilyPond,
+sous cette forme, est en réalité un @emph{autre} raccourci. Même s'il
+est traité sans problème, et aboutit au bon résultat, c'est une forme
abrégée de :
@example
@}
@end example
-Un bloc @code{\score} doit commencer par une et une seule
-expression musicale. Rappelez-vous que cette expression
-peut être ce que vous voulez, entre une note toute seule et
-un gigantesque
+Un bloc @code{\score} doit commencer par une et une seule expression
+musicale. Rappelez-vous que cette expression peut être ce que vous
+voulez, d'une note toute seule à un gigantesque
@example
@{
\new GrandStaff <<
- collez ici la partition complète de votre opéra Wagnérien préféré
+ collez ici la partition complète de votre opéra de Wagner préféré
>>
@}
@end example
Dès lors que tout cela est entre accolades : @code{@{ ... @}}, c'est
une et une seule expression musicale.
-Le bloc @code{\score} peut contenir d'autres éléments, tels que :
+Le bloc @code{\score} peut contenir d'autres éléments, tels que
@example
\score @{
@noindent
Certains préfèrent mettre ces commandes en dehors du bloc
-@code{\score} -- par exemple, on met souvent le @code{\header}
+@code{\score} --- par exemple, on met souvent le @code{\header}
au-dessus. C'est juste là une autre forme abrégée que LilyPond
accepte.
@cindex indentifiers
Une autre abréviation pratique est la possibilité de définir
-des variables -- également appelées "identificateurs". Dans tous
+des variables --- également appelées @qq{identificateurs}. Dans tous
les modèles, vous trouverez :
@example
@}
@end example
-Lorsque LilyPond examinera ce fichier, il va prendre la
-valeur de la variable @{melodie}, c'est-Ã -dire tout ce qui suit
-le signe @code{=}, et l'insérer partout où il tombera sur
-@code{\melodie}. Vous êtes libre de choisir comment dénommer
-vos variables@footnote{Les noms de variables sont sensibles aux capitales
-et minuscules, et ne peuvent contenir ni chiffres, ni tirets,
-ni caractères accentués.} ; ce peut être @code{melodie}, @code{global},
-@code{maindroitepiano}, ou @code{laTeteAToto}. Pour plus de détails,
-voir @ref{Saving typing with identifiers and functions}.
+Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la
+variable @{melodie}, c'est-Ã -dire tout ce qui suit le signe @code{=},
+et l'insérer partout où il tombera sur @code{\melodie}. Vous êtes
+libre de choisir comment dénommer vos variables@footnote{Les noms de
+variables sont sensibles à la casse, et ne peuvent contenir ni
+chiffres, ni tirets, ni caractères accentués.} ; ce peut être
+@code{melodie}, @code{global}, @code{maindroitepiano}, ou
+@code{laTeteAToto}. Pour plus de détails, voir @ref{Saving typing
+with identifiers and functions}.
Pour une description complète du format des fichiers d'entrée, voir
@ref{File structure}.
Peut-être serait-il judicieux de relire la section
@ref{Music expressions explained}, dans laquelle vous avez
appris à construire de grandes expressions musicales petit bout
-par petit bout -- nous avons vu les notes, puis les accords, etc.
+par petit bout --- nous avons vu les notes, puis les accords, etc.
Maintenant, nous allons partir d'une grande expression musicale,
et redescendre la pente.
\score @{
@{ % cette accolade marque le début de l'expression musicale
\new GrandStaff <<
- insérez ici votre opéra Wagnérien préféré
+ insérez ici votre opéra de Wagner préféré
>>
@} % cette accolade marque la fin de l'expression musicale
\layout @{ @}
@}
@end example
-Un opéra de Wagner multiplierait aisément la longueur de ce manuel
-par deux ou trois, alors faisons ça en version chant/piano. On n'a
-plus besoin d'une partition d'orchestre -- @code{GrandStaff} -- donc
+Un opéra de Wagner multiplierait facilement la longueur de ce manuel
+par deux ou trois, alors faisons-le en version chant/piano. On n'a
+plus besoin d'une partition d'orchestre --- @code{GrandStaff} --- donc
laissons cela de côté. Par contre, un chanteur et un piano
@emph{pourraient} nous être utiles.
@}
@end example
-On y voit nettement plus clair maintenant. Nous voici
-donc avec la partie du chanteur, qui contient un ensemble
-@code{Voice}, ce qui dans LilyPond correspond à une voix, au
-sens de vois musicale, pas forcément chantée donc (ce pourrait être
-une partie de violon par exemple).
+On y voit nettement plus clair maintenant. Nous voici donc avec la
+partie du chanteur, qui contient un ensemble @code{Voice}, ce qui dans
+LilyPond correspond à une voix, au sens de voix d'une polyphonie plutôt que
+de voix chantée --- ce pourrait être une partie de violon par
+exemple.
Nous avons également une partie de piano, qui contient deux portées :
une pour la main droite, une autre pour la main gauche.
-À ce point, on pourrait commencer à ajouter les notes. Dans
-les accolades qui suivent @code{\new Voice = chant}, on pourrait
-commencer à écrire
+À ce point, on pourrait commencer à ajouter les notes. Dans les
+accolades qui suivent @code{\new Voice = chant}, on pourrait commencer
+à écrire
@example
\relative c'' @{
@end example
Mais si l'on procédait ainsi, la section @code{\score} deviendrait
-vite plutôt touffue, et il serait très tôt difficile de s'y retrouver.
+vite assez touffue, et très rapidement on ne s'y retrouverait plus.
C'est pourquoi on utilisera plutôt des variables, ou identificateurs :
@example
@end example
@noindent
-Souvenez-vous que vous pouvez désigner vos variables du
-nom que vous voulez, à condition de respecter les caractères
-autorisés. Ces limitations sont décrites dans
-@ref{File structure}.
+Souvenez-vous que vous pouvez donner aux variables le nom que vous
+voulez, à condition de respecter les caractères autorisés. Ces
+limitations sont décrites dans @ref{File structure}.
-Quand on écrit, ou que l'on lit, une section @code{\score},
-mieux vaut y aller lentement et soigneusement. Commencez
-par le niveau le plus large, puis travaillez sur chaque
-niveau plus détaillé. Cela aide vraiment, à ce propos,
-d'avoir une indentation stricte et propre : assurez-vous que
-chaque élément d'un même niveau a le même décalage horizontal
-dans votre éditeur de texte !
+Quand on écrit, ou que l'on lit, une section @code{\score}, mieux vaut
+y aller lentement et soigneusement. Commencez par le niveau le plus
+large, puis travaillez sur chaque niveau plus détaillé. À ce propos,
+une indentation stricte et propre est vraiment d'une aide précieuse :
+assurez-vous que chaque élément d'un même niveau a le même décalage
+horizontal dans votre éditeur de texte !
@}
@end example
-À La ligne
+À la ligne
@example
\include "musique-Cor.ly"
@end lilypond
Dans les pièces d'ensemble, il arrive souvent qu'une voix ne joue pas
-pendant plusieurs mesures. Un silence spécial, appelé multi-mesures,
+pendant plusieurs mesures. Un silence spécial, appelé silence multi-mesures,
l'indique alors. On l'obtient par un @samp{R} majuscule, suivi d'une
-durée : (@code{1}@tie{} est une pause, @code{2}@tie{} une demi-pause,
+durée : @code{1}@tie{}pour une pause, @code{2}@tie{}pour une demi-pause,
etc. Cette durée peut être multipliée pour établir de plus longs silences.
Par exemple, le silence suivant dure 3@tie{}mesures à 2/4.
@end example
Dans une partie séparée, les silences multi-mesures sont compressés.
-Il faut pour cela définir comme vraie la propriété @code{skipBars} :
+Il faut pour cela définir la propriété @code{skipBars} à @q{vrai} :
@example
\set Score.skipBars = ##t
@end example
@noindent
-Cette commande définie comme vraie ("true", lettre "t") la propriété dans
-le contexte @code{Score}. Si l'on ajoute dans la musique ci-dessus
-le silence multi-mesures et cette option, on obtient le résultat suivant :
+Cette commande donne la valeur @q{vrai} --- @q{true} en anglais,
+@samp{#t} dans le langage Scheme --- à cette propriété dans le
+contexte @code{Score}. Si l'on ajoute dans la musique ci-dessus le
+silence multi-mesures et cette option, on obtient le résultat suivant :
@lilypond[quote,ragged-right]
\transpose f c' \relative c {
Le conducteur rassemble toute la musique. Si l'on suppose que l'autre
voix de notre duo se trouve dans le fichier @file{musique-Basson.ly} en
-tant que variable @code{notesBasson}, on établira un conducteur avec :
+tant que variable @code{notesBasson}, on établira un conducteur avec
@example
\include "musique-Basson.ly"
>>
@end lilypond
-Des informations plus détaillées sur la mise en place de conducteurs et
-de parties séparées se trouvent dans le manuel : voir @ref{Orchestral music}.
+Des informations plus détaillées sur la mise en place de conducteurs
+et de parties séparées se trouvent dans le manuel : voir
+@ref{Orchestral music}.
-Les propriétés réglables (@q{properties}) sont abordées en détail dans
+Les variables (@q{propriétés}) réglables sont abordées en détail dans
@ref{Changing context properties on the fly}.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Running LilyPond
@chapter Running LilyPond
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Scheme tutorial
@appendix Scheme tutorial
UNTRANSLATED NODE: IGNORE ME
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Spacing issues
@chapter Spacing issues
@menu
* Paper and pages::
* Music layout::
+* Displaying spacing::
+* Breaks::
* Vertical spacing::
* Horizontal spacing::
-* Breaks::
-* Displaying spacing::
-@end menu
-
+@end menu
@node Paper and pages
@section Paper and pages
@menu
* Paper size::
* Page formatting::
-@end menu
-
+@end menu
@node Paper size
@subsection Paper size
UNTRANSLATED NODE: IGNORE ME
@menu
-* Setting global staff size::
+* Setting the staff size::
* Score layout::
@end menu
-@node Setting global staff size
-@subsection Setting global staff size
+@node Setting the staff size
+@subsection Setting the staff size
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@node Displaying spacing
+@section Displaying spacing
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Breaks
+@section Breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Line breaking::
+* Page breaking::
+* Optimal page breaking::
+* Optimal page turning::
+* Explicit breaks::
+* Using an extra voice for breaks::
+@end menu
+@node Line breaking
+@subsection Line breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaking
+@subsection Page breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Optimal page breaking
+@subsection Optimal page breaking
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Optimal page turning
+@subsection Optimal page turning
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Explicit breaks
+@subsection Explicit breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Using an extra voice for breaks
+@subsection Using an extra voice for breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Vertical spacing
@section Vertical spacing
@menu
* Vertical spacing inside a system::
-* Vertical spacing of piano staves::
* Vertical spacing between systems::
-* Controlling spacing of individual systems::
+* Explicit staff and system positioning::
* Two-pass vertical spacing::
+* Vertical collision avoidance::
@end menu
@node Vertical spacing inside a system
@subsection Vertical spacing inside a system
UNTRANSLATED NODE: IGNORE ME
-@node Vertical spacing of piano staves
-@subsection Vertical spacing of piano staves
-
-UNTRANSLATED NODE: IGNORE ME
-
@node Vertical spacing between systems
@subsection Vertical spacing between systems
UNTRANSLATED NODE: IGNORE ME
-@node Controlling spacing of individual systems
-@subsection Controlling spacing of individual systems
+@node Explicit staff and system positioning
+@subsection Explicit staff and system positioning
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@node Vertical collision avoidance
+@subsection Vertical collision avoidance
+
+UNTRANSLATED NODE: IGNORE ME
+
@node Horizontal spacing
@section Horizontal Spacing
* New spacing area::
* Changing horizontal spacing::
* Line length::
+* Proportional notation::
@end menu
@node Horizontal spacing overview
@subsection Horizontal spacing overview
UNTRANSLATED NODE: IGNORE ME
-@node Breaks
-@section Breaks
-
-UNTRANSLATED NODE: IGNORE ME
-
-@menu
-* Line breaking::
-* Page breaking::
-* Optimal page breaking::
-* Optimal page turning::
-@end menu
-@node Line breaking
-@subsection Line breaking
-
-UNTRANSLATED NODE: IGNORE ME
-
-@node Page breaking
-@subsection Page breaking
-
-UNTRANSLATED NODE: IGNORE ME
-
-@node Optimal page breaking
-@subsection Optimal page breaking
+@node Proportional notation
+@subsection Proportional notation
UNTRANSLATED NODE: IGNORE ME
-@node Optimal page turning
-@subsection Optimal page turning
-
-UNTRANSLATED NODE: IGNORE ME
-
-@node Displaying spacing
-@section Displaying spacing
-
-UNTRANSLATED NODE: IGNORE ME
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Templates
@appendix Templates
@appendixsubsec SATB vocal score
@appendixsubsec SATB vocal score and automatic piano reduction
+@appendixsubsec SATB with aligned contexts
@node Ancient notation templates
@appendixsec Ancient notation templates
@appendixsubsec LaTeX
@appendixsubsec Texinfo
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
Notez que le premier démarrage peut prendre une minute ou deux, car
toutes les polices système doivent être d'abord analysées.
-À l'avenir, vous aurez certainement recours aux commandes @qq{ Nouveau
-} ou @qq{ Ouvrir }. Vous devez enregistrer votre fichier avant de
-lancer la création de la partition. Si une erreur advient pendant le
-traitement, vous la trouverez dans la fenêtre @qq{ log }.
+À l'avenir, vous aurez certainement recours aux commandes @qq{Nouveau}
+ou @qq{Ouvrir}. Vous devez enregistrer votre fichier avant de lancer
+la création de la partition. Si une erreur advient pendant le
+traitement, vous la trouverez dans la fenêtre @qq{log}.
@subsubheading Windows
@code{\relative}. Avec ce mode, l'@rglos{interval} entre la note et
celle qui la précède est supposé inférieur ou égal à une
@rglos{fourth}. Commençons par entrer la partition la plus
-élémentaire qui soit, une (@rglos{scale}).
+élémentaire qui soit, une @rglos{scale}.
@lilypond[quote,ragged-right,verbatim]
\relative c' {
@end lilypond
La note de départ est @rglos{middle C}. Chacune des notes qui suivent
-est à moins d'une quarte de la note précédente -- en d'autres termes,
-le premier @samp{c} est le Do dit "du milieu", entre la clé de Sol et
-la clé de Fa, puis est suivi par le ré le plus proche, et ainsi de
-suite. On peut bien sûr créer des mélodies d'intervalles plus étendus
-:
+est à moins d'une quarte de la note précédente --- en d'autres termes,
+le premier @samp{c} est le do central, entre la clé de sol et
+la clé de sa, puis est suivi par le ré le plus proche, et ainsi de
+suite. On peut bien sûr créer des mélodies d'intervalles plus étendus :
@lilypond[quote,ragged-right,verbatim]
\relative c' {
@noindent
Comme vous l'aurez remarqué, cet exemple ne commence plus sur le do du
-milieu. La première note -- le @samp{d} -- est le ré qui en est le
+milieu. La première note --- le @samp{d} --- est le ré qui en est le
plus proche.
Pour ajouter des intervalles supérieurs à une quarte, il suffit
@end lilypond
@noindent
-Pour envoyer une note deux octaves (ou davantage !) plus haut ou plus
-bas, il suffit de mettre plusieurs @code{''} ou plusieurs @code{,,} --
+Pour déplacer une note deux octaves (ou davantage !) plus haut ou plus
+bas, il suffit de mettre plusieurs @code{''} ou plusieurs @code{,,} ---
attention cependant à bien mettre deux apostrophes @code{''}, et non
-deux guillemets @code{"}@tie{}! C'est de cette même manière que l'on
+un guillemet @code{"}@tie{}! C'est de cette même manière que l'on
peut modifier la valeur de départ de @code{\relative c'}.
@subheading Rests
-On saisit un (@rglos{rest}) tout comme une note, mais avec le
+On saisit un @rglos{rest} tout comme une note, mais avec le
caractère @samp{r}.
@lilypond[quote,ragged-right,verbatim]
@subheading Time signature
-Le @rglos{time signature}) peut être défini à l'aide de la commande
+Le @rglos{time signature} peut être défini à l'aide de la commande
@code{\time} :
@lilypond[quote,ragged-right,verbatim]
située à une quarte au plus de la note précédente.
Lilypond tient compte des intervalles induits par les noms des notes
--- en d'autres termes,une quarte augmentée n'est @emph{pas}
+--- en d'autres termes, une quarte augmentée n'est @emph{pas}
équivalente à une quinte diminuée. Ainsi, si l'on part d'un Do, un Fa
dièse sera placé au-dessus, tandis qu'un Sol bémol sera placé
au-dessous.
@moreinfo
@quotation
@table @asis
-@item Les Octaves Relatives
+@item Les hauteurs de note relatives
voir @ref{Relative octaves}.
@item Les vérifications d'octaves
voir @ref{Octave check}.
@subheading Accidentals
-Dans la notation par défaut,un dièse (@rglos{sharp}) s'obtient en
-ajoutant @samp{is} au nom de la
-note, et un bémol (@rglos{flat}) en ajoutant @samp{es}. Comme vous pouvez
-vous y attendre, un double dièse ou double bémol est alors obtenu en
-ajoutant @samp{isis} ou @samp{eses}@footnote{Cette syntaxe est dérivée
-de la convention de dénomination des notes dans les langues nordiques
-et germaniques, comme l'allemand ou le hollandais.}.
+Dans la notation par défaut, un @rglos{sharp} s'obtient en ajoutant
+@samp{is} au nom de la note, et un @rglos{flat} en ajoutant @samp{es}.
+Comme vous pouvez vous y attendre, un double dièse ou double bémol est
+alors obtenu en ajoutant @samp{isis} ou @samp{eses}@footnote{Cette
+syntaxe est dérivée de la convention de dénomination des notes dans
+les langues nordiques et germaniques, comme l'allemand ou le
+hollandais.}.
@c DIV specific
Cependant, si vous utilisez la commande @samp{\include "italiano.ly"}
-pour entrer
-les noms de notes français au lieu des noms hollandais, il faudra
-ajouter un @samp{d} pour un dièse, et un @samp{b} pour un bémol. Le
-double dièse et le double bémol s'obtiennent en ajoutant
+pour entrer les noms de notes français au lieu des noms hollandais, il
+faudra ajouter un @samp{d} pour un dièse, et un @samp{b} pour un
+bémol. Le double dièse et le double bémol s'obtiennent en ajoutant
respectivement @samp{dd} et @samp{bb}
@c END DIV
@subheading Warning: key signatures and pitches
La combinaison de l'armure et des hauteurs de note --- y compris les
-altérations --- permet à LilyPond de déterminer dans quel cas afficher les
-altérations accidentelles. L'armure n'affecte que les altérations
+altérations --- permet à LilyPond de déterminer dans quel cas afficher
+les altérations accidentelles. L'armure n'affecte que les altérations
@emph{imprimées}, et non les hauteurs réelles ! Cette fonctionnalité
-est souvent source de
-confusion pour les nouveaux utilisateurs, aussi expliquons-la en
-détail.
+est souvent source de confusion pour les nouveaux utilisateurs, aussi
+expliquons-la en détail.
LilyPond fait une nette distinction entre le contenu musical et la
-mise en forme. L'altération d'une note -- bémol, bécarre ou dièse --
-fait partie de sa hauteur, et relève donc du contenu musical. La
-présence ou non
-d'une altération accidentelle -- un @emph{signe} bémol, bécarre ou
-dièse -- devant la note correspondante est une question qui relève de la mise en
-page. Mettre en page une partition se fait selon des règles ; les
-altérations accidentelles seront donc automatiquement imprimées suivant
-ces règles. Les hauteurs de note, en revanche, relèvent de ce que
-vous voulez entendre ; et, dans la mesure où la musique que vous
-entrez est censée être celle que vous voulez entendre, LilyPond (qui
-n'est chargé que de la gravure) ne les choisira pas à votre place.
+mise en forme. L'altération d'une note --- bémol, bécarre ou dièse
+--- fait partie de sa hauteur, et relève donc du contenu musical. La
+présence ou non d'une altération accidentelle --- un @emph{signe}
+bémol, bécarre ou dièse --- devant la note correspondante est une
+question qui relève de la mise en page. Mettre en page une partition
+se fait selon des règles ; les altérations accidentelles seront donc
+automatiquement imprimées suivant ces règles. Les hauteurs de note,
+en revanche, relèvent de ce que vous voulez entendre ; et, dans la
+mesure où la musique que vous entrez est censée être celle que vous
+voulez entendre, LilyPond (qui n'est chargé que de la gravure) ne les
+choisira pas à votre place.
Dans cet exemple,
@sp 1
@cindex slurs versus ties
-@subheading Warnings: slurs vs. ties
+@subheading Warnings: slurs vs. ties
Une liaison d'articulation ou de phrasé ressemble à une liaison de
tenue, mais n'a pas la même signification. Alors qu'une liaison de
@moreinfo
@quotation
@table @asis
-@item Ponctuations
+@item Articulations
voir @ref{Articulations}.
@item Doigtés
voir @ref{Fingering instructions}.
{ a4 g4 }
@end lilypond
-Placer une séquence d'expressions musicales -- des notes par exemple
--- entre accolades signifie qu'elles doivent être jouées
+Placer une séquence d'expressions musicales --- des notes par exemple
+--- entre accolades signifie qu'elles doivent être jouées
successivement, les unes après les autres. Le résultat est une
expression, qui peut elle-même être regroupée séquentiellement avec
d'autres expressions. Ici, l'expression de l'exemple précédent est
Ceci est une suite d'expressions, où chacune est contenue dans la
suivante. Les expressions les plus simples sont les nombres, et de
plus grandes expressions sont produites en combinant des expressions
-avec des opérateurs -- comme @samp{+}, @samp{*} et @samp{/} -- et des
+avec des opérateurs --- comme @samp{+}, @samp{*} et @samp{/} --- et des
parenthèses. Tout comme les expressions mathématiques, les expressions
musicales peuvent être imbriquées avec une profondeur arbitraire, ce
qui est nécessaire pour de la musique complexe comme des partitions
La commande @code{\new} introduit un « contexte de notation ». Un
contexte de notation est un environnement dans lequel les événements
-musicaux -- comme les notes ou les commandes @code{\clef} -- sont
+musicaux --- comme les notes ou les commandes @code{\clef} --- sont
interprétés. Pour des pièces simples, ces contextes sont créés
automatiquement. Pour des pièces plus complexes, il est préférable de
spécifier explicitement les contextes. Cela assure que chaque
@cindex cross staff voice, manual
La musique pour piano s'écrit sur deux portées reliées par une
accolade. Imprimer ce type de portée revient au même que dans
-l'exemple de musique polyphonique de (@ref{Multiple staves}), mais
+l'exemple de musique polyphonique de @ref{Multiple staves}, mais
maintenant cette expression entière doit être interprétée dans un
contexte @code{PianoStaff} :
@cindex chords
Des accords peuvent être produits en entourant les hauteurs de notes
-par des angles gauche et droit -- @samp{<} et @samp{>} --
+par des angles gauche et droit --- @samp{<} et @samp{>} ---
@lilypond[quote,fragment,verbatim,relative=2,fragment]
r4 <c e g>4 <c f a>2
@node Songs
@section Songs
-Cette section présente l'écriture vocale, et les partitions de variété.
+Cette section présente l'écriture vocale et les partitions de variété.
@menu
* Printing lyrics::
@node Final touches
@section Final touches
-Voici l'ultime section de ce tutoriel, qui montre comment ajouter la
-touche finale à des morceaux simples, et sert d'introduction pour le
-reste du Manuel.
+L'ultime section de ce tutoriel montre comment ajouter la touche
+finale à des morceaux simples, et consititue une introduction au reste
+du manuel.
@menu
* Version number::
@cindex versioning
La déclaration @code{\version} stipule le numéro de la version de
LilyPond pour laquelle le fichier a été écrit. Pour donner à un
-fichier la version 2.10.0, ajoutez
+fichier la version 2.11.20, ajoutez
@example
-\version "2.10.1"
+\version "2.11.20"
@end example
@noindent
Cette annotation permet de faciliter les prochaines mises à jour de
LilyPond. Les changements dans la syntaxe sont gérés avec un
-programme spécial, @file{convert-ly} -- voir @ref{Updating files with
-convert-ly} -- et il utilise @code{\version} pour déterminer les
+programme spécial, @file{convert-ly} --- voir @ref{Updating files with
+convert-ly} --- et il utilise @code{\version} pour déterminer les
règles de conversion à appliquer au fichier.
de fichier.
@example
-\version "2.10.1"
+\version "2.11.20"
\header @{
title = "Symphonie"
composer = "Moi"
@end lilypond
Si d'aventure vous faites une erreur d'octaviation, le mode
-@code{\relative} la rendra frappante -- toutes les notes suivantes
+@code{\relative} la rendra frappante --- toutes les notes suivantes
seront placées à la mauvaise octave. En mode de hauteurs absolues,
une erreur isolée ne serait pas aussi visible, et donc aussi facile Ã
dénicher.
@subsection After the tutorial
Après avoir parcouru ce tutoriel, vous devriez vous essayer à écrire
-un morceau ou deux. Commencez par copier l'un des modèles types
-(@ref{Templates}) et ajoutez-y des notes. Si vous voulez employer une
-notation que vous n'avez pas trouvé dans le tutoriel, consultez la
-référence de notation, en commençant par la @ref{Basic notation}. Si
-vous désirez écrire pour un ensemble instrumental non couvert par les
-@ref{Example templates}, lisez la section @ref{Extending the
-templates}.
+un morceau ou deux. Commencez par copier l'un des @ref{Templates}
+types et ajoutez-y des notes. Si vous voulez employer une notation
+que vous n'avez pas trouvé dans le tutoriel, consultez la référence de
+notation, en commençant par la @ref{Basic notation}. Si vous désirez
+écrire pour un ensemble instrumental non couvert par les
+@ref{Templates}, lisez la section @ref{Extending the templates}.
Après avoir écrit quelques pièces courtes, lisez les chapitres 3 à 5
du manuel d'apprentissage. Rien ne s'oppose à ce que vous consultiez
Si vous ne vous y retrouvez toujours pas pour savoir quel code
LilyPond produit précisément tel ou tel exemple, consultez la version
-HTML de ce manuel (si ce n'est pas déjà le cas), et cliquez sur
-l'image de la partition. La source exacte utilisée pour générer ce
-manuel s'affichera alors.
+HTML de ce manuel si ce n'est pas déjà le cas, et cliquez sur l'image
+de la partition. La source exacte utilisée pour générer ce manuel
+s'affichera alors.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+ Translation of GIT committish: d56aa8181857c5feabf303ae88e716eba069f0a9
+
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
@node Tweaking output
@chapter Tweaking output
@section Avoiding tweaks with slower processing
UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0bf1e119501727ab8217767d8ce6c29dedf4fed1
+ Translation of GIT committish: b40f25ec7472b855483b5eb9126747bfb9487fe1
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@itemize @bullet
@item @strong{Ajoutez le numéro de version dans chaque fichier}.
Notez que chaque fichier modèle contient une ligne @code{\version
-"2.10.10"}. Nous vous conseillons fortement d'inclure cette ligne,
+"2.11.15"}. Nous vous conseillons fortement d'inclure cette ligne,
même pour de petits fichiers. Par expérience, il est très difficile
de se rappeler quelle version de LilyPond on utilisait quelques
années auparavant. L'utilitaire @code{convert-ly} demande que vous
@item @strong{Ajoutez des commentaires}. Utilisez soit des
numéros de mesure (assez souvent), soit des références au contenu
-musical (@q{second thème des violons,} @q{quatrième variation,} etc.).
+musical --- @qq{second thème des violons}, @qq{quatrième variation}, etc.
Vous pouvez ne pas avoir besoin des commentaires lorsque vous écrivez
une pièce pour la première fois, mais si vous souhaitez y revenir deux
ou trois ans plus tard pour changer quelque chose, ou si vous donnez
fragB = \relative c'' { a8. gis16 ees4 }
violin = \new Staff { \fragA \fragA \fragB \fragA }
\score {
- {
- \violin
- }
+ {
+ \violin
+ }
}
@end lilypond
padText = { \once \override TextScript #'padding = #5.0 }
fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
violin = \relative c'' {
- \repeat volta 2 {
- c4._\dolce b8 a8 g a b |
- \padText
- c4.^"hi there!" d8 e' f g d |
- c,4.\fthenp b8 c4 c-. |
- }
+ \repeat volta 2 {
+ c4._\dolce b8 a8 g a b |
+ \padText
+ c4.^"hi there!" d8 e' f g d |
+ c,4.\fthenp b8 c4 c-. |
+ }
}
\score {
- {
- \violin
- }
+ {
+ \violin
+ }
\layout{ragged-right=##t}
}
@end lilypond
@example
violin = \relative c'' @{
- \repeat volta 2 @{
- c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
- \once \override TextScript #'padding = #5.0
- c4.^"hi there!" d8 e' f g d |
- c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
- \hspace #0.1 \dynamic p @} b8 c4 c-. |
- @}
+ \repeat volta 2 @{
+ c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
+ \once \override TextScript #'padding = #5.0
+ c4.^"hi there!" d8 e' f g d |
+ c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
+ \hspace #0.1 \dynamic p @} b8 c4 c-. |
+ @}
@}
@end example
pouvez les voir comme des fonctions.
@lilypond[quote,verbatim,ragged-right]
-padText =
#(define-music-function (parser location padding) (number?)
- #{
- \once \override TextScript #'padding = #$padding
- #})
+ #{
+ \once \override TextScript #'padding = #$padding
+ #})
\relative c''' {
- c4^"piu mosso" b a b
- \padText #1.8
- c4^"piu mosso" d e f
- \padText #2.6
- c4^"piu mosso" fis a g
+ c4^"piu mosso" b a b
+ \padText #1.8
+ c4^"piu mosso" d e f
+ \padText #2.6
+ c4^"piu mosso" fis a g
}
@end lilypond
@lilypond[quote,verbatim,ragged-right]
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+ #:line(#:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $markp }
#})
\relative c'' {
- \tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \tempoMark "Poco piu mosso"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ \tempoMark "Poco piu mosso"
+ cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
@example
%%% enregistrez ceci dans un fichier nommé "definitions.ly"
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+ #:line(#:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup @{ \bold $markp @}
#@})
@end example
\include "definitions.ly"
\relative c'' @{
- \tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ \once \override Score.RehearsalMark #'padding = #2.0
+ \tempoMark "Poco piu mosso"
+ cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
@}
@end example
@lilypond[quote,ragged-right]
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+ #:line(#:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $markp }
#})
\relative c'' {
- \tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ \once \override Score.RehearsalMark #'padding = #2.0
+ \tempoMark "Poco piu mosso"
+ cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
@example
%%% definitions.ly
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+ #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup @{ \bold $markp @}
#@})
\layout@{
- \context @{ \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
- @}
- \context @{ \Staff
- \override TimeSignature #'style = #'numbered
- @}
- \context @{ \Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
- @}
+ \context @{ \Score
+ \override MetronomeMark #'extra-offset = #'(-9 . 0)
+ \override MetronomeMark #'padding = #'3
+ @}
+ \context @{ \Staff
+ \override TimeSignature #'style = #'numbered
+ @}
+ \context @{ \Voice
+ \override Glissando #'thickness = #3
+ \override Glissando #'gap = #0.1
+ @}
@}
@end example
@lilypond[quote,ragged-right]
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+ #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $markp }
#})
\layout{
- \context { \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
- }
- \context { \Staff
- \override TimeSignature #'style = #'numbered
- }
- \context { \Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
- }
+ \context { \Score
+ \override MetronomeMark #'extra-offset = #'(-9 . 0)
+ \override MetronomeMark #'padding = #'3
+ }
+ \context { \Staff
+ \override TimeSignature #'style = #'numbered
+ }
+ \context { \Voice
+ \override Glissando #'thickness = #3
+ \override Glissando #'gap = #0.1
+ }
}
\relative c'' {
- \tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ \once \override Score.RehearsalMark #'padding = #2.0
+ \tempoMark "Poco piu mosso"
+ cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
@example
%%% definitions.ly
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+ #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup @{ \bold $markp @}
#@})
#(set-global-staff-size 23)
\layout@{
- \context @{ \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
- @}
- \context @{ \Staff
- @}
- \context @{ \Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
- @}
+ \context @{ \Score
+ \override MetronomeMark #'extra-offset = #'(-9 . 0)
+ \override MetronomeMark #'padding = #'3
+ @}
+ \context @{ \Staff
+ @}
+ \context @{ \Voice
+ \override Glissando #'thickness = #3
+ \override Glissando #'gap = #0.1
+ @}
@}
@end example
@lilypond[quote,ragged-right]
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
- #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+ #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
+ \once \override Score . RehearsalMark #'self-alignment-X = #left
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $markp }
#})
#(set-global-staff-size 23)
\layout{
- \context { \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
- }
- \context { \Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
- }
+ \context { \Score
+ \override MetronomeMark #'extra-offset = #'(-9 . 0)
+ \override MetronomeMark #'padding = #'3
+ }
+ \context { \Voice
+ \override Glissando #'thickness = #3
+ \override Glissando #'gap = #0.1
+ }
}
\relative c'' {
- \tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ \once \override Score.RehearsalMark #'padding = #2.0
+ \tempoMark "Poco piu mosso"
+ cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
Il ne nous reste plus qu'Ã remplacer @code{\include "definitions.ly"}
-par @code{\include "web-publish.ly"} dans notre fichier de musique.
+par @code{\include "publication-web.ly"} dans notre fichier de musique.
Il est possible, bien sûr, de rendre cela encore plus pratique. Nous
pourrions créer un fichier @file{definitions.ly} qui ne contiendrait
que les définitions de @code{mpdolce} et de @code{tempoMark}, un
fichier @file{publication-web.ly} qui ne contiendrait que la section
-@code{layout} décrite ci-dessus et un fichier @file{university.ly} qui
+@code{layout} décrite ci-dessus et un fichier @file{universite.ly} qui
ne contiendrait que les retouches pour produire le résultat que mon
-professeur préfère. Le début du fichier @file{music.ly} ressemblerait
+professeur préfère. Le début du fichier @file{musique.ly} ressemblerait
alors Ã
@example
\include "definitions.ly"
%%% Décommentez seulement une de ces deux lignes !
-\include "web-publish.ly"
-%\include "university.ly"
+\include "publication-web.ly"
+%\include "universite.ly"
@end example
Cette approche peut être utile même si vous ne produisez qu'un seul
@example
%%% global.ly
-\version "2.9.13"
+\version "2.11.15"
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
\include "../init/init-mise-en-page.ly"
@example
\score @{
- <<
- % \melodie
- % \harmonie
- % \basse
- >>
- \layout@{@}
+ <<
+ % \melodie
+ % \harmonie
+ % \basse
+ >>
+ \layout@{@}
@}
@end example
@example
basse = \relative c' @{
%@{
- c4 c c c
- d d d d
+ c4 c c c
+ d d d d
%@}
@}
@end example
doc-localedir=$(outdir)
DOMAIN=lilypond-doc
+DOC_PO_SOURCES = add_html_footer.py langdefs.py
messages: $(MO_FILES)
for i in $(CATALOGS); do \
done
po-update:
- $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o doc.pot --gettext ../$(depth)/Documentation/user/lilypond.tely
+ $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext ../$(depth)/Documentation/user/lilypond.tely
+ xgettext -cjn -L Python -o $(outdir)/buildscripts.pot $(foreach i, $(DOC_PO_SOURCES), $(buildscript-dir)/$(i) )
+ msgcat -o $(outdir)/doc.pot $(outdir)/buildscripts.pot $(outdir)/texi.pot
msgmerge -U lilypond-doc.pot $(outdir)/doc.pot
for i in $(CATALOGS); do \
msgmerge -U $$i.po lilypond-doc.pot; \
# This file is distributed under the same license as the lilypond package.
#
# John Mandereau <john.mandereau@free.fr>, 2006, 2007.
-#. @chapter in ../../../Documentation/user/lilypond-book.itely
msgid ""
msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-22 20:59+0100\n"
-"PO-Revision-Date: 2007-02-05 14:38+0100\n"
+"POT-Creation-Date: 2007-02-24 10:14+0100\n"
+"PO-Revision-Date: 2007-02-25 13:46+0100\n"
"Last-Translator: John Mandereau <john.mandereau@free.fr>\n"
"Language-Team: Français <lilypond-user-fr@gnu.org>\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
+#: ../../buildscripts/add_html_footer.py:36
+#, python-format
+msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+msgstr "Cette page documente %(package_name)s-%(package_version)s (%(branch_str)s)."
+
+#: ../../buildscripts/add_html_footer.py:39
+#, python-format
+msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+msgstr "Rapporter toute anomalie en français à <a href=\"mailto:lilypond-user-fr@gnu.org\">lilypond-user-fr@gnu.org</a> ou en anglais à <a href=\"%(mail_address_url)s\">%(mail_address)s</a>"
+
+#: ../../buildscripts/add_html_footer.py:52
+#, python-format
+msgid "Other languages: %s."
+msgstr "Autres langues : %s."
+
+#: ../../buildscripts/add_html_footer.py:53
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr "À propos de la <A HREF=\"%s\">sélection automatique de la langue</A>."
+
+#: ../../buildscripts/add_html_footer.py:236
+msgid "stable-branch"
+msgstr "branche stable"
+
+#: ../../buildscripts/add_html_footer.py:238
+msgid "development-branch"
+msgstr "branche de développement"
+
+#: ../../buildscripts/langdefs.py:34
+msgid "English"
+msgstr "Anglais"
+
+#: ../../buildscripts/langdefs.py:35
+msgid "French"
+msgstr "Français"
+
#. @node in ../../../Documentation/user/lilypond.tely
msgid "Top"
msgstr "Sommaire"
#. @subsubheading in ../../../Documentation/user/macros.itexi
msgid "Commonly tweaked properties"
-msgstr "Propriétés couramment ajustées"
+msgstr "Propriétés couramment modifiées"
#. @node in ../../../Documentation/user/preface.itely
#. @unnumbered in ../../../Documentation/user/preface.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Note names in other languages"
msgstr "Noms de note dans d'autres langues"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
msgid "Augmentation dots"
-msgstr "Points d'addition"
+msgstr "Notes pointées"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @section in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Polyphony"
-msgstr "Polyphonie basique"
+msgstr "Polyphonie"
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
#. @node in ../../../Documentation/user/basic-notation.itely
#. @subsection in ../../../Documentation/user/basic-notation.itely
-#, fuzzy
msgid "Falls and doits"
msgstr "Chutes et sauts"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
msgid "Setting simple songs"
-msgstr "Écrire des chansons simples¿"
+msgstr "Écrire des chants simples"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Adding stanza numbers"
-msgstr ""
+msgstr "Numéroter les strophes"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Adding dynamics marks"
-msgstr ""
+msgstr "Ajouter des nuances"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
-#, fuzzy
msgid "Adding singer names"
-msgstr "Ajout de titres"
+msgstr "Ajouter le nom des chanteurs"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Printing stanzas at the end"
-msgstr ""
+msgstr "Paroles à la fin de la partition"
#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
msgid "Printing stanzas at the end in multiple columns"
-msgstr ""
+msgstr "Paroles sur plusieurs colonnes à la fin de la partition"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
msgid "Custodes"
-msgstr ""
+msgstr "Guidons"
#. @node in ../../../Documentation/user/instrument-notation.itely
#. @subsection in ../../../Documentation/user/instrument-notation.itely
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
msgid "Text markup"
-msgstr ""
+msgstr "Texte mis en forme"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
msgid "Nested scores"
-msgstr ""
+msgstr "Partitions emboîtées"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @section in ../../../Documentation/user/advanced-notation.itely
msgid "Orchestral music"
-msgstr ""
+msgstr "Musique orchestrale"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
msgid "Hiding staves"
-msgstr ""
+msgstr "Cacher des portées"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
msgid "Time administration"
-msgstr ""
+msgstr "Gestion du temps"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
msgid "Automatic accidentals"
-msgstr ""
+msgstr "Altérations accidentelles automatiques"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
msgid "Setting automatic beam behavior"
-msgstr ""
+msgstr "Définir les règles de ligatures automatiques"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @section in ../../../Documentation/user/changing-defaults.itely
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
msgid "Changing context properties on the fly"
-msgstr ""
+msgstr "Changer les propriétés de contexte à la volée"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
#. @node in ../../../Documentation/user/non-music.itely
#. @section in ../../../Documentation/user/non-music.itely
msgid "Input files"
-msgstr ""
+msgstr "Fichiers d'entrée"
#. @node in ../../../Documentation/user/non-music.itely
#. @subsection in ../../../Documentation/user/non-music.itely
msgid "File structure (introduction)"
-msgstr ""
+msgstr "Introduction à la structure de fichier"
#. @node in ../../../Documentation/user/non-music.itely
#. @subsection in ../../../Documentation/user/non-music.itely
msgid "File structure"
-msgstr ""
+msgstr "Structure de fichier"
#. @node in ../../../Documentation/user/non-music.itely
#. @subsection in ../../../Documentation/user/non-music.itely
#. @node in ../../../Documentation/user/non-music.itely
#. @subsection in ../../../Documentation/user/non-music.itely
msgid "Creating titles"
-msgstr ""
+msgstr "Créer des titres"
#. @node in ../../../Documentation/user/non-music.itely
#. @subsection in ../../../Documentation/user/non-music.itely
#. @node in ../../../Documentation/user/non-music.itely
#. @section in ../../../Documentation/user/non-music.itely
msgid "Skipping corrected music"
-msgstr ""
+msgstr "Ignorer des passages de la partition"
#. @node in ../../../Documentation/user/spacing.itely
#. @chapter in ../../../Documentation/user/spacing.itely
#. @node in ../../../Documentation/user/running.itely
msgid "Updating files with convert-ly"
-msgstr ""
+msgstr "Mettre à jour des fichiers avec convert-ly"
#. @section in ../../../Documentation/user/running.itely
-#, fuzzy
-msgid "Updating with"
-msgstr "Mettre à jour des anciens fichiers"
+msgid "Updating with @command{convert-ly}"
+msgstr ""
#. @node in ../../../Documentation/user/running.itely
#. @section in ../../../Documentation/user/running.itely
msgid "LilyPond-book"
msgstr "LilyPond-book"
+#. @chapter in ../../../Documentation/user/lilypond-book.itely
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr "@command{lilypond-book} : associer de la musique et du texte"
+
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgid "An example of a musicological document"
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#, fuzzy
-msgid "Integrating La"
-msgstr "Gravure"
+msgid "Integrating La@TeX{} and music"
+msgstr "Intégrer de la musique dans @LaTeX{}"
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#. @section in ../../../Documentation/user/converters.itely
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgid "Invoking midi2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking etf2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking musicxml2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking abc2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
#. @section in ../../../Documentation/user/converters.itely
msgid "Generating LilyPond files"
#. @node in ../../../Documentation/user/templates.itely
#. @appendix in ../../../Documentation/user/templates.itely
-#, fuzzy
msgid "Templates"
-msgstr "Nolets"
+msgstr "Modèles"
#. @node in ../../../Documentation/user/templates.itely
#. @appendixsec in ../../../Documentation/user/templates.itely
msgid "Footnotes"
msgstr "Notes de bas de page"
-#~ msgid "@command{lilypond-book}: Integrating text and music"
-#~ msgstr "@command{lilypond-book} : associer de la musique et du texte"
# This file is distributed under the same license as the lilypond package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#. @chapter in ../../../Documentation/user/lilypond-book.itely
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-22 20:59+0100\n"
+"POT-Creation-Date: 2007-02-24 10:14+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
+#: ../../buildscripts/add_html_footer.py:36
+#, python-format
+msgid "This page is for %(package_name)s-%(package_version)s (%(branch_str)s)."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:39
+#, python-format
+msgid "Report errors to <a href=\"%(mail_address_url)s\">%(mail_address)s</a>."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:52
+#, python-format
+msgid "Other languages: %s."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:53
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:236
+msgid "stable-branch"
+msgstr ""
+
+#: ../../buildscripts/add_html_footer.py:238
+msgid "development-branch"
+msgstr ""
+
+#: ../../buildscripts/langdefs.py:34
+msgid "English"
+msgstr ""
+
+#: ../../buildscripts/langdefs.py:35
+msgid "French"
+msgstr ""
+
#. @node in ../../../Documentation/user/lilypond.tely
msgid "Top"
msgstr ""
msgstr ""
#. @section in ../../../Documentation/user/running.itely
-msgid "Updating with"
+msgid "Updating with @command{convert-ly}"
msgstr ""
#. @node in ../../../Documentation/user/running.itely
msgid "LilyPond-book"
msgstr ""
+#. @chapter in ../../../Documentation/user/lilypond-book.itely
+msgid "@command{lilypond-book}: Integrating text and music"
+msgstr ""
+
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgid "An example of a musicological document"
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-msgid "Integrating La"
+msgid "Integrating La@TeX{} and music"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgstr ""
#. @section in ../../../Documentation/user/lilypond-book.itely
-#. @section in ../../../Documentation/user/converters.itely
-msgid "Invoking"
+msgid "Invoking @command{lilypond-book}"
msgstr ""
#. @node in ../../../Documentation/user/lilypond-book.itely
msgid "Invoking midi2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{midi2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking etf2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @command{etf2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking musicxml2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{musicxml2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
msgid "Invoking abc2ly"
msgstr ""
+#. @section in ../../../Documentation/user/converters.itely
+msgid "Invoking @code{abc2ly}"
+msgstr ""
+
#. @node in ../../../Documentation/user/converters.itely
#. @section in ../../../Documentation/user/converters.itely
msgid "Generating LilyPond files"
In addition, vertical placement is performed after creating the
text markup object. If you wish to move an entire piece of markup,
-you need to use the #'padding property or create an "anchor" point
+you need to use the #'padding property or create an @q{anchor} point
inside the markup (generally with @code{\hspace #0}).
@lilypond[quote,verbatim,fragment,relative=1]
@item -k, --key=@var{acc}[:@var{minor}]
Set default key. @math{@var{acc} > 0} sets number of sharps;
@math{@var{acc} < 0} sets number of flats. A minor key is indicated by
-":1".
+@samp{:1}.
@item -o, --output=@var{file}
Write output to @var{file}.
@end example
If a greater number of systems is requested, a TeX conditional must be
-used before the @code{\endinput}. In this example, replace "2" by
-the numer of systems you want in the output,
+used before the @code{\endinput}. In this example, replace @q{2} by
+the number of systems you want in the output,
@example
\def\betweenLilyPondSystem#1@{
search path.
The @code{\include} statement can use full path information, but with the Unix
-convention @code{"/"} rather than the DOS/Windows @code{"\"}. For example,
+convention @samp{/} rather than the DOS/Windows @samp{\}. For example,
if @file{stuff.ly} is located one directory higher than the current working
directory, use
(set! place new-value)
@end example
-Here, what we want to set (the "place") is the "elements" property of
-@code{result-event-chord} expression
+Here, what we want to set (the @q{place}) is the @q{elements} property of
+@code{result-event-chord} expression.
@example
(ly:music-property result-event-chord 'elements)
@end enumerate
The @code{ragged-bottom} property adds space between systems, while
-the two-pass technique adds space between staffs inside a system.
+the two-pass technique adds space between staves inside a system.
To allow this behaviour, a @code{tweak-key} variable has to be set in
each score @code{\layout} block, and the tweaks included in each score
@appendixsubsec Piano centered dynamics
Many piano scores have the dynamics centered between the two
-staffs. This requires a bit of tweaking to implement, but
+staves. This requires a bit of tweaking to implement, but
since the template is right here, you don't have to do the
tweaking yourself.
Be warned that the first time you ever run LilyPond, it will take a minute
or two because all of the system fonts have to be analyzed first.
-For future use of LilyPond, you should begin by selecting "New"
-or "Open". You must save your file before typesetting it. If any errors
+For future use of LilyPond, you should begin by selecting @q{New}
+or "@q{Open}. You must save your file before typesetting it. If any errors
occur in processing, please see the log window.
@subsubheading Windows
@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
To access this, either @code{cd} into this directory from the
Terminal, or control-click on the LilyPond application and select
-"Show Package Contents".
+@q{Show Package Contents}.
@item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
That looks better, but let's make a few changes. The glissando is hard
to see, so let's make it thicker and closer to the noteheads. Let's
put the metronome marking above the clef, instead of over the first
-note. And finally, my composition professor hates "C" time signatures,
-so we'd better make that "4/4" instead.
+note. And finally, my composition professor hates @q{C} time signatures,
+so we'd better make that @q{4/4} instead.
Don't change @file{music.ly}, though. Replace our @file{definitions.ly}
with this:
@end lilypond
That looks nicer! But now suppose that I want to publish this
-piece. My composition professor doesn't like "C" time
+piece. My composition professor doesn't like @q{C} time
signatures, but I'm somewhat fond of them. Let's copy the
current @file{definitions.ly} to @file{web-publish.ly} and
modify that. Since this music is aimed at producing a pdf which
Laura Conrad
Luc Wehli
Maarten Hijzelendoorn
+Marc Lanoiselée
Matthijs Frankeno
Martijn Vromans
Marnen Laibow-Koser
'Documentation/out-www/DEDICATION',
'Documentation/topdocs/out-www/AUTHORS']
+def _ (s):
+ return s
+
header = r"""
"""
-footer = r'''
+footer = '''
<div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;">
<p>
<font size="-1">
-This page is for %(package_name)s-%(package_version)s (%(branch_str)s). <br>
+%(footer_name_version)s
+<br>
</font>
<address><font size="-1">
-Report errors to <a href="%(mail_address_url)s">%(mail_address)s</a>.</font></address>
+%(footer_report_errors)s </font></address>
</p>
</div>
'''
+footer_name_version = _ ('This page is for %(package_name)s-%(package_version)s (%(branch_str)s).')
+footer_report_errors = _ ('Report errors to <a href="%(mail_address_url)s">%(mail_address)s</a>.')
mail_address = 'http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs'
header_tag = '<!-- header_tag -->'
footer_tag = '<!-- footer_tag -->'
-def _ (s):
- return s
-
-language_available = _ ("Other languages: %s.") % "%(language_menu)s"
-browser_language = _ ("Using <A HREF='%s'>automatic language selection</A>.") \
- % "/web/about/browser-language"
+lang_available = _ ("Other languages: %s.")
+browser_lang = _ ('About <A HREF="%s">automatic language selection</A>.')
+browser_language_url = "/web/about/browser-language"
-LANGUAGES_TEMPLATE = '''\
+LANGUAGES_TEMPLATE = '''
<P>
%(language_available)s
<BR>
%(browser_language)s
</P>
-''' % vars ()
+'''
html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
s = re.sub ('(?i)<body>', body, s)
if re.search ('(?i)<BODY', s):
s = re.sub ('(?i)<body[^>]*>', body + header, s, 1)
- elif re.search ('(?i)<html', s):
+ elif re.search ('(?i)<html', s):
s = re.sub ('(?i)<html>', '<HTML>' + header, s, 1)
else:
s = header + s
return s
info_nav_bar = re.compile (r'<div class="node">\s*<p>\s*<a name=".+?"></a>(.+?)<hr>\s*</div>', re.M | re.S)
+info_footnote_hr = re.compile (r'<hr>\s*(</div>)?\s*</body>', re.M | re.I)
def add_footer (s):
"""add footer
also add navigation bar to bottom of Info HTML pages"""
m = info_nav_bar.search (s)
if m:
- custom_footer = '<br><hr>\n<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
+ # avoid duplicate <hr> in case there are footnotes at the end of the Info HTML page
+ if info_footnote_hr.search (s):
+ custom_footer = '<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
+ else:
+ custom_footer = '<br><hr>\n<div class="node">\n<p>' + m.group (1) + '</div>\n' + footer
else:
custom_footer = footer
if re.search ('(?i)</body', s):
# Strip .html, .png suffix for auto language selection (content
# negotiation). The menu must keep the full extension, so do
# this before adding the menu.
- page_flavors[file_name] = re.sub (
+ page_flavors[file_name] = [lang_ext, re.sub (
'''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
- '\\1="\\2\\4"', s)
+ '\\1="\\2\\4"', s)]
elif target == 'offline':
# in LANG doc index: don't rewrite .html suffixes as not all .LANG.html pages exist
# the doc index should be translated and contain the right links
if prefix == 'Documentation/out-www/index':
- page_flavors[file_name] = s
+ page_flavors[file_name] = [lang_ext, s]
elif lang_ext == '':
- page_flavors[file_name] = s
+ page_flavors[file_name] = [lang_ext, s]
for e in missing:
- page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = re.sub (
+ page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = [e, re.sub (
'''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
- 'href="\\1.' + e + '\\2\\3"', s)
+ 'href="\\1.' + e + '\\2\\3"', s)]
else:
- page_flavors[file_name] = re.sub (
+ page_flavors[file_name] = [lang_ext, re.sub (
'''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
- 'href="\\1.' + lang_ext + '\\2\\3"', s)
+ 'href="\\1.' + lang_ext + '\\2\\3"', s)]
return page_flavors
-def add_menu (page_flavors, prefix, available):
- language_menu = ''
- for lang in available:
- lang_file = lang.file_name (os.path.basename (prefix), '.html')
- if language_menu != '':
- language_menu += ', '
- language_menu += '<a href="%s">%s</a>' % (lang_file, lang.name)
-
- languages = ''
- if language_menu:
- languages = LANGUAGES_TEMPLATE % vars ()
-
- # put language menu before '</body>' and '</html>' tags
+def add_menu (page_flavors, prefix, available, target, translation):
for k in page_flavors.keys():
- if re.search ('(?i)</body', page_flavors[k]):
- page_flavors[k] = re.sub ('(?i)</body>', languages + '</BODY>', page_flavors[k], 1)
- elif re.search ('(?i)</html', page_flavors[k]):
- page_flavors[k] = re.sub ('(?i)</html>', languages + '</HTML>', page_flavors[k], 1)
+ language_menu = ''
+ languages = ''
+ if page_flavors[k][0] != '':
+ t = translation[page_flavors[k][0]]
else:
- page_flavors[k] += languages
+ t = _
+ for lang in available:
+ lang_file = lang.file_name (os.path.basename (prefix), '.html')
+ if language_menu != '':
+ language_menu += ', '
+ language_menu += '<a href="%s">%s</a>' % (lang_file, t (lang.name))
+ if target == 'offline':
+ browser_language = ''
+ elif target == 'online':
+ browser_language = t (browser_lang) % browser_language_url
+ if language_menu:
+ language_available = t (lang_available) % language_menu
+ languages = LANGUAGES_TEMPLATE % vars ()
+ # put language menu before '</body>' and '</html>' tags
+ if re.search ('(?i)</body', page_flavors[k][1]):
+ page_flavors[k][1] = re.sub ('(?i)</body>', languages + '</BODY>', page_flavors[k][1], 1)
+ elif re.search ('(?i)</html', page_flavors[k][1]):
+ page_flavors[k][1] = re.sub ('(?i)</html>', languages + '</HTML>', page_flavors[k][1], 1)
+ else:
+ page_flavors[k][1] += languages
return page_flavors
-def add_html_footer (package_name = '',
+def add_html_footer (translation,
+ package_name = '',
package_version = '',
target = 'offline',
name_filter = lambda s: s):
"""Add header, footer to a number of HTML files
Arguments:
+ translation gettext translations dictionary, with language codes as keys
package_name=NAME set package_name to NAME
package_version=VERSION set package version to VERSION
targets=offline|online set page processing depending on the target
mail_address_url= 'mailto:' + mail_address
versiontup = package_version.split ('.')
- branch_str = 'stable-branch'
+ branch_str = _('stable-branch')
if int ( versiontup[1]) % 2:
- branch_str = 'development-branch'
+ branch_str = _('development-branch')
for prefix, ext_list in pages_dict.items ():
for lang_ext in ext_list:
### add footer
if re.search (footer_tag, s) == None:
s = add_footer (s)
+
available, missing = find_translations (prefix, lang_ext)
page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
# Add menu after stripping: must not have autoselection for language menu.
- page_flavors = add_menu (page_flavors, prefix, available)
- # urg, this stuff is oudated and seems useless, let's disable it
+ page_flavors = add_menu (page_flavors, prefix, available, target, translation)
+ # urg, this stuff is outdated and seems useless, let's disable it
#else:
# for e in [l.webext for l in langdefs.LANGUAGES]:
# if not e in pages_dict[prefix]:
# page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = s
-
- subst = globals ()
- subst.update (locals())
+ subst = dict ([i for i in globals().items() if type (i[1]) is str])
+ subst.update (dict ([i for i in locals().items() if type (i[1]) is str]))
for k in page_flavors.keys():
- page_flavors[k] = page_flavors[k] % subst
-
+ if page_flavors[k][0] in translation.keys():
+ for name in subst.keys():
+ subst[name] = translation[page_flavors[k][0]] (subst[name])
+ subst['footer_name_version'] = subst['footer_name_version'] % subst
+ subst['footer_report_errors'] = subst['footer_report_errors'] % subst
+ page_flavors[k][1] = page_flavors[k][1] % subst
out_f = open (name_filter (k), 'w')
- out_f.write (page_flavors[k])
+ out_f.write (page_flavors[k][1])
out_f.close()
# if the page is translated, a .en.html symlink is necessary for content negotiation
if target == 'online' and ext_list != ['']:
Documentation i18n module
"""
+def _ (s):
+ return s
+
def lang_file_name (p, langext, ext):
if langext != '':
return p + '.' + langext + ext
# here. For each 'Documentation/ab' directory containing docs
# translated in 'ab', there should be an entry in LANGUAGES.
-site = LanguageDef ('en', 'English', webext='')
-fr = LanguageDef ('fr', 'French', double_punct_char_sep=' ')
+site = LanguageDef ('en', _('English'), webext='')
+fr = LanguageDef ('fr', _('French'), double_punct_char_sep=' ')
#nl = LanguageDef ('nl', 'Nederlands')
# Outdated or broken translations may be disabled
if __name__ == '__main__':
print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
else:
- import gettext
LANGDICT = {}
for l in LANGUAGES:
LANGDICT[l.code] = l
import re
import getopt
import os
-import string
-optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:',['skeleton', 'gettext'])
+def read_pipe (command):
+ print command
+ pipe = os.popen (command)
+ output = pipe.read ()
+ if pipe.close ():
+ print "pipe failed: %(command)s" % locals ()
+ return output
+
+
+optlist, texi_files = getopt.getopt(sys.argv[1:],'no:d:b:i:l:',['skeleton', 'gettext'])
process_includes = not ('-n', '') in optlist # -n don't process @include's in texinfo files
make_gettext = ('--gettext', '') in optlist # --gettext generate a node list from a Texinfo source
output_file = 'doc.pot'
node_blurb = ''
-intro_blurb = ''
+doclang = ''
+topfile = os.path.basename (texi_files[0])
+head_committish = read_pipe ('git-rev-parse HEAD')
+intro_blurb = '''@c -*- coding: utf-8; mode: texinfo%(doclang)s -*-
+@c This file is part of %(topfile)s
+@ignore
+ Translation of GIT committish: %(head_committish)s
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+'''
+
+end_blurb = """
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
+"""
for x in optlist:
if x[0] == '-o': # -o NAME set PO output file name to NAME
node_blurb = x[1]
elif x[0] == '-i': # -i BLURB set blurb written at beginning of each file to BLURB
intro_blurb = x[1]
+ elif x[0] == '-l': # -l ISOLANG set documentlanguage to ISOLANG
+ doclang = '; documentlanguage: ' + x[1]
+
+
+intro_blurb = intro_blurb % vars()
+
def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=None):
try:
g.write (i_blurb)
tutu = re.findall (r"""^(\*) +([^:
]+)::[^
- ]*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^@
+ ]*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^
]*)[^
]*?$|@(rglos){(.+?)}""", texifile, re.M)
node_trigger = False
if output_file:
output_file.write ('_("' + item[3].strip () + '") # @' + item[2] + \
' in ' + texifilename + '\n')
- node_trigger = True
+ if item[2] == 'node':
+ node_trigger = True
elif item[2] == 'include':
includes.append(item[3])
+ g.write (end_blurb)
g.close ()
elif output_file:
- toto = re.findall (r"""^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^@
+ toto = re.findall (r"""^@(include|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^
]*)[^
]*?$|@(rglos){(.+?)}""", texifile, re.M)
for item in toto:
--- /dev/null
+#!@PYTHON@
+# texi-skeleton-update.py
+
+import sys
+import glob
+import os
+import shutil
+
+sys.stderr.write ('texi-skeleton-update.py\n')
+
+orig_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[1] + '/*.itely')])
+new_skeletons = set ([os.path.basename (f) for f in glob.glob (sys.argv[2] + '/*.itely')])
+
+for f in new_skeletons:
+ if f in orig_skeletons:
+ g = open (os.path.join (sys.argv[1], f), 'r').read ()
+ if '-- SKELETON FILE --' in g:
+ sys.stderr.write ("Updating %s...\n" % f)
+ shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+ else:
+ sys.stderr.write ("Copying new file %s...\n" % f)
+ shutil.copy (os.path.join (sys.argv[2], f), sys.argv[1])
+
+for f in orig_skeletons.difference (new_skeletons):
+ sys.stderr.write ("Warning: outdated skeleton file %s\n" % f)
import sys
import os
import re
+import gettext
package_name, package_version, buildscript_dir, outdir, targets = sys.argv[1:]
targets = targets.split (' ')
f.write ('#.htaccess\nDirectoryIndex index\n')
f.close ()
+# load gettext messages catalogs
+translation = {}
+localedir = os.path.join (buildscript_dir, '../Documentation/po', outdir)
+for l in langdefs.LANGUAGES:
+ if l.enabled and l.code != 'en':
+ try:
+ translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
+ except:
+ translation[l.code] = lambda s: s
+
add_html_footer.build_pages_dict (html_files)
for t in targets:
sys.stderr.write ("Processing HTML pages for %s target...\n" % t)
add_html_footer.add_html_footer (
+ translation = translation,
package_name = package_name,
package_version = package_version,
target = t,
--- /dev/null
+\header
+{
+ texidoc = "don't crash on single chord clusters."
+}
+
+
+\version "2.11.19"
+\relative c' { \makeClusters <e d'> }
-\version "2.10.0" \header{
+\version "2.10.0"
+ \header{
- texidoc = "Concurrent tuplets should be equidistant on all staffs.
-Such equidistant spacing is it at odds with elegant engraver spacing;
+ texidoc = "Concurrent tuplets should be equidistant on all staves.
+Such equidistant spacing is at odds with elegant engraver spacing;
hence it must be switched on explicitly with the
-@code{uniform-stretching} property of @code{SpacingSpanner}.
-"
-
+@code{uniform-stretching} property of @code{SpacingSpanner}."
}
\header {
- texidoc = "System separators maybe defined as markups in the
-@code{systemSeparator} field of the paper block. They are centered
-between the boundary staffs of each system. "
+ texidoc = "System separators may be defined as markups in the
+@code{systemSeparator} field of the paper block. They are centered
+between the boundary staves of each system."
}
\version "2.10.0"
-\header{ texidoc="@cindex Nested Staff Groups
-Staffs can be nested in various combinations. Here, @code{StaffGroup}
+\header{
+ texidoc="@cindex Nested Staff Groups
+Staves can be nested in various combinations. Here, @code{StaffGroup}
and @code{ChoirStaff} produce similar straight brackets, whereas
-@code{GrandStaff} produces curly brackets. In @code{InnerStaffGroup}
-and @code{InnerChoirStaff}, the brackets are shifted leftwards.
-
-"
+@code{GrandStaff} produces curly brackets. In @code{InnerStaffGroup}
+and @code{InnerChoirStaff}, the brackets are shifted leftwards."
}
\score {
\version "2.10.0"
% TODO: huh? what's this file about? -gp
-% This file shows that Staffs can get a very deep or high; there is a lot
-% of room between the staffs.
+% This file shows that Staff grobs can get very deep or high; there is a lot
+% of room between the staves.
\header { texidoc = "
Vertical extents may increased by setting @code{\override VerticalAxisGroup #'minimum-Y-extent},
void
Cluster_spanner_engraver::typeset_grobs ()
{
- finished_spanner_ = 0;
+ if (finished_spanner_)
+ {
+ if (!finished_spanner_->get_bound (RIGHT))
+ {
+ finished_spanner_->set_bound (RIGHT,
+ finished_spanner_->get_bound (LEFT));
+
+ }
+
+ finished_spanner_ = 0;
+ }
beacon_ = 0;
}
Interval span_points (0, 0);
/*
- For raggedright without ragged staffs, simply set width to the linewidth.
+ For raggedright without ragged staves, simply set width to the linewidth.
(ok -- lousy UI, since width is in staff spaces)
ADD_ACKNOWLEDGER (Vertical_align_engraver, axis_group);
ADD_TRANSLATOR (Vertical_align_engraver,
- "Catch groups (staffs, lyrics lines, etc.) and stack "
+ "Catch groups (staves, lyrics lines, etc.) and stack "
"them vertically.",
/* create */ "VerticalAlignment",
/* read */
volta engraver in score context or somesuch. */
if (!scm_is_pair (staffs))
{
- programming_error ("volta engraver can't find staffs");
+ programming_error ("volta engraver can't find staves");
return false;
}
else if (scm_car (scm_last_pair (staffs)) != staff_)
\accepts "Score"
\defaultchild "Score"
- \description "Hard coded entry point for LilyPond. Cannot be tuned."
+ \description "Hard coded entry point for LilyPond. Cannot be tuned."
\grobdescriptions #all-grob-descriptions
}
\accepts "CueVoice"
\defaultchild "Voice"
- \description "
- A context like @code{Staff} but for printing rhythms. Pitches are
- ignored; the notes are printed on one line.
-"
+ \description "A context like @code{Staff} but for printing rhythms.
+Pitches are ignored; the notes are printed on one line."
}
\type "Engraver_group"
\name "Voice"
- \description "
- Corresponds to a voice on a staff. This context handles the
- conversion of dynamic signs, stems, beams, super- and subscripts,
- slurs, ties, and rests.
+ \description "Corresponds to a voice on a staff. This context
+handles the conversion of dynamic signs, stems, beams, super- and
+subscripts, slurs, ties, and rests.
- You have to instantiate this explicitly if you want to have
- multiple voices on the same staff."
+You have to instantiate this explicitly if you want to have
+multiple voices on the same staff."
localKeySignature = #'()
\consists "Font_size_engraver"
\name GrandStaff
localKeySignature = #'()
- \description " A group of staffs, with a brace on the left
- side, grouping the staves together. The bar lines of the
- contained staves are connected vertically. "
+ \description "A group of staves, with a brace on the left
+side, grouping the staves together. The bar lines of the
+contained staves are connected vertically."
\consists "Span_bar_engraver"
\consists "Span_arpeggio_engraver"
\name "PianoStaff"
\alias "GrandStaff"
- \description
- "Just like @code{GrandStaff} but with a forced distance between
- the staves, so cross staff beaming and slurring can be used."
+ \description "Just like @code{GrandStaff} but with a forced
+distance between the staves, so cross staff beaming and slurring
+can be used."
\override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
\consists "Instrument_name_engraver"
\InnerStaffGroup
\name StaffGroup
- \description
-
- "Groups staffs while adding a bracket on the left side, grouping
-the staves together. The bar lines of the contained staves are
-connected vertically. StaffGroup only consists of a collection of
-staffs, with a bracket in front and spanning bar lines. "
+ \description "Groups staves while adding a bracket on the left
+side, grouping the staves together. The bar lines of the contained
+staves are connected vertically. @code{StaffGroup} only consists of
+a collection of staves, with a bracket in front and spanning bar lines."
\accepts "InnerChoirStaff"
\accepts "ChoirStaff"
\type "Engraver_group"
\override VerticalAxisGroup #'minimum-Y-extent = #'(-0.75 . 2.0)
- \description " Corresponds to a voice with lyrics. Handles the
-printing of a single line of lyrics. "
+ \description "Corresponds to a voice with lyrics. Handles the
+printing of a single line of lyrics."
\name "Lyrics"
instrumentName = #'()
\name "Score"
\description "This is the top level notation context. No
- other context can contain a @code{Score} context. This context
- handles the administration of time signatures. It also makes sure
- that items such as clefs, time signatures, and key-signatures are
- aligned across staves.
-
- You cannot explicitly instantiate a Score context (since it is
- not contained in any other context). It is instantiated
- automatically when an output definition (a @code{\score} or
- @code{\layout} block) is processed."
+other context can contain a @code{Score} context. This context
+handles the administration of time signatures. It also makes sure
+that items such as clefs, time signatures, and key-signatures are
+aligned across staves.
+You cannot explicitly instantiate a @code{Score} context (since it
+is not contained in any other context). It is instantiated
+automatically when an output definition (a @code{\score} or
+@code{\layout} block) is processed."
\consists "Paper_column_engraver"
\consists "Vertically_spaced_contexts_engraver"
\alias "Staff"
\alias "Voice"
\consists "Swallow_engraver"
- \description "Silently discards all musical information given to this context. "
+ \description "Silently discards all musical information given to this
+context."
}
\context {
\remove "Fingering_engraver"
\remove "New_fingering_engraver"
- \description "Context for drawing notes in a Tab staff. "
+ \description "Context for drawing notes in a Tab staff."
%% TabStaff increase the staff-space, which in turn
%% increases beam thickness and spacing; beams are
\Voice
\name "VaticanaVoice"
\alias "Voice"
- \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
+ \description "Same as @code{Voice} context, except that it is
+accommodated for typesetting Gregorian Chant in the notational style
+of Editio Vaticana."
\remove "Slur_engraver"
\remove "Stem_engraver"
\accepts "VaticanaVoice"
\defaultchild "VaticanaVoice"
- \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
+ \description "Same as @code{Staff} context, except that it is
+accommodated for typesetting Gregorian Chant in the notational style
+of Editio Vaticana."
\remove "Time_signature_engraver"
\consists "Custos_engraver"
\Voice
\name "MensuralVoice"
\alias "Voice"
- \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
+ \description "Same as @code{Voice} context, except that it is
+accommodated for typesetting a piece in mensural style."
\remove "Slur_engraver"
\remove "Ligature_bracket_engraver"
\denies "Voice"
\defaultchild "MensuralVoice"
\accepts "MensuralVoice"
- \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
+ \description "Same as @code{Staff} context, except that it is
+accommodated for typesetting a piece in mensural style."
\consists "Custos_engraver"
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# Translation of LilyPond.
+# Copyright (C) 2007 Han-Wen Nienhuys, Jan Nieuwenhuizen
+# This file is distributed under the same license as the lilypond package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-24 10:40+0100\n"
+"Project-Id-Version: lilypond 2.11.20\n"
+"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs"
+"POT-Creation-Date: 2007-02-25 22:11+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: convertrules.py:12
msgid "%s has been replaced by %s"
msgstr ""
-#: convertrules.py:2398
+#: convertrules.py:2399
msgid "LilyPond source must be UTF-8"
msgstr ""
-#: convertrules.py:2401
+#: convertrules.py:2402
msgid "Try the texstrings backend"
msgstr ""
-#: convertrules.py:2404
+#: convertrules.py:2405
#, python-format
msgid "Do something like: %s"
msgstr ""
-#: convertrules.py:2407
+#: convertrules.py:2408
msgid "Or save as UTF-8 in your editor"
msgstr ""
msgid "Usage: %s"
msgstr ""
-#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:110 midi2ly.py:858
#, python-format
msgid "%s [OPTION]... FILE"
msgstr ""
-#: abc2ly.py:1351
+#: abc2ly.py:1344
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input."
msgstr ""
-#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+#: abc2ly.py:1348 etf2ly.py:1184 midi2ly.py:874
msgid "write output to FILE"
msgstr ""
-#: abc2ly.py:1357
+#: abc2ly.py:1350
msgid "be strict about succes"
msgstr ""
-#: abc2ly.py:1359
+#: abc2ly.py:1352
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
-#: midi2ly.py:911 musicxml2ly.py:505
+#: abc2ly.py:1354 convert-ly.py:103 etf2ly.py:1192 lilypond-book.py:161
+#: midi2ly.py:900 musicxml2ly.py:506
msgid "Report bugs via"
msgstr ""
-#: convert-ly.py:41
+#: convert-ly.py:32
msgid ""
"Update LilyPond input to newer version. By default, update from the\n"
"version taken from the \\version command, to the current LilyPond version."
msgstr ""
-#: convert-ly.py:43 lilypond-book.py:73
+#: convert-ly.py:34 lilypond-book.py:59
msgid "Examples:"
msgstr ""
-#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
+#: convert-ly.py:47 lilypond-book.py:83 warn.cc:48 input.cc:90
#, c-format, python-format
msgid "warning: %s"
msgstr ""
-#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
+#: convert-ly.py:50 lilypond-book.py:86 warn.cc:54 input.cc:96 input.cc:104
#, c-format, python-format
msgid "error: %s"
msgstr ""
-#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:87
msgid "Distributed under terms of the GNU General Public License."
msgstr ""
-#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:107 midi2ly.py:88
msgid "It comes with NO WARRANTY."
msgstr ""
-#: convert-ly.py:86 convert-ly.py:106
+#: convert-ly.py:77 convert-ly.py:97
msgid "VERSION"
msgstr ""
-#: convert-ly.py:88
+#: convert-ly.py:79
msgid "start from VERSION [default: \\version found in file]"
msgstr ""
-#: convert-ly.py:91
+#: convert-ly.py:82
msgid "edit in place"
msgstr ""
-#: convert-ly.py:94
+#: convert-ly.py:85
msgid "do not add \\version command if missing"
msgstr ""
-#: convert-ly.py:100
+#: convert-ly.py:91
msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
msgstr ""
-#: convert-ly.py:105
+#: convert-ly.py:96
msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
msgstr ""
-#: convert-ly.py:153
+#: convert-ly.py:144
msgid "Applying conversion: "
msgstr ""
-#: convert-ly.py:166
+#: convert-ly.py:157
msgid "Error while converting"
msgstr ""
-#: convert-ly.py:168
+#: convert-ly.py:159
msgid "Stopping at last succesful rule"
msgstr ""
-#: convert-ly.py:190
+#: convert-ly.py:181
#, python-format
msgid "Processing `%s'... "
msgstr ""
-#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#: convert-ly.py:268 relocate.cc:363 source-file.cc:54
#, c-format, python-format
msgid "cannot open file: `%s'"
msgstr ""
-#: convert-ly.py:284
+#: convert-ly.py:275
#, python-format
msgid "cannot determine version for `%s'. Skipping"
msgstr ""
-#: etf2ly.py:1196
+#: etf2ly.py:1180
#, python-format
msgid "%s [OPTION]... ETF-FILE"
msgstr ""
-#: etf2ly.py:1198
+#: etf2ly.py:1182
msgid ""
"Enigma Transport Format is a format used by Coda Music Technology's\n"
"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond "
"file."
msgstr ""
-#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:499 main.cc:154 main.cc:159
msgid "FILE"
msgstr ""
-#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+#: etf2ly.py:1187 lilypond-book.py:158 midi2ly.py:888 main.cc:163
msgid "show warranty and copyright"
msgstr ""
-#: lilypond-book.py:71
+#: lilypond-book.py:57
msgid ""
"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
msgstr ""
-#: lilypond-book.py:78
+#: lilypond-book.py:64
msgid "BOOK"
msgstr ""
-#: lilypond-book.py:87
+#: lilypond-book.py:72
#, python-format
msgid "Exiting (%d)..."
msgstr ""
-#: lilypond-book.py:119
+#: lilypond-book.py:104
#, python-format
msgid "Copyright (c) %s by"
msgstr ""
-#: lilypond-book.py:129
+#: lilypond-book.py:114
msgid "FILTER"
msgstr ""
-#: lilypond-book.py:132
+#: lilypond-book.py:117
msgid "pipe snippets through FILTER [convert-ly -n -]"
msgstr ""
-#: lilypond-book.py:135
+#: lilypond-book.py:120
msgid ""
"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
msgstr ""
-#: lilypond-book.py:138
+#: lilypond-book.py:123
msgid "add DIR to include path"
msgstr ""
-#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+#: lilypond-book.py:124 lilypond-book.py:136 main.cc:153
msgid "DIR"
msgstr ""
-#: lilypond-book.py:143
+#: lilypond-book.py:129
+msgid "PAD"
+msgstr ""
+
+#: lilypond-book.py:135
msgid "write output to DIR"
msgstr ""
-#: lilypond-book.py:147
+#: lilypond-book.py:140
msgid "COMMAND"
msgstr ""
-#: lilypond-book.py:148
+#: lilypond-book.py:141
msgid "process ly_files using COMMAND FILE..."
msgstr ""
-#: lilypond-book.py:154
+#: lilypond-book.py:147
msgid "Create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:157
+#: lilypond-book.py:150
msgid ""
"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
"must use this with dvips -h INPUT.psfonts"
msgstr ""
-#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
+#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:490 main.cc:162
msgid "be verbose"
msgstr ""
-#: lilypond-book.py:773
+#: lilypond-book.py:768
#, python-format
msgid "file not found: %s"
msgstr ""
-#: lilypond-book.py:1004
+#: lilypond-book.py:999
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr ""
-#: lilypond-book.py:1007
+#: lilypond-book.py:1002
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr ""
-#: lilypond-book.py:1011
+#: lilypond-book.py:1006
#, python-format
msgid "deprecated ly-option used: %s"
msgstr ""
-#: lilypond-book.py:1014
+#: lilypond-book.py:1009
#, python-format
msgid "compatibility mode translation: %s"
msgstr ""
-#: lilypond-book.py:1033
+#: lilypond-book.py:1028
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr ""
-#: lilypond-book.py:1388
+#: lilypond-book.py:1382
#, python-format
msgid "Opening filter `%s'"
msgstr ""
-#: lilypond-book.py:1405
+#: lilypond-book.py:1399
#, python-format
msgid "`%s' failed (%d)"
msgstr ""
-#: lilypond-book.py:1406
+#: lilypond-book.py:1400
msgid "The error log is as follows:"
msgstr ""
-#: lilypond-book.py:1476
+#: lilypond-book.py:1472
msgid "cannot find \\begin{document} in LaTeX document"
msgstr ""
-#: lilypond-book.py:1586
+#: lilypond-book.py:1583
msgid "Writing snippets..."
msgstr ""
-#: lilypond-book.py:1591
+#: lilypond-book.py:1588
msgid "Processing..."
msgstr ""
-#: lilypond-book.py:1595
+#: lilypond-book.py:1592
msgid "All snippets are up to date..."
msgstr ""
-#: lilypond-book.py:1605
+#: lilypond-book.py:1602
#, python-format
msgid "cannot determine format for: %s"
msgstr ""
-#: lilypond-book.py:1616
+#: lilypond-book.py:1613
#, python-format
msgid "%s is up to date."
msgstr ""
-#: lilypond-book.py:1622
+#: lilypond-book.py:1619
#, python-format
msgid "Writing `%s'..."
msgstr ""
-#: lilypond-book.py:1677
+#: lilypond-book.py:1674
msgid "Output would overwrite input file; use --output."
msgstr ""
-#: lilypond-book.py:1681
+#: lilypond-book.py:1678
#, python-format
msgid "Reading %s..."
msgstr ""
-#: lilypond-book.py:1700
+#: lilypond-book.py:1697
msgid "Dissecting..."
msgstr ""
-#: lilypond-book.py:1716
+#: lilypond-book.py:1713
#, python-format
msgid "Compiling %s..."
msgstr ""
-#: lilypond-book.py:1725
+#: lilypond-book.py:1722
#, python-format
msgid "Processing include: %s"
msgstr ""
-#: lilypond-book.py:1739
+#: lilypond-book.py:1736
#, python-format
msgid "Removing `%s'"
msgstr ""
-#: lilypond-book.py:1815
-#, python-format
-msgid "Writing fonts to %s..."
-msgstr ""
-
-#: lilypond-book.py:1830
+#: lilypond-book.py:1769
msgid "option --psfonts not used"
msgstr ""
-#: lilypond-book.py:1831
+#: lilypond-book.py:1770
msgid "processing with dvips will have no fonts"
msgstr ""
-#: lilypond-book.py:1834
+#: lilypond-book.py:1773
msgid "DVIPS usage:"
msgstr ""
-#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+#: lilypond-book.py:1829
+#, python-format
+msgid "Writing fonts to %s..."
+msgstr ""
+
+#: midi2ly.py:95 lily-library.scm:577 lily-library.scm:586
msgid "warning: "
msgstr ""
-#: midi2ly.py:109 midi2ly.py:924
+#: midi2ly.py:98 midi2ly.py:913
msgid "error: "
msgstr ""
-#: midi2ly.py:110
+#: midi2ly.py:99
msgid "Exiting ... "
msgstr ""
-#: midi2ly.py:857
+#: midi2ly.py:846
#, python-format
msgid "%s output to `%s'..."
msgstr ""
-#: midi2ly.py:871 musicxml2ly.py:485
+#: midi2ly.py:860 musicxml2ly.py:486
#, python-format
msgid "Convert %s to LilyPond input."
msgstr ""
-#: midi2ly.py:875
+#: midi2ly.py:864
msgid "print absolute pitches"
msgstr ""
-#: midi2ly.py:877 midi2ly.py:889
+#: midi2ly.py:866 midi2ly.py:878
msgid "DUR"
msgstr ""
-#: midi2ly.py:878
+#: midi2ly.py:867
msgid "quantise note durations on DUR"
msgstr ""
-#: midi2ly.py:881
+#: midi2ly.py:870
msgid "print explicit durations"
msgstr ""
-#: midi2ly.py:882
+#: midi2ly.py:871
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr ""
-#: midi2ly.py:883
+#: midi2ly.py:872
msgid "ALT[:MINOR]"
msgstr ""
-#: midi2ly.py:888
+#: midi2ly.py:877
msgid "quantise note starts on DUR"
msgstr ""
-#: midi2ly.py:891
+#: midi2ly.py:880
msgid "DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:894
+#: midi2ly.py:883
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:902
+#: midi2ly.py:891
msgid "treat every text as a lyric"
msgstr ""
-#: midi2ly.py:905
+#: midi2ly.py:894
msgid "Examples"
msgstr ""
-#: midi2ly.py:925
+#: midi2ly.py:914
msgid "no files specified on command line."
msgstr ""
-#: musicxml2ly.py:473
+#: musicxml2ly.py:474
msgid "musicxml2ly FILE.xml"
msgstr ""
-#: musicxml2ly.py:476
+#: musicxml2ly.py:477
#, python-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information."
msgstr ""
-#: musicxml2ly.py:495
+#: musicxml2ly.py:496
msgid "Use lxml.etree; uses less memory and cpu time."
msgstr ""
-#: musicxml2ly.py:503
+#: musicxml2ly.py:504
msgid "set output filename to FILE"
msgstr ""
msgid "invalid argument `%s' to option `%s'"
msgstr ""
-#: warn.cc:68 grob.cc:559 input.cc:82
+#: warn.cc:68 grob.cc:557 input.cc:82
#, c-format
msgid "programming error: %s"
msgstr ""
msgid "continuing, cross fingers"
msgstr ""
-#: accidental-engraver.cc:240
+#: accidental-engraver.cc:247
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr ""
-#: accidental-engraver.cc:268
+#: accidental-engraver.cc:274
#, c-format
-msgid "ignoring unknown accidental: %s"
+msgid "ignoring unknown accidental rule: %s"
msgstr ""
-#: accidental-engraver.cc:284
+#: accidental-engraver.cc:290
#, c-format
msgid "pair or context-name expected for accidental rule, found %s"
msgstr ""
-#: accidental.cc:243 key-signature-interface.cc:133
+#: accidental.cc:160
#, c-format
-msgid "accidental `%s' not found"
+msgid "Could not find glyph-name for alteration %s"
+msgstr ""
+
+#: accidental.cc:175
+msgid "natural alteration glyph not found"
msgstr ""
-#: align-interface.cc:222
+#: align-interface.cc:191
msgid ""
"vertical alignment called before line-breaking.\n"
"Only do cross-staff spanners with PianoStaff."
msgstr ""
-#: align-interface.cc:329
+#: align-interface.cc:324
msgid "tried to get a translation for something that is no child of mine"
msgstr ""
-#: all-font-metrics.cc:173
+#: all-font-metrics.cc:143
#, c-format
msgid "cannot find font: `%s'"
msgstr ""
msgid "removing this vertical group"
msgstr ""
-#: axis-group-interface.cc:96
+#: axis-group-interface.cc:109
msgid "tried to calculate pure-height at a non-breakpoint"
msgstr ""
-#: axis-group-interface.cc:370
+#: axis-group-interface.cc:449
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr ""
-#: axis-group-interface.cc:383
-#, c-format
-msgid "outside-staff object %s has an empty extent"
-msgstr ""
-
#: bar-check-iterator.cc:73
#, c-format
msgid "barcheck failed at: %s"
msgstr ""
-#: beam-engraver.cc:128
+#: beam-engraver.cc:126
msgid "already have a beam"
msgstr ""
-#: beam-engraver.cc:196
+#: beam-engraver.cc:202
msgid "unterminated beam"
msgstr ""
-#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
+#: beam-engraver.cc:244 chord-tremolo-engraver.cc:138
msgid "stem must have Rhythmic structure"
msgstr ""
-#: beam-engraver.cc:246
+#: beam-engraver.cc:252
msgid "stem does not fit in beam"
msgstr ""
-#: beam-engraver.cc:247
+#: beam-engraver.cc:253
msgid "beam was started here"
msgstr ""
-#: beam-quanting.cc:307
+#: beam-quanting.cc:314
msgid "no feasible beam position"
msgstr ""
-#: beam.cc:144
+#: beam.cc:160
msgid "removing beam with no stems"
msgstr ""
-#: beam.cc:1007
+#: beam.cc:1035
msgid "no viable initial configuration found: may not find good beam slope"
msgstr ""
-#: break-alignment-interface.cc:208
+#: break-alignment-interface.cc:195
#, c-format
msgid "No spacing entry from %s to `%s'"
msgstr ""
msgid "unterminated chord tremolo"
msgstr ""
-#: chord-tremolo-iterator.cc:33
+#: chord-tremolo-iterator.cc:35
#, c-format
msgid "expect 2 elements for chord tremolo, found %d"
msgstr ""
msgstr ""
#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:176 constrained-breaking.cc:193
+#: constrained-breaking.cc:167 constrained-breaking.cc:184
msgid "cannot find line breaking that satisfies constraints"
msgstr ""
msgid "program has no such type: `%s'"
msgstr ""
-#: context-property.cc:76
+#: context-property.cc:30
msgid "need symbol arguments for \\override and \\revert"
msgstr ""
-#: context.cc:151
+#: context.cc:144
#, c-format
msgid "cannot find or create new `%s'"
msgstr ""
-#: context.cc:213
+#: context.cc:206
#, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr ""
-#: context.cc:276
+#: context.cc:268
#, c-format
msgid "Invalid CreateContext event: Cannot create %s context"
msgstr ""
-#: context.cc:388
+#: context.cc:380
#, c-format
msgid "cannot find or create: `%s'"
msgstr ""
msgid "Unknown event class %s"
msgstr ""
-#: dots.cc:38
+#: dots.cc:37
#, c-format
msgid "dot `%s' not found"
msgstr ""
-#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:184
msgid "cannot find start of (de)crescendo"
msgstr ""
-#: dynamic-engraver.cc:195
+#: dynamic-engraver.cc:193
msgid "already have a decrescendo"
msgstr ""
-#: dynamic-engraver.cc:197
+#: dynamic-engraver.cc:195
msgid "already have a crescendo"
msgstr ""
-#: dynamic-engraver.cc:200
+#: dynamic-engraver.cc:198
msgid "cresc starts here"
msgstr ""
-#: dynamic-engraver.cc:323
+#: dynamic-engraver.cc:327
msgid "unterminated (de)crescendo"
msgstr ""
-#: extender-engraver.cc:131 extender-engraver.cc:140
+#: extender-engraver.cc:142 extender-engraver.cc:151
msgid "unterminated extender"
msgstr ""
msgid "adding font directory: %s"
msgstr ""
-#: general-scheme.cc:160
+#: general-scheme.cc:180
msgid "infinity or NaN encountered while converting Real number"
msgstr ""
-#: general-scheme.cc:161
+#: general-scheme.cc:181
msgid "setting to zero"
msgstr ""
-#: glissando-engraver.cc:92
+#: general-scheme.cc:399 output-ps.scm:61
+msgid "Found infinity or nan in output. Substituting 0.0"
+msgstr ""
+
+#: glissando-engraver.cc:94
msgid "unterminated glissando"
msgstr ""
-#: global-context-scheme.cc:91 global-context-scheme.cc:107
+#: global-context-scheme.cc:87 global-context-scheme.cc:105
msgid "no music found in score"
msgstr ""
-#: global-context-scheme.cc:97
+#: global-context-scheme.cc:95
msgid "Interpreting music... "
msgstr ""
-#: global-context-scheme.cc:120
+#: global-context-scheme.cc:118
#, c-format
msgid "elapsed time: %.2f seconds"
msgstr ""
msgid "Grob `%s' has no interface for property `%s'"
msgstr ""
-#: grob.cc:253
+#: grob-property.cc:34
+#, c-format
+msgid "%d: %s"
+msgstr ""
+
+#: grob-property.cc:164
+#, c-format
+msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
+msgstr ""
+
+#: grob.cc:251
msgid "Infinity or NaN encountered"
msgstr ""
-#: hairpin.cc:183
+#: hairpin.cc:187
msgid "decrescendo too small"
msgstr ""
+#: hairpin.cc:188
+msgid "crescendo too small"
+msgstr ""
+
#: horizontal-bracket-engraver.cc:59
msgid "do not have that many brackets"
msgstr ""
msgid "unterminated hyphen; removing"
msgstr ""
-#: includable-lexer.cc:53
-msgid "include files are not allowed in safe mode"
-msgstr ""
-
-#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:117
#, c-format
msgid "cannot find file: `%s'"
msgstr ""
-#: includable-lexer.cc:62 lily-parser-scheme.cc:107
+#: includable-lexer.cc:55 lily-parser-scheme.cc:108
#, c-format
msgid "(search path: `%s')"
msgstr ""
msgid "position unknown"
msgstr ""
+#: key-signature-interface.cc:71
+#, c-format
+msgid "No glyph found for alteration: %s"
+msgstr ""
+
+#: key-signature-interface.cc:81
+msgid "alteration not found"
+msgstr ""
+
#: ligature-engraver.cc:93
msgid "cannot find start of ligature"
msgstr ""
msgid "ligature was started here"
msgstr ""
-#: lily-guile.cc:92
+#: lily-guile.cc:78
#, c-format
msgid "(load path: `%s')"
msgstr ""
-#: lily-guile.cc:518
+#: lily-guile.cc:438
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr ""
-#: lily-guile.cc:521
+#: lily-guile.cc:441
msgid "perhaps a typing error?"
msgstr ""
-#: lily-guile.cc:527
+#: lily-guile.cc:448
msgid "doing assignment anyway"
msgstr ""
-#: lily-guile.cc:539
+#: lily-guile.cc:460
#, c-format
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr ""
-#: lily-lexer.cc:254
+#: lily-lexer.cc:250
+msgid "include files are not allowed in safe mode"
+msgstr ""
+
+#: lily-lexer.cc:269
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr ""
-#: lily-lexer.cc:269
+#: lily-lexer.cc:284
#, c-format
msgid "error at EOF: %s"
msgstr ""
-#: lily-parser-scheme.cc:29
+#: lily-parser-scheme.cc:30
#, c-format
msgid "deprecated function called: %s"
msgstr ""
-#: lily-parser-scheme.cc:88
+#: lily-parser-scheme.cc:89
#, c-format
msgid "Changing working directory to: `%s'"
msgstr ""
-#: lily-parser-scheme.cc:106
+#: lily-parser-scheme.cc:107
#, c-format
msgid "cannot find init file: `%s'"
msgstr ""
-#: lily-parser-scheme.cc:125
+#: lily-parser-scheme.cc:126
#, c-format
msgid "Processing `%s'"
msgstr ""
msgid "braces do not match"
msgstr ""
-#: lyric-combine-music-iterator.cc:291
+#: lyric-combine-music-iterator.cc:327
#, c-format
msgid "cannot find Voice `%s'"
msgstr ""
-#: main.cc:116
+#: lyric-engraver.cc:158
+msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
+msgstr ""
+
+#: main.cc:100
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information.\n"
msgstr ""
-#: main.cc:122
+#: main.cc:106
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License version 2\n"
"Boston, MA 02111-1307, USA.\n"
msgstr ""
-#: main.cc:153
-msgid "BACK"
-msgstr ""
-
-#: main.cc:153
-msgid ""
-"use backend BACK (eps, gnome, ps [default],\n"
-"scm, svg, tex, texstr)"
-msgstr ""
-
-#: main.cc:155
+#: main.cc:137
msgid "SYM[=VAL]"
msgstr ""
-#: main.cc:156
+#: main.cc:138
msgid ""
-"set Scheme option SYM to VAL (default: #t)\n"
+"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
msgstr ""
-#: main.cc:159
+#: main.cc:141
msgid "EXPR"
msgstr ""
-#: main.cc:159
+#: main.cc:141
msgid "evaluate scheme code"
msgstr ""
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:162
+#: main.cc:144
msgid "FORMATs"
msgstr ""
-#: main.cc:162
+#: main.cc:144
msgid "dump FORMAT,... Also as separate options:"
msgstr ""
-#: main.cc:163
+#: main.cc:145
msgid "generate DVI (tex backend only)"
msgstr ""
-#: main.cc:164
+#: main.cc:146
msgid "generate PDF (default)"
msgstr ""
-#: main.cc:165
+#: main.cc:147
msgid "generate PNG"
msgstr ""
-#: main.cc:166
+#: main.cc:148
msgid "generate PostScript"
msgstr ""
-#: main.cc:167
+#: main.cc:149
msgid "generate TeX (tex backend only)"
msgstr ""
-#: main.cc:168
+#: main.cc:150
msgid "show this help and exit"
msgstr ""
-#: main.cc:169
+#: main.cc:151
msgid "FIELD"
msgstr ""
-#: main.cc:169
+#: main.cc:151
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr ""
-#: main.cc:171
+#: main.cc:153
msgid "add DIR to search path"
msgstr ""
-#: main.cc:172
+#: main.cc:154
msgid "use FILE as init file"
msgstr ""
-#: main.cc:174
-msgid "USER,GROUP,JAIL,DIR"
+#: main.cc:156
+msgid "USER, GROUP, JAIL, DIR"
msgstr ""
-#: main.cc:174
+#: main.cc:156
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
msgstr ""
-#: main.cc:177
-msgid "do not generate printed output"
-msgstr ""
-
-#: main.cc:178
+#: main.cc:159
msgid "write output to FILE (suffix will be added)"
msgstr ""
-#: main.cc:179
-msgid "generate a preview of the first system"
-msgstr ""
-
-#: main.cc:180
+#: main.cc:160
msgid "relocate using directory of lilypond program"
msgstr ""
-#: main.cc:181
-msgid ""
-"disallow unsafe Scheme and PostScript\n"
-"operations"
-msgstr ""
-
-#: main.cc:183
+#: main.cc:161
msgid "show version number and exit"
msgstr ""
-#: main.cc:224
+#: main.cc:203
#, c-format
msgid ""
"Copyright (c) %s by\n"
msgstr ""
#. No version number or newline here. It confuses help2man.
-#: main.cc:251
+#: main.cc:230
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr ""
-#: main.cc:253
+#: main.cc:232
#, c-format
msgid "Typeset music and/or produce MIDI from FILE."
msgstr ""
-#: main.cc:255
+#: main.cc:234
#, c-format
msgid "LilyPond produces beautiful music notation."
msgstr ""
-#: main.cc:257
+#: main.cc:236
#, c-format
msgid "For more information, see %s"
msgstr ""
-#: main.cc:259
+#: main.cc:238
#, c-format
msgid "Options:"
msgstr ""
-#: main.cc:263
+#: main.cc:242
#, c-format
msgid "Report bugs via %s"
msgstr ""
-#: main.cc:309
+#: main.cc:288
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr ""
-#: main.cc:323
+#: main.cc:302
#, c-format
msgid "no such user: %s"
msgstr ""
-#: main.cc:325
+#: main.cc:304
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr ""
-#: main.cc:340
+#: main.cc:319
#, c-format
msgid "no such group: %s"
msgstr ""
-#: main.cc:342
+#: main.cc:321
#, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr ""
-#: main.cc:350
+#: main.cc:329
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr ""
-#: main.cc:357
+#: main.cc:336
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr ""
-#: main.cc:363
+#: main.cc:342
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr ""
-#: main.cc:369
+#: main.cc:348
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr ""
-#: main.cc:415
-#, c-format
-msgid "Evaluating %s"
-msgstr ""
-
-#: main.cc:645
+#: main.cc:589
#, c-format
msgid "exception caught: %s"
msgstr ""
msgid "Mensural_ligature: (join_right == 0)"
msgstr ""
-#: midi-item.cc:152
+#: midi-item.cc:81
#, c-format
msgid "no such MIDI instrument: `%s'"
msgstr ""
-#: midi-item.cc:285
-#, c-format
-msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-msgstr ""
-
#: midi-stream.cc:28
#, c-format
msgid "cannot open for write: %s: %s"
msgid "Sending non-event to context"
msgstr ""
-#: music.cc:141
+#: music.cc:140
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr ""
-#: music.cc:207
+#: music.cc:203
#, c-format
msgid "transposition by %s makes alteration larger than double"
msgstr ""
msgid "placing below"
msgstr ""
-#: note-collision.cc:457
+#: note-collision.cc:459
msgid "ignoring too many clashing note columns"
msgstr ""
msgid "cannot load font table: %s"
msgstr ""
-#: open-type-font.cc:98
+#: open-type-font.cc:42
#, c-format
-msgid "unsupported font format: %s"
+msgid "Free type error: %s"
msgstr ""
#: open-type-font.cc:100
#, c-format
-msgid "unknown error: %d reading font file: %s"
+msgid "unsupported font format: %s"
msgstr ""
-#: open-type-font.cc:173 open-type-font.cc:297
+#: open-type-font.cc:102
#, c-format
-msgid "FT_Get_Glyph_Name() returned error: %u"
+msgid "error reading font file %s: %s"
+msgstr ""
+
+#: open-type-font.cc:177
+#, c-format
+msgid "FT_Get_Glyph_Name () Freetype error: %s"
+msgstr ""
+
+#: open-type-font.cc:302 pango-font.cc:167
+#, c-format
+msgid "FT_Get_Glyph_Name () error: %s"
msgstr ""
#: page-turn-page-breaking.cc:205
msgid "Calculating page and line breaks (%d possible page breaks)..."
msgstr ""
-#: page-turn-page-breaking.cc:236 paper-score.cc:154
+#: page-turn-page-breaking.cc:236 paper-score.cc:146
msgid "Drawing systems..."
msgstr ""
-#: pango-font.cc:181
+#: pango-font.cc:184
#, c-format
msgid ""
"Glyph has no name, but font supports glyph naming.\n"
"Skipping glyph U+%0X, file %s"
msgstr ""
-#: pango-font.cc:224
+#: pango-font.cc:229
#, c-format
msgid "no PostScript font name for font `%s'"
msgstr ""
-#: pango-font.cc:272
+#: pango-font.cc:277
msgid "FreeType face has no PostScript font name"
msgstr ""
-#: paper-outputter-scheme.cc:33
+#: paper-column-engraver.cc:199
+msgid ""
+"forced break was overridden by some other event, should you be using bar "
+"checks?"
+msgstr ""
+
+#: paper-outputter-scheme.cc:30
#, c-format
msgid "Layout output to `%s'..."
msgstr ""
msgid "Preprocessing graphical objects..."
msgstr ""
-#: parse-scm.cc:83
+#: parse-scm.cc:87
msgid "GUILE signaled an error for the expression beginning here"
msgstr ""
msgid "unterminated percent repeat"
msgstr ""
-#: performance.cc:45
+#: performance.cc:43
msgid "Track..."
msgstr ""
-#: performance.cc:74
+#: performance.cc:72
msgid "MIDI channel wrapped around"
msgstr ""
-#: performance.cc:75
+#: performance.cc:73
msgid "remapping modulo 16"
msgstr ""
-#: performance.cc:103
+#: performance.cc:101
#, c-format
msgid "MIDI output to `%s'..."
msgstr ""
msgid "cannot find start of piano pedal bracket: `%s'"
msgstr ""
-#: program-option.cc:205
+#: program-option-scheme.cc:201
#, c-format
msgid "no such internal option: %s"
msgstr ""
msgid "Setting %s to %s"
msgstr ""
-#: relocate.cc:59
+#: relocate.cc:64
#, c-format
msgid "no such file: %s for %s"
msgstr ""
-#: relocate.cc:69 relocate.cc:87
+#: relocate.cc:74 relocate.cc:92
#, c-format
msgid "no such directory: %s for %s"
msgstr ""
-#: relocate.cc:79
+#: relocate.cc:84
#, c-format
msgid "%s=%s (prepend)\n"
msgstr ""
-#: relocate.cc:99
+#: relocate.cc:114
+#, c-format
+msgid "not relocating, no %s/ or current/ found under %s"
+msgstr ""
+
+#: relocate.cc:125
#, c-format
-msgid "Relocation: compile prefix=%s, new prefix=%s"
+msgid "Relocation: compile datadir=%s, new datadir=%s"
msgstr ""
-#: relocate.cc:129
+#: relocate.cc:138
#, c-format
msgid "Relocation: framework_prefix=%s"
msgstr ""
-#: relocate.cc:169
+#: relocate.cc:179
#, c-format
msgid "Relocation: is absolute: argv0=%s"
msgstr ""
-#: relocate.cc:176
+#: relocate.cc:186
#, c-format
msgid "Relocation: from cwd: argv0=%s"
msgstr ""
-#: relocate.cc:185
+#: relocate.cc:195
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"argv0=%s"
msgstr ""
-#: relocate.cc:354
+#: relocate.cc:229
+msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
+msgstr ""
+
+#: relocate.cc:357
#, c-format
msgid "Relocation file: %s"
msgstr ""
-#: relocate.cc:390
+#: relocate.cc:393
#, c-format
msgid "Unknown relocation command %s"
msgstr ""
-#: rest-collision.cc:151
+#: rest-collision.cc:145
msgid "cannot resolve rest collision: rest direction not set"
msgstr ""
-#: rest-collision.cc:165 rest-collision.cc:210
+#: rest-collision.cc:159 rest-collision.cc:204
msgid "too many colliding rests"
msgstr ""
-#: rest.cc:144
+#: rest.cc:132
#, c-format
msgid "rest `%s' not found"
msgstr ""
msgid "Aborting"
msgstr ""
-#: score.cc:225
+#: score.cc:167
msgid "already have music in score"
msgstr ""
-#: score.cc:226
+#: score.cc:168
msgid "this is the previous music"
msgstr ""
-#: score.cc:231
+#: score.cc:173
msgid "errors found, ignoring music expression"
msgstr ""
msgid "scheme encoding: "
msgstr ""
-#: simple-spacer.cc:375
-#, c-format
-msgid "No spring between column %d and next one"
-msgstr ""
-
-#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#: slur-engraver.cc:82
#, c-format
msgid "direction of %s invalid: %d"
msgstr ""
-#: slur-engraver.cc:157
+#: slur-engraver.cc:151
msgid "unterminated slur"
msgstr ""
-#: slur-engraver.cc:166
+#: slur-engraver.cc:163
msgid "cannot end slur"
msgstr ""
+#: slur.cc:355
+#, c-format
+msgid "Ignoring grob for slur: %s. avoid-slur not set?"
+msgstr ""
+
#: source-file.cc:74
#, c-format
msgid "expected to read %d characters, got %d"
msgstr ""
+#: spaceable-grob.cc:117
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr ""
+
#: staff-symbol-engraver.cc:62
msgid "staff-span event has no direction"
msgstr ""
msgid "weird stem size, check for narrow beams"
msgstr ""
-#: stem.cc:641
+#: stem.cc:652
#, c-format
msgid "flag `%s' not found"
msgstr ""
-#: stem.cc:652
+#: stem.cc:663
#, c-format
msgid "flag stroke `%s' not found"
msgstr ""
msgid "Element count %d."
msgstr ""
-#: system.cc:276
+#: system.cc:266
#, c-format
msgid "Grob count %d"
msgstr ""
-#: text-spanner-engraver.cc:61
+#: text-spanner-engraver.cc:60
msgid "cannot find start of text spanner"
msgstr ""
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
msgid "already have a text spanner"
msgstr ""
-#: text-spanner-engraver.cc:133
+#: text-spanner-engraver.cc:118
msgid "unterminated text spanner"
msgstr ""
-#: tie-engraver.cc:264
+#: tie-engraver.cc:267
msgid "lonely tie"
msgstr ""
msgid "unknown translator: `%s'"
msgstr ""
-#: translator-group.cc:151
+#: translator-group-ctors.cc:29
+#, c-format
+msgid "fatal error. Couldn't find type: %s"
+msgstr ""
+
+#: translator-group.cc:146
#, c-format
msgid "cannot find: `%s'"
msgstr ""
-#: translator.cc:332
+#: translator.cc:346
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr ""
-#: translator.cc:333
+#: translator.cc:347
#, c-format
msgid "Previous %s event here"
msgstr ""
-#: trill-spanner-engraver.cc:68
+#: trill-spanner-engraver.cc:67
msgid "cannot find start of trill spanner"
msgstr ""
-#: trill-spanner-engraver.cc:80
+#: trill-spanner-engraver.cc:79
msgid "already have a trill spanner"
msgstr ""
+#: tuplet-engraver.cc:96
+msgid "No tuplet to end"
+msgstr ""
+
#: vaticana-ligature-engraver.cc:388
#, c-format
msgid ""
msgstr ""
#. fixme: be more verbose.
-#: volta-engraver.cc:144
+#: volta-engraver.cc:143
msgid "cannot end volta spanner"
msgstr ""
-#: volta-engraver.cc:154
+#: volta-engraver.cc:153
msgid "already have a volta spanner, ending that one prematurely"
msgstr ""
-#: volta-engraver.cc:158
+#: volta-engraver.cc:157
msgid "also already have an ended spanner"
msgstr ""
-#: volta-engraver.cc:159
+#: volta-engraver.cc:158
msgid "giving up"
msgstr ""
-#: parser.yy:702
+#: parser.yy:704
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr ""
-#: parser.yy:726
+#: parser.yy:728
msgid "need \\paper for paper block"
msgstr ""
-#: parser.yy:1172
+#: parser.yy:1187
msgid "Grob name should be alphanumeric"
msgstr ""
-#: parser.yy:1475
+#: parser.yy:1485
msgid "second argument must be pitch list"
msgstr ""
-#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+#: parser.yy:1512 parser.yy:1517 parser.yy:1982
msgid "have to be in Lyric mode for lyrics"
msgstr ""
-#: parser.yy:1604
+#: parser.yy:1614
msgid "expecting string as script definition"
msgstr ""
-#: parser.yy:1759 parser.yy:1809
+#: parser.yy:1769 parser.yy:1819
#, c-format
msgid "not a duration: %d"
msgstr ""
-#: parser.yy:1926
+#: parser.yy:1936
msgid "have to be in Note mode for notes"
msgstr ""
-#: parser.yy:1987
+#: parser.yy:1997
msgid "have to be in Chord mode for chords"
msgstr ""
msgid "Brace found at end of markup. Did you forget a space?"
msgstr ""
-#: lexer.ll:659
+#: lexer.ll:663
#, c-format
msgid "invalid character: `%c'"
msgstr ""
-#: lexer.ll:774 lexer.ll:775
+#: lexer.ll:778
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr ""
-#: lexer.ll:880 lexer.ll:881
+#: lexer.ll:884
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr ""
-#: lexer.ll:881 lexer.ll:882
+#: lexer.ll:885
msgid "consider updating the input with the convert-ly script"
msgstr ""
-#: lexer.ll:887 lexer.ll:888
+#: lexer.ll:891
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr ""
-#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
+#: backend-library.scm:19 lily.scm:752 ps-to-png.scm:58
#, scheme-format
msgid "Invoking `~a'..."
msgstr ""
msgid "Converting to ~a..."
msgstr ""
-#: backend-library.scm:145
+#: backend-library.scm:146
#, scheme-format
msgid "Writing header field `~a' to `~a'..."
msgstr ""
msgid "translator listens to nonexisting event class ~A"
msgstr ""
-#: define-markup-commands.scm:255
+#: define-markup-commands.scm:273
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr ""
-#: define-markup-commands.scm:1297
+#: define-markup-commands.scm:1315
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr ""
-#: define-music-types.scm:751
+#: define-music-types.scm:743
#, scheme-format
msgid "symbol expected: ~S"
msgstr ""
-#: define-music-types.scm:754
+#: define-music-types.scm:746
#, scheme-format
msgid "cannot find music object: ~S"
msgstr ""
-#: define-music-types.scm:774
+#: define-music-types.scm:766
#, scheme-format
msgid "unknown repeat type `~S'"
msgstr ""
-#: define-music-types.scm:775
+#: define-music-types.scm:767
msgid "See music-types.scm for supported repeats"
msgstr ""
msgid "cannot find description for property ~S (~S)"
msgstr ""
-#: framework-eps.scm:91 framework-eps.scm:92
+#: framework-eps.scm:89
#, scheme-format
msgid "Writing ~a..."
msgstr ""
-#: framework-ps.scm:279
+#: framework-ps.scm:281
#, scheme-format
msgid "cannot embed ~S=~S"
msgstr ""
-#: framework-ps.scm:332
+#: framework-ps.scm:334
#, scheme-format
msgid "cannot extract file matching ~a from ~a"
msgstr ""
-#: framework-ps.scm:349
+#: framework-ps.scm:351
#, scheme-format
msgid "do not know how to embed ~S=~S"
msgstr ""
-#: framework-ps.scm:380
+#: framework-ps.scm:382
#, scheme-format
msgid "do not know how to embed font ~s ~s ~s"
msgstr ""
-#: framework-ps.scm:729
+#: framework-ps.scm:731
#, scheme-format
msgid "cannot convert <stdout> to ~S"
msgstr ""
-#: framework-ps.scm:748 framework-ps.scm:751
+#: framework-ps.scm:750 framework-ps.scm:753
#, scheme-format
msgid "cannot generate ~S using the postscript back-end"
msgstr ""
-#: framework-ps.scm:758
+#: framework-ps.scm:760
msgid ""
"\n"
-"The PostScript backend does not support the 'classic'\n"
-"framework. Use the EPS backend instead,\n"
+"The PostScript backend does not support the system-by-system \n"
+"output. For that, use the EPS backend instead,\n"
"\n"
" lilypond -b eps <file>\n"
"\n"
-"or remove the lilypond-book specific settings from the input.\n"
+"If have cut & pasted a lilypond fragment from a webpage, be sure\n"
+"to only remove anything before\n"
+"\n"
+" %% ****************************************************************\n"
+" %% Start cut-&-pastable-section\n"
+" %% ****************************************************************\n"
+"\n"
msgstr ""
#: framework-tex.scm:360
msgid "Error in beam quanting. Expected ~S 0, found ~S."
msgstr ""
-#: layout-page-layout.scm:357
+#: layout-page-layout.scm:115
+msgid "Can't fit systems on page -- ignoring between-system-padding"
+msgstr ""
+
+#: layout-page-layout.scm:449
msgid "Calculating page breaks..."
msgstr ""
-#: lily-library.scm:593
+#: lily-library.scm:545
#, scheme-format
msgid "unknown unit: ~S"
msgstr ""
-#: lily-library.scm:626
+#: lily-library.scm:579
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr ""
-#: lily-library.scm:633
+#: lily-library.scm:587
msgid "old relative compatibility not used"
msgstr ""
-#: lily.scm:144
+#: lily.scm:172
#, scheme-format
msgid "cannot find: ~A"
msgstr ""
-#: lily.scm:209
+#: lily.scm:237
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr ""
-#: lily.scm:525 lily.scm:589
+#: lily.scm:618
+#, scheme-format
+msgid "job ~a terminated with signal: ~a"
+msgstr ""
+
+#: lily.scm:621
+#, scheme-format
+msgid ""
+"logfile ~a (exit ~a):\n"
+"~a"
+msgstr ""
+
+#: lily.scm:648 lily.scm:742
#, scheme-format
msgid "failed files: ~S"
msgstr ""
-#: lily.scm:579
+#: lily.scm:732
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr ""
msgid "Music head function must return Music object"
msgstr ""
-#: ly-syntax-constructors.scm:136
+#: ly-syntax-constructors.scm:139
#, scheme-format
msgid "Invalid property operation ~a"
msgstr ""
-#: markup.scm:123
+#: markup.scm:94
#, scheme-format
msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S"
msgstr ""
-#: markup.scm:129
+#: markup.scm:100
#, scheme-format
msgid "Invalid argument in position ~A. Expect: ~A, found: ~S."
msgstr ""
-#: music-functions.scm:213
+#: music-functions.scm:228
msgid "More alternatives than repeats. Junking excess alternatives"
msgstr ""
-#: music-functions.scm:232
+#: music-functions.scm:250
#, scheme-format
msgid "expecting 2 elements for chord tremolo, found ~a"
msgstr ""
-#: music-functions.scm:538
+#: music-functions.scm:573
#, scheme-format
msgid "music expected: ~S"
msgstr ""
#. FIXME: uncomprehensable message
-#: music-functions.scm:589
+#: music-functions.scm:623
#, scheme-format
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr ""
-#: music-functions.scm:748
+#: music-functions.scm:773
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr ""
-#: music-functions.scm:942
+#: music-functions.scm:970
#, scheme-format
msgid "unknown accidental style: ~S"
msgstr ""
-#: output-ps.scm:315
+#: output-ps.scm:276
msgid "utf-8-string encountered in PS backend"
msgstr ""
msgid "cannot decypher Pango description: ~a"
msgstr ""
-#: output-tex.scm:98
+#: output-tex.scm:97
#, scheme-format
msgid "cannot find ~a in ~a"
msgstr ""
-#: paper.scm:69
-msgid "Not in toplevel scope"
+#: paper.scm:84
+msgid "set-global-staff-size: not in toplevel scope"
msgstr ""
-#: paper.scm:117
+#: paper.scm:132
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr ""
-#: paper.scm:129
+#: paper.scm:144
#, scheme-format
msgid "Unknown papersize: ~a"
msgstr ""
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:144
+#: paper.scm:159
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr ""
-#: parser-clef.scm:126
+#: parser-clef.scm:127
#, scheme-format
msgid "unknown clef type `~a'"
msgstr ""
-#: parser-clef.scm:127
-msgid "see scm/clef.scm for supported clefs"
+#: parser-clef.scm:128
+#, scheme-format
+msgid "supported clefs: ~a"
msgstr ""
-#: ps-to-png.scm:88
+#: ps-to-png.scm:64
#, scheme-format
msgid "~a exited with status: ~S"
msgstr ""
-#: to-xml.scm:190
+#: to-xml.scm:180
#, scheme-format
msgid "assertion failed: ~S"
msgstr ""
(apply define-grob-property x))
`(
- (X-offset ,number? "The horizontal amount that this object is moved relative to its X-parent")
+ (X-extent ,number-pair? "Hard coded extent in X@tie{}direction.")
+ (X-offset ,number? "The horizontal amount that this object is
+moved relative to its X-parent.")
+ (Y-extent ,number-pair? "See @code{X-extent}.")
(Y-offset ,number? "The vertical amount that this object is moved
-relative to its Y-parent")
- (alteration ,number? "alteration numbers for accidental")
- (after-line-breaking ,boolean? "Dummy property, used to trigger callback for after-line-breaking")
- (alteration-alist ,list? "List of @code{(@var{pitch}
-. @var{accidental})} pairs for key signature.")
- (add-stem-support ,boolean? "If set, the Stem object is included in this script's support")
+relative to its Y-parent.")
+
+ (add-stem-support ,boolean? "If set, the @code{Stem} object is
+included in this script's support.")
+ (after-line-breaking ,boolean? "Dummy property, used to trigger
+callback for @code{after-line-breaking}.")
(align-dir ,ly:dir? "Which side to align? @code{-1}: left side,
@code{0}: around center of width, @code{1}: right side.")
- (allow-loose-spacing ,boolean? "If set, column can be detached from main spacing.")
- (arpeggio-direction ,ly:dir? "If set, put an
-arrow on the arpeggio squiggly line.")
+ (allow-loose-spacing ,boolean? "If set, column can be detached
+from main spacing.")
+ (alteration ,number? "Alteration numbers for accidental.")
+ (alteration-alist ,list? "List of @code{(@var{pitch}
+. @var{accidental})} pairs for key signature.")
+ (arpeggio-direction ,ly:dir? "If set, put an arrow on the
+arpeggio squiggly line.")
(arrow-length ,number? "Arrow length.")
(arrow-width ,number? "Arrow width.")
- (auto-knee-gap ,ly:dimension? "If a gap is found between note heads
-where a horizontal beam fits that is larger than this number, make a kneed beam.")
- (average-spacing-wishes ,boolean? "If set, the spacing wishes are averaged over staves.")
+ (auto-knee-gap ,ly:dimension? "If a gap is found between note
+heads where a horizontal beam fits that is larger than this number,
+make a kneed beam.")
+ (average-spacing-wishes ,boolean? "If set, the spacing wishes
+are averaged over staves.")
(avoid-note-head ,boolean? "If set, the stem of a chord does not
-pass through all note heads, but starts at the last note head. ")
- (axes ,list? "list of axis numbers.
-In the case of alignment grobs, this should contain only one number.")
- (bar-size ,ly:dimension? "size of a bar line.")
- (barre-type ,symbol? "Type of barre indication used in a fret diagram.
-Choices include @code{curved} and @code{straight}.")
- (base-shortest-duration ,ly:moment?
- "Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.")
+pass through all note heads, but starts at the last note head.")
+ (avoid-slur ,symbol? "Method of handling slur collisions.
+Choices are @code{around}, @code{inside}, @code{outside}. If unset,
+scripts and slurs ignore each other. @code{around} only moves the
+script if there is a collision; @code{outside} always moves the
+script.")
+ (axes ,list? "List of axis numbers. In the case of alignment
+grobs, this should contain only one number.")
+
+ (bar-size ,ly:dimension? "The size of a bar line.")
+ (barre-type ,symbol? "Type of barre indication used in a fret
+diagram. Choices include @code{curved} and @code{straight}.")
+ (base-shortest-duration ,ly:moment? "Spacing is based on the
+shortest notes in a piece. Normally, pieces are spaced as if notes
+at least as short as this are present.")
(baseline-skip ,ly:dimension? "Distance between base lines of
- multiple lines of text.")
- (beam-thickness ,ly:dimension? "thickness, measured in staff-space.")
- (beam-width ,ly:dimension? "width of the tremolo sign.")
+multiple lines of text.")
+ (beam-thickness ,ly:dimension? "Beam thickness, measured in
+@code{staff-space} units.")
+ (beam-width ,ly:dimension? "Width of the tremolo sign.")
(beamed-stem-shorten ,list? "How much to shorten beamed stems,
-when their direction is forced. It is a list, since the value is different
-depending on the number flags/beams.")
- (beaming ,pair?
- "Pair of number lists. Each number list specifies which
-beams to make. 0 is the central beam, 1 is the next beam toward the
-note etc. This information is used to determine how to connect the
-beaming patterns from stem to stem inside a beam.")
- (before-line-breaking ,boolean? "Dummy property, used to trigger a callback function.")
- (between-cols ,pair? "Where to attach a loose column to")
- (bound-padding ,number? "The amount of padding to insert around spanner bounds.")
- (bound-details ,list? "alist of properties for determining attachments of spanners to edges.")
+when their direction is forced. It is a list, since the value is
+different depending on the number of flags and beams.")
+ (beaming ,pair? "Pair of number lists. Each number list
+specifies which beams to make. @code{0}@tie{}is the central beam,
+@code{1}@tie{}is the next beam toward the note, etc. This
+information is used to determine how to connect the beaming patterns
+from stem to stem inside a beam.")
+ (before-line-breaking ,boolean? "Dummy property, used to trigger
+a callback function.")
+ (between-cols ,pair? "Where to attach a loose column to.")
+ (bound-padding ,number? "The amount of padding to insert around
+spanner bounds.")
+ (bound-details ,list? "An alist of properties for determining
+attachments of spanners to edges.")
(bracket-flare ,number-pair? "A pair of numbers specifying how
-much edges of brackets should slant outward. Value 0.0 means straight
-edges")
- (breakable ,boolean? "Allow breaks here.")
+much edges of brackets should slant outward. Value @code{0.0} means
+straight edges.")
+ (bracket-visibility ,boolean-or-symbol? "This controls the
+visibility of the tuplet bracket. Setting it to false prevents
+printing of the bracket. Setting the property to @code{if-no-beam}
+makes it print only if there is no beam associated with this tuplet
+bracket.")
(break-align-symbol ,symbol? "This key is used for aligning and
spacing breakable items.")
- (break-align-orders ,vector? " Defines the order in which
-prefatory matter (clefs, key signatures) appears. The format is a
-vector of length 3, where each element is one order for end-of-line,
-middle of line, and start-of-line respectively. An order is a list of
-symbols.
+ (break-align-orders ,vector? "Defines the order in which
+prefatory matter (clefs, key signatures) appears. The format is a
+vector of length@tie{}3, where each element is one order for
+end-of-line, middle of line, and start-of-line, respectively. An
+order is a list of symbols.
For example, clefs are put after key signatures by setting
@example
- \\override Score.BreakAlignment #'break-align-orders = #(make-vector 3
- '(span-bar
- breathing-sign
- staff-bar
- key
- clef
- time-signature))
+\\override Score.BreakAlignment #'break-align-orders =
+ #(make-vector 3 '(span-bar
+ breathing-sign
+ staff-bar
+ key
+ clef
+ time-signature))
@end example")
(break-overshoot ,number-pair? "How much does a broken spanner
stick out of its bounds?")
- (bracket-visibility ,boolean-or-symbol? "This controls the
-visibility of the tuplet bracket. Setting it to false will prevent
-printing of the bracket. Setting the property to @code{'if-no-beam}
-will make it print only if there is no beam associated with this
-tuplet bracket.")
- (break-visibility ,vector? "A vector of 3 booleans, #(end-of-line unbroken begin-of-line).
-#t means visible, #f means killed.")
+ (break-visibility ,vector? "A vector of 3@tie{}booleans,
+@code{#(@var{end-of-line} @var{unbroken} @var{begin-of-line})}.
+@code{#t} means visible, @code{#f} means killed.")
+ (breakable ,boolean? "Allow breaks here.")
+
(c0-position ,integer? "An integer indicating the position of
-middle C.")
- (concaveness ,number? "A beam is concave when its inner stems are
-closer to the beam than the two outside stems. This number is a
-measure of the closeness of the inner stems. It is used for damping
-the slope of the beam.")
- (collapse-height ,ly:dimension? "Minimum height of system start delimiter. If equal or smaller, the bracket is removed.")
+middle@tie{}C.")
+ (clip-edges ,boolean? "Allow outward pointing beamlets at the
+edges of beams?")
+ (collapse-height ,ly:dimension? "Minimum height of system start
+delimiter. If equal or smaller, the bracket is removed.")
(color ,color? "The color of this grob.")
- (control-points ,list? "List of offsets (number-pairs) that form
-control points for the tie/slur/bracket shape. For beziers, this
-should list the control points of a 3rd order bezier curve." )
- (connect-to-neighbor ,pair? "Pair of booleans, indicating whether this
-grob looks as a continued break.")
- (damping ,number? "Amount of beam slope damping. ")
- (dash-period ,number? "the length of one dash + white space. If
-negative, no line is drawn at all.")
+ (common-shortest-duration ,ly:moment? "The most common shortest
+note length. This is used in spacing. Enlarging this sets the score
+tighter.")
+ (concaveness ,number? "A beam is concave if its inner stems are
+closer to the beam than the two outside stems. This number is a
+measure of the closeness of the inner stems. It is used for damping
+the slope of the beam.")
+ (connect-to-neighbor ,pair? "Pair of booleans, indicating whether
+this grob looks as a continued break.")
+ (control-points ,list? "List of offsets (number pairs) that form
+control points for the tie, slur, or bracket shape. For B@'eziers,
+this should list the control points of a third-order B@'ezier curve.")
+
+ (damping ,number? "Amount of beam slope damping.")
(dash-fraction ,number? "Size of the dashes, relative to
-dash-period. Should be between 0.0 (no line) and 1.0 (continuous
-line).")
- (default-direction ,ly:dir? "Direction determined by note head positions.")
- (digit-names ,vector "Names for string finger digits. ")
- (direction ,ly:dir? "If side-position is 1 (#X), then this property determines if the object is placed #LEFT, #CENTER or #RIGHT with respect to the other object. Otherwise, it determines if the object is placed #UP #CENTER or #DOWN. Numerical values may also be used. #UP=1, #DOWN=-1, #LEFT=-1, #RIGHT=1, CENTER=0 but also other numerical values are permitted.")
+@code{dash-period}. Should be between @code{0.0} (no line) and
+@code{1.0} (continuous line).")
+ (dash-period ,number? "The length of one dash together with
+whitespace. If negative, no line is drawn at all.")
+ (default-direction ,ly:dir? "Direction determined by note head
+positions.")
+ (digit-names ,vector "Names for string finger digits.")
+ (direction ,ly:dir? "If @code{side-axis} is @code{1} (or
+@code{#X}), then this property determines whether the object is placed
+@code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the
+other object. Otherwise, it determines whether the object is placed
+@code{#UP}, @code{#CENTER} or #DOWN. Numerical values may also be
+used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1},
+@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{CENTER}=@code{0}
+but also other numerical values are permitted.")
(dot-color ,symbol? "Color of dots. Options include
@code{black} and @code{white}.")
- (dot-radius ,number? "Radius of dots.")
(dot-count ,integer? "The number of dots.")
- (duration-log ,integer? "The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.")
- (edge-height ,pair? "A pair of number specifying the heights of
-the vertical edges '(@var{left-height} . @var{right-height}).")
+ (dot-radius ,number? "Radius of dots.")
+ (duration-log ,integer? "The 2-log of the note head duration,
+i.e. @code{0} = whole note, @code{1} = half note, etc.")
+
+ (eccentricity ,number? "How asymmetrical to make a slur.
+Positive means move the center to the right.")
+ (edge-height ,pair? "A pair of numbers specifying the heights of
+the vertical edges: @code{(@var{left-height} . @var{right-height})}.")
(edge-text ,pair? "A pair specifying the texts to be set at the
-edges '(@var{left-text} . @var{right-text}).")
- (eccentricity ,number? "How asymmetrical to make a slur. Positive means move the center to the right.")
- (expand-limit ,integer? "maximum number of measures expanded in church rests.")
+edges: @code{(@var{left-text} . @var{right-text})}.")
+ (expand-limit ,integer? "Maximum number of measures expanded in
+church rests.")
+ (extra-X-extent ,number-pair? "A grob is enlarged in
+X@tie{}dimension by this much.")
+ (extra-Y-extent ,number-pair? "See @code{extra-X-extent}.")
;; remove me?
(extra-dy ,number? "Slope glissandi this much extra.")
- (extra-X-extent ,number-pair? "A grob is enlarged in X dimension
-by this much.")
- (extra-Y-extent ,number-pair? "See @code{extra-X-extent}.")
- (extra-spacing-width ,number-pair? "In the horizontal spacing problem, we pad each item by this amount (by adding the car on the left side of the item and adding the cdr on the right side of the item). In order to make a grob take up no horizontal space at all, set this to (+inf.0 . -inf.0)")
- (X-extent ,number-pair? "Hard coded extent in X direction. ")
- (Y-extent ,number-pair? "See @code{X-extent}.")
- (extra-offset ,number-pair? "A pair representing an offset. This
+ (extra-offset ,number-pair? "A pair representing an offset. This
offset is added just before outputting the symbol, so the typesetting
engine is completely oblivious to it.")
- (finger-code ,symbol? "Code for the type of fingering indication in a
-fret diagram. Options include @code{none}, @code{in-dot}, and @code{below-string}.")
+ (extra-spacing-width ,number-pair? "In the horizontal spacing
+problem, we pad each item by this amount (by adding the @q{car} on the
+left side of the item and adding the @q{cdr} on the right side of the
+item). In order to make a grob take up no horizontal space at all,
+set this to @code{(+inf.0 . -inf.0)}.")
+
+ (finger-code ,symbol? "Code for the type of fingering indication
+in a fret diagram. Options include @code{none}, @code{in-dot}, and
+@code{below-string}.")
(flag-count ,number? "The number of tremolo beams.")
- (flag-style ,symbol?
- "a string determining what style of flag-glyph is
-typeset on a Stem. Valid options include @code{()} and
-@code{mensural}. Additionally, @code{\"no-flag\"} switches off the
+ (flag-style ,symbol? "A string determining what style of flag
+glyph is typeset on a @code{Stem}. Valid options include @code{()}
+and @code{mensural}. Additionally, @code{no-flag} switches off the
flag.")
- (font-family ,symbol? "The font family is the broadest category for selecting text fonts. Options include: @code{sans}, @code{roman} ")
(font-encoding ,symbol? "The font encoding is the broadest
-category for selecting a font. Options include: @code{fetaMusic},
-@code{fetaNumber}, @code{TeX-text}, @code{TeX-math}, @code{fetaBraces},
-@code{fetaDynamic}")
- (font-name ,string? "Specifies a file name (without extension) of
-the font to load. This setting override selection using
+category for selecting a font. Options include: @code{fetaMusic},
+@code{fetaNumber}, @code{TeX-text}, @code{TeX-math},
+@code{fetaBraces}, @code{fetaDynamic}.")
+ (font-family ,symbol? "The font family is the broadest category
+for selecting text fonts. Options include: @code{sans},
+@code{roman}.")
+ (font-name ,string? "Specifies a file name (without extension)
+of the font to load. This setting overrides selection using
@code{font-family}, @code{font-series} and @code{font-shape}.")
- (font-size ,number? "The font size, compared the `normal'
-size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger.
-Each step of 1 is approximately 12% larger, 6 steps are exactly a
-factor 2 larger. Fractional values are allowed.")
- (font-series ,symbol? "Select the series of a font. Choices
+ (font-series ,symbol? "Select the series of a font. Choices
include @code{medium}, @code{bold}, @code{bold-narrow}, etc.")
- (font-shape ,symbol? "Select the shape of a font. Choices include @code{upright},
-@code{italic}, @code{caps}.")
- (forced ,boolean? "manually forced accidental")
+ (font-shape ,symbol? "Select the shape of a font. Choices
+include @code{upright}, @code{italic}, @code{caps}.")
+ (font-size ,number? "The font size, compared to the @q{normal}
+size. @code{0}@tie{}is style-sheet's normal size, @code{-1} is
+smaller, @code{+1} is bigger. Each step of@tie{}1 is approximately
+12% larger, 6@tie{}steps are exactly a factor@tie{}2 larger.
+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
+in collisions. The unit is the note head width of the first voice
note. This is used by @internalsref{note-collision-interface}.")
+ (forced ,boolean? "Manually forced accidental.")
(fraction ,number-pair? "Numerator and denominator of a time
signature object.")
(french-beaming ,boolean? "Use French beaming style for this
-stem. The stem will stop at the innermost beams.")
+stem. The stem stops at the innermost beams.")
(fret-count ,integer? "The number of frets in a fret diagram.")
;; ugh: double, change.
(full-size-change ,boolean? "Don't make a change clef smaller.")
- (non-default ,boolean? "Set for manually specified clefs.")
- (glyph ,string? "a string determining what (style) of glyph is
-typeset. Valid choices depend on the function that is reading this
-property.")
+
(gap ,ly:dimension? "Size of a gap in a variable symbol.")
(gap-count ,integer? "Number of gapped beams for tremolo.")
- (glyph-name-alist ,list? "Alist of key-string pairs.")
+ (glyph ,string? "A string determining what @q{style} of glyph is
+typeset. Valid choices depend on the function that is reading this
+property.")
+ (glyph-name-alist ,list? "An alist of key-string pairs.")
(grow-direction ,ly:dir? "Crescendo or decrescendo?")
- (hair-thickness ,number? "Thickness of the thin line in a bar line.")
- (head-direction ,ly:dir? "Are the note heads left or right in a semitie?")
- (height ,ly:dimension? "Height of an object in staff-space.")
- (height-limit ,ly:dimension? "Maximum slur height: the longer the
+
+ (hair-thickness ,number? "Thickness of the thin line in a bar
+line.")
+ (head-direction ,ly:dir? "Are the note heads left or right in a
+semitie?")
+ (height ,ly:dimension? "Height of an object in
+@code{staff-space} units.")
+ (height-limit ,ly:dimension? "Maximum slur height: The longer the
slur, the closer it is to this height.")
(horizontal-shift ,integer? "An integer that identifies ranking
-of note-column for horizontal shifting. This is used by
+of @code{NoteColumn}s for horizontal shifting. This is used by
@internalsref{note-collision-interface}.")
- (avoid-slur ,symbol? "Method of handling slur collisions.
-Choices are @code{around}, @code{inside}, @code{outside}. If unset, script
-and slur ignore each other. @code{around} will only move the script if
-there is a collision; @code{outside} will always move the script.")
- (ignore-collision ,boolean? "If set, don't do note collision resolution on this NoteColumn.")
- (infinite-spacing-height ,boolean? "If true, then for the purposes of
-horizontal spacing, treat this item as though it were infinitely tall. That
-is, no object from another column will be allowed to stick above or below this item.")
- (inspect-quants ,number-pair? "If debugging is set,
-set beam/slur quant to this position, and print the respective scores.")
- (inspect-index ,integer? "If debugging is set,
-set beam/slur configuration to this index, and print the respective scores.")
+ (horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the
+left and one to the right of this grob.")
+
+ (ignore-collision ,boolean? "If set, don't do note collision
+resolution on this @code{NoteColumn}.")
(implicit ,boolean? "Is this an implicit bass figure?")
- (keep-fixed-while-stretching ,boolean? "A grob with this property set to true will be fixed relative to the staff above it when systems are stretched.")
+ (infinite-spacing-height ,boolean? "If true, then for the
+purposes of horizontal spacing, treat this item as though it were
+infinitely tall. That is, no object from another column is allowed to
+stick above or below this item.")
+ (inspect-index ,integer? "If debugging is set, set beam and slur
+configuration to this index, and print the respective scores.")
+ (inspect-quants ,number-pair? "If debugging is set,
+set beam and slur quants to this position, and print the respective
+scores.")
+
+ (keep-fixed-while-stretching ,boolean? "A grob with this property
+set to true is fixed relative to the staff above it when systems are
+stretched.")
(keep-inside-line ,boolean? "If set, this column cannot have
things sticking into the margin.")
- (kern ,ly:dimension? "Amount of extra white space to add. For
-bar line, this is the amount of space after a thick line.")
+ (kern ,ly:dimension? "Amount of extra white space to add. For
+bar lines, this is the amount of space after a thick line.")
(knee ,boolean? "Is this beam kneed?")
(knee-spacing-correction ,number? "Factor for the optical
-correction amount for kneed beams. Set between 0 for no correction and
-1 for full correction.")
- (label-dir ,ly:dir? "Side to which label is attached. @code{-1} for left, @code{1} for right.")
- (layer ,number? "The output layer [0..2]: layers define the order
-of printing objects. Objects in lower layers are overprinted by
-objects in higher layers.")
- (ledger-line-thickness ,number-pair?
- "The thickness of ledger lines: it is the
-sum of 2 numbers. The first is the factor for line thickness, and the
-second for staff space. Both contributions are added.")
- (left-bound-info ,list? "alist of properties for determining attachments of spanners to edges.")
+correction amount for kneed beams. Set between @code{0} for no
+correction and @code{1} for full correction.")
+
+ (label-dir ,ly:dir? "Side to which a label is attached.
+@code{-1} for left, @code{1}@tie{}for right.")
+ (layer ,number? "The output layer (a value between 0 and@tie{}2:
+Layers define the order of printing objects. Objects in lower layers
+are overprinted by objects in higher layers.")
+ (ledger-line-thickness ,number-pair? "The thickness of ledger
+lines. It is the sum of 2@tie{}numbers: The first is the factor for
+line thickness, and the second for staff space. Both contributions
+are added.")
+ (left-bound-info ,list? "An alist of properties for determining
+attachments of spanners to edges.")
(left-padding ,ly:dimension? "The amount of space that is put
-left to an object (eg. a group of accidentals).")
+left to an object (e.g., a group of accidentals).")
(length ,ly:dimension? "User override for the stem length of
unbeamed stems.")
- (length-fraction ,number? "Multiplier for lengths. Used for
+ (length-fraction ,number? "Multiplier for lengths. Used for
determining ledger lines and stem lengths.")
- (line-break-system-details ,list?
- "Alist of properties to use when this
-column is the start of a system.")
+ (line-break-penalty ,number? "Penalty for a line break at this
+column. This affects the choices of the line breaker; it avoids a
+line break at a column with a positive penalty and prefer a line break
+at a column with a negative penalty.")
+ (line-break-permission ,symbol? "Instructs the line breaker on
+whether to put a line break at this column. Can be @code{force} or
+@code{allow}.")
+ (line-break-system-details ,list? "An alist of properties to use
+if this column is the start of a system.")
(line-count ,integer? "The number of staff lines.")
(line-positions ,list? "Vertical positions of staff lines.")
- (line-thickness ,number? "The thickness of the tie/slur contour.")
- (long-text ,markup? "Text markup. See @usermanref{Text markup}.")
+ (line-thickness ,number? "The thickness of the tie or slur
+contour.")
+ (long-text ,markup? "Text markup. See @usermanref{Text
+markup}.")
+
(max-beam-connect ,integer? "Maximum number of beams to connect
-to beams from this stem. Further beams are typeset as beamlets.")
- (max-stretch ,number? "The maximum amount that this vertical-axis-group
-can be vertically stretched (for example, in order to better fill a page).")
- (measure-length ,ly:moment? "Length of a
-measure. Used in some spacing situations.")
+to beams from this stem. Further beams are typeset as beamlets.")
+ (max-stretch ,number? "The maximum amount that this
+@code{VerticalAxisGroup} can be vertically stretched (for example, in
+order to better fill a page).")
(measure-count ,integer? "The number of measures for a
-multimeasure rest.")
- (merge-differently-headed ,boolean? "Merge
-note heads in collisions, even if they have different note heads. The
-smaller of the two heads will be rendered invisible. This used
-polyphonic guitar notation. The value of this setting is used by
-@internalsref{note-collision-interface} .
-merge-differently-headed only applies to opposing stem dirs
-(ie. Voice 1 & 2).")
+multi-measure rest.")
+ (measure-length ,ly:moment? "Length of a measure. Used in some
+spacing situations.")
(merge-differently-dotted ,boolean? "Merge note heads in
-collisions, even if they have a different number of dots. This normal
-notation for some types of polyphonic music.
-merge-differently-dotted only applies to opposing stem dirs
-(ie. Voice 1 & 2).")
- (minimum-length-fraction ,number? "Minimum length of ledger line as fraction of note head size.")
+collisions, even if they have a different number of dots. This is
+normal notation for some types of polyphonic music.
+
+@code{merge-differently-dotted} only applies to opposing stem
+directions (i.e. voice 1 &@tie{}2).")
+ (merge-differently-headed ,boolean? "Merge note heads in
+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}.
+
+@code{merge-differently-headed} only applies to opposing stem
+directions (i.e. voice 1 &@tie{}2).")
+ (minimum-X-extent ,number-pair? "Minimum size of an object in
+X@tie{}dimension, measured in @code{staff-space} units.")
+ (minimum-Y-extent ,number-pair? "See @code{minimum-X-extent}.")
(minimum-distance ,ly:dimension? "Minimum distance between rest
and notes or beam.")
- (minimum-X-extent ,number-pair? "Minimum size of an object in X
-dimension, measured in staff space.")
- (minimum-Y-extent ,number-pair? "See @code{minimum-X-extent}.")
(minimum-length ,ly:dimension? "Try to make a spanner at least
-this long. This requires an appropriate callback for the
-@code{springs-and-rods} property. If added to a Tie, this sets the
-minimum distance between noteheads.")
+this long, normally in the horizontal direction. This requires an
+appropriate callback for the @code{springs-and-rods} property. If
+added to a @code{Tie}, this sets the minimum distance between
+noteheads.")
+ (minimum-length-fraction ,number? "Minimum length of ledger line
+as fraction of note head size.")
(minimum-space ,ly:dimension? "Minimum distance that the victim
should move (after padding).")
+
(neutral-direction ,ly:dir? "Which direction to take in the
center of the staff.")
(neutral-position ,number? "Position (in half staff spaces) where
to flip the direction of custos stem.")
- (next ,ly:grob? "Object that is next relation (eg. the lyric syllable following an extender.")
- (note-names ,vector? "Vector of strings containing names for
-easy-notation note heads.")
- (no-ledgers ,boolean? "If set, don't draw ledger lines on this object.")
+ (next ,ly:grob? "Object that is next relation (e.g., the lyric
+syllable following an extender.")
+ (no-ledgers ,boolean? "If set, don't draw ledger lines on this
+object.")
(no-stem-extend ,boolean? "If set, notes with ledger lines do not
get stems extending to the middle staff line.")
- (non-musical ,boolean? "True if the grob belongs in a NonMusicalPaperColumn.")
+ (non-default ,boolean? "Set for manually specified clefs.")
+ (non-musical ,boolean? "True if the grob belongs to a
+@code{NonMusicalPaperColumn}.")
+ (note-names ,vector? "Vector of strings containing names for
+easy-notation note heads.")
(number-type ,symbol? "Type of numbers to use in label. Choices
include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.")
- (outside-staff-horizontal-padding ,number? "By default, an outside-staff-object can be
-placed so that is it very close to another grob horizontally. If this property is set,
-the outside-staff-object will be raised so that it is not so close to its neighbour.")
- (outside-staff-padding ,number? "The padding to place between this grob and the staff when
-spacing according to outside-staff-priority.")
- (outside-staff-priority ,number? "When set, the grob will be positioned outside the staff
-in such a way as to avoid all collisions. In case of a potential collision, the grob with
-the smaller outside-staff-priority will be closer to the staff.")
+
+ (outside-staff-horizontal-padding ,number? "By default, an
+outside-staff-object can be placed so that is it very close to another
+grob horizontally. If this property is set, the outside-staff-object
+is raised so that it is not so close to its neighbour.")
+ (outside-staff-padding ,number? "The padding to place between
+this grob and the staff when spacing according to
+@code{outside-staff-priority}.")
+ (outside-staff-priority ,number? "If set, the grob is positioned
+outside the staff in such a way as to avoid all collisions.
+In case of a potential collision, the grob with the smaller
+@code{outside-staff-priority} is closer to the staff.")
+
(packed-spacing ,boolean? "If set, the notes are spaced as
tightly as possible.")
(padding ,ly:dimension? "Add this much extra space between
objects that are next to each other.")
- (page-break-permission ,symbol? "Instructs the page breaker on whether to
-put a page break at this column. Can be 'force, or 'allow.")
- (page-turn-permission ,symbol? "Instructs the page breaker on whether to
-put a page turn at this column. Can be 'force, or 'allow.")
- (line-break-permission ,symbol? "Instructs the line breaker on whether to
-put a line break at this column. Can be 'force, or 'allow.")
- (page-break-penalty ,number? "Penalty for page break at
-this column. This affects the choices of the page breaker; it will avoid a page
-break at a column with a positive penalty and prefer a page break at a column
-with a negative penalty.")
- (page-turn-penalty ,number? "Penalty for a page turn at this column.
-This affects the choices of the page breaker; it will avoid a page
-turn at a column with a positive penalty and prefer a page turn at a column
-with a negative penalty.")
+ (page-break-penalty ,number? "Penalty for page break at this
+column. This affects the choices of the page breaker; it avoids a
+page break at a column with a positive penalty and prefer a page break
+at a column with a negative penalty.")
+ (page-break-permission ,symbol? "Instructs the page breaker on
+whether to put a page break at this column. Can be @code{force} or
+@code{allow}.")
+ (page-turn-penalty ,number? "Penalty for a page turn at this
+column. This affects the choices of the page breaker; it avoids a
+page turn at a column with a positive penalty and prefer a page turn
+at a column with a negative penalty.")
+ (page-turn-permission ,symbol? "Instructs the page breaker on
+whether to put a page turn at this column. Can be @code{force} or
+@code{allow}.")
(parenthesized ,boolean? "Parenthesize this grob.")
- (line-break-penalty ,number? "Penalty for a line break at this column.
-This affects the choices of the line breaker; it will avoid a line
-break at a column with a positive penalty and prefer a line break at a column
-with a negative penalty.")
- (positions ,pair?
- "Pair of staff coordinates @code{(@var{left}
-. @var{right})}, where both @var{left} and @var{right} are in the
-staff-space unit of the current staff.")
- (ratio ,number? "Parameter for slur shape. The higher this number, the
-quicker the slur attains it @code{height-limit}.")
+ (positions ,pair? "Pair of staff coordinates @code{(@var{left}
+. @var{right})}, where both @var{left} and @var{right} are in
+@code{staff-space} units of the current staff.")
+
+ (ratio ,number? "Parameter for slur shape. The higher this
+number, the quicker the slur attains its @code{height-limit}.")
(remove-empty ,boolean? "If set, remove group if it contains no
-@code{interesting-items}")
- (remove-first ,boolean? "Remove the first staff of a orchestral score?")
- (restore-first ,boolean? "Print a natural before the accidental.")
- (rhythmic-location ,rhythmic-location? "Where (bar number, measure position) in the score.")
- (right-bound-info ,list? "alist of properties for determining attachments of spanners to edges.")
- (right-padding ,ly:dimension? "Space to insert on the right side of an object (eg. between note and its accidentals.)")
- (rotation ,list? "Number of degrees to rotate this object, and what point
-to rotate around. #'(45 0 0) means rotate 45 degrees around the center of this object.")
+interesting items.")
+ (remove-first ,boolean? "Remove the first staff of a orchestral
+score?")
+ (restore-first ,boolean? "Print a natural before the
+accidental.")
+ (rhythmic-location ,rhythmic-location? "Where (bar number,
+measure position) in the score.")
+ (right-bound-info ,list? "An alist of properties for determining
+attachments of spanners to edges.")
+ (right-padding ,ly:dimension? "Space to insert on the right side
+of an object (e.g., between note and its accidentals).")
+ (rotation ,list? "Number of degrees to rotate this object, and
+what point to rotate around. For example, @code{#'(45 0 0)} rotates
+by 45 degrees around the center of this object.")
+
(same-direction-correction ,number? "Optical correction amount
-for stems that are placed in tight configurations. This amount is used
-for stems with the same direction to compensate for note-head to stem distance.")
+for stems that are placed in tight configurations. This amount is
+used for stems with the same direction to compensate for note-head to
+stem distance.")
(script-priority ,number? "A sorting key that determines in what
order a script is within a stack of scripts.")
(self-alignment-X ,number? "Specify alignment of an object. The
-value -1 means left aligned, 0 centered, and 1 right-aligned in X
-direction. Values in between may also be specified.")
- (self-alignment-Y ,number? "like @code{self-alignment-X} but for
-Y axis.")
+value @code{-1} means left aligned, @code{0}@tie{}centered, and
+@code{1}@tie{}right-aligned in X@tie{}direction. Values in-between
+may also be specified.")
+ (self-alignment-Y ,number? "Like @code{self-alignment-X} but for
+the Y@tie{}axis.")
(shorten-pair ,number-pair? "The lengths to shorten a
-text-spanner on both sides, for example a pedal bracket. Positive values
-shorten the text-spanner, while negative values lengthen it.")
- (clip-edges ,boolean? "Allow outward pointing beamlets at the edges of beams?")
- (common-shortest-duration ,ly:moment?
- "The most common shortest note length.
-This is used in spacing. Enlarging this will set the score tighter.")
+text-spanner on both sides, for example a pedal bracket. Positive
+values shorten the text-spanner, while negative values lengthen it.")
(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
+space for the shortest duration. This is expressed in
+@code{spacing-increment} as unit. See also
@internalsref{spacing-spanner-interface}.")
- (shortest-playing-duration ,ly:moment? "The duration of the shortest playing here.")
- (shortest-starter-duration ,ly:moment? "The duration of the shortest
-note that starts here.")
- (side-relative-direction ,ly:dir?
- "Multiply direction of
+ (shortest-playing-duration ,ly:moment? "The duration of the
+shortest playing here.")
+ (shortest-starter-duration ,ly:moment? "The duration of the
+shortest note that starts here.")
+ (side-axis ,number? "If the value is @code{#X} (or
+equivalently@tie{}@code{1}), the object is placed horizontally next
+to the other object. If the value is @code{#Y} or@tie{}@code{0}, it
+is placed vertically.")
+ (side-relative-direction ,ly:dir? "Multiply direction of
@code{direction-source} with this to get the direction of this
object.")
- (side-axis ,number? "If the value is #X (or equivalently 1), the object is placed horizontally next to the other object. If the value is #Y or 0, it is placed vertically.")
(size ,number? "Size of object, relative to standard size.")
- (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and one below this grob.")
- (horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the left and one to the right of this grob.")
(slope ,number? "The slope of this object.")
(slur-padding ,number? "Extra distance between slur and script.")
(space-alist ,list? "A table that specifies distances between
-prefatory items, like clef and time-signature. The format is an alist
+prefatory items, like clef and time-signature. The format is an alist
of spacing tuples: @code{(@var{break-align-symbol} @var{type}
. @var{distance})}, where @var{type} can be the symbols
@code{minimum-space} or @code{extra-space}.")
(spacing-increment ,number? "Add this much space for a doubled
-duration. Typically, the width of a note head. See also
+duration. Typically, the width of a note head. See also
@internalsref{spacing-spanner-interface}.")
- (springs-and-rods ,boolean? "Dummy variable for triggering spacing routines.")
+ (springs-and-rods ,boolean? "Dummy variable for triggering
+spacing routines.")
(stacking-dir ,ly:dir? "Stack objects in which direction?")
- (staff-padding ,ly:dimension?
- "Maintain this much space between reference points
-and the staff. Its effect is to align objects of differing
-sizes (like the dynamic @b{p} and @b{f}) on their baselines.")
+ (staff-padding ,ly:dimension? "Maintain this much space between
+reference points and the staff. Its effect is to align objects of
+differing sizes (like the dynamic @b{p} and @b{f}) on their
+baselines.")
(staff-position ,number? "Vertical position, measured in half
staff spaces, counted from the middle line.")
(staff-space ,ly:dimension? "Amount of space between staff lines,
-expressed in global staff-space.")
- (stemlet-length ,number? "How long should a stem over a rest be?")
- (stem-attachment ,number-pair? "A (@var{x} . @var{y}) pair where the stem attaches to the notehead.")
- (stem-end-position ,number? "Where does the stem end (the end is opposite to the support-head.")
+expressed in global @code{staff-space}.")
+ (stem-attachment ,number-pair? "A @code{(@var{x} . @var{y})} pair
+where the stem attaches to the notehead.")
+ (stem-end-position ,number? "Where does the stem end (the end is
+opposite to the support-head)?")
;;[TODO: doco]
(stem-spacing-correction ,number? "Optical correction amount for
-stems that are placed in tight configurations. For opposite
+stems that are placed in tight configurations. For opposite
directions, this amount is the correction for two normal sized stems
that overlap completely.")
+ (stemlet-length ,number? "How long should a stem over a rest
+be?")
(stencil ,ly:stencil? "The symbol to print.")
- (stencils ,list? "Multiple stencils, used as intermediate value.")
+ (stencils ,list? "Multiple stencils, used as intermediate
+value.")
+ (strict-grace-spacing ,boolean? "If set, grace notes
+are not spaced separately, but put before musical columns.")
(strict-note-spacing ,boolean? "If set, unbroken columns
with non-musical material (clefs, barlines, etc.) are not spaced
separately, but put before musical columns.")
- (strict-grace-spacing ,boolean? "If set, grace notes
-are not spaced separately, but put before musical columns.")
- (string-count ,integer? "The number of strings in a fret diagram.")
- (string-fret-finger-combinations ,list? "List consisting of (string-number fret-number finger-number) entries.")
- (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.")
+ (string-count ,integer? "The number of strings in a fret
+diagram.")
+ (string-fret-finger-combinations ,list? "List consisting of
+@code{(@var{string-number} @var{fret-number} @var{finger-number})}
+entries.")
+ (stroke-style ,string? "Set to @code{\"grace\"} to turn stroke
+through flag on.")
(style ,symbol? "This setting determines in what style a grob is
-typeset. Valid choices depend on the @code{stencil} callback reading
+typeset. Valid choices depend on the @code{stencil} callback reading
this property.")
+
(text ,markup? "Text markup. See @usermanref{Text markup}.")
;;FIXME -- Should both be the same?
(text-direction ,ly:dir? "This controls the ordering of the
-words. The default RIGHT is for roman text. Arabic or hebrew should
-use LEFT.")
+words. The default @code{RIGHT} is for roman text. Arabic or Hebrew
+should use @code{LEFT}.")
(thick-thickness ,number? "Bar line thickness, measured in
@code{line-thickness}.")
(thickness ,number? "Line thickness, generally measured in
@code{line-thickness}.")
(thin-kern ,number? "The space after a hair-line in a bar line.")
- (threshold ,number-pair? "(@var{min} . @var{max}), where
+ (threshold ,number-pair? "@code{(@var{min} . @var{max})}, where
@var{min} and @var{max} are dimensions in staff space.")
- (tie-configuration ,list? "List of (@var{position} . @var{dir})
-pairs, indicating the desired tie configuration where @var{position} is
-the offset from the center of the
-staff in staff space and @var{dir} indicates the direction of the tie
-(1=>up, -1=>down, 0=>center). A non-pair entry in the list will cause
-the corresponding tie to be formatted automatically.")
+ (tie-configuration ,list? "List of @code{(@var{position} .
+@var{dir})} pairs, indicating the desired tie configuration, where
+@var{position} is the offset from the center of the staff in staff
+space and @var{dir} indicates the direction of the tie
+(@code{1}=>up, @code{-1}=>down, @code{0}=>center). A non-pair entry
+in the list causes the corresponding tie to be formatted
+automatically.")
(transparent ,boolean? "This makes the grob invisible.")
- (uniform-stretching ,boolean? "If set, items stretch proportional
-to their durations. This looks better in complex polyphonic patterns")
- (used ,boolean? "If set, this spacing column is kept in the spacing problem")
+
+ (uniform-stretching ,boolean? "If set, items stretch
+proportionally to their durations. This looks better in complex
+polyphonic patterns.")
+ (used ,boolean? "If set, this spacing column is kept in the
+spacing problem")
+
+ (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
+one below this grob.")
+
(when ,ly:moment? "Global time step associated with this column
happen?")
- (word-space ,ly:dimension? "space to insert between words in texts.")
- (width ,ly:dimension? "The width of a grob measured in staff space.")
+ (width ,ly:dimension? "The width of a grob measured in staff
+space.")
+ (word-space ,ly:dimension? "Space to insert between words in
+texts.")
+
(zigzag-length ,ly:dimension? "The length of the lines of a
-zigzag, relative to @code{zigzag-width}. A value of 1 gives 60-degree
-zigzags.")
- (zigzag-width ,ly:dimension? "The width of one
-zigzag-squiggle. This number will be adjusted slightly so that the
-glissando line can be constructed from a whole number of squiggles.")
+zigzag, relative to @code{zigzag-width}. A value of@tie{}@code{1}
+gives 60-degree zigzags.")
+ (zigzag-width ,ly:dimension? "The width of one zigzag squiggle.
+This number is adjusted slightly so that the glissando line can
+be constructed from a whole number of squiggles.")
)))
(apply define-internal-grob-property x))
`(
-
;;;;;;;;;;;;;;;;
;; grobs & grob arrays. (alphabetical)
- (Y-common ,ly:grob? "See X-common")
(X-common ,ly:grob? "Common refpoint for axis group.")
+ (Y-common ,ly:grob? "See @code{X-common}.")
(cached-pure-extents ,vector? "Used by a VerticalAxisGroup to cache the Y-extents of different column ranges.")
(axis-group-parent-X ,ly:grob? "Containing X axis group")
(axis-group-parent-Y ,ly:grob? "Containing Y axis group")
(shorten ,ly:dimension? "The amount of space that a
stem. Internally used to distribute beam shortening over stems. ")
(skyline-distance ,number? "The distance between this staff and the next one, as determined by a skyline algorithm.")
- (skyline-horizontal-padding ,number? "For determining the vertical distance between 2 staves, it is possible to have a configuration which would result in a tight interleaving of grobs from the top staff and the bottom staff. The larger this parameter is, the farther apart the staves will be placed in such a configuration.")
+ (skyline-horizontal-padding ,number? "For determining the vertical distance between 2 staves, it is possible to have a configuration which would result in a tight interleaving of grobs from the top staff and the bottom staff. The larger this parameter is, the farther apart the staves are placed in such a configuration.")
(use-breve-rest ,boolean? "Use breve rests for measures longer
than a whole rest.")
))
(ContextChange
. (
- (description . "Change staffs in Piano staff.
+ (description . "Change staves in Piano staff.
Syntax @code{\\translator Staff = @var{new-id}}.")
(iterator-ctor . , ly:change-iterator::constructor)
(SkipMusic
. (
(description . "Filler that takes up duration, does not print anything, and also
-does not create staffs or voices implicitly.
+does not create staves or voices implicitly.
@c NOTE: This is documentation-generate.scm, not macros.itexi
+
@ifhtml
+@c ***** HTML *****
+
@macro usermanref{NAME}
@ref{\\NAME\\,,,lilypond}
@cindex \\NAME\\
@end macro
-@end ifhtml
-@ifinfo
-@macro usermanref{NAME}
-@inforef{\\NAME\\,,,lilypond}
+@macro glossaryref{NAME}
+@ref{\\NAME\\,,,music-glossary}
@cindex \\NAME\\
@end macro
-@end ifinfo
-@iftex
-@macro usermanref{NAME}
-@ref{\\NAME\\}@c
+@macro inputfileref{DIR,NAME}
+@uref{source/\\DIR\\/out-www/collated-files.html#\\NAME\\,@file{\\DIR\\/\\NAME\\}}@c
@end macro
-@end iftex
-@ifhtml
-@macro glossaryref{NAME}
-@ref{\\NAME\\,,,music-glossary}
-@cindex \\NAME\\
+@macro q{TEXT}
+@html
+‘\\TEXT\\’
+@end html
@end macro
@end ifhtml
+
@ifinfo
+@c ***** info *****
+
+@macro usermanref{NAME}
+@inforef{\\NAME\\,,,lilypond}
+@cindex \\NAME\\
+@end macro
+
@macro glossaryref{NAME}
@inforef{\\NAME\\,,lilypond/music-glossary}
@cindex \\NAME\\
@end macro
-@end ifinfo
-
-@macro internalsref{NAME}
-@ref{\\NAME\\}
+@macro inputfileref{DIR,NAME}
+@file{\\DIR\\/\\NAME\\}
@end macro
-@ifhtml
-
-@macro inputfileref{DIR,NAME}
-@uref{source/\\DIR\\/out-www/collated-files.html#\\NAME\\,@file{\\DIR\\/\\NAME\\}}@c
+@macro q{TEXT}
+`\\TEXT\\'
@end macro
+@end ifinfo
-@end ifhtml
-@ifinfo
+@iftex
+@c ***** TeX *****
-@macro inputfileref{DIR,NAME}
-@file{\\DIR\\/\\NAME\\}
+@macro usermanref{NAME}
+@ref{\\NAME\\}@c
@end macro
-@end ifinfo
-
-@iftex
@macro inputfileref{DIR,NAME}@c
@file{\\DIR\\/\\NAME\\}@c
@end macro
+
+@macro q{TEXT}
+`\\TEXT\\'
+@end macro
@end iftex
+@macro internalsref{NAME}
+@ref{\\NAME\\}
+@end macro
+
+
@ignore
@omftitle LilyPond internals
@omfcreator Han-Wen Nienhuys and Jan Nieuwenhuizen