]> git.donarmstrong.com Git - lilypond.git/blob - input/new/book-parts.ly
33a624cabafcf78adf8698fa7cfdb338cd33065f
[lilypond.git] / input / new / book-parts.ly
1 \version "2.12.0"
2
3 \header {
4   lsrtags = "paper-and-layout"
5   texidoc = "@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 \book {
17
18   %% book paper, which is inherited by all children bookparts
19   \paper {
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   %% book 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   \bookpart {
49     %% a different page breaking function may be used on each part
50     \paper { #(define page-breaking optimal-page-breaks) }
51     \header { subtitle = "First part" }
52     \markup { The first book part }
53     \markup { a page break }
54     \pageBreak
55     \markup { first part last page }
56     \markup \wordwrap { with ragged-last-bottom (see the space below this text) }
57   }
58
59   \bookpart {
60     \header { subtitle = "Second part" }
61     { c' }
62   }
63
64 }