]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into lilypond/translation
authorFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 11 Dec 2008 08:54:01 +0000 (09:54 +0100)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 11 Dec 2008 08:54:01 +0000 (09:54 +0100)
Documentation/user/editorial.itely
Documentation/user/lilypond-book.itely
Documentation/user/music-glossary.tely
Documentation/user/pitches.itely
lily/font-config-scheme.cc
lilypond-texi2html.init
po/lilypond.pot
scripts/lilypond-book.py
stepmake/aclocal.m4

index c8d021a84a545a7d2d0689ba838de5f982c9f80e..568356bef9f4732fb87fd9a5a0e7761fe4a09c7b 100644 (file)
@@ -45,6 +45,7 @@ inside the staff.
 @cindex selecting font size (notation)
 @cindex notation font size
 @cindex note heads
+
 @funindex fontSize
 @funindex font-size
 @funindex magstep
@@ -105,6 +106,7 @@ c4.-> d8---3
 
 @cindex standard font size (notation)
 @cindex font size (notation), standard
+
 @funindex font-interface
 @funindex font-size
 
@@ -119,17 +121,11 @@ that use fonts.  These are the ones supporting the
 
 
 @predefined
-@funindex \teeny
 @code{\teeny},
-@funindex \tiny
 @code{\tiny},
-@funindex \small
 @code{\small},
-@funindex \normalsize
 @code{\normalsize},
-@funindex \large
 @code{\large},
-@funindex \huge
 @code{\huge}.
 @endpredefined
 
@@ -147,6 +143,7 @@ Internals Reference:
 
 @cindex fingering
 @cindex finger change
+
 @funindex \finger
 @funindex finger
 
@@ -164,6 +161,7 @@ c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @end lilypond
 
 @cindex thumb-script
+
 @funindex \thumb
 @funindex thumb
 
@@ -224,6 +222,7 @@ Internals Reference:
 @cindex notes, hidden
 @cindex notes, invisible
 @cindex notes, transparent
+
 @funindex \hideNotes
 @funindex hideNotes
 @funindex \unHideNotes
@@ -273,6 +272,7 @@ Internals Reference:
 @unnumberedsubsubsec Coloring objects
 
 @cindex colored objects
+@cindex objects, colored
 @cindex colors
 @cindex coloring objects
 @cindex colored notes
@@ -281,6 +281,7 @@ Internals Reference:
 @cindex x11 color
 @cindex x11-color
 @cindex with-color
+
 @funindex color
 @funindex \with-color
 @funindex with-color
@@ -330,6 +331,7 @@ b2 cis
 @cindex rgb-color
 @cindex color, rgb
 @cindex rgb color
+
 @funindex rgb-color
 
 Exact RGB colors can be specified using the Scheme function
@@ -363,6 +365,7 @@ Snippets:
 @cindex colored notes in chords
 @cindex notes, colored in chords
 @cindex color in chords
+
 @funindex x11-color
 
 @knownissues
@@ -386,6 +389,7 @@ Notes in a chord cannot be colored with @code{\override}; use
 @cindex notes, ghost
 @cindex notes, parenthesized
 @cindex parentheses
+
 @funindex \parenthesize
 @funindex parenthesize
 
@@ -431,17 +435,21 @@ chord.
 @cindex stem, invisible
 @cindex invisible stem
 
+@funindex \stemUp
+@funindex stemUp
+@funindex \stemDown
+@funindex stemDown
+@funindex \stemNeutral
+@funindex stemNeutral
+
 Whenever a note is found, a @code{Stem} object is created
 automatically.  For whole notes and rests, they are also created but
 made invisible.
 
 
 @predefined
-@funindex \stemUp
 @code{\stemUp},
-@funindex \stemDown
 @code{\stemDown},
-@funindex \stemNeutral
 @code{\stemNeutral}.
 @endpredefined
 
@@ -489,11 +497,16 @@ from outside of the staff.
 @cindex notation, explaining
 @cindex balloon help
 @cindex help, balloon
+
 @funindex \balloonGrobText
 @funindex \balloonText
 @funindex Balloon_engraver
 @funindex balloonGrobText
 @funindex balloonText
+@funindex \balloonLengthOn
+@funindex balloonLengthOn
+@funindex \balloonLengthOff
+@funindex balloonLengthOff
 
 Elements of notation can be marked and named with the help of a
 square balloon.  The primary purpose of this feature is to explain
@@ -535,11 +548,7 @@ altered:
 
 
 @predefined
-@funindex balloonLengthOn
-@funindex \balloonLengthOn
 @code{\balloonLengthOn},
-@funindex \balloonLengthOff
-@funindex balloonLengthOff
 @code{\balloonLengthOff}.
 @endpredefined
 
@@ -561,6 +570,7 @@ Internals Reference:
 @cindex lines, grid
 @cindex vertical lines between staves
 @cindex lines, vertical between staves
+
 @funindex Grid_point_engraver
 @funindex Grid_line_span_engraver
 @funindex gridInterval
@@ -630,9 +640,11 @@ Internals Reference:
 @cindex bracket, phrasing
 @cindex phrasing bracket
 @cindex musicological analysis
+@cindex analysis, musicological
 @cindex note grouping bracket
 @cindex horizontal bracket
 @cindex bracket, horizontal
+
 @funindex Horizontal_bracket_engraver
 @funindex \startGroup
 @funindex startGroup
index f35bcb10223462a36c7d981eeb75a6b8084b4d99..0eaae36f6437de95350e9b77bf080689265a5a8d 100644 (file)
@@ -674,6 +674,13 @@ will be printed with a verbatim block like
   f2 e
 @end example
 
+@noindent
+If you would like to translate comments and variable names in verbatim
+output but not in the sources, you may set the environment variable
+@code{LYDOC_LOCALEDIR} to a directory path; the directory should
+contain a tree of @file{.mo} message catalogs with @code{lilypond-doc}
+as a domain.
+
 @item addversion
 (Only for Texinfo output.)  Prepend line @code{\version
 @@w@{"@@version@{@}"@}} to @code{verbatim} output.
@@ -740,6 +747,10 @@ Texinfo document as @code{@@lydoctitle @var{text}}.
 The same remark about @code{texidoc} processing with localized
 languages also applies to @code{doctitle}.
 
+@item nogettext
+(Only for Texinfo output.) Do not translate comments and variable
+names in the snippet quoted verbatim.
+
 @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
index 03d7f43e3db3e9f361fe83047d46b5ae84faef7f..9cd294fc72bc02e1c5575fef86b84b9680f2b1d3 100644 (file)
@@ -1803,13 +1803,23 @@ FI: avain, nuottiavain.
 The clef indicates which lines of the staff correspond to which
 pitches.  The three clef symbols in common use are:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \markup {
- \column {
-  \line { "The Treble or G clef:   " \musicglyph #"clefs.G" }
-  \line { "The Bass or F clef:     " \musicglyph #"clefs.F" }
-  \line { "The Alto or C clef:     " \musicglyph #"clefs.C" }
- }
+  \left-column {
+    \line { The Treble or G clef: }
+    \strut
+    \line { The Bass or F clef: }
+    \strut
+    \line { The Alto or C clef: }
+  }
+  \hspace #0.5
+  \left-column {
+    \musicglyph #"clefs.G"
+    \strut
+    \musicglyph #"clefs.F"
+    \strut
+    \musicglyph #"clefs.C"
+  }
 }
 @end lilypond
 
@@ -1817,72 +1827,59 @@ Imagine a large staff of 11 lines centered on middle C, sometimes
 called a @q{grand staff}, with the bottom line representing low G and
 the top line high F:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
- <<
-%-- Treble Staff --%
-  \new Staff = "G" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2)
-% Allow the treble clef to overlap the lower staves:
-%   \override Staff.Clef #'Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "G"
-   s1^\markup { "g," \transparent "g" }
-   s^ \markup { "b," \transparent "g" }
-   s^ \markup { "d"  \transparent "g" }
-   s^ \markup { "f"  \transparent "g" }
-   s^ \markup { "a"  \transparent "g" }
-   s^ \markup { \with-color #red c' \transparent "g"}
-   e'^\markup { "e'" \transparent "g" }
-   g'^\markup { "g'" \transparent "g" }
-   b'^\markup { "b'" \transparent "g" }
-   d''^\markup { "d''" \transparent "g" }
-   f''^\markup { "f ''" \transparent "g" }
-   s
-  }
-%-- Alto Staff reduced to a single line on middle C --%
-  \new Staff = "C" {
-   \override Staff.StaffSymbol #'line-count = 1  % One line only
-   \override Staff.StaffSymbol #'color = #red    % Coloured red
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "C"
-
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between treble and bass staves
-   \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-   s1 s s s s  % Space along to align horizonatally
-   \override NoteHead #'color = #red
-    c'1 % A middle C
-    s1 s s s s s % Keep staff (ie the red line) showing
-  }
-%-- Bass Staff --%
-  \new Staff = "F" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 2)
-   \override Staff.Clef #'stencil = ##f          % No clef required
-   \clef "F"
-   g,1 b, d f a
-   s s s s s s s % Keep staff showing
-  }
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used without exceeding 1 line
-  \context { \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 1)
-  }
-% Reduce apparent vertical size of note heads to permit them to overlap other grobs vertically
-  \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
-  }
-% Remove all barlines
-  \context { \Score \override BarLine #'stencil = ##f
-  }
-% Remove time signature from all staves
-  \context { \Staff \remove Time_signature_engraver
+  <<
+    %-- Note names above treble staff --%
+    \new NoteNames {
+      \set printOctaveNames = ##t
+      g,1 b, d f a
+      \once \override NoteName #'color = #red
+      c'1
+      e'1 g' b' d'' f''
+    }
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "G"
+      s1 s s s s s
+      e'1 g' b' d'' f''
+      s1
+    }
+    %-- Alto Staff reduced to a single line on middle C --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \override Staff.StaffSymbol #'color = #red
+      \override Staff.Clef #'stencil = ##f
+      \clef "C"
+      s1 s s s s
+      \override NoteHead #'color = #red
+      c'1
+      s1 s s s s s
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "F"
+      g,1 b, d f a
+      s1 s s s s s s
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+        #'base-shortest-duration = #(ly:make-moment 1 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- }  % End layout
-}  % End score
+}
 @end lilypond
 
 Staves of five lines are usually used, and the clef superimposed on
