'paperpositionmode' change to rid gnuplot_set_term: size is zero

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

'paperpositionmode' change to rid gnuplot_set_term: size is zero

Daniel Sebald
In using print for EPS files, I see the error message:

gnuplot_set_term: size is zero

The reason is that the paperposition is set at [0 0 0 0] and the default setting is 'manual'.  Perhaps the default should be 'auto'.

In any case, here is a patch that will sett a reasonable default for the 'auto' setting.  It may not be the best solution, so perhaps John or Dave could have a look since they're two of the few people that have larger change-sets for gnuplot_drawnow.m.

Dan

diff -Pur octave/scripts/ChangeLog octave-mod/scripts/ChangeLog
--- octave/scripts/ChangeLog 2009-01-02 23:59:33.587408393 -0600
+++ octave-mod/scripts/ChangeLog 2009-01-03 00:12:06.466405428 -0600
@@ -1,3 +1,8 @@
+2009-01-02  Daniel J Sebald <[hidden email]>
+
+ * plot/gnuplot_drawnow.m: Add default paper size for 'auto' mode of
+ 'paperpositionmode'.
+
 2008-12-29  David Bateman  <[hidden email]>
 
  * goemetry/voronoi.m: Speed up and handle dense grids.
diff -Pur octave/scripts/plot/gnuplot_drawnow.m octave-mod/scripts/plot/gnuplot_drawnow.m
--- octave/scripts/plot/gnuplot_drawnow.m 2009-01-02 23:57:07.034926535 -0600
+++ octave-mod/scripts/plot/gnuplot_drawnow.m 2009-01-03 00:10:08.309390128 -0600
@@ -311,7 +311,11 @@
   t.inches      = 1.00;
   papersize = get_papersize (h);
   paperunits = get (h, "paperunits");
-  paperposition = get (h, "paperposition") / t.(paperunits);
+  if (strcmpi (get (h, "paperpositionmode"), "manual"))
+    paperposition = get (h, "paperposition") / t.(paperunits);
+  else
+    paperposition = [0 0 4.5 3.375] / t.(paperunits);
+  endif
   if (strcmpi (paperunits, "normalized"))
     plotsize = papersize .* paperposition(3:4);
   else
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator

On Jan 3, 2009, at 1:30 AM, Daniel J Sebald wrote:

> In using print for EPS files, I see the error message:
>
> gnuplot_set_term: size is zero
>
> The reason is that the paperposition is set at [0 0 0 0] and the  
> default setting is 'manual'.  Perhaps the default should be 'auto'.
>
> In any case, here is a patch that will sett a reasonable default for  
> the 'auto' setting.  It may not be the best solution, so perhaps  
> John or Dave could have a look since they're two of the few people  
> that have larger change-sets for gnuplot_drawnow.m.
>
> Dan

The problem you're seeing is quite a bit larger than "paperposition".  
In my octaverc I set several property defaults. See below ...

if compare_versions (version, "3.1.0", ">=")
   set (0, "defaultaxesfontname", "Helvetica")
   set (0, "defaultaxesfontsize", 14)
   set (0, "defaultaxesinterpreter", "tex")
   set (0, "defaultaxesxtick", [0:0.2:1])
   set (0, "defaultaxesytick", [0:0.2:1])
   set (0, "defaultaxesztick", [0:0.2:1])
   set (0, "defaultaxesxtickmode", "auto")
   set (0, "defaultaxesytickmode", "auto")
   set (0, "defaultaxesztickmode", "auto")
   set (0, "defaultaxesactivepositionproperty", "outerposition")
   set (0, "defaultfigurepapertype", "usletter")
   set (0, "defaultfigurepapersize", [8.5 11])
   set (0, "defaultfigureposition", [440 314 560 420])
   set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
   set (0, "screensize", [1, 1, 1440, 900])
   set (0, "screenpixelsperinch", 1440/14)
   edit editinplace true
   edit home .
endif

I'm not sure where such defaults should be set in the sources.  
However, I am rather confident it is at a low level. If someone can  
offer some guidance, preferably give an example of code setting just  
one of these (for the c++ deficient like myself) I'd be happy to add  
these as well as others.

Ben



Reply | Threaded
Open this post in threaded view
|

where to initialized property defaults?

bpabbott
Administrator
Michael/Shai, I've copied you specifically because of your work on the  
backend.

I've been investing some effort improving the gnuplot backend's  
support of root/figure/axes/text/etc properties.

One rather significant difficulty is where/how many of the default  
property values are to be set.

In graphics.h.in it is simple enough to initialize each index of  
vector associated with a property to a scalar value ... but what is to  
be done with properties like figure.papersize, figure.paperposition,  
root.screensize,

In my octaverc I set several property defaults. See below ...

if compare_versions (version, "3.1.0", ">=")
  set (0, "defaultaxesfontname", "Helvetica")
  set (0, "defaultaxesfontsize", 14)
  set (0, "defaultaxesinterpreter", "tex")
  set (0, "defaultaxesxtick", [0:0.2:1])
  set (0, "defaultaxesytick", [0:0.2:1])
  set (0, "defaultaxesztick", [0:0.2:1])
  set (0, "defaultaxesxtickmode", "auto")
  set (0, "defaultaxesytickmode", "auto")
  set (0, "defaultaxesztickmode", "auto")
  set (0, "defaultaxesactivepositionproperty", "outerposition")
  set (0, "defaultfigurepapertype", "usletter")
  set (0, "defaultfigurepapersize", [8.5 11])
  set (0, "defaultfigureposition", [440 314 560 420])
  set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
  set (0, "screensize", [1, 1, 1440, 900])
  set (0, "screenpixelsperinch", 1440/14)
  edit editinplace true
  edit home .
endif

This should obviously be done at a lower level. Some of this is  
already being handled in gnuplot_drawnow.m.

I'm not sure where, or how, such defaults should be set in the  
sources, but having gnuplot_drawnow.m handle it is obviously bad  
practice.

Might someone be up to the task of taking this on, or offering  
guidance for the c++ deficient like myself? I don't see where in the  
sources xlim, ylim are set, so perhaps this is already in place for  
axes?

