]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 11 Feb 2007 13:58:12 +0000 (14:58 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 11 Feb 2007 13:58:12 +0000 (14:58 +0100)
85 files changed:
Documentation/fr/GNUmakefile
Documentation/fr/index.html.in [new file with mode: 0644]
Documentation/fr/user/basic-notation.itely
Documentation/fr/user/macros.itexi [new file with mode: 0644]
Documentation/fr/user/preface.itely
Documentation/fr/user/tutorial.itely
Documentation/fr/user/working.itely
Documentation/index.html.in
Documentation/po/fr.po
Documentation/po/lilypond-doc.pot
Documentation/user/GNUmakefile
Documentation/user/advanced-notation.itely
Documentation/user/basic-notation.itely
Documentation/user/instrument-notation.itely
Documentation/user/macros.itexi
Documentation/user/working.itely
THANKS
buildscripts/add_html_footer.py
buildscripts/html-gettext.py
buildscripts/makelsr.py
buildscripts/mirrortree.py
buildscripts/texi-langutils.py
buildscripts/www_post.py
input/GNUmakefile
input/lsr/LSR.ly
input/lsr/README [new file with mode: 0644]
input/lsr/ancient/Custodes.ly [deleted file]
input/lsr/ancient/custodes.ly [new file with mode: 0644]
input/lsr/chords/Chord-name-exceptions.ly [deleted file]
input/lsr/chords/chord-name-exceptions.ly [new file with mode: 0644]
input/lsr/chords/chord-name-major7.ly
input/lsr/connecting/Laissez-vibrer-ties.ly [deleted file]
input/lsr/connecting/laissez-vibrer-ties.ly [new file with mode: 0644]
input/lsr/contemporary/Clusters.ly [deleted file]
input/lsr/contemporary/clusters.ly [new file with mode: 0644]
input/lsr/expressive/AAA-intro-advanced.ly [new file with mode: 0644]
input/lsr/expressive/GNUmakefile [new file with mode: 0644]
input/lsr/expressive/SConscript [new file with mode: 0644]
input/lsr/expressive/breathing-sign.ly [new file with mode: 0644]
input/lsr/expressive/fingering-chords.ly [new file with mode: 0644]
input/lsr/expressive/glissando.ly [new file with mode: 0644]
input/lsr/expressive/line-styles.ly [new file with mode: 0644]
input/lsr/guitar/guitar-string-number.ly
input/lsr/parts/Rehearsal-mark-numbers.ly [deleted file]
input/lsr/parts/Tag-filter.ly [deleted file]
input/lsr/parts/rehearsal-mark-numbers.ly [new file with mode: 0644]
input/lsr/parts/tag-filter.ly [new file with mode: 0644]
input/lsr/repeats/Volta-multi-staff.ly [deleted file]
input/lsr/repeats/volta-multi-staff.ly [new file with mode: 0644]
input/lsr/spacing/Page-layout-twopass.ly
input/lsr/spacing/Page-spacing.ly [deleted file]
input/lsr/spacing/Proportional-spacing.ly
input/lsr/spacing/Proportional-strict-grace-notes.ly
input/lsr/spacing/Proportional-strict-notespacing.ly
input/lsr/spacing/alignment-vertical-spacing.ly
input/lsr/spacing/page-layout-twopass.ly [new file with mode: 0644]
input/lsr/spacing/page-spacing.ly [new file with mode: 0644]
input/lsr/spacing/proportional-spacing.ly [new file with mode: 0644]
input/lsr/spacing/proportional-strict-grace-notes.ly [new file with mode: 0644]
input/lsr/spacing/proportional-strict-notespacing.ly [new file with mode: 0644]
input/lsr/staff/Staff-line-positions.ly [deleted file]
input/lsr/staff/staff-line-positions.ly [new file with mode: 0644]
input/lsr/text/font-family-override.ly
input/lsr/vocal/Ambitus.ly [deleted file]
input/lsr/vocal/ambitus.ly [new file with mode: 0644]
input/lsr/vocal/lyric-combine.ly
input/regression/tuplet-bracket-cross-staff.ly
input/tolsr/GNUmakefile [new file with mode: 0644]
input/tolsr/SConscript [new file with mode: 0644]
input/tolsr/contemporary/line-arrows.ly [deleted file]
input/tolsr/line-arrows.ly [new file with mode: 0644]
input/tolsr/preparing/quote-transposition.ly [deleted file]
input/tolsr/preparing/quote.ly [deleted file]
input/tolsr/quote-transposition.ly [new file with mode: 0644]
input/tolsr/quote.ly [new file with mode: 0644]
input/tolsr/text/utf-8.ly [deleted file]
input/tolsr/utf-8.ly [new file with mode: 0644]
lily/include/script-interface.hh
lily/page-spacing.cc
lily/script-interface.cc
lily/tuplet-bracket.cc
ly/graphviz.ly
make/doclang-targets.make
scm/define-grobs.scm
stepmake/stepmake/texinfo-rules.make

index 296c7209d3e847e20d1c6735c940013f47d7a279..b3599adc72c314b20d4f8b5c54d8907f8c9a85d3 100644 (file)
@@ -2,4 +2,10 @@ ISOLANG = fr
 depth = ../..
 SUBDIRS = user
 STEPMAKE_TEMPLATES = documentation
+
 include $(depth)/make/stepmake.make
+
+local-WWW: $(outdir)/index.html lang-merge
+
+lang-merge:
+       ln -f $(outdir)/index.html $(depth)/Documentation/$(outdir)/index.$(ISOLANG).html
diff --git a/Documentation/fr/index.html.in b/Documentation/fr/index.html.in
new file mode 100644 (file)
index 0000000..17ffff5
--- /dev/null
@@ -0,0 +1,154 @@
+<html>
+<!--
+    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+  <head>
+    <title>Documentation de LilyPond @TOPLEVEL_VERSION@</title>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+    <meta name="aesop" content="links">
+    <meta name="description"
+          content="Top-level index to the standard documentation for
+                   LilyPond @TOPLEVEL_VERSION@">
+    <style type="text/css">
+    .navigation         { background-color: #e8ffe8;
+                         padding: 2; border: #c0ffc0 1px solid;
+                         text-align: center;
+                          font-weight: bold;
+                          font-family: avantgarde, sans-serif;
+                          font-size: 110%; }
+      a.title { font-weight: bold; font-size: 110%; }
+      ul { margin-left: 1em; padding: 0pt; border: 0pt; }
+      ul li { margin-top: 0.2em; }
+      td.left-column { padding-right: 1em; }
+      td.right-column { padding-left: 1em; }
+      hr { border:0; height:1; color: #000000; background-color: #000000; }
+    </style> 
+  </head>
+  
+  <body>
+        
+       <div class="navigation">
+         <h1>Documentation de LilyPond</h1>
+       </div>
+    <div align="center" class="titlepage">
+
+      <p>
+       <strong>Version @TOPLEVEL_VERSION@</strong>
+       <br>
+       <strong>@DATE@</strong>
+      </p>
+    </div>
+
+    <table align="center">
+      <tbody>
+        <tr>
+          <td class="left-column">
+         <ul>
+           <li>
+           <a class="title"
+             href="user/lilypond/Tutorial.fr.html">Tutoriel</a>
+             <br>&mdash; commencer ici
+         </ul>
+         </td>
+         <td class="right-column">
+         <ul>
+         
+            <li>
+           <a class="title" href="topdocs/NEWS.html">Nouveautés</a>
+           <br>&mdash; changements depuis la version majeure précédente
+
+            <li>
+           <a class="title" href="topdocs/INSTALL.html">Installation</a>
+           <br>&mdash; comment compiler
+         </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+          &nbsp;
+         <ul>
+           <li>
+<a class="title" href="user/lilypond/index.fr.html">Manuel de l'utilisateur</a>
+(partiellement traduit,<br> aussi en <a class="title"
+           href="user/lilypond-big-page.html">page unique
+           en anglais</a> ~ 4 Mb,<br>
+ou <a class="title" href="user/lilypond.pdf">au format PDF en anglais</a>)
+
+     <br>&mdash; revue de détails
+     
+<li><a class="title" href="../examples.html">Exemples</a>
+
+     <br>&mdash; voir quelques exemples
+
+<li><a class="title" href="../input/lsr/collated-files.html">Extraits de code</a>
+     <br>&mdash; en cours de développement
+
+<li><a class="title" href="../input/test/collated-files.html">Trucs et astuces</a>
+(~ 2 Mb, <a class="title" href="../input/test/collated-files.pdf">au format PDF</a>)
+
+     <br>&mdash; pour aller encore plus loin
+ <li><a class="title" href="user/music-glossary/index.html">Glossaire</a>
+multilingue<br>(aussi en <a class="title"
+ href="user/music-glossary-big-page.html">page unique</a> ~ 1 Mb ou
+<a class="title" href="user/music-glossary.pdf">au format PDF</a>)
+
+     <br>&mdash; pour les utilisateurs non anglophones
+         </ul>
+         </td>
+         <td valign="baseline" class="right-column">
+          &nbsp;
+         <ul>
+           <li>
+ <a  class="title" href="user/lilypond-internals/index.html">Référence du programme</a>
+ (en anglais,<br> en <a class="title" href="user/lilypond-internals-big-page.html">page unique</a> ~ 1 Mb)
+
+     <br>&mdash; définitions pour les retouches
+
+           <li>
+     <a  class="title"
+     href="../input/regression/collated-files.html">Tests de régression</a> (~ 5 Mb, <a  class="title" href="../input/regression/collated-files.pdf">au format PDF</a>, <a href="../test-results.html">comparaison</a>)
+
+     <br>&mdash; pour les développeurs
+
+
+           <li><a  class="title" href="bibliography/index.html">Bibliographie</a>
+
+     <br>&mdash; informations complémentaires
+<li><a class="title"  href="THANKS.html">Remerciements</a>
+<br>&mdash; à nos contributeurs
+
+<li><a class="title"  href="DEDICATION.html">Dédicace</a>
+
+     <br>&mdash; par Jan et Han-Wen
+
+         </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+          &nbsp;
+          <ul>
+            <li> <a class="title"  href="http://lilypond.org/">lilypond.org</a>
+              <br>&mdash; le site Web
+          </ul>
+          </td>
+          <td valign="baseline" class="right-column">
+          &nbsp;
+          <ul>
+            <li>
+             <a class="title" href="http://www.gnu.org/copyleft/gpl.html">Licence</a>
+             <br>&mdash; la licence GNU GPL
+          </ul>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <p><strong>NOTE</strong>&nbsp;: vous pouvez trouver, au bas de
+    chaque page de cette documentation, des liens vers les traductions
+    disponibles.
+    </p>
+  </body>
+</html>
index 709eef6d529414274cc1c8c391882642afc7c0d1..dfaef79db5667215acf50c15d6dc4a2cb106398d 100644 (file)
@@ -15,7 +15,7 @@ UNTRANSLATED NODE: IGNORE ME
 @menu 
 * Pitches::
 * Rhythms::
-* Multiple notes at once::
+* Polyphony::
 * Staff notation::
 * Connecting notes::
 * Expressive marks::
@@ -137,8 +137,8 @@ UNTRANSLATED NODE: IGNORE ME
 
 UNTRANSLATED NODE: IGNORE ME
 
-@node Multiple notes at once
-@section Multiple notes at once
+@node Polyphony
+@section Polyphony
 
 UNTRANSLATED NODE: IGNORE ME
 
diff --git a/Documentation/fr/user/macros.itexi b/Documentation/fr/user/macros.itexi
new file mode 100644 (file)
index 0000000..916ff7d
--- /dev/null
@@ -0,0 +1,258 @@
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ifnottex
+  @macro texisharp {word}
+  #
+  @end macro
+  @macro texiflat {word}
+  b
+  @end macro
+@end ifnottex
+
+@c FIXME, use \fetaaccidentalsXMC?
+@c \\kern0.15em\\fetachar\\fetaflat
+@iftex
+ @macro texiflat {word}
+ @tex
+ FIXME: fetaflat
+ @end tex
+ @end macro
+@c FIXME, use \fetaaccidentalsXC?
+@c  \\raise0.5ex\\fetachar\\fetasharp
+ @macro texisharp {word}
+  @tex
+  FIXME: fetasharp
+  @end tex
+  @end macro
+@end iftex
+
+
+@macro arrow{}
+@iftex
+@tex $\\Rightarrow$ @end tex@c
+@end iftex
+@ifhtml
+@html
+&rarr;
+@end html
+@end ifhtml
+@ifinfo
+-->
+@end ifinfo
+@end macro
+
+
+@ifhtml
+@c ***** HTML *****
+
+@c makeinfo-4.7 encodes html names, which means that nodes that
+@c contain nonalphanum characters will be broken links on the website.
+@c @uref{../lilypond-internals/\NAME\.html,\NAME\}@c
+@c @inforef{} adds ``See'' to the sentence, which is annoying, but
+@c better than a broken link.
+@c @inforef{\NAME\,,lilypond-internals}@c
+@c using @ref without punctuation is OK without for formats other than info
+
+@c annoying parentheses stripped by add-html-footer.py
+@macro internalsref{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-internals}
+@end macro
+
+@c usage: @inputfileref{input@/regression,FILE@/-NAME.ly}
+@macro inputfileref{DIR,NAME}
+@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@end macro
+
+@c annoying parentheses stripped by add-html-footer.py
+@macro rglos{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,music-glossary}
+@end macro
+
+@c to get decent quotes in `foo'
+@macro q{TEXT}
+@html
+&lsquo;\TEXT\&rsquo;
+@end html
+@end macro
+
+@c to get decent French quotes in ``foo''
+@macro qq{TEXT}
+@html
+&laquo; \TEXT\ &raquo;
+@end html
+@end macro
+
+@end ifhtml
+
+
+@ifdocbook
+@c ***** DOCBOOK-XML *****
+
+@macro internalsref{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-internals}
+@end macro
+
+@macro inputfileref{DIR,NAME}
+@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}
+@end macro
+
+@macro rglos{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,music-glossary}
+@end macro
+
+@c to get decent quotes in `foo'
+@macro q{TEXT}
+@xml
+&lsquo;\TEXT\&rsquo;
+@end xml
+@end macro
+
+@c to get decent quotes in ``foo''
+@macro qq{TEXT}
+@xml
+&laquo;\TEXT\&raquo;
+@end xml
+@end macro
+
+@end ifdocbook
+
+
+@ifinfo
+@c **** INFO ****
+
+@macro internalsref{NAME}
+@vindex \NAME\
+@inforef{\NAME\,,lilypond-internals}
+@end macro
+
+@macro inputfileref{DIR,NAME}
+@file{\DIR\/\NAME\}
+@end macro
+
+@macro rglos{NAME}@c
+@vindex \NAME\
+@inforef{\NAME\,,,music-glossary}
+@end macro
+
+@macro usermanref{NAME}
+@inforef{\NAME\}
+@end macro
+
+@c to get decent quotes in `foo'
+@macro q{TEXT}
+`\TEXT\'
+@end macro
+
+@c to get decent quotes in ``foo''
+@macro qq{TEXT}
+« \TEXT\ »
+@end macro
+
+@end ifinfo
+
+
+@c **** TEX ****
+@iftex
+
+@macro internalsref{NAME}
+@vindex \NAME\
+@code{\NAME\}
+@end macro
+
+@macro inputfileref{DIR,NAME}
+@file{\DIR\/@/\NAME\}
+@end macro
+
+@macro rglos {NAME}
+@vindex \NAME\
+@code{\NAME\}
+@end macro
+
+@macro seeinternals{NAME}
+internals document, @internalsref{\NAME\}
+@end macro
+
+@macro usermanref{NAME}
+user manual, @internalsref{\NAME\}
+@end macro
+
+@c to get decent quotes in `foo'
+@macro q{TEXT}
+`\TEXT\'
+@end macro
+
+@c to get decent quotes in ``foo''
+@macro qq{TEXT}
+<< \TEXT\ >>
+@end macro
+
+@end iftex
+
+
+@ifnottex
+@c **** not TEX ****
+
+@macro seeinternals{NAME}
+@internalsref{\NAME\}
+@end macro
+
+@ifnotinfo
+@macro usermanref{NAME}
+@ref{\NAME\}
+@end macro
+@end ifnotinfo
+
+@end ifnottex
+
+
+@c **** ALL ****
+
+@macro refbugs
+@noindent
+@subsubheading Bugs
+
+@end macro
+
+@macro moreinfo
+@subheading More information
+
+@end macro
+
+@macro seealso
+@noindent
+@subsubheading See also
+
+@end macro
+
+@macro refcommands
+@noindent
+@subsubheading Predefined commands
+
+@end macro
+
+@macro context{NAME}
+@vindex \NAME\
+@code{\NAME\}@c should use internalsref
+@end macro
+
+@macro refcommand{WHAT}
+@vindex \WHAT\
+@code{\WHAT\}
+@end macro
+
+@macro commonprop
+@noindent
+@subsubheading Commonly tweaked properties
+
+@end macro
+
+@macro funindex {WORD}
+@findex \WORD\
+@kindex \WORD\
+@end macro
+
+@c EOF
index d0bef0dbeffebfe3161e50ab608e5a8081623b6a..802ba619df42947e9238912dc847cc0fb0c53576 100644 (file)
@@ -1,7 +1,7 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: ac7d0e72b32b6a11470f598f2bee180b11402fe8
+    Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @node Preface
 @unnumbered Preface
 
-UNTRANSLATED NODE: IGNORE ME
+Ce doit être pendant une répétition de l'Orchestre des Jeunes
+d'Eindhoven, un jour de 1995, que Jan, du pupitre des altistes tordus,
+aborda Han-Wen, un corniste déjanté, pour lui parler d'un mirifique
+projet dans lequel il venait de se lancer.  Il s'agissait d'un système
+automatisé de gravure musicale --- le préprocesseur MPP pour MusiXTeX
+pour être précis.  Han-Wen, qui voulait justement imprimer certaines
+parties d'une oeuvre, jeta un premier coup d'oeil à ce programme, et
+devint très vite accro.  Le MPP s'avéra bientôt une voie sans issue.
+Après avoir ratiociné et échangé un grand nombre de courriels
+enflammés, Han-Wen lança le projet LilyPond en 1996, dans lequel,
+cette fois, ce fut au tour de Jan de se sentir entraîné.
 
+De bien des points de vue, coder un programme informatique, c'est
+comme apprendre à jouer d'un instrument.  Au début c'est sympa, on
+découvre comment ça fonctionne, et on aborde tout ce qu'on n'arrive
+pas encore à faire comme autant de défis.  L'exaltation de la
+nouveauté s'estompant, on doit s'entraîner encore et encore.  Les
+gammes, les études deviennent vite ennuyeuses, et peuvent, si l'on
+n'est pas encouragé par d'autres --- professeurs, chefs ou public ---
+en décourager plus d'un.  Pourtant, pour peu que l'on persévère,
+l'instrument devient progressivement une partie de notre vie.  Si
+certains jours en jouer semble naturel, c'est un vrai bonheur.  Et si
+d'autres jours on ne peut tout simplement rien en tirer, on continue
+quand même à travailler, jour après jour.
+
+De même, développer LilyPond peut être une tâche harassante.  Certains
+jours, c'est un monceau de bugs duquel il faut se dépêtrer. Pourtant,
+il fait maintenant partie de notre vie, et nous nous accrochons.
+Notre principale motivation est sans doute que notre logiciel est
+véritablement utile aux gens.  En flânant sur Internet, nous trouvons
+beaucoup de gens qui se servent de LilyPond, et réalisent des
+partitions très impressionnantes : c'est incroyable, mais en même
+temps très flatteur.
+
+Les utilisateurs ne se contentent pas de nous encourager en utilisant
+notre logiciel ; nombre d'entre eux nous aident aussi en faisant des
+suggestions et en signalant des bogues.  Aussi, nous voudrions
+remercier ici tous les utilisateurs qui nous ont signalé des bugs, ont
+fait des suggestions ou ont contribué d'une façon ou d'une autre au
+développement de LilyPond.
+
+Jouer de la musique ou en graver, il y a là plus qu'une comparaison
+séduisante.  Même si l'on s'amuse beaucoup en programmant tous
+ensemble, et qu'on éprouve une satisfaction profonde à aider les gens,
+au bout du compte, notre travail sur LilyPond est avant tout une
+manière d'exprimer notre amour sincère de la musique.  Puisse-t-il
+vous aider à créer de nombreuses et belles oeuvres !
+
+Han-Wen et Jan
+
+Utrecht/Eindhoven, Pays-Bas, juillet 2002.
index e6a719979293f6c90cd9b0dda6ae4f1bc4fe153e..7b9d9c443a23ea8508db00589fb05db555170bd4 100644 (file)
@@ -1,12 +1,29 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 64f0d86a7c0987b311bfdfdfeddfa063e1f2d6e7
+   Translation of GIT committish: a9d6b9a317e20cff479f9e0e54320dfae40bde31
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@ignore
+Tutorial guidelines:
+- unless you have a really good reason, use either
+   @l ilypond[quote,ragged-right,verbatim]
+ or
+   @l ilypond[quote,ragged-right,verbatim,fragment,relative=2]
+ (without spaces)
+ Don't use any other relative=X commands (make it a non-fragment
+ example), and don't use fragment without relative=2.
+- use "aes" and "ees" instead of "as" and "aes".  I know it's not
+ correct Dutch naming, but let's not confuse people with this until
+ we get to the Basic notation chapter.
+@end ignore
+
+
+
+@c   old info that will probably be removed.
 @c TODO:
 @c   * more details about running lilypond; error messages,
 @c     compiling/viewing (emacs?)
 
 @c Your first LilyPond score in 10 minutes?
 
-@node Tutorial   
+@node Tutorial
 @chapter Tutorial
 
 Ce tutoriel commence par une introduction au langage musical utilisé
 par LilyPond, qui vous permettra de faire fonctionner le logiciel pour
-prosuire une partition.  Après ce premier contact, nous verrons comment
+produire une partition.  Après ce premier contact, nous verrons comment
 créer des partitions utilisant une notation musicale courante.
 
 @ifhtml
-Beaucoup de gens apprennent à utiliser les programmes en les essayant
+Beaucoup de gens apprennent à  utiliser les programmes en les essayant
 et en bidouillant avec.  C'est également possible avec LilyPond.  Si
 vous cliquez sur une image dans la version HTML de ce manuel, vous
 verrez exactement le code LilyPond utilisé pour générer cette image.
-Essayez sur cette image
+Essayez sur cette image :
 
-@lilypond[fragment,quote,ragged-right,relative=2]
-c-\markup { \bold \huge { Click here.  } }
+@c no verbatim here
+@lilypond[quote,ragged-right]
+\relative c'' {
+  c-\markup { \bold \huge { Click here.  } }
+}
 @end lilypond
-@end ifhtml
 
-En copiant et en collant l'intégralité du code dans un fichier test,
-vous aurez un modèle comme base pour expérimenter.  Si vous
+En copiant et en collant tout le code @qq{ly snippet} dans un fichier test,
+vous aurez un modèle de base pour faire vos expériences.  Si vous
 apprenez de cette façon, vous aurez probablement envie d'imprimer ou
-de créer un lien vers
-@ifhtml
-la
-@end ifhtml
+de garder un lien vers la
 @ref{Cheat sheet}, tableau qui répertorie les commandes usuelles
 pour une consultation rapide.
+@end ifhtml
 
 @menu
-* First steps::                 
-* Second steps::  
-* More about pitches::          
-* Entering ties::               
-* Automatic and manual beams::  
-* Octave entry::                
-* Music expressions explained::  
-* More staves::                 
-* Adding articulation marks to notes::  
-* Combining notes into chords::  
-* Advanced rhythmic commands::   
-* Commenting input files::      
-* Printing lyrics::             
-* A lead sheet::                
-* Adding titles::               
-* Single staff polyphony::      
-* Piano staves::                
-* Organizing larger pieces::    
-* An orchestral part::          
-* After the tutorial::
+* First steps::
+* Single staff notation::
+* Multiple notes at once::
+* Songs::
+* Final touches::
 @end menu
 
 
 @node First steps
 @section First steps
 
-Le premier exemple montre comment écrire la partition la plus
-élémentaire qui soit, une gamme (@rglos{scale}).  Une @rglos{note} peut
-être entrée en tapant son nom, de @samp{a} à @samp{g}.  Donc si vous
-entrez
+Cette section présente sommairement la façon de travailler avec LilyPond.
+
+@menu
+* Compiling a file::
+* Simple notation::
+* Working on text files::
+* How to read the tutorial::
+@end menu
+
+
+@node Compiling a file
+@subsection Compiling a file
+
+Le premier exemple montre comment débuter avec LilyPond.  Pour créer
+une partition, on écrit un fichier de texte qui décrit la notation
+musicale.  Par exemple, si l'on écrit
 
 @example
 @{
-c' d' e' f' g' a' b' c''
+  c' e' g' e'
 @}
 @end example
 
 @noindent
-le résultat ressemblera à 
+le résultat ressemblera à
 
-@lilypond[quote]
+@c  in this case we don't want verbatim
+@lilypond[quote,ragged-right]
 {
-c' d' e' f' g' a' b' c''
+  c' e' g' e'
 }
 @end lilypond
 
 @c DIV specific
 Il est aussi possible d'utiliser les noms de notes français @samp{do
 re mi fa sol la si}, en insérant au début du fichier la ligne
-@samp{\include "catalan.ly"}
+@samp{\include "italiano.ly"}
 @c END DIV
 
 @emph{Attention :} tout extrait de code LilyPond doit être entouré
@@ -107,530 +122,852 @@ la ligne.  Bien que certains exemples de ce manuel ne comportent pas
 d'accolades, ne les oubliez pas dans vos partitions !
 
 @cindex Case sensitive
-De plus, LilyPond est sensible à la casse.  @code{ @{ c d e @} } est
+De plus, LilyPond est sensible à  la casse.  @code{ @{ c d e @} } est
 un code valide ; @code{ @{ C D E @} } produira un message d'erreur.
 
-@unnumberedsubsec Entering music and viewing output
+@sp 1
+
+@subheading Entering music and viewing output
 
 Dans cette section nous expliquerons quelles commandes exécuter et
 comment voir ou imprimer le résultat de LilyPond.
 
-@unnumberedsubsubsec MacOS X
+@subsubheading MacOS X
 
-Si vous double-cliquez sur LilyPond.app, un fichier d'exemple sera
-ouvert.  Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
+Si vous double-cliquez sur LilyPond.app, un fichier d'exemple
+s'ouvrira.  Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
 bureau, et traitez-le ensuite avec la commande du menu @samp{Compile >
-Typeset File}.  Le fichier PDF résultant est alors affiché sur votre
+Typeset File}.  Le fichier PDF résultant sera alors affiché sur votre
 écran.
 
-Pour l'utilisation future de LilyPond, vous commencerez certainement
-en sélectionnant « Nouveau » ou « Ouvrir ».
-
 Notez que le premier démarrage peut prendre une minute ou deux, car
-toutes les polices systèmes doivent être d'abord analysées.
+toutes les polices système doivent être d'abord analysées.
 
-@unnumberedsubsubsec Windows
+À 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
 
 Sous Windows, démarrez un éditeur de texte @footnote{N'importe quel
 éditeur simple ou orienté programmation, qui prend en charge le codage
-de caractères UTF-8, fera l'affaire, par exemple Notepad.  N'utilisez
+de caractères UTF-8, fera l'affaire, par exemple le Bloc-notes.  N'utilisez
 pas de traitement de texte car ceux-ci insèrent des codes de formatage
-qui posent problème à LilyPond.} et saisissez
+qui posent problème à  LilyPond.}  et saisissez
 
 @verbatim
