Changeset 12407 for issm/trunk-jpl/externalpackages/export_fig/print2eps.m
- Timestamp:
- 06/12/12 07:55:14 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/externalpackages/export_fig/print2eps.m
r11803 r12407 45 45 % alias can lead to another font being swapped in. 46 46 47 % 10/4/2012 Make the font swapping case insensitive. 48 47 49 function print2eps(name, fig, varargin) 48 50 options = {'-depsc2'}; … … 57 59 end 58 60 % Find all the used fonts in the figure 59 fonts = get(findall(fig, '-property', 'FontName'), 'FontName'); 61 font_handles = findall(fig, '-property', 'FontName'); 62 fonts = get(font_handles, 'FontName'); 60 63 if ~iscell(fonts) 61 64 fonts = {fonts}; 62 65 end 63 fonts = unique(fonts);64 66 % Map supported font aliases onto the correct name 67 fontsl = lower(fonts); 65 68 for a = 1:numel(fonts) 66 f = lower(fonts{a});69 f = fontsl{a}; 67 70 f(f==' ') = []; 68 71 switch f 69 72 case {'times', 'timesnewroman', 'times-roman'} 70 fonts {a} = 'Times-Roman';73 fontsl{a} = 'times-roman'; 71 74 case {'arial', 'helvetica'} 72 fonts {a} = 'Helvetica';75 fontsl{a} = 'helvetica'; 73 76 case {'newcenturyschoolbook', 'newcenturyschlbk'} 74 fonts {a} = 'NewCenturySchlbk';77 fontsl{a} = 'newcenturyschlbk'; 75 78 otherwise 76 79 end 77 80 end 81 fontslu = unique(fontsl); 78 82 % Determine the font swap table 79 83 matlab_fonts = {'Helvetica', 'Times-Roman', 'Palatino', 'Bookman', 'Helvetica-Narrow', 'Symbol', ... 80 84 'AvantGarde', 'NewCenturySchlbk', 'Courier', 'ZapfChancery', 'ZapfDingbats'}; 81 require_swap = find(~ismember(fonts, matlab_fonts)); 82 unused_fonts = find(~ismember(matlab_fonts, fonts)); 83 font_swap = min(numel(require_swap), numel(unused_fonts)); 84 font_swap = [reshape(matlab_fonts(unused_fonts(1:font_swap)), 1, font_swap); reshape(fonts(require_swap(1:font_swap)), 1, font_swap)]; 85 matlab_fontsl = lower(matlab_fonts); 86 require_swap = find(~ismember(fontslu, matlab_fontsl)); 87 unused_fonts = find(~ismember(matlab_fontsl, fontslu)); 88 font_swap = cell(3, 0); 89 for a = 1:min(numel(require_swap), numel(unused_fonts)) 90 ind = find(strcmp(fontslu{require_swap(a)}, fontsl)); 91 n = numel(ind); 92 font_swap(1,end+1:end+n) = reshape(mat2cell(font_handles(ind), ones(n, 1)), 1, []); 93 font_swap(2,end-n+1:end) = matlab_fonts(unused_fonts(a)); 94 font_swap(3,end-n+1:end) = reshape(fonts(ind), 1, []); 95 end 85 96 % Swap the fonts 86 97 for a = 1:size(font_swap, 2) 87 set(f indall(fig, 'FontName', font_swap{2,a}), 'FontName', font_swap{1,a});98 set(font_swap{1,a}, 'FontName', font_swap{2,a}); 88 99 end 89 100 % Set paper size … … 114 125 % Reset the font names in the figure 115 126 for a = 1:size(font_swap, 2) 116 set(f indall(fig, 'FontName', font_swap{1,a}), 'FontName', font_swap{2,a});127 set(font_swap{1,a}, 'FontName', font_swap{3,a}); 117 128 end 118 129 % Replace the font names in the eps file 130 font_swap = font_swap(2:3,:); 119 131 try 120 132 swap_fonts(name, font_swap{:});
Note:
See TracChangeset
for help on using the changeset viewer.