Mercurial > octave
changeset 25307:f2eb8bfcccb6 stable
Use consistent gnuplot toolkit font syntax allow SVG fractional font size (bug #53737)
* print.m: Document the cgm and eepic terminals (gnuplot only).
* __gnuplot_print__.m: Condition "background" option on several of the terminal
types which otherwise would produce a gnuplot warning. Add terminal type
cases "cgm" and "latex" to the list of generic plotting formats.
(font_spec): Use the 'font "<name>,<size>"' format in almost all cases, which
has been made more consistent in recent gnuplot versions. Remove code that
rounds the SVG font size.
* __print_parse_opts__.m: Add to the dev_list "canvas", "cgm", "latex" and
"eepic" and correspondingly to the suffixes "js", "cgm", "tex" and "tex".
author | Daniel J Sebald <daniel.sebald@ieee.org> |
---|---|
date | Tue, 24 Apr 2018 14:08:30 -0500 |
parents | a6419af90031 |
children | 74fbe0d91994 7d32780f4dea |
files | scripts/plot/util/print.m scripts/plot/util/private/__gnuplot_print__.m scripts/plot/util/private/__print_parse_opts__.m |
diffstat | 3 files changed, 40 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/plot/util/print.m Tue Apr 24 13:29:20 2018 -0700 +++ b/scripts/plot/util/print.m Tue Apr 24 14:08:30 2018 -0500 @@ -151,6 +151,10 @@ ## @itemx @nospell{corel} ## @nospell{CorelDraw} ## +## @item cgm +## Computer Graphics Metafile, Version 1, ANSI X3.122-1986 +## (only available for the Gnuplot graphics toolkit). +## ## @item dxf ## AutoCAD ## @@ -165,7 +169,8 @@ ## (default is @option{-textnormal}) ## ## @item gif -## GIF image (only available for the Gnuplot graphics toolkit) +## GIF image +## (only available for the Gnuplot graphics toolkit). ## ## @item hpgl ## HP plotter language @@ -175,8 +180,9 @@ ## JPEG image ## ## @item latex -## @LaTeX{} picture environment (only available for the Gnuplot graphics -## toolkit). +## @itemx eepic +## @LaTeX{} picture environment and extended picture environment +## (only available for the Gnuplot graphics toolkit). ## ## @item mf ## Metafont
--- a/scripts/plot/util/private/__gnuplot_print__.m Tue Apr 24 13:29:20 2018 -0700 +++ b/scripts/plot/util/private/__gnuplot_print__.m Tue Apr 24 14:08:30 2018 -0500 @@ -45,12 +45,15 @@ ## The axes-label and tick-label spacing is determined by ## the font spec given in "set terminal ..." gp_opts = font_spec (opts); - bg = get (opts.figure, "color"); - if (isnumeric (bg)) - gp_opts = sprintf ('%s background rgb "#%02x%02x%02x"', - gp_opts, round (255 * bg)); - else - gp_opts = sprintf ("%s nobackground", gp_opts); + if (! any (strcmpi (opts.devopt, {"fig", "dxf", "hpgl", "mf", "pstricks", ... + "texdraw", "latex", "eepic"}))) + bg = get (opts.figure, "color"); + if (isnumeric (bg)) + gp_opts = sprintf ('%s background rgb "#%02x%02x%02x"', + gp_opts, round (255 * bg)); + else + gp_opts = sprintf ("%s nobackground", gp_opts); + endif endif pipeline = ""; @@ -144,7 +147,8 @@ "print.m: '%s' output is not available for gnuplot-%s", upper (opts.devopt), __gnuplot_version__ ()); endif - case {"canvas", "dxf", "hpgl", "latex", "mf", "gif", "pstricks", "texdraw"} + case {"canvas", "cgm", "dxf", "hpgl", "latex", "mf", "gif", ... + "pstricks", "texdraw"} if (__gnuplot_has_terminal__ (opts.devopt)) local_drawnow ([opts.devopt " " gp_opts], opts.name, opts); else @@ -246,7 +250,7 @@ elseif (! isempty (opts.font)) f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - f = sprintf ("%d", opts.fontsize); + f = sprintf ('font ",%d"', opts.fontsize); endif case {"eps", "eps2", "epsc", "epsc2"} ## Gnuplot renders fonts as half their specification, which @@ -258,19 +262,15 @@ elseif (! isempty (opts.font)) f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - f = sprintf ("%d", 2 * opts.fontsize); + f = sprintf ('font ",%d"', 2 * opts.fontsize); endif case "svg" - ## FIXME: Why does svg format use round on the fontsize while - ## other terminals don't? if (! isempty (opts.font) && ! isempty (opts.fontsize)) - fontsize = round (opts.fontsize * 0.75); - f = sprintf ('fname "%s" fsize %d', opts.font, fontsize); + f = sprintf ('font "%s,%d"', opts.font, opts.fontsize * 0.75); elseif (! isempty (opts.font)) - f = sprintf ('fname "%s"', opts.font); + f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - fontsize = round (opts.fontsize * 0.75); - f = sprintf ("fsize %d", fontsize); + f = sprintf ('font ",%d"', opts.fontsize * 0.75); endif case "pdf" if (! isempty (opts.font) && ! isempty (opts.fontsize)) @@ -305,7 +305,7 @@ endif case {"gif", "jpeg", "png"} if (! isempty (opts.font) && ! isempty (opts.fontsize)) - f = sprintf ('font "%s ,%d"', opts.font, opts.fontsize); + f = sprintf ('font "%s,%d"', opts.font, opts.fontsize); elseif (! isempty (opts.font)) f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) @@ -313,31 +313,31 @@ endif case "emf" if (! isempty (opts.font) && ! isempty (opts.fontsize)) - f = sprintf ('"%s" %d', opts.font, opts.fontsize); + f = sprintf ('font "%s,%d"', opts.font, opts.fontsize); elseif (! isempty (opts.font)) - f = sprintf ('"%s"', opts.font); + f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - f = sprintf ("%d", opts.fontsize); + f = sprintf ('font ",%d"', opts.fontsize); endif case "canvas" if (! isempty (opts.fontsize)) - f = sprintf ("fsize %d", opts.fontsize); + f = sprintf ('font ",%d"', opts.fontsize); endif case {"aifm", "corel"} if (! isempty (opts.font) && ! isempty (opts.fontsize)) - f = sprintf ("%s %d", opts.font, opts.fontsize); + f = sprintf ('font "%s,%d"', opts.font, opts.fontsize); elseif (! isempty (opts.font)) - f = sprintf ("%s", opts.font); + f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - f = sprintf ("%d", opts.fontsize); + f = sprintf ('font ",%d"', opts.fontsize); endif case "fig" if (! isempty (opts.font) && ! isempty (opts.fontsize)) - f = sprintf ("font %s fontsize %d", opts.font, opts.fontsize); + f = sprintf ('font "%s,%d"', opts.font, opts.fontsize); elseif (! isempty (opts.font)) - f = sprintf ("font %s", opts.font); + f = sprintf ('font "%s"', opts.font); elseif (! isempty (opts.fontsize)) - f = sprintf ("fontsize %d", opts.fontsize); + f = sprintf ('font ",%d"', opts.fontsize); endif endswitch
--- a/scripts/plot/util/private/__print_parse_opts__.m Tue Apr 24 13:29:20 2018 -0700 +++ b/scripts/plot/util/private/__print_parse_opts__.m Tue Apr 24 14:08:30 2018 -0500 @@ -225,7 +225,8 @@ "epscairo", "pdfcairo", "pngcairo", "cairolatex", ... "pdfcairolatex", "pdfcairolatexstandalone", ... "epscairolatex", "epscairolatexstandalone", "pstricks", ... - "epswrite", "eps2write", "pswrite", "ps2write", "pdfwrite"}; + "epswrite", "eps2write", "pswrite", "ps2write", "pdfwrite", ... + "canvas", "cgm", "latex", "eepic"}; persistent suffixes = {"ai", "cdr", "fig", "png", "jpg", ... "gif", "pbm", "pbm", "dxf", "mf", ... @@ -239,7 +240,8 @@ "eps", "pdf", "png", "tex", ... "tex", "tex", ... "tex", "tex", "tex", ... - "eps", "eps", "ps", "ps", "pdf"}; + "eps", "eps", "ps", "ps", "pdf", ... + "js", "cgm", "tex", "tex"}; if (isfigure (arg_st.figure)) __graphics_toolkit__ = get (arg_st.figure, "__graphics_toolkit__");