Ben
Reply | Threaded
Open this post in threaded view
|

Re: where to initialized property defaults?

Shai Ayal-2
Ben,

The place to set default properties is in src/graphics.h.in.
properties are defined and assigned default values inside
BEGIN_PROPERTIES/END_PROPERTIES blocks for each graphics object type
(e.g. figure, axes, etc...).
these are system-wide defaults and are not backend dependant. As you
noticed, the root figure was neglected during our work and has very
little properties.
Anyway, you can find examples of how to specify properties and their
values in the file, just look at axes and figure. You can also add
more elaborate inital values in the init member for each object.
The graphics.h.in file is parsed by the genprops.awk script during
compile to produce the actual graphics.h and the graphics-props.cc
files which contain the definitions for the properties plus all the
appropriate get/set functions. The awk script also has some
documentation inside.

Shai
p.s. sorry for not being able to contribute more than pointers ...


On Sat, Jan 3, 2009 at 9:10 PM, Ben Abbott <[hidden email]> wrote:

> Michael/Shai, I've copied you specifically because of your work on the
> backend.
>
> I've been investing some effort improving the gnuplot backend's support of
> root/figure/axes/text/etc properties.
>
> One rather significant difficulty is where/how many of the default property
> values are to be set.
>
> In graphics.h.in it is simple enough to initialize each index of vector
> associated with a property to a scalar value ... but what is to be done with
> properties like figure.papersize, figure.paperposition, root.screensize,
>
> In my octaverc I set several property defaults. See below ...
>
> if compare_versions (version, "3.1.0", ">=")
>  set (0, "defaultaxesfontname", "Helvetica")
>  set (0, "defaultaxesfontsize", 14)
>  set (0, "defaultaxesinterpreter", "tex")
>  set (0, "defaultaxesxtick", [0:0.2:1])
>  set (0, "defaultaxesytick", [0:0.2:1])
>  set (0, "defaultaxesztick", [0:0.2:1])
>  set (0, "defaultaxesxtickmode", "auto")
>  set (0, "defaultaxesytickmode", "auto")
>  set (0, "defaultaxesztickmode", "auto")
>  set (0, "defaultaxesactivepositionproperty", "outerposition")
>  set (0, "defaultfigurepapertype", "usletter")
>  set (0, "defaultfigurepapersize", [8.5 11])
>  set (0, "defaultfigureposition", [440 314 560 420])
>  set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
>  set (0, "screensize", [1, 1, 1440, 900])
>  set (0, "screenpixelsperinch", 1440/14)
>  edit editinplace true
>  edit home .
> endif
>
> This should obviously be done at a lower level. Some of this is already
> being handled in gnuplot_drawnow.m.
>
> I'm not sure where, or how, such defaults should be set in the sources, but
> having gnuplot_drawnow.m handle it is obviously bad practice.
>
> Might someone be up to the task of taking this on, or offering guidance for
> the c++ deficient like myself? I don't see where in the sources xlim, ylim
> are set, so perhaps this is already in place for axes?
>
> Ben
>
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

Michael Goffioul
In reply to this post by bpabbott
On Sat, Jan 3, 2009 at 1:06 PM, Ben Abbott <[hidden email]> wrote:
>  set (0, "defaultaxesxtick", [0:0.2:1])
>  set (0, "defaultaxesytick", [0:0.2:1])
>  set (0, "defaultaxesztick", [0:0.2:1])
>  set (0, "defaultaxesxtickmode", "auto")
>  set (0, "defaultaxesytickmode", "auto")
>  set (0, "defaultaxesztickmode", "auto")

You shouldn't need these. Tick mode is "auto" by default
such that setting ticks is useless.

>  set (0, "defaultaxesactivepositionproperty", "outerposition")

This should already be the case.

>  set (0, "screensize", [1, 1, 1440, 900])
>  set (0, "screenpixelsperinch", 1440/14)

This should come from the system. I guess you set them
explicitely, because we don't have a way to get that information
from the OS yet.

Michael.
Reply | Threaded
Open this post in threaded view
|

Re: where to initialized property defaults?

bpabbott
Administrator
In reply to this post by Shai Ayal-2
Shai,

Thanks for the prompt reply.

When you have a moment, please look at setting a default for a vector,  
such as root.screensize.

I don't see how to initialize the values unless they each have the  
same value. I'd like to do something like ...

>> set (0, "screensize", [1, 1, 1440, 900])

... but I don't see how.

Ben


On Jan 3, 2009, at 2:31 PM, Shai Ayal wrote:

> Ben,
>
> The place to set default properties is in src/graphics.h.in.
> properties are defined and assigned default values inside
> BEGIN_PROPERTIES/END_PROPERTIES blocks for each graphics object type
> (e.g. figure, axes, etc...).
> these are system-wide defaults and are not backend dependant. As you
> noticed, the root figure was neglected during our work and has very
> little properties.
> Anyway, you can find examples of how to specify properties and their
> values in the file, just look at axes and figure. You can also add
> more elaborate inital values in the init member for each object.
> The graphics.h.in file is parsed by the genprops.awk script during
> compile to produce the actual graphics.h and the graphics-props.cc
> files which contain the definitions for the properties plus all the
> appropriate get/set functions. The awk script also has some
> documentation inside.
>
> Shai
> p.s. sorry for not being able to contribute more than pointers ...
>
>
> On Sat, Jan 3, 2009 at 9:10 PM, Ben Abbott <[hidden email]> wrote:
>> Michael/Shai, I've copied you specifically because of your work on  
>> the
>> backend.
>>
>> I've been investing some effort improving the gnuplot backend's  
>> support of
>> root/figure/axes/text/etc properties.
>>
>> One rather significant difficulty is where/how many of the default  
>> property
>> values are to be set.
>>
>> In graphics.h.in it is simple enough to initialize each index of  
>> vector
>> associated with a property to a scalar value ... but what is to be  
>> done with
>> properties like figure.papersize, figure.paperposition,  
>> root.screensize,
>>
>> In my octaverc I set several property defaults. See below ...
>>
>> if compare_versions (version, "3.1.0", ">=")
>> set (0, "defaultaxesfontname", "Helvetica")
>> set (0, "defaultaxesfontsize", 14)
>> set (0, "defaultaxesinterpreter", "tex")
>> set (0, "defaultaxesxtick", [0:0.2:1])
>> set (0, "defaultaxesytick", [0:0.2:1])
>> set (0, "defaultaxesztick", [0:0.2:1])
>> set (0, "defaultaxesxtickmode", "auto")
>> set (0, "defaultaxesytickmode", "auto")
>> set (0, "defaultaxesztickmode", "auto")
>> set (0, "defaultaxesactivepositionproperty", "outerposition")
>> set (0, "defaultfigurepapertype", "usletter")
>> set (0, "defaultfigurepapersize", [8.5 11])
>> set (0, "defaultfigureposition", [440 314 560 420])
>> set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
>> set (0, "screensize", [1, 1, 1440, 900])
>> set (0, "screenpixelsperinch", 1440/14)
>> edit editinplace true
>> edit home .
>> endif
>>
>> This should obviously be done at a lower level. Some of this is  
>> already
>> being handled in gnuplot_drawnow.m.
>>
>> I'm not sure where, or how, such defaults should be set in the  
>> sources, but
>> having gnuplot_drawnow.m handle it is obviously bad practice.
>>
>> Might someone be up to the task of taking this on, or offering  
>> guidance for
>> the c++ deficient like myself? I don't see where in the sources  
>> xlim, ylim
>> are set, so perhaps this is already in place for axes?
>>
>> Ben
>>

Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator
In reply to this post by Michael Goffioul

