- Offset dim = ly_scm2offset (ly_car (line));
- if (dim[Y_AXIS] > 50 CM)
- {
- programming_error ("Improbable system height.");
- dim[Y_AXIS] = 50 CM;
- }
-
- if (output_format_global != PAGE_LAYOUT)
- output_scheme (scm_list_3 (ly_symbol2scm ("start-system"),
- gh_double2scm (dim[X_AXIS]),
- gh_double2scm (dim[Y_AXIS])));
- else
- {
- output_scheme (scm_list_3 (ly_symbol2scm ("new-start-system"),
- ly_quote_scm (ly_offset2scm (*origin)),
- ly_quote_scm (ly_offset2scm (dim))));
- (*origin)[Y_AXIS] += dim[Y_AXIS];
- }
-
- SCM between = SCM_EOL;
- for (SCM s = ly_cdr (line); gh_pair_p (s); s = ly_cdr (s))
- {
- Stencil *stil = unsmob_stencil (ly_cdar (s));
- SCM head = ly_caar (s);
-
- if (head == ly_symbol2scm ("between-system-string"))
- {
- between = stil->get_expr ();
- continue;
- }
-
- if (stil)
- output_expr (stil->get_expr (), ly_scm2offset (head));
- }
-
- if (is_last)
- output_scheme (scm_list_1 (ly_symbol2scm ("stop-last-system")));
- else
- {
- output_scheme (scm_list_1 (ly_symbol2scm ("stop-system")));
- if (output_format_global != PAGE_LAYOUT && between != SCM_EOL)
- output_scheme (between);
- }