+ if (scm_is_pair (bookparts_))
+ {
+ for (SCM p = scm_reverse (bookparts_); scm_is_pair (p); p = scm_cdr (p))
+ if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
+ {
+ bool is_last_part = (is_last && !scm_is_pair (scm_cdr (p)));
+ pbookpart->output_aux (output_channel,
+ is_last_part,
+ first_page_number,
+ first_performance_number);
+ }
+ }
+ else
+ {
+ if (scores_ == SCM_EOL)
+ return;
+ paper_->set_variable (ly_symbol2scm ("first-page-number"),
+ scm_long2num (*first_page_number));
+ paper_->set_variable (ly_symbol2scm ("is-last-bookpart"),
+ ly_bool2scm (is_last));
+ /* Generate all stencils to trigger font loads. */
+ *first_page_number += scm_ilength (pages ());
+ }
+}