plot issues
Ben Abbott
bpabbott at mac.com
Fri Jun 5 20:17:19 CDT 2009
On Jun 5, 2009, at 4:08 PM, Ethan Merritt wrote:
> On Friday 05 June 2009 11:12:52 Benjamin Lindner wrote:
>> Ethan Merritt wrote:
>>> On Friday 05 June 2009, Ben Abbott wrote:
>>>
>>>>>> Petr, what are the benefits of the pdfcairo and pngcairo
>>>>>> terminals
>>>>>> over the pdf and png terminals?
>>>
>>> Aside from licensing issues for PDFLib, using cairo to generate
>>> the plots
>>> allows antialiasing, transparency, and UTF-8 support.
>>
>> This may be a sutpid question, but what should a vector-based
>> graphics
>> description support antialiasing for?
>
> Ben asked about both pdfcairo and pngcairo.
> The anti-aliasing is an issue for png, not for pdf.
> Conversely, the transparency support is an issue for pdf but not for
> png.
>
>> pdfcairo might be superior if you require transparency and UTF-8,
>> granted, but the quality of the generated output is disappointing
>> compared to pdf via postscript.
>> I do a lot of image plots and found that the resulting file sizes
>> with
>> the pdfcairo terminal are 4-8 times larger than a ps->pdf output.
>> Also
>> you don't have good control over font selection, which is IMO a
>> knock-out criteria when doing high-quality plots for e.g. latex
>> inclusion.
>
> All I can say is that I have had the opposite experience.
> Maybe that's because I work in a UTF environment and need support
> for CJK character sets. PostScript is basically hopeless for those.
> There are some very fragile workarounds, but they are so installation-
> specific that it doesn't work to build scripts or work flow around
> them.
>
> For latex inclusion, ps2pdf or direct PDF generation should be exactly
> the same, and subject to the same limitations of whatever converted
> Computer Modern fonts you are using. If that is a primary concern,
> then using one of the latex-based terminals directly is a better bet.
>
> Ethan
It doesn't appear to me that there is one solution that is preferred
over the other in all cases.
I'll propose the following, and encourage all to comment.
-----------
1) if "pdfcairo" is present => use "set term pdfcairo ..."
2) if "pdf" is present => use "set term pdf ..."
3) if neither => use "set term postscript ..." and then convert using
ghostscript
-----------
Although I'm a big LaTeX user, I elevated pdfcairo over pdf for the
transparency feature.
Similarly for png
-----------
1) if "pngcairo" is present => use "set term pngcairo ..."
2) if "png" is present => use "set term png ..."
3) if neither => use "set term postscript eps ..." and then convert
using ghostscript
-----------
For LaTeX, I will soon be adding support for the Lua/TikZ terminal.
Its rendering is a bit slow, but produces excellent results for both
latex and pdflatex.
The solutions above will only work well for gnuplot 4.3+. Prior to
that the variable GPVAL_TERMINALS does not exist, and octave has no
manner to check for the existence of specific terminals.
My building of gnuplot is broken at the moment, so my work on this
will be delayed until I fix that. So if there are any suggestions/
comments for improvements, now is a good time to discuss further.
Ben
More information about the Bug-octave
mailing list