2004-05-31 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * stepmake/stepmake/generic-vars.make: unset LANG.
+
* input/regression/tuplet-nest.ly: bugfix.
* lily/tie-performer.cc (stop_translation_timestep): reset
@item LilyPond expressions can be embedded into Scheme. The syntax for
this is @code{#@{ ... #@}}. Within such a block, Scheme forms can be
introduced using a @code{$} character (@code{$$} results in a single
-`$' character). These forms are then printed in the pattern.
+`$' character). These forms are then inserted in the pattern.
@example
#(define (textoffset dx dy)
@{ a b c @}
@end example
-is the same as
+is interpreted as
@example
\header @{ title = "The Title" @}
@}
@end example
-Actually, a toplevel music list is now handled quite flexibly by
-@code{default-toplevel-music-handler}. Similarly, a @code{\score}
-block at toplevel is handled by @code{default-toplevel-score-handler}
-and a @code{book} at toplevel is handled by
-@code{default-toplevel-book-handler}. The default behavior of these
-handlers produces the results described above.
-
-@ignore
-
-@c FIXME: un-geekify
-These default handlers have the following effect. A Music list at
-toplevel is encapsulated in a @code{score} block, and a @code{score}
-block at toplevel is encapsulated in a @code{book} block. A
-@code{book} block at toplevel generates printed output.
-@end ignore
+This is handled by the function defined in
+@code{toplevel-music-handler}. Similarly, @code{\score} and
+@code{\book} are handled by @code{toplevel-score-handler} and a
+@code{toplevel-book-handler}. By changing these variables, different
+results can be obtained.
@item Start pitch for @code{relative} music is optional for music lists.
@code{\encoding}. The strings for markup texts are translated
automatically.
-@item The toplevel block @code{book} introduces page layout.
-A @code{book} groups @code{score} blocks into one page layout entity.
-Page layout consists of markup titles, headers and footers, and page
-breaking. Two page breaking algorithms are available, the classic
-ragged pages (the default), and optimal page breaking
+@item The toplevel block @code{\book} introduces page layout.
+A @code{\book} groups @code{\score} blocks into one page layout
+entity. For example, two scores are combined in one book with
@example
-\paper @{
- %% Select page breaking function.
- %% #(define page-breaking ly:ragged-page-breaks)
- #(define page-breaking ly:optimal-page-breaks)
-@}
\book @{
\score @{ ... @}
\score @{ ... @}
@}
@end example
+Titling and page breaks are handled by LilyPond. For automatic page
+breaking, two algorithms are available, the classic ragged pages (the
+default), and optimal page breaking.
+Page breaks may be inserted manually with
+@example
+ \pageBreak
+@end example
+
+@item
The @code{lilypond} program does not generate La@TeX{} titles or page
layout. If you need La@TeX{} titles, you can use the
@code{lilypond-book} program.
setting corresponding names for both contexts. The latter is explained
in @ref{More stanzas}.
+@c TODO: document \new Staff << Voice \lyricsto >> bug
+
@node More stanzas
@subsection More stanzas
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=3
-PATCH_LEVEL=2
-MY_PATCH_LEVEL=hwn1
+PATCH_LEVEL=3
+MY_PATCH_LEVEL=
-\version "2.2.0"
+\version "2.3.2"
-\header { texidoc = "At the beginning of a system,
-the @code{|:} repeat barline is drawn between the staves,
-but the @code{:|} is not."
-" }
+\header {
+
+ texidoc = "At the beginning of a system, the @code{|:} repeat
+barline is drawn between the staves, but the @code{:|} is not."
+
+ }
\score {
- \notes \new PianoStaff <<
- \context Staff=up {
+ \new PianoStaff <<
+ \context Staff = up {
\bar "|:" r1
\bar ":|" \break r1
}
#include "string.hh"
#include "virtual-methods.hh"
+#include "ly-smobs.icc"
+
+IMPLEMENT_SMOBS (Paper_line);
+IMPLEMENT_TYPE_P (Paper_line, "ly:paper-line?");
+IMPLEMENT_DEFAULT_EQUAL_P (Paper_line);
+
+
#define TITLE_PENALTY -1
+
Paper_line::Paper_line (Offset o, SCM stencils, int penalty, bool is_title)
{
is_title_ = is_title;
{
}
-#include "ly-smobs.icc"
-IMPLEMENT_SMOBS (Paper_line);
-IMPLEMENT_TYPE_P (Paper_line, "ly:paper-line?");
-IMPLEMENT_DEFAULT_EQUAL_P (Paper_line);
-
SCM
Paper_line::mark_smob (SCM smob)
{
(lambda (x)
(ly:kpathsea-gulp-file (string-append x ".pfa")))
- (filter string? font-names)))
- )
+ (filter string? font-names))) )
(string-join pfas "\n")))
(output-variables bookpaper)
(ly:gulp-file "music-drawing-routines.ps")
(ly:gulp-file "lilyponddefs.ps")
+ (load-fonts bookpaper)
(define-fonts bookpaper)
))
(define (to-pt x)
(inexact->exact (round (* scale x))))
+
+ (define (bbox llx lly urx ury)
+ (string-append
+ "%%BoundingBox: "
+ (ly:number->string (to-pt llx)) " "
+ (ly:number->string (to-pt lly)) " "
+ (ly:number->string (to-pt urx)) " "
+ (ly:number->string (to-pt ury)) "\n"))
+
(for-each (lambda (l)
(set! x-ext (interval-union x-ext (cons 0.0 (ly:paper-line-extent l X))))
)
lines)
+
(for-each
(lambda (x)
(ly:outputter-dump-string outputter x))
(list
"%!PS-Adobe-2.0 EPSF-2.0\n"
"%%Creator: LilyPond \n"
- "%%BoundingBox: "
- (ly:number->string (to-pt (car x-ext))) " "
- (ly:number->string (to-pt 0)) " "
- (ly:number->string (to-pt (cdr x-ext))) " "
- (ly:number->string (to-pt total-y)) "\n"
+
+;; (bbox (car x-ext) 0 (cdr x-ext) total-y) ; doesn't work well
+
"%%EndComments\n"
(output-variables bookpaper)
(ly:gulp-file "music-drawing-routines.ps")
"{" (sanitize-tex-string str) "}%\n")))
(define (header creator time-stamp bookpaper page-count classic?)
+ (let*
+ ((scale (ly:output-def-lookup bookpaper 'outputscale)))
+
(string-append
"% Generated by " creator "\n"
"% at " time-stamp "\n"
(if classic?
(tex-string-def "lilypond" 'classic "1")
"")
- ;; FIXME: duplicated in every backend
- "\\def\\lilypondtagline{Engraved by LilyPond (version "
- (lilypond-version)")}\n"
- ;; FIXME
- ;; this is -of course- severely broken, (--hwn)
(tex-string-def "lilypondpaper" 'linewidth
- (ly:number->string (/ 18 0.175))) ; 18 cm.
+ (ly:number->string (* scale
+ (ly:output-def-lookup bookpaper 'linewidth))))
+
(tex-string-def "lilypondpaper" 'interscoreline
- (ly:number->string 0.0))
- ))
+ (ly:number->string
+ (* scale
+ (ly:output-def-lookup bookpaper 'interscoreline))))
+ )))
(define (header-end)
(string-append
if format == HTML or format == TEXINFO:
for i in names:
- if not os.path.exists (i + '.ps') and os.path.exists (i + '.tex'):
+ if not os.path.exists (i + '.eps') and os.path.exists (i + '.tex'):
to_eps (i)
ly.make_ps_images (i + '.eps', resolution=110)
- elif os.path.exists (i + '.ps'):
- ly.make_ps_images (i + '.ps', resolution=110)
+# elif os.path.exists (i + '.ps'):
+# ly.make_ps_images (i + '.ps', resolution=110)
LATEX_DOCUMENT = r'''
endif
+# no local settings in the build process.
+LANG=
+export LANG
# clean file lists:
#