@@ -1890,83 +1887,60 @@ them indicates which five lines have been selected from this
 @samp{grand staff}. For example, the treble or G clef indicates that
 the top five lines have been selected:
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
- <<
-%-- Treble Staff --%
-  \new Staff = "G" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-% Allow the treble clef to overlap the lower staves:
-%   \override Staff.Clef #'Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f  % No clef required here
-   \clef "G"
-   s1^\markup { "g," \transparent "g" }
-   s^ \markup { "b," \transparent "g" }
-   s^ \markup { "d"  \transparent "g" }
-   s^ \markup { "f"  \transparent "g" }
-   s^ \markup { "a"  \transparent "g" }
-   s^ \markup { \with-color #red c' \transparent "g"}
-   \stopStaff \startStaff
-   \clef "C"  % Dummy to force next clef to be printed
-   s  % Need at least one note for \clef to take effect
-   \revert Staff.Clef #'stencil       % Clef now required
-   \override Staff.Clef #'Y-extent = #'(0 . 0)  % Permit overlap
-   \clef "G"
-   e'^\markup { "e'" \transparent "g" }
-   g'^\markup { "g'" \transparent "g" }
-   b'^\markup { "b'" \transparent "g" }
-   d''^\markup { "d''" \transparent "g" }
-   f''^\markup { "f ''" \transparent "g" }
-  }  % End staff G
-%-- Alto Staff reduced to a single line on middle C --%
-  \new Staff = "C" {
-   \override Staff.StaffSymbol #'line-count = 1  % One line only
-   \override Staff.StaffSymbol #'color = #red    % Coloured red
-   \override Staff.Clef #'stencil = ##f      % No clef required
-   \clef "C"
-
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between the staves
-   \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-   s1 s s s s  % Space along to align horizonatally
-   \override NoteHead #'color = #red
-    c'1 % A middle C
-%    s1 s s s s  % Keep staff (ie the red line) showing
-  }  % End staff C
-%-- Bass Staff --%
-  \new Staff = "F" {
-% Allow this staff to be placed close to the others
-   \override Staff.VerticalAxisGroup 
-    #'minimum-Y-extent = #'(0 . 0)
-   \override Staff.Clef #'stencil = ##f     % No clef required
-   \clef "F"
-   g,1_" " b, d f a
-%   s s s s s s  % Keep staff showing
-  }  % End staff F
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used 
-% without exceeding 1 line
-  \context { \Score \override SpacingSpanner 
-   #'base-shortest-duration = #(ly:make-moment 1 1)
-  }
-% Reduce apparent vertical size of note heads to 
-% permit them to overlap other grobs vertically
-  \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
-  }
-% Remove all barlines
-  \context { \Score \override BarLine #'stencil = ##f
-  }
-% Remove time signature from all staves
-  \context { \Staff \remove Time_signature_engraver
+  <<
+    %-- Note names above treble staff --%
+    \new NoteNames {
+      \set printOctaveNames = ##t
+      g,1 b, d f a
+      \once \override NoteName #'color = #red
+      c'1
+      s1
+      e'1 g' b' d'' f''
+    }
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \once \override Staff.Clef #'stencil = ##f
+      \clef "G"
+      s1 s s s s s s
+      \override Staff.Clef #'full-size-change = ##t
+      \set Staff.forceClef = ##t
+      \clef "G"
+      e'1 g' b' d'' f''
+    }
+    %-- Alto Staff reduced to a single line on middle C --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \override Staff.StaffSymbol #'color = #red
+      \override Staff.Clef #'stencil = ##f
+      \clef "C"
+      s1 s s s s
+      \override NoteHead #'color = #red
+      c'1
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \override Staff.Clef #'stencil = ##f
+      \clef "F"
+      g,1 b, d f a
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner
+        #'base-shortest-duration = #(ly:make-moment 2 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- }  % End layout
-}  % End score
+}
 @end lilypond
 
 The @q{curl} of the G clef is centered on the line that represents the
@@ -1978,78 +1952,58 @@ C clef indicates the middle five lines have been selected.  This
 relationship is shown below, where the notes show an arpeggio on a C
 major chord.
 
-@lilypond[ragged-right,quote]
+@lilypond[quote]
 \score {
-<<
-%-- Treble Staff --%
- \new Staff = "G" \with {
-  \remove Time_signature_engraver
- }
- {
-% The following two overrides are required to make the two middle C's overlap
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-  \clef "G"
-  s1 s s s s e' g' c''
- }
-%-- Alto Staff --%
- \new Staff = "C" \with {
-  \remove Time_signature_engraver
- }
- {
-  \override Staff.StaffSymbol #'line-count = 1
-  \override Staff.StaffSymbol #'stencil = ##f
-  \once \override Staff.Clef #'stencil = ##f
-  \clef "G"  % A frig. This clef is invisible; use G to force the later C clef to be shown
-  \override Score.BarLine #'stencil = ##f
-
-  % The following two overrides are required to align the C staff to the G and F staves
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
-  s1 s s s
-  \stopStaff \startStaff
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-  \revert Staff.StaffSymbol #'stencil
-  \override Staff.StaffSymbol #'color = #red
-   b'1 % A frig.  This really shows as a middle C in the score
-   s1 s s s
-  \stopStaff \startStaff
-  \override Staff.StaffSymbol #'line-count = 5
-  \override Staff.StaffSymbol #'Y-extent = #'(0 . 0)
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-  \revert Staff.StaffSymbol #'color
-  \stopStaff \startStaff
-  \clef "C"
-  s1 s s c e g c' e' g' c''
- }
-%-- Bass Staff --%
- \new Staff = "F" \with {
-  \remove Time_signature_engraver
- }
- {
-  \override Staff.Clef #'Y-extent = #'(0 . 0)
-% The following two overrides are required to make the two middle C's overlap
-  \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-  \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
-  \clef "F"
-  c1 e g s s s s s
- }
->>
-\layout {
- \context {
-  \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 2 1)
-  }
- \context {
-  \Score \override NoteHead #'Y-extent = #'(0 . 0)
+  <<
+    %-- Treble Staff --%
+    \new Staff = "G" {
+      \clef "G"
+      s1 s s s
+      e'1 g' c'' s
+    }
+    %-- Alto Staff --%
+    \new Staff = "C" {
+      \override Staff.StaffSymbol #'line-count = #1
+      \once \override Staff.Clef #'stencil = ##f
+      \stopStaff
+      \clef "C"
+      s1 s s
+      \startStaff
+      \revert Staff.StaffSymbol #'stencil
+      \override Staff.StaffSymbol #'color = #red
+      c'1
+      s1 s s s s
+      \stopStaff \startStaff
+      \revert Staff.StaffSymbol #'line-count
+      \revert Staff.StaffSymbol #'color
+      \stopStaff \startStaff
+      \override Staff.Clef #'full-size-change = ##t
+      \set Staff.forceClef = ##t
+      \clef "C"
+      s1 s
+      c1 e g c' e' g' c''
+    }
+    %-- Bass Staff --%
+    \new Staff = "F" {
+      \clef "F"
+      c1 e g
+      s1 s s s s
+    }
+  >>
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner #'base-shortest-duration =
+        #(ly:make-moment 2 1)
+      \override  NonMusicalPaperColumn
+        #'line-break-system-details = #'((alignment-offsets . (0 -3 -6)))
+      \override BarLine #'stencil = ##f
+    }
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+    }
   }
