Hi Leon,
Could you send me a short script illustrating the case that does not work?
Do not try to use the formats >1000, like 100111,etc.
Rene Brun
On Wed, 20 Feb 2002, Leon Mualem wrote:
> Hi,
> I seem to be able to get this error in a CVS version dated 2002/02/14.
> I discovered this while investigating a different problem, which I will
> describe here.
>
> I have two very similar versions of a macro, and one make reasonable
> landscape US letter output, while the other doesn't. The problem would
> manifest itself by the picture being sized too large in the x direction,
> or the short side of a landscape page. While investigating why, I
> discovered that the TPostScript constructor has a couple of features
> which may be inconvenient, and I think easily corrected.
>
> The first problem is that there are tests on the variable "fType", for
> selecting landscape, portrait, or eps. The problem is that the actual
> selection of these types are only in the first digit, which is
> calculated as fMode, but then not used in the tests. This make a
> problem if you want to select a paper type of US letter, by changing
> your fType from the stated types of 111,112,or 113, to 100111,100112,
> and 100113. The tests for fType will fail, as they are like fType==112,
> while a test like fMode==2 is what is required.
>
> The second, and probably more complicated issue is the coupling to gPad.
> This is the root of the problem I had. There may be issues that I
> don't know about not being a postscript expert, or even novice, but I
> did take some time to try to understand what was going on. If you do
> not have a current gPad, you effectively choose a layout defined by
> gStyle->GetPaperSize(fXsize,fYsize), but apparently get the segfault
> described below, for reasons that are not obvious to me. It seems the
> only reason for requiring this gPad test is so that you can get the
> scale of the drawing you have done, or are going to do in this gPad
> correct. However, I don't think this quite works as intended, since it
> only gets the scaling correct for the current Canvas, if you open
> another, it will rescale the drawings to the dimensions of the pad you
> have open at the time. (if I understand correctly.)
>
> It seems like a sensible thing to do, is to have it first grab the
> dimensions of the current paper size, and then, if there is a gPad,
> reset to the size of the current gPad. Something along the lines of:
>
> gStyle->GetPaperSize(fXsize,fYsize);
> Float_t ww=fXsize;
> Float_t wh=fYsize;
> if(gPad) {
> ww = gPad->GetWw();
> wh = gPad->GetWh();
> }
>
> This would then scale a drawing to the page, if there was no gPad
> defined, and if one was defined, it would keep the aspect ratio of the
> current pad. It probably doesn't handle the .eps case well, but I
> haven't been bitten by this yet, so there may be an elegant solution to
> that, or a better solution than I proposed here. The experts are free
> to do as they wish, of course.
>
> Leon
>
> > Hi Thomas,
> >
> > This happens when you create a TPostScript object before creating a TCanvas.
> > Simply create a Tcanvas before this statement.
> > The fix is already in the CVS source.
> >
> > Rene Brun
> >
> > Thomas Kluge wrote:
> >> > Hi,
> >> > since ROOT 3.02/06 I suffer from this:
> >> > ---------------------
> >> [h1aac02] ~ $ root
> >> *******************************************
> >> * *
> >> * W E L C O M E to R O O T *
> >> * *
> >> * Version 3.02/06 14 December 2001 *
> >> * *
> >> * You are welcome to visit our Web site *
> >> * http://root.cern.ch *
> >> * *
> >> *******************************************
> >> > FreeType Engine v1.x used to render TrueType fonts.
> >> Compiled for linuxsuse6.
> >> > CINT/ROOT C/C++ Interpreter version 5.15.21, Dec 8 2001
> >> Type ? for help. Commands must be C++ statements.
> >> Enclose multiple statements between { }.
> >> root [0] TPostScript *ps = new TPostScript("test.ps");
> >> > *** Break *** segmentation violation
> >> Root >
> >> ---------------------
> >> > What's wrong?
> >> > Best regards,
> >> > Thomas
> >>
> >
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:42 MET