On Jan 3, 2009, at 2:45 PM, Michael Goffioul wrote:

> On Sat, Jan 3, 2009 at 1:06 PM, Ben Abbott <[hidden email]> wrote:
>> set (0, "defaultaxesxtick", [0:0.2:1])
>> set (0, "defaultaxesytick", [0:0.2:1])
>> set (0, "defaultaxesztick", [0:0.2:1])
>> set (0, "defaultaxesxtickmode", "auto")
>> set (0, "defaultaxesytickmode", "auto")
>> set (0, "defaultaxesztickmode", "auto")

I was under the impression "auto" is needed since setting the tick's  
changed the mode to "manaul". Checking now ...

octave:1> figure
octave:2> axes
octave:3> get(gca,'xtickmode')
ans = manual

So it does appear that x/y/ztick each have a callback associated with  
them and that is it doing its job even in a context where it should  
not (at least I don't think setting the default should trigger a  
callback in this instance) ... hmmm, It appears that a method is  
needed to toggle callbacks on and off.

> You shouldn't need these. Tick mode is "auto" by default
> such that setting ticks is useless.
>
>> set (0, "defaultaxesactivepositionproperty", "outerposition")
>
> This should already be the case.

Yes you are correct.

>> set (0, "screensize", [1, 1, 1440, 900])
>> set (0, "screenpixelsperinch", 1440/14)
>
> This should come from the system. I guess you set them
> explicitely, because we don't have a way to get that information
> from the OS yet.

Correct. I do know how to determine the screensize for x11 (using  
xwininfo), but don't know if it will work with windows. Is there a  
windows script that can return this information?

Regarding the screenpixelsperinch property, Mathworks sets this to  
74.951 so that a character unit is equal to [6, 12] pixels (at least  
that is the case for the default system font on Mac OSX).

Ben

Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

David Bateman-2
Ben Abbott wrote:

>
> On Jan 3, 2009, at 2:45 PM, Michael Goffioul wrote:
>
>> On Sat, Jan 3, 2009 at 1:06 PM, Ben Abbott <[hidden email]> wrote:
>>> set (0, "defaultaxesxtick", [0:0.2:1])
>>> set (0, "defaultaxesytick", [0:0.2:1])
>>> set (0, "defaultaxesztick", [0:0.2:1])
>>> set (0, "defaultaxesxtickmode", "auto")
>>> set (0, "defaultaxesytickmode", "auto")
>>> set (0, "defaultaxesztickmode", "auto")
>
> I was under the impression "auto" is needed since setting the tick's
> changed the mode to "manaul". Checking now ...
>
> octave:1> figure
> octave:2> axes
> octave:3> get(gca,'xtickmode')
> ans = manual
>
> So it does appear that x/y/ztick each have a callback associated with
> them and that is it doing its job even in a context where it should
> not (at least I don't think setting the default should trigger a
> callback in this instance) ... hmmm, It appears that a method is
> needed to toggle callbacks on and off.
You can either make the callback more intelligent to recognize when it
shouldn't do anything or remove it with the dellistener function. I'm
not sure I understand what your issue is however.

D.

--
David Bateman                                [hidden email]
35 rue Gambetta                              +33 1 46 04 02 18 (Home)
92100 Boulogne-Billancourt FRANCE            +33 6 72 01 06 33 (Mob)

Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator

On Jan 3, 2009, at 4:24 PM, David Bateman wrote:

> Ben Abbott wrote:
>>
>> On Jan 3, 2009, at 2:45 PM, Michael Goffioul wrote:
>>
>>> On Sat, Jan 3, 2009 at 1:06 PM, Ben Abbott <[hidden email]> wrote:
>>>> set (0, "defaultaxesxtick", [0:0.2:1])
>>>> set (0, "defaultaxesytick", [0:0.2:1])
>>>> set (0, "defaultaxesztick", [0:0.2:1])
>>>> set (0, "defaultaxesxtickmode", "auto")
>>>> set (0, "defaultaxesytickmode", "auto")
>>>> set (0, "defaultaxesztickmode", "auto")
>>
>> I was under the impression "auto" is needed since setting the  
>> tick's changed the mode to "manaul". Checking now ...
>>
>> octave:1> figure
>> octave:2> axes
>> octave:3> get(gca,'xtickmode')
>> ans = manual
>>
>> So it does appear that x/y/ztick each have a callback associated  
>> with them and that is it doing its job even in a context where it  
>> should not (at least I don't think setting the default should  
>> trigger a callback in this instance) ... hmmm, It appears that a  
>> method is needed to toggle callbacks on and off.
> You can either make the callback more intelligent to recognize when  
> it shouldn't do anything or remove it with the dellistener function.  
> I'm not sure I understand what your issue is however.
>
> D.

