|
From: Ethan A M. <merritt@u.washington.edu> - 2009-02-23 16:13:43
|
On Monday 23 February 2009, pl...@pi... wrote: > Ethan A Merritt wrote: > > > > Gnuplot does not do any font handling on its own. It leaves this > > to the individual external devices or libraries. The corresponding > > drivers are supposed to provide approximate information about the > > average character width in the fields term->h_char, but the > > approximation can be pretty terrible depending on what font you pick. > > And anyhow, at best it contains the estimated width of an "average" > > character. In your case the titles are in all caps, and these are > > wider characters than average. > > that gives some kind of manual work around which is helpful but all this > seems rather unsatisfactory in this day and age. Are there really none > of these terminals that can correctly return the space needed to render > a character string? X11 must surely be able to give that. I'd be a > little surprised if cairo can't. Sure. You could write a cairo-based graphics program, or a libgd-based graphics program, that queried the libraries for exact character widths. But gnuplot is not such a program. The core gnuplot code is separate from, and independent of, individual terminal drivers. > While separating out the rendering detail into different terminals has > advantages it should not end up reducing things to a lowest common > denominator. If some terminals can correctly calculate text extents it > would be nice to use that capability. So far as I can see, that would require major restructing of the program. If you want to work on it, I suggest that the first step is to block out what such a restructuring would look like. Remember that some of the most capable terminal drivers, e.g. PostScript and svg, cannot know about font metrics at the time gnuplot is running. How would you take that into account? -- Ethan A Merritt |