[metapost] bug in the label bbox

luigi scarso luigi.scarso at gmail.com
Mon Aug 17 16:09:17 CEST 2020


On Thu, Aug 6, 2020 at 8:28 PM Martin Budaj <m.budaj at gmail.com> wrote:

> Hi,
>
> when using numbersystems other than scaled, the following example
> fails to calculate the bounding box of an empty label (MetaPost
> version 2.00):
>
> beginfig(1);
>  path q;
>  q:=bbox thelabel("",(0,0));
>  message "BBOX: " & decimal xpart llcorner q & " " &
>                     decimal ypart llcorner q & " " &
>                     decimal xpart urcorner q & " " &
>                     decimal ypart urcorner q;
> endfig;
> end
>
> The results are:
>
> scaled (OK, as bboxmargin is 2bp):
>     BBOX: -2 -2 2 2
> decimal:
>     BBOX: -2 -1E+1000000 2 1E+1000000
> binary:
>     BBOX: -2 -9.999999999999999999999999999999999E+999999 2
> 9.999999999999999999999
> 999999999999E+999999
> double:
>     ! Arithmetic overflow.
>
> Best regards
> Martin
> --
> http://tug.org/metapost/
>

hm, in mp_set_text_box

@<Set the height and depth to zero if the bounding box is empty@>=
if (number_to_scaled(p->height) < -number_to_scaled(p->depth)) {
  set_number_to_zero(p->height);
  set_number_to_zero(p->depth);
}

works only for scaled mode, the others  skip the test  because
number_to_scaled  doesn't work if the value is neg_inf.
I am doing some tests.

-- 
luigi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/metapost/attachments/20200817/de340915/attachment.html>


More information about the metapost mailing list.