-{ c' e' g' c'' }
+{
+  c' e' g' e'
+}
 @end verbatim
 
 Enregistrez-le sur le bureau sous @file{test.ly} et vérifiez bien
 qu'il ne s'appelle pas @file{test.ly.TXT}.  Double-cliquez sur le
 fichier @file{test.ly} pour le traiter et afficher le fichier
-PDF résultant.
+PDF résultant.  Pour modifier un fichier @file{.ly} existant, faites
+un clic droit dessus et sélectionnez @qq{Éditer la source}.
+
+Si vous double-cliquez sur l'icône LilyPond sur le Bureau, un fichier
+d'exemple s'ouvrira dans un simple éditeur de texte.  Enregistrez-le,
+par exemple en tant que @file{test.ly} sur votre Bureau, puis
+double-cliquez dessus pour le traiter.  Après quelques secondes, vous
+obtiendrez un fichier @file{test.pdf} sur votre Bureau, fichier que
+vous pourrez ouvrir pour voir la partition imprimée.  Une autre
+méthode pour lancer le traitement du fichier @file{test.ly} est de le
+glisser avec votre souris sur l'icône de LilyPond.
 
+En double-cliquant sur le fichier, vous obtiendrez, en plus du fichier
+PDF, un fichier @file{.log} qui récapitule les opérations que LilyPond
+a effectuées sur votre fichier.  Si une erreur advient, c'est ce
+fichier qu'il vous faudra étudier.
+
+@subsubheading Unix
 
-@unnumberedsubsubsec Unix
 
 Commencez par ouvrir une fenêtre de terminal et un éditeur de
 texte.  Par exemple, vous pouvez ouvrir un xterm et exécuter
-@code{joe}.  @footnote{Des fichiers de macros pour les fans de VIM et un
-@code{LilyPond-mode} pour les fans d'Emacs existent.   S'ils ne sont pas
-encore installés, consultez le fichier @file{INSTALL.txt}.} Dans votre
+@code{joe}.  @footnote{Il existe des fichiers de macros pour les fans
+de VIM et un
+@code{LilyPond-mode} pour les fans d'Emacs.   S'ils ne sont pas
+encore installés, consultez le fichier @file{INSTALL.txt}.  L'outil
+d'édition le plus facile d'utilisation est de loin
+@file{LilyPondTool}.  Vous trouverez plus d'informations dans
+@ref{Editor support}.}  Dans votre
 éditeur, entrez le texte suivant et sauvegardez le fichier sous
 @file{test.ly}
 
 @verbatim
-{ c' e' g' c'' }
+{
+  c' e' g' e'
+}
 @end verbatim
 
 @noindent
-Pour traiter @file{test.ly}, procédez comme ceci : 
+Pour traiter @file{test.ly}, procédez comme ceci :
 
 @example
 lilypond test.ly
 @end example
 
 @noindent
-Vous verrez quelque chose ressemblant à :
+Vous verrez quelque chose ressemblant à  :
 
 @example
 lilypond test.ly
 GNU LilyPond 2.10.0
 Processing `test.ly'
 Parsing...
-Interpreting music... [1]
+Interpreting music...  [1]
 Preprocessing graphical objects...
-Calculating line breaks... [2]
+Calculating line breaks...  [2]
 Layout output to `test.ps'...
 Converting to `test.pdf'...
 @end example
 
 @c DIV specific
-Suivant votre installation, les messages peuvent être traduits.
+Suivant votre installation, ces messages peuvent être traduits.
 @c END DIV
 
 @cindex PDF file
 @cindex Viewing music
 
 @noindent
-Le résultat est le fichier @file{test.pdf}, que vous pouvez imprimer
+De tout cela résulte un fichier @file{test.pdf}, que vous pouvez imprimer
 ou visualiser avec les outils standards de votre système
 d'exploitation.  @footnote{Si votre système ne dispose pas des outils
 nécessaires, vous pouvez essayer
 @uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, un
-programme pour voir et imprimer les fichiers PDF et PostScript.}
+programme pour afficher et imprimer librement les fichiers PDF et PostScript.}
 
 
-@node Second steps
-@section Second steps
+@node Simple notation
+@subsection Simple notation
 
-@emph{N'oubliez pas :} tout extrait de musique source LilyPond doit
-être entouré d'@{accolades@}.  Pour éviter toute ambiguïté, il
-est préférable d'entourer les accolades par des espaces ou retours à
-la ligne.  Bien que certains exemples de ce manuel ne comportent pas
-d'accolades, ne les oubliez pas dans vos partitions !
+Il y a certains éléments graphiques que LilyPond ajoute
+automatiquement.  Dans l'exemple suivant, nous n'avons fourni que
+quatre hauteurs, mais LilyPond a ajouté une clé, un chiffre de mesure
+et du rythme.
 
-@c will be removed once the tutorial either explains \relative or
-@c examples are fixed so they don't use it.  -gp
-De plus, de nombreux exemples utilisent le mode @code{relative}.  Ceci
-est expliqué à la section @ref{Octave entry} ; sachez dès à présent
-que certains exemples devraient être libellés sous la forme 
-@code{\relative @{ @emph{...musique...} @}}.
-De nombreux exemples ont aussi été compressés horizontalement pour
-économiser de la place, grace à la commande
-@code{\paper @{ragged-right = ##t @}}. 
+@lilypond[quote,ragged-right,verbatim]
+{
+  c' e' g' e'
+}
+@end lilypond
 
-@cindex Case sensitive
-Enfin, LilyPond est sensible à la casse.  @code{ @{ c d e @} } est
-un code valide ; @code{ @{ C D E @} } produira un message d'erreur.
+@noindent
+Ce comportement peut être modifié, mais dans bien des cas ces
+attributions automatiques s'avèrent utiles.
 
-@c  End of latest re-write.  Since I have no life, I may do more
-@c  work on this, but I'd really like to have a Doc Helper take
-@c  over this task.  -gp
 
-La durée (@rglos{duration}) d'une note est spécifiée par un nombre
-qui suit le nom de cette note : @samp{1} pour une ronde (@rglos{whole
-note}), @samp{2} pour une blanche (@rglos{half note}), @samp{4} pour
-une noire (@rglos{quarter note}) et ainsi de suite.
+@subheading Pitches
+Le moyen le plus simple d'entrer des notes est d'utiliser le mode
+@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}).
 
-@example
-a1 a2 a4 a16 a32
-@end example
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  c d e f
+  g a b c
+}
+@end lilypond
 
-@lilypond[fragment,quote,notime,relative=2]
-\set Staff.autoBeaming = ##f
-{ a1 a2 a4 a16 a32 s16_" " }
+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
+:
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  d f a g
+  c b f d
+}
 @end lilypond
 
-Si aucune durée n'est spécifiée, la dernière durée entrée est utilisée
-pour les notes suivantes.  La valeur implicite de la première note
-dans les fichiers sources de la partition est la noire :
+@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
+plus proche.
 
-@example
-a a8 a a2 a
-@end example
+Pour ajouter des intervalles supérieurs à une quarte, il suffit
+d'indiquer si la note est à l'octave supérieure ou inférieure, en
+ajoutant respectivement une apostrophe @code{'} ou une virgule
+@code{,} au nom de la note.
 
-@lilypond[fragment,quote,notime,relative=2]
-{ a a8 a a2 a s16_" " }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  a a, c' f,
+  g g'' a,, f'
+}
 @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{,,} --
+attention cependant à bien mettre deux apostrophes @code{''}, et non
+deux guillemets @code{"}@tie{}! C'est de cette même manière que l'on
+peut modifier la valeur de départ de @code{\relative c'}.
 
-On saisit un silence (@rglos{rest}) tout comme une note, mais avec le
-caractère @samp{r}
 
-@example
-r2 r4 r8 r16
-@end example
+@subheading Durations (rhythms)
 
-@lilypond[fragment,quote,notime]
-r2 r4 r8 r16 s16_" "
+La @rglos{duration} d'une note est indiquée par un nombre
+qui suit son nom : @samp{1} pour une @rglos{whole
+note}, @samp{2} pour une @rglos{half note}, @samp{4} pour
+une @rglos{quarter note} et ainsi de suite.  Les hampes sont
+ajoutées automatiquement.
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  a1
+  a2 a4 a8 a
+  a16 a a a a32 a a a a64 a a a a a a a a2
+}
 @end lilypond
 
-Ajouter un point @samp{.} après une durée permet d'obtenir une note
-pointée (@rglos{dotted note})
+@noindent
+Si aucune durée n'est indiquée, la dernière durée entrée sera utilisée
+pour les notes suivantes.  En l'absence d'indication, la première note
+est une noire.
 
-@example
-a2. a4 a8. a16
-@end example
+Les @rglos{dotted notes} s'obtiennent en ajoutant un point @samp{.}  à
+la valeur rythmique.
 
-@lilypond[fragment,quote,notime,relative=1]
-{ a2. a4 a8. a16 s16_" " }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  a a a4. a8
+  a8. a16 a a8. a8 a4.
+}
 @end lilypond
 
-La métrique (@rglos{time signature}) est définie par
-la commande @code{\time}
 
-@example
-\time 3/4
-\time 6/8
-\time 4/4
-@end example
+@subheading Rests
 
-@c A clef here may lead to confusion, remove it.
-@lilypond[fragment,quote]
-\override Staff.Clef #'transparent = ##t
-\time 3/4
-s4_" "
-\time 6/8
-s4_" "
-\time 4/4
-s16_" "
+On saisit un (@rglos{rest}) tout comme une note, mais avec le
+caractère @samp{r}.
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  a r r2
+  r8 a r4 r4. r8
+}
 @end lilypond
 
-La @rglos{clef} est définie par la commande @code{\clef}
 
-@example
-\clef treble
-\clef bass
-\clef alto
-\clef tenor
-@end example
+@subheading Time signature
 
-@lilypond[fragment,quote,notime]
-\clef treble
-s4_" "
-\clef bass
-s4_" "
-\clef alto
-s4_" "
-\clef tenor
-s16_" "
+Le @rglos{time signature}) peut être défini à l'aide de la commande
+@code{\time} :
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  \time 3/4
+  a4 a a
+  \time 6/8
+  a4. a
+  \time 4/4
+  a4 a a a
+}
 @end lilypond
 
-Pensez bien à encadrer les notes et les commandes avec des accolades
-@code{@{@tie{}@dots{}@tie{}@}} pour pouvoir obtenir un résultat
-imprimable.
 
-@lilypond[fragment,quote,noindent,verbatim]
-\time 3/4
-\clef bass
-c2 e4 g2.
-f4 e d c2 r4
+@subheading Clef
+
+La @rglos{clef} peut être définie à l'aide de la commande @code{\clef} :
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c' {
+  \clef treble
+  c1
+  \clef alto
+  c1
+  \clef tenor
+  c1
+  \clef bass
+  c1
+}
 @end lilypond
 
-Pour plus d'informations sur
 
+@subheading All together
+
+Voici un bref exemple qui montre tous ces éléments ensemble :
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c, {
+  \time 3/4
+  \clef bass
+  c2 e8 c' g'2.
+  f4 e d c4 c, r4
+}
+@end lilypond
+
+@moreinfo
 @quotation
 @table @asis
-@item la définition des hauteurs et des durées
-voir
-@ref{Pitches}, et @ref{Durations}.
-@item les clefs
-voir @ref{Clef}
-@item les silences
+@item Entrer des hauteurs et des durées
+voir @ref{Pitches} and @ref{Durations}.
+@item Les silences
 voir @ref{Rests}.
-@item la métrique et autres commandes liées au temps
+@item Les chiffres de mesure et autres commandes de métrique
 voir @ref{Time signature}.
+@item Les clés
+voir @ref{Clef}.
+@end table
+@end quotation
+
+
+@node Working on text files
+@subsection Working on text files
+
+Les fichiers d'entrée de LilyPond sont traités comme la plupart des
+langages de programmation : la casse est prise en compte mais pas les
+espaces vides, les expressions musicales sont délimitées par des
+accolades @{ @}, et les commentaires par des @code{%} ou @code{%@{ ..
+%@}}.
+
+Si cette phrase vous paraît incompréhensible, ne vous en faites pas !
+Tous ces termes vont être expliqués :
+
+@itemize
+
+@cindex Case sensitive
+@item @strong{La casse} :
+LilyPond est sensible à  la casse, c'est à dire qu'une lettre en
+capitales n'a pas la même valeur qu'une lettre en minuscules.  Les
+notes, par exemple, doivent être entrées en minuscules :  @code{ @{ c
+d e @} } est
+un code valide, alors que @code{ @{ C D E @} } produira un message d'erreur.
+
+@item @strong{Les espaces multiples} :
+LilyPond ne tient pas compte du nombre d'espaces, ou de retours à la
+ligne.  @code{ @{ c d e @}} a le même sens que @code{ @{ c @ @ @ @ @
+d e @} } ou que
+@example
+         @{
+c                        d
+ e @}
+@end example
+
+@noindent
+Bien sûr, ce dernier exemple est difficile à lire.  Une bonne habitude
+à prendre est d'indenter les blocs de code avec soit des tabulations
+soit des doubles espaces :
+@example
+@{
+  c d e
+@}
+@end example
+
+@item @strong{Expressions musicales :}
+Tout morceau saisi dans LilyPond doit être placé entre @strong{@{
+accolades @}}.  Ces caractères indiquent à LilyPond que ce bloc de
+texte est une et une seule expression musicale, tout comme les
+parenthèses @samp{()} en mathématiques.  Il est préférable, pour
+éviter toute ambiguïté, d'entourer tous ces crochets d'espaces, à
+moins qu'ils se trouvent au début ou à la fin d'une ligne.
+
+Une fonction telle que @code{\relative @{ @}} ) compte également comme
+une seule expression musicale.
+
+@cindex comments
+@cindex line comment
+@cindex block comment
+@item @strong{Les commentaires} :
+Un commentaire est une indication pour tout lecteur humain d'un
+fichier de musique ; il est ignoré par l'ordinateur, et n'a donc aucun
+effet sur la partition imprimée.  On distingue deux types de
+commentaires :
+@itemize @bullet
+@item la ligne de commentaire, introduite par le symbole @samp{%} :
+tout ce qui suit ce symbole sur cette ligne sera ignoré.
+@item le bloc de commentaire, qui peut être de plusieurs lignes voire
+de toute une section : tout ce qui se trouve entre @code{%@{} et
+@code{%@}} est ignoré.
+@end itemize
+Le fragment suivant met en évidence quelques usages possibles des commentaires :
+
+@example
+% voici les notes de "ah vous dirai-je maman"
+ c4 c g' g a a g2
+
+%@{
+   Ces lignes et les notes qui suivent
+   seront ignorées, car elles se trouvent
+   dans un bloc de commentaire.
+
+   g g f f e e d d c2
+%@}
+@end example
+
+@end itemize
+
+Vous trouverez plus d'astuces pour organiser vos fichiers LilyPond dans
+@ref{Suggestions for writing LilyPond files}.
+
+
+@node How to read the tutorial
+@subsection How to read the tutorial
+
+Comme nous l'avons vu dans @ref{Working on text files}, un code
+LilyPond doit être encadré par des @{ @} ou bien par @code{\relative
+c'' @{ ...  @}} afin d'être compris.  Cependant, dans la suite de ce
+manuel, la plupart des exemples ne feront pas apparaître ces signes.
+
+Si vous consultez la documentation au format HTML, et que vous
+souhaitez voir la source exacte d'un exemple, il vous suffit de
+cliquer sur l'image.  Si vous ne disposez pas de la version HTML, il
+vous est possible de simplement copier et coller le code affiché, mais
+@strong{à condition} d'ajouter @code{\relative c'' @{ @}} de la façon
+suivante :
+
+@example
+\relative c'' @{
+ ...  collez ici votre exemple...
+@}
+@end example
+
+Pourquoi avoir omis les accolades ? La plupart des exemples de ce
+manuel peuvent être insérés au milieu d'un morceau de musique plus
+long.  Il n'y a donc aucune raison d'ajouter @code{\relative c'' @{
+@}} à ces exemples --- en effet, il n'est pas possible d'insérer un
+@code{\relative} à l'intérieur d'un autre @code{\relative}.  Il vous
+serait donc devenu impossible de copier un bref exemple de la
+documentation et de le coller dans une pièce de votre cru.
+
+@node Single staff notation
+@section Single staff notation
+
+Cette section présente la notation courante dont on a besoin pour
+écrire une seule voix sur une seule portée.
+
+@menu
+* Relative note names::
+* Accidentals and key signatures::
+* Ties and slurs::
+* Articulation and dynamics::
+* Automatic and manual beams::
+* Advanced rhythmic commands::
+@end menu
+
+
+@node Relative note names
+@subsection Relative note names
+
+Comme nous l'avons vu dans @ref{Simple notation}, LilyPond calcule la
+hauteur de chaque note en fonction de la précédente@footnote{Il existe
+un autre mode de saisie des hauteurs, le mode @ref{Absolute note
+names}, mais en pratique il est bien plus aisé et sûr d'avoir recours
+au mode de hauteurs relatives.}.  Si aucune indication supplémentaire
+d'octaviation n'est ajoutée, il en conlcuera que chaque hauteur est
+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}
+é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.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c2 fis
+c2 ges
+@end lilypond
+
+@moreinfo
+@quotation
+@table @asis
+@item Les Octaves Relatives
+voir @ref{Relative octaves}.
+@item Les vérifications d'octaves
+voir @ref{Octave check}.
 @end table
 @end quotation
 
 
-@node More about pitches
-@section More about pitches 
 
-Un dièse (@rglos{sharp}) s'obtient en ajoutant @samp{is} au nom de la
-note, un bémol (@rglos{flat}) en ajoutant @samp{es}.  Comme vous pouvez
-vous y attendre, un double dièse ou double bémol est obtenu en
+@node Accidentals and key signatures
+@subsection Accidentals and key signatures
+
+@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.}.
 
 @c DIV specific
-Si vous utilisez la commande @samp{\include "catalan.ly"} pour entrer
+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
+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
 
-@example
-cis1 ees fisis aeses
-@end example
+Pour en savoir plus sur les autres langues disponibles, voir @ref{Note
+names in other languages}.}
 
-@lilypond[fragment,quote,notime]
-\set Score.timing = ##f
-\transpose c c' { cis1 ees fisis aeses s16_" " }
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+cis1 ees fisis, aeses
 @end lilypond
 
 @cindex key signature, setting
+@subheading Key signatures
+
 L'armure est déterminée par la commande @code{\key}, suivie d'une
 hauteur puis de @code{\major} (majeur) ou @code{\minor} (mineur) :
 
-@example
-\key d \major
-g1
-\key c \minor
-g
-@end example
-
-@lilypond[fragment,quote,notime,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \key d \major
-g'1
+a1
 \key c \minor
-g'
+a
 @end lilypond
 
-@noindent
-La combinaison de l'armure et des hauteurs de note -- y compris les
-altérations -- permet de déterminer dans quel cas afficher les
-altérations accidentelles.  Cette fonctionnalité est souvent source de
+@sp 1
+
+@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
+@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.
 
-
 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 donc du contenu musical.  La présence
+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 de mise en
-page.  La mise en page est un processus qui obéit à des règles ; les
-altérations accidentelles sont donc automatiquement imprimées suivant
-ces règles.  Les hauteurs de note appartiennent à la musique que vous
-entrez, et comme vous êtes sensé(e) entrer ce que vous voulez entendre,
-LilyPond, qui n'est chargé que de la gravure, ne les choisit pas à
-votre place.
+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
+Dans cet exemple,
 
-@lilypond[quote,notime,fragment]
-\key d \major
-d' cis' fis'
-@end lilypond
-
-@noindent
-si aucune note n'a d'altération accidentelle, vous devez
-cependant entrer
-
-@example
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 \key d \major
 d cis fis
-@end example
+@end lilypond
 
 @noindent
-Le code @samp{d} ne veut pas dire « imprimer un point noir juste
-en-dessous de la portée. » Cela signifie plutôt : « une note ayant la
-hauteur ré naturel. » Avec l'armure de la bémol majeur, ce ré sera flanqué
-d'un bécarre accidentel.
-
-@lilypond[quote,notime,fragment,relative=1,verbatim]
-\key as \major
-d
+Aucune note n'a ici d'altération accidentelle, et pourtant vous devrez
+entrer le @samp{is} pour les notes @code{cis} et @code{fis}.
+
+Le code @samp{d} ne veut pas dire @qq{Imprimez-moi un point noir juste
+en-dessous de la portée.}  Cela signifie plutôt : @qq{Ici se trouve
+une note dont la
+hauteur est un ré naturel.}  Avec l'armure de la bémol majeur, ce ré
+sera flanqué
+d'un bécarre accidentel :
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\key aes \major
+e
 @end lilypond
 
 Ajouter explicitement toutes les altérations requiert un peu plus
-d'effort dans la phase de saisie, mais avec l'avantage que la
-transposition en sera facilitée.  De plus les altérations accidentelles
+d'effort dans la phase de saisie, mais la transposition en sera
+grandement facilitée.
+De plus les altérations accidentelles
 peuvent être imprimées suivant plusieurs conventions.  Regardez
-@ref{Automatic accidentals} pour connaître la manière dont les
-altérations accidentelles peuvent être imprimées suivant différentes
-règles.
-
-
-Pour plus d'informations sur
+@ref{Automatic accidentals} pour connaître les différentes manières dont les
+altérations accidentelles peuvent être imprimées, suivant les règles
+que vous choisirez.
 
+@moreinfo
 @quotation
 @table @asis
-@item les altérations accidentelles
-voir @ref{Automatic accidentals}.
-
-@item les armures
+@item Les altérations
+voir @ref{Accidentals} and @ref{Automatic accidentals}.
+@item Les armures
 voir @ref{Key signature}.
 @end table
 @end quotation
 
-@node Entering ties
-@section Entering ties
-
-@cindex tie
-Une liaison de prolongation@footnote{parfois aussi appelée liaison de
-tenue.} (@rglos{tie}) est créée en ajoutant un tilde @samp{~} à
-la suite de la première note liée.
 
-@lilypond[quote,notime,fragment,verbatim,relative=3]
-g4~ g a2~ a4
-@end lilypond
+@node Ties and slurs
+@subsection Ties and slurs
 
-Pour plus d'informations sur les liaisons de prolongation, voir @ref{Ties}.
+@cindex ties
+@subheading Ties
+Une @rglos{tie}@footnote{parfois aussi appelée liaison de
+tenue} se crée en ajoutant un tilde @samp{~} à la première note liée.
 
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+g4~ g c2~
+c4 ~ c8 a8 ~ a2
+@end lilypond
 
+@cindex slurs
+@subheading Slurs
 
-@node Automatic and manual beams
-@section Automatic and manual beams
+@c Le terme de "slur" a deux sens en français : articulation et phrasé.
+@c Je garde ici le terme "legato", tel qu'il apparaît dans le texte original,
+@c car c'est celui qui me semble le plus couramment employé.
 
-@cindex beams, by hand
-Toutes les ligatures@footnote{parfois appelées aussi liens de croches}
-(@rglos{beam}), sont dessinées automatiquement :
+Une @rglos{slur} d'articulation (ou @qq{legato}) peut englober
+plusieurs notes.  La note de départ et d'arrivée reçoivent
+respectivement un signe @samp{(} et @samp{)}.
 
-@lilypond[quote,fragment,relative=2,verbatim]
-a8 ais d es r d
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+d4( c16) cis( d e c cis d) e( d4)
 @end lilypond
 
-@noindent
-Si l'emplacement des barres ne vous convient pas, vous pouvez
-les entrer à la main.  Marquer la première note à être attachée d'un 
-@samp{[} et la dernière d'un @samp{]}.
+@cindex slurs, phrasing
+@cindex phrasing slurs
+@subheading Phrasing slurs
+
+@cindex phrasing slurs
+De plus longues liaisons, dites de phrasé, sont délimitées par @code{\(} et
+@code{\)}.  Il est possible d'avoir en même temps des legatos et des
+phrasés, mais pas plusieurs liaisons de phrasé ou de legato à la fois.
 
-@lilypond[quote,fragment,relative=2,verbatim]
-a8[ ais] d[ es r d]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+a8(\( ais b c) cis2 b'2 a4 cis,\)
 @end lilypond
 
-Pour plus d'informations sur les ligatures, voir @ref{Manual beams}.
+@sp 1
 
+@cindex slurs versus ties
+@subheading Warnings: slurs vs.  ties
 
-Voici comment se comportent ensemble armures, altérations
-accidentelles et liaisons :
+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
+tenue ne peut relier que deux notes de même hauteur, le legato indique
+une articulation de plusieurs notes, éventuellement nombreuses.  Les
+liaisons de tenue peuvent être enchâssées dans un legato ou un phrasé.
 
-@lilypond[fragment,quote,noindent,line-width=50\staff-space,verbatim]
-\relative c'' {
-  \time 4/4
-  \key g \minor
-  \clef treble
-  r4 r8 a8 gis4 b
-  a8 d4.~ d e,8
-  fis4 fis8 fis8 eis4 a8 gis~
-  gis2 r2
-}
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c2~( c8 fis fis4 ~ fis2 g2)
 @end lilypond
 
-@cindex accidentals
+@moreinfo
+@quotation
+@table @asis
+@item Liaisons de prolongation
+voir @ref{Ties}.
+@item Legato
+voir @ref{Slurs}.
+@item Liaisons de phrasé
+voir @ref{Phrasing slurs}.
+@end table
+@end quotation
 
 
-@noindent
-Il y a plusieurs points intéressants à noter dans cet exemple.  Les
-barres de mesure et les liens de croches sont dessinés
-automatiquement.  Les sauts de ligne sont calculés automatiquement ;
-peu importe où se situent les sauts de ligne dans le fichier source.
-Enfin, l'ordre dans lequel la métrique, l'armure et les changements de
-clefs sont saisis n'a pas d'importance : dans la sortie imprimable,
-ils sont organisés suivant les conventions standard de notation.
+@node Articulation and dynamics
+@subsection Articulation and dynamics
 
+@cindex articulation
+@cindex accents
+@cindex staccato
+@subheading Articulations
 
+Des @rglos{articulations} peuvent être ajoutées à une note, au moyen
+d'un tiret @samp{-} suivi d'un caractère :
 
-@node Octave entry
-@section Octave entry
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c-. c-- c-> c-^ c-+ c-_
+@end lilypond
 
+@cindex fingering
+@subheading Fingerings
+De même, des indications de doigté peuvent être ajoutées à une note en
+utilisant un tiret (@samp{-}) et le chiffre à écrire :
 
-@c Tim wants to move this quotes example just before the: quotes-do not-work
-@c score, but we'd need to remove quotes from the other two (key and
-@c tie) examples...
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c-3 e-5 b-2 a-1
+@end lilypond
 
-@c better to have this just before the `octaves are bad' snipped
-@c but we'd need to remove the ', from \key and tie
-Pour hausser une note d'une octave, ajoutez une apostrophe @code{'} au
-nom de la note ; pour la baisser d'une octave, ajoutez une virgule
-@code{,}.  Le do central (entre la clef de sol et la clef de fa) est
-@code{c'}
+Articulations et doigtés sont habituellement placés automatiquement,
+mais vous pouvez spécifier une direction en utilisant @samp{^} (en haut)
+ou @samp{_} (en bas).  Vous pouvez aussi utiliser plusieurs articulations
+sur la même note.  Dans la plupart des cas, cependant, il est mieux de
+laisser LilyPond déterminer l'emplacement de l'articulation.
 
-@lilypond[quote,notime,fragment,verbatim]
-c'4 c'' c''' \clef bass c c,
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c_-^1 d^. f^4_2-> e^-_+
 @end lilypond
 
-Un exemple de l'utilisation des apostrophes dans ce fragment de Mozart :
+@subheading Dynamics
+Les signes de nuances sont obtenus en ajoutant à la note les noms des nuances,
+précédées d'un anti-slash @samp{\} :
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\key a \major
-\time 6/8
-cis''8. d''16 cis''8 e''4 e''8
-b'8. cis''16 b'8 d''4 d''8
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c\ff c\mf c\p c\pp
 @end lilypond
 
-@noindent
-Cet exemple montre qu'il faut beaucoup d'apostrophes pour écrire de la
-musique dans un registre aigu.  Ceci rend le fichier moins lisible, et
-c'est une source d'erreurs.  La solution consiste à utiliser le mode
-d'« octaves relatives ».  C'est la façon la plus commode de copier de
-la musique existante.
+@cindex dynamics
+@cindex decrescendo
+@cindex crescendo
 
-En mode relatif, une note sans signe d'octaviation -- @code{'} ou
-@code{,} après le nom de la note -- est interprétée de manière à ce
-qu'elle soit la plus proche de la note précédente.  Par exemple,
-@samp{c f} monte, alors que @samp{c g} descend.
+@c Pluriel des termes musicaux italiens :
+@c selon Littré, plutôt à la française (en "-os" qu'en "-i")
 
-Pour utiliser le mode relatif, ajoutez @code{\relative} avant le
-morceau de musique.  La première hauteur de note est choisie
-relativement en fonction du do central -- c'est-à-dire @code{c'}.
+Crescendos et decrescendos débutent avec les commandes @code{\<} et
+@code{\>}.  Ils se terminent soit par une nuance d'arrivée, par
+exemple @code{\f},
+soit par la commande @code{\!} :
 
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c2\< c2\ff\> c2 c2\!
+@end lilypond
 
+@moreinfo
+@quotation
+@table @asis
+@item Ponctuations
+voir @ref{Articulations}.
+@item Doigtés
+voir @ref{Fingering instructions}.
+@item Nuances
+voir @ref{Dynamics}.
+@end table
+@end quotation
 
-@lilypond[quote,notime,fragment,verbatim]
-\relative {
-  c' f c g c
-}
-@end lilypond
 
+@node Automatic and manual beams
+@subsection Automatic and manual beams
 
-Puisque la plus grande partie de la musique utilise de petits
-intervalles, les pièces peuvent être écrites en mode relatif sans
-pratiquement utiliser de signes d'octavation.  L'exemple précédent est
-entré comme
+@cindex beams, by hand
+Toutes les @rglos{beam}s sont dessinées automatiquement :
 
-@lilypond[quote,ragged-right,verbatim]
-\relative {
-  \key a \major
-  \time 6/8
-  cis'8. d16 cis8 e4 e8
-  b8. cis16 b8 d4 d8
-}
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+a8 ais d ees r d c16 b a8
 @end lilypond
 
-@c needed better, maybe even redundant explanation
-@c   added another example below.
-@c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
-@c in eerste instantie drong het `relative' niet door zonder extra uitleg.
-Les intervalles plus grands qu'une quarte sont produits en ajoutant
-les signes d'octavation :
+@noindent
+Lorsqu'on n'aime pas la manière dont les notes sont automatiquement
+groupées, il est possible de les entrer à la main, en marquant la
+première note à attacher d'un @samp{[} et la dernière d'un @samp{]}.
 
-@lilypond[quote,notime,verbatim,fragment]
-\relative c {
-  c'' f, f c' c g' c,
-}
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+a8[ ais] d[ ees r d] a b
 @end lilypond
 
-En résumé, apostrophes et virgules ne déterminent pas la hauteur
-absolue d'une note dans le mode @code{\relative}.  Au lieu de cela, la
-hauteur de la note est relative à la précédente, et modifier l'octave
-d'une seule note changera l'octave de toutes les notes suivantes.
-
-Pour plus d'information sur les octaves relatives, voir
-@ref{Relative octaves}, et @ref{Octave check}.
+@moreinfo
+@quotation
+@table @asis
+@item Groupements de notes et ligatures automatiques
+voir @ref{Automatic beams}.
+@item Groupements et ligatures manuels
+voir @ref{Manual beams}.
+@end table
+@end quotation
 
 
-@node Music expressions explained
-@section Music expressions explained
+@node Advanced rhythmic commands
+@subsection Advanced rhythmic commands
 
+@cindex pickup
+@cindex anacruse
+@cindex partial measure
+@subheading Partial measure
 
-Dans les fichiers source LilyPond, la musique est représentée par ce qu'on
-appelle des @emph{expressions musicales}.  Nous en avons déjà vu dans
-les quelques exemples précédents ; une seule note constitue une
-expression  musicale :
+Une levée (ou @rglos{anacrusis}) est entrée avec la commande
+@code{\partial}, suivie d'une durée : @code{\partial 4} est une levée
+d'une noire et
+@code{\partial 8} d'une croche.
 
-@lilypond[fragment,quote,verbatim,relative=3]
-a4
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\partial 8
+f8 c2 d
 @end lilypond
 
-Mettre un groupe de notes entre accolades crée une nouvelle expression
-musicale :
+@cindex tuplets
+@cindex triplets
+@subheading Tuplets
+Les nolets sont créés avec la commande @code{\times}, qui prend
+deux arguments : une fraction et une expression musicale.  La durée des
+notes de l'expression musicale est multipliée par la fraction.  Par exemple les
+notes d'un triolet durent les deux tiers du temps de leur notation
+réelle, cette fraction est donc de 2/3 pour les triolets :
 
-@lilypond[fragment,quote,verbatim,relative=3]
-{ a4 g4 }
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\times 2/3 { f8 g a }
+\times 2/3 { c r c }
+\times 2/3 { f,8 g16[ a g a] }
+\times 2/3 { d4 a8 }
+@end lilypond
+
+@cindex grace notes
+@cindex acciaccatura
+@cindex appoggiatura
+@subheading Grace notes
+
+Des notes d'ornement sont produites par la commande @code{\grace},
+mais aussi en préfixant une expression musicale avec le mot-clé
+@code{\appoggiatura} ou @code{\acciaccatura} :
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c2 \grace { a32[ b] } c2
+c2 \appoggiatura b16 c2
+c2 \acciaccatura b16 c2
+@end lilypond
+
+@moreinfo
+@quotation
+@table @asis
+@item Notes d'ornement
+voir @ref{Grace notes},
+@item nolets
+voir @ref{Tuplets},
+@item levées
+voir @ref{Partial measures}.
+@end table
+@end quotation
+
+
+@node Multiple notes at once
+@section Multiple notes at once
+
+Cette section traite des situations où l'on a plus d'une note à la
+fois : plusieurs instruments, plusieurs portées pour un même
+instrument (le piano, par exemple), et les accords.
+
+La polyphonie, en théorie musicale, est la notion d'une musique
+constituée de plusieurs voix ; dans lilypond, ce terme désigne les
+situations où il y a plus d'une voix sur une même portée.
+
+@menu
+* Music expressions explained::
+* Multiple staves::
+* Piano staves::
+* Single staff polyphony::
+* Combining notes into chords::
+@end menu
+
+
+@node Music expressions explained
+@subsection Music expressions explained
+
+Dans les fichiers source LilyPond, la musique est représentée par ce qu'on
+appelle des @emph{expressions musicales}.  En soi, une seule note peut
+constituer une
+expression  musicale, si tant est qu'elle soit correctement encadrée :
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+a4
+@end lilypond
+
+Mettre un groupe de notes entre accolades crée une nouvelle expression
+musicale :
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+{ a4 g4 }
 @end lilypond
 
 Placer une séquence d'expressions musicales -- des notes par exemple
@@ -640,32 +977,63 @@ 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
 combinée à deux notes :
 
-@lilypond[fragment,quote,verbatim,relative=3]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
 { { a4 g } f g }
 @end lilypond
 
-Cette technique est utile pour de la musique non monophonique.  Pour
+@subheading Simultaneous music expressions: multiple staves
+
+Cette technique est utile pour de la musique polyphonique.  Pour
 entrer une musique avec plusieurs voix ou plusieurs portées, nous
 pouvons aussi combiner en parallèle les expressions.  Deux voix qui doivent être
 jouées en même temps, sont entrées comme une combinaison simultanée de
-deux expression.  Une expression musicale « simultanée » est formée en
+deux expressions.  Une expression musicale @q{simultanée} est formée en
 entourant les expressions entre @code{<<} et @code{>>}.  Dans l'exemple
 suivant, trois expressions (contenant chacune deux notes distinctes) sont
 combinées simultanément.
 
-@lilypond[fragment,quote,verbatim,relative=3]
-<<
-  { a4 g }
-  { f e }
-  { d b }
->>
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  <<
+    { a4 g }
+    { f e }
+    { d b }
+  >>
+}
+@end lilypond
+
+Notez que nous avons ici indenté chaque niveau du fichier d'entrée
+avec un nombre d'espaces différent.  LilyPond se moque de l'espace
+qu'il peut y avoir (ou pas) au début d'une ligne, mais en indentant
+votre code vous le rendrez bien plus facile à lire pour les humains.
+
+@strong{Attention} : chaque note saisie est relative à la précédente,
+mais pas au @code{c''} de la commande @code{\relative} de départ.
+
+
+@subheading Simultaneous music expressions: single staff
+
+Pour déterminer le nombre de portées, LilyPond regarde le premier
+élément autre qu'une accolade.  Si c'est une seule note, il y a une
+portée ; si c'est une expression simultanée, il y aura plus d'une
+portée.
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  c2 <<c e>>
+  << { e f } { c <<b d>> } >>
+}
 @end lilypond
 
-Ce mécanisme est similaire au formules mathématiques : une grosse formule
-est créée en assemblant plusieurs petites formules.  Ces types
+@cindex expression
+@cindex music expression
+@subheading Analogy: mathematical expressions
+
+Ce mécanisme est similaire au formules mathématiques : une grosse
+formule est créée en assemblant plusieurs petites formules.  Ces types
 de formules, appelées expressions, ont une définition récursive, de
-telle sorte que vous pouvez fabriquer des expressions
-arbitrairement longues et complexes.  Par exemple,
+telle sorte que vous pouvez fabriquer des expressions arbitrairement
+longues et complexes.  Par exemple,
 
 @example
 1
@@ -677,8 +1045,6 @@ arbitrairement longues et complexes.  Par exemple,
 ((1 + 2) * 3) / (4 * 5)
 @end example
 
-@cindex expression
-@cindex music expression
 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
@@ -688,57 +1054,28 @@ musicales peuvent être imbriquées avec une profondeur arbitraire, ce
 qui est nécessaire pour de la musique complexe comme des partitions
 polyphoniques.
 
-Notez que l'exemple suivant ne comporte qu'une seule portée,
-contrairement à l'exemple précédent qui contenait trois portées
-séparées.  C'est parce que l'exemple commence par une note seule.  Pour
-déterminer le nombre de portées, LilyPond regarde le premier élément
-qui n'est pas une accolade.  Si c'est une seule note, il y a une portée
-; si c'est une expression simultanée, il y aura plus d'une portée.
-
-@lilypond[fragment,quote,verbatim,relative=2]
-{
-  c <<c e>>
-  << { e f } { c <<b d>> } >>
-}
-@end lilypond
-
-Il est facile de s'y perdre avec des fichiers musicaux comprenant de nombreuses
-imbrications, tant pour leur création que pour leur maintenance.  Une
-convention permet d'éviter cette confusion : l'indentation.  Pour
-entrer un fichier avec de prfondes imbrications d'accolades et de
-crochets, il est d'usage d'avoir recours à une indentation qui indique
-le niveau de profondeur.  Formater la musique d'une telle manière en
-facilite la lecture et vous aide à insérer le bon nombre d'accolades
-fermant les expressions.  Par exemple,
-
-@example
-<<
-  @{
-    @dots{}
-  @}
-  @{
-    @dots{}
-  @}
->>
-@end example
 
-Certains éditeurs disposent d'un mode spécifique pour saisir des
-fichiers LilyPond, qui peut vous aider à indenter le fichier source.
-Voir la section @ref{Editor support} pour plus d'informations.
+@node Multiple staves
+@subsection Multiple staves
 
-@node More staves
-@section More staves
+Comme nous l'avons vu dans @ref{Music expressions explained}, un
+fichier d'entrée LilyPond est fait d'expressions musicales.  Si la
+partition commence par plusieurs expressions simultanées, LilyPond
+créera plusieurs portées.  Cependant, il est plus facile de voir ce
+qu'il advient si l'on crée explicitement chacune des portées.
 
 Pour créer plus d'une portée, chaque partie de la musique constituant
-une portée est entrée en la faisant précéder de
-@code{\new Staff}.  Ces éléments @code{Staff} sont combinés en parallèle avec
-@code{<<} et @code{>>}, comme
+une portée est entrée en la faisant précéder de @code{\new Staff}.
+Ces éléments @code{Staff} sont ensuite combinés en parallèle avec
+ @code{<<} et @code{>>}, comme ceci :
 
-@lilypond[quote,fragment,verbatim]
-<<
-  \new Staff { \clef treble c'' }
-  \new Staff { \clef bass c }
->>
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  <<
+    \new Staff { \clef treble c }
+    \new Staff { \clef bass c,, }
+  >>
+}
 @end lilypond
 
 
@@ -747,8 +1084,8 @@ contexte de notation est un environnement dans lequel les événements
 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 fragment
-aura sa propre portée.
+spécifier explicitement les contextes.  Cela assure que chaque
+fragment aura sa propre portée.
 
 Il existe différents types de contextes.  Les contextes @code{Staff}
 (portée), @code{Voice} (voix) et @code{Score} (partition) gèrent la
@@ -757,383 +1094,246 @@ notation de la mélodie, alors que @code{Lyrics} gère les paroles et
 
 En termes de syntaxe, faire précéder une expression musicale de
 @code{\new} crée une plus grosse expression musicale.  En reprenant la
-comparaison, cela ressemble au signe « moins » en mathématiques.  La formule
-@math{(4+5)} est une expression, donc @math{-(4+5)} est une plus grosse
-expression.
+comparaison, cela ressemble au signe « moins » en mathématiques.  La
+formule @math{(4+5)} est une expression, donc @math{-(4+5)} est une
+plus grosse expression.
 
-Nous pouvons maintenant écrire un morceau à deux portées :
+Les chiffres de mesure figurant sur une portée affectent toutes les
+autres portées ; en revanche l'armure d'une portée n'affectera
+@emph{pas} les autres portées.@footnote{Ce comportement peut être
+modifié si nécessaire : voir pour cela @ref{Changing defaults}.}.
 
-@c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)
-
-@lilypond[fragment,quote,verbatim,ragged-right]
-\relative <<
-  \new Staff {
-    \time 3/4
-    \clef treble
-
-    e'2 d4 c2 b4 a8[ a]
-    b[ b] g[ g] a2.
-  }
-  \new Staff {
-     \clef bass
-     c,,2 e4 g2.
-     f4 e d c2.
-  }
->>
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  <<
+    \new Staff { \clef treble \time 3/4 c }
+    \new Staff { \clef bass \key d \major c,, }
+  >>
+}
 @end lilypond
 
-Pour plus d'informations sur les contextes, voir leur description à
-@ref{Interpretation contexts}.
-
 
 
-@node Adding articulation marks to notes
-@section Adding articulation marks to notes
 
-@cindex articulation
-@cindex accents
-@cindex staccato
+@node Piano staves
+@subsection Piano staves
 
-Les articulations standard peuvent être ajoutées à une note en
-utilisant un tiret (@samp{-}) et un caractère :
+@cindex staff switch, manual
+@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
+maintenant cette expression entière doit être interprétée dans un
+contexte @code{PianoStaff} :
 
-@lilypond[fragment,quote,verbatim,relative=2]
-c-.  c-- c-> c-^ c-+ c-_
-@end lilypond
+@example
+\new PianoStaff <<
+  \new Staff @dots{}
+  \new Staff @dots{}
+>>
+@end example
 
-@cindex fingering
-De la même manière, des indications de doigté peuvent être ajoutées à
-une note en utilisant un tiret (@samp{-}) et le chiffre à écrire :
+Voici un bref exemple :
 
-@lilypond[fragment,quote,verbatim,relative=2]
-c-3 e-5 b-2 a-1
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  \new PianoStaff <<
+    \new Staff { \time 2/4 c4 e g g, }
+    \new Staff { \clef bass c,, c' e c }
+  >>
+}
 @end lilypond
 
-Articulations et doigtés sont habituellement placés automatiquement,
-mais vous pouvez spécifier une direction en utilisant @samp{^} (en haut)
-ou @samp{_} (en bas).  Vous pouvez aussi utiliser plusieurs articulations
-sur la même note.  Dans la plupart des cas, cependant, il est mieux de
-laisser LilyPond déterminer l'emplacement de l'articulation.
+@moreinfo
+@quotation
+Voir @ref{Piano music}.
+@end quotation
 
-@lilypond[fragment,quote,verbatim,relative=2]
-c_-^1 d^. f^4_2-> e^-_+
-@end lilypond
 
-Les signes de nuances sont obtenus en ajoutant à la note les noms des nuances,
-précédées d'un anti-slash @samp{\} :
+@node Single staff polyphony
+@subsection Single staff polyphony
 
-@lilypond[fragment,quote,verbatim,relative=2]
-c\ff c\mf
-@end lilypond
+@cindex polyphony
+@cindex multiple voices
+@cindex voices, more -- on a staff
+Quand différentes lignes mélodiques sont combinées sur une seule et
+même portée, elles sont imprimées comme des voix polyphoniques ;
+chaque voix a ses propre hampes@footnote{familièrement appelées queues
+de note.}, liaisons et ligatures, la voix supérieure ayant les hampes
+vers le haut, la voix inférieure vers le bas.
 
-@cindex dynamics
-@cindex decrescendo
-@cindex crescendo
+Ce type de partition est réalisé en entrant chaque voix comme une
+séquence (avec @code{@{...@}}), en combinant simultanément les voix et
+en les séparant par  @code{\\} :
 
-Crescendi et decrescendi débutent avec les commandes @code{\<} et
-@code{\>}.  Ils se terminent soit par une nuance d'arrivée, par exemple @code{\f},
-soit par la commande @code{\!} :
 
-@lilypond[fragment,quote,verbatim,relative=2]
-c2\< c2\ff\> c2 c2\!
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+<<
+  { a4 g2 f4~ f4 } \\
+  { r4 g4 f2 f4 }
+>>
 @end lilypond
 
+Pour l'écriture de musique polyphonique, les silences invisibles
+s'avèrent bien pratiques : ce sont des silences qui ne s'impriment
+pas.  Ils sont utiles pour remplir des voix qui, temporairement, ne
+jouent rien.  On peut voir ici le même exemple avec un silence
+invisible (@code{s}) à la place d'un silence normal (@code{r}) :
 
-
-@cindex slur
-
-Une liaison d'articulation (@rglos{slur}) est une courbe tracée
-au-dessus de plusieurs notes.  Elle indique un jeu legato.  Les notes de
-départ et d'arrivée sont suivies respectivement par @samp{(} et
-@samp{)} :
-
-@lilypond[fragment,quote,fragment,relative=2,verbatim]
-d4( c16) cis( d e c cis d) e( d4)
-@end lilypond
-
-@cindex slurs versus ties
-Une liaison d'articulation ressemble à une liaison de
-prolongation (@rglos{tie}),
-mais a une signification différente.  Une liaison de prolongation fait
-durer la première note plus longtemps, et ne peut être utilisée que
-sur une paire de notes de même hauteur.  Ces deux types de liaison
-peuvent être imbriqués :
-
-@lilypond[quote,fragment,relative=2]
-c2~( c8 fis fis4 ~ fis2 g2)
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+<<
+  { a4 g2 f4~ f4 } \\
+  { s4 g4 f2 f4 }
+>>
 @end lilypond
 
-@cindex phrasing slurs
-Une liaison de phrasé peut être entrée avec @code{\(} et @code{\)},
-vous pouvez donc avoir simultanément une liaison d'articulation et une
-liaison de phrasé.  Vous ne pouvez pas avoir de liaisons d'articulation
-simultanées ni de liaisons de phrasé simultanées.
+@noindent
+Là encore, ces expressions peuvent s'imbriquer arbitrairement :
 
-@lilypond[quote,fragment,relative=2,verbatim]
-a8(\( ais b c) cis2 b'2 a4 cis, c\)
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
+<<
+  \new Staff <<
+    { a4 g2 f4~ f4 } \\
+    { s4 g4 f2 f4 }
+  >>
+  \new Staff <<
+    \clef bass
+    { <c g>1 ~ <c g>4 } \\
+    { e,,4 d e2 ~ e4}
+  >>
+>>
 @end lilypond
 
-
-Pour plus d'informations sur les
-
+@moreinfo
 @quotation
-@table @asis
-@item doigtés
-voir @ref{Fingering instructions}.
-@item articulations
-voir @ref{Articulations}.
-@item liaisons d'articulation
-voir @ref{Slurs}.
-@item liaisons de phrasé
-voir @ref{Phrasing slurs}.
-@item nuances
-voir @ref{Dynamics}.
-@end table
+Voir @ref{Basic polyphony}.
 @end quotation
 
 
 @node Combining notes into chords
-@section Combining notes into chords
+@subsection Combining notes into chords
 
 @cindex chords
-Des accords peuvent être produits en entourant les hauteurs de note
-avec les angles gauche et droit -- @samp{<} et @samp{>} --
-
-@lilypond[quote,relative=1,fragment,verbatim]
-r4 <c e g>4 <c f a>8
-@end lilypond
-
-
-Vous pouvez combiner les indications comme les liaisons et les liens de
-croches avec les accords.  Ils doivent cependant être placés en
-dehors des angles :
-
-@lilypond[quote,relative=1,fragment,verbatim]
-r4 <c e g>8[ <c f a>]~ <c f a>
-@end lilypond
-
-@example
-r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
-@end example
+Des accords peuvent être produits en entourant les hauteurs de notes
+par des angles gauche et droit -- @samp{<} et @samp{>} --
 
-@lilypond[quote,relative=1,fragment]
-\slurUp
-r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
+r4 <c e g>4 <c f a>2
 @end lilypond
 
+Vous pouvez combiner les indications comme les liaisons et les
+ligatures de croches avec les accords.  Ils doivent cependant être
+placés en dehors des angles :
 
-@node Advanced rhythmic commands
-@section Advanced rhythmic commands
 
-@cindex pickup
-@cindex anacruse
-@cindex partial measure
-Une levée est entrée avec le mot-clé @code{\partial}.  Il est suivi par
-une durée : @code{\partial 4} est une levée d'une noire et
-@code{\partial 8} d'une croche.
-
-@lilypond[quote,relative=2,verbatim,fragment]
-\partial 8
-f8 c2 d e
-@end lilypond
-
-@cindex tuplets
-@cindex triplets
-Les n-olets sont créés avec le mot-clef @code{\times}.  Celui-ci prend
-deux arguments : une fraction et une expression musicale.  La durée des
-notes de l'expression musicale est multipliée par la fraction.  Les
-notes d'un triolet durent les deux tiers du temps de leur notation
-réelle, cette fraction est donc de 2/3 pour les triolets :
-
-@lilypond[quote,relative=1,verbatim,fragment]
-\times 2/3 { f8 g a }
-\times 2/3 { c r c }
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
+r4 <c e g>8[ <c f a>]~ <c f a>2
 @end lilypond
 
-@cindex grace notes
-@cindex acciaccatura
-Des notes d'ornement sont produites en préfixant une expression musicale
-avec le mot-clé @code{\appoggiatura} ou @code{\acciaccatura} :
-@cindex appoggiatura
-@cindex acciaccatura
-
-@lilypond[quote,relative=2,verbatim,fragment]
-c4 \appoggiatura b16 c4
-c4 \acciaccatura b16 c4
+@lilypond[quote,fragment,verbatim,relative=2,fragment]
+r4 <c e g>8\>( <c e g> <c e g>4 <c f a>\!)
 @end lilypond
 
-@noindent
-
-Pour plus d'informations sur les
-
-@quotation
-@table @asis
-@item ornementations
-voir @ref{Grace notes},
-@item n-olets
-voir @ref{Tuplets},
-@item mesures incomplètes (levées)
-voir @ref{Partial measures}.
-@end table
-@end quotation
-
-
-@node Commenting input files
-@section Commenting input files
-
-@cindex comments
-@cindex line comment
-@cindex block comment
-Un commentaire est une remarque à l'attention du lecteur du fichier
-source ; il est ignoré lors de l'analyse du fichier, et n'a donc 
-aucun effet sur la sortie imprimable.  Il existe deux types
-de commentaires.  Le symbole pourcent @samp{%} introduit un commentaire
-d'une ligne : après @code{%}, le reste de la ligne est ignoré.  Un bloc de
-commentaire marque une section entière dans le fichier d'entrée.  Tout ce
-qui est à l'intérieur de @code{%@{} et @code{%@}} est ignoré.  Le fragment
-suivant montre les utilisations possible des commentaires :
-
-@example
-% mélodie de "ah vous dirais-je maman"
-  c4 c g' g a a g2
-
-%@{
-    Cette ligne, et les notes ci-dessous
-   sont ignorées, puisque'elles sont dans
-   un bloc de commentaire.
-
-    f f e e d d c2
-%@}
-@end example
-
-@c  TODO   post-2.6 reorg
-@c   This is good info, but I wouldn't call it a comment.  IMO it should
-@c   be moved somewhere else.
 
-@cindex versioning
+@node Songs
+@section Songs
 
-Il y a une déclaration particulière qui est une sorte de commentaire.  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, utilisez 
+Cette section présente l'écriture vocale, et les partitions de variété.
 
-@example
-\version "2.10.0"
-@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 règles de conversion à appliquer au fichier.
+@menu
+* Printing lyrics::
+* A lead sheet::
+@end menu
 
 
 @node Printing lyrics
-@section Printing lyrics
-@cindex lyrics
-
-@c TODO: (c) status of the Queen fragment.
+@subsection Printing lyrics
 
 @cindex Lyrics
 @cindex Songs
-Les paroles sont entrées en séparant chaque syllable par un espace :
-
-@example
-I want to break free
-@end example
+Prenons une mélodie toute simple :
 
-Voyons la mélodie
-
-@lilypond[quote,verbatim,fragment,ragged-right]
-\relative {
-  r4 c \times 2/3 { f g g }
-  \times 2/3 { g4( a2) }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+  a4 e c8 e r4
+  b2 c4( d)
 }
 @end lilypond
 
-Les paroles peuvent être associées à ces notes en les combinant avec le
-mot-clé @code{\addlyrics}
+Des paroles peuvent être associées à ces notes, en les combinant avec
+la commande @code{\addlyrics}.  Les paroles sont entrées en séparant
+chaque syllable par un espace :
 
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,ragged-right,verbatim]
 <<
-  \relative {
-    r4 c \times 2/3 { f g g }
-    \times 2/3 { g4( a2) }
+  \relative c'' {
+    a4 e c8 e r4
+    b2 c4( d)
   }
-  \addlyrics { I want to break free }
+  \addlyrics { One day this shall be free }
 >>
 @end lilypond
 
 @cindex melisma
 @cindex extender line
-@c synonyms?
-Cette mélodie se termine sur un mélisme (@rglos{melisma}),
-c'est-à-dire qu'une seule syllable (« free ») correspond à plus d'une
-note.  Ceci est indiqué avec une @emph{ligne d'extension}.  Elle est
-entrée avec deux caractères souligné (@code{_}), c'est-à-dire
+Cette mélodie se termine sur un @rglos{melisma}, c'est-à-dire qu'une
+seule syllable (« free ») correspond à plus d'une note.  Ceci est
+indiqué avec une @emph{ligne d'extension}.  Elle est entrée avec deux
+caractères souligné (@code{_}), c'est-à-dire :
 
-@example
-@{ I want to break free __ @}
-@end example
-
-@lilypond[fragment,quote,ragged-right]
+@lilypond[quote,ragged-right,verbatim]
 <<
-  \relative {
-    r4 c \times 2/3 { f g g }
-    \times 2/3 { g4( a2) }
+  \relative c'' {
+    a4 e c8 e r4
+    b2 c4( d)
   }
-  \addlyrics { I want to break free __ }
+  \addlyrics { One day this shall be free __ }
 >>
 @end lilypond
 
-De la même manière, les séparations syllabiques d'un mot peuvent être entrées
-avec deux tirets (@code{-}), ce qui produit un tiret centré entre les deux
-syllabes :
-
-@example
-A -- le gri -- a
-@end example
+De la même manière, les séparations syllabiques d'un mot peuvent être
+entrées avec deux tirets (@code{-}), ce qui produit un tiret centré
+entre les deux syllabes :
 
-@c no ragged-right here, because otherwise the hypens get lost.
-@lilypond[fragment,quote]
+@c no ragged-right here because otherwise the hypens get lost.
+@lilypond[quote,verbatim]
 <<
-  \relative {
+  \relative c' {
     \time 2/4
-    f4 f c' c
+    f4 f c c
   }
-  \addlyrics { A -- le gri -- a }
+  \addlyrics { A -- le -- gri -- a }
 >>
 @end lilypond
 
+@moreinfo
+@quotation
 Plus de possibilités, comme celle d'ajouter plusieurs lignes de
-paroles en dessous d'une même mélodie sont exposées à
-@ref{Vocal music}.
+paroles en dessous d'une même mélodie sont exposées dans @ref{Vocal
+music}.
+@end quotation
 
 
 @node A lead sheet
-@section A lead sheet
+@subsection A lead sheet
 
 @cindex Lead sheets
 @cindex chords
 @cindex chord names
 
-@c TODO: revise this, \chords { } is shorter and more intuitive.
-
-Dans la musique de variété, il est courant d'indiquer l'accompagnement
-par le nom des accords.  De tels accords peuvent être entrés comme les
+En musique de variété, il est courant d'indiquer l'accompagnement par
+le nom des accords.  De tels accords peuvent être entrés comme les
 notes :
 
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,ragged-right,verbatim]
 \chordmode { c2 f4. g8 }
 @end lilypond
 
-@noindent
 Maintenant, chaque hauteur est lue comme la base de l'accord à la
 place de la note.  Ce mode est activé avec @code{\chordmode}.
-
-Les autres accords peuvent être créés en ajoutant des modifiacteurs après
-deux points.  L'exemple suivant montre quelques modificateurs usuels :
+D'autres accords peuvent être créés en ajoutant des modifiacteurs
+après deux points.  L'exemple suivant montre quelques modificateurs
+usuels :
 
 @lilypond[quote,verbatim,ragged-right]
 \chordmode { c2 f4:m g4:maj7 gis1:dim7 }
@@ -1144,7 +1344,7 @@ portées mais comme des lignes à part entière.  Ceci s'obtient en
 utilisant @code{\chords} à la place de @code{\chordmode}.  La même
 syntaxe sera utilisée que dans le cas de@code{\chordmode}, mais le
 rendu des notes interviendra dans un contexte de @code{ChordNames},
-avec le résultat suivant
+avec le résultat suivant :
 
 @lilypond[quote,verbatim,ragged-right]
 \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@@ -1154,349 +1354,269 @@ avec le résultat suivant
 Une fois assemblés, les accords, paroles et mélodie forment une
 partition de chanson :
 
-@example
-<<
-  \chords @{ @emph{les accords} @}
-  @emph{la mélodie}
-  \addlyrics @{ @emph{le texte} @}
->>
-@}
-@end example
-
-@lilypond[quote,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
 <<
-  \chords { r2 c:sus4 f }
-  \relative {
-    r4 c' \times 2/3 { f g g }
-    \times 2/3 { g4( a2) }
+  \chords { c2 g:sus4 f e }
+  \relative c'' {
+    a4 e c8 e r4
+    b2 c4( d)
   }
-  \addlyrics { I want to break free __ }
+  \addlyrics { One day this shall be free __ }
 >>
 @end lilypond
 
-Une liste complète de modificateurs et d'autres options de
-mise en forme se trouve à la section @ref{Chords}.
-
-
-@node Adding titles
-@section Adding titles
-
-Les informations bibliographiques sont entrées dans un bloc séparé, le
-bloc d'en-tête (@code{\header}).  Le nom du morceau, son compositeur, etc., sont
-définis dans @code{\header@{@tie{}@dots{}@tie{}@}}.
-Le bloc @code{\header} est habituellement placé en début de fichier.
-Par exemple,
-
-@example
-\header @{
-  title = "Miniature"
-  composer = "Igor Stravinsky"
-@}
-
-@{ @dots{} @}
-@end example
-
-
-Quand le fichier est traité, le titre et le compositeur sont imprimés
-en haut de la partition.  Vous trouverez plus d'informations sur les
-titres à @ref{Creating titles}.
-
-
-@node Single staff polyphony
-@section Single staff polyphony
-
-@cindex polyphony
-@cindex multiple voices
-@cindex voices, more -- on a staff
-Quand différentes lignes mélodiques sont combinées sur une seule et
-même portée, elle sont imprimées comme des voix polyphoniques ; chaque
-voix a ses propre hampes@footnote{familièrement appelées queues de
-note.}, liaisons et ligatures, la voix supérieure ayant les hampes
-vers le haut, la voix inférieure vers le bas.
-
-Ce type de partition est réalisé en entrant chaque voix comme
-une séquence (avec @code{@{...@}}), en combinant simultanément les
-voix et en les séparant par  @code{\\} :
 
-@lilypond[quote,verbatim,relative=2,fragment]
-<< { a4 g2 f4~ f4 } \\
-   { r4 g4 f2 f4 } >>
-@end lilypond
+@moreinfo
+@quotation
+Une liste complète de modificateurs et d'autres options de mise en
+forme se trouve à la section @ref{Chords}.
+@end quotation
 
-Pour l'écriture de musique polyphonique, les silences invisibles
-(spacer rests) s'avèrent bien pratiques ; ce sont des silences qui ne
-s'impriment pas.  Ils sont utiles pour remplir des voix qui,
-temporairement, ne jouent rien.  On peut voir ici le même exemple avec
-un silence espace invisible (@code{s}) à la place d'un silence normal
-(@code{r}) :
-
-@lilypond[quote,verbatim,relative=2,fragment]
-<< { a4 g2 f4~ f4 } \\
-   { s4 g4 f2 f4 } >>
-@end lilypond
 
-@noindent
-Encore une fois, ces expressions peuvent s'imbriquer arbitrairement :
+@node Final touches
+@section Final touches
 
-@lilypond[quote,fragment,verbatim,relative=2,fragment]
-<<
-  \new Staff <<
-    { a4 g2 f4~ f4 } \\
-    { s4 g4 f2 f4 }
-  >>
-  \new Staff <<
-    \clef bass
-    { <c g>1 ~ <c g>4 } \\
-    { e,,4 d e2 ~ e4}
-  >>
->>
-@end lilypond
+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.
 
-Plus de fonctionnalités sur l'écriture polyphonique sont décrites à la
-section @ref{Basic polyphony} du manuel.
+@menu
+* Version number::
+* Adding titles::
+* Absolute note names::
+* Organizing pieces with identifiers::
+* After the tutorial::
+* How to read the manual::
+@end menu
 
 
-@node Piano staves
-@section Piano staves
+@node Version number
+@subsection Version number
 
-@cindex staff switch, manual
-@cindex cross staff voice, manual
-La musique pour piano s'écrit avec 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 (@ref{More staves}),
+@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
 
 @example
-<< \new Staff @{ @dots{} @}
-   \new Staff @{ @dots{} @} >>
+\version "2.10.1"
 @end example
 
 @noindent
-mais maintenant cette expression entière doit être interprétée dans un
-contexte @code{PianoStaff}
+tout en haut de votre fichier LilyPond.
 
-@example
-\new PianoStaff << \new Staff @dots{} >>
-@end example
+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
+règles de conversion à appliquer au fichier.
 
-Voici un petit exemple :
 
-@lilypond[quote,verbatim,relative=1,fragment]
-\new PianoStaff <<
-  \new Staff { \time 2/4 c4 c g' g }
-  \new Staff { \clef bass c,, c' e c }
->>
-@end lilypond
+@node Adding titles
+@subsection Adding titles
 
-Plus d'informations sur le formatage de la musique pour piano sont
-données à @ref{Piano music}.
+Les informations bibliographiques (nom du morceau, du compositeur,
+etc) sont entrées dans un bloc séparé, le bloc d'en-tête
+(@code{\header}), qui existe indépendamment des expressions musicales
+principales.  Le bloc @code{\header} est habituellement placé en début
+de fichier.
 
+@example
+\version "2.10.1"
+\header @{
+  title = "Symphonie"
+  composer = "Moi"
+  opus = "Op. 9"
+@}
 
-@node Organizing larger pieces
-@section Organizing larger pieces
+@{
+ @dots{} music @dots{}
+@}
+@end example
+Quand le fichier est traité, le titre et le compositeur sont imprimés
+en haut de la partition.  Vous trouverez plus d'informations sur les
+titres à @ref{Creating titles}.
 
-Lorsqu'on combine tous les éléments étudiés plus haut pour produire
-des fichiers plus volumineux, les blocs @code{\score} deviennent
-beaucoup plus gros parce que les expressions musicales sont plus
-longues et, dans le cas des pièces polyphoniques, profondément
-imbriquées.  De telles expressions imposantes finissent par devenir peu
-maniables.
+@node Absolute note names
+@subsection Absolute note names
 
-En utilisant des variables, appelées également identificateurs, il est
-possible de découper des expressions musicales complexes.  Un identificateur
-se définit comme
+Jusqu'ici nous n'avons utilisé que le mode @code{\relative} pour
+définir les hauteurs de notes.  Si c'est effectivement le moyen le
+plus simple d'entrer la majeure partie de votre musique, il existe une
+autre façon de procéder : le mode de hauteurs absolues.
 
-@example
-MusiqueToto = @{ @dots{} @}
-@end example
+Si vous omettez la commande @code{\relative}, LilyPond considérera
+toutes les hauteurs comme des hauteurs absolues.  Un @code{c'} sera
+toujours un do du milieu, un @code{b} sera toujours une note
+au-dessous du précédent, et un @code{g,} sera toujours la note la plus
+grave dans la portée de clé de Fa.
 
-@noindent
-Le contenu de l'expression musicale @code{MusiqueToto}, peut être
-utilisé plus loin en faisant précéder son nom d'un anti-slash, c'est-à-dire
-@code{\MusiqueToto}.  Dans l'exemple suivant, un motif de deux notes est
-répété deux fois en utilisant la substitution par une variable :
-
-@lilypond[quote,ragged-right,verbatim,nofragment]
-seufzer = {
-  e'4( dis'4)
+@lilypond[quote,verbatim,ragged-right]
+{
+  \clef bass
+  c' b g, g,
+  g, f, f c'
 }
-{ \seufzer \seufzer }
 @end lilypond
 
-Le nom d'un identificateur ne doit comporter que des caractères
-alphabétiques non accentués, aucun nombre ni tiret.  On doit le définir
-en dehors de toute expression musicale.
-
-Il est possible d'utiliser des variables de types variés.
-Par exemple,
-
-@example
-largeur = 4.5\cm
-nom = "Wendy"
-papierACinq = \paper @{ paperheight = 21.0 \cm @}
-@end example
-
-En fonction de son contenu, l'identificateur peut être utilisé à différents
-endroits.  L'exemple suivant utilise la variable précédente :
+Voici une gamme sur 4 octaves :
 
-@example
-\paper @{
-  \papierACinq
-  line-width = \largeur
-@}
-@{ c4^\nom @}
-@end example
+@lilypond[quote,verbatim,ragged-right]
+{
+  \clef bass
+  c, d, e, f,
+  g, a, b, c
+  d e f g
+  a b c' d'
+  \clef treble
+  e' f' g' a'
+  b' c'' d'' e''
+  f'' g'' a'' b''
+  c'''1
+}
+@end lilypond
 
-Vous trouverez plus d'informations sur les usages possibles des
-identificateurs dans le manuel technique, section
-@ref{Input variables and Scheme}.
-@c fixme: the ref is too technical.
+Comme vous pouvez le voir, il faut beaucoup d'apostrophes pour écrire
+de la musique dans un registre aigu.  Regardez cet extrait de Mozart :
 
+@lilypond[quote,verbatim,ragged-right]
+{
+  \key a \major
+  \time 6/8
+  cis''8. d''16 cis''8 e''4 e''8
+  b'8. cis''16 b'8 d''4 d''8
+}
+@end lilypond
 
-@node An orchestral part
-@section An orchestral part
+Toutes ces apostrophes rendent le fichier moins lisible, et c'est donc
+une source d'erreurs.  En mode @code{\relative}, le même exemple
+devient bien plus facile à lire :
 
-Pour la musique d'orchestre, toute la musique est imprimée deux fois.
-Une partie séparée pour chaque pupitre, et un conducteur pour le chef.
-Recourir à des identifiants permet de s'épargner un double travail.  La
-musique est entrée une seule fois, et enregistrée dans une variable.  Le
-contenu de ces variables sera utilisé pour générer à la fois la
-partie d'instrument et le conducteur.
+@lilypond[quote,verbatim,ragged-right]
+\relative c'' {
+  \key a \major
+  \time 6/8
+  cis8. d16 cis8 e4 e8
+  b8. cis16 b8 d4 d8
+}
+@end lilypond
 
-Définir les notes dans un fichier à part est très pratique.  Par
-exemple, supposons que le fichier @file{musique-cor.ly} contienne la
-partie d'un duo cor/@/basson :
+Si d'aventure vous faites une erreur d'octaviation, le mode
+@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.
 
-@example
-notesCor = \relative c @{
-  \time 2/4
-  r4 f8 a cis4 f e d
-@}
-@end example
+Cependant, le mode de hauteurs absolues reste utile pour les musiques
+où les intervalles sont étendus, surtout pour les fichiers LilyPond
+créés par ordinateur.
 
-@noindent
-Puis, une partie individuelle est créée en mettant ce qui suit dans
-un fichier
 
-@example
-\include "musique-cor.ly"
-\header @{
-  instrument = "Cor en fa"
-@}
+@node Organizing pieces with identifiers
+@subsection Organizing pieces with identifiers
 
-@{
- \transpose f c' \notesCor
-@}
-@end example
+Lorsque l'on combine tous les éléments étudiés plus haut pour produire
+des fichiers plus volumineux, les blocs @code{\score} deviennent
+beaucoup plus gros parce que les expressions musicales sont plus
+longues et, dans le cas des pièces polyphoniques, profondément
+imbriquées.  De telles expressions imposantes finissent par devenir
+peu maniables.  Cet inconvénient peut être résolu par l'utilisation
+d'@emph{identificateurs}.
 
-La ligne
+En utilisant ces identificateurs, que l'on pourrait aussi appeler
+variables ou macros, il est possible de découper des expressions
+musicales complexes.  Un identificateur se définit comme suit :
 
 @example
-\include "musique-cor.ly"
+MusiqueToto = @{ @dots{} @}
 @end example
 
-@noindent
-indique à LilyPond de lire le contenu de @file{musique-cor.ly} à cet
-endroit dans le fichier, ainsi @code{notesCor} est défini pour ce qui
-suivra.  La commande @code{\transpose f@tie{}c'} indique que
-l'argument, en l'occurence @code{\notesCor}, doit être transposé d'une
-quinte ascendante.  Le son entendu @samp{fa} correspond à la note écrite
-@code{do'}, ce qui correspond bien à la transpostion d'un cor en
-fa.  La transposition peut être constatée dans la sortie suivante :
+Le contenu de l'expression musicale @code{MusiqueToto} pourra être
+utilisé plus loin en faisant précéder son nom d'un anti-slash,
+c'est-à-dire @code{\MusiqueToto}, juste comme n'importe quelle
+commande LilyPond.  Tous les identificateurs doivent être définis
+@emph{avant} l'expression musicale principale.
 
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  r4 f8 a cis4 f e d
+@lilypond[quote,verbatim,ragged-right]
+violin = \new Staff { \relative c'' {
+  a4 b c b
+}}
+cello = \new Staff { \relative c {
+  \clef bass
+  e2 d
+}}
+{
+  <<
+    \violin
+    \cello
+  >>
 }
 @end lilypond
 
-Dans la musique d'ensemble, il arrive souvent qu'une des voix ne joue
-pas pendant plusieurs mesures.  Ceci est spécifié par un silence
-spécial, le silence multi-mesures (mesures à compter).  Il est saisi
-par une lettre capitale @samp{R} suivie d'une durée (@code{1}@tie{}pour une
-ronde, @code{2}@tie{}pour une blanche, etc.).  En multipliant la durée, on
-peut construire des silences plus longs.  Par exemple, ce silence dure
-3@tie{}mesures à 2/4
-
-@example
-R2*3
-@end example
+@noindent
+Le nom d'un identificateur ne doit comporter que des caractères
+alphabétiques non accentués, aucun nombre ni tiret.
 
-Pour l'impression de parties séparées, ces silences multi-mesures doivent être
-condensés.  On peut l'obtenir en réglant une variable d'exécution
+Il est possible d'utiliser des variables de types variés.  Par exemple,
 
 @example
-\set Score.skipBars = ##t
+width = 4.5\cm
+name = "Wendy"
+aFivePaper = \paper @{ paperheight = 21.0 \cm @}
 @end example
 
-@noindent
-Cette commande règle la propriété @code{skipBars} dans le contexte
-@code{Score} à vrai (@code{##t}).  En faisant précéder la musique plus haut
-du silence et de cette option, on obtient
-
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  \set Score.skipBars = ##t
-  R2*3
-  r4 f8 a cis4 f e d
-}
-@end lilypond
-
-
-On crée le conducteur en combinant toutes les parties.  En
-supposant que l'autre voix soit dans l'expression @code{notesBasson} du fichier
-@file{musique-basson.ly}, le conducteur est composé des commandes
+En fonction de son contenu, un identificateur peut être utilisé à
+différents endroits.  L'exemple suivant utilise la variable ci-dessus
+:
 
 @example
-\include "musique-cor.ly"
-\include "musique-basson.ly"
-
-<<
-  \new Staff \notesCor
-  \new Staff \notesBasson
->>
+\paper @{
+  \aFivePaper
+  line-width = \width
+@}
+@{ c4^\name @}
 @end example
 
-@noindent
-donnant pour résultat
-
-@lilypond[quote,ragged-right]
-\relative c <<
-  \new Staff {
-    \time 2/4 R2*3
-    r4 f8 a cis4 f e d
-  }
-  \new Staff {
-    \clef bass
-    r4 d,8 f | gis4 c | b bes |
-    a8 e f4 | g d | gis f
-  }
->>
-@end lilypond
-
-De plus amples informations sur la gestion des parties et conducteurs
-se trouvent dans le manuel de notation, section @ref{Orchestral music}.
-
-Le réglage des variables d'exécution (« propriétés ») est abordé dans
-@ref{Changing context properties on the fly}.
-
 
 @node After the tutorial
-@section After the tutorial
+@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{Example
-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 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}.
 
 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 dès à
-présent les autres chapitres, bien sûr ! Néanmoins, le reste du manuel
-de l'utilisateur part du principe que vous avez déjà bien assimilé la
-syntaxe de LilyPond.  Vous pouvez toujours survoler le reste du manuel,
-et y revenir plus tard après avoir acquis de l'expérience.
-
+du manuel d'apprentissage.  Rien ne s'oppose à ce que vous consultiez
+dès à présent les autres chapitres, bien sûr ! Néanmoins, le reste du
+manuel de l'utilisateur part du principe que vous avez déjà bien
+assimilé la syntaxe de LilyPond.  Vous pouvez toujours survoler le
+reste du manuel, et y revenir plus tard après avoir acquis de
+l'expérience.
+
+@node How to read the manual
+@subsection How to read the manual
+
+Comme nous l'avons déjà vu dans @ref{How to read the tutorial}, de
+nombreux exemples du tutoriel n'ont pas fait apparaître le
+@code{\relative c'' @{ ...  @}} dans l'extrait de code affiché.
+
+Dans le reste du manuel, les exemples utilisés sont encore beaucoup
+plus souples : parfois il leur manque le @code{\relative c'' @{ ...
+@}}, mais d'autres fois ils ont recours à une autre hauteur de
+référence, telle que @code{c'} ou @code{c,,}), et dans certains cas
+c'est même l'exemple entier qui est en mode de hauteurs absolues !
+Cependant, de telles ambiguïtés ne se trouvent que dans des contextes
+où les hauteurs n'ont que peu d'importance.  Dans tous les exemples où
+elles en ont, le mode @code{\relative} ou absolu @code{@{ @}} est
+explicitement spécifié.
+
+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.
index f3e00af868664006092e6c51182ba6d377fd902c..3fd4bd3f42564d8a4cc209bd5a57dc2c4fffb2c9 100644 (file)
 @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: d0b8b30fb1e461c215c7867ae0aafed730699403
 
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
+   When revising a translation, copy the HEAD committish of the
+   version that you are working on.  See TRANSLATION for details.
 @end ignore
 
 @node Working on LilyPond projects
 @chapter Working on LilyPond projects
 
-UNTRANSLATED NODE: IGNORE ME
+Cette section explique comment résoudre ou éviter certains problèmes
+courants.  Si vous avez de l'expérience en programmation, beaucoup de
+ces astuces peuvent vous paraître évidentes, mais vous ne perdrez tout
+de même pas votre temps à lire ce chapitre.
 
-@menu 
+@menu
 * Suggestions for writing LilyPond files::
 * Saving typing with identifiers and functions::
 * Style sheets::
 * Updating old files::
 * Troubleshooting (taking it all apart)::
-@end menu 
+* Minimal examples::
+@end menu
+
 @node Suggestions for writing LilyPond files
 @section Suggestions for writing LilyPond files
 
-UNTRANSLATED NODE: IGNORE ME
+Maintenant vous êtes prêt à travailler sur de plus gros fichiers
+LilyPond --- des pièces entières, et plus seulement les petits
+exemples du tutoriel.  Mais comment devriez-vous vous y prendre ?
+
+Tant que LilyPond parvient à comprendre vos fichiers et produit le
+résultat que vous souhaitez, peu importe la manière dont le code est
+organisé.  Néanmoins, quelques critères doivent être pris en compte
+lorsque l'on écrit un fichier LilyPond.
+
+@itemize @bullet
+@item Si vous faites une erreur, la structure même du fichier LilyPond
+peut permettre de la localiser plus ou moins facilement.
 
-@menu 
+@item Et si vous souhaitez partager vos fichiers avec quelqu'un
+d'autre, ou si vous souhaitez modifier vos propres fichiers dans
+quelques années ?  Si certains fichiers LilyPond sont compréhensibles
+au premier coup d'oeil, d'autres vous feront vous arracher les cheveux
+pendant une heure.
+
+@item Et si vous souhaitez mettre à jour votre fichier pour
+l'utiliser avec une version plus récente de LilyPond ?  La syntaxe du
+langage d'entrée change parfois lorsque LilyPond s'améliore.  La
+plupart des changements peuvent être appliqués automatiquement avec
+@code{convert-ly}, mais quelques-uns peuvent demander une intervention
+manuelle.  Vos fichiers LilyPond peuvent être structurés de manière à
+faciliter leur mise à jour.
+@end itemize
+
+@menu
 * General suggestions::
 * Typesetting existing music::
 * Large projects::
-@end menu 
+@end menu
+
 @node General suggestions
 @subsection General suggestions
 
-UNTRANSLATED NODE: IGNORE ME
+Voici quelques conseils qui peuvent vous éviter certains problèmes ou
+en résoudre d'autres.
+
+@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.9.13"}.  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
+spécifiiez quelle version de LilyPond vous utilisiez.
+
+@item @strong{Ajoutez des contrôles}: @ref{Bar check}, @ref{Octave
+check} et @ref{Barnumber check}.  Si vous avez ajouté des contrôles de
+loin en loin, et que vous faites une erreur, vous pourrez la retrouver
+plus rapidement.  @qq{De loin en loin}, qu'est-ce à dire ?  Cela
+dépend de la complexité de la musique.  Pour de la musique très
+simple, peut-être une ou deux fois.  Pour de la musique très complexe,
+peut-être à chaque mesure.
+
+@item @strong{Une mesure par ligne de texte}.  Si la musique en elle-même ou
+le résultat que vous désirez contient quelque chose de compliqué, il
+est souvent bon de n'écrire qu'une seule mesure par ligne.  Économiser
+de la place en tassant huit mesures par ligne, ça ne vaut pas vraiment
+le coup si l'on doît corriger vos fichiers.
+
+@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.).
+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
+le fichier source à un ami, ce sera beaucoup plus difficile de
+déterminer vos intentions ou la manière dont votre fichier est
+structuré si vous n'y avez pas adjoint de commentaires.
+
+@item @strong{Indentez les accolades}.  Beaucoup de problèmes
+viennent d'un défaut de parité entre @code{@{} et @code{@}}.
+
+@item @strong{Séparez les affinages de mise en forme} de la musique
+elle-même. Voyez @ref{Saving typing with identifiers and functions} et
+@ref{Style sheets}.
+
+@end itemize
+
 
 @node Typesetting existing music
 @subsection Typesetting existing music
 
-UNTRANSLATED NODE: IGNORE ME
+Si vous saisissez de la musique à partir d'une partition existante,
+c'est-à-dire de la musique déjà écrite,
+
+@itemize @bullet
+
+@item n'entrez qu'un seul système de la partition originale
+à la fois --- mais toujours une seule mesure par ligne de texte ---,
+et vérifiez chaque système lorsqu'il est terminé.  Vous pouvez
+utiliser la commande @code{showLastLength} pour accélérer la
+compilation --- voir @ref{Skipping corrected music} ;
+
+@item définissez @code{mBreak = @{\break @}} et insérez
+@code{\mBreak} dans le fichier d'entrée des sauts de ligne identiques à la
+partition originale.  Cela facilite la comparaison entre la partition
+originale et la partition de LilyPond.  Lorsque vous avez fini de
+relire votre musique, vous pouvez définir @code{mBreak = @{ @}} pour
+enlever tous ces sauts de ligne, et laisser LilyPond placer les sauts
+de ligne selon son propre algorithme.
+
+@end itemize
+
 
 @node Large projects
 @subsection Large projects
 
-UNTRANSLATED NODE: IGNORE ME
+Lorsque l'on travaille sur un gros projet, il devient vital
+de structurer clairement ses fichiers LilyPond.
+
+@itemize @bullet
+
+@item @strong{utilisez un identificateur pour chaque voix},
+avec un minimum de structure dans la définition.  La structure de la
+section @code{\score} est la plus susceptible de changer, notamment
+dans une nouvelle version de LilyPond, alors que la définition du
+@code{violon} l'est beaucoup moins.
+
+@example
+violin = \relative c'' @{
+g4 c'8. e16
+@}
+...
+\score @{
+ \new GrandStaff @{
+   \new Staff @{
+     \violin
+   @}
+ @}
+@}
+@end example
+
+@item @strong{Séparez les retouches} des définitions de
+musique.  Ce conseil a été vu dans @ref{General suggestions},
+mais pour les gros projets c'est absolument vital.  Nous
+pouvons avoir besoin de changer la définition de
+@code{fthenp}, mais dans ce cas nous n'aurons besoin de le faire
+qu'une seule fois, et nous pourrons encore éviter de
+modifier quoi que ce soit à l'intérieur de la définition
+du @code{violon}.
+
+@example
+fthenp = _\markup@{
+ \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
+violin = \relative c'' @{
+g4\fthenp c'8. e16
+@}
+@end example
+
+@end itemize
+
 
 @node Saving typing with identifiers and functions
 @section Saving typing with identifiers and functions
 
-UNTRANSLATED NODE: IGNORE ME
+@cindex variables
+@cindex identificateurs
+
+Jusqu'à maintenant, vous avez vu ce type de code :
+
+@lilypond[quote,verbatim,ragged-right]
+hornNotes = \relative c'' { c4 b dis c }
+\score {
+ {
+   \hornNotes
+ }
+}
+@end lilypond
+
+Vous comprendrez combien cela peut être utile pour écrire de la
+musique minimaliste :
+
+@lilypond[quote,verbatim,ragged-right]
+fragA = \relative c'' { a4 a8. b16 }
+fragB = \relative c'' { a8. gis16 ees4 }
+violin = \new Staff { \fragA \fragA \fragB \fragA }
+\score {
+ {
+   \violin
+ }
+}
+@end lilypond
+
+Cependant, vous pouvez aussi utiliser ces identificateurs
+--- aussi connus sous le nom de variables, macros, ou commandes
+(définies par l'utilisateur) --- pour des retouches :
+
+@lilypond[quote,verbatim,ragged-right]
+dolce = \markup{ \italic \bold dolce }
+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-. |
+ }
+}
+\score {
+ {
+   \violin
+ }
+\layout{ragged-right=##t}
+}
+@end lilypond
+
+Ces identificateurs sont évidemment utiles pour économiser de la
+frappe.  Mais ils peuvent l'être même si vous ne les utilisez qu'une
+seule fois : ils réduisent la complexité.  Regardons l'exemple
+précédent sans aucun identificateur.  C'est beaucoup plus laborieux à
+lire, et particulièrement la dernière ligne.
+
+@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-. |
+ @}
+@}
+@end example
+
+Jusqu'ici nous avons vu des substitutions statiques : quand LilyPond
+rencontre @code{\padText}, il le remplace par le contenu que nous lui
+avons défini --- c'est-à-dire le contenu à droite de @code{padText=}).
+
+LilyPond gère également des substitutions non-statiques --- vous
+pouvez les voir comme des fonctions.
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+#(define-music-function (parser location padding) (number?)
+ #{
+   \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
+}
+@end lilypond
+
+Utiliser les identificateurs est aussi un bon moyen pour vous épargner
+du travail si la syntaxe de LilyPond change un jour --- voir
+@ref{Updating old files}.  Si vous avez une seule définition, par
+exemple @code{\dolce}, pour tous vos fichiers (voir @ref{Style
+sheets}), et que la syntaxe change, alors vous n'aurez qu'à mettre à
+jour votre seule définition @code{\dolce}, au lieu de devoir modifier
+chaque fichier @code{.ly}.
+
 
 @node Style sheets
 @section Style sheets
 
-UNTRANSLATED NODE: IGNORE ME
+La sortie que produit LilyPond peut être largement modifiée --- voir
+@ref{Tweaking output} pour plus de détails.  Mais que faire si vous
+avez beaucoup de fichiers auxquels vous souhaitez appliquer vos
+retouches ? Ou si vous souhaitez simplement séparer les retouches de
+la musique elle-même ?  Rien de plus facile.
+
+Prenons un exemple.  Ne vous inquiétez pas si vous ne comprenez pas
+les parties avec tous les @code{#()}.  Celles-ci sont expliquées dans
+@ref{Advanced tweaks with Scheme}.
+
+@lilypond[quote,verbatim,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 }
+#})
+
+\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
+}
+@end lilypond
+
+Il y a quelques problèmes de chevauchement ; nous allons arranger
+cela en utilisant les techniques de @ref{Moving objects}.  On peut
+aussi aussi faire quelque chose pour les définitions de @code{mpdolce}
+et @code{tempoMark}.  Elles produisent le résultat que nous désirons,
+mais nous pourrions aussi vouloir les utiliser dans une autre pièce.
+Il suffirait de les copier et les coller au début de chaque
+fichier, mais c'est fastidieux.  De plus, cela laisse les définitions
+dans nos fichiers de musique, et je trouve personnellement tous ces
+@code{#()} assez laids.  Stockons-les dans un autre fichier :
+
+@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" )))
+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 @}
+#@})
+@end example
+
+Maintenant, modifions notre musique (enregistrez ce fichier
+sous @file{"musique.ly"}).
+
+@c  We have to do this awkward example/lilypond-non-verbatim
+@c  because we can't do the \include stuff in the manual.
+
+@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
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 }
+#})
+
+\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
+}
+@end lilypond
+
+C'est mieux, mais effectuons encore quelques retouches.  Le glissando
+est peu visible, c'est pourquoi nous allons l'épaissir et le
+rapprocher des têtes de notes.  Déplaçons l'indication métronomique
+au-dessus de la clef, au lieu de la laisser au-dessus de la première
+note.  Et pour finir, mon professeur de composition déteste les
+chiffrages de mesure en "C", nous allons donc le transformer en "4/4".
+
+Cependant, ne changez pas le fichier @file{musique.ly}.  Remplacez le
+fichier @file{definitions.ly} par ceci :
+
+@example
+%%%  definitions.ly
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 @}
+#@})
+
+\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
+ @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 }
+#})
+
+\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
+ }
+}
+
+\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
+}
+@end lilypond
+
+C'est encore mieux !  Mais supposons maintenant que je veuille publier
+cette pièce.  Mon professeur de composition n'aime pas les chiffrages
+de mesure en "C", mais moi je les aime bien.  Copions l'actuel
+@file{definitions.ly} dans le fichier @file{publication-web.ly}, et
+modifions ce dernier.  Puisque la musique est destinée à produire un
+fichier PDF affiché sur écran, nous allons aussi augmenter la taille
+globale de police.
+
+@example
+%%%  definitions.ly
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 @}
+#@})
+
+#(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
+ @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+ #: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 }
+#})
+
+#(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
+ }
+}
+
+\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
+}
+@end lilypond
+
+Il ne nous reste plus qu'à remplacer @code{\include "definitions.ly"}
+par @code{\include "web-publish.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
+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
+alors à
+
+@example
+\include "definitions.ly"
+
+%%%  Décommentez seulement une de ces deux lignes !
+\include "web-publish.ly"
+%\include "university.ly"
+@end example
+
+Cette approche peut être utile même si vous ne produisez qu'un seul
+jeu de partitions.  J'utilise une demi-douzaine de fichiers de
+@qq{feuille de style} pour mes projets.  Je commence chaque fichier de
+musique par @code{\include "../global.ly"} qui contient :
+
+@example
+%%%   global.ly
+\version "2.9.13"
+#(ly:set-option 'point-and-click #f)
+\include "../init/init-defs.ly"
+\include "../init/init-mise-en-page.ly"
+\include "../init/init-en-tetes.ly"
+\include "../init/init-papier.ly"
+@end example
 
 @node Updating old files
 @section Updating old files
 
-UNTRANSLATED NODE: IGNORE ME
+La syntaxe de LilyPond change de temps en temps.  Ces changements de
+syntaxe du langage d'entrée accompagnent les améliorations du
+logiciel.  Ces changements sont parfois destinés à rendre les fichiers
+plus faciles à lire et à écrire, ou permettent d'intégrer de nouvelles
+fonctionnalités.
+
+LilyPond est fourni avec un utilitaire qui facilite cette mise à
+jour : @code{convert-ly}.  Pour savoir comment utiliser ce programme,
+voir @ref{Updating files with convert-ly}.
+
+Malheureusement, @code{convert-ly} ne peut pas réaliser toutes les
+modifications.  Il s'occupe des changements qui ne requièrent qu'une
+simple substitution de texte --- comme @code{raggedright} devenant
+@code{ragged-right} ---, les autres étant trop compliqués à effectuer.
+Les changements de syntaxe qui ne sont pas gérés par @code{convert-ly}
+sont énumérés dans @ref{Updating files with convert-ly}.
+
+Par exemple, dans les versions 2.4 et antérieures de LilyPond,
+les accents et les lettres non anglaises étaient entrées en
+utilisant LaTeX --- par exemple, @samp{No\"el}.  À partir de la
+version 2.6, le caratère @samp{ë} doit être entré directement
+dans le fichier LilyPond comme caractère UTF-8.
+@code{convert-ly} ne peut pas changer tous les caractères
+LaTeX en caractères UTF-8 ; vous devez mettre à jour vos vieux
+fichiers LilyPond manuellement.
+
+
 
 @node Troubleshooting (taking it all apart)
 @section Troubleshooting (taking it all apart)
 
-UNTRANSLATED NODE: IGNORE ME
+Tôt ou tard, vous écrirez un fichier que LilyPond ne peut pas
+compiler.  Les messages que LilyPond affiche peuvent vous aider à
+trouver l'erreur, mais dans beaucoup de cas vous aurez besoin de faire
+quelques recherches pour déterminer la source du problème.
+
+Pour ce faire, les outils les plus puissants sont le commentaire de
+fin de ligne, indiqué par @code{%}, et le commentaire multilignes (ou
+bloc de commentaire), indiqué par @code{%@{ ... %@}}.  Si vous ne
+pouvez localiser le problème, commencez par mettre en commentaire de
+grandes parties de votre fichier d'entrée.  Après avoir mis en
+commentaire une section, essayez de compiler à nouveau.  Si cela
+fonctionne, c'est que le problème se situe dans cette partie du
+fichier.  Si cela ne fonctionne pas, continuez à mettre en commentaire
+d'autres sections, jusqu'à ce que vous ayez quelque chose qui compile.
+
+Dans un cas extrême, vous pourriez en arriver à
+
+@example
+\score @{
+ <<
+   % \melodie
+   % \harmonie
+   % \basse
+ >>
+ \layout@{@}
+@}
+@end example
+
+@noindent
+c'est-à-dire un fichier sans aucune musique.
+
+Si cela arrive, ne vous découragez pas.  Décommentez un peu, la partie
+de basse par exemple, et voyez si ça fonctionne.  Si ce n'est pas le
+cas, placez en commentaire toute la partie de basse, mais laissez
+@code{\basse} décommenté dans le bloc @code{\score}.
+
+@example
+basse = \relative c' @{
+%@{
+ c4 c c c
+ d d d d
+%@}
+@}
+@end example
+
+Maintenant commencez à décommenter petit à petit le partie de
+@code{basse} jusqu'à ce que vous localisiez la ligne qui pose
+problème.
+
+Une autre technique de déboguage très utile est la construction
+@iftex
+de @ref{Minimal examples}.
+@end iftex
+@ifnottex
+d'@ref{Minimal examples}.
+@end ifnottex
+
+
+@node Minimal examples
+@section Minimal examples
+
+Un exemple minimal est un exemple de code aussi court que possible.
+De tels exemples sont bien plus compréhensibles que des exemple
+longs.  Les exemples minimaux sont utilisés pour
+
+@itemize
+@item les rapports de bogue,
+@item les demandes d'aide sur les listes de diffusion,
+@item un ajout à
+@uref{http://lsr@/.dsi@/.unimi/2.it/,LilyPond Snippet Repository}.
+@end itemize
+
+Pour construire un exemple minimal, la règle est très simple : enlevez
+tout ce qui n'est pas nécessaire.  Il est préférable de commenter les
+lignes non nécessaires plutôt que de les effacer : ainsi, si vous vous
+apercevez que certaines étaient @emph{réellement} nécessaires, vous
+pouvez les décommenter au lieu de les resaisir.
+
+Il y a deux exceptions à cette règle du strict nécessaire :
+
+@itemize
+@item incluez le numéro de @code{\version},
+@item si possible, utilisez @code{\paper@{ ragged-right=##t @}} au
+début de votre exemple.
+@end itemize
 
+Tout l'intérêt d'un exemple minimal réside dans sa facilité de lecture :
+@itemize
+@item évitez d'utiliser des notes, armures ou métriques compliquées, à
+moins que vous vouliez montrer quelque chose en rapport avec
+celles-ci,
+@item n'utilisez pas de commandes @code{\override} sauf si elles font
+l'intérêt de l'exemple.
+@end itemize
index e457d98a6d1a8dfa940c2f9aa0831d30604a64dd..803ae39f9d2846d3982d8b60ad6583ab0bfc2fe9 100644 (file)
@@ -1,4 +1,10 @@
 <html>
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
   <head>
     <title>LilyPond @TOPLEVEL_VERSION@ Documentation</title>
     <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
@@ -25,7 +31,7 @@
   <body>
         
        <div class="navigation">
-         <h1> LilyPond documentation</h1>
+         <h1>LilyPond documentation</h1>
        </div>
     <div align="center" class="titlepage">
 
@@ -45,9 +51,6 @@
            <a class="title" href="user/lilypond/Tutorial.html">Tutorial</a>
              <br>(start here)
 
-           <li>
-           <a class="title" href="user/lilypond/Tutorial.fr.html">Tutoriel en français</a>
-             <br>(for French-speaking users)
          </ul>
          </td>
          <td class="right-column">
@@ -69,7 +72,7 @@
          <ul>
            <li>
 <a class="title" href="user/lilypond/index.html">User manual</a>
-(in <a class="title" href="user/lilypond.html">one big page</a> ~ 4 Mb,
+(in <a class="title" href="user/lilypond-big-page.html">one big page</a> ~ 4 Mb,
 in <a class="title" href="user/lilypond.pdf">PDF</a>)
 
      <br>(everything about LilyPond)
@@ -87,7 +90,7 @@ in <a class="title" href="user/lilypond.pdf">PDF</a>)
      <br>(current in development)
 
  <li><a class="title" href="user/music-glossary/index.html">Glossary</a>
-(in <a class="title" href="user/music-glossary.html">one big page</a> ~ 1 Mb,
+(in <a class="title" href="user/music-glossary-big-page.html">one big page</a> ~ 1 Mb,
 in <a class="title" href="user/music-glossary.pdf">PDF</a>)
 
      <br>(for non-English users)
@@ -98,7 +101,7 @@ in <a class="title" href="user/music-glossary.pdf">PDF</a>)
          <ul>
            <li>
  <a  class="title" href="user/lilypond-internals/index.html">Program reference</a>
- (in <a class="title" href="user/lilypond-internals.html">one big page</a> ~ 1 Mb)
+ (in <a class="title" href="user/lilypond-internals-big-page.html">one big page</a> ~ 1 Mb)
 
      <br>(definitions for tweaking)
 
@@ -140,5 +143,9 @@ in <a class="title" href="user/music-glossary.pdf">PDF</a>)
         </tr>
       </tbody>
     </table>
+    <p><strong>NOTE</strong>: like every HTML page in this
+      documentation, you can find at bottom links to translations of
+      this page in other languages.
+    </p>
   </body>
 </html>
index 56a829cb7c5b3519b981dedae20190595b11b161..ce3f2b01c5e8f10acb8dd9dbffc94efe6d927b91 100644 (file)
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-07 16:10+0100\n"
-"PO-Revision-Date: 2007-01-07 16:33+0100\n"
+"POT-Creation-Date: 2007-02-05 14:23+0100\n"
+"PO-Revision-Date: 2007-02-05 14:38+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"
@@ -17,1195 +17,2152 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#. @node in ../../../Documentation/user/lilypond.tely
 msgid "Top"
 msgstr "Sommaire"
 
+#. @top in ../../../Documentation/user/lilypond.tely
 msgid "GNU LilyPond --- The music typesetter"
 msgstr "GNU LilyPond --- le système de gravure musicale"
 
+#. @node in ../../../Documentation/user/lilypond.tely
+#. @appendix in ../../../Documentation/user/lilypond.tely
 msgid "LilyPond command index"
 msgstr "Index des commandes LilyPond"
 
+#. @node in ../../../Documentation/user/lilypond.tely
+#. @appendix in ../../../Documentation/user/lilypond.tely
 msgid "LilyPond index"
 msgstr "Index de LilyPond"
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Bugs"
 msgstr "Bogues"
 
+#. @subheading in ../../../Documentation/user/macros.itexi
+msgid "More information"
+msgstr "Plus d'informations"
+
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "See also"
 msgstr "Voir aussi"
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Predefined commands"
 msgstr "Commandes prédéfinies"
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Commonly tweaked properties"
 msgstr "Propriétés couramment ajustées"
 
+#. @node in ../../../Documentation/user/preface.itely
+#. @unnumbered in ../../../Documentation/user/preface.itely
 msgid "Preface"
 msgstr "Préface"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @chapter in ../../../Documentation/user/introduction.itely
 msgid "Introduction"
 msgstr "Introduction"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Engraving"
 msgstr "Gravure"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Automated engraving"
 msgstr "Gravure automatisée"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr "Quels signes graver ?"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Music representation"
 msgstr "Représentation de la musique"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Example applications"
 msgstr "Exemples d'applications"
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "About this manual"
 msgstr "À propos de ce manuel"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @chapter in ../../../Documentation/user/tutorial.itely
 msgid "Tutorial"
 msgstr "Tutoriel"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
 msgid "First steps"
 msgstr "Premiers pas"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Compiling a file"
+msgstr "Compiler un fichier"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr "Saisir la musique et visualiser la partition produite"
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "MacOS X"
 msgstr "MacOS X"
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "Windows"
 msgstr "Windows"
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "Unix"
 msgstr "Unix"
 
-msgid "Second steps"
-msgstr "Initiation à la notation de base"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Simple notation"
+msgstr "Notation simple"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
+msgid "Pitches"
+msgstr "Hauteurs"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "interval"
+msgstr "intervalle"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "fourth"
+msgstr "quarte"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "scale"
+msgstr "gamme"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "middle C"
+msgstr "do central"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Durations (rhythms)"
+msgstr "Durées (rythme)"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "duration"
+msgstr "durée"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "whole note"
+msgstr "ronde"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "half note"
+msgstr "blanche"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "quarter note"
+msgstr "noire"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "dotted notes"
+msgstr "notes pointées"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Rests"
+msgstr "Silences"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "rest"
+msgstr "silence"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Time signature"
+msgstr "Métrique"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "time signature"
+msgstr "métrique"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Clef"
+msgstr "Clefs"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "clef"
+msgstr "clef"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "All together"
+msgstr "Tout associer"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Working on text files"
+msgstr "Travailler sur des fichiers texte"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "How to read the tutorial"
+msgstr "Comment lire le tutoriel"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Single staff notation"
+msgstr "Notation sur une seule portée"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Relative note names"
+msgstr "Hauteurs de note relatives"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Accidentals and key signatures"
+msgstr "Altérations et armures"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Accidentals"
+msgstr "Altérations"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "sharp"
+msgstr "dièse"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "flat"
+msgstr "bémol"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "double sharp"
+msgstr "double dièse"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "double flat"
+msgstr "double bémol"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Key signatures"
+msgstr "Armures"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Warning: key signatures and pitches"
+msgstr "Attention aux armures et aux hauteurs"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Ties and slurs"
+msgstr "Liaisons"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Ties"
+msgstr "Liaisons de prolongation"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "tie"
+msgstr "liaison de prolongation"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Slurs"
+msgstr "Liaisons d'articulation"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "slur"
+msgstr "liaison d'articulation"
 
-msgid "More about pitches"
-msgstr "Les hauteurs en détail"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Phrasing slurs"
+msgstr "Liaisons de phrasé"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Warnings: slurs vs. ties"
+msgstr "Attention aux types de liaison"
 
-msgid "Entering ties"
-msgstr "Liaisons de durée"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Articulation and dynamics"
+msgstr "Articulations et nuances"
 
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Articulations"
+msgstr "Articulations"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "articulations"
+msgstr "articulations"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Fingerings"
+msgstr "Doigtés"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Dynamics"
+msgstr "Nuances"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr "Barres de ligature automatiques et manuelles"
 
-msgid "Octave entry"
-msgstr "Saisie des octaves"
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "beam"
+msgstr "barre de ligature"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Advanced rhythmic commands"
+msgstr "Commandes rythmiques avancées"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Partial measure"
+msgstr "Mesure incomplète"
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "anacrusis"
+msgstr "anacrouse"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Tuplets"
+msgstr "Nolets"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Grace notes"
+msgstr "Notes d'agrément"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Multiple notes at once"
+msgstr "Notes simultanées"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr "Les expressions musicales en clair"
 
-msgid "More staves"
-msgstr "Plus de portées"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Simultaneous music expressions: multiple staves"
+msgstr "Expressions musicales simultanées -- plusieurs portées"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Simultaneous music expressions: single staff"
+msgstr "Expressions musicales simultanées -- une seule portée"
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Analogy: mathematical expressions"
+msgstr "Analogie avec les expressions mathématiques"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Multiple staves"
+msgstr "Plusieurs portées"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Piano staves"
+msgstr "Double portée"
 
-msgid "Adding articulation marks to notes"
-msgstr "Ajout de signes d'articulation"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Single staff polyphony"
+msgstr "Polyphonie sur une portée"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Combining notes into chords"
 msgstr "Combinaison de notes en accords"
 
-msgid "Advanced rhythmic commands"
-msgstr "Commandes rythmiques avancées"
-
-msgid "Commenting input files"
-msgstr "Commenter un fichier source"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Songs"
+msgstr "Chansons"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Printing lyrics"
 msgstr "Imprimer des paroles"
 
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "melisma"
+msgstr "mélisme"
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "A lead sheet"
 msgstr "Partition d'une chanson"
 
-msgid "Adding titles"
-msgstr "Ajout de titres"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Final touches"
+msgstr "Dernières précisions"
 
-msgid "Single staff polyphony"
-msgstr "Polyphonie sur une portée"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Version number"
+msgstr "Numéro de version"
 
-msgid "Piano staves"
-msgstr "Double portée"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Adding titles"
+msgstr "Ajout de titres"
 
-msgid "Organizing larger pieces"
-msgstr "Comment organiser de plus grandes pièces"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Absolute note names"
+msgstr "Noms de note absolus"
 
-msgid "An orchestral part"
-msgstr "Partitions d'orchestre"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Organizing pieces with identifiers"
+msgstr "Organiser ses pièces avec des identificateurs"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "After the tutorial"
 msgstr "Après le tutoriel"
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "How to read the manual"
+msgstr "Comment lire le manuel"
+
+#. @node in ../../../Documentation/user/putting.itely
+#. @chapter in ../../../Documentation/user/putting.itely
 msgid "Putting it all together"
 msgstr "Tout mettre en ordre"
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "Extending the templates"
 msgstr "Étendre les modèles"
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "How LilyPond files work"
 msgstr "Comment les fichiers LilyPond sont organisés"
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "Score is a single musical expression"
 msgstr "La partition est une unique expression musicale"
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
+msgid "An orchestral part"
+msgstr "Partitions d'orchestre"
+
+#. @node in ../../../Documentation/user/working.itely
+#. @chapter in ../../../Documentation/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr "Travailler sur des projets LilyPond"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Suggestions for writing LilyPond files"
 msgstr "Suggestions de saisie des fichiers LilyPond"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "General suggestions"
 msgstr "Suggestions générales"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "Typesetting existing music"
 msgstr "Graver de la musique existante"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "Large projects"
 msgstr "Vastes projets"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Saving typing with identifiers and functions"
 msgstr "Économiser du temps grâce à des identificateurs et fonctions"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Style sheets"
 msgstr "Feuilles de style"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Updating old files"
 msgstr "Mettre à jour des anciens fichiers"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
 msgstr "Résolution de problèmes --- tout remettre à plat"
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
+msgid "Minimal examples"
+msgstr "Exemples minimaux"
+
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @chapter in ../../../Documentation/user/tweaks.itely
 msgid "Tweaking output"
 msgstr "Retoucher les résultats"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Moving objects"
 msgstr "Déplacer des objets"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr "Corriger les collisions d'objets"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Common tweaks"
 msgstr "Retouches courantes"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Default files"
 msgstr "Fichiers fournis par LilyPond"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Fitting music onto fewer pages"
 msgstr "Réduire le nombre de pages de la partition"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr "Retouches avancées avec Scheme"
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @chapter in ../../../Documentation/user/basic-notation.itely
 msgid "Basic notation"
 msgstr "Notation de base"
 
-msgid "Pitches"
-msgstr "Hauteurs"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Normal pitches"
 msgstr "Hauteurs naturelles"
 
-msgid "Accidentals"
-msgstr "Altérations"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Cautionary accidentals"
 msgstr "Altérations de précaution"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Micro tones"
 msgstr "Altérations microtonales"
 
-msgid "Notes names in other languages"
+#. @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 "Relative octaves"
 msgstr "Octaves relatives"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Octave check"
 msgstr "Vérification d'octave"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Transpose"
 msgstr "Transposition"
 
-msgid "Rests"
-msgstr "Silences"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Skips"
 msgstr "Silences invisibles"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Rhythms"
 msgstr "Rythme"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Durations"
 msgstr "Durées"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Augmentation dots"
 msgstr "Points d'addition"
 
-msgid "Tuplets"
-msgstr "Nolets"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Scaling durations"
 msgstr "Changement d'échelle des durées"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Bar check"
 msgstr "Vérification des limites de mesure"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Barnumber check"
 msgstr "Vérification du numéro de mesure"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Automatic note splitting"
 msgstr "Découpage automatique des notes"
 
-msgid "Multiple notes at once"
-msgstr "Notes simultanées"
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
+#, fuzzy
+msgid "Polyphony"
+msgstr "Polyphonie basique"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Chords"
 msgstr "Accords"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Stems"
 msgstr "Hampes"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Basic polyphony"
 msgstr "Polyphonie basique"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Explicitly instantiating voices"
 msgstr "Instantiation explicite des voix"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Collision Resolution"
 msgstr "Résolution des collisions"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Staff notation"
 msgstr "Notation sur la portée"
 
-msgid "Clef"
-msgstr "Clés"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Key signature"
 msgstr "Armure"
 
-msgid "Time signature"
-msgstr "Métrique"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Partial measures"
 msgstr "Mesures incomplètes"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Bar lines"
 msgstr "Barres de mesures"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Unmetered music"
 msgstr "Musique sans métrique"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "System start delimiters"
 msgstr "Groupements de systèmes"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Staff symbol"
 msgstr "Symbole de la portée"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Writing music in parallel"
 msgstr "Saisir la musique en parallèle"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Connecting notes"
 msgstr "Notation couvrant plusieurs notes"
 
-msgid "Ties"
-msgstr "Liaisons de prolongation"
-
-msgid "Slurs"
-msgstr "Liaisons d'articulation"
-
-msgid "Phrasing slurs"
-msgstr "Liaisons de phrasé"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Laissez vibrer ties"
 msgstr "Liaisons « laissez vibrer »"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Automatic beams"
 msgstr "Barres de ligature automatiques"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Manual beams"
 msgstr "Barres de ligature manuelles"
 
-msgid "Grace notes"
-msgstr "Notes d'agrément"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Expressive marks"
 msgstr "Signes d'interprétation"
 
-msgid "Articulations"
-msgstr "Articulations"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Fingering instructions"
 msgstr "Doigtés"
 
-msgid "Dynamics"
-msgstr "Nuances"
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Breath marks"
 msgstr "Signes de respiration"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Trills"
 msgstr "Trilles"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Glissando"
 msgstr "Glissando"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Arpeggio"
 msgstr "Arpège"
 
+#. @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/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Repeats"
 msgstr "Répétitions"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeat types"
 msgstr "Types de répétitions"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeat syntax"
 msgstr "Syntaxe des répétitions"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeats and MIDI"
 msgstr "Répétitions et MIDI"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Manual repeat commands"
 msgstr "Commandes de reprise manuelles"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Tremolo repeats"
 msgstr "Répétitions en trémolo"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Tremolo subdivisions"
 msgstr "Subdivisions de trémolo"
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Measure repeats"
 msgstr "Répétitions de mesure"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @chapter in ../../../Documentation/user/instrument-notation.itely
 msgid "Instrument-specific notation"
 msgstr "Notation spécifique"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Piano music"
 msgstr "Musique pour piano"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Automatic staff changes"
 msgstr "Changements de portée automatiques"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Manual staff switches"
 msgstr "Changements de portée manuels"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Pedals"
 msgstr "Pédales"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Staff switch lines"
 msgstr "Lignes de changement de portée"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Cross staff stems"
 msgstr "Accords sur plusieurs portées"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Chord names"
 msgstr "Accords nommés"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Introducing chord names"
 msgstr "Introduction aux noms d'accords"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Chords mode"
 msgstr "Mode accords"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Printing chord names"
 msgstr "Imprimer des noms d'accords"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Vocal music"
 msgstr "Musique vocale"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Setting simple songs"
 msgstr "Écrire des chansons simples¿"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Entering lyrics"
 msgstr "Saisie des paroles"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Hyphens and extenders"
 msgstr "Traits d'union et de prolongation"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "The Lyrics context"
 msgstr "Le contexte de paroles (Lyrics)"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Melismata"
 msgstr "Mélismes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Another way of entering lyrics"
 msgstr "Une autre manière de saisir des paroles"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Flexibility in placement"
 msgstr "Flexibilité dans le placement"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Lyrics to multiple notes of a melisma"
 msgstr "Paroles sur plusieurs notes d'un mélisme"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Divisi lyrics"
 msgstr "Paroles alternatives"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Switching the melody associated with a lyrics line"
 msgstr "Changer la voix associée à une ligne de paroles"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Specifying melismata within the lyrics"
 msgstr "Indiquer les mélismes au sein des paroles"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Lyrics independent of notes"
 msgstr "Paroles indépendantes des notes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Spacing lyrics"
 msgstr "Espacement des paroles"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "More about stanzas"
 msgstr "Plus à propos des strophes"
 
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Adding stanza numbers"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Adding dynamics marks"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+#, fuzzy
+msgid "Adding singer names"
+msgstr "Ajout de titres"
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Printing stanzas at the end"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Printing stanzas at the end in multiple columns"
+msgstr ""
+
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ambitus"
 msgstr "Ambitus"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Other vocal issues"
 msgstr "Autres éléments relatifs à la voix"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Rhythmic music"
 msgstr "Musique rythmique"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Showing melody rhythms"
 msgstr "Graver des lignes rythmiques"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Entering percussion"
 msgstr "Notation de percussions"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Percussion staves"
 msgstr "Portée de percussions"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ghost notes"
 msgstr "Notes fantômes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Guitar"
 msgstr "Guitare"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "String number indications"
 msgstr "Indications de numéro de corde"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Tablatures basic"
 msgstr "Base des tablatures"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Non-guitar tablatures"
 msgstr "Tablatures autres que pour la guitare"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Banjo tablatures"
 msgstr "Tablatures pour banjo"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Fret diagrams"
 msgstr "Tablatures"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Right hand fingerings"
 msgstr "Doigtés pour la main droite"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Other guitar issues"
 msgstr "Autres éléments relatifs à la guitare"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe"
 msgstr "Cornemuse"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe definitions"
 msgstr "Définitions pour la cornemuse"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe example"
 msgstr "Exemple pour la cornemuse"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient notation"
 msgstr "Notations anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient note heads"
 msgstr "Têtes de note anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient accidentals"
 msgstr "Altérations anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient rests"
 msgstr "Silences anciens"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient clefs"
 msgstr "Clefs anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient flags"
 msgstr "Crochets anciens"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient time signatures"
 msgstr "Métriques anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient articulations"
 msgstr "Articulations anciennes"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Custodes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Divisiones"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "White mensural ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Gregorian square neumes ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Gregorian Chant contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Mensural contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Musica ficta accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Figured bass"
 msgstr "Basse chiffrée"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Other instrument specific notation"
 msgstr "Autres notations spécifique à des instruments"
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Artificial harmonics (strings)"
 msgstr "Harmoniques artificiels (cordes)"
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @chapter in ../../../Documentation/user/advanced-notation.itely
 msgid "Advanced notation"
 msgstr "Notation avancée"
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Text"
 msgstr "Texte"
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text scripts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text spanners"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text markup"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Nested scores"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Overview of text markup commands"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Font selection"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "New dynamic marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Preparing parts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Multi measure rests"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Metronome marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Rehearsal marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Bar numbers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Instrument names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Instrument transpositions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Ottava brackets"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Different editions from one source"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Orchestral music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Automatic part combining"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Hiding staves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Quoting other voices"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Formatting cue notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Aligning to cadenzas"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Contemporary notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Polymetric notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Time administration"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Proportional notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Clusters"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Special noteheads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Feathered beams"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Improvisation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Selecting notation font size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Educational use"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Balloon help"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Blank music sheet"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Hidden notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Shape note heads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Easy Notation note heads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Analysis brackets"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Coloring objects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Parentheses"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Grid lines"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @chapter in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing defaults"
 msgstr "Changer les réglages prédéfinis"
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "Automatic notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Automatic accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Setting automatic beam behavior"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "Interpretation contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Contexts explained"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Creating contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing context properties on the fly"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Modifying context plug-ins"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Layout tunings within contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing context default settings"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Defining new contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Aligning contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "The \\override command"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Constructing a tweak"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Navigating the program reference"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Layout interfaces"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Determining the grob property"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Objects connected to the input"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "\\set vs. \\override"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Difficult tweaks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @chapter in ../../../Documentation/user/non-music.itely
 msgid "Non-musical notation"
 msgstr "Objets non musicaux"
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Input files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "File structure (introduction)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Multiple scores in a book"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Extracting fragments of notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "File structure"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "A single music expression"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Including LilyPond files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Text encoding"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Titles and headers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Creating titles"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Custom titles"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "MIDI output"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Creating MIDI files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "MIDI block"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "MIDI instrument names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Displaying LilyPond notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Skipping corrected music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @chapter in ../../../Documentation/user/spacing.itely
 msgid "Spacing issues"
 msgstr "Questions d'espacement"
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Paper and pages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Paper size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Page formatting"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Music layout"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Setting the staff size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Score layout"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing inside a system"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing of piano staves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing between systems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Controlling spacing of individual systems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Two-pass vertical spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr ""
 
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Horizontal spacing overview"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "New spacing area"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Changing horizontal spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Line length"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Breaks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Line breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Page breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Optimal page breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Optimal page turning"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Displaying spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @chapter in ../../../Documentation/user/programming-interface.itely
 msgid "Interfaces for programmers"
 msgstr "Interfaces pour les programmeurs"
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Music functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Overview of music functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Simple substitution functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Paired substitution functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Mathematics in functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Void functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Functions without arguments"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Programmer interfaces"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Input variables and Scheme"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Internal music representation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Building complicated functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Displaying music expressions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Music properties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Doubling a note with slurs (example)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Adding articulation to notes (example)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Markup programmer interface"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Markup construction in Scheme"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "How markups work internally"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "New markup command definition"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Contexts for programmers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Context evaluation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Running a function on all layout objects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Scheme procedures as properties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @chapter in ../../../Documentation/user/running.itely
 msgid "Running LilyPond"
 msgstr "Lancer LilyPond"
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Invoking lilypond"
 msgstr ""
 
+#. @subsection in ../../../Documentation/user/running.itely
 msgid "Command line options"
 msgstr ""
 
+#. @subsection in ../../../Documentation/user/running.itely
 msgid "Environment variables"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Notes for the MacOS X app"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr ""
 
+#. @section in ../../../Documentation/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Reporting bugs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Error messages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Editor support"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Point and click"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.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 ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating LaTeX and music"
 msgstr ""
 
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating La@TeX{} and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating Texinfo and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating HTML and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating DocBook and music"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr ""
 
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Many quotes of a large score"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/converters.itely
+#. @chapter in ../../../Documentation/user/converters.itely
 msgid "Converting from other formats"
 msgstr "Convertir à partir d'autres formats"
 
+#. @node in ../../../Documentation/user/converters.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"
 msgstr ""
 
+#. @node in ../../../Documentation/user/literature.itely
+#. @appendix in ../../../Documentation/user/literature.itely
 msgid "Literature list"
 msgstr "Bibliographie"
 
+#. @node in ../../../Documentation/user/scheme-tutorial.itely
+#. @appendix in ../../../Documentation/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr "Tutoriel Scheme"
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendix in ../../../Documentation/user/notation-appendices.itely
 msgid "Notation manual tables"
 msgstr "Tables du manuel de notation"
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "Chord name chart"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "MIDI instruments"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "List of colors"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Normal colors"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "X color names"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Color Names without a numerical suffix:"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Color names with a numerical suffix"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Grey Scale"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "The Feta font"
 msgstr ""
 
-msgid "Example templates"
-msgstr "Modèles-exemples"
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendix in ../../../Documentation/user/templates.itely
+#, fuzzy
+msgid "Templates"
+msgstr "Nolets"
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Single staff"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes only"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes and lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes and chords"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Piano templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Solo piano"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "String quartet"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "String quartet parts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Vocal ensembles"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB vocal score"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Ancient notation templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Jazz combo"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Lilypond-book templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "LaTeX"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Texinfo"
 msgstr ""
 
+#. @node in ../../../Documentation/user/cheatsheet.itely
+#. @appendix in ../../../Documentation/user/cheatsheet.itely
 msgid "Cheat sheet"
 msgstr "Feuille aide-mémoire"
 
+#. @node in ../../../Documentation/user/fdl.itexi
+#. @appendix in ../../../Documentation/user/fdl.itexi
 msgid "GNU Free Documentation License"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/fdl.itexi
 msgid "ADDENDUM: How to use this License for your documents"
 msgstr ""
 
index 158f29535063e769e274e7a4eea50783276eb1c4..d97c26b0f95d2f5f1851d710d789ac2b972b5cd9 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-07 16:10+0100\n"
+"POT-Creation-Date: 2007-02-05 14:23+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"
@@ -16,1194 +16,2147 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#. @node in ../../../Documentation/user/lilypond.tely
 msgid "Top"
 msgstr ""
 
+#. @top in ../../../Documentation/user/lilypond.tely
 msgid "GNU LilyPond --- The music typesetter"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond.tely
+#. @appendix in ../../../Documentation/user/lilypond.tely
 msgid "LilyPond command index"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond.tely
+#. @appendix in ../../../Documentation/user/lilypond.tely
 msgid "LilyPond index"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Bugs"
 msgstr ""
 
+#. @subheading in ../../../Documentation/user/macros.itexi
+msgid "More information"
+msgstr ""
+
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "See also"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Predefined commands"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/macros.itexi
 msgid "Commonly tweaked properties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/preface.itely
+#. @unnumbered in ../../../Documentation/user/preface.itely
 msgid "Preface"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @chapter in ../../../Documentation/user/introduction.itely
 msgid "Introduction"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Engraving"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Automated engraving"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "What symbols to engrave?"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Music representation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "Example applications"
 msgstr ""
 
+#. @node in ../../../Documentation/user/introduction.itely
+#. @section in ../../../Documentation/user/introduction.itely
 msgid "About this manual"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @chapter in ../../../Documentation/user/tutorial.itely
 msgid "Tutorial"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
 msgid "First steps"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Compiling a file"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
 msgid "Entering music and viewing output"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "MacOS X"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "Windows"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/tutorial.itely
 msgid "Unix"
 msgstr ""
 
-msgid "Second steps"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Simple notation"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
+msgid "Pitches"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "interval"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "fourth"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "scale"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "middle C"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Durations (rhythms)"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "duration"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "whole note"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "half note"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "quarter note"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "dotted notes"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Rests"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "rest"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Time signature"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "time signature"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Clef"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "clef"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "All together"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Working on text files"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "How to read the tutorial"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Single staff notation"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Relative note names"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Accidentals and key signatures"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Accidentals"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "sharp"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "flat"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "double sharp"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "double flat"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Key signatures"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Warning: key signatures and pitches"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Ties and slurs"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Ties"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "tie"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Slurs"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "slur"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Phrasing slurs"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Warnings: slurs vs. ties"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Articulation and dynamics"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Articulations"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "articulations"
 msgstr ""
 
-msgid "More about pitches"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Fingerings"
 msgstr ""
 
-msgid "Entering ties"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Dynamics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Automatic and manual beams"
 msgstr ""
 
-msgid "Octave entry"
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "beam"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Advanced rhythmic commands"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Partial measure"
+msgstr ""
+
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "anacrusis"
 msgstr ""
 
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Tuplets"
+msgstr ""
+
+#. @subheading in ../../../Documentation/user/tutorial.itely
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Grace notes"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Multiple notes at once"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Music expressions explained"
 msgstr ""
 
-msgid "More staves"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Simultaneous music expressions: multiple staves"
 msgstr ""
 
-msgid "Adding articulation marks to notes"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Simultaneous music expressions: single staff"
 msgstr ""
 
-msgid "Combining notes into chords"
+#. @subheading in ../../../Documentation/user/tutorial.itely
+msgid "Analogy: mathematical expressions"
 msgstr ""
 
-msgid "Advanced rhythmic commands"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Multiple staves"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Piano staves"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Single staff polyphony"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Combining notes into chords"
 msgstr ""
 
-msgid "Commenting input files"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Songs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "Printing lyrics"
 msgstr ""
 
+#. @rglos in ../../../Documentation/user/tutorial.itely
+msgid "melisma"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "A lead sheet"
 msgstr ""
 
-msgid "Adding titles"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @section in ../../../Documentation/user/tutorial.itely
+msgid "Final touches"
 msgstr ""
 
-msgid "Single staff polyphony"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Version number"
 msgstr ""
 
-msgid "Piano staves"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Adding titles"
 msgstr ""
 
-msgid "Organizing larger pieces"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Absolute note names"
 msgstr ""
 
-msgid "An orchestral part"
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "Organizing pieces with identifiers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
 msgid "After the tutorial"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tutorial.itely
+#. @subsection in ../../../Documentation/user/tutorial.itely
+msgid "How to read the manual"
+msgstr ""
+
+#. @node in ../../../Documentation/user/putting.itely
+#. @chapter in ../../../Documentation/user/putting.itely
 msgid "Putting it all together"
 msgstr ""
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "Extending the templates"
 msgstr ""
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "How LilyPond files work"
 msgstr ""
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
 msgid "Score is a single musical expression"
 msgstr ""
 
+#. @node in ../../../Documentation/user/putting.itely
+#. @section in ../../../Documentation/user/putting.itely
+msgid "An orchestral part"
+msgstr ""
+
+#. @node in ../../../Documentation/user/working.itely
+#. @chapter in ../../../Documentation/user/working.itely
 msgid "Working on LilyPond projects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Suggestions for writing LilyPond files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "General suggestions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "Typesetting existing music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @subsection in ../../../Documentation/user/working.itely
 msgid "Large projects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Saving typing with identifiers and functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Style sheets"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Updating old files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
 msgid "Troubleshooting (taking it all apart)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/working.itely
+#. @section in ../../../Documentation/user/working.itely
+msgid "Minimal examples"
+msgstr ""
+
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @chapter in ../../../Documentation/user/tweaks.itely
 msgid "Tweaking output"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Moving objects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Fixing overlapping notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Common tweaks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Default files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Fitting music onto fewer pages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Advanced tweaks with Scheme"
 msgstr ""
 
+#. @node in ../../../Documentation/user/tweaks.itely
+#. @section in ../../../Documentation/user/tweaks.itely
 msgid "Avoiding tweaks with slower processing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @chapter in ../../../Documentation/user/basic-notation.itely
 msgid "Basic notation"
 msgstr ""
 
-msgid "Pitches"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Normal pitches"
 msgstr ""
 
-msgid "Accidentals"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Cautionary accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Micro tones"
 msgstr ""
 
-msgid "Notes names in other languages"
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
+msgid "Note names in other languages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Relative octaves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Octave check"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Transpose"
 msgstr ""
 
-msgid "Rests"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Skips"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Rhythms"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Durations"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Augmentation dots"
 msgstr ""
 
-msgid "Tuplets"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Scaling durations"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Bar check"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Barnumber check"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Automatic note splitting"
 msgstr ""
 
-msgid "Multiple notes at once"
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
+msgid "Polyphony"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Chords"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Stems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Basic polyphony"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Explicitly instantiating voices"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Collision Resolution"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Staff notation"
 msgstr ""
 
-msgid "Clef"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Key signature"
 msgstr ""
 
-msgid "Time signature"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Partial measures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Bar lines"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Unmetered music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "System start delimiters"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Staff symbol"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Writing music in parallel"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Connecting notes"
 msgstr ""
 
-msgid "Ties"
-msgstr ""
-
-msgid "Slurs"
-msgstr ""
-
-msgid "Phrasing slurs"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Laissez vibrer ties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Automatic beams"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Manual beams"
 msgstr ""
 
-msgid "Grace notes"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Expressive marks"
 msgstr ""
 
-msgid "Articulations"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Fingering instructions"
 msgstr ""
 
-msgid "Dynamics"
-msgstr ""
-
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Breath marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Trills"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Glissando"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Arpeggio"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Falls and doits"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @section in ../../../Documentation/user/basic-notation.itely
 msgid "Repeats"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeat types"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeat syntax"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Repeats and MIDI"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Manual repeat commands"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Tremolo repeats"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Tremolo subdivisions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/basic-notation.itely
+#. @subsection in ../../../Documentation/user/basic-notation.itely
 msgid "Measure repeats"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @chapter in ../../../Documentation/user/instrument-notation.itely
 msgid "Instrument-specific notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Piano music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Automatic staff changes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Manual staff switches"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Pedals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Staff switch lines"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Cross staff stems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Chord names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Introducing chord names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Chords mode"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Printing chord names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Vocal music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Setting simple songs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Entering lyrics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Hyphens and extenders"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "The Lyrics context"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Melismata"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Another way of entering lyrics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Flexibility in placement"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Lyrics to multiple notes of a melisma"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Divisi lyrics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Switching the melody associated with a lyrics line"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Specifying melismata within the lyrics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Lyrics independent of notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Spacing lyrics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "More about stanzas"
 msgstr ""
 
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Adding stanza numbers"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Adding dynamics marks"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Adding singer names"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Printing stanzas at the end"
+msgstr ""
+
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
+msgid "Printing stanzas at the end in multiple columns"
+msgstr ""
+
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ambitus"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Other vocal issues"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Rhythmic music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Showing melody rhythms"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Entering percussion"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Percussion staves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ghost notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Guitar"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "String number indications"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Tablatures basic"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Non-guitar tablatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Banjo tablatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Fret diagrams"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Right hand fingerings"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Other guitar issues"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe definitions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Bagpipe example"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient note heads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient rests"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient clefs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient flags"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient time signatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ancient articulations"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Custodes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Divisiones"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "White mensural ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsubsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Gregorian square neumes ligatures"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Gregorian Chant contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Mensural contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Musica ficta accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Figured bass"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @section in ../../../Documentation/user/instrument-notation.itely
 msgid "Other instrument specific notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/instrument-notation.itely
+#. @subsection in ../../../Documentation/user/instrument-notation.itely
 msgid "Artificial harmonics (strings)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @chapter in ../../../Documentation/user/advanced-notation.itely
 msgid "Advanced notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Text"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text scripts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text spanners"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Text markup"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Nested scores"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Overview of text markup commands"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Font selection"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "New dynamic marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Preparing parts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Multi measure rests"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Metronome marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Rehearsal marks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Bar numbers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Instrument names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Instrument transpositions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Ottava brackets"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Different editions from one source"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Orchestral music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Automatic part combining"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Hiding staves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Quoting other voices"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Formatting cue notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Aligning to cadenzas"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Contemporary notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Polymetric notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Time administration"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Proportional notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Clusters"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Special noteheads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Feathered beams"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Improvisation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Selecting notation font size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @section in ../../../Documentation/user/advanced-notation.itely
 msgid "Educational use"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Balloon help"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Blank music sheet"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Hidden notes"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Shape note heads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Easy Notation note heads"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Analysis brackets"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Coloring objects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Parentheses"
 msgstr ""
 
+#. @node in ../../../Documentation/user/advanced-notation.itely
+#. @subsection in ../../../Documentation/user/advanced-notation.itely
 msgid "Grid lines"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @chapter in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing defaults"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "Automatic notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Automatic accidentals"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Setting automatic beam behavior"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "Interpretation contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Contexts explained"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Creating contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing context properties on the fly"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Modifying context plug-ins"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Layout tunings within contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Changing context default settings"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Defining new contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Aligning contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @section in ../../../Documentation/user/changing-defaults.itely
 msgid "The \\override command"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Constructing a tweak"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Navigating the program reference"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Layout interfaces"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Determining the grob property"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Objects connected to the input"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "\\set vs. \\override"
 msgstr ""
 
+#. @node in ../../../Documentation/user/changing-defaults.itely
+#. @subsection in ../../../Documentation/user/changing-defaults.itely
 msgid "Difficult tweaks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @chapter in ../../../Documentation/user/non-music.itely
 msgid "Non-musical notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Input files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "File structure (introduction)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Multiple scores in a book"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Extracting fragments of notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "File structure"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "A single music expression"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Including LilyPond files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Text encoding"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Titles and headers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Creating titles"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Custom titles"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "MIDI output"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "Creating MIDI files"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "MIDI block"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @subsection in ../../../Documentation/user/non-music.itely
 msgid "MIDI instrument names"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Displaying LilyPond notation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/non-music.itely
+#. @section in ../../../Documentation/user/non-music.itely
 msgid "Skipping corrected music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @chapter in ../../../Documentation/user/spacing.itely
 msgid "Spacing issues"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Paper and pages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Paper size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Page formatting"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Music layout"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Setting the staff size"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Score layout"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing inside a system"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing of piano staves"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Vertical spacing between systems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Controlling spacing of individual systems"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Two-pass vertical spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
 msgid "Horizontal spacing"
 msgstr ""
 
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Horizontal Spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Horizontal spacing overview"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "New spacing area"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Changing horizontal spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Line length"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Breaks"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Line breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Page breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Optimal page breaking"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @subsection in ../../../Documentation/user/spacing.itely
 msgid "Optimal page turning"
 msgstr ""
 
+#. @node in ../../../Documentation/user/spacing.itely
+#. @section in ../../../Documentation/user/spacing.itely
 msgid "Displaying spacing"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @chapter in ../../../Documentation/user/programming-interface.itely
 msgid "Interfaces for programmers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Music functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Overview of music functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Simple substitution functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Paired substitution functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Mathematics in functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Void functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Functions without arguments"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Programmer interfaces"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Input variables and Scheme"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Internal music representation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Building complicated functions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Displaying music expressions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Music properties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Doubling a note with slurs (example)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Adding articulation to notes (example)"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Markup programmer interface"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Markup construction in Scheme"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "How markups work internally"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "New markup command definition"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Contexts for programmers"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Context evaluation"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @subsection in ../../../Documentation/user/programming-interface.itely
 msgid "Running a function on all layout objects"
 msgstr ""
 
+#. @node in ../../../Documentation/user/programming-interface.itely
+#. @section in ../../../Documentation/user/programming-interface.itely
 msgid "Scheme procedures as properties"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @chapter in ../../../Documentation/user/running.itely
 msgid "Running LilyPond"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Invoking lilypond"
 msgstr ""
 
+#. @subsection in ../../../Documentation/user/running.itely
 msgid "Command line options"
 msgstr ""
 
+#. @subsection in ../../../Documentation/user/running.itely
 msgid "Environment variables"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Notes for the MacOS X app"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
 msgid "Updating files with convert-ly"
 msgstr ""
 
+#. @section in ../../../Documentation/user/running.itely
 msgid "Updating with @command{convert-ly}"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Reporting bugs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Error messages"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Editor support"
 msgstr ""
 
+#. @node in ../../../Documentation/user/running.itely
+#. @section in ../../../Documentation/user/running.itely
 msgid "Point and click"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.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 ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating LaTeX and music"
 msgstr ""
 
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating La@TeX{} and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating Texinfo and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating HTML and music"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Integrating DocBook and music"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Common conventions"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Including a LilyPond file"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Including LilyPond code"
 msgstr ""
 
+#. @unnumberedsubsec in ../../../Documentation/user/lilypond-book.itely
 msgid "Processing the DocBook document"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Music fragment options"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
 msgid "Invoking lilypond-book"
 msgstr ""
 
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Invoking @command{lilypond-book}"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Filename extensions"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Many quotes of a large score"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Inserting LilyPond output into OpenOffice.org"
 msgstr ""
 
+#. @node in ../../../Documentation/user/lilypond-book.itely
+#. @section in ../../../Documentation/user/lilypond-book.itely
 msgid "Inserting LilyPond output into other programs"
 msgstr ""
 
+#. @node in ../../../Documentation/user/converters.itely
+#. @chapter in ../../../Documentation/user/converters.itely
 msgid "Converting from other formats"
 msgstr ""
 
+#. @node in ../../../Documentation/user/converters.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"
 msgstr ""
 
+#. @node in ../../../Documentation/user/literature.itely
+#. @appendix in ../../../Documentation/user/literature.itely
 msgid "Literature list"
 msgstr ""
 
+#. @node in ../../../Documentation/user/scheme-tutorial.itely
+#. @appendix in ../../../Documentation/user/scheme-tutorial.itely
 msgid "Scheme tutorial"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendix in ../../../Documentation/user/notation-appendices.itely
 msgid "Notation manual tables"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "Chord name chart"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "MIDI instruments"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "List of colors"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Normal colors"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "X color names"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Color Names without a numerical suffix:"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Color names with a numerical suffix"
 msgstr ""
 
+#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
 msgid "Grey Scale"
 msgstr ""
 
+#. @node in ../../../Documentation/user/notation-appendices.itely
+#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
 msgid "The Feta font"
 msgstr ""
 
-msgid "Example templates"
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendix in ../../../Documentation/user/templates.itely
+msgid "Templates"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Single staff"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes only"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes and lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes and chords"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Notes, lyrics, and chords."
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Piano templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Solo piano"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano and melody with lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano centered lyrics"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Piano centered dynamics"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "String quartet"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "String quartet parts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Vocal ensembles"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB vocal score"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB vocal score and automatic piano reduction"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "SATB with aligned contexts"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Ancient notation templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Transcription of mensural music"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Gregorian transcription template"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Jazz combo"
 msgstr ""
 
+#. @node in ../../../Documentation/user/templates.itely
+#. @appendixsec in ../../../Documentation/user/templates.itely
 msgid "Lilypond-book templates"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "LaTeX"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/templates.itely
 msgid "Texinfo"
 msgstr ""
 
+#. @node in ../../../Documentation/user/cheatsheet.itely
+#. @appendix in ../../../Documentation/user/cheatsheet.itely
 msgid "Cheat sheet"
 msgstr ""
 
+#. @node in ../../../Documentation/user/fdl.itexi
+#. @appendix in ../../../Documentation/user/fdl.itexi
 msgid "GNU Free Documentation License"
 msgstr ""
 
+#. @appendixsubsec in ../../../Documentation/user/fdl.itexi
 msgid "ADDENDUM: How to use this License for your documents"
 msgstr ""
 
index 9186bf5bb0b78d55ba445562522fe5d50197250f..fa52fbe8b63af43a3e791af6d1b7db69ac7e0763 100644 (file)
@@ -15,8 +15,8 @@ OUT_PNG_IMAGES=$(OUT_PDF_IMAGES:%.pdf=%.png)
 
 OUT_TEXI_FILES=$(ITEXI_FILES:%.itexi=$(outdir)/%.texi)\
  $(ITELY_FILES:%.itely=$(outdir)/%.texi)
-HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%.html)\
- $(outdir)/lilypond-internals.html
+HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%-big-page.html)\
+ $(outdir)/lilypond-internals-big-page.html
 
 # todo: add latex.
 PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
@@ -155,8 +155,8 @@ $(outdir)/lilypond/index.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES) $(OUT_E
 #
 # One big page manual
 #
-$(outdir)/lilypond.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+$(outdir)/lilypond-big-page.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES)
+       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
 
 #
 # The split internals reference
@@ -168,8 +168,8 @@ $(outdir)/lilypond-internals/index.html: $(outdir)/lilypond-internals.texi
 #
 # One big page internals reference
 #
-$(outdir)/lilypond-internals.html: $(outdir)/lilypond-internals.texi
-       $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+$(outdir)/lilypond-internals-big-page.html: $(outdir)/lilypond-internals.texi
+       $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
 
 #
 # The split glossary
index f9d950cf946e78709759dc5c6bd660a78b8ae3de..c7b50dca8ef4d20fbbe75b2d90cbab7a5d592163 100644 (file)
@@ -235,11 +235,8 @@ Program reference: @internalsref{TextSpanner},
 @internalsref{Glissando}, @internalsref{VoiceFollower},
 @internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
 
-Examples:
-@inputfileref{input/@/regression,dynamics@/-text@/-spanner@/-padding.ly}.
-@inputfileref{input/@/regression,glissando@/-broken@/.ly}.
-@inputfileref{input/@/regression,line@/-arrows@/.ly}.
-@inputfileref{input/@/regression,line@/-style@/.ly}.
+Examples: @lsr{expressive,line-styles.ly}
+@c  FIXME: add {contemporary/line-arrows.ly} when LSR is updated.  -gp
 
 
 @node Text spanners
@@ -693,7 +690,7 @@ example,
 
 @seealso
 
-Examples: @inputfileref{input/@/regression,font@/-family@/-override.ly}.
+Examples: @lsr{text,font@/-family@/-override.ly}.
 
 
 @node New dynamic marks
@@ -1051,9 +1048,7 @@ definition of @code{format-mark-numbers} and
 @code{format-mark-letters}.  They can be used as inspiration for other
 formatting functions.
 
-Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
-
-@inputfileref{input/@/regression,rehearsal@/-mark@/-number@/.ly}.
+Examples: @lsr{preparing,rehearsal-mark-numbers.ly}
 
 
 @node Bar numbers
@@ -1323,9 +1318,6 @@ and -2 (for 15ma bassa) as arguments.  Internally the function sets the properti
 
 Program reference: @internalsref{OttavaBracket}.
 
-Examples: @inputfileref{input/@/regression,ottava@/.ly},
-@inputfileref{input/@/regression,ottava@/-broken@/.ly}.
-
 
 @refbugs
 
@@ -1399,7 +1391,7 @@ a piece of music with multiple @code{\tag} entries,
 
 @seealso
 
-Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
+Examples: @lsr{preparing,tag@/-filter@/.ly}
 
 
 @refbugs
@@ -1666,8 +1658,10 @@ Quoting nested triplets may result in poor notation.
 
 In this manual: @ref{Instrument transpositions}.
 
-Examples: @inputfileref{input/@/regression,quote@/.ly}
-@inputfileref{input/@/regression,quote@/-transposition@/.ly}
+Examples:
+@c  FIXME: Add when LSR is updated.  -gp
+@c @i nputfileref{input/@/regression,quote@/.ly}
+@c @i nputfileref{input/@/regression,quote@/-transposition@/.ly}
 
 Program reference: @internalsref{QuoteMusic}.
 
@@ -2088,9 +2082,9 @@ is removed by setting the @code{strict-note-spacing} property to
 
 @seealso
 
-@inputfileref{input/@/regression,spacing-proportional/.ly}
-@inputfileref{input/@/regression,spacing-strict-notespacing/.ly}
-@inputfileref{input/@/regression,spacing-strict-spacing-grace/.ly}
+Examples: @lsr{spacing,proportional@/-spacing@/.ly}, 
+@lsr{spacing,proportional@/-strict@/-grace@/-notes@/.ly}, and
+@lsr{spacing,proportional@/-strict@/-notespacing@/.ly}
 
 An example of strict proportional notation is in the
 example file @file{input/proportional.ly}.
@@ -2154,7 +2148,7 @@ e d <c f\harmonic> <d a'\harmonic>
 
 @noindent
 To see all notehead styles, please see
-@inputfileref{input/@/regression,note@/-head@/-style@/.ly}.
+@ref{Note head styles}.
 
 
 @seealso
@@ -2469,8 +2463,6 @@ to @internalsref{Staff} context.  A bracket is started with
 
 Program reference: @internalsref{HorizontalBracket}.
 
-Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
-
 
 @node Coloring objects
 @subsection Coloring objects
index 401855a20cde3182602c13a6aeece0340d16c1c1..4c19a55f27ae8a90d05001dfdfd0a4b2f5d352c6 100644 (file)
@@ -2660,7 +2660,7 @@ very close to note heads in monophonic music,
 
 Program reference: @internalsref{Fingering}.
 
-Examples: @inputfileref{input/@/regression,finger@/-chords@/.ly}.
+Examples: @lsr{expressive,fingering-chords.ly}
 
 
 @node Dynamics
@@ -2855,6 +2855,8 @@ d4
 
 Program reference: @internalsref{BreathingSign}.
 
+Examples: @lsr{expressive,breathing-sign.ly}
+
 
 @node Trills
 @subsection Trills
@@ -2919,7 +2921,9 @@ c2\glissando c,
 
 Program reference: @internalsref{Glissando}.
 
-Example files: @file{input/@/regression/@/glissando@/.ly}.
+Example files:
+@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
+
 
 
 @refbugs
index f17aad795354deecdd2287ea314c1602964ca4e6..d811a0c589e268ebb05d5ad692e32c36f5d70aef 100644 (file)
@@ -556,7 +556,7 @@ adds the new exceptions to the default ones, which are defined in
 @file{ly/@/chord@/-modifier@/-init@/.ly}.
 
 For an example of tuning this property, see also
-@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly}.
+@lsr{chords/,chord@/-name@/-exceptions@/.ly}
 @cindex exceptions, chord names.
 
 
@@ -565,7 +565,7 @@ For an example of tuning this property, see also
 This property contains the markup object used for the 7th step, when
 it is major.  Predefined options are @code{whiteTriangleMarkup} and
 @code{blackTriangleMarkup}.  See
-@inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
+@lsr{chords,chord@/-name@/-major7@/.ly} for an example.
 
 @funindex chordNameSeparator
 @item chordNameSeparator
@@ -638,8 +638,9 @@ chart}.  Turning on these styles is described in the input file
 
 @seealso
 
-Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
-@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
+Examples:
+@lsr{chords/,chord@/-name@/-exceptions@/.ly},
+@lsr{chords,chord@/-name@/-major7@/.ly}, and
 @inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
 
 
@@ -1041,8 +1042,7 @@ A complete example of a SATB score setup is in section
 
 Program reference: @internalsref{Melisma_translator}.
 
-
-@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
+@lsr{vocal,lyric@/-combine.ly}.
 
 @refbugs
 
@@ -1656,7 +1656,8 @@ Program reference: @internalsref{Ambitus},
 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
 @internalsref{AmbitusAccidental}.
 
-Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
+Examples:
+@lsr{vocal,ambitus@/.ly}.
 
 @refbugs
 
@@ -1717,8 +1718,6 @@ staff are squashed, and the staff itself has a single line
 
 Program reference: @internalsref{RhythmicStaff}.
 
-Examples: @inputfileref{input/@/regression,rhythmic@/-staff@/.ly}.
-
 
 @node Entering percussion
 @subsection Entering percussion
@@ -2027,12 +2026,11 @@ with @code{\}@var{number},
 <c\1 e\2 g\3>
 @end lilypond
 
-See also @inputfileref{input/regression,string-number.ly}.
-
 
 @seealso
 
-Program reference: @internalsref{StringNumber}.
+Program reference: @internalsref{StringNumber},
+@lsr{guitar/,string-number.ly}.
 
 
 @node Tablatures basic
@@ -2557,8 +2555,7 @@ engravers work.
 
 @seealso
 
-Examples: @inputfileref{input/@/regression,note@/-head@/-style@/.ly} gives an
-overview over all available note head styles.
+@ref{Note head styles} gives an overview over all available note head styles.
 
 
 @node Ancient accidentals
@@ -3167,7 +3164,8 @@ supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
 
 Program reference: @internalsref{Custos}.
 
-Examples: @inputfileref{input/@/regression,custos@/.ly}.
+Examples:
+@lsr{ancient,custodes@/.ly}.
 
 
 @node Divisiones
@@ -4249,10 +4247,6 @@ underlies the construction of the ligatures in the above table is
 accordingly extrapolated.  This way, infinitely many different
 ligatures can be created.
 
-@c TODO: create a regression or tips & tricks example document with
-@c even more Gregorian ligatures, and add a link to this document
-@c here.
-
 Augmentum dots, also called @emph{morae}, are added with the music
 function @code{\augmentum}.  Note that @code{\augmentum} is
 implemented as a unary music function rather than as head prefix.  It
index 68fdfae80f3e72a14d52c5a68fe9fe84d01e7ea7..11b2b59bf13a56d3e21f78b105390e47fcf69cdc 100644 (file)
 @c @inforef{\NAME\,,lilypond-internals}@c
 @c using @ref without punctuation is OK without for formats other than info
 
-@c annoying parentheses stripped by add-html-footer.py
+@ifset bigpage
+
 @macro internalsref{NAME}
 @vindex \NAME\
-@ref{\NAME\,,,lilypond-internals}
+@ref{\NAME\,,,lilypond-internals-big-page}
 @end macro
 
-@c usage: @inputfileref{input@/regression,FILE@/-NAME.ly}
-@macro inputfileref{DIR,NAME}
-@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@macro rglos{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,music-glossary-big-page}
+@end macro
+
+@end ifset
+
+
+@ifclear bigpage
+
+@c annoying parentheses stripped by add-html-footer.py
+@macro internalsref{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-internals}
 @end macro
 
 @c annoying parentheses stripped by add-html-footer.py
 @ref{\NAME\,,,music-glossary}
 @end macro
 
+@end ifclear
+
+
+@c usage: @inputfileref{input@/regression,FILE@/-NAME.ly}
+@macro inputfileref{DIR,NAME}
+@uref{source/\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+@end macro
+
 @c to get decent quotes in `foo'
 @macro q{TEXT}
 @html
index abef49234d2961dd6ebec0f36f340f3aed86e9a9..abdfdda5f6b4136f31e96fe016fe89e234deadef 100644 (file)
@@ -77,8 +77,8 @@ quite frustrating to try to remember which version of LilyPond you were
 using a few years ago.  @code{convert-ly} requires you to declare
 which version of LilyPond you used.
 
-@item @strong{Include checks}: @ref{Bar check} and @ref{Octave check}.  If
-you
+@item @strong{Include checks}: @ref{Bar check}, @ref{Octave check} and
+@ref{Barnumber check}.  If you
 include checks every so often, then if you make a mistake, you can pinpoint
 it quicker.  How often is @q{every so often}?  It depends on the complexity
 of the music.  For very simple music, perhaps just once or twice.  For
@@ -301,7 +301,7 @@ simply want to separate your tweaks from the actual music?  This
 is quite easy to do.
 
 Let's look at an example.  Don't worry if you don't understand
-the parts with all the #().  This is explained in
+the parts with all the @code{#()}.  This is explained in
 @ref{Advanced tweaks with Scheme}.
 
 @lilypond[quote,verbatim,ragged-right]
@@ -329,7 +329,7 @@ definitions.  They produce the output we desire, but we might want
 to use them in another piece.  We could simply copy-and-paste them
 at the top of every file, but that's an annoyance.  It also leaves
 those definitions in our music files, and I personally find all
-the #() somewhat ugly.  Let's hide them in another file:
+the @code{#()} somewhat ugly.  Let's hide them in another file:
 
 @example
 %%% save this to a file called "definitions.ly"
@@ -558,7 +558,7 @@ LilyPond comes with a file that makes this updating easier:
 @code{convert-ly}.  For details about how to run this program, see
 @ref{Updating files with convert-ly}.
 
-Unforunately, @code{convert-ly} cannot handle all input changes.  It
+Unfortunately, @code{convert-ly} cannot handle all input changes.  It
 takes care of simple search-and-replace changes (such as @code{raggedright}
 becoming @code{ragged-right}), but some changes are too
 complicated.  The syntax changes that @code{convert-ly} cannot handle
@@ -647,7 +647,7 @@ To construct an example which is as small as possible, the rule is
 quite simple: remove anything which is not necessary.  When trying to
 remove unnecessary parts of a file, it is a very good idea to comment
 out lines instead of deleting them.  That way, if you discover that you
-actually @emph{do} need some lines, you can un-comment them, instead of
+actually @emph{do} need some lines, you can uncomment them, instead of
 typing them in from scratch.
 
 There are two exceptions to the @qq{as small as possible} rule:
@@ -663,7 +663,7 @@ The whole point of a minimal example is to make it easy to read:
 @itemize
 @item Avoid using complicated notes, keys, or time signatures, unless you
 wish to demonstrate something is about the behavior of those items.
-@item Do not use \override commands unless that is the point of the
+@item Do not use @code{\override} commands unless that is the point of the
 example.
 @end itemize
 
diff --git a/THANKS b/THANKS
index de0f1900815ca5224f56ccb515bfb287000b474b..1893e0f9882229ed58efdf2efeb2046fc76ff9e9 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -42,6 +42,7 @@ Georg Dummer
 Jay Anderson
 James Kilfinger
 Jean-Marie Mouchel
+Jean-Yves Baudais
 Kazuhiro Suzuki
 Laura Conrad
 Luc Wehli
@@ -80,6 +81,7 @@ DEVELOPMENT TEAM
 Han-Wen Nienhuys  - Core development
 Jan Nieuwenhuizen - Core development
 Graham Percival   - Documentation Editor and Bug Meister
+John Mandereau    - Translation Meister
 Mats Bengtsson    - Support Guru 
 
 
@@ -102,6 +104,7 @@ Jean-Charles Malahieude
 John Mandereau
 Ludovic Sardain
 Nicolas Grandclaude
+Valentin Villenave
 
 
 SPONSORS
index a7bc7e11d97e6a7c732a06f7d5887bb67b659feb..3e35952c426cad818cb48af6c50a1f8585c24f3d 100644 (file)
@@ -9,10 +9,26 @@ import time
 
 import langdefs
 
-default_header = r"""
+# This is to try to make the docball not too big with almost duplicate files
+# see process_links()
+non_copied_pages = ['Documentation/user/out-www/lilypond-big-page',
+                    'Documentation/user/out-www/lilypond-internals-big-page',
+                    'Documentation/user/out-www/music-glossary-big-page',
+                    'out-www/examples',
+                    'Documentation/topdocs/out-www/NEWS',
+                    'Documentation/topdocs/out-www/INSTALL',
+                    'Documentation/bibliography/out-www/index',
+                    'Documentation/bibliography/out-www/engraving',
+                    'Documentation/bibliography/out-www/colorado',
+                    'Documentation/bibliography/out-www/computer-notation'
+                    'Documentation/out-www/THANKS',
+                    'Documentation/out-www/DEDICATION',
+                    'Documentation/topdocs/out-www/AUTHORS']
+
+header = r"""
 """
 
-default_footer = r'''
+footer = r'''
 <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;">
 <p>
 <font size="-1">
@@ -24,6 +40,8 @@ Report errors to <a href="%(mail_address_url)s">%(mail_address)s</a>.</font></ad
 </div>
 '''
 
+mail_address = 'http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs'
+
 header_tag = '<!-- header_tag -->'
 footer_tag = '<!-- footer_tag -->'
 
@@ -44,10 +62,11 @@ LANGUAGES_TEMPLATE = '''\
 
 
 html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
+pages_dict = {}
 
 def build_pages_dict (filelist):
     """Build dictionnary of available translations of each page"""
-    pages_dict = {}
+    global pages_dict
     for f in filelist:
         m = html_re.match (f)
         if m:
@@ -60,19 +79,9 @@ def build_pages_dict (filelist):
                 pages_dict[g[0]] = [e]
             else:
                 pages_dict[g[0]].append (e)
-    return pages_dict
-
-
-def do_file (prefix, lang_ext, target, header, footer, pages_dict, out_root, name_filter,
-             package_name, package_version, branch_str, mail_address_url, mail_address):
-    file_name = langdefs.lang_file_name (prefix, lang_ext, '.html')
-    in_f = open (file_name)
-    s = in_f.read()
-    in_f.close()
-    
-    s = re.sub ('%', '%%', s)
 
-    ### add header
+def add_header (s):
+    """Add header (<BODY> and doctype)"""
     if re.search (header_tag, s) == None:
         body = '<BODY BGCOLOR=WHITE TEXT=BLACK>'
         s = re.sub ('(?i)<body>', body, s)
@@ -88,10 +97,13 @@ def do_file (prefix, lang_ext, target, header, footer, pages_dict, out_root, nam
         if re.search ('(?i)<!DOCTYPE', s) == None:
             doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'
             s = doctype + s
+        return s
 
-    # remove info's annoying's indication of referencing external document
-    s = re.sub (' \((lilypond|lilypond-internals|music-glossary)\)</a>',                                  '</a>', s)
+def info_external_ref_remove (s):
+    """Remove info's annoying's indication of referencing external document"""
+    return re.sub (' \((lilypond|lilypond-internals|music-glossary)\)</a>', '</a>', s)
 
+def add_title (s):
     # urg
     # maybe find first node?
     fallback_web_title = '-- --'
@@ -99,108 +111,103 @@ def do_file (prefix, lang_ext, target, header, footer, pages_dict, out_root, nam
     if m:
         fallback_web_title = m.group (1)
     s = re.sub ('@WEB-TITLE@', fallback_web_title, 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)
+
+def add_footer (s):
+    """add footer
 
-    ### 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
+    else:
+        custom_footer = footer
+    if re.search ('(?i)</body', s):
+        s = re.sub ('(?i)</body>', footer_tag + custom_footer + '\n' + '</BODY>', s, 1)
+    elif re.search ('(?i)</html', s):                
+        s = re.sub ('(?i)</html>', footer_tag + custom_footer + '\n' + '</HTML>', s, 1)
+    else:
+        s += footer_tag + custom_footer + '\n'
+    return s
+
+def find_translations (prefix, lang_ext):
+    """find available translations of a page"""
+    available = []
+    missing = []
+    for l in langdefs.LANGUAGES:
+        e = l.webext
+        if lang_ext != e:
+            if e in pages_dict[prefix]:
+                available.append (l)
+            elif lang_ext == '' and l.enabled and not prefix in non_copied_pages:
+                # English version of missing translated pages will be written
+                missing.append (e)
+    return available, missing
+
+def process_links (s, prefix, lang_ext, file_name, missing, target):
     page_flavors = {}
-    if re.search (footer_tag, s) == None:
-        if re.search ('(?i)</body', s):
-            s = re.sub ('(?i)</body>', footer_tag + footer + '\n' + '</BODY>', s, 1)
-        elif re.search ('(?i)</html', s):                
-            s = re.sub ('(?i)</html>', footer_tag + footer + '\n' + '</HTML>', s, 1)
-        else:
-            s += footer_tag + footer + '\n'
-        
-        # Find available translations of this page.
-        available = []
-        missing = []
-        for l in langdefs.LANGUAGES:
-            e = l.webext
-            if lang_ext != e:
-                if e in pages_dict[prefix]:
-                    available.append (l)
-                elif lang_ext == '' and l.enabled: # English version of missing translated pages will be written
-                    missing.append (e)
-
-        if target == 'online':
-            # Strip .html, .png suffix for auto language selection (content
-            # negotiation).  The menu must keep the full extension, so do
-            # this before adding the menu.
-            # Don't strip .html suffix for documentation index because of
-            # lilypond/ vs. lilypond.html conflict
-            if prefix == 'Documentation/out-www/index':
-                page_flavors[file_name] = s
-            else:
-                page_flavors[file_name] = re.sub (
-                    '''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
-                    '\\1="\\2\\4"', s)
-        elif target == 'offline':
-            if lang_ext == '':
-                page_flavors[file_name] = s
-                for e in missing:
-                    page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = re.sub (
-                        '''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
-                        'href="\\1.' + e + '\\2\\3"', s)
-            else:
-                page_flavors[file_name] = re.sub (
+    if target == 'online':
+        # 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 (
+            '''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
+            '\\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
+        elif lang_ext == '':
+            page_flavors[file_name] = s
+            for e in missing:
+                page_flavors[langdefs.lang_file_name (prefix, e, '.html')] = re.sub (
                     '''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
-                    'href="\\1.' + lang_ext + '\\2\\3"', s)
-
-        # Add menu after stripping: must not have autoselection for language menu.
-        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
-        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)
-            else:
-                page_flavors[k] += languages
-    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
+                    'href="\\1.' + e + '\\2\\3"', s)
+        else:
+            page_flavors[file_name] = re.sub (
+                '''href=[\'"]([^/][.]*[^.:\'"]*)(.html)(#[^"\']*|)[\'"]''',
+                'href="\\1.' + lang_ext + '\\2\\3"', s)
+    return page_flavors
 
-    for k in page_flavors.keys():
-        page_flavors[k] = page_flavors[k] % vars ()
+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)
 