In a nutshell ... I'd like to be able to set the default values for  
properties representing vectors. For example, figure.paperposition  
where we'd like the default to be [0.25, 2.5, 8, 6]. I don't see how  
this can be done. In graphics.h.in I can set each element to the same  
value (all zeros for example), but I don't see how to set the default  
to a vector with differing values.

Then there is the problem that the defaults are set after the  
callbacks are in place, which changes some of the defaults. As you  
point out this can be easily fixed, but I'd think it more proper to  
set the defaults prior to setting up the callbacks.

I'd happy to work on this, but lack the c++ competence to see how.  
Perhaps my ignorance is blinding me to the obvious solution. Is there  
already a method to set the default for a vector of differing values?

Ben


Reply | Threaded
Open this post in threaded view
|

Re: where to initialized property defaults?

Shai Ayal-2
In reply to this post by bpabbott
I'm not sure either, but lloking at graphics.h.in I can see two
options (Maybe Michael has a better way):
the "init" member of the property as is done in:
http://hg.savannah.gnu.org/hgweb/octave/file/cc3ac5eb6be3/src/graphics.h.in#2384

or by calling a special function to initialise it, as is done in:
http://hg.savannah.gnu.org/hgweb/octave/file/cc3ac5eb6be3/src/graphics.h.in#2334

Shai


On Sat, Jan 3, 2009 at 11:00 PM, Ben Abbott <[hidden email]> wrote:

> Shai,
>
> Thanks for the prompt reply.
>
> When you have a moment, please look at setting a default for a vector, such
> as root.screensize.
>
> I don't see how to initialize the values unless they each have the same
> value. I'd like to do something like ...
>
>>> set (0, "screensize", [1, 1, 1440, 900])
>
> ... but I don't see how.
>
> Ben
>
>
> On Jan 3, 2009, at 2:31 PM, Shai Ayal wrote:
>
>> Ben,
>>
>> The place to set default properties is in src/graphics.h.in.
>> properties are defined and assigned default values inside
>> BEGIN_PROPERTIES/END_PROPERTIES blocks for each graphics object type
>> (e.g. figure, axes, etc...).
>> these are system-wide defaults and are not backend dependant. As you
>> noticed, the root figure was neglected during our work and has very
>> little properties.
>> Anyway, you can find examples of how to specify properties and their
>> values in the file, just look at axes and figure. You can also add
>> more elaborate inital values in the init member for each object.
>> The graphics.h.in file is parsed by the genprops.awk script during
>> compile to produce the actual graphics.h and the graphics-props.cc
>> files which contain the definitions for the properties plus all the
>> appropriate get/set functions. The awk script also has some
>> documentation inside.
>>
>> Shai
>> p.s. sorry for not being able to contribute more than pointers ...
>>
>>
>> On Sat, Jan 3, 2009 at 9:10 PM, Ben Abbott <[hidden email]> wrote:
>>>
>>> Michael/Shai, I've copied you specifically because of your work on the
>>> backend.
>>>
>>> I've been investing some effort improving the gnuplot backend's support
>>> of
>>> root/figure/axes/text/etc properties.
>>>
>>> One rather significant difficulty is where/how many of the default
>>> property
>>> values are to be set.
>>>
>>> In graphics.h.in it is simple enough to initialize each index of vector
>>> associated with a property to a scalar value ... but what is to be done
>>> with
>>> properties like figure.papersize, figure.paperposition, root.screensize,
>>>
>>> In my octaverc I set several property defaults. See below ...
>>>
>>> if compare_versions (version, "3.1.0", ">=")
>>> set (0, "defaultaxesfontname", "Helvetica")
>>> set (0, "defaultaxesfontsize", 14)
>>> set (0, "defaultaxesinterpreter", "tex")
>>> set (0, "defaultaxesxtick", [0:0.2:1])
>>> set (0, "defaultaxesytick", [0:0.2:1])
>>> set (0, "defaultaxesztick", [0:0.2:1])
>>> set (0, "defaultaxesxtickmode", "auto")
>>> set (0, "defaultaxesytickmode", "auto")
>>> set (0, "defaultaxesztickmode", "auto")
>>> set (0, "defaultaxesactivepositionproperty", "outerposition")
>>> set (0, "defaultfigurepapertype", "usletter")
>>> set (0, "defaultfigurepapersize", [8.5 11])
>>> set (0, "defaultfigureposition", [440 314 560 420])
>>> set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
>>> set (0, "screensize", [1, 1, 1440, 900])
>>> set (0, "screenpixelsperinch", 1440/14)
>>> edit editinplace true
>>> edit home .
>>> endif
>>>
>>> This should obviously be done at a lower level. Some of this is already
>>> being handled in gnuplot_drawnow.m.
>>>
>>> I'm not sure where, or how, such defaults should be set in the sources,
>>> but
>>> having gnuplot_drawnow.m handle it is obviously bad practice.
>>>
>>> Might someone be up to the task of taking this on, or offering guidance
>>> for
>>> the c++ deficient like myself? I don't see where in the sources xlim,
>>> ylim
>>> are set, so perhaps this is already in place for axes?
>>>
>>> Ben
>>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

Michael Goffioul
In reply to this post by bpabbott
On Sat, Jan 3, 2009 at 9:38 PM, Ben Abbott <[hidden email]> wrote:
> In a nutshell ... I'd like to be able to set the default values for
> properties representing vectors. For example, figure.paperposition where
> we'd like the default to be [0.25, 2.5, 8, 6]. I don't see how this can be
> done. In graphics.h.in I can set each element to the same value (all zeros
> for example), but I don't see how to set the default to a vector with
> differing values.

You can't. To achieve that, you have to use an indirect way. See for
instance what I did to set the default figure position in graphics.h.in.
Another way would be to have a utility function like

  Matrix make_vector(int n, ...)

that you could use in graphics.h.in to initialize properties with
predefined vector. The implementation of such function would use
stdargs.h or varargs.h.

> Then there is the problem that the defaults are set after the callbacks are
> in place, which changes some of the defaults. As you point out this can be
> easily fixed, but I'd think it more proper to set the defaults prior to
> setting up the callbacks.

