--- a +++ b/analysis/code/sdf.m @@ -0,0 +1,85 @@ +function sdf(varargin) +% SDF Set the line width and fonts of a figure +% +% sdf(fig) +% +% where fig is the figure number. If the figure number is omitted, the +% currently active figure is updated. Edit the file to set you own style +% settings. +% +% sdf(fig, 'stylename') +% applies a pre-configured style from the File-->Export Setup menu of the +% figure's window. The stylename should be one of the 'Export Styles' +% section of the dialog. +% +% The function allows applying the same settings as through the +% File-->Export Setup-->Apply menu of the figure, but much faster and +% without the annoying clicking. +% +% Example +% figure(1); t=0:0.1:10; plot(t, sin(t)); +% sdf(1) +% pause +% sdf(1,'PowerPoint') + +% Andrey Popov, Hamburg, 2009 + +%% Parse the input data +default = true; +if nargin == 0 % no input - take current fig and apply default style + fig = gcf(); +else % at least 1 input + if ischar(varargin{1}) % style name + default = false; + style_name = varargin{1}; + fig = gcf(); + else + fig = varargin{1}; + figure(fig); % just in case it does not exist + if nargin == 2 + default = false; + style_name = varargin{2}; + end + end +end + +%% Apply a style +if default % Apply a default style + style = struct(); + style.Version = '1'; + style.Format = 'eps'; + style.Preview = 'none'; + style.Width = 'auto'; + style.Height = 'auto'; + style.Units = 'centimeters'; + style.Color = 'rgb'; + style.Background = 'w'; % '' = no change; 'w' = white background + style.FixedFontSize = '10'; + style.ScaledFontSize = 'auto'; + style.FontMode = 'fixed'; + style.FontSizeMin = '8'; + style.FixedLineWidth = '2'; + style.ScaledLineWidth = 'auto'; + style.LineMode = 'fixed'; + style.LineWidthMin = '0.5'; + style.FontName = 'auto'; + style.FontWeight = 'auto'; + style.FontAngle = 'auto'; + style.FontEncoding = 'latin1'; + style.PSLevel = '2'; + style.Renderer = 'auto'; + style.Resolution = 'auto'; + style.LineStyleMap = 'none'; + style.ApplyStyle = '0'; + style.Bounds = 'loose'; + style.LockAxes = 'on'; + style.ShowUI = 'on'; + style.SeparateText = 'off'; + + hgexport(fig,'temp_dummy',style,'applystyle', true); + +else % Apply an existing style, defined as in the Export dialog + % The files are in folder fullfile(prefdir(0),'ExportSetup'); + style = hgexport('readstyle',style_name); + hgexport(fig,'temp_dummy',style,'applystyle', true); +end \ No newline at end of file