+ return ext;
+}
+
+// adjacent-pure-heights is a pair of vectors, each of which has one element
+// for every measure in the score. The first vector stores, for each measure,
+// the combined height of the elements that are present only when the bar
+// is at the beginning of a line. The second vector stores, for each measure,
+// the combined height of the elements that are present only when the bar
+// is not at the beginning of a line.
+
+MAKE_SCHEME_CALLBACK (Axis_group_interface, adjacent_pure_heights, 1)
+SCM
+Axis_group_interface::adjacent_pure_heights (SCM smob)
+{
+ Grob *me = unsmob_grob (smob);
+
+ Grob *common = calc_pure_elts_and_common (me);
+ extract_grob_set (me, "pure-relevant-items", items);
+ extract_grob_set (me, "pure-relevant-spanners", spanners);
+
+ Paper_score *ps = get_root_system (me)->paper_score ();
+ vector<vsize> breaks = ps->get_break_indices ();
+ vector<Grob*> cols = ps->get_columns ();
+
+ SCM begin_line_heights = scm_c_make_vector (breaks.size () - 1, SCM_EOL);
+ SCM mid_line_heights = scm_c_make_vector (breaks.size () - 1, SCM_EOL);
+
+ vsize it_index = 0;
+ for (vsize i = 0; i + 1 < breaks.size (); i++)