v_fig2pdf

PURPOSE ^

V_FIG2EMF save a figure in pdf/eps/ps formats (H,S,P,F)

SYNOPSIS ^

function v_fig2pdf(h,s,p,f)

DESCRIPTION ^

V_FIG2EMF save a figure in pdf/eps/ps formats (H,S,P,F)
 [needs MikTeX installed]
 Usage:  (1) v_fig2pdf                       % save current figure to pdf in current folder
         (2) v_fig2pdf([],[],'e');           % save current figure to eps in current folder
         (3) 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_fig2pdf(figdir), end

 Inputs: h   optional figure handle [use [] or omit for the current figure]
         s   file name which can include <m> for the top level
                 mfile name and <n> for figure number [use '[]' for '<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; a combination of the following: [default 'p']
               'p'  pdf
               's'  ps
               'e'  eps

 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: This function is called by:

SOURCE CODE ^

0001 function v_fig2pdf(h,s,p,f)
0002 %V_FIG2EMF save a figure in pdf/eps/ps formats (H,S,P,F)
0003 % [needs MikTeX installed]
0004 % Usage:  (1) v_fig2pdf                       % save current figure to pdf in current folder
0005 %         (2) v_fig2pdf([],[],'e');           % save current figure to eps in current folder
0006 %         (3) emf=1;                        % set emf=1 to print
0007 %             figsize=[500 300];            % default size
0008 %             figdir='../figs/<m>-<n>';     % default destination
0009 %             ...
0010 %             plot (...);
0011 %             v_figbolden(figsize);
0012 %             if emf, v_fig2pdf(figdir), end
0013 %
0014 % Inputs: h   optional figure handle [use [] or omit for the current figure]
0015 %         s   file name which can include <m> for the top level
0016 %                 mfile name and <n> for figure number [use '[]' for '<m>_<n>']
0017 %                 '.' suppresses the save, if s ends in '/' or '\', then '<m>_<n>' is appended
0018 %         p   call v_figbolden(p) before printing the figure (use p=0 for v_figbolden default)
0019 %         f   output format; a combination of the following: [default 'p']
0020 %               'p'  pdf
0021 %               's'  ps
0022 %               'e'  eps
0023 %
0024 % Bugs:
0025 %    (1) MATLAB does not print the figure correctly when running under
0026 %        remote desktop; it seems to pick up the screen resolution incorrectly.
0027 
0028 %      Copyright (C) Mike Brookes 2018
0029 %      Version: $Id: v_fig2pdf.m 10865 2018-09-21 17:22:45Z dmb $
0030 %
0031 %   VOICEBOX is a MATLAB toolbox for speech processing.
0032 %   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
0033 %
0034 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0035 %   This program is free software; you can redistribute it and/or modify
0036 %   it under the terms of the GNU General Public License as published by
0037 %   the Free Software Foundation; either version 2 of the License, or
0038 %   (at your option) any later version.
0039 %
0040 %   This program is distributed in the hope that it will be useful,
0041 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0042 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0043 %   GNU General Public License for more details.
0044 %
0045 %   You can obtain a copy of the GNU General Public License from
0046 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0047 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0048 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0049 switch nargin
0050     case 0
0051         h=[];
0052         s='';
0053         p=[];
0054         f='p';
0055     case 1
0056         if ischar(h) || ~numel(h)   % v_fig2pdf(s)
0057             s=h;
0058             h=[];
0059         else                        % v_fig2pdf(h)
0060             s='';
0061         end
0062         p=[];
0063         f='p';
0064     case 2
0065         if ischar(h) || ~numel(h)   % v_fig2pdf(s,p)
0066             p=s;
0067             s=h;
0068             h=[];
0069         else                        % v_fig2pdf(h,s)
0070             p=[];
0071         end
0072         f='p';
0073     case 3
0074         if ischar(h) || ~numel(h)   % v_fig2pdf(s,p,f)
0075             f=p;
0076             p=s;
0077             s=h;
0078             h=[];
0079         else                        % v_fig2pdf(h,s,p)
0080             f='p';
0081         end
0082 end
0083 if ~numel(h)
0084     h=gcf;
0085 else
0086     figure(h);
0087 end
0088 if ~numel(s)
0089     s='<m>_<n>';
0090 elseif s(end)=='/' || s(end)=='\'
0091     s=[s '<m>_<n>'];
0092 end
0093 [st,sti]=dbstack;
0094 if numel(st)>1
0095     mfn=st(end).name;  % ancestor mfile name
0096 else
0097     mfn='Figure';
0098 end
0099 if isreal(h)
0100     fn=num2str(round(h)); % get figure number
0101 else
0102     fn=num2str(get(h,'number'));  % in new versions of matlab use this method
0103 end
0104 ix=strfind(s,'<m>');
0105 while numel(ix)>0
0106     s=[s(1:ix-1) mfn s(ix+3:end)];
0107     ix=strfind(s,'<m>');
0108 end
0109 ix=strfind(s,'<n>');
0110 while numel(ix)>0
0111     s=[s(1:ix-1) fn s(ix+3:end)];
0112     ix=strfind(s,'<n>');
0113 end
0114 if numel(p)>0
0115     if numel(p)==1 && p==0
0116         v_figbolden;
0117     else
0118         v_figbolden(p)
0119     end
0120 end
0121 set(gcf,'paperpositionmode','auto');    % preserve screen shape
0122 if ~strcmp(s,'.')
0123     if isempty(f)
0124         f='p'; % default is pdf
0125     end
0126     sp=[s  '.pdf'];
0127     print('-dpdf',sp);
0128     %     set(gcf,'PaperPosition',[0.6350 6.3500 20.3200 12]);
0129     system(['pdfcrop ' sp ' ' sp]); % needs MikTeX installed
0130     if any(f=='s')
0131         system(['pdf2ps ' sp ' ' s '.ps']);
0132     end
0133     if any(f=='e')
0134         system(['pdf2ps ' sp ' ' s '.eps']);
0135     end
0136     if ~any(f=='p')
0137         system(['del ' sp]);
0138     end
0139 end

Generated by m2html © 2003