|
From: Ben A. <bpa...@ma...> - 2009-04-05 18:58:18
|
On Apr 5, 2009, at 2:14 PM, Ethan A Merritt wrote: > On Sunday 05 April 2009, Ben Abbott wrote: >> >> On Apr 5, 2009, at 3:47 AM, Petr Mikulik wrote: >> >>> Printing to pdf (via gnuplot backend) is broken in Octave 3.1.55 >>> even though >>> gnuplot accepts "set term pdf" via "pdfcairo" terminal. >>> >>> >>>> plot(1:100); print a.pdf -dpdf >>> >>> error: gnuplot_drawnow: the gnuplot terminal, "pdf", is not >>> available. >>> error: called from: >>> error: >>> /opt/octave/octave-3.1.55/share/octave/3.1.55/m/plot/ >>> gnuplot_drawnow.m at >>> line 72, column 7 >>> >>> >>> It seems that gnuplot_drawnow.m requires exact match of terminal >>> names in >>> 3.1.55. However, gnuplot names the pdf terminal "pdf" or "pdfcairo" >>> according to the library it was compiled against. In both cases "set >>> term >>> pdf" works. >>> >>> I think gnuplot_drawnow.m should test presence of "pdfcairo" if >>> "pdf" has >>> not been found. >>> >>> If I try >>> print zz.png -dpngcairo >>> print zz.pdf -dpdfcairo >>> it produces these two files: >>> pngcairo:zz.png >>> pdfcairo:zz.pdf >>> Why the prefix there? >>> >>> --- >>> PM >> >> Petr, >> >> For "set term png" if there is no "png" present does gnuplot >> substitute "pngcairo" as well? > > yes > >> I notice the cairo terminals default options are different from the >> non-cairo terminals. Specifically, there is no default font-name >> specified, in GPVAL_TERMOPTIONS, for the cairo terminals. This will >> interfere with the rendering of different font-sizes when the >> anonymous font-name "*" is associated to an Octave text object. > > The cairo terminals default to font "Sans". > Why does this make a difference? Octave would prefer to specify the font-name and font-size for all text objects. Unfortunately, Octave has no way to determining that font-names are available to a particular gnuplot terminal. If a font- name is specified that a terminal does not have access to, errors/ warnings result. In addition, the text generally does not show up. To alleviate this, the current implementation of Octave uses an anonymous default font-name, "*". When this anonymous font-name is associated with a text object, neither the font-name or font-size are passed on to gnuplot. The exceptions to this are the x11 and wxt terminals which apparently have no problem with the fontname "*". > Would you like this to be echoed back by "show term"? > All gnuplot terminals should accept a font-size request with a blank > font > name as referring to the current (perhaps default) font. > E.g. > set term png enhanced font ",11" > set title "Big Title" font ",20" > should give you the default font in size 11 points, and a title in the > same font with size 20 points. Ok! I'll prepare a changeset to fix how Octave handles a font-name of "*". Thanks for the information. This will simplify things quite a bit. Ben |