help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Print Plot Results in all Black plot in file


From: Thomas D. Dean
Subject: Re: Print Plot Results in all Black plot in file
Date: Tue, 04 Aug 2015 00:56:23 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 08/04/15 00:16, Dmitri A. Sergatskov wrote:
On Tue, Aug 4, 2015 at 12:41 AM, Thomas D. Dean <address@hidden
<mailto:address@hidden>> wrote:


    I am struggling thru the code for print.

    Is there a global value that can be set to control the output of print.

    octave:> z=1:.1:pi;
    octave:> plot(z,sin(z));
    octave:> print("sin.png","-dpngcairo");

    works.

    Without -dpngcairo opts.devopt gets set to "-dpng" and print
    produces a black square.

    It looks like the opts structure is passed to gnuplot in
    __gnuplot_print__.m.  As a work-around, I patched this file to force
    pngcairo.  Not a solution, just makes lots of scripts work, again.

    I don't see any global mechanism to set a default print device.

    True?



​A quick and dirty hack is to add a line

​ if (strfind (opts.devopt, "png")) opts.devopt = "pngcairo" ; endif

near the top of function print in "print.m"

(while you at it you can also similarly override pdf with pdfcairo
   (and postscript with epscairo, but that require some extra
modifications))

Thanks, that is a better temporary fix than mine. I want to stay with gnuplot 5.1 for other reasons. So far, after making the patch, I have not found any problems.

> hg diff
diff -r 011a364b4d78 scripts/plot/util/print.m
--- a/scripts/plot/util/print.m Fri Jun 05 15:51:04 2015 -0400
+++ b/scripts/plot/util/print.m Tue Aug 04 00:50:01 2015 -0700
@@ -287,6 +287,14 @@

   opts = __print_parse_opts__ (varargin{:});

+  if (strfind (opts.devopt, "png"))
+    opts.devopt = "pngcairo" ;
+  elseif (strfind (opts.devopt, "pdf"))
+    opts.devopt = "pdfcairo" ;
+  elseif (strfind (opts.devopt, "eps"))
+    opts.devopt = "epscairo" ;
+  endif
+
   opts.pstoedit_cmd = @pstoedit;
   opts.fig2dev_cmd = @fig2dev;
   opts.latex_standalone = @latex_standalone;

Tom Dean



reply via email to

[Prev in Thread] Current Thread [Next in Thread]