Real x1 = rgr->extent (commonx,X_AXIS)[RIGHT];
Real w = x1 -x0;
-
+
Real ly = gh_scm2double (me->get_grob_property ("left-position"));
Real ry = gh_scm2double (me->get_grob_property ("right-position"));
SCM number = me->get_grob_property ("text");
mol.add_molecule (num);
}
-
+
+
+ /*
+ No bracket when it would be smaller than the number.
+
+ TODO: should use GAP in calculation too.
+ */
+ if (bracket_visibility && number_visibility
+ && mol.extent (X_AXIS).length () > w)
+ {
+ bracket_visibility = false;
+ }
+
if (bracket_visibility)
{
Real lt = pap->get_realvar (ly_symbol2scm ("linethickness"));
-
+
SCM thick = me->get_grob_property ("thickness");
if (gh_number_p (thick))
lt *= gh_scm2double (thick);
-
+
SCM gap = me->get_grob_property ("gap");
+
SCM fl = me->get_grob_property ("bracket-flare");
SCM eh = me->get_grob_property ("edge-height");
SCM sp = me->get_grob_property ("shorten-pair");
Drul_array<Real> height, flare, shorten;
do {
flare[d] = height[d] = shorten[d] = 0.0;
- if (ly_number_pair_p (fl))
+ if (is_number_pair (fl))
flare[d] += gh_scm2double (index_get_cell (fl, d));
- if (ly_number_pair_p (eh))
+ if (is_number_pair (eh))
height[d] += gh_scm2double (index_get_cell (eh, d)) * - dir;
- if (ly_number_pair_p (sp))
+ if (is_number_pair (sp))
shorten[d] += gh_scm2double (index_get_cell (sp, d));
}
while (flip (&d) != LEFT);