-        out_f = open (os.path.join (out_root, name_filter (k)), 'w')
-        out_f.write (page_flavors[k])
-        out_f.close()
+    languages = ''
+    if language_menu:
+        languages = LANGUAGES_TEMPLATE % vars ()
+
+    # put language menu before '</body>' and '</html>' tags
+    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)
+        else:
+            page_flavors[k] += languages
+    return page_flavors
 
 
 def add_html_footer (package_name = '',
                      package_version = '',
-                     header = default_header,
-                     footer = default_footer,
                      target = 'offline',
-                     mail_address = '(address unknown)',
-                     pages_dict = {},
-                     out_root = '',
                      name_filter = lambda s: s):
     """Add header, footer to a number of HTML files
 
     Arguments:
      package_name=NAME         set package_name to NAME
      package_version=VERSION   set package version to VERSION
-     header=TEXT               use TEXT as header
-     footer=TEXT               use TEXT as footer
      targets=offline|online    set page processing depending on the target
           offline is for reading HTML pages locally
           online is for hosting the HTML pages on a website with content
             negotiation
-     mail_address              set \"Report errors to\" link
-     pages_dict                a dictionnary returned by build_pages_dict()
-     out_root                  a path prefix where to write HTML pages
      name_filter               a HTML file name filter
     """
     localtime = time.strftime ('%c %Z', time.localtime (time.time ()))