- \context {
-  \Score \override NoteHead #'minimum-Y-extent = #'(0 . 0)
- }
-}
 }
 @end lilypond
 
index 977ac59fe36104e619a24967d2e5e03b1bf6b854..9224f8e1bb04995e34361f2209c7dd1e9dc070b0 100644 (file)
@@ -47,7 +47,9 @@ mode.  In most cases, relative mode will be more convenient.
 @cindex pitches
 @cindex absolute
 @cindex absolute octave specification
+@cindex octave specification, absolute
 @cindex absolute octave entry
+@cindex octave entry, absolute
 
 A pitch name is specified using lowercase letters@tie{}@code{a}
 through@tie{}@code{g}.  The note names @code{c} to @code{b} are
@@ -62,6 +64,7 @@ d e f g
 @end lilypond
 
 @cindex octave changing mark
+
 @funindex '
 @funindex ,
 
@@ -93,7 +96,11 @@ Snippets:
 
 @cindex relative
 @cindex relative octave entry
+@cindex octave entry, relative
 @cindex relative octave specification
+@cindex ocatve specification, relative
+
+@funindex relative
 @funindex \relative
 
 When octaves are specified in absolute mode it is easy to
@@ -168,6 +175,9 @@ large intervals:
 }
 @end lilypond
 
+@cindex chords and relative octave entry
+@cindex relative octave entry and chords
+
 If the preceding item is a chord, the first note of the chord is
 used as the reference point for the octave placement of a
 following note or chord.  Inside chords, the next note is always
@@ -219,9 +229,13 @@ Internals Reference:
 
 @cindex relative octave entry and transposition
 @cindex transposition and relative octave entry
+
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
 
 
 @knownissues
@@ -256,6 +270,7 @@ see @rlearning{Accidentals and key signatures}.}
 
 @cindex note names, Dutch
 @cindex note names, default
+@cindex default note names
 @cindex sharp
 @cindex flat
 @cindex double sharp
@@ -286,7 +301,8 @@ a4 aes a2
 @end lilypond
 
 @cindex quarter tones
-@cindex semi-flats, semi-sharps
+@cindex semi-flats
+@cindex semi-sharps
 
 Quarter tones may be added; the following is a series of Cs with
 increasing pitches:
@@ -301,11 +317,13 @@ ceseh1 ces ceh c cih cis cisih
 @cindex accidental, cautionary
 @cindex accidental, parenthesized
 @cindex reminder accidental
-@funindex ?
 @cindex cautionary accidental
 @cindex parenthesized accidental
+
+@funindex ?
 @funindex !
 
+
 Normally accidentals are printed automatically, but you may also
 print them manually.  A reminder accidental can be forced by
 adding an exclamation mark@tie{}@code{!} after the pitch.  A
@@ -530,8 +548,10 @@ This section discusses how to modify pitches.
 @cindex octave correction
 @cindex octave check
 @cindex control pitch
+
 @funindex =
 @funindex \octaveCheck
+@funindex octaveCheck
 @funindex controlpitch
 
 In relative mode, it is easy to forget an octave changing mark.
@@ -605,7 +625,9 @@ Internals Reference:
 @cindex transposition of notes
 @cindex pitches, transposition of
 @cindex notes, transposition of
+
 @funindex \transpose
+@funindex transpose
 
 A music expression can be transposed with @code{\transpose}.  The
 syntax is
@@ -670,8 +692,6 @@ music = \relative c' { c d e f }
 }
 @end lilypond
 
-@cindex transposing instruments
-@cindex instruments, transposing
 
 @code{\transpose} may also be used in a different way, to input
 written notes for a transposing instrument.  The previous examples
@@ -719,8 +739,11 @@ Internals Reference:
 
 
 @funindex \transpose
+@funindex transpose
 @funindex \chordmode
+@funindex chordmode
 @funindex \relative
+@funindex relative
 
 @knownissues
 
@@ -748,7 +771,6 @@ This section discusses how to alter the output of pitches.
 @node Clef
 @unnumberedsubsubsec Clef
 
-@funindex \clef
 @cindex G clef
 @cindex C clef
 @cindex F clef
@@ -781,6 +803,9 @@ This section discusses how to alter the output of pitches.
 @cindex clef, varbaritone
 @cindex subbass clef, subbass
 
+@funindex \clef
+@funindex clef
+
 The clef may be altered.  Middle C is shown in every example.
 
 @lilypond[verbatim,quote,relative=1]
@@ -825,6 +850,7 @@ and @ref{Gregorian clefs}.
 @cindex clef, transposing
 @cindex octave transposition
 @cindex choral tenor clef
+@cindex tenor clef, choral
 
 By adding@tie{}@code{_8} or@tie{}@code{^8} to the clef name, the
 clef is transposed one octave down or up, respectively,
@@ -866,7 +892,9 @@ Internals Reference:
 @unnumberedsubsubsec Key signature
 
 @cindex key signature
+
 @funindex \key