I'm not sure what's the best in this specific case. If you want to
force a default value for xtick, then it makes sense to also have
xtickmode set to manual, otherwise your default xtick value would
be useless and immediately overwritten by the system as xtickmode
would be auto. Could anybody check what happens under Matlab:

close all
set(0, 'defaultaxesxtick', [0:1:10])
get(gca, 'xtick')
get(gca, 'xtickmode')

Michael.
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator

On Jan 3, 2009, at 5:07 PM, Michael Goffioul wrote:

> On Sat, Jan 3, 2009 at 9:38 PM, Ben Abbott <[hidden email]> wrote:
>> In a nutshell ... I'd like to be able to set the default values for
>> properties representing vectors. For example, figure.paperposition  
>> where
>> we'd like the default to be [0.25, 2.5, 8, 6]. I don't see how this  
>> can be
>> done. In graphics.h.in I can set each element to the same value  
>> (all zeros
>> for example), but I don't see how to set the default to a vector with
>> differing values.
>
> You can't. To achieve that, you have to use an indirect way. See for
> instance what I did to set the default figure position in  
> graphics.h.in.
> Another way would be to have a utility function like
>
>  Matrix make_vector(int n, ...)
>
> that you could use in graphics.h.in to initialize properties with
> predefined vector. The implementation of such function would use
> stdargs.h or varargs.h.
>
>> Then there is the problem that the defaults are set after the  
>> callbacks are
>> in place, which changes some of the defaults. As you point out this  
>> can be
>> easily fixed, but I'd think it more proper to set the defaults  
>> prior to
>> setting up the callbacks.
>
> I'm not sure what's the best in this specific case. If you want to
> force a default value for xtick, then it makes sense to also have
> xtickmode set to manual, otherwise your default xtick value would
> be useless and immediately overwritten by the system as xtickmode
> would be auto. Could anybody check what happens under Matlab:
>
> close all
> set(0, 'defaultaxesxtick', [0:1:10])
> get(gca, 'xtick')
> get(gca, 'xtickmode')
>
> Michael.

Excellent point!

 >> close all
 >> set(0, 'defaultaxesxtick', [0:1:10])
 >> get(gca, 'xtick')
 >> get(gca, 'xtickmode')

ans =     0     1     2     3     4     5     6     7     8     9    10

ans = manual

Thanks for the guidance.

Ben


Reply | Threaded
Open this post in threaded view
|

Re: where to initialized property defaults?

bpabbott
Administrator
In reply to this post by Shai Ayal-2
Shai

Thanks! I'll study those examples.

Ben

On Jan 3, 2009, at 4:58 PM, Shai Ayal wrote:

> I'm not sure either, but lloking at graphics.h.in I can see two
> options (Maybe Michael has a better way):
> the "init" member of the property as is done in:
> http://hg.savannah.gnu.org/hgweb/octave/file/cc3ac5eb6be3/src/graphics.h.in#2384
>
> or by calling a special function to initialise it, as is done in:
> http://hg.savannah.gnu.org/hgweb/octave/file/cc3ac5eb6be3/src/graphics.h.in#2334
>
> Shai
>
>
> On Sat, Jan 3, 2009 at 11:00 PM, Ben Abbott <[hidden email]> wrote:
>> Shai,
>>
>> Thanks for the prompt reply.
>>
>> When you have a moment, please look at setting a default for a  
>> vector, such
>> as root.screensize.
>>
>> I don't see how to initialize the values unless they each have the  
>> same
>> value. I'd like to do something like ...
>>
>>>> set (0, "screensize", [1, 1, 1440, 900])
>>
>> ... but I don't see how.
>>
>> Ben
>>
>>
>> On Jan 3, 2009, at 2:31 PM, Shai Ayal wrote:
>>
>>> Ben,
>>>
>>> The place to set default properties is in src/graphics.h.in.
>>> properties are defined and assigned default values inside
>>> BEGIN_PROPERTIES/END_PROPERTIES blocks for each graphics object type
>>> (e.g. figure, axes, etc...).
>>> these are system-wide defaults and are not backend dependant. As you
>>> noticed, the root figure was neglected during our work and has very
>>> little properties.
>>> Anyway, you can find examples of how to specify properties and their
>>> values in the file, just look at axes and figure. You can also add
>>> more elaborate inital values in the init member for each object.
>>> The graphics.h.in file is parsed by the genprops.awk script during
>>> compile to produce the actual graphics.h and the graphics-props.cc
>>> files which contain the definitions for the properties plus all the
>>> appropriate get/set functions. The awk script also has some
>>> documentation inside.
>>>
>>> Shai
>>> p.s. sorry for not being able to contribute more than pointers ...
>>>
>>>
>>> On Sat, Jan 3, 2009 at 9:10 PM, Ben Abbott <[hidden email]> wrote:
>>>>
>>>> Michael/Shai, I've copied you specifically because of your work  
>>>> on the
>>>> backend.
>>>>
>>>> I've been investing some effort improving the gnuplot backend's  
>>>> support
>>>> of
>>>> root/figure/axes/text/etc properties.
>>>>
>>>> One rather significant difficulty is where/how many of the default
>>>> property
>>>> values are to be set.
>>>>
>>>> In graphics.h.in it is simple enough to initialize each index of  
>>>> vector
>>>> associated with a property to a scalar value ... but what is to  
>>>> be done
>>>> with
>>>> properties like figure.papersize, figure.paperposition,  
>>>> root.screensize,
>>>>
>>>> In my octaverc I set several property defaults. See below ...
>>>>
>>>> if compare_versions (version, "3.1.0", ">=")
>>>> set (0, "defaultaxesfontname", "Helvetica")
>>>> set (0, "defaultaxesfontsize", 14)
>>>> set (0, "defaultaxesinterpreter", "tex")
>>>> set (0, "defaultaxesxtick", [0:0.2:1])
>>>> set (0, "defaultaxesytick", [0:0.2:1])
>>>> set (0, "defaultaxesztick", [0:0.2:1])
>>>> set (0, "defaultaxesxtickmode", "auto")
>>>> set (0, "defaultaxesytickmode", "auto")
>>>> set (0, "defaultaxesztickmode", "auto")
>>>> set (0, "defaultaxesactivepositionproperty", "outerposition")
>>>> set (0, "defaultfigurepapertype", "usletter")
>>>> set (0, "defaultfigurepapersize", [8.5 11])
>>>> set (0, "defaultfigureposition", [440 314 560 420])
>>>> set (0, "defaultfigurepaperposition", [0.25, 2.5, 8, 6])
>>>> set (0, "screensize", [1, 1, 1440, 900])
>>>> set (0, "screenpixelsperinch", 1440/14)
>>>> edit editinplace true
>>>> edit home .
>>>> endif
>>>>
>>>> This should obviously be done at a lower level. Some of this is  
>>>> already
>>>> being handled in gnuplot_drawnow.m.
>>>>
>>>> I'm not sure where, or how, such defaults should be set in the  
>>>> sources,
>>>> but
>>>> having gnuplot_drawnow.m handle it is obviously bad practice.
>>>>
>>>> Might someone be up to the task of taking this on, or offering  
>>>> guidance
>>>> for
>>>> the c++ deficient like myself? I don't see where in the sources  
>>>> xlim,
>>>> ylim
>>>> are set, so perhaps this is already in place for axes?
>>>>
>>>> Ben
>>>>
>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator
In reply to this post by Michael Goffioul