@@ -215,10 +222,39 @@ def add_html_footer (package_name = '',
     if int ( versiontup[1]) %  2:
         branch_str = 'development-branch'
 
-    for page, ext_list in pages_dict.items ():
-        for e in ext_list:
-            do_file (page, e, target, header, footer, pages_dict, out_root, name_filter,
-                     package_name, package_version, branch_str, mail_address_url, mail_address)
+    for prefix, ext_list in pages_dict.items ():
+        for lang_ext in ext_list:
+            file_name = langdefs.lang_file_name (prefix, lang_ext, '.html')
+            in_f = open (file_name)
+            s = in_f.read()
+            in_f.close()
+
+            s = re.sub ('%', '%%', s)
+            s = add_header (s)
+            # seems to be no more needed
+            # s = info_external_ref_remove (s)
+
+            ### 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
+            #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())
+            for k in page_flavors.keys():
+                page_flavors[k] = page_flavors[k] % subst
+
+                out_f = open (name_filter (k), 'w')
+                out_f.write (page_flavors[k])
+                out_f.close()
         # if the page is translated, a .en.html symlink is necessary for content negotiation
         if target == 'online' and ext_list != ['']:
-            os.symlink (os.path.basename (page) + '.html', os.path.join (out_root, name_filter (page + '.en.html')))
+            os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix + '.en.html'))
index 3f401382ae23cf3c54c8e867a00fb1f270fc96e4..4583d37c5d1e731e0af0dddc6bed6556d7e9f7a7 100644 (file)
@@ -58,6 +58,9 @@ def h_gettext (m):
        return '<h' + m.group(1) + m.group(2) + '>' + \
               m.group(3) + _(m.group(4)) + '</h' + m.group(1) + '>'
 
