2004-01-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * Documentation/user/lilypond-book.itely (Integrating LaTeX and
+ music): move note about dvips to more visible place.
+
* lily/lyric-phrasing-engraver.cc: move from
new-phrasing-engraver.cc, remove old cruft (syllable-group,
lyric-phrasing-engraver.hh)
@end example
Running lilypond-book yields a file that can be processed with
-La@TeX{}. We show some examples here:
+La@TeX{}.
+
+
+We show some examples here:
@example
\begin[26pt]@{lilypond@}
The music will be surrounded by @code{\preLilyPondExample} and
@code{\postLilyPondExample}, which are defined to be empty by default.
+@cindex titling and lilypond-book
+@cindex lilypond-book and titling
+@cindex @code{\header} in La@TeX{} documents
+
+To add titling from the @code{\header} section of the files, add the
+following to the top of the La@TeX{} file:
+@example
+\input titledefs.tex
+\def\preLilyPondExample@{\def\mustmakelilypondtitle@{@}@}
+@end example
+
+@cindex outline fonts
+@cindex type1 fonts
+@cindex dvips
+@cindex invoking dvips
+
+For printing the LaTeX document, you will need to use dvips. For
+producing PostScript with scalable fonts, add the following options to
+the dvips command line:
+@example
+ -Ppdf -u +lilypond.map
+@end example
+
+@noindent
+PDF can then be produced with @code{ps2pdf}.
+
+
@node Integrating HTML and music
@section Integrating HTML and music
@node Invoking lilypond-book
@section Invoking lilypond-book
+
Running @command{lilypond-book} generates lots of small files that
LilyPond will process. To avoid all that garbage in the source
directory, it is advisable to change to a temporary directory first:
cd out && latex yourfile.latex
@end example
-For La@TeX{} input, the file to give to La@TeX{} has extension @file{.latex}.
-Texinfo input will be written to a file with extension @file{.texi}.
-
-@cindex titling and lilypond-book
-@cindex lilypond-book and titling
-@cindex @code{\header} in La@TeX{} documents
-
-To add titling from the @code{\header} section of the files, add the
-following to the top of the La@TeX{} file:
-@example
-\input titledefs.tex
-\def\preLilyPondExample@{\def\mustmakelilypondtitle@{@}@}
-@end example
-
-@cindex outline fonts
-@cindex type1 fonts
-@cindex dvips
-@cindex invoking dvips
-
-For printing the LaTeX document, you will need to use dvips. For
-producing PS with scalable fonts, add the following options to the dvips
-command line:
-@example
- -Ppdf -u +lilypond.map
-@end example
-
-
@command{lilypond-book} accepts the following command line options:
@end table
+For La@TeX{} input, the file to give to La@TeX{} has extension
+@file{.latex}. Texinfo input will be written to a file with extension
+@file{.texi}.
+
+
@section Bugs
gis1 s s gisis s s ges s s geses s s g!
}
\context Lyrics \lyrics {
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \set #'self-alignment-X = #-1
"sharp " "db. sharp " "flat " "db. flat " natural
}
@end lilypond
\clef baritone c s s
}
\context Lyrics \lyrics {
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \override #'self-alignment-X = #-1
"Soprano " "Mezzosoprano " "Alto " "Tenor " Baritone
}
@end lilypond
<g b d f a> s s
}
\context Lyrics \lyrics{
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \set #'self-alignment-X = #-1
"major " "minor " "diminished " "augmented "
"seventh-chord " "ninth-chord "
}
gis1 s s as s s <des g,!> s s <cis g!> s s
}
\context Lyrics \lyrics {
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \set #'self-alignment-X = #-1
"g sharp " "a flat " "dim fifth " "augm fourth"
}
@end lilypond
f1
}
\context Lyrics \lyrics {
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \set #'self-alignment-X = #-1
"baritone "
"bass "
"sub-bass "
g s s
}
\context Lyrics \lyrics {
- \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \set #'self-alignment-X = #-1
"french violin clef "
"violin clef "
"octaved up "
\translator { \PianoStaffContext
VerticalAlignment \override #'forced-distance = #10
}
- \translator {
- \ScoreContext
- \remove "Lyric_phrasing_engraver"
- \consists "New_phrasing_engraver"
- }
-
}
}
\paper { raggedright = ##t
- \translator {
- \ScoreContext
- \remove "Lyric_phrasing_engraver"
- \consists "New_phrasing_engraver"
- }
\translator {
\VoiceContext
a, #(set-octavation 1) b
#(set-octavation 0)
c a
+ #(set-octavation -1) b a g
+ #(set-octavation 0)
+ c
}
}
{
melisma_ = false;
}
-
};
class Lyric_phrasing_engraver : public Engraver
"",
"",
"lyric-syllable-interface note-head-interface lyric-extender-interface",
- "automaticPhrasing associatedVoice",
+ "associatedVoice",
"");
clefPosition = #-2
centralCPosition = #-6
- automaticPhrasing = ##t
- phrasingPunctuation = #".,:!?\""
-
defaultBarType = #"|"
barNumberVisibility = #default-bar-number-visibility
automaticBars = ##t
\grobdescriptions #all-grob-descriptions
}
-\translator {
+OrchestralScoreContext = \translator {
\ScoreContext
}
; should include default value?
-(ly:add-interface
-'note-name-interface
- "Note name"
- '(style))
-
(ly:add-interface
'cluster-beacon-interface
"A bracket indicating a ligature in the original edition"
'(width thickness height ligature-primitive-callback))
+(ly:add-interface
+ 'lyric-syllable-interface
+ "a single piece of lyrics"
+ '())
+
(ly:add-interface
'mark-interface
"a rehearsal mark"
- '(
- ))
+ '())
(ly:add-interface
'metronome-mark-interface
'(
))
+(ly:add-interface
+'note-name-interface
+ "Note name"
+ '(style))
+
(ly:add-interface
'rhythmic-grob-interface
"Any object with a rhythmic basis. Used to determine which grobs
(grob-property-description 'when ly:moment? "when does this column happen?.")
(grob-property-description 'word-space ly:dimension? "elongate left (?) by this much (FIXME: cumbersome semantics).")
-(grob-property-description 'alignment number? "alignment of lyrics on notehead, -1 is LEFT, 0 is CENTRE, 1 is RIGHT .")
-(grob-property-description 'ignore-length-mismatch boolean? "if #t, stanzas with shorter lyrics can be moved away from their respective note-head by the lyric alignment code.")
-(grob-property-description 'begin-alignment number? "proportion of lyric length from beginning to align with note-head for left-aligned lyrics.")
-(grob-property-description 'end-alignment number? "proportion of lyric length from end to align with note-head for right-aligned lyrics.")
(grob-property-description 'width ly:dimension? "width of a grob measured in staff space.")
(grob-property-description 'width-correct ly:dimension? "width correction for (de)cresc. text spanners.")
(grob-property-description 'x-gap ly:dimension? "horizontal gap between notehead and tie.")
(X-offset-callbacks . (,Self_alignment_interface::aligned_on_parent))
(self-alignment-X . 0)
(word-space . 0.6)
- (ignore-length-mismatch . #f)
- (begin-alignment . 4)
- (end-alignment . 2)
(font-family . roman)
(font-shape . upright)
(padding . 1.5)
(X-offset-callbacks . (,Side_position_interface::aligned_side))
(direction . ,LEFT)
- (meta . ((interfaces . (text-interface font-interface item-interface ))))
+ (meta . ((interfaces . (side-position-interface text-interface font-interface item-interface ))))
))
(StaffSpacing
still counted. Bar generation will resume according to that
count if this property is set to zero.
")
-(translator-property-description 'automaticPhrasing boolean? " If set,
-the @ref{Lyric_phrasing_engraver} will match note heads of context
-called Voice X to syllables from LyricsVoice called
-X-<something>. This feature is turned on by default. See the example
-file @file{lyrics-multi-stanza.ly}.
-")
-
(translator-property-description 'barAlways boolean? "If set to true a bar line is drawn after each note.
")
(translator-property-description 'pedalUnaCordaStyle symbol? "see pedalSustainStyle.")
(translator-property-description 'pedalSostenutoStyle symbol? "see pedalSustainStyle.")
-(translator-property-description 'phrasingPunctuation string?
- "A string of characters that are considered
-lyric punctuation")
(translator-property-description 'rehearsalMark number-or-string? "The
last rehearsal mark printed.")
(translator-property-description 'repeatCommands list? "This property is read to find any command of the form (volta . X), where X is a string or #f")
c = match.group (1)
b = match.group (2)
- if b == 't' and c <> 'Score':
- return r"\unset \property %s.melismaBusyProperties" % c
+ if b == 't':
+ if c == 'Score':
+ return ''
+ else:
+ return r"\unset \property %s.melismaBusyProperties" % c
elif b == 'f':
return r"\property %s.melismaBusyProperties = #'(melismaBusy)" % c