On Jan 3, 2009, at 5:07 PM, Michael Goffioul wrote:

> On Sat, Jan 3, 2009 at 9:38 PM, Ben Abbott <[hidden email]> wrote:
>> In a nutshell ... I'd like to be able to set the default values for
>> properties representing vectors. For example, figure.paperposition  
>> where
>> we'd like the default to be [0.25, 2.5, 8, 6]. I don't see how this  
>> can be
>> done. In graphics.h.in I can set each element to the same value  
>> (all zeros
>> for example), but I don't see how to set the default to a vector with
>> differing values.
>
> You can't. To achieve that, you have to use an indirect way. See for
> instance what I did to set the default figure position in  
> graphics.h.in.
> Another way would be to have a utility function like
>
>  Matrix make_vector(int n, ...)
>
> that you could use in graphics.h.in to initialize properties with
> predefined vector. The implementation of such function would use
> stdargs.h or varargs.h.
>
>> Then there is the problem that the defaults are set after the  
>> callbacks are
>> in place, which changes some of the defaults. As you point out this  
>> can be
>> easily fixed, but I'd think it more proper to set the defaults  
>> prior to
>> setting up the callbacks.
>
> I'm not sure what's the best in this specific case. If you want to
> force a default value for xtick, then it makes sense to also have
> xtickmode set to manual, otherwise your default xtick value would
> be useless and immediately overwritten by the system as xtickmode
> would be auto. Could anybody check what happens under Matlab:
>
> close all
> set(0, 'defaultaxesxtick', [0:1:10])
> get(gca, 'xtick')
> get(gca, 'xtickmode')
>
> Michael.

Michael/others,

I've essentially mimicked prior examples in order to set the defaults  
for ...

axes.xticks
axes.yticks
axes.zticks
figure.papersize
figure.paperposition
root.screensize

I've also attempted to add the "character" unit to  
graphics:convert_positon(...)

There is a typo for the radio value "pixels" for the property  
text.fontunits which is fixed as well.

I'd appreciate some advice/critque regarding the attached changeset.

Beyond these changes, I'd also like to see the axes.xticklabel /  
yticklabel / zticklabel updated when the xtick / ytick / ztick is  
set.  I have not looked into how the listeners are handled on the c++  
side yet, so I can't ask any intelligent questions. However, it  
appears to me that it would be proper to set the initial  
axes.xticklabel / yticklabel / zticklabel default values. However, I  
have been unable to figure that out.

Is it possible to set the ticklabels using a function (in graphics.cc)  
as is done for numeric values (for example the one below)

  static Matrix
default_axes_tick (void)
{
   Matrix m (1, 6, 0.0);
   m(0) = 0.0;
   m(1) = 0.2;
   m(2) = 0.4;
   m(3) = 0.6;
   m(4) = 0.8;
   m(5) = 1.0;
   return m;
}

Where graphics.h.in would then have

       row_vector_property xtick m , default_axes_tick ()
       row_vector_property ytick m , default_axes_tick ()
       row_vector_property ztick m , default_axes_tick ()

My naive guess would be to replace "Matrix" with "octave_value" (which  
I'd bet is wrong, because I can't find any such examples in the code).  
Beyond that I have no clue how to specify a cell array of strings.

More advice would be appreciated.

Ben