+def rglos_gettext (m):
+       return '<a href="../music-glossary/' + m.group(1) + '">' + _(m.group(2)) + '</a>'
+
 for filename in args[3:]:
        f = open (filename, 'r')
        page = f.read ()
@@ -66,6 +69,7 @@ for filename in args[3:]:
        page = re.sub (r'<title>([^<]*?) - ([^<]*?)</title>', title_gettext, page)
        page = re.sub (r'<a ((?:rel="\w+")? ?(?:accesskey="[^"]+?" ?)?)(href="[^"]+?">)((?:<code>|)(?:[\d.]+ |))([^<]+)(</code>|)</a>(:)?', a_href_gettext, page)
        page = re.sub (r'<h(\d)( class="\w+"|)>([\d.]+ |)?([^<]+)</h\1>', h_gettext, page)
+       page = re.sub (r'<a href="../music-glossary/(.+?)">(.+?)</a>', rglos_gettext, page)
        for w in ('Next:', 'Previous:', 'Up:'):
                page = re.sub (w, _(w), page)
        f = open (os.path.join (outdir, filename), 'w')
index c88f24323b9b2a5d13e891975a2077c5ed5372da..360d6ebec11afd08db105993fff4f4cc54902963 100755 (executable)
@@ -5,7 +5,7 @@ import os.path
 import shutil
 
 # 'expressive' not available yet
-dirs = ['ancient','chords','connecting','contemporary','guitar','parts','repeats','spacing','staff','text','vocal']
+dirs = ['ancient','chords','connecting','contemporary','expressive','guitar','parts','repeats','spacing','staff','text','vocal']
 
 try:
        in_dir = sys.argv[1]
index 72a5672dcbfe7a03123d3ff5d7d7c814a5de5b2f..507d56639ae8ad1723073abbd9c184f991722943 100644 (file)
@@ -14,74 +14,49 @@ def new_link_path (link, dir, r):
             i += 1
     return '/'.join ([x for x in l if not r.match (x)])
 
-def hardlink_tree (input_roots = [],
-                   process_dirs = '.*',
-                   strip_dir_names = '',
-                   exclude_dirs = '',
-                   process_files = '.*',
-                   find_files = '',
-                   exclude_files = '',
-                   target_pattern = '',
-                   targets = ['.']):
-    """Mirror trees for different targets by hardlinking files.
+def walk_tree (tree_roots = [],
+               process_dirs = '.*',
+               exclude_dirs = '',
+               find_files = '.*',
+               exclude_files = ''):
+    """Walk directory trees and.returns (dirs, symlinks, files, extra_files) tuple.
 
     Arguments:
-     input_roots=DIRLIST      use DIRLIST as input tree roots list
+     tree_roots=DIRLIST      use DIRLIST as tree roots list
      process_dir=PATTERN      only process files in directories named PATTERN
-     strip_dir_names=PATTERN  strip directories names matching PATTERN 
-                                 (write their content to parent)
      exclude_dir=PATTERN      don't recurse into directories named PATTERN
-     process_files=PATTERN    filters files which are hardlinked
-     find_files=PATTERN       find files named PATTERN. The files list will be returned.
+     find_files=PATTERN    filters files which are hardlinked
      exclude_files=PATTERN    exclude files named PATTERN
