|
From: Ethan M. <merritt@u.washington.edu> - 2003-11-19 18:42:32
|
On Wednesday 19 November 2003 00:55, you wrote:
> Well, this shift can also be seen on the "dumb enha" terminal -- but it=
s
> character size should not be scalable so that {/*4 } should alway be se=
t
> to 1, I think? The same for other terminals with non-scalable fonts.
But is this a bug? The program is doing what you tell it to do - scale
the font size by some large factor. The optimal choice of font and scali=
ng
is always going to depend on the specific output device, so I think the
user is ultimately responsible for requesting reasonable values.
This behavior is also present in the original PostScript code.
The placement of the sub- and superscripts is calculated separately
by the layout code, and if you tell it there is a large font it will plac=
e them
far above or below the baseline. gnuplot does not really know if the
font size information is correct or not, it just assumes that if you sele=
ct
a font size you know what you are doing.
And even for PostScript output this assumption can go wrong.
Gnuplot calculates text placement based on the font information
present at the time you create the plot. But if you print the output fil=
e on
a printer that does not have that font, the printer will substitute some
other font and the sub/superscript placement may well be incorrect.
This is exactly parallel to the X11 case. You tell gnuplot that
such-and-such a font is to be used, and what size it is=20
supposed to be. Gnuplot positions text accordingly, then
sends the output to a separate program (gnuplot_x11)=20
which in turn sends it to an X-server. And that X-server
may not have that font, or may not be able to provide the
size requested. But this failure is too late, and in the wrong
program, for gnuplot to do anything about it.
OK, yes, I agree that the dumb terminal driver is never going
to be able to scale fonts. So maybe it is a special case.
But I was not really worried about producing optimal output
on the dumb terminal. Do you think this is important?
And if I change it so that the scale factor is ignored in some
cases, then you will lose the ability to tweak the scale factor if you
*do* in fact want to adjust the sub- and super- scripts placement.
For instance if you have multiple levels of sub/superscripts
=09label =3D "{x^{k_1}}"
You need to request a larger font scaling in the dumb terminal
in order to spread the k-sub-1 over two lines.
There are more complex options, I suppose.
We could create a new style option
=09set font [no[scaleable]] [charset <val>] [... others?]
But I think this can all come afterwards, if people find that
the current mechanism is inadequate in practice.
--=20
Ethan A Merritt merritt@u.washington.edu
Biomolecular Structure Center Box 357742
University of Washington, Seattle, WA 98195
|