changeset-properties.patch (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

Michael Goffioul
On Mon, Jan 5, 2009 at 12:20 PM, Ben Abbott <[hidden email]> wrote:

> Michael/others,
>
> I've essentially mimicked prior examples in order to set the defaults for
> ...
>
> axes.xticks
> axes.yticks
> axes.zticks
> figure.papersize
> figure.paperposition
> root.screensize
>
> I've also attempted to add the "character" unit to
> graphics:convert_positon(...)
>
> There is a typo for the radio value "pixels" for the property text.fontunits
> which is fixed as well.
>
> I'd appreciate some advice/critque regarding the attached changeset.
>
> Beyond these changes, I'd also like to see the axes.xticklabel / yticklabel
> / zticklabel updated when the xtick / ytick / ztick is set.  I have not
> looked into how the listeners are handled on the c++ side yet, so I can't
> ask any intelligent questions. However, it appears to me that it would be
> proper to set the initial axes.xticklabel / yticklabel / zticklabel default
> values. However, I have been unable to figure that out.
>
> Is it possible to set the ticklabels using a function (in graphics.cc) as is
> done for numeric values (for example the one below)
>
>  static Matrix
> default_axes_tick (void)
> {
>  Matrix m (1, 6, 0.0);
>  m(0) = 0.0;
>  m(1) = 0.2;
>  m(2) = 0.4;
>  m(3) = 0.6;
>  m(4) = 0.8;
>  m(5) = 1.0;
>  return m;
> }
>
> Where graphics.h.in would then have
>
>      row_vector_property xtick m , default_axes_tick ()
>      row_vector_property ytick m , default_axes_tick ()
>      row_vector_property ztick m , default_axes_tick ()
>
> My naive guess would be to replace "Matrix" with "octave_value" (which I'd
> bet is wrong, because I can't find any such examples in the code). Beyond
> that I have no clue how to specify a cell array of strings.

You can use Cell class for that. But in this specific case, I wouldn't
try to add a default_axes_ticklabel() function, but instead provide
a function that can create the cell array of strings from the numerical
values and use it in the init() method and in the tick updater methods.
Schematically (untested), this would look like:

Cell compute_ticklabels(const Matrix& ticks)
{
  ...
}

void init(void)
{
  ...
  xticklabel = compute_ticklabels(xtick.get().matrix_value());
  ...
}

void update_xtick(void)
{
  if (xticklabelmode.is("auto")
    xticklabel = compute_ticklabels(xtick.get().matrix_value());
}

void update_xticklabelmode(void)
{
  if (xticklabelmode.is("auto")
    xticklabel = compute_ticklabels(xtick.get().matrix_value());
}

I hope you get the logic.

Michael.
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator
On Monday, January 05, 2009, at 07:52AM, "Michael Goffioul" <[hidden email]> wrote:

>On Mon, Jan 5, 2009 at 12:20 PM, Ben Abbott <[hidden email]> wrote:
>> Michael/others,
>>
>> I've essentially mimicked prior examples in order to set the defaults for
>> ...
>>
>> axes.xticks
>> axes.yticks
>> axes.zticks
>> figure.papersize
>> figure.paperposition
>> root.screensize
>>
>> I've also attempted to add the "character" unit to
>> graphics:convert_positon(...)
>>
>> There is a typo for the radio value "pixels" for the property text.fontunits
>> which is fixed as well.
>>
>> I'd appreciate some advice/critque regarding the attached changeset.
>>
>> Beyond these changes, I'd also like to see the axes.xticklabel / yticklabel
>> / zticklabel updated when the xtick / ytick / ztick is set.  I have not
>> looked into how the listeners are handled on the c++ side yet, so I can't
>> ask any intelligent questions. However, it appears to me that it would be
>> proper to set the initial axes.xticklabel / yticklabel / zticklabel default
>> values. However, I have been unable to figure that out.
>>
>> Is it possible to set the ticklabels using a function (in graphics.cc) as is
>> done for numeric values (for example the one below)
>>
>>  static Matrix
>> default_axes_tick (void)
>> {
>>  Matrix m (1, 6, 0.0);
>>  m(0) = 0.0;
>>  m(1) = 0.2;
>>  m(2) = 0.4;
>>  m(3) = 0.6;
>>  m(4) = 0.8;
>>  m(5) = 1.0;
>>  return m;
>> }
>>
>> Where graphics.h.in would then have
>>
>>      row_vector_property xtick m , default_axes_tick ()
>>      row_vector_property ytick m , default_axes_tick ()
>>      row_vector_property ztick m , default_axes_tick ()
>>
>> My naive guess would be to replace "Matrix" with "octave_value" (which I'd
>> bet is wrong, because I can't find any such examples in the code). Beyond
>> that I have no clue how to specify a cell array of strings.
>
>You can use Cell class for that. But in this specific case, I wouldn't
>try to add a default_axes_ticklabel() function, but instead provide
>a function that can create the cell array of strings from the numerical
>values and use it in the init() method and in the tick updater methods.
>Schematically (untested), this would look like:
>
>Cell compute_ticklabels(const Matrix& ticks)
>{
>  ...
>}
>
>void init(void)
>{
>  ...
>  xticklabel = compute_ticklabels(xtick.get().matrix_value());
>  ...
>}
>
>void update_xtick(void)
>{
>  if (xticklabelmode.is("auto")
>    xticklabel = compute_ticklabels(xtick.get().matrix_value());
>}
>
>void update_xticklabelmode(void)
>{
>  if (xticklabelmode.is("auto")
>    xticklabel = compute_ticklabels(xtick.get().matrix_value());
>}
>
>I hope you get the logic.
>
>Michael.
>

Thanks Michael,

I'll study the sources and return with an implementation or more questions.

Ben


Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

John W. Eaton
Administrator
In reply to this post by Michael Goffioul
On  5-Jan-2009, Michael Goffioul wrote:

| On Mon, Jan 5, 2009 at 12:20 PM, Ben Abbott <[hidden email]> wrote:
| > Michael/others,
| >
| > I've essentially mimicked prior examples in order to set the defaults for
| > ...
| >
| > axes.xticks
| > axes.yticks
| > axes.zticks
| > figure.papersize
| > figure.paperposition
| > root.screensize
| >
| > I've also attempted to add the "character" unit to
| > graphics:convert_positon(...)
| >
| > There is a typo for the radio value "pixels" for the property text.fontunits
| > which is fixed as well.
| >
| > I'd appreciate some advice/critque regarding the attached changeset.
| >
| > Beyond these changes, I'd also like to see the axes.xticklabel / yticklabel
| > / zticklabel updated when the xtick / ytick / ztick is set.  I have not
| > looked into how the listeners are handled on the c++ side yet, so I can't
| > ask any intelligent questions. However, it appears to me that it would be
| > proper to set the initial axes.xticklabel / yticklabel / zticklabel default
| > values. However, I have been unable to figure that out.
| >
| > Is it possible to set the ticklabels using a function (in graphics.cc) as is
| > done for numeric values (for example the one below)
| >
| >  static Matrix
| > default_axes_tick (void)
| > {
| >  Matrix m (1, 6, 0.0);
| >  m(0) = 0.0;
| >  m(1) = 0.2;
| >  m(2) = 0.4;
| >  m(3) = 0.6;
| >  m(4) = 0.8;
| >  m(5) = 1.0;
| >  return m;
| > }
| >
| > Where graphics.h.in would then have
| >
| >      row_vector_property xtick m , default_axes_tick ()
| >      row_vector_property ytick m , default_axes_tick ()
| >      row_vector_property ztick m , default_axes_tick ()
| >
| > My naive guess would be to replace "Matrix" with "octave_value" (which I'd
| > bet is wrong, because I can't find any such examples in the code). Beyond
| > that I have no clue how to specify a cell array of strings.
|
| You can use Cell class for that. But in this specific case, I wouldn't
| try to add a default_axes_ticklabel() function, but instead provide
| a function that can create the cell array of strings from the numerical
| values and use it in the init() method and in the tick updater methods.
| Schematically (untested), this would look like:
|
| Cell compute_ticklabels(const Matrix& ticks)
| {
|   ...
| }
|
| void init(void)
| {
|   ...
|   xticklabel = compute_ticklabels(xtick.get().matrix_value());
|   ...
| }
|
| void update_xtick(void)
| {
|   if (xticklabelmode.is("auto")
|     xticklabel = compute_ticklabels(xtick.get().matrix_value());
| }
|
| void update_xticklabelmode(void)
| {
|   if (xticklabelmode.is("auto")
|     xticklabel = compute_ticklabels(xtick.get().matrix_value());
| }
|
| I hope you get the logic.

Ben, do you plan to revise your patch according to Michael's
suggestion?

I applied the fix for the typo.

Thanks,

jwe
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator
On Monday, January 12, 2009, at 12:58PM, "John W. Eaton" <[hidden email]> wrote:

>On  5-Jan-2009, Michael Goffioul wrote:
>
>| On Mon, Jan 5, 2009 at 12:20 PM, Ben Abbott <[hidden email]> wrote:
>| > Michael/others,
>| >
>| > I've essentially mimicked prior examples in order to set the defaults for
>| > ...
>| >
>| > axes.xticks
>| > axes.yticks
>| > axes.zticks
>| > figure.papersize
>| > figure.paperposition
>| > root.screensize
>| >
>| > I've also attempted to add the "character" unit to
>| > graphics:convert_positon(...)
>| >
>| > There is a typo for the radio value "pixels" for the property text.fontunits
>| > which is fixed as well.
>| >
>| > I'd appreciate some advice/critque regarding the attached changeset.
>| >
>| > Beyond these changes, I'd also like to see the axes.xticklabel / yticklabel
>| > / zticklabel updated when the xtick / ytick / ztick is set.  I have not
>| > looked into how the listeners are handled on the c++ side yet, so I can't
>| > ask any intelligent questions. However, it appears to me that it would be
>| > proper to set the initial axes.xticklabel / yticklabel / zticklabel default
>| > values. However, I have been unable to figure that out.
>| >
>| > Is it possible to set the ticklabels using a function (in graphics.cc) as is
>| > done for numeric values (for example the one below)
>| >
>| >  static Matrix
>| > default_axes_tick (void)
>| > {
>| >  Matrix m (1, 6, 0.0);
>| >  m(0) = 0.0;
>| >  m(1) = 0.2;
>| >  m(2) = 0.4;
>| >  m(3) = 0.6;
>| >  m(4) = 0.8;
>| >  m(5) = 1.0;
>| >  return m;
>| > }
>| >
>| > Where graphics.h.in would then have
>| >
>| >      row_vector_property xtick m , default_axes_tick ()
>| >      row_vector_property ytick m , default_axes_tick ()
>| >      row_vector_property ztick m , default_axes_tick ()
>| >
>| > My naive guess would be to replace "Matrix" with "octave_value" (which I'd
>| > bet is wrong, because I can't find any such examples in the code). Beyond
>| > that I have no clue how to specify a cell array of strings.
>|
>| You can use Cell class for that. But in this specific case, I wouldn't
>| try to add a default_axes_ticklabel() function, but instead provide
>| a function that can create the cell array of strings from the numerical
>| values and use it in the init() method and in the tick updater methods.
>| Schematically (untested), this would look like:
>|
>| Cell compute_ticklabels(const Matrix& ticks)
>| {
>|   ...
>| }
>|
>| void init(void)
>| {
>|   ...
>|   xticklabel = compute_ticklabels(xtick.get().matrix_value());
>|   ...
>| }
>|
>| void update_xtick(void)
>| {
>|   if (xticklabelmode.is("auto")
>|     xticklabel = compute_ticklabels(xtick.get().matrix_value());
>| }
>|
>| void update_xticklabelmode(void)
>| {
>|   if (xticklabelmode.is("auto")
>|     xticklabel = compute_ticklabels(xtick.get().matrix_value());
>| }
>|
>| I hope you get the logic.
>
>Ben, do you plan to revise your patch according to Michael's
>suggestion?
>
>I applied the fix for the typo.
>
>Thanks,
>
>jwe

I had *hoped* to revise my patch ... and I've been looking at it. Unfortunately, my c++ knowledge/skill is not up to this task. I've yet to move beyond mimicking/modifying the work of others.

If you or someone else has the time for this, please feel free to take care of it. I'll be sure to study the solution.

Ben
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

bpabbott
Administrator
In reply to this post by bpabbott

On Jan 5, 2009, at 7:20 AM, Ben Abbott wrote:

*snip*

> Michael/others,
>
> I've essentially mimicked prior examples in order to set the  
> defaults for ...
>
> axes.xticks
> axes.yticks
> axes.zticks
> figure.papersize
> figure.paperposition
> root.screensize
>
> I've also attempted to add the "character" unit to  
> graphics:convert_positon(...)
*snip*

As John as done a proper implementation for too.screensize, I thought  
I'd produce a update the my earlier changeset.

Ben




changeset-properties.patch (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: 'paperpositionmode' change to rid gnuplot_set_term: size is zero

John W. Eaton
Administrator
On 23-Jan-2009, Ben Abbott wrote:

|
| On Jan 5, 2009, at 7:20 AM, Ben Abbott wrote:
|
| *snip*
|
| > Michael/others,
| >
| > I've essentially mimicked prior examples in order to set the  
| > defaults for ...
| >
| > axes.xticks
| > axes.yticks
| > axes.zticks
| > figure.papersize
| > figure.paperposition
| > root.screensize
| >
| > I've also attempted to add the "character" unit to  
| > graphics:convert_positon(...)
|
| *snip*
|
| As John as done a proper implementation for too.screensize, I thought  
| I'd produce a update the my earlier changeset.

OK, please commit this changeset.

Thanks,

jwe
12