It is important to know which version of cairo I am using.
The sample I posted earlier is run on cairo-1.14.8-2.el7.x86_64on RHEL7.5
The problem appeared only with the update of Redhat Linux from RHEL6 to
RHEL7.
If I run the samples on the old machine, which has
cairo-1.10.2-1.el6.x86_64, the fonts scale properly:
[***@as81 devlop]$ ctest1Â bitmap surface
9.0 pt on Size: 45x7   9.0 pt off Size: 45.7764x7
9.1 pt on Size: 45x7   9.1 pt off Size: 46.222x7
9.2 pt on Size: 45x7   9.2 pt off Size: 46.7418x7
9.3 pt on Size: 46x7   9.3 pt off Size: 47.1874x7
9.4 pt on Size: 46x7   9.4 pt off Size: 47.7072x7
9.5 pt on Size: 46x7   9.5 pt off Size: 48.1528x7
9.6 pt on Size: 46x8   9.6 pt off Size: 48.5984x8
9.7 pt on Size: 46x8   9.7 pt off Size: 49.1183x8
9.8 pt on Size: 48x8   9.8 pt off Size: 49.5639x8
9.9 pt on Size: 53x8   9.9 pt off Size: 50.0837x8
10.0 pt on Size: 55x8   10.0 pt off Size: 50.5293x8
[***@as81 devlop]$ ctest2Â PDF surface
9.0 pt on Size: 45.4951x6.8125   9.0 pt off Size: 45.4951x6.8125
9.1 pt on Size: 45.9407x6.8125   9.1 pt off Size: 45.9407x6.8125
9.2 pt on Size: 46.4606x6.8125   9.2 pt off Size: 46.4606x6.8125
9.3 pt on Size: 46.9062x6.8125   9.3 pt off Size: 46.9062x6.8125
9.4 pt on Size: 47.426x6.8125   9.4 pt off Size: 47.426x6.8125
9.5 pt on Size: 48.1841x7.5625   9.5 pt off Size: 48.1841x7.5625
9.6 pt on Size: 48.6297x7.5625   9.6 pt off Size: 48.6297x7.5625
9.7 pt on Size: 49.1496x7.5625   9.7 pt off Size: 49.1496x7.5625
9.8 pt on Size: 49.5951x7.5625   9.8 pt off Size: 49.5951x7.5625
9.9 pt on Size: 50.115x7.5625   9.9 pt off Size: 50.115x7.5625
10.0 pt on Size: 50.5605x7.5625   10.0 pt off Size: 50.5605x7.5625
What happened between cairo 1.10 and cairo 1.14 to cause this issue?
Post by Alois Treindlsorry, sent html message again which this list dos not accept.
I send a second time.
----
I added font size changes to the example, and print extents with
metric on and off.
The problem which I am addressing appears: font size changes only in steps.
9.0 pt on Size: 49x7   9.0 pt off Size: 45.7764x7
9.1 pt on Size: 49x7   9.1 pt off Size: 45.7764x7
9.2 pt on Size: 49x7   9.2 pt off Size: 45.7764x7
9.3 pt on Size: 49x7   9.3 pt off Size: 45.7764x7
9.4 pt on Size: 49x7   9.4 pt off Size: 45.7764x7
9.5 pt on Size: 51x7   9.5 pt off Size: 50.5293x7
9.6 pt on Size: 51x7   9.6 pt off Size: 50.5293x7
9.7 pt on Size: 51x7   9.7 pt off Size: 50.5293x7
9.8 pt on Size: 51x7   9.8 pt off Size: 50.5293x7
9.9 pt on Size: 51x7   9.9 pt off Size: 50.5293x7
10.0 pt on Size: 51x7   10.0 pt off Size: 50.5293x7
ctest2
9.0 pt on Size: 45.4951x6.8125   9.0 pt off Size: 45.4951x6.8125
9.1 pt on Size: 45.4951x6.8125   9.1 pt off Size: 45.4951x6.8125
9.2 pt on Size: 45.4951x6.8125   9.2 pt off Size: 45.4951x6.8125
9.3 pt on Size: 45.4951x6.8125   9.3 pt off Size: 45.4951x6.8125
9.4 pt on Size: 45.4951x6.8125   9.4 pt off Size: 45.4951x6.8125
9.5 pt on Size: 50.5605x7.5625   9.5 pt off Size: 50.5605x7.5625
9.6 pt on Size: 50.5605x7.5625   9.6 pt off Size: 50.5605x7.5625
9.7 pt on Size: 50.5605x7.5625   9.7 pt off Size: 50.5605x7.5625
9.8 pt on Size: 50.5605x7.5625   9.8 pt off Size: 50.5605x7.5625
9.9 pt on Size: 50.5605x7.5625   9.9 pt off Size: 50.5605x7.5625
10.0 pt on Size: 50.5605x7.5625   10.0 pt off Size: 50.5605x7.5625
with PDF, metrics on or off makes no difference. But the font size
changes are in steps.
Post by Uli SchlachterHi,
I noticed that cairo does not allow me to set a precise font size, like 9.4 pt
or 9.7 pt.
What I get is exactly the same font size, for a range of font sizes.
Try disabling metrics hinting via CAIRO_HINT_METRICS_OFF. See the
attached example program. Per the docs, this metrics hinting quantizises
font metrics so that they are integer values in device space, i.e. does
exactly what you are trying to get rid of.
You might also want to do cairo_font_options_set_hint_style(opt,
CAIRO_HINT_STYLE_NONE), depending on, well, if you want the font
outlines to be hinted or not.
Cheers,
Uli