From: Andrew R. <and...@us...> - 2006-04-06 22:40:02
|
I know it is some time since I originally committed to looking at this. I've finally had chance to get it into a roughly working state. I am about to check in my current version. The postscript truetype fonts are handled using the LASi library that Alan recommended. Results look pretty good. Check out examples x23 and x24! Points to note. 1) Currently this is a separate driver (psnew / psnewc). Much of the code is shared with ps.c, but it is compiled with the C++ compiler since LASi is a C++ library. It would be nice if this could be somehow integrated back in, but I don't want to "break" the existing ps driver for users who don't have C++ and/or LASi. Working round the lack of LASi with judicious use of #ifdefs should be possible. The C++ question is a little more tricky. 2) The driver is disabled by default. Use --enable-psnew to enable it. You will need LASi, pango and pangoft2 installed to use the driver. pango / pangoft2 are available as Debian packages. LASi is not (yet). Configuration should be done automatically using pkg-config. 3) Font selection is currently hard coded in, though it shouldn't be too hard to alter this. LASi/pango uses a slightly different font selection scheme to the Freetype library. You specify family / style / weight as separate options. Pango appears to be quite clever at substituting fonts though. 4) There appears to be some issue with languages which are written right to left. LASi / pango seems to be too clever and is automatically writing the strings out in the reverse order when compared to the drivers using Freetype. This needs fixing. (See e.g. example 24). 5) LASi doesn't seem to allow you to put the bounding box right at the beginning of the file. It appears after a few lines of other LASi comments and the "%%Begin Prolog" line. As a result gv, at least, ignores it. It's not quite polished yet, but it is certainly useable. I hope it doesn't interfere with anything else. From Sunday I am away for a week, so if anyone else wants to try it / fix things in the meantime then feel free. It would be nice if we could get this polished for the next release, but depending on the timescale it might not be possible. Enjoy! Andrew |
From: Alan W. I. <ir...@be...> - 2006-04-07 06:39:27
|
On 2006-04-06 23:39+0100 Andrew Ross wrote: > > 4) There appears to be some issue with languages which are written right > to left. LASi / pango seems to be too clever and is automatically > writing the strings out in the reverse order when compared to the > drivers using Freetype. This needs fixing. (See e.g. example 24). > [...] > > It's not quite polished yet, but it is certainly useable. I hope it > doesn't interfere with anything else. From Sunday I am away for a week, > so if anyone else wants to try it / fix things in the meantime then feel > free. It would be nice if we could get this polished for the next > release, but depending on the timescale it might not be possible. > > Enjoy! Thanks, Andrew, for this valuable effort. Postscript is still the choice for many scientific plots so I think the access to TrueType fonts you have programmed into psnew is going to be appreciated by a lot of our users. Unfortunately, I am tied up with something else at the moment so it will probably be at least a week before I can try out your work. However, I do have a remark about your point 4 above based on e-conversations I have had with the current LASi maintainer, Ed Trager, who is something of a UTF8 and complex text layout guru for Linux. According to him, LASi / pango handles all complex text layout languages (right to left such as Arabic/Hebrew or the even more complicated Indic languages such as Thai) properly. So does libQT and therefore KDE/konqueror. (N.B. according to Ed, netscape/mozilla/firefox does not have good support of CTL so you should not use it for comparisons.) So if you simply cut and paste from the peace flag web site using konqueror to the UTF8 strings in example 24, all should be well with psnew, and our Arabic peace flag string (and also all characters in our Hindi peace flag string) should appear in exactly the same (correct) order as the website ones (assuming the website is displayed with konqueror). Anyhow, that is the theory, and I would appreciate it if you would try that cut and paste experiment for the UTF8 strings in example 24. If that works, please commit the changed order. Ed Trager feels using the standard "cut and paste" order is important for CTL language users, and I tend to agree with him. Of course, this changed order would leave the "peace" word in Hebrew, Arabic, and Hindi for our example 24, in the incorrect order for our GD-related devices, but perhaps it is time to figure out how to get the GD layout done in the correct order for CTL languages in general. For example, it might be possible to do the GD layout of text using libpango rather than the simple left-to-right layout we use now. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Rafael L. <rla...@us...> - 2006-04-07 08:41:46
Attachments:
x24-source.png
|
I am just lurking this discussion, unfortunately I have no time to test he new PS driver written by Andrew. However, I am puzzled by what Alan wrote: * Alan W. Irwin <ir...@be...> [2006-04-06 23:39]: > According to him, LASi / pango handles all complex text layout > languages (right to left such as Arabic/Hebrew or the even more > complicated Indic languages such as Thai) properly. So does libQT and > therefore KDE/konqueror. (N.B. according to Ed, > netscape/mozilla/firefox does not have good support of CTL so you > should not use it for comparisons.) So if you simply cut and paste from > the peace flag web site using konqueror to the UTF8 strings in example > 24, all should be well with psnew, and our Arabic peace flag string > (and also all characters in our Hindi peace flag string) should appear > in exactly the same (correct) order as the website ones (assuming the > website is displayed with konqueror). Anyhow, that is the theory, and > I would appreciate it if you would try that cut and paste experiment > for the UTF8 strings in example 24. I guess that you mean cut and paste form the text file in: http://plplot.sourceforge.net/examples-data/demo24/x24c.c- When I look at this URL with Konqueror and choose from the menu Tools->Enconding->Unicode(utf8), then I see the window attached below in PNG format. The characters for Hebrew and Arabic are in the reversed order (as they should be). BTW, I see exactly the same with Mozilla. I am confused by your claim that Konqueror and Mozilla differ in the way they present right-to-left text. -- Rafael |
From: Andrew R. <and...@us...> - 2006-04-07 09:02:50
|
Raphael, Konqeuror also "does the right thing" about font direction. I've not checked mozilla. If you look at your example compared to the peace flag website you will see that the text is back to front. Now I have fixed example 24 the text will appear correctly if you view x24c.c in konqueror or some other UTF-8 enabled editor. It will also appear correctly with the new postscript driver, just not with the GD driver. Andrew On Fri, Apr 07, 2006 at 10:41:31AM +0200, Rafael Laboissiere wrote: > I am just lurking this discussion, unfortunately I have no time to test > he new PS driver written by Andrew. However, I am puzzled by what Alan > wrote: > > * Alan W. Irwin <ir...@be...> [2006-04-06 23:39]: > > > According to him, LASi / pango handles all complex text layout > > languages (right to left such as Arabic/Hebrew or the even more > > complicated Indic languages such as Thai) properly. So does libQT and > > therefore KDE/konqueror. (N.B. according to Ed, > > netscape/mozilla/firefox does not have good support of CTL so you > > should not use it for comparisons.) So if you simply cut and paste from > > the peace flag web site using konqueror to the UTF8 strings in example > > 24, all should be well with psnew, and our Arabic peace flag string > > (and also all characters in our Hindi peace flag string) should appear > > in exactly the same (correct) order as the website ones (assuming the > > website is displayed with konqueror). Anyhow, that is the theory, and > > I would appreciate it if you would try that cut and paste experiment > > for the UTF8 strings in example 24. > > I guess that you mean cut and paste form the text file in: > > http://plplot.sourceforge.net/examples-data/demo24/x24c.c- > > When I look at this URL with Konqueror and choose from the menu > Tools->Enconding->Unicode(utf8), then I see the window attached below in > PNG format. The characters for Hebrew and Arabic are in the reversed > order (as they should be). BTW, I see exactly the same with Mozilla. > > I am confused by your claim that Konqueror and Mozilla differ in the way > they present right-to-left text. > > -- > Rafael |
From: Rafael L. <rla...@us...> - 2006-04-07 11:35:14
|
* Andrew Ross <and...@us...> [2006-04-07 10:02]: > Konqeuror also "does the right thing" about font direction. I've not > checked mozilla. If you look at your example compared to the peace > flag website you will see that the text is back to front. Now I have > fixed example 24 the text will appear correctly if you view x24c.c in > konqueror or some other UTF-8 enabled editor. It will also appear > correctly with the new postscript driver, just not with the GD driver. Thanks for the clarification and for your work on psnew. I really appreciate it. Another question: LASi is written in C++. Does the core of PLplot depends now on C++ libraries? I guess (and hope) this is not the case. -- Rafael |
From: Andrew R. <and...@us...> - 2006-04-07 11:58:17
|
On Fri, Apr 07, 2006 at 01:34:59PM +0200, Rafael Laboissiere wrote: > * Andrew Ross <and...@us...> [2006-04-07 10:02]: > > > Konqeuror also "does the right thing" about font direction. I've not > > checked mozilla. If you look at your example compared to the peace > > flag website you will see that the text is back to front. Now I have > > fixed example 24 the text will appear correctly if you view x24c.c in > > konqueror or some other UTF-8 enabled editor. It will also appear > > correctly with the new postscript driver, just not with the GD driver. > > Thanks for the clarification and for your work on psnew. I really > appreciate it. > > Another question: LASi is written in C++. Does the core of PLplot depends > now on C++ libraries? I guess (and hope) this is not the case. The core doesn't depend on C++ libraries - only the psnew driver does. In this sense it is no different to the wxwidgets driver which is in C++. This was one of the main reasons I wrote this as a separate driver rather than an option in the existing ps driver. Andrew |
From: Rafael L. <rla...@us...> - 2006-04-09 08:54:58
|
* Andrew Ross <and...@us...> [2006-04-07 12:58]: > The core doesn't depend on C++ libraries - only the psnew driver does. > In this sense it is no different to the wxwidgets driver which is in > C++. This was one of the main reasons I wrote this as a separate driver > rather than an option in the existing ps driver. It is probably too late now, but there is also a pure-C library similar to LASi: http://paps.sf.net. An unrelated issue: I think we should give the new PS driver a more informative name, like "psutf" or "psunicode", instead of "psnew". -- Rafael |
From: Alan W. I. <ir...@be...> - 2006-04-09 15:37:49
|
On 2006-04-09 10:54+0200 Rafael Laboissiere wrote: > [...]I think we should give the new PS driver a more > informative name, like "psutf" or "psunicode", instead of "psnew". A more informative name is a good idea, Rafael. However, one minor objection to psutf and psunicode is the old device handles UTF-8 and unicode as well although subject, of course, to the severe 255 character limit per font issue with Type-1 fonts. The fundamental difference for this new device is it can handle TrueType fonts. So how about naming it "pstt"? Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Rafael L. <rla...@us...> - 2006-04-11 07:21:16
|
* Alan W. Irwin <ir...@be...> [2006-04-09 08:37]: > A more informative name is a good idea, Rafael. However, one minor > objection to psutf and psunicode is the old device handles UTF-8 and > unicode as well although subject, of course, to the severe 255 > character limit per font issue with Type-1 fonts. The fundamental > difference for this new device is it can handle TrueType fonts. So how > about naming it "pstt"? In this case it would be better to use psttf, since "ttf" is the usual acronym for TrueType font. Try "apt-cache search ttf" and you will see what I mean. At any rate, anything is better than "psnew". BTW, what would be the successor of "psnew"? Perhaps "psnewer"? -- Rafael |
From: Alan W. I. <ir...@be...> - 2006-04-11 16:05:49
|
On 2006-04-11 09:21+0200 Rafael Laboissiere wrote: > In this case it would be better to use psttf, since "ttf" is the usual > acronym for TrueType font. You are right. What do you think of using psttf, Andrew? Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Andrew R. <and...@us...> - 2006-04-17 10:23:11
|
I'm quite happy with that. psnew was very much a working name. I'll make the necessary changes. Andrew On Tue, Apr 11, 2006 at 09:05:02AM -0700, Alan Irwin wrote: > On 2006-04-11 09:21+0200 Rafael Laboissiere wrote: > > >In this case it would be better to use psttf, since "ttf" is the usual > >acronym for TrueType font. > > You are right. What do you think of using psttf, Andrew? > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state implementation > for stellar interiors (freeeos.sf.net); PLplot scientific plotting software > package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the > Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project > (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |
From: Andrew R. <and...@us...> - 2006-04-17 10:25:36
|
On Sun, Apr 09, 2006 at 10:54:50AM +0200, Rafael Laboissiere wrote: > * Andrew Ross <and...@us...> [2006-04-07 12:58]: > > > The core doesn't depend on C++ libraries - only the psnew driver does. > > In this sense it is no different to the wxwidgets driver which is in > > C++. This was one of the main reasons I wrote this as a separate driver > > rather than an option in the existing ps driver. > > It is probably too late now, but there is also a pure-C library similar to > LASi: http://paps.sf.net. I did look at paps as well. Technically both seemed to do similar things. Alan expressed a slight preference for LASi since he had had some useful discussion with the LASI developers which is always useful. I was happy to go along with that. Cheers Andrew |
From: Alan W. I. <ir...@be...> - 2006-04-07 16:28:47
|
On 2006-04-07 10:41+0200 Rafael Laboissiere wrote: > [Alan said] >> (N.B. according to Ed, >> netscape/mozilla/firefox does not have good support of CTL so you >> should not use it for comparisons.) > I am confused by your claim that Konqueror and Mozilla differ in the way > they present right-to-left text. To be more specific, what Ed is complaining about is the lack of support for Hindi (which I verified is wrong for mozilla, check out the order of the last vowel in the Peace word compared to what you get from konqueror) and even more complex text layout languages such as Thai. Formally, Hebrew and Arabic are classified as CTL, but in fact their layout can straightforwardly be done simply by logically reversing strings. Apparently from your tests, netscape/mozilla/firefox takes that approach with them so everything seems fine there, but currently (again mostly according to Ed since I have only verified in one case) n/m/f cannot handle layout of anything more complex than those languages while konqueror can. To avoid such issues for ourselves, I hope it is possible to move to pango for the GD text layout. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2006-04-07 17:16:21
|
On 2006-04-07 12:58+0100 Andrew Ross wrote: > On Fri, Apr 07, 2006 at 01:34:59PM +0200, Rafael Laboissiere wrote: >> * Andrew Ross <and...@us...> [2006-04-07 10:02]: >> >>> Konqeuror also "does the right thing" about font direction. I've not >>> checked mozilla. If you look at your example compared to the peace >>> flag website you will see that the text is back to front. Now I have >>> fixed example 24 the text will appear correctly if you view x24c.c in >>> konqueror or some other UTF-8 enabled editor. It will also appear >>> correctly with the new postscript driver, just not with the GD driver. >> >> Thanks for the clarification and for your work on psnew. I really >> appreciate it. >> >> Another question: LASi is written in C++. Does the core of PLplot depends >> now on C++ libraries? I guess (and hope) this is not the case. > > The core doesn't depend on C++ libraries - only the psnew driver does. > In this sense it is no different to the wxwidgets driver which is in > C++. This was one of the main reasons I wrote this as a separate driver > rather than an option in the existing ps driver. Andrew, you are absolutely correct in the default enable-dyndrivers case. However, although few of us use it anymore, the --disable-dyndrivers case is a corner case where this C++ code would automatically end up in our core C library. Mixing C++ and C code in the same library will cause problems on some platforms. (See the discussion "Mixing Fortran 77 With C and C++" that is accessible when you run "info automake". Recall we did everything recommended there for the case when we were mixing fortran and C code in the same library, but ultimately it didn't work for Mac OX X platform so we finally just separated our libraries by language to avoid all such issues.) To avoid such cross-platform problems, I suggest we automatically disable psnew and wxwidgets for the --disable-dyndrivers case. Assuming you agree this is the right way to deal with this corner case, I think the issue of disabling certain devices in the --disable-dyndrivers case came up in discussion years ago, and there is an extremely simple way to do it, but I cannot recall the details. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |