]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond...
authorJohn Mandereau <john.mandereau@gmail.com>
Fri, 29 Feb 2008 21:42:34 +0000 (22:42 +0100)
committerJohn Mandereau <john.mandereau@gmail.com>
Fri, 29 Feb 2008 21:42:34 +0000 (22:42 +0100)
* 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond:
  Update macros in German docs
  Add @version macro to French docs
  Update of Spanish user manual, master file only

49 files changed:
.gitignore
Documentation/GNUmakefile
Documentation/index.html.in
Documentation/translations.html.in [new file with mode: 0644]
Documentation/translations.template.html [deleted file]
Documentation/translations.template.html.in [new file with mode: 0644]
Documentation/user/GNUmakefile
Documentation/user/README.txt
Documentation/user/editorial.itely
Documentation/user/fundamental.itely
Documentation/user/input.itely
Documentation/user/lilypond-book.itely
Documentation/user/lilypond-learning.tely
Documentation/user/lilypond-program.tely
Documentation/user/lilypond.tely
Documentation/user/macros.itexi
Documentation/user/music-glossary.tely
Documentation/user/pitches.itely
Documentation/user/rhythms.itely
Documentation/user/templates.itely
Documentation/user/tutorial.itely
Documentation/user/tweaks.itely
Documentation/user/working.itely
Documentation/user/writing-texinfo.txt
buildscripts/add_html_footer.py
buildscripts/lys-to-tely.py
buildscripts/translations-status.py
buildscripts/www_post.py
input/lsr/GNUmakefile
input/lsr/lilypond-snippets.tely [new file with mode: 0644]
input/lsr/snippets.tely [deleted file]
input/manual/editorial-headword.ly
input/regression/musicxml/00c-Basics-Durations.xml
lily/line-spanner.cc
lily/module-scheme.cc
lily/note-collision.cc
lily/note-column.cc
mf/GNUmakefile
python/convertrules.py
python/fontextract.py
python/lilylib.py
python/musicexp.py
python/musicxml.py
scripts/convert-ly.py
scripts/lilypond-book.py
scripts/musicxml2ly.py
stepmake/stepmake/texinfo-targets.make
stepmake/stepmake/texinfo-vars.make
tex/texinfo.tex

index 78ddd2aade5ee09961d04eb11cc570b259b134f3..014cbcf08c8def43529e5d3365ab55d26903733f 100644 (file)
@@ -71,3 +71,4 @@ pats
 tags
 test-output-distance
 Documentation/user/lilypond
+input/lsr/lilypond-snippets
index cde95c500cda153be9172df1a6524b8611936fcc..8f7228053ec2bc593c38b2a0408839f28c8f567f 100644 (file)
@@ -7,7 +7,7 @@ STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"'
 README_TOP_FILES= DEDICATION THANKS 
-EXTRA_DIST_FILES= texinfo.css TRANSLATION translations.template.html
+EXTRA_DIST_FILES= texinfo.css TRANSLATION
 
 include $(depth)/make/stepmake.make
 
index adc97057782506d51b918fb9103adb3f7275e749..82f04b82b945c7ed835be2a513db310c0936239d 100644 (file)
@@ -101,9 +101,9 @@ href="user/lilypond-program/index.html">Application Usage (AU)</a>
 in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
            <br>(how to install and run the program)
 
-<li><a class="title" href="../input/lsr/snippets/index.html">Snippets</a>
-(in <a class="title" href="../input/lsr/snippets-big-page.html">one big page</a>,
-in <a class="title" href="../input/lsr/snippets.pdf">PDF</a>)
+<li><a class="title" href="../input/lsr/lilypond-snippets/index.html">Snippets</a>
+(in <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">one big page</a>,
+in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
      <br>(Short tricks, tips, and examples)
 
        </ul>
diff --git a/Documentation/translations.html.in b/Documentation/translations.html.in
new file mode 100644 (file)
index 0000000..f85c4e5
--- /dev/null
@@ -0,0 +1,702 @@
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+  documentation are translated; for each documentation section, you
+  can read the word count in parentheses, who translated and verified
+  it (translation checkers are printed with a smaller font size), how
+  much of the original section in English has been translation, how
+  up-to-date is the translation, and whether the translation has
+  already been updated after Grand Documentation Project (GDP) was
+  started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+  English, therefore translated documentation is mostly not
+  up-to-date; however, this does not mean translated documentation is
+  inaccurate regarding current LilyPond version, it only means that
+  translated docmentation is not synced with documentation in English.
+  We do our best to keep translated documentation consistent with
+  current LilyPond syntax and features, and will update it per
+  section, when GDP processing of the corresponding section in English
+  is finished.
+</p>
+
+ <p><i>Last updated Tue Feb 26 15:43:29 UTC 2008
+</i></p>
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- learning manual</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(406)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>Preface<br>(411)</td>
+  <td>Valentin Villenave<br>
+   <small>Ludovic Sardain</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Introduction<br>(3198)</td>
+  <td>Ludovic Sardain<br>
+   John Mandereau<br>
+   <small>Jean-Charles Malahieude<br>
+   Jean-Yves Baudais</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Tutorial<br>(5593)</td>
+  <td>Nicolas Grandclaude<br>
+   Ludovic Sardain<br>
+   Gauvain Pocentek<br>
+   <small>Jean-Charles Malahieude<br>
+   Valentin Villenave<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff8f50">partially up-to-date (23 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #40fe23">partially up-to-date (95 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Fundamental concepts<br>(8626)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (39 %)</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 Tweaking output<br>(11862)</td>
+  <td>Valentin Villenave<br>
+   Nicolas Klutchnikoff<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Working on LilyPond projects<br>(2985)</td>
+  <td>Ludovic Sardain<br>
+   <small>Jean-Yves Baudais<br>
+   Valentin Villenave<br>
+   John Mandereau<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>A Templates<br>(297)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9150">partially up-to-date (24 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>B Scheme tutorial<br>(960)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (91 %)</span><br>
+   <span style="background-color: #83fe2c">partially up-to-date (85 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- program usage</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(384)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Install<br>(1477)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+   <span style="background-color: #6fff29">partially up-to-date (88 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Setup<br>(947)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Running LilyPond<br>(2860)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 @command{lilypond-book}: Integrating text and music<br>(2840)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Converting from other formats<br>(975)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+  <th>GNU LilyPond --- The music typesetter</th>  <th>fr</th>
+  <th>de</th>
+  <th>es</th>
+ </tr>
+ <tr align="left">
+  <td>Section titles<br>(549)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1 Musical notation<br>(91)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.1 Pitches<br>(2808)</td>
+  <td>Frédéric Chiasson<br>
+   <small>Valentin Villenave<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.2 Rhythms<br>(7056)</td>
+  <td>Frédéric Chiasson<br>
+   <small>Valentin Villenave<br>
+   Jean-Charles Malahieude</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (82 %)</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (87 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.3 Expressive marks<br>(1602)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #91ff2e">partially up-to-date (83 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.4 Repeats<br>(717)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.5 Simultaneous notes<br>(916)</td>
+  <td>Frédéric Chiasson<br>
+   Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.6 Staff notation<br>(1637)</td>
+  <td>Valentin Villenave<br>
+   Jean-Charles Malahieude<br>
+   <small>John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (49 %)</span><br>
+   <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.7 Editorial annotations<br>(866)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (38 %)</span><br>
+   <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (95 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>1.8 Text<br>(2329)</td>
+  <td>Jean-Charles Malahieude<br>
+   <small>Valentin Villenave<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2 Specialist notation<br>(54)</td>
+  <td>John Mandereau<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.1 Vocal music<br>(2630)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.2 Chords<br>(1275)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.3 Piano music<br>(702)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.4 Percussion<br>(481)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.5 Guitar<br>(826)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.6 Orchestral strings<br>(66)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.7 Bagpipes<br>(242)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (94 %)</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>2.8 Ancient notation<br>(4289)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude<br>
+   John Mandereau</small><br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>3 Input syntax<br>(2448)</td>
+  <td>Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+   <span style="background-color: #25fe1f">partially up-to-date (99 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>4 Non-musical notation<br>(2164)</td>
+  <td>Valentin Villenave<br>
+   <small>Jean-Charles Malahieude</small><br>
+   <span style="background-color: #dfef77">partially translated (4 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (3 %)</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>5 Spacing issues<br>(8399)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>6 Changing defaults<br>(5105)</td>
+  <td>Valentin Villenave<br>
+   <small>Gilles Thibault</small><br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #b9ff33">partially up-to-date (77 %)</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>7 Interfaces for programmers<br>(4547)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>A Literature list<br>(299)</td>
+  <td>   <span style="background-color: #d0f0f8">not translated</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>B Notation manual tables<br>(935)</td>
+  <td>Frédéric Chiasson<br>
+   Jean-Charles Malahieude<br>
+   <span style="background-color: #dfef77">partially translated (13 %)</span><br>
+   <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+   <span style="background-color: #62ff28">partially up-to-date (90 %)</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #dfef77">partially translated (97 %)</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+ <tr align="left">
+  <td>C Cheat sheet<br>(250)</td>
+  <td>Valentin Villenave<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Till Rettig<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #1fff1f">up to date</span><br>
+  </td>
+  <td>Francisco Vila<br>
+   <span style="background-color: #1fff1f">translated</span><br>
+   <span style="background-color: #d587ff"></span><br>
+  </td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
diff --git a/Documentation/translations.template.html b/Documentation/translations.template.html
deleted file mode 100644 (file)
index e0bbadc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-<!--
-    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
-    When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
-!-->
-<head>
-  <title>LilyPond documentation translations status</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-</head>
-
-<body>
-<p><a href="index.html">Up to documentation index</a></p>
-
-<h1>Documentation translations status</h1>
-
-<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
-  documentation are translated; for each documentation section, you
-  can read the word count in parentheses, who translated and verified
-  it (translation checkers are printed with a smaller font size), how
-  much of the original section in English has been translation, how
-  up-to-date is the translation, and whether the translation has
-  already been updated after Grand Documentation Project (GDP) was
-  started.
-</p>
-
-<p>Please note that GDP makes a lot of changes to documentation in
-  English, therefore translated documentation is mostly not
-  up-to-date; however, this does not mean translated documentation is
-  inaccurate regarding current LilyPond version, it only means that
-  translated docmentation is not synced with documentation in English.
-  We do our best to keep translated documentation consistent with
-  current LilyPond syntax and features, and will update it per
-  section, when GDP processing of the corresponding section in English
-  is finished.
-</p>
-
-</body>
-</html>
diff --git a/Documentation/translations.template.html.in b/Documentation/translations.template.html.in
new file mode 100644 (file)
index 0000000..e0bbadc
--- /dev/null
@@ -0,0 +1,40 @@
+<html>
+<!--
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+!-->
+<head>
+  <title>LilyPond documentation translations status</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+  documentation are translated; for each documentation section, you
+  can read the word count in parentheses, who translated and verified
+  it (translation checkers are printed with a smaller font size), how
+  much of the original section in English has been translation, how
+  up-to-date is the translation, and whether the translation has
+  already been updated after Grand Documentation Project (GDP) was
+  started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+  English, therefore translated documentation is mostly not
+  up-to-date; however, this does not mean translated documentation is
+  inaccurate regarding current LilyPond version, it only means that
+  translated docmentation is not synced with documentation in English.
+  We do our best to keep translated documentation consistent with
+  current LilyPond syntax and features, and will update it per
+  section, when GDP processing of the corresponding section in English
+  is finished.
+</p>
+
+</body>
+</html>
index f94800161cf37f1577e46ff92e25bde34fb85717..0a39a41a4690a4c3c02b36be136b58816c6b12fe 100644 (file)
@@ -24,11 +24,13 @@ PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
 # this prevents aux files from being reused for translated docs
 TEXI2PDF_FLAGS = --tidy
 
+MAIN_INFO_DOC = lilypond
 INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
 INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
 
 ifeq ($(out),www)
 INFO_IMAGES_DIR = lilypond
+DEST_INFO_IMAGES_SUBDIR = Documentation/user
 endif
 
 STEPMAKE_TEMPLATES=tex texinfo omf documentation
@@ -48,80 +50,6 @@ info: $(INFO_FILES)
 
 xml: $(outdir)/lilypond/lilypond.xml $(outdir)/lilypond-internals/lilypond-internals.xml
 
-# There are two modes for info: with and without images.
-ifeq ($(out),www)
-
-# This builds all .info targets with images, in out-www.
-# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
-
-local-install-info: info
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
-## Can not have absolute symlinks because some binary packages build schemes
-## install files in nonstandard root.  Best we can do is to notify the
-## builder or packager.
-       @echo
-       @echo "***************************************************************"
-       @echo "Please add or update the LilyPond direntries, do"
-       @echo
-       @echo "    install-info --info-dir=$(infodir) $(outdir)/lilypond.info"
-       @echo
-       @echo "For images in the INFO docs to work, do: "
-       @echo
-       @echo "    (cd $(infodir) && ln -sfT ../doc/lilypond/html/Documentation/user lilypond)"
-       @echo "or add something like that to the postinstall script."
-       @echo
-else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
-       install-info --info-dir=$(infodir) $(outdir)/lilypond.info
-       cd $(infodir) && ln -sfT $(webdir)/Documentation/user lilypond
-endif # installing directly into standard /usr/...
-
-local-uninstall-WWW:
-       rm -f $(infodir)/lilypond
-
-else # out!=www
-
-local-install-info: info
-       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
-ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
-## Can not have absolute symlinks because some binary packages build schemes
-## install files in nonstandard root.  Best we can do is to notify the
-## builder or packager.
-       @echo
-       @echo "***************************************************************"
-       @echo "Please add or update the LilyPond direntries, do"
-       @echo
-       @echo "    install-info --info-dir=$(infodir) out/lilypond.info"
-       @echo
-       @echo "For images in the INFO docs to work, do"
-       @echo
-       @echo "    make out=www install-info "
-       @echo
-       @echo "and read the extra instructions."
-       @echo
-else # installing directly into standard /usr/...
-       -$(INSTALL) -d $(DESTDIR)$(infodir)
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
-       -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
-       install-info --info-dir=$(infodir) $(outdir)/lilypond.info
-       @echo
-       @echo "***************************************************************"
-       @echo "For images in the INFO docs to work, do"
-       @echo
-       @echo "    make out=www install-info "
-       @echo
-endif # installing into standard /usr/* root# installing into /usr/...
-
-endif # out!=www
 
 # All web targets, except info image symlinks and info docs are
 # installed in non-recursing target from TOP-SRC-DIR
@@ -191,7 +119,8 @@ DEEP_HTML_FILES =\
  $(outdir)/lilypond-learning/index.html
 
 # Symlinks to refer to external source documents from split and non-split HTML
-source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source
+source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source \
+ $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source
 
 $(outdir)/source:
        @rm -f $(@)
index 6b39a974a348dcfb67b4ca6d2bc0b1cb5019015d..ae345e03d089d67c16ce0a3eb5c8025a119731f0 100644 (file)
@@ -11,7 +11,7 @@ General policy: policy.txt
 convert-ly -e --from=... --to=... --no-version *.itely
 
 % to find the current version number,
-grep "version \"" tutorial.itely
+grep "version \"" fundamental.itely
 
 Please don't forget updating translated docs (in LANGS/user) too!
 
index 99f32bff59fc57ab23631a4868533d68b0d142e4..674605cb26caa2b4804133e15c4501871f2d8735 100644 (file)
@@ -248,7 +248,6 @@ gis a
 gis a
 \override NoteHead #'color = #(x11-color "LimeGreen")
 gis a
-
 % this is deliberate nonsense; note that the stems remain black
 \override Stem #'color = #(x11-color 'Boggle)
 b2 cis
@@ -306,33 +305,20 @@ for details.
 @cindex parentheses
 
 Objects may be parenthesized by prefixing @code{\parenthesize} to
-the music event,
+the music event.  This only functions inside chords; to
+parenthesize a single note it must be enclosed with @code{<>} as
+if it is a chord.
 
 @lilypond[relative=2,fragment,verbatim,ragged-right]
-<
-  c
-  \parenthesize d
-  g
->2-\parenthesize -.
-d g 
-<
-  c,
-  \parenthesize fis
->
+c2 < \parenthesize d>
+<\parenthesize e> d
 @end lilypond
 
-This only functions inside chords, to parenthesize a single note it 
-must be enclosed with @code{<>} as if it is a chord.
-
-@example
-< \parenthesize NOTE>
-@end example
+Non-note objects may be parenthesized as well.
 
 @lilypond[relative=2,fragment,verbatim,ragged-right]
-c4
-<\parenthesize d>
-g
-<\parenthesize d>
+< c \parenthesize d g >2-\parenthesize -. d
+g < c, \parenthesize fis >
 @end lilypond
 
 @seealso
@@ -436,15 +422,19 @@ notes.
 \layout {
   \context {
     \Staff
-    \consists "Grid_point_engraver" %% sets of grid
+    \consists "Grid_point_engraver" 
+    % sets up grids
     gridInterval = #(ly:make-moment 1 4)
+    % this sets the grid interval to 1 quarternote (crotchet)
   }
 }
 
 \new Score \with {
   \consists "Grid_line_span_engraver"
-  %% centers grid lines  horizontally below note heads
+  %% centers grid lines  horizontally below note heads by default 
+  %the grid lines are aligned with the left side of the notehead
   \override NoteColumn #'X-offset = #-0.5
+  % this moves them to the right half a staff space
 }
 
 \new ChoirStaff <<
@@ -455,8 +445,9 @@ notes.
     }
   }
   \new Staff {
-    %% centers grid lines  vertically
     \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+    % by default the grid lines join the middle line of each staff,
+    % this moves them up one staff space
     \stemDown
     \clef bass
     \relative c {
index 1e56b0e4f250f3d2d11292d75891b65d8fdbf93f..f9f9343f5f4e141663235d1ad910b329aca6ac1f 100644 (file)
@@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}.
 A basic example of a lilypond input file is
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 \score @{
   @var{...compound music expression...}  % all the music goes here!
   \header @{ @}
@@ -1589,7 +1589,7 @@ engraver is removed from a context it can no longer produce its
 output.  This is a crude way of modifying the output, but it
 can sometimes be useful.
 
-@subsubsection Changing a single context
+@subsubheading Changing a single context
 
 To remove an engraver from a single context we use the
 @code{\with} command placed immediately after the context creation 
@@ -1670,7 +1670,7 @@ the notes in all the voices on that staff:
 >>
 @end lilypond
 
-@subsubsection Changing all contexts of the same type
+@subsubheading Changing all contexts of the same type
 
 The examples above show how to remove or add engravers to
 individual contexts.  It is also possible to remove or add 
@@ -1739,7 +1739,7 @@ cello.  In this case, we would start with @q{Notes and lyrics} (for the
 soprano part).
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1767,7 +1767,7 @@ text = \lyricmode @{
 Now we want to add a cello part.  Let's look at the @q{Notes only} example:
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 melody = \relative c' @{
   \clef treble
   \key c \major
@@ -1804,7 +1804,7 @@ celli normally use bass clef.  We'll also give the cello some
 different notes.
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 sopranoMusic = \relative c' @{
   \clef treble
   \key c \major
@@ -1873,7 +1873,7 @@ This looks a bit messy; the indentation is messed up now.  That is
 easily fixed.  Here's the complete soprano and cello template.
 
 @lilypond[quote,verbatim,ragged-right]
-\version "2.11.37"
+\version "2.11.38"
 sopranoMusic = \relative c' {
   \clef treble
   \key c \major
@@ -1921,7 +1921,6 @@ from Handel's Messiah:
 
 @c The following should appear as music without code
 @lilypond[quote,ragged-right]
-\version "2.11.38"
 global = { \key d \major \time 4/4 }
 sopMusic = \relative c'' {
   \clef "treble"
@@ -2193,7 +2192,7 @@ music definitions and one to define the time signature
 and key:
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 \header @{
   title = "Jesu, meine Freude"
   composer = "J S Bach"
index 5f2b84131a10911b788b65b0944e2c06f4df213d..9ad929c4af04164d44322f831cdec95a2bcb30fd 100644 (file)
@@ -16,6 +16,12 @@ rather than specific notation.
 FIXME: don't complain about anything in this chapter.  It's still
 under heavy development.
 
+FIXME: add comments
+@verbatim
+% %{
+@end verbatim
+to 3.1.
+
 @menu
 * Input files::                 
 * Common syntax issues TODO name?::  
@@ -542,6 +548,11 @@ Also mention \override Foo #'direction = #'DOWN.
 
 also mention the typical \fooDown, \fooNeutral predefined commands.
 
+also mention that some directions are (without other tweaking)
+always up or always down (like dynamics or fermata), while other
+things can alternate between up or down based on the stem direction
+(like slurs or accents).
+
 
 @node Distances and measurements MAYBE MOVE
 @subsection Distances and measurements MAYBE MOVE
index 86b274f9cfd3ef85640f15cd52d039869c3dc56d..cb796ef2af8bef5713f25c3f4cbc2fb5e6653ee4 100644 (file)
@@ -105,9 +105,10 @@ directory as this file.)
 Save the code above to a file called @file{lilybook.lytex}, then in a
 terminal run
 
+@c keep space after @version{} so TeX doesn't choke
 @example
 lilypond-book --output=out --pdf lilybook.lytex
-@emph{lilypond-book (GNU LilyPond) 2.11.37}
+@emph{lilypond-book (GNU LilyPond) @version{} }
 @emph{Reading lilybook.lytex...}
 @emph{..lots of stuff deleted..}
 @emph{Compiling lilybook.tex...}
@@ -655,6 +656,10 @@ will be printed with a verbatim block like
   f2 e
 @end example
 
+@item addversion
+(Only for Texinfo output.)  Prepend line @code{\version
+@@w@{"@@version@{@}"@}} to @code{verbatim} output.
+
 @item texidoc
 (Only for Texinfo output.)  If @command{lilypond} is called with the
 @option{--header=@/texidoc} option, and the file to be processed is
@@ -699,8 +704,9 @@ useful if you want to @code{quote} the music snippet but not the
 
 @item printfilename
 If a LilyPond input file is included with @code{\lilypondfile}, print
-the file name right before the music snippet.  For HTML output, this is
-a link.
+the file name right before the music snippet.  For HTML output, this
+is a link.  Only the base name of the file is printed, i.e. the
+directory part of the file path is stripped.
 
 @item fontload
 This option includes fonts in all of the generated EPS-files for this
@@ -816,7 +822,11 @@ Print a short help message.
 
 @item -I @var{dir}
 @itemx --include=@var{dir}
-Add @var{dir} to the include path.
+Add @var{dir} to the include path.  @command{lilypond-book} also looks
+for already compiled snippets in the include path, and does not write
+them back to the output directory, so in some cases it is necessary to
+invoke further processing commands such as @command{makeinfo} or
+@command{latex} with the same @code{-I @var{dir}} options.
 
 @item -o @var{dir}
 @itemx --output=@var{dir}
index c1e811970a73750e823db5657674879a4d2586ed..f700ed61c646c7b60bbb988bae9037097bca3565 100644 (file)
@@ -10,6 +10,8 @@
 @documentencoding UTF-8
 @documentlanguage en
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -23,7 +25,7 @@
 @c don't remove this comment.
 @ignore
 @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Learning Manual of the LilyPond music engraving system
 @omftype program usage
 @omfcategory Applications|Publishing
 @omflanguage English
@@ -64,21 +66,7 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-2
-    \mark #(ly:export (string-append
-      "(For LilyPond version " (lilypond-version) ")"))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-
+For LilyPond version @version{}
 @end titlepage
 
 @copying
@@ -112,12 +100,8 @@ Free Documentation License''.
 @ifnottex
 @node Top
 @top GNU LilyPond --- learning manual
-@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-This is the learning manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the learning manual for GNU LilyPond version @version{}.
 
 @cindex web site
 @cindex URL
@@ -147,8 +131,6 @@ Appendices
 @contents
 
 
-@include macros.itexi
-
 @include preface.itely
 @include introduction.itely
 @include tutorial.itely
index 6fa9f3900be20626275a638c169fc08baee68217..1ddba147e493f6e417faa89b99260b704bf6d2cf 100644 (file)
@@ -10,6 +10,8 @@
 @documentencoding UTF-8
 @documentlanguage en
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -23,7 +25,7 @@
 @c don't remove this comment.
 @ignore
 @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Program Usage of the LilyPond music engraving system
 @omftype program usage
 @omfcategory Applications|Publishing
 @omflanguage English
@@ -64,21 +66,7 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-2
-    \mark #(ly:export (string-append
-      "(For LilyPond version " (lilypond-version) ")"))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-
+For LilyPond version @version{}
 @end titlepage
 
 @copying
@@ -114,10 +102,7 @@ Free Documentation License''.
 @top GNU LilyPond --- program usage
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-This is the program usage manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the program usage manual for GNU LilyPond version @version{}.
 
 @cindex web site
 @cindex URL
@@ -143,8 +128,6 @@ Appendices
 @contents
 
 
-@include macros.itexi
-
 @include install.itely
 @include setup.itely
 @include running.itely
index 0631951f5ae237ab2a5e22c3f9c1008e4eea1073..59713a05d7ed959f8419c342d8912ec670515974 100644 (file)
@@ -6,10 +6,12 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 @setfilename lilypond.info
-@settitle GNU LilyPond user manual
+@settitle GNU LilyPond User Manual
 @documentencoding UTF-8
 @documentlanguage en
 
+@include macros.itexi
+
 @iftex
 @afourpaper
 @c don't replace quotes with directed quotes
@@ -58,7 +60,7 @@ Distributions will want to install lilypond.info in postinstall, doing:
 @c don't remove this comment.
 @ignore
 @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
-@omfdescription User manual of the LilyPond music engraving system
+@omfdescription Notation Reference of the LilyPond music engraving system
 @omftype user manual
 @omfcategory Applications|Publishing
 @omflanguage English
@@ -82,7 +84,7 @@ This document is also available as a
 @titlepage
 @title LilyPond
 @subtitle The music typesetter
-@titlefont{User manual}
+@titlefont{Notation Reference}
 @author The LilyPond development team
 
 Copyright @copyright{} 1999--2007 by the authors
@@ -98,21 +100,7 @@ Free Documentation License''.
 
 @vskip 20pt
 
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-2
-    \mark #(ly:export (string-append
-      "(For LilyPond version " (lilypond-version) ")"))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-
+For LilyPond version @version{}
 @end titlepage
 
 @copying
@@ -148,10 +136,7 @@ Free Documentation License''.
 @top GNU LilyPond --- The music typesetter
 @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
 
-This is the user manual for GNU LilyPond 2.11.x series.
-@ifhtml
-(See the bottom of this page for the exact version number).
-@end ifhtml
+This is the User Manual for GNU LilyPond version @version{}.
 
 @cindex web site
 @cindex URL
@@ -187,8 +172,6 @@ Appendices
 @contents
 
 
-@include macros.itexi
-
 @include notation.itely
 @include specialist.itely
 
index b0dafefd956fec1f0b9e23fb6598f69758ddaf93..4ef3123bfdbed271a2cd015e2b581f5ef4a555c9 100644 (file)
@@ -7,8 +7,7 @@
 @end ignore
 
 @macro version
-@c @value{version}
-2.11.41
+@value{version}
 @end macro
 
 @c   ***** Displaying text *****
 @ref{\TEXT\,,,lilypond-learning-big-page}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets-big-page}
+@end macro
+
 @end ifset
 
 
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifclear
 
 @end ifhtml
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifdocbook
 
 
 @ref{\TEXT\,,,lilypond-learning}
 @end macro
 
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
 @end ifinfo
 
 
 
 @macro rprogram{TEXT}
 program usage manual, @ref{\TEXT\,,,lilypond-program}
-@c @internalsref{\TEXT\}
 @end macro
 
 @macro ruser{TEXT}
 notation reference, @ref{\TEXT\,,,lilypond}
-@c @internalsref{\TEXT\}
 @end macro
 
 @macro rlearning{TEXT}
 learning manual, @ref{\TEXT\,,,lilypond-learning}
-@c @internalsref{\TEXT\}
+@end macro
+
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
 @end macro
 
 @end iftex
index 45378ffd6163bc9e70ae144963c204ad7fa8655e..8bc021c3a366ce659a86fe0b963e5fc8960c2bf0 100644 (file)
@@ -50,9 +50,9 @@ Copyright @copyright{} 1999--2007 by the authors
 
 @c TODO: multiple omfcreators?
 @ignore
-@omfcreator Christian Mondrup
+@omfcreator Christian Mondrup, Kurt Kroon
 @omfdescription Glossary of musical terms with translations
-@omftype user's guide
+@omftype glossary
 @omfcategory Applications|Publishing
 @omflanguage English
 @end ignore
index 0ec57da745cad65a171602044234e197cdccb336..05b71b88db4a3859da8d9fa1707fa56ceb6caab0 100644 (file)
@@ -1756,6 +1756,8 @@ ambitus.
 @node Note heads
 @subsection Note heads
 
+This section suggests ways of altering note heads.
+
 @menu
 * Special note heads::          
 * Easy notation note heads::    
index b2f9977731f11178c4d93f520999fe7b0ac1c621..cf4c1a205d9624c119e3fb2f4e6941de1a55723f 100644 (file)
@@ -153,7 +153,7 @@ rests from 128th to maxima (8 x whole) may be printed.
 @cindex triplets
 @funindex \times
 
-Tuplets are made out of a music expression by multiplying all
+Tuplets are made from a music expression by multiplying all the
 durations with a fraction:
 
 @example
@@ -164,7 +164,7 @@ durations with a fraction:
 The duration of @var{musicexpr} will be multiplied by the 
 fraction.  The fraction's denominator will be printed over or 
 under the notes, optionally with a bracket.  The most common 
-tuplet is the triplet in which 3 notes have the length of 2, so 
+tuplet is the triplet in which 3 notes have the duration of 2, so
 the notes are 2/3 of their written length.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@@ -175,11 +175,9 @@ c4 c \times 2/3 {b4 a g}
 
 Tuplets may be nested:
 
-@lilypond[fragment,ragged-right,verbatim,relative=2]
-\relative c'' {
-  \autoBeamOff
-  c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
-}
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\autoBeamOff
+c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
 @end lilypond
 
 Modifying nested tuplets which begin at the same musical moment
@@ -207,21 +205,6 @@ must be done with @code{\tweak}.
 @lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
 {entering-several-tuplets-using-only-one--times-command.ly}
 
-@ignore
-@c TODO Remove when snippet works ok
-@c Sent to Snippet 5 Feb 08
-The property @code{tupletSpannerDuration} specifies how long each
-bracket should last.  With this, you can make lots of tuplets
-while typing @code{\times} only once, thus saving lots of typing.
-In the next example, there are two triplets shown, while
-@code{\times} was only used once.
-
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\set tupletSpannerDuration = #(ly:make-moment 1 4)
-\times 2/3 { c8 c c c c c }
-@end lilypond
-@end ignore
-
 @noindent
 For more information about @code{make-moment}, see
 @ref{Time administration}.
@@ -381,8 +364,7 @@ full length mode and how to modify what material they cover.
 
 @code{\compressMusic} works similarly to \times, but does not
 create a tuplet bracket.  One application is in polymetric
-notation, as shown in the following example.  See
-@ref{Polymetric notation}.
+notation, see @ref{Polymetric notation}.
 
 @lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
 {printing-music-with-different-time-signatures.ly}
@@ -2616,3 +2598,4 @@ Internals Reference: @internalsref{Timing_translator},
 
 
 
+
index 9d710c5bec745625b0a1bf925e20f5f413dd863b..b8d9893ae8650127809456c1ef2560a32b0408c4 100644 (file)
@@ -31,13 +31,13 @@ beautiful printed scores!
 
 @appendixsubsec Notes only
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
 {single-staff-template-with-only-notes.ly}
 
 
 @appendixsubsec Notes and lyrics
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion]
 {single-staff-template-with-notes-and-lyrics.ly}
 
 @appendixsubsec Notes and chords
index c4681c27cc11961f7b24fb9ca2618a6d5a735962..7373f6222cfddb35ed4ea5ee89b6daf96b1c6f13 100644 (file)
@@ -1585,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that
 was used to write the file:
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 @end example
 
 @noindent
@@ -1607,7 +1607,7 @@ main music expression; the @code{\header} block is usually placed
 underneath the @ref{Version number}.
 
 @example
-\version "2.11.38"
+\version @w{"@version{}"}
 \header @{
   title = "Symphony"
   composer = "Me"
index 698a7b30eade6c55c3d0ecc402c8d6f4f2d4a986..a68fd71359e45d46581d889cef45fc804ceb549c 100644 (file)
@@ -424,7 +424,7 @@ the context.  Let's use a very large value for the thickness
 at first, so we can be sure the command is working.  We get:
 
 @example
-  \override Slur #'thickness = #5.0
+\override Slur #'thickness = #5.0
 @end example 
 
 Don't forget the @code{#'} preceding the
@@ -662,7 +662,7 @@ Ok, so the @code{\override} command we need to print the lyrics
 in italics should be
 
 @example
-  \override LyricText #'font-shape = #'italic
+\override LyricText #'font-shape = #'italic
 @end example
 
 @noindent
@@ -703,7 +703,7 @@ object name, as otherwise the two names are run together and
 the interpreter cannot recognise them.  So the command should be:
 
 @example
-  \override Lyrics . LyricText #'font-shape = #'italic
+\override Lyrics . LyricText #'font-shape = #'italic
 @end example
 
 @warning{In lyrics always leave whitespace between the final
@@ -3191,15 +3191,15 @@ To be effective under all circumstances these checks must be enabled
 by placing the overrides in a Score @code{\with} block, rather than
 in-line in music, as follows:
 
-@verbatim
-\new Score \with {
+@example
+\new Score \with @{
   % Makes sure text scripts and lyrics are within the paper margins
   \override PaperColumn #'keep-inside-line = ##t
   \override NonMusicalPaperColumn #'keep-inside-line = ##t
-{
+@} @{
    ..
-}
-@end verbatim
+@}
+@end example
 
 @node Advanced tweaks with Scheme
 @subsection Advanced tweaks with Scheme
@@ -3225,33 +3225,29 @@ the staff.
 #(define (color-notehead grob)
   "Color the notehead according to its position on the staff."
   (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
-       (case mod-position  ; Set rainbow colors
-         ((1) (ly:grob-set-property! grob 'color (x11-color 'red)))
-         ((2) (ly:grob-set-property! grob 'color (x11-color 'orange)))
-         ((3) (ly:grob-set-property! grob 'color (x11-color 'yellow)))
-         ((4) (ly:grob-set-property! grob 'color (x11-color 'green)))
-         ((5) (ly:grob-set-property! grob 'color (x11-color 'blue)))
-         ((6) (ly:grob-set-property! grob 'color (x11-color 'purple)))
-         ((0) (ly:grob-set-property! grob 'color (x11-color 'violet)))
-       )
+    (case mod-position
+      ;;   Return rainbow colors
+      ((1) (x11-color 'red    ))  ; for C
+      ((2) (x11-color 'orange ))  ; for D
+      ((3) (x11-color 'yellow ))  ; for E
+      ((4) (x11-color 'green  ))  ; for F
+      ((5) (x11-color 'blue   ))  ; for G
+      ((6) (x11-color 'purple ))  ; for A
+      ((0) (x11-color 'violet ))  ; for B
+    )
   )
 )
 
-rainbow = {
-  % Override color so it is obtained from color-notehead Scheme function
-  \override NoteHead #'color = #color-notehead
-}
-
 \relative c' {
-  \rainbow {
-    c2 c' |
-    b4 g8 a b4 c |
-    c,2 a' |
-    g1 |
-  }
+  % Arrange to obtain color from color-notehead procedure
+  \override NoteHead #'color = #color-notehead
+  c2 c' | 
+  b4 g8 a b4 c | 
+  c,2 a' | 
+  g1 |
 }
 \addlyrics {
-  Some -- where o -- ver the Rain -- bow, way up high,
+  Some -- where o -- ver the Rain -- bow way up high,
 }
 @end lilypond
 
index 4f8820da016d072f01a86d28713f352daecd4baa..216f577e89535a0f2f4d71a3b9322acfc564fc56 100644 (file)
@@ -73,7 +73,7 @@ templates contain @code{\version} information.  We
 highly recommend that you always include the @code{\version}, no matter
 how small your file is.  Speaking from personal experience, it's
 quite frustrating to try to remember which version of LilyPond you were
-using a few years ago.  @code{convert-ly} requires you to declare
+using a few years ago.  @command{convert-ly} requires you to declare
 which version of LilyPond you used.
 
 @item @strong{Include checks}: @ruser{Bar and barnumber checks},
@@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains
 
 @example
 %%%   global.ly
-\version "2.11.38"
+\version @w{"@version{}"}
 #(ly:set-option 'point-and-click #f)
 \include "../init/init-defs.ly"
 \include "../init/init-layout.ly"
index 4c988f754eb83724971cff8d21f78d3121d2771f..7913ed0ad76407f366f13ed43d7e14c82b462021 100644 (file)
@@ -161,6 +161,19 @@ commands.
 
   Do not use @itemize @bullet.
 
+* To get LilyPond version, use @version{} (this does not work inside
+  LilyPond snippets).  If you write "@version{}" (enclosed with
+  quotes), or generally if @version{} is not followed by a space,
+  enclose it with
+
+  @w{ ... }
+
+  e.g.
+
+  @w{"@version{}"}
+
+  to prevent an ugly line break in PDF output.
+
 
 %%%%% SYNTAX SURVEY
 
index b410b2a39e9fd72661e1edddde7c833f8bdff784..7f30c94edca2ae4555372b7875a9906f6f71926d 100644 (file)
@@ -87,15 +87,21 @@ def build_pages_dict (filelist):
 def source_links_replace (m, source_val):
     return 'href="' + os.path.join (source_val, m.group (1)) + '"'
 
-splitted_docs_re = re.compile ('(input/lsr/out-www/snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/')
+splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/')
 
-# On systems without symlinks (e.g. Windows), docs are not very usable
-# Get rid of symlinks references here
+snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
+
+## Windows does not support symlinks.
+# This function avoids creating symlinks for splitted HTML manuals
 # Get rid of symlinks in GNUmakefile.in (local-WWW-post)
 # this also fixes missing PNGs only present in translated docs
-def replace_symlinks_urls (s, prefix):
+def hack_urls (s, prefix):
     if splitted_docs_re.match (prefix):
         s = re.sub ('(href|src)="(lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
+
+    # fix Snippets xrefs ad hoc
+    s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
+
     source_path = os.path.join (os.path.dirname (prefix), 'source')
     if not os.path.islink (source_path):
         return s
@@ -262,7 +268,7 @@ def add_html_footer (translation,
             in_f.close()
 
             s = re.sub ('%', '%%', s)
-            s = replace_symlinks_urls (s, prefix)
+            s = hack_urls (s, prefix)
             s = add_header (s)
 
             ### add footer
index c026522434e37b77a453592aaca71487c2e5b1b3..e2df5a6bc3fbb2f282d755bd54f17a7f1fa8d8d3 100644 (file)
@@ -81,15 +81,15 @@ for opt in options:
         raise Exception ('unknown option: ' + o)
 
 def name2line (n):
-    # UGR
     s = r"""
 @ifhtml
 @html
-<A NAME="%s"></A>
+<a name="%s"></a>
 @end html
 @end ifhtml
 
-@lilypondfile[%s]{%s}""" % (n, fragment_options, n)
+@lilypondfile[%s]{%s}
+""" % (os.path.basename (n), fragment_options, n)
     return s
 
 if files:
index 494b59b881330529dbd39a9b2e2ec732f19e0ad4..0242e973a5a1bbf2b21ec659f6408c9f6e9833c4 100644 (file)
@@ -5,8 +5,8 @@ USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
 
   This script must be run from Documentation/
 
-  Reads template files translations.template.html
-and for each LANG in LANGUAGES LANG/translations.template.html
+  Reads template files translations.template.html.in
+and for each LANG in LANGUAGES LANG/translations.template.html.in
 
   Writes translations.html.in and for each LANG in LANGUAGES
 translations.LANG.html.in
@@ -17,6 +17,7 @@ import re
 import string
 import os
 import gettext
+import subprocess
 
 def progress (str):
     sys.stderr.write (str + '\n')
@@ -38,11 +39,17 @@ for l in langdefs.LANGUAGES:
         translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
 
 def read_pipe (command):
-    pipe = os.popen (command)
-    output = pipe.read ()
-    if pipe.close ():
+    child = subprocess.Popen (command,
+                              stdout = subprocess.PIPE,
+                              stderr = subprocess.PIPE,
+                              shell = True)
+    (output, error) = child.communicate ()
+    code = str (child.wait ())
+    if not child.stdout or child.stdout.close ():
         print "pipe failed: %(command)s" % locals ()
-    return output
+    if code != '0':
+        error = code + ' ' + error
+    return (output, error)
 
 comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
 space_re = re.compile (r'\s+', re.M)
@@ -68,6 +75,7 @@ format_table = {
     'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
     'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
     'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+    'N/A': {'short':_doc ('N/A'), 'long':'', 'color':'d587ff' },
     'pre-GDP':_doc ('pre-GDP'),
     'post-GDP':_doc ('post-GDP')
 }
@@ -84,44 +92,42 @@ texi_level = {
     'appendix': ('l', 1)
 }
 
-appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
+appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY',
+                                          'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
 
 class SectionNumber (object):
     def __init__ (self):
-        self.__current_number = [0]
-        self.__type = 'n'
+        self.__data = [[0,'u']]
 
     def __increase_last_index (self):
-        if isinstance (self.__current_number[-1], str):
-            self.__current_number[-1] = self.__current_number[-1].translate (appendix_number_trans)
-        else:
-            self.__current_number[-1] += 1
+        type = self.__data[-1][1]
+        if type == 'l':
+            self.__data[-1][0] = self.__data[-1][0].translate (appendix_number_trans)
+        elif type == 'n':
+            self.__data[-1][0] += 1
 
-    # ugh, current implementation is too naive:
-    # unnumbered stuff is really printed without number for @top only
     def format (self):
-        if self.__current_number == [0] or self.__type == 'u':
+        if self.__data[-1][1] == 'u':
             return ''
-        return '.'.join ([str (i) for i in self.__current_number[1:]]) + ' '
+        return '.'.join ([str (i[0]) for i in self.__data if i[1] != 'u']) + ' '
 
     def increase (self, (type, level)):
         if level == 0:
-            self.__current_number = [0]
-        while level + 1 < len (self.__current_number):
-            del self.__current_number[-1]
-        if level + 1 > len (self.__current_number):
-            self.__type = type
+            self.__data = [[0,'u']]
+        while level + 1 < len (self.__data):
+            del self.__data[-1]
+        if level + 1 > len (self.__data):
+            self.__data.append ([0, type])
             if type == 'l':
-                self.__current_number.append ('@')
-            else:
-                self.__current_number.append (0)
-
-        if type == self.__type:
+                self.__data[-1][0] = '@'
+        if type == self.__data[-1][1]:
             self.__increase_last_index ()
-        elif type == 'l' and level == 1:
-            self.__current_number[-1] = 'A'
         else:
-            self.__current_number[-1] = 1
+            self.__data[-1] = ([0, type])
+            if type == 'l':
+                self.__data[-1][0] = 'A'
+            elif type == 'n':
+                self.__data[-1][0] = 1
         return self.format ()
 
 
@@ -135,12 +141,6 @@ def percentage_color (percent):
         c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
     return ''.join (c)
 
-def line_word_count (tely_line):
-    if tely_line.startswith ('@'):
-        return 0
-    tely_line = comments_re.sub ('', tely_line)
-    return len (space_re.split (tely_line))
-
 def tely_word_count (tely_doc):
     '''
     Calculate word count of a Texinfo document node by node.
@@ -223,21 +223,26 @@ class TranslatedTelyDocument (TelyDocument):
                                   'the whole file against the original in English, then ' + \
                                   'fill in HEAD committish in the header.\n')
             sys.exit (1)
-        diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
-        insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
-        deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
-        outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
-        self.uptodate_percentage = 100 - int (outdateness_percentage)
-        if self.uptodate_percentage > 100:
-            alternative = 50
-            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
-                          % (self.filename, self.uptodate_percentage, alternative))
-            self.uptodate_percentage = alternative
-        elif self.uptodate_percentage < 1:
-            alternative = 1
-            progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
-                          % (self.filename, self.uptodate_percentage, alternative))
-            self.uptodate_percentage = alternative
+        (diff_string, error) = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename})
+        if error:
+            sys.stderr.write ('warning: %s: %s' % (self.filename, error))
+            self.uptodate_percentage = None
+        else:
+            diff = diff_string.splitlines ()
+            insertions = sum ([len (l) - 1 for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+            deletions = sum ([len (l) - 1 for l in diff if l.startswith ('-') and not l.startswith ('---')])
+            outdateness_percentage = 50.0 * (deletions + insertions) / (masterdocument.size + 0.5 * (deletions - insertions))
+            self.uptodate_percentage = 100 - int (outdateness_percentage)
+            if self.uptodate_percentage > 100:
+                alternative = 50
+                progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                              % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
+            elif self.uptodate_percentage < 1:
+                alternative = 1
+                progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+                              % (self.filename, self.uptodate_percentage, alternative))
+                self.uptodate_percentage = alternative
 
     def completeness (self, formats=['long']):
         if isinstance (formats, str):
@@ -255,13 +260,15 @@ class TranslatedTelyDocument (TelyDocument):
         if isinstance (formats, str):
             formats = [formats]
         p = self.uptodate_percentage
-        if p == 100:
+        if p == None:
+            status = 'N/A'
+        elif p == 100:
             status = 'up to date'
         else:
             status = 'outdated'
         l = {}
         for f in formats:
-            if f == 'color':
+            if f == 'color' and p != None:
                 l['color'] = percentage_color (p)
             else:
                 l[f] = format_table[status][f] % locals ()
@@ -298,6 +305,7 @@ class MasterTelyDocument (TelyDocument):
     def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
         #print "init MasterTelyDocument %s" % filename
         TelyDocument.__init__ (self, filename)
+        self.size = len (self.contents)
         self.word_count = tely_word_count (self.contents)
         translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
         #print translations
@@ -338,11 +346,11 @@ class MasterTelyDocument (TelyDocument):
 
 progress ("Reading documents...")
 
-tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
-master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
+master_docs = [MasterTelyDocument (os.path.normpath (filename)) for filename in tely_files]
 master_docs = [doc for doc in master_docs if doc.translations]
 
-main_status_page = open ('translations.template.html').read ()
+main_status_page = open ('translations.template.html.in').read ()
 
 ## TODO
 #per_lang_status_pages = dict ([(l, open (os.path.join (l, 'translations.template.html')). read ())
@@ -351,7 +359,7 @@ main_status_page = open ('translations.template.html').read ()
 
 progress ("Generating status pages...")
 
-main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')[0]
 main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
 
 html_re = re.compile ('<html>', re.I)
@@ -359,7 +367,7 @@ end_body_re = re.compile ('</body>', re.I)
 
 main_status_page = html_re.sub ('''<html>
 <!-- This page is automatically generated by translation-status.py from
-translations.template.html; DO NOT EDIT !-->''', main_status_page)
+translations.template.html.in; DO NOT EDIT !-->''', main_status_page)
 
 main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
 
index e27aeb7d2ee02807205ba95507c793026dff18a4..278895aff93b7cc51ea73e9cd980fe932cfa2e0b 100644 (file)
@@ -82,6 +82,10 @@ for t in targets:
         if not os.path.exists (dest):
             os.symlink (p, dest)
 
+    ## ad-hoc renaming to make xrefs between PDFs work
+    os.rename (os.path.join (out_root, 'input/lsr/lilypond-snippets.pdf'),
+               os.path.join (out_root, 'Documentation/user/lilypond-snippets.pdf'))
+
 # need this for content negotiation with documentation index
 if 'online' in targets:
     f = open (os.path.join (target_pattern % 'online', 'Documentation/.htaccess'), 'w')
index 1ca2cbbf522039e1f7854647bcd263819ad48302..16946ea380e995a088f23360793a473d12894e03 100644 (file)
@@ -6,6 +6,16 @@ STEPMAKE_TEMPLATES=documentation texinfo tex
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 EXTRA_DIST_FILES += README $(call src-wildcard,*.snippet-list)
 
+ifneq ($(out),)
+MAIN_INFO_DOC = lilypond-snippets
+INFO_DOCS = lilypond-snippets
+INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
+INFO_IMAGES_DIR = lilypond-snippets
+DEST_INFO_IMAGES_SUBDIR = input/lsr
+endif
+
+default:
+
 include $(depth)/make/stepmake.make
 
 IN_ITELY_FILES = $(call src-wildcard,*-intro.itely)
@@ -14,14 +24,27 @@ GENERATED_ITELY_FILES = $(IN_ITELY_FILES:%-intro.itely=$(outdir)/%.itely)
 $(outdir)/%.itely: %-intro.itely %.snippet-list
        xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f printfilename,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
 
-$(outdir)/snippets.texi: snippets.tely $(GENERATED_ITELY_FILES)
-       $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $<
+$(outdir)/lilypond-snippets.texi: $(GENERATED_ITELY_FILES)
+
+info: $(INFO_FILES)
+
+ifneq ($(out),www)
+# cancel install-info target and $(INFO_FILES) 'default' target
+# (there is no lilypond-snippets.info without images)
+local-install-info:
+
+$(INFO_FILES):
+       true
+endif
 
-$(outdir)/snippets-big-page.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES)
-       $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+# All web targets, except info image symlinks and info docs are
+# installed in non-recursing target from TOP-SRC-DIR
+local-install-WWW: local-install-info
+local-uninstall-WWW: local-uninstall-info
 
-$(outdir)/snippets/index.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-       mkdir -p $(dir $@)
-       $(MAKEINFO) -I$(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+local-clean:
+       rm -f $(INFO_IMAGES_DIR)
 
-local-WWW: $(outdir)/snippets.pdf $(outdir)/snippets/index.html $(outdir)/snippets-big-page.html
+local-WWW: info $(outdir)/lilypond-snippets.pdf \
+  $(outdir)/lilypond-snippets/index.html \
+  $(outdir)/lilypond-snippets-big-page.html
diff --git a/input/lsr/lilypond-snippets.tely b/input/lsr/lilypond-snippets.tely
new file mode 100644 (file)
index 0000000..85cde17
--- /dev/null
@@ -0,0 +1,141 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
+@setfilename lilypond-snippets.info
+@settitle LilyPond snippets
+@documentencoding UTF-8
+@documentlanguage en
+
+@iftex
+@afourpaper
+@c don't replace quotes with directed quotes
+@tex
+\gdef\SETtxicodequoteundirected{Foo}
+\gdef\SETtxicodequotebacktick{Bla}
+@end tex
+@end iftex
+
+@dircategory GNU LilyPond --- the music typesetter
+@direntry
+* LilyPond Snippets: (lilypond-snippets)        Short tricks, tips, and examples.
+@end direntry
+
+@finalout
+
+@titlepage
+@title LilyPond
+@subtitle The music typesetter
+@titlefont{Snippets}
+@author LilyPond Snippet Repository contributors
+
+@vskip 20pt
+
+This document shows a selected set of LilyPond snippets from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+(LSR). It is in the public domain.
+
+We would like to address many thanks to Sebastiano Vigna for maintaining
+LSR web site and database, and the University of Milano for hosting LSR.
+
+Please note that this document is not an exact subset of LSR: some
+snippets come from @file{input/new} LilyPond sources directory, and
+snippets from LSR are converted through @command{convert-ly}, as LSR is
+based on a stable LilyPond version, and this document is for version
+@value{version}.
+
+Snippets are grouped by tags; tags listed in the table of contents match
+a section of LilyPond notation manual.  Snippets may have several tags,
+and not all LSR tags may appear in this document.
+
+In the HTML version of this document, you can click on the file name
+or figure for each example to see the corresponding input file.
+
+@end titlepage
+
+@iftex
+@contents
+@end iftex
+
+@ifnottex
+@node Top
+@top LilyPond examples
+
+This document shows a selected set of LilyPond snippets from the
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
+(LSR). It is in the public domain.
+
+Please note that it is not an exact subset of LSR: some snippets come
+from @file{input/new} LilyPond sources directory, and snippets from LSR
+are converted through @command{convert-ly}, as LSR is based on a stable
+LilyPond version, and this document is for version @value{version}.
+
+Snippets are grouped by tags; tags listed in the table of contents match
+a section of LilyPond notation manual.  Snippets may have several tags,
+and not all LSR tags may appear in this document.
+
+In the HTML version of this document, you can click on the file name
+or figure for each example to see the corresponding input file.
+@end ifnottex
+
+@c maybe generate/update @menu and @includes automatically? --jm
+@menu
+Musical notation
+* Pitches::
+* Rhythms::
+* Expressive marks::
+* Repeats::
+* Simultaneous notes::
+* Staff notation::
+* Editorial and educational use::
+* Text::
+
+Specialist notation
+* Vocal music::
+* Chords::
+* Piano::
+* Percussion::
+* Guitar::
+* Strings::
+@c * Bagpipes::
+* Ancient notation::
+
+Other collections
+* Contexts and engravers::
+* Tweaks and overrides::
+* Paper and layout::
+* Titles::
+* Spacing::
+* MIDI::
+* Templates::
+@end menu
+
+
+@c Please take care of naming every .itely
+@c with an existing tag name.
+
+@include pitches.itely
+@include rhythms.itely
+@include expressive-marks.itely
+@include repeats.itely
+@include simultaneous-notes.itely
+@include staff-notation.itely
+@include editorial-and-educational-use.itely
+@include text.itely
+
+@include vocal-music.itely
+@include chords.itely
+@include piano-music.itely
+@include percussion.itely
+@include guitar.itely
+@include strings.itely
+@c ignore empty section
+@c @include bagpipes.itely
+@include ancient-notation.itely
+
+@include contexts-and-engravers.itely
+@include tweaks-and-overrides.itely
+@include paper-and-layout.itely
+@include titles.itely
+@include spacing.itely
+@include midi.itely
+@include template.itely
+
+@bye
diff --git a/input/lsr/snippets.tely b/input/lsr/snippets.tely
deleted file mode 100644 (file)
index 5059eb7..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
-@setfilename snippets.info
-@settitle LilyPond snippets
-@documentencoding UTF-8
-@documentlanguage en
-
-@iftex
-@afourpaper
-@c don't replace quotes with directed quotes
-@tex
-\gdef\SETtxicodequoteundirected{Foo}
-\gdef\SETtxicodequotebacktick{Bla}
-@end tex
-@end iftex
-
-@finalout
-
-@titlepage
-@title LilyPond
-@subtitle The music typesetter
-@titlefont{Snippets}
-@author LilyPond Snippet Repository contributors
-
-@vskip 20pt
-
-This document shows a selected set of LilyPond snippets from the
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
-(LSR). It is in the public domain.
-
-We would like to address many thanks to Sebastiano Vigna for maintaining
-LSR web site and database, and the University of Milano for hosting LSR.
-
-Please note that this document is not an exact subset of LSR: some
-snippets come from @file{input/new} LilyPond sources directory, and
-snippets from LSR are converted through @command{convert-ly}, as LSR is
-based on a stable LilyPond version, and this document may be for a newer
-version (see below).
-
-Snippets are grouped by tags; tags listed in the table of contents match
-a section of LilyPond notation manual.  Snippets may have several tags,
-and not all LSR tags may appear in this document.
-
-In the HTML version of this document, you can click on the file name
-or figure for each example to see the corresponding input file.
-
-@lilypond[ragged-right]
-\score {
-  \context Lyrics {
-    \override Score.RehearsalMark #'self-alignment-X = #LEFT
-    \override Score.RehearsalMark #'font-size = #-1
-    \mark #(ly:export (string-append
-      "This document is for LilyPond version " (lilypond-version) "."))
-    s2
-  }
-  \layout {
-    indent = 0.0\pt
-  }
-}
-@end lilypond
-@end titlepage
-
-@iftex
-@contents
-@end iftex
-
-@ifnottex
-@node Top
-@top LilyPond examples
-
-This document shows a selected set of LilyPond snippets from the
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
-(LSR). It is in the public domain.
-
-Please note that it is not an exact subset of LSR: some snippets come
-from @file{input/new} LilyPond sources directory, and snippets from LSR
-are converted through @command{convert-ly}, as LSR is based on a stable
-LilyPond version, and this document may be for a newer version (see
-below).
-
-Snippets are grouped by tags; tags listed in the table of contents match
-a section of LilyPond notation manual.  Snippets may have several tags,
-and not all LSR tags may appear in this document.
-
-In the HTML version of this document, you can click on the file name
-or figure for each example to see the corresponding input file.
-@end ifnottex
-
-@c maybe generate/update @menu and @includes automatically? --jm
-@menu
-Musical notation
-* Pitches::
-* Rhythms::
-* Expressive marks::
-* Repeats::
-* Simultaneous notes::
-* Staff notation::
-* Editorial and educational use::
-* Text::
-
-Specialist notation
-* Vocal music::
-* Chords::
-* Piano::
-* Percussion::
-* Guitar::
-* Strings::
-@c * Bagpipes::
-* Ancient notation::
-
-Other collections
-* Contexts and engravers::
-* Tweaks and overrides::
-* Paper and layout::
-* Titles::
-* Spacing::
-* MIDI::
-* Templates::
-@end menu
-
-
-@c Please take care of naming every .itely
-@c with an existing tag name.
-
-@include pitches.itely
-@include rhythms.itely
-@include expressive-marks.itely
-@include repeats.itely
-@include simultaneous-notes.itely
-@include staff-notation.itely
-@include editorial-and-educational-use.itely
-@include text.itely
-
-@include vocal-music.itely
-@include chords.itely
-@include piano-music.itely
-@include percussion.itely
-@include guitar.itely
-@include strings.itely
-@c ignore empty section
-@c @include bagpipes.itely
-@include ancient-notation.itely
-
-@include contexts-and-engravers.itely
-@include tweaks-and-overrides.itely
-@include paper-and-layout.itely
-@include titles.itely
-@include spacing.itely
-@include midi.itely
-@include template.itely
-
-@bye
index 6022cb472594d4bdd05423c79753bb907029dd6a..340971876f3630d452ad3881d68dcf74657366e3 100644 (file)
       d'8-2 \staccato
       |
       c'4-3
-      r8
-      r16.
-      c'32-3 \pp
-      |
-      c'8-2
-      r16.
-      c'32
-      c'8
-      r16.
-      c'32
-      |
-      c'8
+      r4
    }
    
    % LH Staff
       d8-2 \staccato
       |
       c4-3
-      r8
-      r16.
-      c32-3
-      |
-      c8-2
-      r16.
-      c32
-      c8
-      r16.
-      c32
-      |
-      c8
+      r4
    }
 
 >>
index cbb8dc62ede1a132d4bc56e8bd698287656fba50..c42439e04b8a857a97d49d155344e0b2e4fbf205 100644 (file)
   <part id="P1">
     <measure number="1">
       <attributes>
-        <divisions>32</divisions>
+        <divisions>64</divisions>
         <key>
           <fifths>0</fifths>
           <mode>major</mode>
         </key>
-        <time symbol="common">
-          <beats>4</beats>
+        <time>
+          <beats>16</beats>
           <beat-type>4</beat-type>
         </time>
         <clef>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>128</duration>
-        <tie type="start"/>
+        <duration>1024</duration>
         <voice>1</voice>
-        <type>whole</type>
-        <notations>
-          <tied type="start"/>
-        </notations>
+        <type>longa</type>
       </note>
     </measure>
     <!--=======================================================-->
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>128</duration>
-        <tie type="stop"/>
+        <duration>512</duration>
         <voice>1</voice>
-        <type>whole</type>
-        <notations>
-          <tied type="stop"/>
-        </notations>
+        <type>breve</type>
       </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="3">
       <note>
         <pitch>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>128</duration>
+        <duration>256</duration>
         <voice>1</voice>
         <type>whole</type>
       </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="4">
       <note>
         <pitch>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>64</duration>
+        <duration>128</duration>
         <voice>1</voice>
         <type>half</type>
         <stem>down</stem>
@@ -89,7 +75,7 @@
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>32</duration>
+        <duration>64</duration>
         <voice>1</voice>
         <type>quarter</type>
         <stem>down</stem>
@@ -99,7 +85,7 @@
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>16</duration>
+        <duration>32</duration>
         <voice>1</voice>
         <type>eighth</type>
         <stem>down</stem>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>8</duration>
+        <duration>16</duration>
         <voice>1</voice>
         <type>16th</type>
         <stem>down</stem>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>4</duration>
+        <duration>8</duration>
         <voice>1</voice>
         <type>32nd</type>
         <stem>down</stem>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>2</duration>
+        <duration>4</duration>
         <voice>1</voice>
         <type>64th</type>
         <stem>down</stem>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>1</duration>
+        <duration>2</duration>
         <voice>1</voice>
         <type>128th</type>
         <stem>down</stem>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>1</duration>
+        <duration>2</duration>
         <voice>1</voice>
         <type>128th</type>
         <stem>down</stem>
       </note>
     </measure>
     <!--=======================================================-->
+    <measure number="4">
+      <attributes>
+        <time>
+          <beats>24</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1536</duration>
+        <voice>1</voice>
+        <type>longa</type>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
     <measure number="5">
       <note>
         <pitch>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>96</duration>
+        <duration>768</duration>
         <voice>1</voice>
-        <type>half</type>
+        <type>breve</type>
         <dot/>
-        <stem>down</stem>
       </note>
       <note>
         <pitch>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>32</duration>
+        <duration>384</duration>
         <voice>1</voice>
-        <type>quarter</type>
-        <stem>down</stem>
+        <type>whole</type>
+        <dot/>
       </note>
-    </measure>
-    <!--=======================================================-->
-    <measure number="6">
       <note>
         <pitch>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>48</duration>
+        <duration>192</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>96</duration>
         <voice>1</voice>
         <type>quarter</type>
         <dot/>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>24</duration>
+        <duration>48</duration>
         <voice>1</voice>
         <type>eighth</type>
         <dot/>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>12</duration>
+        <duration>24</duration>
         <voice>1</voice>
         <type>16th</type>
         <dot/>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>6</duration>
+        <duration>12</duration>
         <voice>1</voice>
         <type>32nd</type>
         <dot/>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>3</duration>
+        <duration>6</duration>
         <voice>1</voice>
         <type>64th</type>
         <dot/>
-        <stem>down</stem>
         <beam number="1">continue</beam>
         <beam number="2">continue</beam>
         <beam number="3">continue</beam>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>2</duration>
+        <duration>3</duration>
         <voice>1</voice>
         <type>128th</type>
         <dot/>
-        <stem>down</stem>
         <beam number="1">continue</beam>
         <beam number="2">continue</beam>
         <beam number="3">continue</beam>
           <step>C</step>
           <octave>5</octave>
         </pitch>
-        <duration>2</duration>
+        <duration>3</duration>
         <voice>1</voice>
         <type>128th</type>
         <dot/>
-        <stem>down</stem>
         <beam number="1">end</beam>
         <beam number="2">end</beam>
         <beam number="3">end</beam>
         <beam number="4">end</beam>
         <beam number="5">end</beam>
       </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="6">
+      <attributes>
+        <time>
+          <beats>28</beats>
+          <beat-type>4</beat-type>
+        </time>
+      </attributes>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>1792</duration>
+        <voice>1</voice>
+        <type>longa</type>
+        <dot/>
+        <dot/>
+      </note>
+    </measure>
+    <!--=======================================================-->
+    <measure number="7">
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>896</duration>
+        <voice>1</voice>
+        <type>breve</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>448</duration>
+        <voice>1</voice>
+        <type>whole</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>224</duration>
+        <voice>1</voice>
+        <type>half</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>112</duration>
+        <voice>1</voice>
+        <type>quarter</type>
+        <dot/>
+        <dot/>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>56</duration>
+        <voice>1</voice>
+        <type>eighth</type>
+        <dot/>
+        <dot/>
+        <beam number="1">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>28</duration>
+        <voice>1</voice>
+        <type>16th</type>
+        <dot/>
+        <dot/>
+        <beam number="1">continue</beam>
+        <beam number="2">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>14</duration>
+        <voice>1</voice>
+        <type>32nd</type>
+        <dot/>
+        <dot/>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>7</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+        <dot/>
+        <beam number="1">continue</beam>
+        <beam number="2">continue</beam>
+        <beam number="3">continue</beam>
+        <beam number="4">begin</beam>
+      </note>
+      <note>
+        <pitch>
+          <step>C</step>
+          <octave>5</octave>
+        </pitch>
+        <duration>7</duration>
+        <voice>1</voice>
+        <type>64th</type>
+        <dot/>
+        <dot/>
+        <beam number="1">end</beam>
+        <beam number="2">end</beam>
+        <beam number="3">end</beam>
+        <beam number="4">end</beam>
+      </note>
       <barline location="right">
         <bar-style>light-heavy</bar-style>
       </barline>
index e9f18461a133b332eb204f2aef3288ca93c6387e..7c629297387815c90809610f2144e52517943e9e 100644 (file)
@@ -100,7 +100,7 @@ Line_spanner::calc_bound_info (SCM smob, Direction dir)
        }
       
       details = scm_acons (ly_symbol2scm ("X"),
-                          scm_from_double (bound_grob->extent (commonx, X_AXIS)
+                          scm_from_double (robust_relative_extent (bound_grob, commonx, X_AXIS)
                                            .linear_combination (attach)),
                           details);
     }
@@ -343,7 +343,7 @@ Line_spanner::print (SCM smob)
   line.translate (Offset (-me->relative_coordinate (commonx, X_AXIS),
                          -me->relative_coordinate (my_common_y, Y_AXIS)));
                          
-    
+
   return line.smobbed_copy ();
 }
 
index 9f4832628fb455e8e57169e642490bc9ff340894..07943858a636a18b0248c7475d0c3229c43689e2 100644 (file)
@@ -14,7 +14,7 @@
 
 
 /*
-  If a variable in changed in SRC, we DEST doesn't see the
+  If a variable is changed in SRC, then DEST doesn't see the
   definitions.
 */
 
index 8ee404cb067e5a0d1468ed69112a09d9b88f516a..5ba8fe4872ad9c27f3e70db15aa863a3845a3a5e 100644 (file)
@@ -575,7 +575,6 @@ ADD_INTERFACE (Note_collision_interface,
               "@code{force-hshift} and @code{horizontal-shift}.",
 
               /* properties */
-              "ignore-collision "
               "merge-differently-dotted "
               "merge-differently-headed "
               "positioning-done ");
index 68075fc25001306a2033b529d48fbc34c59053a8..e1a8e695fd16474e616a5cadad5a4bb8e959dc76 100644 (file)
@@ -216,6 +216,7 @@ ADD_INTERFACE (Note_column,
               "arpeggio "
               "force-hshift "
               "horizontal-shift "
+              "ignore-collision "
               "note-heads "
               "rest "
               "rest-collision "
index 41962e0c594c5e3880aa5d2548fd8fe230de83c6..eb37ee3093e8f2747d5c7f03fae9b3799bcc5fb6 100644 (file)
@@ -23,8 +23,7 @@ BRACES = a b c d e f g h i
 
 OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf) \
            $(outdir)/aybabtu.otf
-PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) \
-            $(STAFF_SIZES:%=$(outdir)/emmentaler-%.dep)
+PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe)
 OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \
             $(BRACES:%=$(outdir)/feta-braces-%.otf-table)
 FETA_FONTS = $(FETA_MF_FILES:.mf=)
@@ -174,12 +173,11 @@ tree-regen:
 $(outdir)/%.lisp \
 $(outdir)/%.otf-gtable \
 $(outdir)/%.enc \
-$(outdir)/%.dep: $(outdir)/%.log
+$(outdir)/%.pe: $(outdir)/%.log
        $(PYTHON) $(buildscript-dir)/mf-to-table.py \
                  --global-lisp=$(outdir)/$(<F:.log=.otf-gtable) \
                  --lisp=$(outdir)/$(<F:.log=.lisp) \
                  --outdir=$(outdir) \
-                 --dep $(outdir)/$(<F:.log=.dep) \
                  --enc $(outdir)/$(<F:.log=.enc) \
                  $<
 
index 8c29dc99cfc928de5dc8cc1052e8ecaef7ddb244..22ed07ad6072fac7c4d164ca80813fef6bc13c91 100644 (file)
@@ -390,7 +390,7 @@ conversions.append (((1,3,38), conv, '\musicalpitch { a b c } -> #\'(a b c)'))
 
 def conv (str):
     def replace (match):
-       return '\\key %s;' % string.lower (match.group (1))
+       return '\\key %s;' % match.group (1).lower ()
 
     str = re.sub ("\\\\key ([^;]+);",  replace, str)
     return str
@@ -619,7 +619,7 @@ def regularize_id (str):
         elif x not in string.letters:
             x = 'x'
         elif x in string.lowercase and lastx == '_':
-            x = string.upper (x)
+            x = x.upper ()
         s = s + x
         lastx = x
     return s
@@ -991,7 +991,7 @@ def conv(str):
            'set-point-and-click!'
            ]
 
-    origre = r'\b(%s)' % string.join (changed, '|')
+    origre = r'\b(%s)' % '|'.join (changed)
 
     str = re.sub (origre, r'ly:\1',str)
     str = re.sub ('set-point-and-click!', 'set-point-and-click', str)
@@ -1034,7 +1034,7 @@ def conv(str):
             'sfz',
             ]
 
-    origstr = string.join (kws, '|')
+    origstr = '|'.join (kws)
     str = re.sub (r'([^_^-])\\(%s)\b' % origstr, r'\1-\\\2', str)
     return str
 conversions.append (((1,7,6), conv, 'note\\script -> note-\script'))
@@ -1296,9 +1296,8 @@ def sub_chord (m):
 
     ## end of while <>
 
-    suffix = string.join (slur_strs, '') + string.join (pslur_strs,
-                                                       '') \
-            + string.join (dyns, '')
+    suffix = ''.join (slur_strs) + ''.join (pslur_strs) \
+            + ''.join (dyns)
 
     return '@STARTCHORD@%s@ENDCHORD@%s%s' % (str , dur_str, suffix)
 
@@ -1651,7 +1650,7 @@ conversions.append (((1,9,8), conv, """dash-length -> dash-fraction"""))
 
 def conv (str):
     def func(match):
-       return "#'font-size = #%d" % (2*string.atoi (match.group (1)))
+       return "#'font-size = #%d" % (2*int (match.group (1)))
 
     str =re.sub (r"#'font-relative-size\s*=\s*#\+?([0-9-]+)", func, str)
     str =re.sub (r"#'font-family\s*=\s*#'ancient",
@@ -1711,8 +1710,8 @@ def conv (str):
 
     def sub_note (match):
        dur = ''
-       log = string.atoi (match.group (1))
-       dots = string.atoi (match.group (2))
+       log = int (match.group (1))
+       dots = int (match.group (2))
 
        if log >= 0:
            dur = '%d' % (1 << log)
index fa73a9961d0e0610b477464de47a32ef45492b16..ee9505f37f8eaa7c4c8094d11c538cdfd84f4d10 100644 (file)
@@ -3,7 +3,6 @@ import re
 import getopt
 import sys
 import os
-import string
 
 dsr_font_regex = re.compile ('%%DocumentSuppliedResources: font (.*)')
 begin_font_regex = re.compile ('%%BeginFont: (.*)')
@@ -66,7 +65,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename):
                in_font = 0
 
                if curr_font_name in extract_from_this:
-                   font_dict[curr_font_name] = string.join (curr_font, '')
+                   font_dict[curr_font_name] = ''.join (curr_font)
                    if verbose:
                        sys.stderr.write (_('Extracted %s')
                                          % curr_font_name + '\n')
@@ -79,7 +78,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename):
 
        if extract_from_this:
            sys.stderr.write ("Failed to extract %s from %s\n"
-                             % (string.join (extract_from_this, ', '), filename))
+                             % (', '.join (extract_from_this), filename))
 
 def write_extracted_fonts (output_file_name, font_dict):
     if verbose:
index cfa5e67d0a7b0de58428f76b3ea96efac1cecdc1..f9cbff2c60a84ee84a3ebeb772e6eacc720b9adc 100644 (file)
@@ -11,7 +11,6 @@ import glob
 import os
 import re
 import shutil
-import string
 import sys
 import optparse
 
@@ -185,7 +184,7 @@ def strip_extension (f, ext):
 
 def search_exe_path (name):
     p = os.environ['PATH']
-    exe_paths = string.split (p, ':')
+    exe_paths = p.split (':')
     for e in exe_paths:
        full = os.path.join (e, name)
        if os.path.exists (full):
index adce6911013d207cbb5042f068d3ab975ad9b0a5..862b5d8c4f70f5148c0a5b1899588b1859014c59 100644 (file)
@@ -2,9 +2,9 @@ import inspect
 import sys
 import string
 import re
-import lilylib
+import lilylib as ly
 
-_ = lilylib._
+_ = ly._
 
 from rational import Rational
 
@@ -155,8 +155,12 @@ class Duration:
     def ly_expression (self, factor = None):
         if not factor:
             factor = self.factor
-            
-        str = '%d%s' % (1 << self.duration_log, '.'*self.dots)
+
+        if self.duration_log < 0:
+            str = {-1: "\\breve", -2: "\\longa"}.get (self.duration_log, "1")
+        else:
+            str = '%d' % (1 << self.duration_log)
+        str += '.'*self.dots
 
         if factor <> Rational (1,1):
             if factor.denominator () <> 1:
index e9d1ef8bedebd195450a78660f3ff716379dbc5e..7c398e1e5d7a5f73a97b3a25d22bcbf37122f289 100644 (file)
@@ -5,9 +5,9 @@ from rational import *
 import re
 import sys
 import copy
-import lilylib
+import lilylib as ly
 
-_ = lilylib._
+_ = ly._
 
 def error (str):
     ly.stderr_write ((_ ("error: %s") % str) + "\n")
@@ -51,7 +51,7 @@ class Xml_node:
        return ''.join ([c.get_text () for c in self._children])
 
     def message (self, msg):
-        lilylib.stderr_write (msg+'\n')
+        ly.stderr_write (msg+'\n')
 
         p = self
         while p:
@@ -340,7 +340,7 @@ class Note (Measure_element):
                     'half': 1,
                     'whole': 0,
                     'breve': -1,
-                    'long': -2}.get (log, 0)
+                    'longa': -2}.get (log, 0)
        elif self.get_maybe_exist_named_child (u'grace'):
            # FIXME: is it ok to default to eight note for grace notes?
            return 3
@@ -379,7 +379,7 @@ class Part_list (Music_xml_node):
         if instrument_name:
             return instrument_name
         else:
-            lilylib.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id)
+            ly.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id)
             return "Grand Piano"
 
 class Part_group (Music_xml_node):
index e5efca01d41271a7c472722ec56d63078751e55d..708214d3154fce87e7d8698328bdb95a15e761ca 100644 (file)
@@ -12,7 +12,6 @@
 
 import os
 import sys
-import string
 import re
 
 """
@@ -92,19 +91,26 @@ def get_option_parser ():
     
     p.add_option ('-e', '--edit', help=_ ("edit in place"),
               action='store_true')
+
     p.add_option ('-n', '--no-version',
               help=_ ("do not add \\version command if missing"),
               action='store_true',
               dest='skip_version_add',
               default=False)
+
+    p.add_option ('-c', '--current-version',
+              help=_ ("force updating \\version number to %s") % program_version,
+              action='store_true',
+              dest='force_current_version',
+              default=False)
     
     p.add_option ("-s", '--show-rules',
-              help=_ ("show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"),
+              help=_ ("show rules [default: --from=0, --to=%s]") % program_version,
               dest='show_rules',
               action='store_true', default=False)
     
     p.add_option ('-t', '--to',
-              help=_ ("convert to VERSION [default: @TOPLEVEL_VERSION@]"),
+              help=_ ("convert to VERSION [default: %s]") % program_version,
               metavar=_ ('VERSION'),
               action='store',
               dest="to_version",
@@ -120,10 +126,10 @@ def get_option_parser ():
 
 
 def str_to_tuple (s):
-    return tuple (map (int, string.split (s, '.')))
+    return tuple ([int(n) for n in s.split ('.')])
 
 def tup_to_str (t):
-    return string.join (map (lambda x: '%s' % x, list (t)), '.')
+    return '.'.join (['%s' % x for x in t])
 
 def version_cmp (t1, t2):
     for x in [0, 1, 2]:
@@ -173,9 +179,8 @@ string."""
 
 
 
-def guess_lilypond_version (filename):
-    s = open (filename).read ()
-    m = lilypond_version_re.search (s)
+def guess_lilypond_version (input):
+    m = lilypond_version_re.search (input)
     if m:
         return m.group (1)
     else:
@@ -191,12 +196,19 @@ def do_one_file (infile_name):
     ly.stderr_write (_ ("Processing `%s\'... ") % infile_name)
     sys.stderr.write ('\n')
 
+    if infile_name:
+        infile = open (infile_name, 'r')
+        input = infile.read ()
+        infile.close ()
+    else:
+        input = sys.stdin.read ()
+
     from_version = None
     to_version = None
     if global_options.from_version:
         from_version = global_options.from_version
     else:
-        guess = guess_lilypond_version (infile_name)
+        guess = guess_lilypond_version (input)
         if not guess:
             raise UnknownVersion ()
         from_version = str_to_tuple (guess)
@@ -207,16 +219,12 @@ def do_one_file (infile_name):
         to_version = latest_version ()
 
 
-    if infile_name:
-        infile = open (infile_name, 'r')
-    else:
-        infile = sys.stdin
-
-
-    (last, result) = do_conversion (infile.read (), from_version, to_version)
-    infile.close ()
+    (last, result) = do_conversion (input, from_version, to_version)
 
     if last:
+        if global_options.force_current_version and last == to_version:
+            last = str_to_tuple (program_version)
+
         newversion = r'\version "%s"' % tup_to_str (last)
         if lilypond_version_re.search (result):
             result = re.sub (lilypond_version_re_str,
index dee8223de6e66d51cdd85f2b6268f963cc2ddba4..7fe8210a9d6b312fb30074aba22db21e17c7e52e 100644 (file)
@@ -197,6 +197,7 @@ default_ly_options = { 'alt': "[image of music]" }
 #
 # Is this pythonic?  Personally, I find this rather #define-nesque. --hwn
 #
+ADDVERSION = 'addversion'
 AFTER = 'after'
 BEFORE = 'before'
 DOCBOOK = 'docbook'
@@ -514,7 +515,8 @@ simple_options = [
     VERBATIM,
     FONTLOAD,
     FILENAME,
-    ALT
+    ALT,
+    ADDVERSION
 ]
 
 ly_options = {
@@ -679,9 +681,14 @@ output = {
 ''',
 
         VERBATIM: r'''@exampleindent 0
-@verbatim
+%(version)s@verbatim
 %(verb)s@end verbatim
 ''',
+
+        ADDVERSION: r'''@example
+\version @w{"@version{}"}
+@end example
+'''
     },
 }
 
@@ -1244,20 +1251,13 @@ class Lilypond_snippet (Snippet):
         str = ''
         if PRINTFILENAME in self.option_dict:
             base = self.basename ()
-            filename = self.substring ('filename')
-            str = output[global_options.format][PRINTFILENAME] % vars ()
+            filename = os.path.basename (self.substring ('filename'))
+            str = output[format][PRINTFILENAME] % vars ()
 
         return str
 
     def output_texinfo (self):
-        str = ''
-        if self.output_print_filename (TEXINFO):
-            str += ('@html\n'
-                + self.output_print_filename (HTML)
-                + '\n@end html\n')
-            str += ('@tex\n'
-                + self.output_print_filename (LATEX)
-                + '\n@end tex\n')
+        str = self.output_print_filename (TEXINFO)
         base = self.basename ()
         if TEXIDOC in self.option_dict:
             texidoc = base + '.texidoc'
@@ -1266,10 +1266,11 @@ class Lilypond_snippet (Snippet):
 
         substr = ''
         if VERBATIM in self.option_dict:
+            version = ''
+            if ADDVERSION in self.option_dict:
+                version = output[TEXINFO][ADDVERSION]
             verb = self.verb_ly ()
-            substr += output[TEXINFO][VERBATIM] % vars ()
-            if not QUOTE in self.option_dict:
-                substr = output[TEXINFO][NOQUOTE] % {'str':substr}
+            substr = output[TEXINFO][VERBATIM] % vars ()
         substr += self.output_info ()
         if LILYQUOTE in self.option_dict:
             substr = output[TEXINFO][QUOTE] % {'str':substr}
index e594aa7d47bbd6dbfdaacff8b7047c9bef0c0fe9..f808a8325b5a67655ac0cd3ffce223258a332150 100644 (file)
@@ -1386,6 +1386,7 @@ class LilyPondVoiceBuilder:
                 else:
                     duration_factor = Rational (diff.numerator ())
             else:
+                # for skips of a whole or more, simply use s1*factor
                 duration_log = 0
                 duration_factor = diff
             skip.duration.duration_log = duration_log
index 875a5e929cbfc83bf80d902aacf839bb46330fe9..488b81f24bac9423cce410b380e337f505f694e7 100644 (file)
@@ -11,8 +11,6 @@ check-info: texinfo-all-menus-update
 ## info stuff
 local-install: install-info
 local-uninstall: uninstall-info
-local-install-info:
-local-uninstall-info:
 install-info: local-install-info
 uninstall-info: local-uninstall-info
 
@@ -22,6 +20,79 @@ install-info: $(INFO_FILES)
 uninstall-info:
        $(INFO_INSTALL_COMMAND) local-uninstall
 
+ifeq ($(INFO_FILES),)
+local-install-info:
+local-uninstall-info:
+
+else # $(INFO_FILES) non empty
+# There are two modes for info: with and without images.
+ifeq ($(out),www)
+
+# This builds all .info targets with images, in out-www.
+# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
+
+local-install-info: info
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
+## Can not have absolute symlinks because some binary packages build schemes
+## install files in nonstandard root.  Best we can do is to notify the
+## builder or packager.
+       @echo
+       @echo "***************************************************************"
+       @echo "Please add or update the LilyPond direntries, do"
+       @echo
+       @echo "    install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info"
+       @echo
+       @echo "For images in the INFO docs to work, do: "
+       @echo
+       @echo "    (cd $(infodir) && ln -sfT ../doc/lilypond/html/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR))"
+       @echo "or add something like that to the postinstall script."
+       @echo
+else # installing directly into standard /usr/...
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+       $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
+       install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
+       cd $(infodir) && ln -sfT $(webdir)/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR)
+endif # installing directly into standard /usr/...
+
+local-uninstall-WWW:
+       rm -f $(infodir)/$(INFO_IMAGES_DIR)
+
+else # out!=www
+
+local-install-info: info
+       -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
+## Can not have absolute symlinks because some binary packages build schemes
+## install files in nonstandard root.  Best we can do is to notify the
+## builder or packager.
+       @echo
+       @echo "***************************************************************"
+       @echo "Please add or update the LilyPond direntries, do"
+       @echo
+       @echo "    install-info --info-dir=$(infodir) out/$(MAIN_INFO_DOC).info"
+       @echo
+       @echo "For images in the INFO docs to work, do"
+       @echo
+       @echo "    make out=www install-info "
+       @echo
+       @echo "and read the extra instructions."
+       @echo
+else # installing directly into standard /usr/...
+       -$(INSTALL) -d $(DESTDIR)$(infodir)
+       $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true
+       install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info
+       @echo
+       @echo "***************************************************************"
+       @echo "For images in the INFO docs to work, do"
+       @echo
+       @echo "    make out=www install-info "
+       @echo
+endif # installing into standard /usr/* root# installing into /usr/...
+
+endif # out!=www
+
+endif # $(INFO_FILES) non empty
 
 TEXINFO_ALL_MENUS_UPDATE_EL ='\
   (let ((error nil)\
index d36ff83b81db972664de69f49987e9341cab6a6c..bd620ab56cf4348495b62003b11a3cb40c5bd641 100644 (file)
@@ -7,11 +7,13 @@ TEXINFO_SOURCES = $(TEXI_FILES)
 
 OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt))
 
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
 GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@))  --version $(TOPLEVEL_VERSION) $< > $@
 
+TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
 TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
 
-MAKEINFO_FLAGS = --enable-encoding
+MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)'
 MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
 
 
index c49e670b02db360f171da3efcfb64ee430086c0a..736cc48e2633051e5f8455ef47a1cf480ae439a8 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2007-09-03.05}
+\def\texinfoversion{2008-02-28.18}
 %
-% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007 Free Software Foundation, Inc.
+% 2007, 2008 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -97,6 +97,7 @@
 \let\ptexslash=\/
 \let\ptexstar=\*
 \let\ptext=\t
+\let\ptextop=\top
 
 % If this character appears in an error message or help string, it
 % starts a new line in the output.
@@ -916,15 +917,18 @@ where each line of input produces a line of output.}
   \temp
 }
 
-% @include file    insert text of that file as input.
+% @include FILE -- \input text of FILE.
 %
 \def\include{\parseargusing\filenamecatcodes\includezzz}
 \def\includezzz#1{%
   \pushthisfilestack
   \def\thisfile{#1}%
   {%
-    \makevalueexpandable
-    \def\temp{\input #1 }%
+    \makevalueexpandable  % we want to expand any @value in FILE.  
+    \edef\temp{\noexpand\input #1 }%
+    %
+    % This trickery is to read FILE outside of a group, in case it makes
+    % definitions, etc.
     \expandafter
   }\temp
   \popthisfilestack
@@ -1642,11 +1646,17 @@ output) for that.)}
   }%
 }
 
-%
 % PDF CMaps.  See also LaTeX's t1.cmap.
 %
-% \cmapOT1
-\ifpdf
+% do nothing with this by default.
+\expandafter\let\csname cmapOT1\endcsname\gobble
+\expandafter\let\csname cmapOT1IT\endcsname\gobble
+\expandafter\let\csname cmapOT1TT\endcsname\gobble
+
+% if we are producing pdf, and we have \pdffontattr, then define cmaps.
+% (\pdffontattr was introduced many years ago, but people still run
+% older pdftex's; it's easy to conditionalize, so we do.)
+\ifpdf \ifx\pdffontattr\undefined \else
   \begingroup
     \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
     \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1894,11 +1904,7 @@ end
   \expandafter\edef\csname cmapOT1TT\endcsname#1{%
     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
   }%
-\else
-  \expandafter\let\csname cmapOT1\endcsname\gobble
-  \expandafter\let\csname cmapOT1IT\endcsname\gobble
-  \expandafter\let\csname cmapOT1TT\endcsname\gobble
-\fi
+\fi\fi
 
 
 % Set the font macro #1 to the font named #2, adding on the
@@ -1912,7 +1918,7 @@ end
 }
 % This is what gets called when #5 of \setfont is empty.
 \let\cmap\gobble
-
+% emacs-page end of cmaps
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -2558,6 +2564,13 @@ end
 \let\env=\code
 \let\command=\code
 
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow   (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
 % @uref (abbreviation for `urlref') takes an optional (comma-separated)
 % second argument specifying the text to display and an optional third
 % arg as text to display instead of (rather than in addition to) the url
@@ -2765,6 +2778,7 @@ end
 \chardef\quoteleft=`\`
 \chardef\quoteright=`\'
 
+
 \message{page headings,}
 
 \newskip\titlepagetopglue \titlepagetopglue = 1.5in
@@ -5649,14 +5663,15 @@ end
 
 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
 %
-% Since these characters are used in examples, it should be an even number of
+% Since these characters are used in examples, they should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
 %
 \def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
 \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
 
 % The @error{} command.
 % Adapted from the TeXbook's \boxit.
@@ -5714,6 +5729,7 @@ end
   \let\/=\ptexslash
   \let\*=\ptexstar
   \let\t=\ptext
+  \expandafter \let\csname top\endcsname=\ptextop  % outer
   \let\frenchspacing=\plainfrenchspacing
   %
   \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%