# v_fig2emf

## PURPOSE

V_FIG2EMF save a figure in windows metafile format (H,S,P)

## SYNOPSIS

function v_fig2emf(h,s,p,f)

## DESCRIPTION

    V_FIG2EMF save a figure in windows metafile format (H,S,P)
     Usage:  (1) v_fig2emf      % save current figure in current folder
             (2) emf=1;                        % set emf=1 to print
                 figsize=[500 300];            % default size
                 figdir='../figs/<m>-<n>';     % default destination
                 ...
                 plot (...);
                 v_figbolden(figsize);
                 if emf, v_fig2emf(figdir), end

     Inputs: h   figure handle [use [] or omit for the current figure]
             s   optional file name which can include <m> for the top level
                     mfile name and <n> for figure number [if empty or missing: '<m>_<n>']
                     '.' suppresses the save, if s ends in '/' or '\', then '<m>_<n>' is appended
             p   call v_figbolden(p) before printing the figure (use p=0 for v_figbolden default)
             f   output format [default 'meta']
                 jpeg, png, tiff, tiffn, meta, bmpmono, bmp, bmp16m, bmp256,
                 hdf, pbm, pbmraw, pcxmono, pcx24b, pcx256, pcx16, pgm,
                 pgmraw, ppm, ppmraw; pdf, eps, epsc, eps2, epsc2, meta, svg, ps, psc, ps2, psc2

     Bugs:
        (1) MATLAB does not print the figure correctly when running under
            remote desktop; it seems to pick up the screen resolution incorrectly.

## CROSS-REFERENCE INFORMATION

This function calls:

- v_figbolden V_FIGBOLDEN embolden, resize and recolour the current figure =(POS,PV,M)

This function is called by:

## SOURCE CODE

    0001 function v_fig2emf(h,s,p,f)
    0002 %V_FIG2EMF save a figure in windows metafile format (H,S,P)
    0003 % Usage:  (1) v_fig2emf      % save current figure in current folder
    0004 %         (2) emf=1;                        % set emf=1 to print
    0005 %             figsize=[500 300];            % default size
    0006 %             figdir='../figs/<m>-<n>';     % default destination
    0007 %             ...
    0008 %             plot (...);
    0009 %             v_figbolden(figsize);
    0010 %             if emf, v_fig2emf(figdir), end
    0011 %
    0012 % Inputs: h   figure handle [use [] or omit for the current figure]
    0013 %         s   optional file name which can include <m> for the top level
    0014 %                 mfile name and <n> for figure number [if empty or missing: '<m>_<n>']
    0015 %                 '.' suppresses the save, if s ends in '/' or '\', then '<m>_<n>' is appended
    0016 %         p   call v_figbolden(p) before printing the figure (use p=0 for v_figbolden default)
    0017 %         f   output format [default 'meta']
    0018 %             jpeg, png, tiff, tiffn, meta, bmpmono, bmp, bmp16m, bmp256,
    0019 %             hdf, pbm, pbmraw, pcxmono, pcx24b, pcx256, pcx16, pgm,
    0020 %             pgmraw, ppm, ppmraw; pdf, eps, epsc, eps2, epsc2, meta, svg, ps, psc, ps2, psc2
    0021 %
    0022 % Bugs:
    0023 %    (1) MATLAB does not print the figure correctly when running under
    0024 %        remote desktop; it seems to pick up the screen resolution incorrectly.
    0025
    0026 %      Copyright (C) Mike Brookes 2012
    0027 %      Version: $Id: v_fig2emf.m 10865 2018-09-21 17:22:45Z dmb $
    0028 %
    0029 %   VOICEBOX is a MATLAB toolbox for speech processing.
    0030 %   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
    0031 %
    0032 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    0033 %   This program is free software; you can redistribute it and/or modify
    0034 %   it under the terms of the GNU Lesser General Public License as published by
    0035 %   the Free Software Foundation; either version 3 of the License, or
    0036 %   (at your option) any later version.
    0037 %
    0038 %   This program is distributed in the hope that it will be useful,
    0039 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
    0040 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    0041 %   GNU Lesser General Public License for more details.
    0042 %
    0043 %   You can obtain a copy of the GNU Lesser General Public License from
    0044 %   https://www.gnu.org/licenses/ .
    0045 %
    0046 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    0047 switch nargin
    0048     case 0
    0049         h=[];
    0050         s='';
    0051         p=[];
    0052     case 1
    0053         if ischar(h) || ~numel(h)   % v_fig2emf(s)
    0054             s=h;
    0055             h=[];
    0056         else                        % v_fig2emf(h)
    0057             s='';
    0058         end
    0059         p=[];
    0060     case 2
    0061         if ischar(h) || ~numel(h)   % v_fig2emf(s,p)
    0062             p=s;
    0063             s=h;
    0064             h=[];
    0065         else                        % v_fig2emf(h,s)
    0066             p=[];
    0067         end
    0068     case 3
    0069         if ischar(h) || ~numel(h)   % v_fig2emf(s,p,f)
    0070             f=p;
    0071             p=s;
    0072             s=h;
    0073             h=[];
    0074         else                        % v_fig2emf(h,s,p)
    0075             f='meta';
    0076         end
    0077 end
    0078 if ~numel(h)
    0079     h=gcf;
    0080 else
    0081     figure(h);
    0082 end
    0083 if ~numel(s)
    0084     s='<m>_<n>';
    0085 elseif s(end)=='/' || s(end)=='\'
    0086     s=[s '<m>_<n>'];
    0087 end
    0088 [st,sti]=dbstack;
    0089 if numel(st)>1
    0090     mfn=st(end).name;  % ancestor mfile name
    0091 else
    0092     mfn='Figure';
    0093 end
    0094 if isreal(h)
    0095     fn=num2str(round(h)); % get figure number
    0096 else
    0097     fn=num2str(get(h,'number'));  % in new versions of matlab use this method
    0098 end
    0099 ix=strfind(s,'<m>');
    0100 while numel(ix)>0
    0101     s=[s(1:ix-1) mfn s(ix+3:end)];
    0102     ix=strfind(s,'<m>');
    0103 end
    0104 ix=strfind(s,'<n>');
    0105 while numel(ix)>0
    0106     s=[s(1:ix-1) fn s(ix+3:end)];
    0107     ix=strfind(s,'<n>');
    0108 end
    0109 if numel(p)>0
    0110     if numel(p)==1 && p==0
    0111         v_figbolden;
    0112     else
    0113         v_figbolden(p)
    0114     end
    0115 end
    0116 set(gcf,'paperpositionmode','auto');  % preserve screen shape
    0117 if ~strcmp(s,'.')
    0118     %     eval(['print -dmeta ' s]); % previous version
    0119     if nargin<3
    0120         f='meta';
    0121     end
    0122     print(['-d' f],s);
    0123 end