2004-01-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scm/new-markup.scm (left-align-markup): bugfix.
+
* Documentation/user/refman.itely (Ottava brackets): more doco for
ottava.
developed and improved separately. When put together, the plug-ins
can solve the music notation program in cooperation. People that put
graphics to musical ideas are called copyists or engravers, so by
-analogy, each plug-in is also @code{engraver}.
+analogy, each plug-in is also called @code{engraver}.
In the following example, we see how we start out with a note head
engraver.
c1^\markup { \line < a b c > }
@end lilypond
+
Markups can be stored in variables, and these variables
may be attached to notes, like
@verbatim
@file{scm/new-markup.scm} for more information.
+Some objects have alignment procedures of their own, which cancel out
+any effects of alignments applied to their markup arguments as a
+whole. For example, the @internalsref{RehearsalMark} is horizontally
+centered, so using @code{\mark \markup @{ \left-align .. @}} has no
+effect. Similarly, whole texts over notes cannot be moved vertically
+with @code{\raise}. For moving and aligning complete objects, grob
+properties should be used.
+
@seealso
-Internals: @internalsref{Markup-functions},
+Internals: @internalsref{Markup-functions} contains a complete list of
+all markup commands.
Init files: @file{scm/new-markup.scm}.
+
+
@node Global layout
@section Global layout
void
Accidental_engraver::finalize ()
{
-
+ last_keysig_ = SCM_EOL;
}
void
if (span_)
finished_ = span_;
typeset_all();
+ last_ottavation_ = SCM_EOL;
}
ENTER_DESCRIPTION(Ottava_spanner_engraver,
(music-property-description 'articulation-type string? "key for script definitions alist.
TODO: consider making type into symbol ")
+(music-property-description 'associated-context string? "Name of the Voice context associated with this \\newaddlyrics section")
(music-property-description 'bass boolean? "Set if this note is a bass note in a chord")
(music-property-description 'cautionary boolean? "If set, this alteration needs cautionary accidental")
(music-property-description 'change-to-id string? "name of the context to change to ")
"If true allow line breaks during beams.")
(translator-property-description 'associatedVoice string? "Name of the
Voice that has the melody for this LyricsVoice.")
+(translator-property-description 'associatedVoiceContext ly:context? "The context object of the Voice that has the melody for this LyricsVoice.")
(translator-property-description 'autoBeamSettings list? "Specifies
when automatically generated beams should begin and end. The elements
have the format:
(let* ((m (interpret-markup paper props (car rest))))
(ly:molecule-align-to! m X RIGHT)
m))
-
+(define-public (left-align-markup paper props . rest)
+ (let* ((m (interpret-markup paper props (car rest))))
+ (ly:molecule-align-to! m X LEFT)
+ m))
(define-public (halign-markup paper props . rest)
"Set horizontal alignment. Syntax: haling A MARKUP. A=-1 is LEFT,
A=1 is right, values in between vary alignment accordingly."
(ly:molecule-align-to! m X (car rest))
m))
-(define-public (left-align-markup paper props . rest)
- (let* ((m (interpret-markup paper props (car rest))))
- (ly:molecule-align-to! m X RIGHT)
- m))
+
(define-public (musicglyph-markup paper props . rest)
(ly:find-glyph-by-name