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