-     target_pattern=STRING    use STRING as target root directory name pattern
-     targets=DIRLIST          mkdir each directory in DIRLIST and mirrors the tree into each
     """
-    process_files_re = re.compile (process_files)
     find_files_re = re.compile (find_files)
     exclude_dirs_re = re.compile (exclude_dirs)
     exclude_files_re = re.compile (exclude_files)
     process_dirs_re = re.compile (process_dirs)
-    strip_dir_names_re = re.compile (strip_dir_names)
-    do_strip_dir_names_re = re.compile ('/(?:' + strip_dir_names + ')')
 
-    found_files = []
+    dirs_paths = []
+    symlinks_paths = []
+    files_paths = []
 
-    if not '%s' in target_pattern:
-        target_pattern += '%s'
-    target_dirs = [target_pattern % s for s in targets]
-
-    map (os.mkdir, target_dirs)
-
-    for d in input_roots:
-        for in_dir, dirs, files in os.walk(d):
-            out_dir = strip_dir_names_re.sub ('', in_dir)
+    for d in tree_roots:
+        for current_dir, dirs, files in os.walk(d):
             i = 0
             while i < len(dirs):
                 if exclude_dirs_re.search (dirs[i]):
                     del dirs[i]
                 else:
-                    if os.path.islink (os.path.join (in_dir, dirs[i])):
-                        files.append (dirs[i])
+                    p = os.path.join (current_dir, dirs[i])
+                    if os.path.islink (p):
+                        symlinks_paths.append (p)
                     i += 1
-            if not strip_dir_names_re.match (os.path.basename (in_dir)):
-                for t in target_dirs:
-                    p = os.path.join (t, out_dir)
-                    if not os.path.isdir (p):
-                        os.mkdir (p)
-            if not process_dirs_re.search (in_dir):
+            if not process_dirs_re.search (current_dir):
                 continue
+            dirs_paths.append (current_dir)
             for f in files:
                 if exclude_files_re.match (f):
                     continue
-                in_file = os.path.join (in_dir, f)
-                if find_files_re.match (f):
-                    found_files.append (in_file)
-                if os.path.islink (in_file): # all symlinks are assumed to be relative and to point to files in the input trees
-                    link_path = new_link_path (os.path.normpath (os.readlink (in_file)), in_dir, do_strip_dir_names_re)
-                    for t in target_dirs:
-                        os.symlink (link_path, os.path.join (t, out_dir, f))
-                elif process_files_re.match (f):
-                    for t in target_dirs:
-                        os.link (in_file, os.path.join (t, out_dir, f))
-    return found_files
+                p = os.path.join (current_dir, f)
+                if os.path.islink (p):
+                    symlinks_paths.append (p)
+                elif find_files_re.match (f):
+                    files_paths.append (p)
+    return (dirs_paths, symlinks_paths, files_paths)
index 62c87619ddadf9f8a030057fe15db80c4f6a980f..9f914008f79fcce5dddf38bbb1ccc83885c2769b 100644 (file)
@@ -31,7 +31,6 @@ for x in optlist:
 
 def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=None):
        try:
-               #print "Processing %s..." % texifilename
                f = open (texifilename, 'r')
                texifile = f.read ()
                f.close ()
@@ -43,11 +42,13 @@ def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=No
                        ]+)::[^
                        ]*?$|^@(include|menu|end menu|node|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|(?:major|chap|(?:sub){0,2})heading) *([^@
                        ]*)[^
-                       ]*?$""", texifile, re.M)
+                       ]*?$|@(rglos){(.+?)}""", texifile, re.M)
                        node_trigger = False
                        for item in tutu:
                                if item[0] == '*':
                                        g.write ('* ' + item[1] + '::\n')
+                               elif output_file and item[4] == 'rglos':
+                                       output_file.write ('_("' + item[5] + '") # @rglos in ' + texifilename + '\n')
                                else:
                                        g.write ('@' + item[2] + ' ' + item[3] + '\n')
                                        if node_trigger:
@@ -55,7 +56,8 @@ def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=No
                                                node_trigger = False
                                        if not item[2] in ('include', 'menu', 'end menu'):
                                                if output_file:
-                                                       output_file.write ('_("' + item[3].strip () + '")\n')
+                                                       output_file.write ('_("' + item[3].strip () + '") # @' + item[2] + \
+                                                                          ' in ' + texifilename + '\n')
                                                node_trigger = True
                                        elif item[2] == 'include':
                                                includes.append(item[3])
@@ -63,12 +65,14 @@ def process_texi (texifilename, i_blurb, n_blurb, write_skeleton, output_file=No
                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) *([^@
                        ]*)[^
-                       ]*?$""", texifile, re.M)
+                       ]*?$|@(rglos){(.+?)}""", texifile, re.M)
                        for item in toto:
                                if item[0] == 'include':
                                        includes.append(item[1])
+                               elif item[2] == 'rglos':
+                                       output_file.write ('# @rglos in ' + texifilename + '\n_("' + item[3] + '")\n')
                                else:
-                                       output_file.write ('_("' + item[1].strip () + '")\n')
+                                       output_file.write ('# @' + item[0] + ' in ' + texifilename + '\n_("' + item[1].strip () + '")\n')
                if process_includes:
                        dir = os.path.dirname (texifilename)
                        for item in includes:
@@ -89,7 +93,7 @@ if make_gettext:
        for word in ('Up:', 'Next:', 'Previous:', 'Appendix', 'Footnotes'):
                node_list.write ('_("' + word + '")\n')
        node_list.close ()
-       os.system ('xgettext -L Python --no-location -o ' + output_file + ' ' + node_list_filename)
+       os.system ('xgettext -c -L Python --no-location -o ' + output_file + ' ' + node_list_filename)
 else:
        for texi_file in texi_files:
                process_texi (texi_file, intro_blurb, node_blurb, make_skeleton)
index 1e182416c212da84631ac58eb2cf664c9ebbd733..a8dc9b9ce09194986399d29983e1eb051bd6edef 100644 (file)
@@ -16,14 +16,20 @@ outdir = os.path.normpath (outdir)
 doc_dirs = ['input', 'Documentation', outdir]
 target_pattern = os.path.join (outdir, '%s-root')
 
-static_files = {os.path.join (outdir, 'index.html'):
-               '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
+static_files = {
+    # ugly hack: the following overwrites HTML Info dir with a link to
+    # the (more useful) documentation index
+    os.path.join ('Documentation/user', outdir, 'index.html'):
+    '''<META HTTP-EQUIV="refresh" content="0;URL=../index.html">
 <html><body>Redirecting to the documentation index...</body></html>\n''',
-               os.path.join (outdir, 'VERSION'):
-               package_version + '\n' }
+    os.path.join (outdir, 'index.html'):
+    '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
+<html><body>Redirecting to the documentation index...</body></html>\n''',
+    os.path.join (outdir, 'VERSION'):
+    package_version + '\n' }
 
-for f in static_files.keys():
-    open (f, 'w').write (static_files[f])
+for f, contents in static_files.items ():
+    open (f, 'w').write (contents)
 
 
 sys.path.append (buildscript_dir)
@@ -32,25 +38,46 @@ import add_html_footer
 import langdefs
 
 sys.stderr.write ("Mirrorring...\n")
-html_list = mirrortree.hardlink_tree (input_roots = doc_dirs,
-                          process_dirs = outdir,
-                          strip_dir_names = outdir,
-                          exclude_dirs = '(' +
-                                      '|'.join ([l.code for l in langdefs.LANGUAGES]) +
-                                      r'|po|out|\w*?-root)(/|$)',
-                          process_files = r'.*?\.(?:midi|pdf|png|txt|ly|signature)$|VERSION',
-                          exclude_files = r'lily-[0-9a-f]+.*\.pdf',
-                          target_pattern = target_pattern,
-                          targets = targets)
-html_dict = add_html_footer.build_pages_dict (html_list)
+dirs, symlinks, files = mirrortree.walk_tree (
+    tree_roots = doc_dirs,
+    process_dirs = outdir,
+    exclude_dirs = '(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + r'|po|out|\w*?-root)(/|$)',
+    find_files = r'.*?\.(?:midi|html|pdf|png|txt|ly|signature)$|VERSION',
+    exclude_files = r'lily-[0-9a-f]+.*\.pdf')
+
+# actual mirrorring stuff
+html_files = []
+hardlinked_files = []
+for f in files:
+    if f.endswith ('.html'):
+        html_files.append (f)
+    else:
+        hardlinked_files.append (f)
+dirs = [re.sub ('/' + outdir, '', d) for d in dirs]
+while outdir in dirs:
+    dirs.remove (outdir)
+dirs = list( set (dirs))
+dirs.sort ()
+
+strip_file_name = {}
 strip_re = re.compile (outdir + '/')
+for t in targets:
+    out_root = target_pattern % t
+    strip_file_name[t] = lambda s: os.path.join (target_pattern % t, (strip_re.sub ('', s)))
+    os.mkdir (out_root)
+    map (os.mkdir, [os.path.join (out_root, d) for d in dirs])
+    for f in hardlinked_files:
+        os.link (f, strip_file_name[t] (f))
+    for l in symlinks:
+        p = mirrortree.new_link_path (os.path.normpath (os.readlink (l)), os.path.dirname (l), strip_re)
+        os.symlink (p, strip_file_name[t] (l))
+
+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 (
         package_name = package_name,
         package_version = package_version,
         target = t,
-        mail_address = 'http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs',
-        pages_dict = html_dict,
-        out_root = target_pattern % t,
-        name_filter = lambda s: strip_re.sub ('', s))
+        name_filter = strip_file_name[t])
+
index cc24efc8ad0f8c2eb9498f20969d49ad19bef259..a0d454b7167bb9be2f1a1751a7623244bcad9f35 100644 (file)
@@ -1,12 +1,10 @@
 depth = ..
 
-SUBDIRS = test regression tutorial mutopia manual lsr
+SUBDIRS = test regression tutorial mutopia manual lsr tolsr
 
 examples = typography-demo les-nereides wilhelmus proportional bach-schenker cary
 
 LOCALSTEPMAKE_TEMPLATES=ly mutopia
 EXTRA_DIST_FILES=paddy.abc
 
-EXTRA_DIST_DIR = tolsr
-
 include $(depth)/make/stepmake.make
index 00d8a75013f23b905d5789cd981a0ec694d7c932..4c39544852dab420e49d38ab673cc87e8c6225ea 100644 (file)
@@ -17,6 +17,12 @@ These snippets are fazzle snap.
 @strong{@uref{contemporary/collated-files.html,Contemporary notation}}:
 These snippets are fazzle snap.
 
+@strong{@uref{expressive/collated-files.html,Expressive marks}}:
+These snippets are fazzle snap.
+
+@strong{@uref{guitar/collated-files.html,Guitar notation}}:
+These snippets are fazzle snap.
+
 @strong{@uref{parts/collated-files.html,Preparing parts}}:
 These snippets are blah blah.
 
diff --git a/input/lsr/README b/input/lsr/README
new file mode 100644 (file)
index 0000000..2229537
--- /dev/null
@@ -0,0 +1,7 @@
+This directory contains examples generated automatically from LSR:
+http://lsr.dsi.unimi.it/
+
+Any changes made to .ly files (other than AAA-intro-*.ly) will be
+lost.  Please make updates to the LSR database directly.  You must
+be an editor to change "approved" snippets in LSR.
+
diff --git a/input/lsr/ancient/Custodes.ly b/input/lsr/ancient/Custodes.ly
deleted file mode 100644 (file)
index 09e5a55..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-Custodes may be engraved in various styles.
-" }
-
-\layout {
-  \context {
-    \Staff
-    \consists Custos_engraver
-  }
-  ragged-right = ##t
-}
-
-{
-  \override Staff.Custos  #'neutral-position = #4
-
-  \override Staff.Custos  #'style = #'hufnagel
-  c'1^"hufnagel"
-  \break < d' a' f''>1
-
-  \override Staff.Custos  #'style = #'medicaea
-  c'1^"medicaea"
-  \break < d' a' f''>1
-
-  \override Staff.Custos  #'style = #'vaticana
-  c'1^"vaticana"
-  \break < d' a' f''>1
-
-  \override Staff.Custos  #'style = #'mensural
-  c'1^"mensural"
-  \break < d' a' f''>1
-}
-
diff --git a/input/lsr/ancient/custodes.ly b/input/lsr/ancient/custodes.ly
new file mode 100644 (file)
index 0000000..09e5a55
--- /dev/null
@@ -0,0 +1,34 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Custodes may be engraved in various styles.
+" }
+
+\layout {
+  \context {
+    \Staff
+    \consists Custos_engraver
+  }
+  ragged-right = ##t
+}
+
+{
+  \override Staff.Custos  #'neutral-position = #4
+
+  \override Staff.Custos  #'style = #'hufnagel
+  c'1^"hufnagel"
+  \break < d' a' f''>1
+
+  \override Staff.Custos  #'style = #'medicaea
+  c'1^"medicaea"
+  \break < d' a' f''>1
+
+  \override Staff.Custos  #'style = #'vaticana
+  c'1^"vaticana"
+  \break < d' a' f''>1
+
+  \override Staff.Custos  #'style = #'mensural
+  c'1^"mensural"
+  \break < d' a' f''>1
+}
+
diff --git a/input/lsr/chords/Chord-name-exceptions.ly b/input/lsr/chords/Chord-name-exceptions.ly
deleted file mode 100644 (file)
index 855214e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-The property @code{chordNameExceptions} can used to store a list of special
-notations for specific chords.
-" }
-
-% 7sus4 denoted with ^7 wahh
-chExceptionMusic = {
-  <c f g bes>1-\markup { \super "7" "wahh" }
-}
-
-% add to existing exceptions.
-chExceptions = #(append
-  (sequential-music-to-chord-exceptions chExceptionMusic #t)
-  ignatzekExceptions)
-
-theMusic = \chordmode {
-  c:7sus4 c:dim7/+f
-  \set chordNameExceptions = #chExceptions
-  c:7sus4 c:dim7/+f
-}
-
-\layout {
-  ragged-right = ##t
-}
-
-<< \context ChordNames \theMusic
-   \context Voice \theMusic
->>  
diff --git a/input/lsr/chords/chord-name-exceptions.ly b/input/lsr/chords/chord-name-exceptions.ly
new file mode 100644 (file)
index 0000000..b8f25b8
--- /dev/null
@@ -0,0 +1,27 @@
+\version "2.10.12"
+
+\header { texidoc = "
+The property @{chordNameExceptions@} can used to store a list of special notations for specific chords.
+" }
+
+% 7sus4 denoted with ^7 wahh
+chExceptionMusic =  {
+    <c f g bes>1-\markup { \super "7" "wahh" }}
+
+                               % add to existing exceptions.
+chExceptions = #(append
+                (sequential-music-to-chord-exceptions chExceptionMusic #t)
+                ignatzekExceptions)
+
+theMusic = \chordmode {
+    c:7sus4 c:dim7/+f
+    \set chordNameExceptions = #chExceptions
+    c:7sus4 c:dim7/+f
+}
+
+\layout { ragged-right = ##t }
+
+<< \context ChordNames \theMusic
+   \context Voice \theMusic
+>>  
+
index 9c670722de67c3a4350419bf2a919a9fa307fc26..4c8785a6388af6285e5bbb0f76835329b561c131 100644 (file)
@@ -1,11 +1,11 @@
 \version "2.10.12"
 
 \header { texidoc = "
-The layout of the major 7 can be tuned with @code{majorSevenSymbol}.
+The layout of the major 7 can be tuned with @{majorSevenSymbol@}
 " }
 
 \chords {
-  c:7+
-  \set majorSevenSymbol = \markup { "j7" }
-  c:7+
+    c:7+
+    \set majorSevenSymbol = \markup { "j7" }
+    c:7+
 }
diff --git a/input/lsr/connecting/Laissez-vibrer-ties.ly b/input/lsr/connecting/Laissez-vibrer-ties.ly
deleted file mode 100644 (file)
index 71ce663..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-l.v.@: ties should avoid dots and staff lines, similar to normal ties.  They
-have fixed size.  Their formatting can be tuned with
-@code{tie-configuration}.
-" }
-
-\paper {
-  ragged-right = ##t
-}
-
-\relative {
-  <c e g>\laissezVibrer r4
-  <c f g>\laissezVibrer r
-  <c d f g>\laissezVibrer r
-  <c d f g>4.\laissezVibrer r
-
-  <c d e f>4\laissezVibrer r
-  \override LaissezVibrerTieColumn #'tie-configuration
-    = #'((-7 . -1)
-         (-5 . -1)
-         (-3 . 1)
-         (-1 . 1))
-  <c d e f>4\laissezVibrer r
-}
diff --git a/input/lsr/connecting/laissez-vibrer-ties.ly b/input/lsr/connecting/laissez-vibrer-ties.ly
new file mode 100644 (file)
index 0000000..a589c6e
--- /dev/null
@@ -0,0 +1,26 @@
+\version "2.10.12"
+
+\header { texidoc = "
+l.v. ties should avoid dots and staff lines, similar to normal ties.  They have fixed size. Their formatting can be tuned with
+@code{tie-configuration}
+" }
+
+\paper {
+  ragged-right = ##t
+}
+
+\relative {
+  <c e g>\laissezVibrer r4
+  <c f g>\laissezVibrer r
+  <c d f g>\laissezVibrer r
+  <c d f g>4.\laissezVibrer r
+
+  <c d e f>4\laissezVibrer r
+  \override LaissezVibrerTieColumn #'tie-configuration
+  = #'((-7 . -1)
+       (-5 . -1)
+       (-3 . 1)
+       (-1 . 1))
+  <c d e f>4\laissezVibrer r
+}
+
diff --git a/input/lsr/contemporary/Clusters.ly b/input/lsr/contemporary/Clusters.ly
deleted file mode 100644 (file)
index c141086..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-Clusters are a device to denote that a complete range of notes is to be
-played.
-" }
-
-\layout {
-  ragged-right = ##t
-}
-
-fragment = \relative c' {
-  c4 f4 <e d'>4
-  <g a>8 <e a> a4 c2 <d b>4 e4 
-  c4
-}
-
-<<
-  \new Staff \fragment
-  \new Staff \makeClusters \fragment
->>
diff --git a/input/lsr/contemporary/clusters.ly b/input/lsr/contemporary/clusters.ly
new file mode 100644 (file)
index 0000000..ea45a8c
--- /dev/null
@@ -0,0 +1,18 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Clusters are a device to denote that a complete range of notes is to be played.
+" }
+
+\layout { ragged-right = ##t }
+
+fragment = \relative c' {
+  c4 f4 <e d'>4
+  <g a>8 <e a> a4 c2 <d b>4 e4 
+  c4
+}
+
+<<
+  \new Staff \fragment
+  \new Staff \makeClusters \fragment
+>>
diff --git a/input/lsr/expressive/AAA-intro-advanced.ly b/input/lsr/expressive/AAA-intro-advanced.ly
new file mode 100644 (file)
index 0000000..b907dd0
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.10.0"
+%% +.ly: Be the first .ly file for lys-to-tely.py.
+%% Better to make lys-to-tely.py include "introduction.texi" or
+%% other .texi documents too?
+
+\header{
+texidoc = #(string-append "
+@unnumbered Introduction
+
+This document shows examples from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}.
+
+In the web version of this document, you can click on the file name
+or figure for each example to see the corresponding input file.
+
+This document is for LilyPond version 
+" (lilypond-version) "." )
+}
+
+% make sure .png  is generated.
+\lyrics {  " " }
diff --git a/input/lsr/expressive/GNUmakefile b/input/lsr/expressive/GNUmakefile
new file mode 100644 (file)
index 0000000..43325ab
--- /dev/null
@@ -0,0 +1,16 @@
+
+depth = ../../../
+
+STEPMAKE_TEMPLATES=documentation texinfo tex
+LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
+
+## Hmm, would this work?  No -- if we really want examples, move
+## to other dir (input/) comes to mind.
+## examples = font20 ancient-font
+## LOCALSTEPMAKE_TEMPLATES += ly mutopia
+
+EXTRA_DIST_FILES= 
+
+include $(depth)/make/stepmake.make
+
+TITLE=Advanced snippets
diff --git a/input/lsr/expressive/SConscript b/input/lsr/expressive/SConscript
new file mode 100644 (file)
index 0000000..f72bfff
--- /dev/null
@@ -0,0 +1,4 @@
+# -*-python-*-
+
+Import ('env', 'collate')
+collate (title = 'Advanced snippets')
diff --git a/input/lsr/expressive/breathing-sign.ly b/input/lsr/expressive/breathing-sign.ly
new file mode 100644 (file)
index 0000000..32702f7
--- /dev/null
@@ -0,0 +1,51 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Breathing signs are available in different tastes: commas (default), ticks, vees and `railroad tracks' (caesura).
+" }
+
+{
+  %% Modern notation:
+  \new Staff {
+    \relative c'' {
+      \key es \major \time 3/4
+
+      %% this bar contains no \breathe
+      <<
+       { g4 as g } \\
+       { es4 bes es }
+      >> |
+
+      %% by default, \breathe uses the rcomma, just as if saying:
+      %% \override BreathingSign  #'text =
+                               %       #(make-musicglyph-markup "scripts.rcomma")
+      <<
+       { g4 as g } \\
+       { es4 \breathe bes es }
+      >> |
+
+      %% rvarcomma and lvarcomma are variations of the default rcomma
+      %% and lcomma
+
+      %% N.B.: must use Staff context here, since we start a Voice below
+      \override Staff.BreathingSign  #'text =
+      #(make-musicglyph-markup "scripts.rvarcomma")
+      <<
+       { g4 as g } \\
+       { es4 \breathe bes es }
+      >> |
+
+      %% wedge
+      \override BreathingSign  #'text =
+      #(make-musicglyph-markup "scripts.upbow")
+      es8 d es f g8 \breathe f |
+
+      %% caesura
+      \override BreathingSign  #'text =
+      #(make-musicglyph-markup "scripts.caesura")
+      es8[ d] \breathe  es[ f g f] |
+      es2 r4 \bar "||" \break
+    }
+  }
+}
+
diff --git a/input/lsr/expressive/fingering-chords.ly b/input/lsr/expressive/fingering-chords.ly
new file mode 100644 (file)
index 0000000..f885a29
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.10.12"
+
+\header { texidoc = "
+With the new chord syntax, it is possible to associate fingerings uniquely with notes. This makes it possible to add horizontal fingerings to notes.
+" }
+
+\layout { ragged-right= ##t }
+
+
+
+\relative c'{
+  \set fingeringOrientations = #'(left)
+  < c-1  e-2 g-3 b-5 > 4
+
+  \set fingeringOrientations = #'(down left)
+  < c-1  e-2 g-3 b-5 > 4
+
+  \set fingeringOrientations = #'(down left up)
+  < c-1  e-2 g-3 b-5 > 4
+
+  \once \override Fingering  #'staff-padding = #'()
+  < c-1  e-2 g-3 b-5 > 4
+
+  \set fingeringOrientations = #'(up left)
+  < c-1  e-2 g-3 b-5 > 4
+
+  \set fingeringOrientations = #'(right)
+  < c-1  e-2 g-3 b-5 > 4
+
+}
diff --git a/input/lsr/expressive/glissando.ly b/input/lsr/expressive/glissando.ly
new file mode 100644 (file)
index 0000000..39f0e3a
--- /dev/null
@@ -0,0 +1,27 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Between notes, there may be simple glissando lines.  Here, the first two glissandi are not consecutive.
+
+The engraver does no time-keeping, so it involves some trickery to get
+<< @{ s8 s8 s4 @} @{ c4 \gliss d4 @} >> working correctly.
+" }
+
+\layout{
+  line-width = 50.\mm
+  indent = 0
+}
+
+\new Staff \relative c''{
+  \override Glissando #'breakable = ##t
+  
+  %% gliss non gliss and 
+  c4 \glissando d e \glissando f \glissando \break
+  %% consecutive 
+  c \glissando d, \glissando e'
+  << { \stemUp e8 \glissando g8 }
+     \context Voice = VB {\stemDown \repeat unfold 4 d16 } >>
+  \override Glissando  #'style = #'zigzag
+  c4 \glissando c,, \glissando c' \glissando d
+}
+
diff --git a/input/lsr/expressive/line-styles.ly b/input/lsr/expressive/line-styles.ly
new file mode 100644 (file)
index 0000000..b64397f
--- /dev/null
@@ -0,0 +1,25 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Displays all available line styles.
+" }
+
+\paper {
+  ragged-right = ##t
+}
+
+\relative c'' {
+  \override Glissando #'breakable = ##t
+
+  s2
+  d2 \glissando d'2
+  \once \override Glissando #'dash-fraction = #0.5
+  d,2 \glissando d'2
+  \override Glissando #'style = #'dotted-line
+  d,2 \glissando d'2
+
+  \override Glissando #'style = #'zigzag
+  d,2 \glissando d'2
+  \override Glissando #'style = #'trill
+  d,2 \glissando d'2
+}
index f93e07eeec464f59dfd7e1c4049939ca72451047..85d9e6b191778a85034822c9432422efd6723255 100644 (file)
@@ -1,8 +1,7 @@
 \version "2.10.12"
 
 \header { texidoc = "
-String numbers can be added to chords.  They use the same positioning
-mechanism as finger instructions.
+String numbers can be added to chords. They use the same positioning mechanism as finger instructions.
 " }
 
 \paper {
diff --git a/input/lsr/parts/Rehearsal-mark-numbers.ly b/input/lsr/parts/Rehearsal-mark-numbers.ly
deleted file mode 100644 (file)
index 096c80f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-Marks can be printed as numbers.  By setting @code{markFormatter} we may
-choose a different style of mark printing.  Also, marks can be specified
-manually, with a markup argument.
-" }
-
-\paper {
-  ragged-right = ##t
- }
-
-\relative c''{
-  \set Score.markFormatter = #format-mark-numbers 
-  c1 | \mark \markup { \musicglyph #"scripts.coda" }
-  c1 | \mark \default
-  c1 | \mark \default
-  \set Score.markFormatter
-    = #(lambda (mark  context)
-        (make-box-markup (format-mark-numbers mark context)))
-  c1 | \mark \default
-  \set Score.markFormatter
-    = #(lambda (mark  context)
-        (make-circle-markup (format-mark-numbers mark context)))
-  c1 | \mark \default
-}
diff --git a/input/lsr/parts/Tag-filter.ly b/input/lsr/parts/Tag-filter.ly
deleted file mode 100644 (file)
index ad30b20..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-The @code{\tag} command marks music expressions with a name.  These tagged
-expressions can be filtered out later.  This mechanism can be used to make
-different versions of the same music.  In this example, the top stave
-displays the music expression with all tags included.  The bottom two staves
-are filtered: the part has cue notes and fingerings, but the score has not.
-" }
-
-\layout {
-  ragged-right= ##t
-}
-
-common =
-\relative c'' {
-  c1
-  \relative c' <<
-    \tag #'part <<
-      R1 \\
-      {
-       \set fontSize = #-1
-       c4_"cue" f2 g4 } 
-    >>
-    \tag #'score R1
-  >>
-  c1-\tag #'part ^4
-}
-
-
-\simultaneous { 
-  \new Staff {
-    \set Staff.instrumentName = #"both"
-    \common
-  }
-  \new Staff {
-    \set Staff.instrumentName = #"part"
-    \keepWithTag #'part \common
-  }
-  \new Staff {
-    \set Staff.instrumentName = #"score"
-    \keepWithTag #'score \common
-  }
-}
diff --git a/input/lsr/parts/rehearsal-mark-numbers.ly b/input/lsr/parts/rehearsal-mark-numbers.ly
new file mode 100644 (file)
index 0000000..74d2cfe
--- /dev/null
@@ -0,0 +1,23 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Marks can be printed as numbers.  
+By setting @{markFormatter@} we may choose a different style of mark printing. Also, marks can be specified manually, with a markup argument.
+" }
+
+\paper { ragged-right = ##t } 
+
+\relative c''{
+  \set Score.markFormatter = #format-mark-numbers 
+  c1 | \mark \markup { \musicglyph #"scripts.coda" }
+  c1 | \mark \default
+  c1 | \mark \default
+  \set Score.markFormatter
+  = #(lambda (mark  context)
+      (make-box-markup (format-mark-numbers mark context)))
+  c1 | \mark \default
+  \set Score.markFormatter
+  = #(lambda (mark  context)
+      (make-circle-markup (format-mark-numbers mark context)))
+  c1 | \mark \default
+}
diff --git a/input/lsr/parts/tag-filter.ly b/input/lsr/parts/tag-filter.ly
new file mode 100644 (file)
index 0000000..28491f5
--- /dev/null
@@ -0,0 +1,42 @@
+\version "2.10.12"
+
+\header { texidoc = "
+The @{\tag@} command marks music expressions with a name. These tagged expressions can be filtered out later. This mechanism can be used to make different versions of the same music. In this example, the top stave displays the music expression with all tags included. The bottom two staves are filtered: the part has cue notes and fingerings, but the score has not.
+" }
+
+\layout { ragged-right= ##t }
+
+common =
+\relative c''  {
+
+  c1
+  \relative c' <<
+    \tag #'part <<
+      R1 \\
+      {
+       \set fontSize = #-1
+       c4_"cue" f2 g4 } 
+    >>
+    \tag #'score R1
+  >>
+  c1-\tag #'part ^4
+}
+
+
+
+\simultaneous { 
+  \new Staff {
+    \set Staff.instrumentName = #"both"
+    \common
+  }
+  \new Staff {
+    \set Staff.instrumentName = #"part"
+    \keepWithTag #'part \common
+  }
+  \new Staff {
+    \set Staff.instrumentName = #"score"
+    \keepWithTag #'score \common
+  }
+}
+
+
diff --git a/input/lsr/repeats/Volta-multi-staff.ly b/input/lsr/repeats/Volta-multi-staff.ly
deleted file mode 100644 (file)
index bd26d4d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-By setting @code{voltaOnThisStaff}, repeats can be put also over other
-staves than the topmost one in a score.
-" }
-
-\layout {
-  ragged-right = ##t
-}
-
-vmus = {
-  \repeat volta 2 c1 \alternative { d e }
-}
-
-\relative c'' <<
-  \new StaffGroup <<
-    \context Staff \vmus
-    \new Staff \vmus
-  >>
-  \new StaffGroup <<
-    \new Staff <<
-      \set Staff.voltaOnThisStaff = ##t
-      \vmus >>
-    \new Staff \vmus
-  >>
->>
diff --git a/input/lsr/repeats/volta-multi-staff.ly b/input/lsr/repeats/volta-multi-staff.ly
new file mode 100644 (file)
index 0000000..979de2a
--- /dev/null
@@ -0,0 +1,21 @@
+\version "2.10.12"
+
+\header { texidoc = "
+By setting @{voltaOnThisStaff@}, repeats can be put also over other staves than the topmost one in a score.
+" }
+
+\layout { ragged-right = ##t }
+vmus =  { \repeat volta 2 c1 \alternative { d e } } 
+
+\relative c'' <<
+  \new StaffGroup <<
+    \context Staff \vmus
+    \new Staff \vmus
+  >>
+  \new StaffGroup <<
+    \new Staff <<
+      \set Staff.voltaOnThisStaff = ##t
+      \vmus >>
+    \new Staff \vmus
+  >>
+>>
index 7ef15b42a3727e571ee7a47a1f907edd2677f8a9..2812a66c19c11385abff977d5a102ff986e9bc09 100644 (file)
@@ -1,15 +1,14 @@
 \version "2.10.12"
 
 \header { texidoc = "
-Page breaking details can be stored for later reference.  (You should run
-this snippet on your own computer; we cannot compute the two-pass layout
-here.)
+Page breaking details can be stored for later reference.
+
+(you should run this snippet on your own computer; we cannot compute the two-pass layout here)
 " }
 
 \paper  {
   #(define write-page-layout #t)
 }
-
 bla = \new Staff {
   c1 c1
   \break
@@ -32,3 +31,4 @@ tweakFileName = #(format "~a-page-layout.ly" (ly:parser-output-name parser))
 #(newline)
 
 #(ly:progress "Contents of: '~a'" (ly:gulp-file tweakFileName))
+
diff --git a/input/lsr/spacing/Page-spacing.ly b/input/lsr/spacing/Page-spacing.ly
deleted file mode 100644 (file)
index 84ed129..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-By setting properties in @code{NonMusicalPaperColumn}, vertical spacing of
-page layout can be adjusted.
-
-For technical reasons, @code{\overrideProperty} has to be used for setting
-properties on individual objects.  @code{\override} may still be used for
-global overrides.
-
-By setting @code{annotate-spacing}, we can see the effect of each property.
-" }
-
-#(set-global-staff-size 11)
-
-\book {
-  \score {
-    \relative c'' \new PianoStaff <<
-      \new Voice {
-        c1_"followed by default spacing"
-        \break
-
-        c
-        \break
-
-        \overrideProperty
-          #"Score.NonMusicalPaperColumn"
-          #'line-break-system-details
-          #'((Y-extent . (-30 . 10)))
-        c_"Big bounding box (property Y-extent)"
-        \break
-
-        \overrideProperty
-          #"Score.NonMusicalPaperColumn"
-          #'line-break-system-details
-          #'((refpoint-Y-extent . (-37 . -10)))
-        c_\markup {
-          \column {
-            "Refpoints further apart (property refpoint-Y-extent)."
-            "Stretchable space runs between refpoints" } }
-        \break
-
-        \overrideProperty
-          #"Score.NonMusicalPaperColumn"
-          #'line-break-system-details
-          #'((next-padding . 10))
-        c_"Followed by padding, ie unstretchable space (property next-padding)."
-        \break
-
-        \overrideProperty
-          #"Score.NonMusicalPaperColumn"
-          #'line-break-system-details
-          #'((next-space . 20))
-        c_"Followed by stretchable space (property next-space)"
-        \break
-
-        c
-        \break
-
-        \overrideProperty
-          #"Score.NonMusicalPaperColumn"
-          #'line-break-system-details
-          #'((bottom-space . 25.0))
-        c_"25 staff space to the bottom of the page (property bottom-space)."
-        \break
-      }
-      { c1 c c c c c c c }
-    >>
-  }
-
-  \paper {
-    ragged-last-bottom = ##f
-    annotate-spacing = ##t
-    between-system-space = 1.0
-    #(set! text-font-defaults
-      (acons
-       'font-size 6
-       text-font-defaults))
-  }
-}
index 5915234e091c9133d763cec3edcc54291d08593f..6497b235ff072f1e8524af861824b7c8207dce48 100644 (file)
@@ -1,18 +1,15 @@
 \version "2.10.12"
 
 \header { texidoc = "
-Proportional notation can be created by setting
-@code{proportionalNotationDuration}.  Notes will be spaced proportional to
-the distance for the given duration.
+Proportional notation can be created by setting @{proportionalNotationDuration@}. Notes will be spaced proportional to the distance for the given duration.
 " }
 
-\paper {
-  ragged-right = ##t
-}
+\paper { ragged-right = ##t }
 
 \relative c''
 <<
   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
-  \new Staff { c8[ c c c c c] c4 c2 r2 }
-  \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
+  \new Staff { c8[ c c c c c]  c4 c2 r2 }
+  \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
 >>
+
index 6488e4ae29c0858403fc43d1466d353174e2c3e9..401f83771e070ecf61103e2e95878c5138455956 100644 (file)
@@ -1,8 +1,7 @@
 \version "2.10.12"
 
 \header { texidoc = "
-With @code{strict-note-spacing} spacing for grace notes (even multiple
-ones) is floating as well.
+With @{strict-note-spacing@} spacing for grace notes (even multiple ones), is floating as well.
 " }
 
 \paper {
index ecd362ce8255a7a6e96f26e04f6e2fa23af63cd3..664ef4c50415c5185415d93d4b4cbf3482d74cfb 100644 (file)
@@ -1,17 +1,13 @@
 \version "2.10.12"
 
 \header { texidoc = "
-If @code{strict-note-spacing} is set, then spacing of notes is not
-influenced by bars and clefs half-way on the system.  Rather, they are put
-just before the note that occurs at the same time.  This may cause
-collisions.
+If @code{strict-note-spacing} is set, then spacing of notes is not influenced by bars and clefs half-way on the system.  Rather, they are put just before the note that occurs at the same time.  This may cause collisions.
 " }
 
 \paper {
   ragged-right = ##t
   indent = 0
 }
-
 \layout {
   \context {
     \Score
index 053cef0b5f93c78cf3b8e31ddd5c2510addc9b17..2a25a2d31a0c5cc46fc5b2ca6c2c3002639c43c6 100644 (file)
@@ -1,16 +1,11 @@
 \version "2.10.12"
 
 \header { texidoc = "
-By setting properties in @code{NonMusicalPaperColumn}, vertical spacing of
-alignments can be adjusted per system.
+By setting properties in @{NonMusicalPaperColumn@}, vertical spacing of alignments can be adjusted per system.
 
-By setting @code{alignment-extra-space} or
-@code{fixed-alignment-extra-space} an individual system may be stretched
-vertically.
+By setting @{alignment-extra-space@} or @{fixed-alignment-extra-space@} an individual system may be stretched vertically.
 
-For technical reasons, @code{\overrideProperty} has to be used for setting
-properties on individual objects.  Override in a @code{\context} block may
-still be used for global overrides.
+For technical reasons, @{overrideProperty@} has to be used for setting properties on individual object. @{override@} in a @{\context@} block may still be used for global overrides
 " }
 
 #(set-global-staff-size 13)
@@ -19,14 +14,9 @@ still be used for global overrides.
 \new StaffGroup <<
   \new Staff {
     c1\break 
-    c\break
-    c\break
+    c\break c\break
   }
-
-  \new Staff {
-    c1 c c
-  }
-
+  \new Staff { c1 c c }
   \new PianoStaff <<
     \new Voice  {
       \set PianoStaff.instrumentName = #"piano"
@@ -34,17 +24,19 @@ still be used for global overrides.
       c1_"normal"
       
       \overrideProperty
-        #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details
-        #'((fixed-alignment-extra-space . 15))
+      #"Score.NonMusicalPaperColumn"
+      #'line-break-system-details
+      #'((fixed-alignment-extra-space . 15))
       c_"fixed-aligment-extra-space"
 
       \overrideProperty
-        #"Score.NonMusicalPaperColumn"
-        #'line-break-system-details
-        #'((alignment-extra-space . 15))
+      #"Score.NonMusicalPaperColumn"
+      #'line-break-system-details
+      #'((alignment-extra-space . 15))
       c_"aligment-extra-space"
     }
     { c1 c c }
   >>
 >>
+
+
diff --git a/input/lsr/spacing/page-layout-twopass.ly b/input/lsr/spacing/page-layout-twopass.ly
new file mode 100644 (file)
index 0000000..2812a66
--- /dev/null
@@ -0,0 +1,34 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Page breaking details can be stored for later reference.
+
+(you should run this snippet on your own computer; we cannot compute the two-pass layout here)
+" }
+
+\paper  {
+  #(define write-page-layout #t)
+}
+bla = \new Staff {
+  c1 c1
+  \break
+  \grace { c16 } c1\break
+  \repeat unfold 5 \relative { c1 c1 c1 }
+}
+
+
+\book {
+  \score {
+    \bla
+    \layout {
+      #(define tweak-key "blabla")
+    }
+  }
+}
+
+tweakFileName = #(format "~a-page-layout.ly" (ly:parser-output-name parser))
+
+#(newline)
+
+#(ly:progress "Contents of: '~a'" (ly:gulp-file tweakFileName))
+
diff --git a/input/lsr/spacing/page-spacing.ly b/input/lsr/spacing/page-spacing.ly
new file mode 100644 (file)
index 0000000..5a9a655
--- /dev/null
@@ -0,0 +1,73 @@
+\version "2.10.12"
+
+\header { texidoc = "
+By setting properties in @{NonMusicalPaperColumn@}, vertical spacing of page layout can be adjusted.
+
+For technical reasons, @{overrideProperty@} has to be used for setting properties on individual object. @{\override@} may still be used for global overrides.
+
+By setting @{annotate-spacing@}, we can see the effect of each property.
+" }
+
+#(set-global-staff-size 11)
+
+\book {
+  \score {
+    \relative c'' \new PianoStaff <<
+      \new Voice  {
+       c1_"followed by default spacing"\break
+       c\break
+
+       \overrideProperty
+       #"Score.NonMusicalPaperColumn"
+       #'line-break-system-details
+       #'((Y-extent . (-30 . 10)))
+       c_"Big bounding box (property Y-extent)"\break
+
+       \overrideProperty
+       #"Score.NonMusicalPaperColumn"
+       #'line-break-system-details
+       #'((refpoint-Y-extent . (-37 . -10)))
+       c_\markup {
+         \column {
+           "Refpoints further apart (property refpoint-Y-extent)."
+           "Stretchable space runs between refpoints"
+         }
+       }
+       
+       \break
+       
+       \overrideProperty
+       #"Score.NonMusicalPaperColumn"
+       #'line-break-system-details
+       #'((next-padding . 10))
+
+       c_"Followed by padding, ie unstretchable space. (property next-padding)" \break
+       \overrideProperty
+       #"Score.NonMusicalPaperColumn"
+       #'line-break-system-details
+       #'((next-space . 20))
+       c_"Followed by stretchable space (property next-space)"\break
+       c\break
+       \overrideProperty
+       #"Score.NonMusicalPaperColumn" #'line-break-system-details
+       #'((bottom-space . 25.0)) 
+       c_"25 staff space to the bottom of the page. (property bottom-space)"\break
+
+
+      }
+      { c1 c c c c c c c }
+    >>
+  }
+  \paper {
+    ragged-last-bottom = ##f
+    annotate-spacing = ##t
+    between-system-space = 1.0
+    #(set! text-font-defaults
+      (acons
+       'font-size 6
+       text-font-defaults)
+      
+    )
+  }
+}
+
diff --git a/input/lsr/spacing/proportional-spacing.ly b/input/lsr/spacing/proportional-spacing.ly
new file mode 100644 (file)
index 0000000..6497b23
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Proportional notation can be created by setting @{proportionalNotationDuration@}. Notes will be spaced proportional to the distance for the given duration.
+" }
+
+\paper { ragged-right = ##t }
+
+\relative c''
+<<
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  \new Staff { c8[ c c c c c]  c4 c2 r2 }
+  \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
+>>
+
diff --git a/input/lsr/spacing/proportional-strict-grace-notes.ly b/input/lsr/spacing/proportional-strict-grace-notes.ly
new file mode 100644 (file)
index 0000000..401f837
--- /dev/null
@@ -0,0 +1,18 @@
+\version "2.10.12"
+
+\header { texidoc = "
+With @{strict-note-spacing@} spacing for grace notes (even multiple ones), is floating as well.
+" }
+
+\paper {
+  ragged-right = ##t
+  indent = 0
+}
+
+\relative c''
+{
+  \override Score.SpacingSpanner #'strict-note-spacing = ##t 
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 12)
+  c8[ \grace { c16[ c] } c8 c8 c8] 
+  c2 
+}  
diff --git a/input/lsr/spacing/proportional-strict-notespacing.ly b/input/lsr/spacing/proportional-strict-notespacing.ly
new file mode 100644 (file)
index 0000000..664ef4c
--- /dev/null
@@ -0,0 +1,29 @@
+\version "2.10.12"
+
+\header { texidoc = "
+If @code{strict-note-spacing} is set, then spacing of notes is not influenced by bars and clefs half-way on the system.  Rather, they are put just before the note that occurs at the same time.  This may cause collisions.
+" }
+
+\paper {
+  ragged-right = ##t
+  indent = 0
+}
+\layout {
+  \context {
+    \Score
+  }
+}
+
+\relative c'' <<
+  \override Score.SpacingSpanner #'strict-note-spacing = ##t 
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  \new Staff {
+    c8[ c \clef alto c c \grace { d16 }  c8 c]  c4 c2
+    \grace { c16[ c16] }
+    c2 }
+  \new Staff {
+    c2  \times 2/3 { c8 \clef bass cis,, c } 
+    c4
+    c1
+  }
+>>
diff --git a/input/lsr/staff/Staff-line-positions.ly b/input/lsr/staff/Staff-line-positions.ly
deleted file mode 100644 (file)
index ec83d19..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-The vertical positions of staff lines may be specified individually, by
-setting the @code{line-positions} property of the @code{StaffSymbol}.
-" }
-
-\new Staff \relative c' {
-  \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 3 9)
-  g c f b e a
-}
diff --git a/input/lsr/staff/staff-line-positions.ly b/input/lsr/staff/staff-line-positions.ly
new file mode 100644 (file)
index 0000000..d6be6e7
--- /dev/null
@@ -0,0 +1,10 @@
+\version "2.10.12"
+
+\header { texidoc = "
+The vertical positions of staff lines may be specified individually, by setting the @{line-positions@} property of the StaffSymbol.
+" }
+
+\new Staff \relative c'  {
+  \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 3 9)
+  g c f b e a
+}
index 1e42227a25bdd711851eaf7cb0d6e117600de539..606d53e70cc16262905f6ed93c53e64c18a79e83 100644 (file)
@@ -1,33 +1,29 @@
 \version "2.10.12"
 
 \header { texidoc = "
-The default font families for text can be overridden with
-@code{make-pango-font-tree}.
+The default font families for text can be overridden with @{make-pango-font-tree@}
 " }
 
-\paper {
+\paper  {
   % change for other default global staff size. 
   myStaffSize = #20
-
   %{
-     run
-       lilypond -dshow-available-fonts blabla
-     to show all fonts available in the process log.  
-  %}
+  run
+      lilypond -dshow-available-fonts blabla
+  to show all fonts available in the process log.  
+    %}
 
-  #(define fonts
+    #(define fonts
     (make-pango-font-tree "Times New Roman"
                           "Nimbus Sans"
                           "Luxi Mono"
-;;                        "Helvetica"
-;;                        "Courier"
+;;     "Helvetica"
+;;     "Courier"
      (/ myStaffSize 20)))
 }
 
 \relative {
-  c'^\markup {
-    roman: foo \bold bla \italic bar \italic \bold baz
-  }
+  c'^\markup { roman: foo \bold bla \italic bar \italic \bold baz }
   c'_\markup {
     \override #'(font-family . sans)
     {
@@ -41,3 +37,4 @@ The default font families for text can be overridden with
     }
   }
 }  
+
diff --git a/input/lsr/vocal/Ambitus.ly b/input/lsr/vocal/Ambitus.ly
deleted file mode 100644 (file)
index 315a5fa..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-\version "2.10.12"
-
-\header { texidoc = "
-Ambituses indicate pitch ranges for voices.
-
-Accidentals only show up if they are not part of key signature. 
-@code{AmbitusNoteHead} grobs also have ledger lines.
-" }
-
-\layout {
-  ragged-right = ##t
-  \context {
-    \Voice
-    \consists Ambitus_engraver
-  }
-}
-
-\relative
-<<
-  \new Staff {
-    \time  2/4 c4 f'
-  }
-
-  \new Staff \relative {
-    \time  2/4
-    \key d \major
-    cis as'
-  }
->>
diff --git a/input/lsr/vocal/ambitus.ly b/input/lsr/vocal/ambitus.ly
new file mode 100644 (file)
index 0000000..2af5354
--- /dev/null
@@ -0,0 +1,26 @@
+\version "2.10.12"
+
+\header { texidoc = "
+Ambituses indicate pitch ranges for voices.
+
+Accidentals only show up if they're not part of key signature.  @{AmbitusNoteHead@} grobs also have ledger lines.
+" }
+
+\layout {
+    ragged-right = ##t
+    \context {
+       \Voice
+       \consists Ambitus_engraver
+    }
+}
+
+\relative
+<<
+    \new Staff {  \time  2/4 c4 f' }
+    \new Staff \relative {
+       \time  2/4
+       \key d \major
+       cis as'
+    }
+>>
+
index a678de9072ca03f145c11e8421ff3c2c5cad1a8f..bcdff195674be7c99d53594729f92dfca6ac1a76 100644 (file)
@@ -1,9 +1,7 @@
 \version "2.10.12"
 
 \header { texidoc = "
-With the @code{\lyricsto} mechanism, individual lyric lines can be
-associated with one melody line.  For each lyric line, they can be tuned
-whether to follow melismata or not.
+With the @{\lyricsto@} mechanism, individual lyric lines can be associated with one melody line. For each lyric line, they can be tuned whether to follow melismata or not.
 " }
 
 <<
@@ -11,12 +9,8 @@ whether to follow melismata or not.
     \autoBeamOff
     c2( d4) e8[ c b c] f4
   }
-
-  \lyricsto "bla" \new Lyrics {
-    bla ab blob blob
-  }
-
-  \lyricsto "bla" \new Lyrics {
+  \lyricsto "bla"  \new Lyrics  { bla ab blob blob }
+  \lyricsto "bla"  \new Lyrics  {
     bla 
 
     \set ignoreMelismata = ##t
@@ -30,7 +24,9 @@ whether to follow melismata or not.
     blob
   }
   
-  \lyricsto "bla" \new Lyrics {
+  \lyricsto "bla"  \new Lyrics  {
     nes ted lyrics voice with more words than no tes
   }
 >>
+  
+
index 98abf99ccec54fdf68e45de703785352eceff4ca..506e25efdc6013ad20f4899ed624e8068cfc985d 100644 (file)
@@ -1,5 +1,14 @@
 \version "2.11.16"
-\paper { ragged-right = ##t }
+
+\paper {
+  ragged-right = ##t
+}
+
+\header {
+  texidoc = "Cross-staff tuplets are drawn correctly,
+even across multiple staves."
+}
+
 \layout {
   \context {
     \Score
 }
 
 voice = {
-  \times 2/3 { b8 \change Staff=RH c' d' }
-  \times 2/3 { d' c' \change Staff=LH b }
+  \times 2/3 { b8 \change Staff=I c' d' }
+  \times 2/3 { d' c' \change Staff=II b }
+  \times 2/3 { \change Staff=III c,
+               \change Staff=II b
+               \change Staff=I c' }
 }
 
 \score {
   \new PianoStaff
   <<
-    \new Staff = "RH" { s4 s4 s4 }
-    \new Staff = "LH" { \clef bass \voice }
+    \new Staff = "I" { s4 s4 s4 }
+    \new Staff = "II" { \clef bass \voice }
+    \new Staff = "III" { \clef bass s4 s4 s4 }
   >>
 }
diff --git a/input/tolsr/GNUmakefile b/input/tolsr/GNUmakefile
new file mode 100644 (file)
index 0000000..a573e72
--- /dev/null
@@ -0,0 +1,9 @@
+depth = ../../
+
+STEPMAKE_TEMPLATES=documentation texinfo tex
+LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
+
+include $(depth)/make/stepmake.make
+
+TITLE=Stuff waiting for LSR -- you should not see this!
+
diff --git a/input/tolsr/SConscript b/input/tolsr/SConscript
new file mode 100644 (file)
index 0000000..d5d0cb9
--- /dev/null
@@ -0,0 +1,4 @@
+# -*-python-*-
+
+Import ('env', 'collate')
+collate (title = 'Stuff waiting for LSR -- you should not see this!')
diff --git a/input/tolsr/contemporary/line-arrows.ly b/input/tolsr/contemporary/line-arrows.ly
deleted file mode 100644 (file)
index 7512711..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-\header {
-  texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
-}
-
-\version "2.10.0"
-
-\paper {
-  ragged-right = ##t
-}
-
-\relative c'' {
-  \override TextSpanner #'bound-padding = #1.0
-  \override TextSpanner #'dash-fraction = #'()
-  \override TextSpanner #'bound-details #'right #'arrow = ##t
-  \override TextSpanner #'bound-details #'left #'text = #"fof"
-  \override TextSpanner #'bound-details #'right #'text = #"gag"
-  \override TextSpanner #'bound-details #'right #'padding = #0.6
-
-  \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #CENTER
-  \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #CENTER
-  
-  \override Glissando #'bound-details #'right #'arrow = ##t
-  \override Glissando #'arrow-length = #0.5
-  \override Glissando #'arrow-width = #0.25
-  
-  a8\startTextSpan gis8 a4 b4\glissando
-  b,4 | g' c\stopTextSpan c
-}
diff --git a/input/tolsr/line-arrows.ly b/input/tolsr/line-arrows.ly
new file mode 100644 (file)
index 0000000..1953824
--- /dev/null
@@ -0,0 +1,30 @@
+% contemporary
+
+\header {
+  texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
+}
+
+\version "2.10.0"
+
+\paper {
+  ragged-right = ##t
+}
+
+\relative c'' {
+  \override TextSpanner #'bound-padding = #1.0
+  \override TextSpanner #'dash-fraction = #'()
+  \override TextSpanner #'bound-details #'right #'arrow = ##t
+  \override TextSpanner #'bound-details #'left #'text = #"fof"
+  \override TextSpanner #'bound-details #'right #'text = #"gag"
+  \override TextSpanner #'bound-details #'right #'padding = #0.6
+
+  \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #CENTER
+  \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #CENTER
+  
+  \override Glissando #'bound-details #'right #'arrow = ##t
+  \override Glissando #'arrow-length = #0.5
+  \override Glissando #'arrow-width = #0.25
+  
+  a8\startTextSpan gis8 a4 b4\glissando
+  b,4 | g' c\stopTextSpan c
+}
diff --git a/input/tolsr/preparing/quote-transposition.ly b/input/tolsr/preparing/quote-transposition.ly
deleted file mode 100644 (file)
index ceecc57..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-
-\header
-{
-
-    texidoc = "Quotations take into account the transposition of both
-source and target.  In this example, all instruments play sounding
-central C, the target is a instrument in F.  The target part may be
-@code{\\transpose}d.  In this case, all the pitches (including the
-quoted ones) will transposed as well.  "
-
-}
-
-\version "2.11.10"
-
-\layout { ragged-right = ##t }
-
-
-\addQuote clarinet  {
-    \transposition bes
-    d'16 d'16 d'8 
-    d'16 d'16 d'8 
-    d'16 d'16 d'8 
-    d'16 d'16 d'8 
-}
-
-\addQuote sax  {
-    \transposition es'
-    a8 a a a a a  a a 
-}
-
-quoteTest = {
-    \transposition f  % french horn
-    
-    g'4
-    << \quoteDuring #"clarinet" { \skip 4 } s4^"clar" >> 
-    << \quoteDuring #"sax" { \skip 4 } s4^"sax" >> 
-}
-
-
-<< \quoteTest
-   \new Staff
-   << \transpose c' d' \quoteTest
-     s4_"up 1 tone"
-  >>
->>
diff --git a/input/tolsr/preparing/quote.ly b/input/tolsr/preparing/quote.ly
deleted file mode 100644 (file)
index 1f29585..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-\header
-{
-
-    texidoc = "With @code{\\quote}, fragments of previously entered
-music may be quoted. @code{quotedEventTypes} will determines what
-things are quoted. In this example, a 16th rests is not quoted, since
-@code{rest-event} is not in @code{quotedEventTypes}."
-
-}
-\version "2.11.10"
-\layout {
-    ragged-right = ##t
-}
-
-
-quoteMe = \relative c' { fis4 r16  a8.-> b4-\ff c }
-
-\addQuote quoteMe \quoteMe 
-original = \relative c'' { c8 d s2 es8 gis8 }
-
-<<
-    \new Staff {
-       \set Staff.instrumentName = "quoteMe"
-       \quoteMe
-    }
-    \new Staff {
-       \set Staff.instrumentName = "orig"
-       \original
-    }
-    \new Staff \relative c'' <<
-       \set Staff.instrumentName = "orig+quote"        
-       \set Staff.quotedEventTypes = #'(note-event articulation-event)
-       \original
-       \new Voice {
-           s4
-           \set fontSize = #-4
-           \override Stem #'length-fraction = #(magstep -4)
-           \quoteDuring #"quoteMe" { \skip 2. }
-       }
-    >>
->>
diff --git a/input/tolsr/quote-transposition.ly b/input/tolsr/quote-transposition.ly
new file mode 100644 (file)
index 0000000..7611de2
--- /dev/null
@@ -0,0 +1,46 @@
+%preparing
+
+\header
+{
+
+    texidoc = "Quotations take into account the transposition of both
+source and target.  In this example, all instruments play sounding
+central C, the target is a instrument in F.  The target part may be
+@code{\\transpose}d.  In this case, all the pitches (including the
+quoted ones) will transposed as well.  "
+
+}
+
+\version "2.11.10"
+
+\layout { ragged-right = ##t }
+
+
+\addQuote clarinet  {
+    \transposition bes
+    d'16 d'16 d'8 
+    d'16 d'16 d'8 
+    d'16 d'16 d'8 
+    d'16 d'16 d'8 
+}
+
+\addQuote sax  {
+    \transposition es'
+    a8 a a a a a  a a 
+}
+
+quoteTest = {
+    \transposition f  % french horn
+    
+    g'4
+    << \quoteDuring #"clarinet" { \skip 4 } s4^"clar" >> 
+    << \quoteDuring #"sax" { \skip 4 } s4^"sax" >> 
+}
+
+
+<< \quoteTest
+   \new Staff
+   << \transpose c' d' \quoteTest
+     s4_"up 1 tone"
+  >>
+>>
diff --git a/input/tolsr/quote.ly b/input/tolsr/quote.ly
new file mode 100644 (file)
index 0000000..f3d2e9d
--- /dev/null
@@ -0,0 +1,43 @@
+%preparing
+
+\header
+{
+
+    texidoc = "With @code{\\quote}, fragments of previously entered
+music may be quoted. @code{quotedEventTypes} will determines what
+things are quoted. In this example, a 16th rests is not quoted, since
+@code{rest-event} is not in @code{quotedEventTypes}."
+
+}
+\version "2.11.10"
+\layout {
+    ragged-right = ##t
+}
+
+
+quoteMe = \relative c' { fis4 r16  a8.-> b4-\ff c }
+
+\addQuote quoteMe \quoteMe 
+original = \relative c'' { c8 d s2 es8 gis8 }
+
+<<
+    \new Staff {
+       \set Staff.instrumentName = "quoteMe"
+       \quoteMe
+    }
+    \new Staff {
+       \set Staff.instrumentName = "orig"
+       \original
+    }
+    \new Staff \relative c'' <<
+       \set Staff.instrumentName = "orig+quote"        
+       \set Staff.quotedEventTypes = #'(note-event articulation-event)
+       \original
+       \new Voice {
+           s4
+           \set fontSize = #-4
+           \override Stem #'length-fraction = #(magstep -4)
+           \quoteDuring #"quoteMe" { \skip 2. }
+       }
+    >>
+>>
diff --git a/input/tolsr/text/utf-8.ly b/input/tolsr/text/utf-8.ly
deleted file mode 100644 (file)
index abd4227..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-\version "2.10.0"
-
-%% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
-
-%{
-
-You may have to install additional fonts.
-
-Red Hat Fedora
-
-    taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
-        ttfonts-zh_CN fonts-ja fonts-hebrew 
-
-Debian GNU/Linux
-
-   apt-get install emacs-intl-fonts xfonts-intl-.* \
-       ttf-kochi-gothic ttf-kochi-mincho \
-       xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi 
-%} 
-
-\header {
-
-  texidoc = "Various scripts may be used for texts (like titles and
-lyrics) introduced by entering them in UTF-8 encoding, and using a
-Pango based backend.  Depending on the fonts installed, this fragment
-will render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
-
-"
-  
-}
-
-% Cyrillic font
-bulgarian = \lyricmode {
-  Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
-}
-
-hebrew = \lyricmode { 
-  זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
-}
-
-japanese = \lyricmode {  
-  いろはにほへど ちりぬるを
-  わがよたれぞ  つねならむ
-  うゐのおくや  まけふこえて
-  あさきゆめみじ ゑひもせず 
-}
-
-% "a legal song to you"
-portuguese = \lyricmode { 
-  à vo -- cê uma can -- ção legal
-}
-
-\paper {
-  ragged-right = ##T
-}
-
-\relative  { 
-  c2 d e f g f e
-}
-\addlyrics { \bulgarian }
-\addlyrics { \hebrew }
-\addlyrics { \japanese }
-\addlyrics { \portuguese }
diff --git a/input/tolsr/utf-8.ly b/input/tolsr/utf-8.ly
new file mode 100644 (file)
index 0000000..5f8f98a
--- /dev/null
@@ -0,0 +1,65 @@
+% text
+
+\version "2.10.0"
+
+%% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
+
+%{
+
+You may have to install additional fonts.
+
+Red Hat Fedora
+
+    taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
+        ttfonts-zh_CN fonts-ja fonts-hebrew 
+
+Debian GNU/Linux
+
+   apt-get install emacs-intl-fonts xfonts-intl-.* \
+       ttf-kochi-gothic ttf-kochi-mincho \
+       xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi 
+%} 
+
+\header {
+
+  texidoc = "Various scripts may be used for texts (like titles and
+lyrics) introduced by entering them in UTF-8 encoding, and using a
+Pango based backend.  Depending on the fonts installed, this fragment
+will render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
+
+"
+  
+}
+
+% Cyrillic font
+bulgarian = \lyricmode {
+  Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
+}
+
+hebrew = \lyricmode { 
+  זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
+}
+
+japanese = \lyricmode {  
+  いろはにほへど ちりぬるを
+  わがよたれぞ  つねならむ
+  うゐのおくや  まけふこえて
+  あさきゆめみじ ゑひもせず 
+}
+
+% "a legal song to you"
+portuguese = \lyricmode { 
+  à vo -- cê uma can -- ção legal
+}
+
+\paper {
+  ragged-right = ##T
+}
+
+\relative  { 
+  c2 d e f g f e
+}
+\addlyrics { \bulgarian }
+\addlyrics { \hebrew }
+\addlyrics { \japanese }
+\addlyrics { \portuguese }
index 39e0388331705c2bd550f9a033b9ab9099ef0496..12ba90a8fe5edbce261e4f172250c9a73824833a 100644 (file)
@@ -24,6 +24,7 @@ public:
   DECLARE_GROB_INTERFACE();
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_direction, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_cross_staff, (SCM));
 };
 
 void make_script_from_event (Grob *p,  Context *tg,
index 9b2ec336159b74ecd8170dd783cf5ffb8862034f..c3a56b098724094efa89f602e631489b24f6fd2a 100644 (file)
@@ -38,6 +38,14 @@ struct Page_spacing
   void clear ();
 };
 
+/* In order to prevent possible division by zero, we require every line
+   to have a spring of non-zero length. */
+static Real
+line_space (const Line_details &line)
+{
+  return max (0.1, line.space_);
+}
+
 void
 Page_spacing::calc_force ()
 {
@@ -53,7 +61,7 @@ Page_spacing::append_system (const Line_details &line)
   rod_height_ += last_line_.padding_;
 
   rod_height_ += line.extent_.length ();
-  spring_len_ += max (0.1, line.space_);
+  spring_len_ += line_space (line);
   inverse_spring_k_ += max (0.1, line.inverse_hooke_);
 
   last_line_ = line;
@@ -70,7 +78,7 @@ Page_spacing::prepend_system (const Line_details &line)
     last_line_ = line;
 
   rod_height_ += line.extent_.length ();
-  spring_len_ += max (0.1, line.space_);
+  spring_len_ += line_space (line);
   inverse_spring_k_ += max (0.1, line.inverse_hooke_);
 
   calc_force ();
@@ -248,11 +256,27 @@ Page_spacer::solve (vsize page_count)
   ret.systems_per_page_.resize (page_count);
 
   vsize system = lines_.size () - 1;
+  vsize tack_onto_the_end = 0;
 
   if (isinf (state_.at (system, page_count-1).demerits_))
     {
       programming_error ("tried to space systems on a bad number of pages");
-      return Spacing_result (); /* bad number of pages */
+      /* Usually, this means that we tried to cram too many systems into
+        to few pages. To avoid crashing, we look for the largest number of
+        systems that we can fit properly onto the right number of pages.
+        All the systems that don't fit get tacked onto the last page.
+      */
+      vsize i;
+      for (i = system; isinf (state_.at (i, page_count-1).demerits_) && i--; )
+       ;
+
+      if (i)
+       {
+         tack_onto_the_end = system - i;
+         system = i;
+       }
+      else
+       return Spacing_result (); /* couldn't salvage it -- probably going to crash */
     }
 
   ret.penalty_ = state_.at (system, page_count-1).penalty_
@@ -269,7 +293,7 @@ Page_spacer::solve (vsize page_count)
       if (p == 0)
        ret.systems_per_page_[p] = system + 1;
       else
-       ret.systems_per_page_[p] = system - ps.prev_;
+       ret.systems_per_page_[p] = system - ps.prev_ + tack_onto_the_end;
       system = ps.prev_;
     }
   ret.demerits_ += ret.penalty_;
@@ -354,14 +378,14 @@ min_page_count (vector<Line_details> const &uncompressed_lines,
       bool rag = ragged || (ragged_last && ret == 1);
       Real ext_len = lines[i].extent_.length ();
       Real next_height = cur_rod_height + ext_len
-       + (rag ? lines[i].space_ : 0)
+       + (rag ? line_space (lines[i]) : 0)
        + ((cur_rod_height > 0) ? lines[i].padding_: 0);
 
       if ((next_height > page_height && cur_rod_height > 0)
          || (i + 1 < lines.size () && lines[i].page_permission_ == ly_symbol2scm ("force")))
        {
          ret++;
-         cur_rod_height = ext_len + (rag ? lines[i].space_ : 0);
+         cur_rod_height = ext_len + (rag ? line_space (lines[i]) : 0);
        }
       else
        cur_rod_height = next_height;
index ff77193f179def3ba646fcdb507993a7036cf942..8e142179b4f2fbc211cc961ac534eb800a497a27 100644 (file)
@@ -65,6 +65,15 @@ Script_interface::calc_direction (SCM smob)
   return scm_from_int (d);
 }
 
+MAKE_SCHEME_CALLBACK (Script_interface, calc_cross_staff, 1);
+SCM
+Script_interface::calc_cross_staff (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  Grob *stem = Note_column::get_stem (me->get_parent (X_AXIS));
+  return scm_from_bool (stem && to_boolean (stem->get_property ("cross-staff")));
+}
+
 MAKE_SCHEME_CALLBACK (Script_interface, print, 1);
 
 SCM
index faa25a85ca6a06e9203c3fde6fa6fed830855b83..318d3012b7a8351343d76d844ebc75c30937f83a 100644 (file)
@@ -494,6 +494,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
   commony = common_refpoint_of_array (tuplets, commony, Y_AXIS);
   if (Grob *st = Staff_symbol_referencer::get_staff_symbol (me))
     commony = st->common_refpoint (commony, Y_AXIS);
+  Real my_offset = me->relative_coordinate (commony, Y_AXIS);
 
   Grob *commonx = get_common_x (me);
   commonx = common_refpoint_of_array (tuplets, commonx, Y_AXIS);
@@ -504,7 +505,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
       Real pad = robust_scm2double (me->get_property ("staff-padding"), -1.0);
       if  (pad >= 0.0)
        {
-         staff = st->extent (commony, Y_AXIS);
+         staff = st->extent (commony, Y_AXIS) - my_offset;
          staff.widen (pad);
        }
     }
@@ -520,12 +521,13 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
   Item *rgr = get_x_bound_item (me, RIGHT, dir);
   Real x0 = robust_relative_extent (lgr, commonx, X_AXIS)[LEFT];
   Real x1 = robust_relative_extent (rgr, commonx, X_AXIS)[RIGHT];
+  bool follow_beam = par_beam
+    && ((get_grob_direction (par_beam) == dir) || to_boolean (par_beam->get_property ("knee")));
 
   vector<Offset> points;
 
   if (columns.size ()
-      && par_beam
-      && get_grob_direction (par_beam) == dir 
+      && follow_beam
       && Note_column::get_stem (columns[0])
       && Note_column::get_stem (columns.back ()))
     {
@@ -542,11 +544,10 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
       
 
       Real ss = 0.5 * Staff_symbol_referencer::staff_space (me);
-      Real my_parent_offset = me->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS);
       Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0)
-        + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_parent_offset;
+        + stems[LEFT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_offset;
       Real rp = ss * robust_scm2double (stems[RIGHT]->get_property ("stem-end-position"), 0.0)
-        + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_parent_offset;
+        + stems[RIGHT]->get_parent (Y_AXIS)->relative_coordinate (commony, Y_AXIS) - my_offset;
 
       *dy = rp - lp;
       points.push_back (Offset (stems[LEFT]->relative_coordinate (commonx, X_AXIS) - x0, lp));
@@ -584,18 +585,17 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
       else
        *dy = 0;
 
-      *offset = -dir * infinity_f;      
       for (vsize i = 0; i < columns.size (); i++)
        {
          Interval note_ext = columns[i]->extent (commony, Y_AXIS);
-         Real notey = note_ext[dir] - me->relative_coordinate (commony, Y_AXIS);
+         Real notey = note_ext[dir] - my_offset;
 
          Real x = columns[i]->relative_coordinate (commonx, X_AXIS) - x0;
          points.push_back (Offset (x, notey));
        }
     }
 
-  if (!(par_beam && get_grob_direction (par_beam) == dir))
+  if (!follow_beam)
     {
       points.push_back (Offset (x0 - x0, staff[dir]));
       points.push_back (Offset (x1 - x0, staff[dir]));
@@ -639,6 +639,7 @@ Tuplet_bracket::calc_position_and_height (Grob *me_grob, Real *offset, Real *dy)
       while (flip (&d) != LEFT);
     }
 
+  *offset = -dir * infinity_f;
   Real factor = (columns.size () > 1) ? 1 / (x1 - x0) : 1.0;
   for (vsize i = 0; i < points.size (); i++)
     {
index f488fd20d5bc3d5baf2c8c28bc9ec4854671f8b0..aafd30d72d7832f043337aaef2509bc5298fa5fd 100644 (file)
 #(define (whitelist-symbol sym)
   (set! sym-whitelist (cons sym sym-whitelist)))
 
+#(define (whitelist-grob str)
+  (set! grob-whitelist (cons str grob-whitelist)))
+
 #(define graph (make-graph "graph.dot"))
 
+#(define (grob-name g)
+  (let* ((meta (ly:grob-property g 'meta))
+        (name-pair (assq 'name meta)))
+   (if (pair? name-pair)
+       (cdr name-pair)
+       #f)))
+
 % an event is relevant if
 % (it is on some whitelist or all whitelists are empty)
 % and
   (let ((file-line `(,file . ,line)))
    (and
     (or
-     (= 0 (length file-line-whitelist) (length sym-whitelist))
+     (= 0 (length file-line-whitelist) (length sym-whitelist) (length grob-whitelist))
      (memq prop sym-whitelist)
+     (memq (grob-name grob) grob-whitelist)
      (member file-line file-line-whitelist))
     (and
      (not (memq prop sym-blacklist))
+     (not (memq (grob-name grob) grob-blacklist))
      (not (member file-line file-line-blacklist))))))
 
 #(define (grob-event-node grob label cluster)
 
 #(define (grob-mod grob file line func prop val)
   (let* ((val-str (truncate-value val))
-        (label (format "~a\\n~a:~a\\n~a <- ~a" grob file line prop val-str)))
+        (label (format "~a\\n~a:~a\\n~a <- ~a" (grob-name grob) file line prop val-str)))
    (if (relevant? grob file line prop)
        (grob-event-node grob label file))))
 
 #(define (grob-cache grob prop callback value)
   (let* ((val-str (truncate-value value))
-        (label (format "caching ~a.~a\\n~a -> ~a" grob prop callback value)))
+        (label (format "caching ~a.~a\\n~a -> ~a" (grob-name grob) prop callback value)))
    (if (relevant? grob #f #f prop)
        (grob-event-node grob label #f))))
 
 #(define (grob-create grob file line func)
-  (let ((label (format "~a\\n~a:~a" grob file line)))
+  (let ((label (format "~a\\n~a:~a" (grob-name grob) file line)))
    (grob-event-node grob label file)))
 
 #(ly:set-grob-modification-callback grob-mod)
index 1411b8c5f7d96375c8cd74f58888097b66874092..a25935017511d63bac5a83658f40074e26fbbf34 100644 (file)
@@ -17,14 +17,26 @@ $(outdir)/lilypond/index.html: $(outdir)/lilypond.nexi doc-po
        -$(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
        find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/html-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG)
 
-$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
-       -$(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
+# we don't make the big page until the whole manual is translated
+# if this happens, we'll have to define local-WWW differently for this language
+#$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
+#      -$(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
 
-local-WWW: $(outdir)/lilypond.html $(outdir)/lilypond/index.html lang-merge
+local-WWW: png-ln $(outdir)/lilypond/index.html lang-merge
 
 lang-merge:
        $(foreach i, $(shell find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME'), ln -f $(i) $(i:$(outdir)/%.html=$(depth)/Documentation/user/$(outdir)/%.$(ISOLANG).html) &&) true
 
+LINKED_PNGS = henle-flat-gray.png baer-flat-gray.png lily-flat-bw.png
+
+# makeinfo is broken, it MUST have PNGs in output dir
+# strangely, this is not true for ly PNGs
+# symlinking PNGs...
+png-ln:
+       mkdir -p $(outdir)/lilypond
+       cd $(outdir) && $(foreach i, $(LINKED_PNGS), ln -sf ../$(depth)/Documentation/user/$(i) $(i) &&) true
+       cd $(outdir)/lilypond && $(foreach i, $(LINKED_PNGS), ln -sf ../../$(depth)/Documentation/user/$(i) $(i) &&) true
+
 local-WWW-clean: deep-WWW-clean
 
 deep-WWW-clean:
index 49b9a32bac4494f9ca6adfbb59b7cacdd91717d0..8d81855a1b9a74a441e5606c4a02d4d34259eea6 100644 (file)
        (stencil . ,ly:script-interface::print)
        (direction . ,ly:script-interface::calc-direction)
        (font-encoding . fetaMusic)
+       (cross-staff . ,ly:script-interface::calc-cross-staff)
        (meta . ((class . Item)
                 (interfaces . (script-interface
                                side-position-interface
index 5cf8c2d011b254f588a2369cfc685fd6f956ee84..8dbd7167f9d6f1af6a5c7b14ae6eea6b9fdc5905 100644 (file)
@@ -4,6 +4,9 @@
 $(outdir)/%.info: $(outdir)/%.texi
        $(MAKEINFO) -I $(outdir) --output=$@ $<
 
+$(outdir)/%-big-page.html: $(outdir)/%.texi
+       $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
+
 $(outdir)/%.html: $(outdir)/%.texi
        $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<