UseScreenFactor and desktop resolution


I would like to make some high resolution png-files in root, so that they still look nice in print. In order to do that I make the canvas size bigger than my desktop resolution (1440 x 900), but the canvas automatically gets resized to fit the screen. However, if I do “gEnv->Print()”, Root claims that the relevant parameter “Canvas.UseScreenFactor” is false. How can I avoid this behaviour? Or explicitly remind Root not to resize?
(I’m running Root 5.26 from the downloaded binary on Mac Os X with X11, but I also had the problem on Linux)

I played around a bit and discovered the following weird behaviour:

  • If I ask my macro to save the canvas automatically, the saved png-file will contain the large canvas (as I want), but also has the resized canvas on top of it. (see attachment)
  • If I change the resolution of my desktop to for example 800 x 600, the canvas no longer fits the screen (that’s good), but nonetheless was rescaled to 1440 x 900. So, which other settings did I miss?

Test.C (410 Bytes)

Did you try saving as PDF?

Cheers, Fons.

The problem doesn’t occur in PDF, but for PDF’s it is not necessary to make the Canvas size that big to get better resolution.

I’m using png-files as I still need to edit them later, with for example Gimp. Why? Because according to it is not yet possible to get the correct labels in TLegend with RooPlots, so I have to do that by hand. (but that’s unrelated here)

Yes, but once in PDF you can use many tools to re-save the file in a large PNG or other format.

Cheers, Fons.