+@funindex key
 
 @c duplicated in Key signature and Accidentals
 @warning{New users are sometimes confused about accidentals and
@@ -885,14 +913,24 @@ at the start of the staff.  The key signature may be altered:
 @end example
 
 @funindex \major
+@funindex major
 @funindex \minor
+@funindex minor
 @funindex \ionian
+@funindex ionian
 @funindex \locrian
+@funindex locrian
 @funindex \aeolian
+@funindex aeolian
 @funindex \mixolydian
+@funindex mixolydian
 @funindex \lydian
+@funindex lydian
 @funindex \phrygian
+@funindex phrygian
 @funindex \dorian
+@funindex dorian
+
 @cindex church modes
 @cindex modes
 @cindex major
@@ -958,7 +996,10 @@ Internals Reference:
 @cindex 8va
 @cindex 8ve
 @cindex octavation
+
 @funindex set-octavation
+@funindex \ottava
+@funindex ottava
 
 @notation{Ottava brackets} introduce an extra transposition of an
 octave for the staff:
@@ -1002,7 +1043,9 @@ Internals Reference:
 @cindex transposing instrument
 @cindex MIDI
 @cindex MIDI transposition
+
 @funindex \transposition
+@funindex transposition
 
 When typesetting scores that involve transposing instruments, some
 parts can be typeset in a different pitch than the
@@ -1096,8 +1139,10 @@ Snippets:
 @cindex accidentals, automatic
 @cindex automatic accidentals
 @cindex default accidental style
+
 @funindex set-accidental-style
 @funindex voice
+@funindex default
 
 There are many different conventions on how to typeset
 accidentals.  LilyPond provides a function to specify which
@@ -1124,7 +1169,6 @@ style in all staves of the current @code{StaffGroup}, use:
 The following accidental styles are supported.  To demonstrate
 each style, we use the following example:
 
-@funindex default
 
 @lilypond[verbatim,quote]
 musicA = {
@@ -1198,6 +1242,7 @@ both staves.
 
 @cindex default accidental style
 @cindex accidental style, default
+
 @funindex default
 
 This is the default typesetting behavior.  It corresponds to
@@ -1261,6 +1306,7 @@ musicB = {
 @cindex modern accidental style
 @cindex accidental style, modern-cautionary
 @cindex modern-cautionary accidental style
+
 @funindex voice
 
 The normal behavior is to remember the accidentals at
@@ -1328,6 +1374,7 @@ musicB = {
 
 @cindex accidentals, modern style
 @cindex modern style accidentals
+
 @funindex modern
 
 This rule corresponds to the common practice in the twentieth
@@ -1392,6 +1439,7 @@ musicB = {
 @cindex modern cautionary accidental style
 @cindex modern style accidentals
 @cindex modern style cautionary accidentals
+
 @funindex modern-cautionary
 
 This rule is similar to @code{modern}, but the @q{extra}
@@ -1455,6 +1503,7 @@ musicB = {
 @cindex modern accidental style
 @cindex modern accidentals
 @cindex multivoice accidentals
+
 @funindex modern-voice
 
 This rule is used for multivoice accidentals to be read both by
@@ -1515,6 +1564,7 @@ musicB = {
 @cindex accidental style, cautionary, modern voice
 @cindex accidental style, modern voice cautionary
 @cindex accidental style, voice, modern cautionary
+
 @funindex modern-voice-cautionary
 
 @item modern-voice-cautionary
@@ -1577,6 +1627,7 @@ musicB = {
 @cindex accidentals, piano
 @cindex piano accidental style
 @cindex piano accidentals
+
 @funindex piano
 
 This rule reflects twentieth-century practice for piano notation.
@@ -1635,7 +1686,6 @@ musicB = {
 
 @item piano-cautionary
 
-@funindex piano-cautionary
 @cindex accidentals, piano cautionary
 @cindex cautionary accidentals, piano
 @cindex piano cautionary accidentals
@@ -1643,6 +1693,8 @@ musicB = {
 @cindex cautionary accidental style, piano
 @cindex piano cautionary accidental style
 
+@funindex piano-cautionary
+
 This is the same as @code{piano} but with the extra accidentals
 typeset as cautionaries.
 
@@ -1694,10 +1746,11 @@ musicB = {
 
 @item neo-modern
 
-@funindex neo-modern
 @cindex neo-modern accidental style
 @cindex accidental style, neo-modern
 
+@funindex neo-modern
+
 This rule reproduces a common practice in contemporary music:
 accidentals are printed like with @code{modern}, but they are printed
 again if the same note appears later in the same measure -- except
@@ -1751,10 +1804,11 @@ musicB = {
 
 @item neo-modern-cautionary
 
-@funindex neo-modern-cautionary
 @cindex neo-modern-cautionary accidental style
 @cindex accidental style, neo-modern-cautionary
 
+@funindex neo-modern-cautionary
+
 This rule is similar to @code{neo-modern}, but the extra
 accidentals are printed as cautionary accidentals.
 
@@ -1807,10 +1861,11 @@ musicB = {
 
 @item dodecaphonic
 
-@funindex dodecaphonic
 @cindex dodecaphonic accidental style
 @cindex dodecaphonic style, neo-modern
 
+@funindex dodecaphonic
+
 This rule reflects a practice introduced by composers at
 the beginning of the 20th century, in an attempt to
 abolish the hierarchy between natural and non-natural notes.
@@ -1866,10 +1921,11 @@ musicB = {
 
 @item teaching
 
-@funindex teaching
 @cindex teaching accidental style
 @cindex accidental style, teaching
 
+@funindex teaching
+
 This rule is intended for students, and makes it easy to create
 scale sheets with automagically created cautionary accidentals.
 Accidentals are printed like with @code{modern}, but cautionary
@@ -1928,10 +1984,11 @@ musicB = {
 
 @item no-reset
 
-@funindex no-reset
 @cindex accidental style, no reset
 @cindex no reset accidental style
 
+@funindex no-reset
+
 This is the same as @code{default} but with accidentals lasting
 @q{forever} and not only within the same measure:
 
@@ -1983,10 +2040,11 @@ musicB = {
 
 @item forget
 
-@funindex forget
 @cindex forget accidental style
 @cindex accidental style, forget
 
+@funindex forget
+
 This is the opposite of @code{no-reset}: Accidentals are not
 remembered at all -- and hence all accidentals are typeset
 relative to the key signature, regardless of what came before in
@@ -2173,6 +2231,7 @@ This section suggests ways of altering note heads.
 @cindex guitar note heads
 @cindex note head styles
 @cindex styles, note heads
+
 @funindex cross
 
 Note heads may be altered:
@@ -2227,6 +2286,11 @@ Internals Reference:
 @cindex easy play note heads
 @cindex note heads, easy play
 
+@funindex \easyHeadsOn
+@funindex easyHeadsOn
+@funindex \easyHeadsOff
+@funindex easyHeadsOff
+
 The @q{easy play} note head includes a note name inside the head.
 It is used in music for beginners.  To make the letters readable,
 it should be printed in a large font size.  To print with a larger
@@ -2245,9 +2309,7 @@ font, see @ref{Setting the staff size}.
 
 
 @predefined
-@funindex \easyHeadsOn
 @code{\easyHeadsOn},
-@funindex \easyHeadsOff
 @code{\easyHeadsOff}.
 @endpredefined
 
@@ -2275,9 +2337,13 @@ Internals Reference:
 @cindex shape notes
 @cindex Aiken shape note heads
 @cindex sacred harp note heads
+
 @funindex \key
+@funindex key
 @funindex \aikenHeads
+@funindex aikenHeads
 @funindex \sacredHarpHeads
+@funindex sacredHarpHeads
 
 In shape note head notation, the shape of the note head
 corresponds to the harmonic function of a note in the scale.  This
@@ -2296,9 +2362,7 @@ base of the scale is determined by the @code{\key} command.
 
 
 @predefined
-@funindex \aikenHeads
 @code{\aikenHeads},
-@funindex \sacredHarpHeads
 @code{\sacredHarpHeads}.
 @endpredefined
 
@@ -2334,6 +2398,11 @@ Internals Reference:
 @cindex note heads, improvisation
 @cindex note heads, slashed
 
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
 Improvisation is sometimes denoted with slashed note heads, where
 the performer may choose any pitch but should play the specified
 rhythm.  Such note heads can be created:
@@ -2354,9 +2423,7 @@ rhythm.  Such note heads can be created:
 
 
 @predefined
-@funindex \improvisationOn
 @code{\improvisationOn},
-@funindex \improvisationOff
 @code{\improvisationOff}.
 @endpredefined
 
index 9d3dac9d594a47ab63bf14ccc64c436842daae73..ce4525467a3a82297506708771999723af5e88e5 100644 (file)
@@ -8,6 +8,8 @@
 */
 
 #include "lily-guile.hh"
+#include "international.hh"
+#include "main.hh"
 #include "string-convert.hh"
 #include "warn.hh"
 
@@ -17,7 +19,7 @@ string
 display_fontset (FcFontSet *fs)
 {
   string retval;
-  
+
   int j;
   for (j = 0; j < fs->nfont; j++)
     {
@@ -32,16 +34,16 @@ display_fontset (FcFontSet *fs)
       if (FcPatternGetString (fs->fonts[j],
                              "designsize", 0, &str) == FcResultMatch)
        retval += String_convert::form_string ("designsize %s\n ", str);
-      
-      retval += String_convert::form_string ("%s\n", (const char*) font);
+
+      retval += String_convert::form_string ("%s\n", (const char *)font);
       free (font);
     }
-  
+
   return retval;
 }
 
 string
-display_strlist (char const*what, FcStrList *slist)
+display_strlist (char const *what, FcStrList *slist)
 {
   string retval;
   while (FcChar8 *dir = FcStrListNext (slist))
@@ -56,19 +58,19 @@ display_config (FcConfig *fcc)
 {
   string retval;
   retval += display_strlist ("Config files", FcConfigGetConfigFiles (fcc));
-  retval +=  display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
-  retval +=  display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
+  retval += display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
+  retval += display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
   return retval;
 }
 
 string
 display_list (FcConfig *fcc)
 {
-  FcPattern*pat = FcPatternCreate ();
+  FcPattern *pat = FcPatternCreate ();
 
   FcObjectSet *os = 0;
   if (!os)
-    os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
+    os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *)0);
 
   FcFontSet *fs = FcFontList (fcc, pat, os);
   FcObjectSetDestroy (os);
@@ -90,12 +92,12 @@ LY_DEFINE (ly_font_config_get_font_file, "ly:font-config-get-font-file", 1, 0, 0
           "Get the file for font @var{name}.")
 {
   LY_ASSERT_TYPE (scm_is_string, name, 1);
-  
-  FcPattern*pat = FcPatternCreate ();
+
+  FcPattern *pat = FcPatternCreate ();
   FcValue val;
-  
+
   val.type = FcTypeString;
-  val.u.s = (const FcChar8*)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
+  val.u.s = (const FcChar8 *)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
   FcPatternAdd (pat, FC_FAMILY, val, FcFalse);
 
   FcResult result;
@@ -103,17 +105,17 @@ LY_DEFINE (ly_font_config_get_font_file, "ly:font-config-get-font-file", 1, 0, 0
 
   FcConfigSubstitute (NULL, pat, FcMatchFont);
   FcDefaultSubstitute (pat);
-  
+
   pat = FcFontMatch (NULL, pat, &result);
   FcChar8 *str = 0;
   if (FcPatternGetString (pat, FC_FILE, 0, &str) == FcResultMatch)
-    scm_result = scm_from_locale_string ((char const*) str);
+    scm_result = scm_from_locale_string ((char const *)str);
 
   FcPatternDestroy (pat);
 
   return scm_result;
 }
-          
+       
 LY_DEFINE (ly_font_config_display_fonts, "ly:font-config-display-fonts", 0, 0, 0,
           (),
           "Dump a list of all fonts visible to FontConfig.")
@@ -122,8 +124,38 @@ LY_DEFINE (ly_font_config_display_fonts, "ly:font-config-display-fonts", 0, 0, 0
   str += display_config (NULL);
 
   progress_indication (str);
-  
+
   return SCM_UNSPECIFIED;
 }
 
+LY_DEFINE (ly_font_config_add_directory, "ly:font-config-add-directory", 1, 0, 0,
+          (SCM dir),
+          "Add directory @var{dir} to FontConfig.")
+{
+  LY_ASSERT_TYPE (scm_is_string, dir, 1);
+
+  string d = ly_scm2string (dir);
+
+  if (!FcConfigAppFontAddDir (0, (const FcChar8 *)d.c_str ()))
+    error (_f ("failed adding font directory: %s", d.c_str ()));
+  else if (be_verbose_global)
+    message (_f ("adding font directory: %s", d.c_str ()));
 
+  return SCM_UNSPECIFIED;
+}
+
+LY_DEFINE (ly_font_config_add_font, "ly:font-config-add-font", 1, 0, 0,
+          (SCM font),
+          "Add font @var{font} to FontConfig.")
+{
+  LY_ASSERT_TYPE (scm_is_string, font, 1);
+
+  string f = ly_scm2string (font);
+
+  if (!FcConfigAppFontAddFile (0, (const FcChar8 *)f.c_str ()))
+    error (_f ("failed adding font file: %s", f.c_str ()));
+  else if (be_verbose_global)
+    message (_f ("adding font file: %s", f.c_str ()));
+
+  return SCM_UNSPECIFIED;
+}
index af049ee3eadf0ecaa2200fbc113fef768e12939f..6abc48cd980eb76659e85c2f9b20c8d45c36d05a 100644 (file)
@@ -82,7 +82,6 @@ $LY_LANGUAGES->{'de'} = {
     'Back to Documentation Index' => '',
 };
 
-print $LY_LANGUAGES->{'fr'}->{'Back to Documentation Index'};
 
 sub ly_get_string () {
     my $lang = $Texi2HTML::THISDOC{current_lang};
index 5df28854d1e512146f672af3febc6bf50402e451..b71d8259dae4a3f0b7db57c5ff4978ac31b4e829 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 2.11.57\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
+"POT-Creation-Date: 2008-12-09 11:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -28,7 +28,7 @@ msgstr ""
 msgid "%s has been replaced by %s"
 msgstr ""
 
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
 #: warn.cc:48 input.cc:90
 #, c-format, python-format
 msgid "warning: %s"
@@ -383,6 +383,14 @@ msgstr ""
 msgid "\\put-adjacent axis dir markup markup."
 msgstr ""
 
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr ""
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr ""
+
 #: fontextract.py:25
 #, python-format
 msgid "Scanning %s"
@@ -398,161 +406,200 @@ msgstr ""
 msgid "Writing fonts to %s"
 msgstr ""
 
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
 #, python-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
 #, python-format
 msgid "Running %s..."
 msgstr ""
 
-#: lilylib.py:219
+#: lilylib.py:209
 #, python-format
 msgid "Usage: %s"
 msgstr ""
 
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr ""
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr ""
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid ""
+"Tuplet brackets displaying both note durations are not implemented, using "
+"default"
+msgstr ""
+
+#: musicexp.py:656
 #, python-format
 msgid "unable to set the music %(music)s for the repeat %(repeat)s"
 msgstr ""
 
-#: musicexp.py:594
+#: musicexp.py:665
 msgid "encountered repeat without body"
 msgstr ""
 
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr ""
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr ""
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr ""
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
 #: input.cc:104
 #, c-format, python-format
 msgid "error: %s"
 msgstr ""
 
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
 msgstr ""
 
-#: musicxml.py:354
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr ""
+
+#: musicxml.py:431
 #, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
+msgid ""
+"Key alteration octave given for a non-existing alteration nr. %s, available "
+"numbers: %s!"
 msgstr ""
 
-#: musicxml.py:388
+#: musicxml.py:519
 #, python-format
 msgid "Unable to find instrument for ID=%s\n"
 msgstr ""
 
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr ""
 
-#: abc2ly.py:1343
+#: abc2ly.py:1342
 #, python-format
 msgid ""
 "abc2ly converts ABC music files (see\n"
 "%s) to LilyPond input.\n"
 msgstr ""
 
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
 msgid "show version number and exit"
 msgstr ""
 
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
 msgid "show this help and exit"
 msgstr ""
 
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
 msgid "write output to FILE"
 msgstr ""
 
-#: abc2ly.py:1359
+#: abc2ly.py:1358
 msgid "be strict about success"
 msgstr ""
 
-#: abc2ly.py:1361
+#: abc2ly.py:1360
 msgid "preserve ABC's notion of beams"
 msgstr ""
 
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
+#: abc2ly.py:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:261
+#, c-format, python-format
+msgid "Report bugs via %s"
 msgstr ""
 
-#: convert-ly.py:31
+#: convert-ly.py:33
 msgid ""
 "Update LilyPond input to newer version.  By default, update from the\n"
 "version taken from the \\version command, to the current LilyPond version."
 msgstr ""
 
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
 msgid "Examples:"
 msgstr ""
 
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
 msgid "Distributed under terms of the GNU General Public License."
 msgstr ""
 
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
 msgid "It comes with NO WARRANTY."
 msgstr ""
 
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
 msgid "VERSION"
 msgstr ""
 
-#: convert-ly.py:89
+#: convert-ly.py:91
 msgid "start from VERSION [default: \\version found in file]"
 msgstr ""
 
-#: convert-ly.py:92
+#: convert-ly.py:94
 msgid "edit in place"
 msgstr ""
 
-#: convert-ly.py:96
+#: convert-ly.py:98
 msgid "do not add \\version command if missing"
 msgstr ""
 
-#: convert-ly.py:102
+#: convert-ly.py:104
 #, python-format
 msgid "force updating \\version number to %s"
 msgstr ""
 
-#: convert-ly.py:108
+#: convert-ly.py:110
 #, python-format
 msgid "show rules [default: -f 0, -t %s]"
 msgstr ""
 
-#: convert-ly.py:113
+#: convert-ly.py:115
 #, python-format
 msgid "convert to VERSION [default: %s]"
 msgstr ""
 
-#: convert-ly.py:160
+#: convert-ly.py:163
 msgid "Applying conversion: "
 msgstr ""
 
-#: convert-ly.py:173
+#: convert-ly.py:176
 msgid "Error while converting"
 msgstr ""
 
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
 msgstr ""
 
-#: convert-ly.py:196
+#: convert-ly.py:199
 #, python-format
 msgid "Processing `%s'... "
 msgstr ""
 
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
 #, c-format, python-format
 msgid "cannot open file: `%s'"
 msgstr ""
 
-#: convert-ly.py:293
+#: convert-ly.py:296
 #, python-format
 msgid "cannot determine version for `%s'.  Skipping"
 msgstr ""
@@ -569,278 +616,278 @@ msgid ""
 "file.\n"
 msgstr ""
 
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
 msgid "FILE"
 msgstr ""
 
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
 msgid "show warranty and copyright"
 msgstr ""
 
-#: lilypond-book.py:57
+#: lilypond-book.py:69
 msgid ""
 "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
 msgstr ""
 
-#: lilypond-book.py:64
+#: lilypond-book.py:76
 msgid "BOOK"
 msgstr ""
 
-#: lilypond-book.py:72
+#: lilypond-book.py:84
 #, python-format
 msgid "Exiting (%d)..."
 msgstr ""
 
-#: lilypond-book.py:103
+#: lilypond-book.py:115
 #, python-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
-#: lilypond-book.py:113
+#: lilypond-book.py:125
 msgid "FILTER"
 msgstr ""
 
-#: lilypond-book.py:116
+#: lilypond-book.py:128
 msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
 msgstr ""
 
-#: lilypond-book.py:120
+#: lilypond-book.py:132
 msgid ""
 "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
 msgstr ""
 
-#: lilypond-book.py:121
+#: lilypond-book.py:133
 msgid "FORMAT"
 msgstr ""
 
-#: lilypond-book.py:128
+#: lilypond-book.py:140
 msgid "add DIR to include path"
 msgstr ""
 
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
 msgid "DIR"
 msgstr ""
 
-#: lilypond-book.py:134
+#: lilypond-book.py:146
 msgid "format Texinfo output so that Info will look for images of music in DIR"
 msgstr ""
 
-#: lilypond-book.py:141
+#: lilypond-book.py:153
 msgid "run executable PROG instead of latex"
 msgstr ""
 
-#: lilypond-book.py:142
+#: lilypond-book.py:154
 msgid "PROG"
 msgstr ""
 
-#: lilypond-book.py:147
+#: lilypond-book.py:159
 msgid "PAD"
 msgstr ""
 
-#: lilypond-book.py:149
+#: lilypond-book.py:161
 msgid ""
 "pad left side of music to align music inspite of uneven bar numbers (in mm)"
 msgstr ""
 
-#: lilypond-book.py:153
+#: lilypond-book.py:165
 msgid "write output to DIR"
 msgstr ""
 
-#: lilypond-book.py:159
+#: lilypond-book.py:171
 msgid "do not fail if no lilypond output is found"
 msgstr ""
 
-#: lilypond-book.py:165
+#: lilypond-book.py:177
 msgid "do not fail if no PNG images are found for EPS files"
 msgstr ""
 
-#: lilypond-book.py:171
+#: lilypond-book.py:183
 msgid "write lily-XXX files to DIR, link into --output dir"
 msgstr ""
 
-#: lilypond-book.py:176
+#: lilypond-book.py:188
 msgid "COMMAND"
 msgstr ""
 
-#: lilypond-book.py:177
+#: lilypond-book.py:189
 msgid "process ly_files using COMMAND FILE..."
 msgstr ""
 
-#: lilypond-book.py:184
+#: lilypond-book.py:196
 msgid "create PDF files for use with PDFTeX"
 msgstr ""
 
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
 msgid "be verbose"
 msgstr ""
 
-#: lilypond-book.py:825
+#: lilypond-book.py:869
 #, python-format
 msgid "file not found: %s"
 msgstr ""
 
-#: lilypond-book.py:1087
+#: lilypond-book.py:1137
 #, python-format
 msgid "deprecated ly-option used: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1089
+#: lilypond-book.py:1139
 #, python-format
 msgid "compatibility mode translation: %s=%s"
 msgstr ""
 
-#: lilypond-book.py:1092
+#: lilypond-book.py:1142
 #, python-format
 msgid "deprecated ly-option used: %s"
 msgstr ""
 
-#: lilypond-book.py:1094
+#: lilypond-book.py:1144
 #, python-format
 msgid "compatibility mode translation: %s"
 msgstr ""
 
-#: lilypond-book.py:1112
+#: lilypond-book.py:1162
 #, python-format
 msgid "ignoring unknown ly option: %s"
 msgstr ""
 
-#: lilypond-book.py:1538
+#: lilypond-book.py:1598
 #, python-format
 msgid "Opening filter `%s'"
 msgstr ""
 
-#: lilypond-book.py:1555
+#: lilypond-book.py:1615
 #, python-format
 msgid "`%s' failed (%d)"
 msgstr ""
 
-#: lilypond-book.py:1556
+#: lilypond-book.py:1616
 msgid "The error log is as follows:"
 msgstr ""
 
-#: lilypond-book.py:1618
+#: lilypond-book.py:1678
 msgid "cannot find \\begin{document} in LaTeX document"
 msgstr ""
 
-#: lilypond-book.py:1718
+#: lilypond-book.py:1778
 msgid "Writing snippets..."
 msgstr ""
 
-#: lilypond-book.py:1724
+#: lilypond-book.py:1784
 msgid "Processing..."
 msgstr ""
 
-#: lilypond-book.py:1730
+#: lilypond-book.py:1790
 msgid "All snippets are up to date..."
 msgstr ""
 
-#: lilypond-book.py:1764
+#: lilypond-book.py:1824
 #, python-format
 msgid "cannot determine format for: %s"
 msgstr ""
 
-#: lilypond-book.py:1775
+#: lilypond-book.py:1835
 #, python-format
 msgid "%s is up to date."
 msgstr ""
 
-#: lilypond-book.py:1789
+#: lilypond-book.py:1849
 #, python-format
 msgid "Writing `%s'..."
 msgstr ""
 
-#: lilypond-book.py:1847
+#: lilypond-book.py:1907
 msgid "Output would overwrite input file; use --output."
 msgstr ""
 
-#: lilypond-book.py:1851
+#: lilypond-book.py:1911
 #, python-format
 msgid "Reading %s..."
 msgstr ""
 
-#: lilypond-book.py:1870
+#: lilypond-book.py:1931
 msgid "Dissecting..."
 msgstr ""
 
-#: lilypond-book.py:1886
+#: lilypond-book.py:1947
 #, python-format
 msgid "Compiling %s..."
 msgstr ""
 
-#: lilypond-book.py:1895
+#: lilypond-book.py:1956
 #, python-format
 msgid "Processing include: %s"
 msgstr ""
 
-#: lilypond-book.py:1907
+#: lilypond-book.py:1968
 #, python-format
 msgid "Removing `%s'"
 msgstr ""
 
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
 msgid "warning: "
 msgstr ""
 
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
 msgid "error: "
 msgstr ""
 
-#: midi2ly.py:89
+#: midi2ly.py:88
 msgid "Exiting... "
 msgstr ""
 
-#: midi2ly.py:834
+#: midi2ly.py:833
 #, python-format
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:847
+#: midi2ly.py:846
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr ""
 
-#: midi2ly.py:852
+#: midi2ly.py:851
 msgid "print absolute pitches"
 msgstr ""
 
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
 msgid "DUR"
 msgstr ""
 
-#: midi2ly.py:855
+#: midi2ly.py:854
 msgid "quantise note durations on DUR"
 msgstr ""
 
-#: midi2ly.py:858
+#: midi2ly.py:857
 msgid "print explicit durations"
 msgstr ""
 
-#: midi2ly.py:862
+#: midi2ly.py:861
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr ""
 
-#: midi2ly.py:863
+#: midi2ly.py:862
 msgid "ALT[:MINOR]"
 msgstr ""
 
-#: midi2ly.py:868
+#: midi2ly.py:867
 msgid "quantise note starts on DUR"
 msgstr ""
 
-#: midi2ly.py:871
+#: midi2ly.py:870
 msgid "DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:874
+#: midi2ly.py:873
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:886
+#: midi2ly.py:885
 msgid "treat every text as a lyric"
 msgstr ""
 
-#: midi2ly.py:889
+#: midi2ly.py:888
 msgid "Examples"
 msgstr ""
 
@@ -848,108 +895,136 @@ msgstr ""
 msgid "no files specified on command line."
 msgstr ""
 
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
 msgid ""
 "Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming "
 "information. All beaming information in the MusicXML file will be ignored"
 msgstr ""
 
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid ""
+"Encountered file created by Noteworthy Composer's nwc2xml, containing wrong "
+"beaming information. All beaming information in the MusicXML file will be "
+"ignored"
+msgstr ""
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
 #, python-format
 msgid "Unprocessed PartGroupInfo %s encountered"
 msgstr ""
 
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr ""
+
+#: musicxml2ly.py:613
 #, python-format
 msgid ""
 "Encountered rational duration with denominator %s, unable to convert to "
 "lilypond duration"
 msgstr ""
 
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr ""
+
+#: musicxml2ly.py:895
 #, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
 msgstr ""
 
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
 #, python-format
 msgid "Encountered unprocessed marker %s\n"
 msgstr ""
 
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
 #, python-format
 msgid "unknown span event %s"
 msgstr ""
 
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
 #, python-format
 msgid "unknown span type %s for %s"
 msgstr ""
 
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
 msgid "Unknown metronome mark, ignoring"
 msgstr ""
 
 #. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
 msgid ""
 "Metronome marks with complex relations (<metronome-note> in MusicXML) are "
 "not yet implemented."
 msgstr ""
 
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
 #, python-format
 msgid "Unable to convert chord type %s to lilypond."
 msgstr ""
 
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
 #, python-format
 msgid "drum %s type unknown, please add to instrument_drumtype_dict"
 msgstr ""
 
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
 msgid "cannot find suitable event"
 msgstr ""
 
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
 #, python-format
-msgid "Negative skip %s"
+msgid "Negative skip %s (from position %s to %s)"
 msgstr ""
 
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
 #, python-format
 msgid "Negative skip found: from %s to %s, difference is %s"
 msgstr ""
 
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
 #, python-format
 msgid "unexpected %s; expected %s or %s or %s"
 msgstr ""
 
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr ""
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
 msgstr ""
 
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr ""
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
+msgstr ""
+
+#: musicxml2ly.py:2455
 #, python-format
 msgid "cannot simultaneously have more than one mode: %s"
 msgstr ""
 
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
 msgid "Converting to LilyPond expressions..."
 msgstr ""
 
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
 msgid "musicxml2ly [OPTION]... FILE.xml"
 msgstr ""
 
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
 msgid ""
 "Convert MusicXML from FILE.xml to LilyPond input.\n"
 "If the given filename is -, musicxml2ly reads from the command line.\n"
 msgstr ""
 
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
 msgid ""
 "Copyright (c) 2005--2008 by\n"
 "    Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
@@ -957,74 +1032,74 @@ msgid ""
 "    Reinhold Kainhofer <reinhold@kainhofer.com>\n"
 msgstr ""
 
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
 msgid "use lxml.etree; uses less memory and cpu time"
 msgstr ""
 
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
 msgid "input file is a zip-compressed MusicXML file"
 msgstr ""
 
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
 msgid "convert pitches in relative mode (default)"
 msgstr ""
 
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
 msgid "convert pitches in absolute mode"
 msgstr ""
 
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
 msgid "LANG"
 msgstr ""
 
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
 msgid ""
 "use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
 "'deutsch' for deutsch.ly"
 msgstr ""
 
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
 msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
 msgstr ""
 
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
 msgid ""
 "do not convert beaming information, use lilypond's automatic beaming instead"
 msgstr ""
 
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
 msgid "set output filename to FILE, stdout if -"
 msgstr ""
 
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
 #, python-format
 msgid "unknown part in part-list: %s"
 msgstr ""
 
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
 msgid "Input is compressed, extracting raw MusicXML data from stdin"
 msgstr ""
 
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
 #, python-format
 msgid "Input file %s is compressed, extracting raw MusicXML data"
 msgstr ""
 
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
 msgid "Reading MusicXML from Standard input ..."
 msgstr ""
 
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
 #, python-format
 msgid "Reading MusicXML from %s ..."
 msgstr ""
 
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
 #, python-format
 msgid "Output to `%s'"
 msgstr ""
 
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
 #, python-format
 msgid "Unable to find input file %s"
 msgstr ""
@@ -1058,19 +1133,14 @@ msgstr ""
 msgid "continuing, cross fingers"
 msgstr ""
 
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
 #, c-format
 msgid "accidental typesetting list must begin with context-name: %s"
 msgstr ""
 
-#: accidental-engraver.cc:276
-#, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr ""
-
-#: accidental-engraver.cc:292
+#: accidental-engraver.cc:328
 #, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
 msgstr ""
 
 #: accidental.cc:187
@@ -1311,6 +1381,10 @@ msgstr ""
 msgid "adding font directory: %s"
 msgstr ""
 
+#: font-config.cc:63
+msgid "Building font database."
+msgstr ""
+
 #: general-scheme.cc:202
 msgid "infinity or NaN encountered while converting Real number"
 msgstr ""
@@ -1319,7 +1393,7 @@ msgstr ""
 msgid "setting to zero"
 msgstr ""
 
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
 msgid "Found infinity or nan in output. Substituting 0.0"
 msgstr ""
 
@@ -1478,16 +1552,16 @@ msgstr ""
 msgid "type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
 msgid "include files are not allowed in safe mode"
 msgstr ""
 
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
 #, c-format
 msgid "identifier name is a keyword: `%s'"
 msgstr ""
 
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
@@ -1512,11 +1586,11 @@ msgstr ""
 msgid "Processing `%s'"
 msgstr ""
 
-#: lily-parser.cc:99
+#: lily-parser.cc:95
 msgid "Parsing..."
 msgstr ""
 
-#: lily-parser.cc:127
+#: lily-parser.cc:123
 msgid "braces do not match"
 msgstr ""
 
@@ -1529,7 +1603,7 @@ msgstr ""
 msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
 msgstr ""
 
-#: main.cc:100
+#: main.cc:97
 #, c-format
 msgid ""
 "This program is free software.  It is covered by the GNU General Public\n"
@@ -1538,7 +1612,7 @@ msgid ""
 "information.\n"
 msgstr ""
 
-#: main.cc:106
+#: main.cc:103
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -1555,91 +1629,83 @@ msgid ""
 "Boston, MA 02111-1307, USA.\n"
 msgstr ""
 
-#: main.cc:137
+#: main.cc:134
 msgid "SYM[=VAL]"
 msgstr ""
 
-#: main.cc:138
+#: main.cc:135
 msgid ""
 "set Scheme option SYM to VAL (default: #t).\n"
 "Use -dhelp for help."
 msgstr ""
 
-#: main.cc:141
+#: main.cc:138
 msgid "EXPR"
 msgstr ""
 
-#: main.cc:141
+#: main.cc:138
 msgid "evaluate scheme code"
 msgstr ""
 
 #. Bug in option parser: --output =foe is taken as an abbreviation
 #. for --output-format.
-#: main.cc:144
+#: main.cc:141
 msgid "FORMATs"
 msgstr ""
 
-#: main.cc:144
+#: main.cc:141
 msgid "dump FORMAT,...  Also as separate options:"
 msgstr ""
 
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr ""
-
-#: main.cc:146
+#: main.cc:142
 msgid "generate PDF (default)"
 msgstr ""
 
-#: main.cc:147
+#: main.cc:143
 msgid "generate PNG"
 msgstr ""
 
-#: main.cc:148
+#: main.cc:144
 msgid "generate PostScript"
 msgstr ""
 
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr ""
-
-#: main.cc:151
+#: main.cc:146
 msgid "FIELD"
 msgstr ""
 
-#: main.cc:151
+#: main.cc:146
 msgid ""
 "dump header field FIELD to file\n"
 "named BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:153
+#: main.cc:148
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:154
+#: main.cc:149
 msgid "use FILE as init file"
 msgstr ""
 
-#: main.cc:156
+#: main.cc:151
 msgid "USER, GROUP, JAIL, DIR"
 msgstr ""
 
-#: main.cc:156
+#: main.cc:151
 msgid ""
 "chroot to JAIL, become USER:GROUP\n"
 "and cd into DIR"
 msgstr ""
 
-#: main.cc:159
+#: main.cc:154
 msgid "write output to FILE (suffix will be added)"
 msgstr ""
 
-#: main.cc:160
+#: main.cc:155
 msgid "relocate using directory of lilypond program"
 msgstr ""
 
-#: main.cc:226
+#: main.cc:221
 #, c-format
 msgid ""
 "Copyright (c) %s by\n"
@@ -1647,82 +1713,77 @@ msgid ""
 msgstr ""
 
 #. No version number or newline here.  It confuses help2man.
-#: main.cc:254
+#: main.cc:249
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr ""
 
-#: main.cc:256
+#: main.cc:251
 #, c-format
 msgid "Typeset music and/or produce MIDI from FILE."
 msgstr ""
 
-#: main.cc:258
+#: main.cc:253
 #, c-format
 msgid "LilyPond produces beautiful music notation."
 msgstr ""
 
-#: main.cc:260
+#: main.cc:255
 #, c-format
 msgid "For more information, see %s"
 msgstr ""
 
-#: main.cc:262
+#: main.cc:257
 #, c-format
 msgid "Options:"
 msgstr ""
 
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr ""
-
-#: main.cc:312
+#: main.cc:307
 #, c-format
 msgid "expected %d arguments with jail, found: %u"
 msgstr ""
 
-#: main.cc:326
+#: main.cc:321
 #, c-format
 msgid "no such user: %s"
 msgstr ""
 
-#: main.cc:328
+#: main.cc:323
 #, c-format
 msgid "cannot get user id from user name: %s: %s"
 msgstr ""
 
-#: main.cc:343
+#: main.cc:338
 #, c-format
 msgid "no such group: %s"
 msgstr ""
 
-#: main.cc:345
+#: main.cc:340
 #, c-format
 msgid "cannot get group id from group name: %s: %s"
 msgstr ""
 
-#: main.cc:353
+#: main.cc:348
 #, c-format
 msgid "cannot chroot to: %s: %s"
 msgstr ""
 
-#: main.cc:360
+#: main.cc:355
 #, c-format
 msgid "cannot change group id to: %d: %s"
 msgstr ""
 
-#: main.cc:366
+#: main.cc:361
 #, c-format
 msgid "cannot change user id to: %d: %s"
 msgstr ""
 
-#: main.cc:372
+#: main.cc:367
 #, c-format
 msgid "cannot change working directory to: %s: %s"
 msgstr ""
 
-#: main.cc:619
+#: main.cc:607
 #, c-format
 msgid "exception caught: %s"
 msgstr ""
@@ -1819,7 +1880,7 @@ msgstr ""
 msgid "transposition by %s makes alteration larger than double"
 msgstr ""
 
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
 #, c-format
 msgid ""
 "unknown crescendo style: %s\n"
@@ -1895,21 +1956,21 @@ msgstr ""
 msgid "Finding the ideal number of pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
 msgid "Fitting music on 1 page..."
 msgstr ""
 
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
 #, c-format
 msgid "Fitting music on %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
 #, c-format
 msgid "Fitting music on %d or %d pages..."
 msgstr ""
 
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
 #: paper-score.cc:146
 msgid "Drawing systems..."
 msgstr ""
@@ -1999,7 +2060,7 @@ msgstr ""
 msgid "GUILE signaled an error for the expression beginning here"
 msgstr ""
 
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
 msgid "unterminated percent repeat"
 msgstr ""
 
@@ -2015,12 +2076,12 @@ msgstr ""
 msgid "remapping modulo 16"
 msgstr ""
 
-#: performance.cc:101
+#: performance.cc:100
 #, c-format
 msgid "MIDI output to `%s'..."
 msgstr ""
 
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
 msgid "unterminated phrasing slur"
 msgstr ""
 
@@ -2185,7 +2246,7 @@ msgstr ""
 msgid "cannot end slur"
 msgstr ""
 
-#: slur.cc:357
+#: slur.cc:359
 #, c-format
 msgid "Ignoring grob for slur: %s. avoid-slur not set?"
 msgstr ""
@@ -2222,12 +2283,12 @@ msgstr ""
 msgid "weird stem size, check for narrow beams"
 msgstr ""
 
-#: stem.cc:627
+#: stem.cc:623
 #, c-format
 msgid "flag `%s' not found"
 msgstr ""
 
-#: stem.cc:638
+#: stem.cc:639
 #, c-format
 msgid "flag stroke `%s' not found"
 msgstr ""
@@ -2353,40 +2414,40 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:729
+#: parser.yy:804
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:753
+#: parser.yy:828
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1224
+#: parser.yy:1299
 msgid "Grob name should be alphanumeric"
 msgstr ""
 
-#: parser.yy:1522
+#: parser.yy:1597
 msgid "second argument must be pitch list"
 msgstr ""
 
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1651
+#: parser.yy:1726
 msgid "expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1980
+#: parser.yy:2055
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:2041
+#: parser.yy:2116
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
@@ -2465,7 +2526,7 @@ msgstr ""
 msgid "program too old: %s (file requires: %s)"
 msgstr ""
 
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
 #, scheme-format
 msgid "Invoking `~a'..."
 msgstr ""
@@ -2475,7 +2536,7 @@ msgstr ""
 msgid "`~a' failed (~a)"
 msgstr ""
 
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
 #, scheme-format
 msgid "Converting to `~a'..."
 msgstr ""
@@ -2509,16 +2570,16 @@ msgstr ""
 msgid "translator listens to nonexisting event class ~A"
 msgstr ""
 
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
 msgid "no systems found in \\score markup, does it have a \\layout block?"
 msgstr ""
 
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
 #, scheme-format
 msgid "Cannot find glyph ~a"
 msgstr ""
 
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
 #, scheme-format
 msgid "not a valid duration string: ~a"
 msgstr ""
@@ -2539,7 +2600,7 @@ msgid "unknown repeat type `~S'"
 msgstr ""
 
 #: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
+msgid "See define-music-types.scm for supported repeats"
 msgstr ""
 
 #: document-backend.scm:99
@@ -2557,57 +2618,57 @@ msgstr ""
 msgid "unknown Grob interface: ~S"
 msgstr ""
 
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
 #, scheme-format
 msgid "Processing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
 #, scheme-format
 msgid "Writing ~S..."
 msgstr ""
 
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
 #, scheme-format
 msgid "cannot find description for property ~S (~S)"
 msgstr ""
 
+#: flag-styles.scm:81
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr ""
+
 #: framework-eps.scm:90
 #, scheme-format
 msgid "Writing ~a..."
 msgstr ""
 
-#: framework-ps.scm:282
+#: framework-ps.scm:277
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:335
+#: framework-ps.scm:330
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr ""
 
-#: framework-ps.scm:352
+#: framework-ps.scm:347
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:383
+#: framework-ps.scm:378
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:753
+#: framework-ps.scm:748
 #, scheme-format
 msgid "cannot convert <stdout> to ~S"
 msgstr ""
 
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr ""
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
 msgid ""
 "\n"
 "The PostScript backend does not support the system-by-system \n"
@@ -2623,11 +2684,6 @@ msgid ""
 "  %% ****************************************************************\n"
 msgstr ""
 
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr ""
-
 #: graphviz.scm:53
 #, scheme-format
 msgid "Writing graph `~a'..."
@@ -2643,56 +2699,56 @@ msgstr ""
 msgid "Error in beam quanting.  Expected ~S 0, found ~S."
 msgstr ""
 
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
 msgid "Can't fit systems on page -- ignoring between-system-padding"
 msgstr ""
 
-#: layout-page-layout.scm:458
+#: layout-page-layout.scm:463
 msgid "Calculating page breaks..."
 msgstr ""
 
-#: lily-library.scm:588
+#: lily-library.scm:602
 #, scheme-format
 msgid "unknown unit: ~S"
 msgstr ""
 
-#: lily-library.scm:622
+#: lily-library.scm:636
 #, scheme-format
 msgid "no \\version statement found, please add~afor future compatibility"
 msgstr ""
 
-#: lily-library.scm:630
+#: lily-library.scm:644
 msgid "old relative compatibility not used"
 msgstr ""
 
-#: lily.scm:178
+#: lily.scm:179
 #, scheme-format
 msgid "cannot find: ~A"
 msgstr ""
 
-#: lily.scm:243
+#: lily.scm:228
 #, scheme-format
 msgid "wrong type for argument ~a.  Expecting ~a, found ~s"
 msgstr ""
 
-#: lily.scm:641
+#: lily.scm:625
 #, scheme-format
 msgid "job ~a terminated with signal: ~a"
 msgstr ""
 
-#: lily.scm:644
+#: lily.scm:628
 #, scheme-format
 msgid ""
 "logfile ~a (exit ~a):\n"
 "~a"
 msgstr ""
 
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
 #, scheme-format
 msgid "failed files: ~S"
 msgstr ""
 
-#: lily.scm:757
+#: lily.scm:741
 #, scheme-format
 msgid "Redirecting output to ~a..."
 msgstr ""
@@ -2701,7 +2757,7 @@ msgstr ""
 msgid "Music head function must return Music object"
 msgstr ""
 
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
 #, scheme-format
 msgid "Invalid property operation ~a"
 msgstr ""
@@ -2751,12 +2807,12 @@ msgstr ""
 msgid "cannot find quoted music: `~S'"
 msgstr ""
 
-#: music-functions.scm:990
+#: music-functions.scm:1198
 #, scheme-format
 msgid "unknown accidental style: ~S"
 msgstr ""
 
-#: output-ps.scm:285
+#: output-ps.scm:294
 msgid "utf-8-string encountered in PS backend"
 msgstr ""
 
@@ -2770,28 +2826,23 @@ msgstr ""
 msgid "cannot decypher Pango description: ~a"
 msgstr ""
 
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr ""
-
-#: paper.scm:86
+#: paper.scm:104
 msgid "set-global-staff-size: not in toplevel scope"
 msgstr ""
 
-#: paper.scm:226
+#: paper.scm:244
 #, scheme-format
 msgid "This is not a \\layout {} object, ~S"
 msgstr ""
 
-#: paper.scm:238
+#: paper.scm:256
 #, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
 msgstr ""
 
 #. TODO: should raise (generic) exception with throw, and catch
 #. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
 msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
 msgstr ""
 
index 560f675de26d6ce4a4d6bb239e63614ec0f9c816..655ea9888e6945ea7a2d3fe25048460cd293249a 100644 (file)
@@ -253,6 +253,7 @@ LAYOUT = 'layout'
 LINE_WIDTH = 'line-width'
 LILYQUOTE = 'lilyquote'
 NOFRAGMENT = 'nofragment'
+NOGETTEXT = 'nogettext'
 NOINDENT = 'noindent'
 NOQUOTE = 'noquote'
 NORAGGED_RIGHT = 'noragged-right'
@@ -572,6 +573,7 @@ simple_options = [
     EXAMPLEINDENT,
     FRAGMENT,
     NOFRAGMENT,
+    NOGETTEXT,
     NOINDENT,
     PRINTFILENAME,
     DOCTITLE,
@@ -993,7 +995,10 @@ class LilypondSnippet (Snippet):
         self.do_options (os, self.type)
 
     def verb_ly (self):
-        return verb_ly_gettext (self.substring ('code'))
+        if NOGETTEXT in self.option_dict:
+            return self.substring ('code')
+        else:
+            return verb_ly_gettext (self.substring ('code'))
 
     def ly (self):
         contents = self.substring ('code')
@@ -1211,7 +1216,8 @@ class LilypondSnippet (Snippet):
         file (path + '.txt', 'w').write ('image of music')
 
     def relevant_contents (self, ly):
-        return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n', '', ly)
+        return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n|' +
+                       NOGETTEXT + '[,\]]', '', ly)
 
     def link_all_output_files (self, output_dir, output_dir_files, destination):
         existing, missing = self.all_output_files (output_dir, output_dir_files)
index 9e386f392261244fb2fabc34c9ca44e76a170fb3..77074a62dca865b94151d27e0416a3fd02a9966e 100644 (file)
@@ -956,7 +956,7 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [
     if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then
         # Clean out junk: http://bugs.python.org/issue3290
        # Python headers may need some -f* flags, leave them in.
-       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\)\+//g'`
+       PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\|,\)\+//g'`
        PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
     fi