page layout. Currently, we just make it zero always, which means
that we will always prefer a tighter vertical layout.
*/
- between_system_space_ = 0;
- between_system_padding_ = 0;
- between_system_min_distance_ = 0;
- between_scores_system_padding_ = 0;
- between_scores_system_min_distance_ = 0;
- before_title_padding_ = 0;
- before_title_min_distance_ = 0;
+ system_system_space_ = 0;
+ system_system_padding_ = 0;
+ system_system_min_distance_ = 0;
+ score_system_padding_ = 0;
+ score_system_min_distance_ = 0;
+ score_markup_padding_ = 0;
+ score_markup_min_distance_ = 0;
Output_def *l = pscore_->layout ();
- SCM spacing_spec = l->c_variable ("between-system-spacing");
- SCM between_scores_spec = l->c_variable ("between-scores-system-spacing");
- SCM title_spec = l->c_variable ("before-title-spacing");
- SCM page_breaking_spacing_spec = l->c_variable ("page-breaking-between-system-spacing");
+ SCM spacing_spec = l->c_variable ("system-system-spacing");
+ SCM between_scores_spec = l->c_variable ("score-system-spacing");
+ SCM title_spec = l->c_variable ("score-markup-spacing");
+ SCM page_breaking_spacing_spec = l->c_variable ("page-breaking-system-system-spacing");
Page_layout_problem::read_spacing_spec (spacing_spec,
- &between_system_padding_,
+ &system_system_padding_,
ly_symbol2scm ("padding"));
Page_layout_problem::read_spacing_spec (between_scores_spec,
- &between_scores_system_padding_,
+ &score_system_padding_,
ly_symbol2scm ("padding"));
Page_layout_problem::read_spacing_spec (page_breaking_spacing_spec,
- &between_system_padding_,
+ &system_system_padding_,
ly_symbol2scm ("padding"));
Page_layout_problem::read_spacing_spec (title_spec,
- &before_title_padding_,
+ &score_markup_padding_,
ly_symbol2scm ("padding"));
Page_layout_problem::read_spacing_spec (between_scores_spec,
- &between_scores_system_min_distance_,
+ &score_system_min_distance_,
ly_symbol2scm ("minimum-distance"));
Page_layout_problem::read_spacing_spec (spacing_spec,
- &between_system_min_distance_,
+ &system_system_min_distance_,
ly_symbol2scm ("minimum-distance"));
Page_layout_problem::read_spacing_spec (page_breaking_spacing_spec,
- &between_system_min_distance_,
+ &system_system_min_distance_,
ly_symbol2scm ("minimum-distance"));
Page_layout_problem::read_spacing_spec (title_spec,
- &before_title_min_distance_,
+ &score_markup_min_distance_,
ly_symbol2scm ("minimum-distance"));
Interval first_line = line_dimensions_int (pscore_->layout (), 0);
|| isnan (rest_of_line_extent[RIGHT]))
? Interval (0, 0) : rest_of_line_extent;
out->shape_ = Line_shape (begin_of_line_extent, rest_of_line_extent);
- out->padding_ = last ? between_scores_system_padding_ : between_system_padding_;
- out->title_padding_ = before_title_padding_;
- out->min_distance_ = last ? between_scores_system_min_distance_ : between_system_min_distance_;
- out->title_min_distance_ = before_title_min_distance_;
- out->space_ = between_system_space_;
- out->inverse_hooke_ = out->full_height () + between_system_space_;
+ out->padding_ = last ? score_system_padding_ : system_system_padding_;
+ out->title_padding_ = score_markup_padding_;
+ out->min_distance_ = last ? score_system_min_distance_ : system_system_min_distance_;
+ out->title_min_distance_ = score_markup_min_distance_;
+ out->space_ = system_system_space_;
+ out->inverse_hooke_ = out->full_height () + system_system_space_;
}
Real
Line_details::Line_details (Prob *pb, Output_def *paper)
{
- SCM spec = paper->c_variable ("after-title-spacing");
- SCM title_spec = paper->c_variable ("between-title-spacing");
+ SCM spec = paper->c_variable ("markup-system-spacing");
+ SCM title_spec = paper->c_variable ("markup-markup-spacing");
padding_ = 0;
title_padding_ = 0;
min_distance_ = 0;
bool ragged_right_;
bool ragged_last_;
- Real between_system_min_distance_;
- Real between_system_padding_;
- Real between_system_space_;
- Real between_scores_system_min_distance_;
- Real between_scores_system_padding_;
- Real before_title_min_distance_;
- Real before_title_padding_;
+ Real system_system_min_distance_;
+ Real system_system_padding_;
+ Real system_system_space_;
+ Real score_system_min_distance_;
+ Real score_system_padding_;
+ Real score_markup_min_distance_;
+ Real score_markup_padding_;
/* the (i,j)th entry is the configuration for breaking between
columns i and j */
{
SCM first_system_spacing = book_->paper_->c_variable ("top-system-spacing");
if (line.title_)
- first_system_spacing = book_->paper_->c_variable ("top-title-spacing");
+ first_system_spacing = book_->paper_->c_variable ("top-markup-spacing");
Real min_distance = -infinity_f;
Real padding = 0;
Real
Page_breaking::min_whitespace_at_bottom_of_page (Line_details const &line) const
{
- SCM last_system_spacing = book_->paper_->c_variable ("bottom-system-spacing");
+ SCM last_system_spacing = book_->paper_->c_variable ("last-bottom-spacing");
Real min_distance = -infinity_f;
Real padding = 0;
// below the top of the printable area.
bottom_skyline_.set_minimum_height (-header_height_);
- SCM between_system_spacing = SCM_EOL;
- SCM between_scores_system_spacing = SCM_EOL;
- SCM after_title_spacing = SCM_EOL;
- SCM before_title_spacing = SCM_EOL;
- SCM between_title_spacing = SCM_EOL;
+ SCM system_system_spacing = SCM_EOL;
+ SCM score_system_spacing = SCM_EOL;
+ SCM markup_system_spacing = SCM_EOL;
+ SCM score_markup_spacing = SCM_EOL;
+ SCM markup_markup_spacing = SCM_EOL;
// top_system_spacing controls the spring from the top of the printable
// area to the first staff. It allows the user to control the offset of
// the first staff (as opposed to the top of the first system) from the
- // top of the page. Similarly for bottom_system_spacing.
+ // top of the page. Similarly for last_bottom_spacing.
SCM top_system_spacing = SCM_EOL;
- SCM bottom_system_spacing = SCM_EOL;
+ SCM last_bottom_spacing = SCM_EOL;
if (pb && pb->paper_)
{
Output_def *paper = pb->paper_;
- between_system_spacing = paper->c_variable ("between-system-spacing");
- between_scores_system_spacing = paper->c_variable ("between-scores-system-spacing");
- after_title_spacing = paper->c_variable ("after-title-spacing");
- before_title_spacing = paper->c_variable ("before-title-spacing");
- between_title_spacing = paper->c_variable ("between-title-spacing");
- bottom_system_spacing = paper->c_variable ("bottom-system-spacing");
+ system_system_spacing = paper->c_variable ("system-system-spacing");
+ score_system_spacing = paper->c_variable ("score-system-spacing");
+ markup_system_spacing = paper->c_variable ("markup-system-spacing");
+ score_markup_spacing = paper->c_variable ("score-markup-spacing");
+ markup_markup_spacing = paper->c_variable ("markup-markup-spacing");
+ last_bottom_spacing = paper->c_variable ("last-bottom-spacing");
top_system_spacing = paper->c_variable ("top-system-spacing");
if (scm_is_pair (systems) && unsmob_prob (scm_car (systems)))
- top_system_spacing = paper->c_variable ("top-title-spacing");
+ top_system_spacing = paper->c_variable ("top-markup-spacing");
// Note: the page height here does _not_ reserve space for headers and
// footers. This is because we want to anchor the top-system-spacing
+ robust_scm2double (paper->c_variable ("bottom-margin"), 0);
read_spacing_spec (top_system_spacing, &header_padding_, ly_symbol2scm ("padding"));
- read_spacing_spec (bottom_system_spacing, &footer_padding_, ly_symbol2scm ("padding"));
+ read_spacing_spec (last_bottom_spacing, &footer_padding_, ly_symbol2scm ("padding"));
}
bool last_system_was_title = false;
continue;
}
- SCM spec = between_system_spacing;
+ SCM spec = system_system_spacing;
if (first)
spec = top_system_spacing;
else if (last_system_was_title)
- spec = after_title_spacing;
+ spec = markup_system_spacing;
else if (0 == Paper_column::get_rank (sys->get_bound (LEFT)))
- spec = between_scores_system_spacing;
+ spec = score_system_spacing;
Spring spring (0, 0);
Real padding = 0.0;
else if (Prob *p = unsmob_prob (scm_car (s)))
{
SCM spec = first ? top_system_spacing
- : (last_system_was_title ? between_title_spacing : before_title_spacing);
+ : (last_system_was_title ? markup_markup_spacing : score_markup_spacing);
Spring spring (0, 0);
Real padding = 0.0;
alter_spring_from_spacing_spec (spec, &spring);
Spring last_spring (0, 0);
Real last_padding = 0;
- alter_spring_from_spacing_spec (bottom_system_spacing, &last_spring);
- read_spacing_spec (bottom_system_spacing, &last_padding, ly_symbol2scm ("padding"));
+ alter_spring_from_spacing_spec (last_bottom_spacing, &last_spring);
+ read_spacing_spec (last_bottom_spacing, &last_padding, ly_symbol2scm ("padding"));
last_spring.ensure_min_distance (last_padding - bottom_skyline_.max_height () + footer_height_);
springs_.push_back (last_spring);
{
Real bottom_padding = 0;
- // TODO: junk bottom-space now that we have bottom-system-spacing?
+ // TODO: junk bottom-space now that we have last-bottom-spacing?
// bottom-space has the flexibility that one can do it per-system.
// NOTE: bottom-space is misnamed since it is not stretchable space.
if (Prob *p = elements_.back ().prob)
(is-book-title . #t)))
%% Note: these are not scaled; they are in staff-spaces.
- between-system-spacing = #'((space . 12) (minimum-distance . 8) (padding . 1))
- between-scores-system-spacing = #'((space . 14) (minimum-distance . 8) (padding . 1))
- after-title-spacing = #'((space . 5) (padding . 0.5))
- before-title-spacing = #'((space . 12) (padding . 0.5))
- between-title-spacing = #'((space . 1) (padding . 0.5))
+ system-system-spacing = #'((space . 12) (minimum-distance . 8) (padding . 1))
+ score-system-spacing = #'((space . 14) (minimum-distance . 8) (padding . 1))
+ markup-system-spacing = #'((space . 5) (padding . 0.5))
+ score-markup-spacing = #'((space . 12) (padding . 0.5))
+ markup-markup-spacing = #'((space . 1) (padding . 0.5))
top-system-spacing = #'((space . 1) (padding . 1) (minimum-distance . 0))
- top-title-spacing = #'((space . 0) (padding . 1) (minimum-distance . 0))
- bottom-system-spacing = #'((space . 1) (padding . 1) (minimum-distance . 0) (stretchability . 5))
+ top-markup-spacing = #'((space . 0) (padding . 1) (minimum-distance . 0))
+ last-bottom-spacing = #'((space . 1) (padding . 1) (minimum-distance . 0) (stretchability . 5))
ragged-bottom = ##f
(define (annotate-top-space first-system layout header-stencil stencil)
(let* ((top-margin (ly:output-def-lookup layout 'top-margin))
(sym (if (paper-system-title? first-system)
- 'top-title-spacing
+ 'top-markup-spacing
'top-system-spacing))
(spacing-spec (ly:output-def-lookup layout sym))
(X-offset (ly:prob-property first-system 'X-offset 5))
(let* ((spacing-spec (cond ((and next-system
(paper-system-title? system)
(paper-system-title? next-system))
- (ly:output-def-lookup layout 'between-title-spacing))
+ (ly:output-def-lookup layout 'markup-markup-spacing))
((paper-system-title? system)
- (ly:output-def-lookup layout 'after-title-spacing))
+ (ly:output-def-lookup layout 'markup-system-spacing))
((and next-system
(paper-system-title? next-system))
- (ly:output-def-lookup layout 'before-title-spacing))
+ (ly:output-def-lookup layout 'score-markup-spacing))
(else
- (ly:output-def-lookup layout 'between-system-spacing))))
+ (ly:output-def-lookup layout 'system-system-spacing))))
(last-staff-Y (car (paper-system-staff-extents system))))
(set! annotations