@end ignore
+@item
+@code{\bookpart} blocks may be used to split a book into several parts,
+separated by a page break, in order to ease the page breaking, or to use
+different @code{\paper} settings in different parts.
+
+@example
+\bookpart @{
+ \header @{
+ title = "Book title"
+ subtitle = "First part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+\bookpart @{
+ \header @{
+ subtitle = "Second part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+@end example
+
@item
Nested contexts of the same type are now allowed.
This deprecates @code{InnerStaffGroup} and @code{InnerChoirStaff}.
@}
@end example
+@funindex \bookpart
+
+Pieces of music may be grouped into book parts using @code{\bookpart}
+blocks. Book parts are separated by a page break, and can start with a
+title, like the book itself, by specifying a @code{\header} block.
+
+@example
+\bookpart @{
+ \header @{
+ title = "Book title"
+ subtitle = "First part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+\bookpart @{
+ \header @{
+ subtitle = "Second part"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+@end example
+
@node File structure
@subsection File structure
@funindex \header
@funindex \score
@funindex \book
+@funindex \bookpart
A @code{.ly} file may contain any number of toplevel expressions, where a
toplevel expression is one of the following:
toplevel. The default handler is defined in the init file
@file{../scm/@/lily@/.scm}.
+@item
+A @code{\bookpart} block. A book may be divided into several parts,
+using @code{\bookpart} blocks, in order to ease the page breaking,
+or to use different @code{\paper} settings in different parts.
+
@item
A compound music expression, such as
@example
@subsection Creating titles
Titles are created for each @code{\score} block, as well as for the full
-input file (or @code{\book} block).
+input file (or @code{\book} block) and book parts (created by
+@code{\bookpart} blocks).
The contents of the titles are taken from the @code{\header} blocks.
The header block for a book supports the following
Pieces that amply fill two pages or more should have this set to
true.
+It also affects the last page of book parts, ie parts of a book created
+with @code{\bookpart} blocks.
+
@item ragged-right
@funindex ragged-right
@code{optimal-page-breaks}. If you are having trouble with the new page
breakers, you can enable the old one as a workaround.
+@funindex \bookpart
+
+When a book has many scores and pages, the page breaking problem may be
+difficult to solve, requiring large processing time and memory. To ease
+the page breaking process, @code{\bookpart} blocks are used to divide
+the book into several parts: the page breaking occurs separately on each
+part. Different page breaking functions may also be used in different
+book parts.
+
+@example
+\bookpart @{
+ \header @{
+ subtitle = "Preface"
+ @}
+ \paper @{
+ %% In a part consisting mostly of text,
+ %% ly:minimal-breaking may be prefered
+ #(define page-breaking ly:minimal-breaking)
+ @}
+ \markup @{ @dots{} @}
+ @dots{}
+@}
+\bookpart @{
+ %% In this part, consisting of music, the default optimal
+ %% page breaking function is used.
+ \header @{
+ subtitle = "First movement"
+ @}
+ \score @{ @dots{} @}
+ @dots{}
+@}
+@end example
@predefined