]> git.donarmstrong.com Git - lilypond.git/blob - input/new/book-parts.ly
Nested book parts: update LSR example
[lilypond.git] / input / new / book-parts.ly
1 \version "2.11.63"
2
3 \header {
4   lsrtags = "paper-and-layout"
5   texidocs = "@code{\\bookpart} can be used to split a book into
6 several parts.
7 Each part last page can be affected by @code{ragged-bottom-last}.
8 Header and footer markups can detect a part last page, and make the
9 difference with the book last page.
10 "
11   doctitle = "Book parts"
12 }
13
14 #(set-default-paper-size "a6")
15
16
17 %% top-level paper, which is inherited by all children bookparts
18 \paper {
19   id = "\nbook level paper\n"
20   ragged-last-bottom = ##t
21   %% Page footer: add a different part-tagline at part last page
22   oddFooterMarkup = \markup {
23     \column {
24       \fill-line {
25         %% Copyright header field only on book first page.
26         \on-the-fly #first-page \fromproperty #'header:copyright
27       }
28       \fill-line {
29         %% Part tagline header field only on each part last page.
30         \on-the-fly #part-last-page \fromproperty #'header:parttagline
31       }
32       \fill-line {
33         %% Tagline header field only on book last page.
34         \on-the-fly #last-page \fromproperty #'header:tagline
35       }
36     }
37   }
38 }
39
40 %% top-level header, which is inherited by the first bookpart
41 \header {
42   title = "Book title"
43   copyright = "Copyright line on book first page"
44   parttagline = "Part tagline"
45   tagline = "Book tagline"
46 }
47
48 \book {
49
50   \bookpart {
51     %% a different page breaking function may be used on each part
52     %\paper { #(define page-breaking optimal-page-breaks) }
53     \header { subtitle = "First part" }
54     \markup { The first book part }
55     \markup { a page break }
56     \pageBreak
57     \markup { first part last page }
58     \markup \wordwrap { with ragged-last-bottom (see the space below this text) }
59   }
60
61   \bookpart {
62     \header { subtitle = "Second part" }
63     { c' }
64   }
65
66 }