/doc/influenceOffixedthresholds/laprint.m
http://github.com/tconring/Arabian-Spring · Objective C · 2027 lines · 1878 code · 149 blank · 0 comment · 250 complexity · 8bbbe8a67e5759c27b268e04f69394af MD5 · raw file
- function laprint(figno,filename,varargin)
- %LAPRINT prints a figure for inclusion in LaTeX documents.
- % LaPrint creates an eps-file and a tex-file. The tex-file contains
- % the annotation of the figure such as titles, labels and texts. The
- % eps-file contains the non-text part of the figure as well as the
- % position of the text-objects. The packages 'graphicx' (or 'epsfig')
- % and 'psfrag' (and possibly ''color'') are required for the LaTeX
- % run. A postscript driver like 'dvips' is required for printing.
- %
- % Usage: >> laprint
- %
- % This opens a graphical user interface window, to control the
- % various settings. It includes a help facility. Just try it.
- %
- % As an alternative to the GUI you can call laprint from the command
- % line with various extra input arguments. These arguments are
- % explained in the help window of the GUI, which can be also be
- % opened using the command
- % >> laprint helpwindow
- %
- % There is an Users Guide available at
- % http://www.uni-kassel.de/fb16/rat/matlab/laprint/laprintdoc.ps
- % (c) Arno Linnemann. All rights reserved.
- % The author of this program assumes no responsibility for any errors
- % or omissions. In no event shall he be liable for damages arising out of
- % any use of the software. Redistribution of the unchanged file is allowed.
- % Distribution of changed versions is allowed provided the file is renamed
- % and the source and authorship of the original version is acknowledged in
- % the modified file.
- % Please report bugs, suggestions and comments to:
- % Arno Linnemann
- % Control and Automation
- % Department of Electrical and Computer Engineering
- % University of Kassel
- % 34109 Kassel
- % Germany
- % mailto:linnemann@uni-kassel.de
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% Initialize
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- laprintident = '3.16 (13.9.2004)';
- vers = version;
- vers = eval(vers(1:3));
- if vers < 6.1
- error('Sorry. Matlab 6.1 or above is required.')
- end
- hf=131;
- hhf=132;
- % no output
- if nargout
- error('No output argument, please.')
- end
- inter=get(0,'defaulttextinterpreter');
- if ~strcmp(inter,'none')
- warning('LaPrint:general',['It is recommended to switch off the '...
- 'text interpreter\nbefore creating a figure to be saved '...
- 'with LaPrint. Use the command\n',...
- ' >> set(0,''defaulttextinterpreter'',''none'').'])
- end
- if nargin==0
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% GUI
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- try
- delete(hf)
- end
- try
- delete(hhf)
- end
- %---------------------------------
- % open window
- %---------------------------------
- hf = figure(hf);
- clf reset;
- set(hf,'NumberTitle','off',...
- 'Name','LaPrint (LaTeX Print)',...
- 'Units','points',...
- 'CloseRequestFcn','laprint(''quit'');',...
- 'menubar','none')
- h = uicontrol('Parent',hf,'Units','points');
- fsize = get(h,'Fontsize');
- delete(h)
- posf = get(hf,'Position');
- figheight = 10*fsize;
- figwidth = 32*fsize;
- posf = [ posf(1) posf(2)+posf(4)-figheight figwidth figheight];
- set(hf,'Position',posf)
- uicontrol('Parent',hf,'style','frame','Units','points',...
- 'Position',[0 0 figwidth figheight])
- curh = figheight-0*fsize;
- LAPRINTHAN=struct('figno',{0},'filename',{0},...
- 'keepfontprops',{0},'asonscreen',{0},'keepticklabels',{0},...
- 'mathticklabels',{0},'head',{0},'extrapicture',{0},...
- 'verbose',{0},'figcopy',{0},'package_epsfig',{0},...
- 'package_graphicx',{0},'color',{0},'createview',{0},...
- 'processview',{0});
-
- %---------------------------------
- % figure no.
- %---------------------------------
- loch = 1.7*fsize;
- curh = curh-loch-1.5*fsize;
- h = uicontrol('Parent',hf,...
- 'style','text',...
- 'Units','points',...
- 'Position',[1*fsize curh 18*fsize loch],...
- 'HorizontalAlignment','left',...
- 'string','Number of Figure to be saved:');
- h = uicontrol('Parent',hf,...
- 'style','edit',...
- 'Units','points',...
- 'Position',[19*fsize curh 12*fsize loch],...
- 'HorizontalAlignment','left',...
- 'BackgroundColor',[1 1 1],...
- 'Callback','laprint(''figno'');');
- LAPRINTHAN.figno = h;
- %---------------------------------
- % filename
- %---------------------------------
- loch = 1.7*fsize;
- curh = curh-loch-1*fsize;
- h = uicontrol('Parent',hf,...
- 'style','text',...
- 'Units','points',...
- 'Position',[1*fsize curh 18*fsize loch],...
- 'HorizontalAlignment','left',...
- 'string','Basename of Files to be Created:');
- h = uicontrol('Parent',hf,...
- 'style','edit',...
- 'Units','points',...
- 'Position',[19*fsize curh 12*fsize loch],...
- 'HorizontalAlignment','left',...
- 'BackgroundColor',[1 1 1],...
- 'Callback','laprint(''filename'');');
- LAPRINTHAN.filename = h;
- %---------------------------------
- % save, quit
- %---------------------------------
- loch = 2*fsize;
- curh = curh-loch-1*fsize;
- h = uicontrol('Parent',hf,...
- 'Style','pushbutton',...
- 'Units','Points',...
- 'Position',[19*fsize curh 5*fsize loch],...
- 'HorizontalAlignment','center',...
- 'String','Go !',...
- 'Callback','laprint(''save'');');
- h = uicontrol('Parent',hf,...
- 'Style','pushbutton',...
- 'Units','Points',...
- 'Position',[26*fsize curh 5*fsize loch],...
- 'HorizontalAlignment','center',...
- 'String','Quit',...
- 'Callback','laprint(''quit'');');
- %---------------------------------
- % options uimenue
- %---------------------------------
- hm1 = uimenu('label','Options');
- uimenu(hm1,...
- 'label','Sizes and Scalings ...',...
- 'callback','laprint(''size'')');
- LAPRINTHAN.keepfontprops = uimenu(hm1,...
- 'label','Translate Matlab Font Properties to LaTeX',...
- 'callback','laprint(''keepfontprops'')');
- LAPRINTHAN.asonscreen = uimenu(hm1,...
- 'label','Print Limits and Ticks as on Screen',...
- 'separator','on',...
- 'callback','laprint(''asonscreen'')');
- LAPRINTHAN.keepticklabels = uimenu(hm1,...
- 'label','Keep Tick Labels within eps File',...
- 'callback','laprint(''keepticklabels'')');
- LAPRINTHAN.mathticklabels = uimenu(hm1,...
- 'label','Set Tick Labels in LaTeX Math Mode',...
- 'callback','laprint(''mathticklabels'')');
- LAPRINTHAN.head = uimenu(hm1,...
- 'label','Equip the tex File with a Head',...
- 'separator','on',...
- 'callback','laprint(''head'')');
- uimenu(hm1,...
- 'label','Comment in the Head of the tex File ...',...
- 'callback','laprint(''comment'')');
- uimenu(hm1,...
- 'label','Place a LaTeX Caption in the tex File ...',...
- 'callback','laprint(''caption'')');
- LAPRINTHAN.extrapicture = uimenu(hm1,...
- 'label','Place an Extra Picture in each Axes',...
- 'callback','laprint(''extrapicture'')');
- uimenu(hm1,...
- 'label','Length of psfrag Replacement Strings ...',...
- 'callback','laprint(''nzeros'')');
- LAPRINTHAN.verbose = uimenu(hm1,...
- 'label','Call LaPrint in Verbose Mode',...
- 'separator','on',...
- 'callback','laprint(''verbose'')');
- LAPRINTHAN.figcopy = uimenu(hm1,...
- 'label','Copy Figure and Modify that Copy',...
- 'callback','laprint(''figcopy'')');
- uimenu(hm1,...
- 'label','Matlab Print Command ...',...
- 'separator','on',...
- 'callback','laprint(''printcmd'')');
- h=uimenu(hm1,...
- 'separator','on',...
- 'label','LaTeX Graphics Package');
-
- LAPRINTHAN.package_graphicx = uimenu(h,...
- 'label','graphicx',...
- 'callback','laprint(''package_graphicx'')');
-
- LAPRINTHAN.package_epsfig = uimenu(h,...
- 'label','epsfig',...
- 'callback','laprint(''package_epsfig'')');
-
- LAPRINTHAN.color = uimenu(hm1,...
- 'label','Use LaTeX ''color'' Package',...
- 'callback','laprint(''color'')');
-
- h = uimenu(hm1,...
- 'label','View File ...',...
- 'separator','on');
-
- LAPRINTHAN.createview = uimenu(h,...
- 'label','Create a View File',...
- 'callback','laprint(''createview'')');
-
- uimenu(h,...
- 'label','Name of the View File ...',...
- 'callback','laprint(''viewfilename'')');
- LAPRINTHAN.processview = uimenu(h,...
- 'label','Process the View File',...
- 'separator','on',...
- 'callback','laprint(''processview'')');
- uimenu(h,...
- 'label','Executables for Processing View File...',...
- 'callback','laprint(''cmdsview'')');
- %---------------------------------
- % Preferences uimenue
- %---------------------------------
-
- hm3=uimenu('label','Preferences');
-
- uimenu(hm3,...
- 'label','Get Preferences',...
- 'callback','laprint(''getpref'')')
-
- uimenu(hm3,...
- 'label','Set Preferences to Current Settings',...
- 'callback','laprint(''setpref'')')
-
- uimenu(hm3,...
- 'label','Remove Preferences',...
- 'callback','laprint(''rmpref'')')
-
- uimenu(hm3,...
- 'label','Save Current Settings to a File ...',...
- 'separator','on',...
- 'callback','laprint(''savepref'')')
-
- uimenu(hm3,...
- 'label','Load Settings from a File ...',...
- 'callback','laprint(''loadpref'')')
-
- uimenu(hm3,...
- 'label','Get Factory Defaults',...
- 'separator','on',...
- 'callback','laprint(''factory'')')
-
- %---------------------------------
- % Help uimenue
- %---------------------------------
-
- hm2=uimenu('label','Help');
-
- uimenu(hm2,...
- 'label',['LaPrint Online Help ...'],...
- 'callback','laprint(''helpwindow'')');
-
- uimenu(hm2,...
- 'label','Get the LaPrint Users Guide',...
- 'callback',['web www.uni-kassel.de/fb16/rat/matlab',...
- '/laprint/laprintdoc.ps -browser'])
-
- uimenu(hm2,...
- 'label',['Look for a newer version of LaPrint ' ...
- '(Matlab Central File Exchange)...'],...
- 'callback',['web http://www.mathworks.de/matlabcentral/',...
- 'fileexchange/loadFile.do?objectId=4638',...
- '&objectType=file -browser'])
-
- uimenu(hm2,...
- 'label','Version and Author ...',...
- 'callback','laprint(''whois'')')
- %---------------------------------
- % make hf invisible
- %---------------------------------
- set(hf,'HandleVisibility','callback')
- %---------------------------------
- % get settings
- %---------------------------------
-
- LAPRINTOPT = prefsettings;
- if isempty(LAPRINTOPT)
- LAPRINTOPT = factorysettings;
- end
- %---------------------------------
- % get figure
- %---------------------------------
-
- gcfig=gcf;
- if gcfig == hf
- allfigs = findobj('type','figure');
- allfigs = allfigs(find(allfigs~=hf));
- if length(allfigs)
- figno = allfigs(1);
- else
- figure(1)
- figno=1;
- end
- else
- figno=gcfig;
- end
- LAPRINTOPT.figno = figno;
- %---------------------------------
- % update
- %---------------------------------
-
- updategui(LAPRINTHAN,LAPRINTOPT)
- sethf(hf,LAPRINTHAN,LAPRINTOPT)
- figure(hf)
- %---------------------------------
- % done
- %---------------------------------
- return
-
- end % if nargin==0
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% callback calls ('factory' and 'getprefs' also
- %%%% used from command line)
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- if isa(figno,'char')
- switch figno
- case 'figno'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- LAPRINTOPT.figno=eval(get(LAPRINTHAN.figno,'string'));
- figure(LAPRINTOPT.figno)
- figure(hf)
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'filename'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- LAPRINTOPT.filename=get(LAPRINTHAN.filename,'string');
- [texfullnameext,texbasenameext,texbasename,texdirname] = ...
- getfilenames(LAPRINTOPT.filename,'tex',0);
- [epsfullnameext,epsbasenameext,epsbasename,epsdirname] = ...
- getfilenames(LAPRINTOPT.filename,'eps',0);
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'save'
- % lapcmd = [ 'laprint(' int2str(LAPRINTOPT.figno) ...
- % ', ''' LAPRINTOPT.filename ''''...
- % ', ''options'', LAPRINTOPT)'];
- lapcmd = 'laprint({})';
- eval(lapcmd)
- case 'quit'
- delete(hf)
- try
- delete(hhf)
- end
- case 'size'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg({['Please enter the width (in centimeters) ',...
- 'of the graphics in the LaTeX document (The height ',...
- 'will be computed such that the aspect ratio of the ',...
- 'figure on screen is retained.) :'],...
- ['Please enter the factor by which the size of the '...
- 'graphics in the LaTeX document differs from the size of the '...
- 'Postscipt graphics ( Explaination: A factor <1 scales ',...
- 'the picture down. This means that lines become thinner ',...
- 'and fonts become smaller. ) :'],...
- ['Please specify if you want to scale the fonts along with ',...
- 'the graphics (enter ''on'' or ''off'') : '] },...
- 'LaPrint Settings',1,{num2str(LAPRINTOPT.width),...
- num2str(LAPRINTOPT.factor),...
- valueyn(LAPRINTOPT.scalefonts)},'on');
- if length(answer)
- LAPRINTOPT.width=eval(answer{1});
- LAPRINTOPT.factor = eval(answer{2});
- LAPRINTOPT.scalefonts = value01(answer{3});
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'keepfontprops'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.keepfontprops==1
- LAPRINTOPT.keepfontprops=0;
- set(LAPRINTHAN.keepfontprops,'check','off')
- else
- LAPRINTOPT.keepfontprops=1;
- set(LAPRINTHAN.keepfontprops,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'asonscreen'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.asonscreen==1
- LAPRINTOPT.asonscreen=0;
- set(LAPRINTHAN.asonscreen,'check','off')
- else
- LAPRINTOPT.asonscreen=1;
- set(LAPRINTHAN.asonscreen,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'keepticklabels'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.keepticklabels==1
- LAPRINTOPT.keepticklabels=0;
- set(LAPRINTHAN.keepticklabels,'check','off')
- else
- LAPRINTOPT.keepticklabels=1;
- set(LAPRINTHAN.keepticklabels,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'mathticklabels'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.mathticklabels==1
- LAPRINTOPT.mathticklabels=0;
- set(LAPRINTHAN.mathticklabels,'check','off')
- else
- LAPRINTOPT.mathticklabels=1;
- set(LAPRINTHAN.mathticklabels,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'head'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.head==1
- LAPRINTOPT.head=0;
- set(LAPRINTHAN.head,'check','off')
- else
- LAPRINTOPT.head=1;
- set(LAPRINTHAN.head,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'comment'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg({['Please enter a describing comment to '...
- 'be placed into the head of the tex file:']},...
- 'LaPrint Settings',1,{LAPRINTOPT.comment},'on');
- if length(answer)
- LAPRINTOPT.comment = answer{1};
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'caption'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg(['If the following text is nonempty, ' ...
- 'then it will be placed as a \caption{} into the tex '...
- 'file along with \label{fig:' LAPRINTOPT.filename '}. '...
- 'Please enter the caption text:'],...
- 'LaPrint Settings',1,{LAPRINTOPT.caption},'on');
- if length(answer)
- LAPRINTOPT.caption = answer{1};
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'extrapicture'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.extrapicture==1
- LAPRINTOPT.extrapicture=0;
- set(LAPRINTHAN.extrapicture,'check','off')
- else
- LAPRINTOPT.extrapicture=1;
- set(LAPRINTHAN.extrapicture,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'nzeros'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg({['Please enter length of the psfrag replacement '...
- 'strings (must be >= 3) :']},...
- 'LaPrint Settings',1,{num2str(LAPRINTOPT.nzeros)},'on');
- if length(answer)
- LAPRINTOPT.nzeros = max(eval(answer{1}),3);
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'verbose'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.verbose==1
- LAPRINTOPT.verbose=0;
- set(LAPRINTHAN.verbose,'check','off')
- else
- LAPRINTOPT.verbose=1;
- set(LAPRINTHAN.verbose,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'figcopy'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.figcopy==1
- LAPRINTOPT.figcopy=0;
- set(LAPRINTHAN.figcopy,'check','off')
- else
- LAPRINTOPT.figcopy=1;
- set(LAPRINTHAN.figcopy,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'printcmd'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg({['Please enter the Matlab command '...
- 'to be used for printing the eps file '...
- '(LaPrint will internally replace <figurenumber> by the '...
- 'number of the figure <filename.eps> by the ' ...
- 'eps-filename and <filename> '...
- 'by the basename of the file, respectively). You can add options '...
- 'here (like ''-loose'') or use a different program '...
- 'for printing (like ''exportfig'') :']},...
- 'LaPrint Settings',1,{LAPRINTOPT.printcmd},'on');
- if length(answer)
- LAPRINTOPT.printcmd = answer{1};
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'package_epsfig'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- LAPRINTOPT.package='epsfig';
- set(LAPRINTHAN.package_epsfig,'check','on')
- set(LAPRINTHAN.package_graphicx,'check','off')
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'package_graphicx'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- LAPRINTOPT.package='graphicx';
- set(LAPRINTHAN.package_epsfig,'check','off')
- set(LAPRINTHAN.package_graphicx,'check','on')
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'color'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.color==1
- LAPRINTOPT.color=0;
- set(LAPRINTHAN.color,'check','off')
- else
- LAPRINTOPT.color=1;
- set(LAPRINTHAN.color,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'createview'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.createview==1
- LAPRINTOPT.createview=0;
- LAPRINTOPT.processview=0;
- set(LAPRINTHAN.createview,'check','off')
- set(LAPRINTHAN.processview,'check','off')
- else
- LAPRINTOPT.createview=1;
- set(LAPRINTHAN.createview,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'viewfilename'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- trydlg=1;
- txt=['Please enter the name of the '...
- 'viewfile (without extension .tex) : '];
- txt2='';
- while trydlg
- answer = inputdlg({[txt txt2]},...
- 'LaPrint Settings',1,{LAPRINTOPT.viewfilename},'on');
- if length(answer)
- if strcmp(answer{1},LAPRINTOPT.filename)
- txt2=['The name must be different from the name of the '...
- 'graphics file):'];
- else
- trydlg=0;
- LAPRINTOPT.viewfilename = answer{1};
- [viewfullnameext,viewbasenameext,viewbasename,viewdirname] = ...
- getfilenames(LAPRINTOPT.viewfilename,'tex',0);
- end
- else
- trydlg=0;
- end
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'processview'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- if LAPRINTOPT.processview==1
- LAPRINTOPT.processview=0;
- set(LAPRINTHAN.processview,'check','off')
- else
- LAPRINTOPT.processview=1;
- set(LAPRINTHAN.processview,'check','on')
- LAPRINTOPT.createview=1;
- set(LAPRINTHAN.createview,'check','on')
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'cmdsview'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- answer = inputdlg({...
- ['Please enter up to 8 commands to process the view-file. ',...
- 'Leave any of the fields empty, if you have ',...
- 'less than 8 commands. ',...
- 'In any of the following commands, LaPrint internally '...
- 'replaces the tag <viewfile> by the name of the viewfile ',...
- 'and the tag <filename> by the basename specified in the ',...
- 'main LaPrint Window. ',...
- 'At minimum you should enter the commands for the LaTeX ',...
- 'compilation and for the dvi-to-postscript conversion ',...
- 'here. See the LaPrint Online-Help for futher ',...
- 'suggestions. ',...
- 'Please enter the 1st command:'],...
- 'Please enter the 2nd command:',...
- 'Please enter the 3rd command:',...
- 'Please enter the 4th command:',...
- 'Please enter the 5th command:',...
- 'Please enter the 6th command:',...
- 'Please enter the 7th command:',...
- 'Please enter the 8th command:'},...
- 'LaPrint Settings',1,{LAPRINTOPT.cmd1,...
- LAPRINTOPT.cmd2,LAPRINTOPT.cmd3,...
- LAPRINTOPT.cmd4,LAPRINTOPT.cmd5,LAPRINTOPT.cmd6,...
- LAPRINTOPT.cmd7,LAPRINTOPT.cmd8},'on');
- if length(answer)==8
- LAPRINTOPT.cmd1=answer{1};
- LAPRINTOPT.cmd2=answer{2};
- LAPRINTOPT.cmd3=answer{3};
- LAPRINTOPT.cmd4=answer{4};
- LAPRINTOPT.cmd5=answer{5};
- LAPRINTOPT.cmd6=answer{6};
- LAPRINTOPT.cmd7=answer{7};
- LAPRINTOPT.cmd8=answer{8};
- end
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'getpref'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- out = prefsettings;
- if ~isempty(out)
- oldfigno = LAPRINTOPT.figno; % keep this!
- LAPRINTOPT = out;
- LAPRINTOPT.figno = oldfigno;
- else
- errordlg('No LaPrint preferences available.')
- end
- updategui(LAPRINTHAN,LAPRINTOPT);
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'setpref'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- setpref('LaPrint','LAPRINTOPT',LAPRINTOPT);
- case 'rmpref'
- if ispref('LaPrint')
- rmpref('LaPrint');
- else
- errordlg('Preference does not exist.')
- end
- case 'savepref'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- txt = 'Save preferences file ';
- [preffile,prefpath]=uiputfile('laprint.mat',txt);
- save([prefpath preffile],'LAPRINTOPT');
- case 'loadpref'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- txt = ['Load preferences file '...
- '(must be previously created by LaPrint)'];
- [preffile,prefpath]=uigetfile('laprint.mat',txt);
- if ~isequal(preffile,0) & ~isequal(prefpath,0)
- oldfigno = LAPRINTOPT.figno; % keep this!
- load([prefpath preffile]); % hope file contains correct
- LAPRINTOPT.figno = oldfigno; % LAPRINTOPT
- updategui(LAPRINTHAN,LAPRINTOPT);
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- end
- case 'factory'
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- out = factorysettings;
- if ~isempty(out)
- oldfigno = LAPRINTOPT.figno; % keep this!
- LAPRINTOPT = out;
- LAPRINTOPT.figno = oldfigno;
- else
- errordlg('No LaPrint preferences available.')
- end
- updategui(LAPRINTHAN,LAPRINTOPT);
- sethf(hf,LAPRINTHAN,LAPRINTOPT);
- case 'helpwindow'
- hhf=figure(hhf);
- set(hhf,'Name','LaPrint Online Help',...
- 'Numbertitle','off',...
- 'menubar','none',...
- 'HandleVisibility','callback',...
- 'resize','on',...
- 'ResizeFcn','laprint(''helpwindow'');');
- hht=uicontrol('Parent',hhf,...
- 'style','listbox',...
- 'units','normalized',...
- 'position',[0.005 0.005 0.9 0.99],...
- 'BackgroundColor','w',...
- 'Fontsize',12,...
- 'foregroundcolor','k',...
- 'FontName','FixedWidth',...
- 'HorizontalAlignment','left');
- [txt,hhtpos]=textwrap(hht,helptext);
- set(hht,'string',txt)
- set(hht,'position',[0.005 0.005 0.99 0.99])
- set(hht,'HandleVisibility','callback')
- case 'whois'
- msgbox({['This is LaPrint, Version ' laprintident],...
- '',...
- 'To blame for LaPrint:',...
- 'Arno Linnemann','Control and Automation',...
- 'Department of Electrical and Computer Engineering',...
- 'University of Kassel',...
- '34109 Kassel',...
- 'Germany',...
- 'mailto:linnemann@uni-kassel.de'},...
- 'LaPrint Info')
- % case 'textwidth'
- % LAPRINTOPT.textwidth = textwidth;
- otherwise
- error('unknown callback option')
- end
- return
- end % if isa(figno,'char')
- % nargin >=1 and ~isa(figno,'char')
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% PART 1 of advanced usage:
- %%%% Check inputs and initialize
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- if isa(figno,'cell') % called from GUI (all set)
- [LAPRINTHAN,LAPRINTOPT]=gethf(hf);
- figno=LAPRINTOPT.figno;
- filename=LAPRINTOPT.filename;
- else % advanced usage
-
- % get settings
- LAPRINTOPT = prefsettings;
- if isempty(LAPRINTOPT)
- LAPRINTOPT = factorysettings;
- end
- % modify prefs
- if ~isa(figno,'double')
- figno
- error('This is not a figure handle.')
- end
- if ~any(get(0,'children')==figno)
- figno
- error('This is not a figure handle.')
- end
- LAPRINTOPT.figno = figno;
- if nargin>1
- if ~isa(filename,'char')
- filename
- error('This is not a file name.')
- end
- LAPRINTOPT.filename=filename;
- end
- end
- % read and check command line options
- try % try old usage (Version 2.03)
- if nargin <=2
- error('lets take new usage')
- end
- % 2.03 defaults
- width = 12;
- factor = 0.8;
- scalefonts = 1;
- keepfontprops = 0;
- asonscreen = 0;
- keepticklabels = 0;
- mathticklabels = 0;
- head = 1;
- comment = '';
- caption = '';
- extrapicture = 1;
- nzeros = 5;
- verbose = 0;
- figcopy = 1;
- printcmd = ['print(''-f<figurenumber>'',' ...
- '''-deps'',''<filename.eps>'')'];
- package = 'epsfig';
- color = 0;
- createview = 0;
- viewfilename = [filename '_'];
- processview = 0;
- cmd1 = '';
- cmd2 = '';
- cmd3 = '';
- cmd4 = '';
- cmd5 = '';
- cmd6 = '';
- cmd7 = '';
- cmd8 = '';
- for i=1:nargin-2
- if ~isa(varargin{i},'char')
- error('Options must be character arrays.')
- end
- oriopt=varargin{i}(:)';
- opt=[ lower(strrep(oriopt,' ','')) ' ' ];
- if strcmp(opt(1:7),'verbose')
- verbose=1;
- elseif strcmp(opt(1:10),'asonscreen')
- asonscreen=1;
- elseif strcmp(opt(1:14),'keepticklabels')
- keepticklabels=1;
- elseif strcmp(opt(1:14),'mathticklabels')
- mathticklabels=1;
- elseif strcmp(opt(1:13),'keepfontprops')
- keepfontprops=1;
- elseif strcmp(opt(1:14),'noextrapicture')
- extrapicture=0;
- elseif strcmp(opt(1:14),'noextrapicture')
- extrapicture=0;
- elseif strcmp(opt(1:5),'loose')
- printcmd = ['print(''-f<figurenumber>'',' ...
- '''-deps'',''-loose'',''<filename.eps>'')'];
- elseif strcmp(opt(1:9),'nofigcopy')
- figcopy=0;
- elseif strcmp(opt(1:12),'noscalefonts')
- scalefonts=0;
- elseif strcmp(opt(1:6),'nohead')
- head=0;
- elseif strcmp(opt(1:7),'caption')
- eqpos=findstr(oriopt,'=');
- if isempty(eqpos)
- caption='Matlab Figure';
- else
- caption=oriopt(eqpos+1:length(oriopt));
- end
- elseif strcmp(opt(1:8),'comment=')
- eqpos=findstr(oriopt,'=');
- comment=oriopt(eqpos(1)+1:length(oriopt));
- elseif strcmp(opt(1:9),'viewfile=')
- createview=1;
- eqpos=findstr(oriopt,'=');
- viewfilename=oriopt(eqpos(1)+1:length(oriopt));
- elseif strcmp(opt(1:6),'width=')
- eval([ opt ';' ]);
- elseif strcmp(opt(1:7),'factor=')
- eval([ opt ';' ]);
- else
- error([ 'Option ' varargin{i} ' not recognized.'])
- end
- end
-
- warning('LaPrint:general',['You are using the old LaPrint '...
- 'syntax. This syntax might not be supported in '...
- 'future releases of LaPrint.'])
- catch % old usage doesn't work, take new one
-
- % restore preferences / factory defaults
- width = LAPRINTOPT.width;
- factor = LAPRINTOPT.factor;
- scalefonts = LAPRINTOPT.scalefonts;
- keepfontprops = LAPRINTOPT.keepfontprops;
- asonscreen = LAPRINTOPT.asonscreen;
- keepticklabels = LAPRINTOPT.keepticklabels;
- mathticklabels = LAPRINTOPT.mathticklabels;
- head = LAPRINTOPT.head;
- comment = LAPRINTOPT.comment;
- caption = LAPRINTOPT.caption;
- extrapicture = LAPRINTOPT.extrapicture;
- nzeros = LAPRINTOPT.nzeros;
- verbose = LAPRINTOPT.verbose;
- figcopy = LAPRINTOPT.figcopy;
- printcmd = LAPRINTOPT.printcmd;
- package = LAPRINTOPT.package;
- color = LAPRINTOPT.color;
- createview = LAPRINTOPT.createview;
- viewfilename = LAPRINTOPT.viewfilename;
- processview = LAPRINTOPT.processview;
- cmd1 = LAPRINTOPT.cmd1;
- cmd2 = LAPRINTOPT.cmd2;
- cmd3 = LAPRINTOPT.cmd3;
- cmd4 = LAPRINTOPT.cmd4;
- cmd5 = LAPRINTOPT.cmd5;
- cmd6 = LAPRINTOPT.cmd6;
- cmd7 = LAPRINTOPT.cmd7;
- cmd8 = LAPRINTOPT.cmd8;
- if nargin > 2
- if rem(nargin,2)
- error('Option names/values must appear in pairs.')
- end
- for i=1:2:nargin-2
- if ~isa(varargin{i},'char')
- error('Option name must be a character array.')
- end
- opt = lower(strrep(varargin{i}(:)',' ',''));
- val = varargin{i+1}(:)';
- switch opt
- case 'options'
- if isa(val,'char')
- if strcmp(val,'factory')
- val = factorysettings;
- else
- load(val)
- val = LAPRINTOPT;
- end
- end
- if ~isa(val,'struct')
- error('Value of options must be a structure array.')
- end
- % no error checking here!
- width = val.width;
- factor = val.factor;
- scalefonts = val.scalefonts;
- keepfontprops = val.keepfontprops;
- asonscreen = val.asonscreen;
- keepticklabels = val.keepticklabels;
- mathticklabels = val.mathticklabels;
- head = val.head;
- comment = val.comment;
- caption = val.caption;
- extrapicture = val.extrapicture;
- nzeros = val.nzeros;
- verbose = val.verbose;
- figcopy = val.figcopy;
- printcmd = val.printcmd;
- package = val.package;
- color = val.color;
- createview = val.createview;
- viewfilename = val.viewfilename;
- processview = val.processview;
- cmd1 = val.cmd1;
- cmd2 = val.cmd2;
- cmd3 = val.cmd3;
- cmd4 = val.cmd4;
- cmd5 = val.cmd5;
- cmd6 = val.cmd6;
- cmd7 = val.cmd7;
- cmd8 = val.cmd8;
- case 'width'
- if ~isa(val,'double')
- error('Value of width must be a double.')
- end
- width = val;
- case 'factor'
- if ~isa(val,'double')
- error('Value of factor must be a double.')
- end
- factor=val;
- case 'scalefonts'
- scalefonts = value01(val,opt);
- case 'keepfontprops'
- keepfontprops = value01(val,opt);
- case 'asonscreen'
- asonscreen = value01(val,opt);
- case 'keepticklabels'
- keepticklabels = value01(val,opt);
- case 'mathticklabels'
- mathticklabels = value01(val,opt) ;
- case 'head'
- head = value01(val,opt);
- case 'comment'
- if ~isa(val,'char')
- error('Value of comment must be a character array.')
- end
- comment = val;
- case 'caption'
- if ~isa(val,'char')
- error('Value of caption must be a character array.')
- end
- caption = val;
- case 'extrapicture'
- extrapicture = value01(val,opt);
- case 'nzeros'
- if ~isa(val,'double')
- error('Value of nzeros must be a double.')
- end
- nzeros = val;
- case 'verbose'
- verbose = value01(val,opt);
- case 'figcopy'
- figcopy = value01(val,opt);
- case 'printcmd'
- if ~isa(val,'char')
- error('Value of printcmd must be a character array.')
- end
- printcmd = val;
- case 'package'
- if ~isa(val,'char')
- error('Value of package must be a character array.')
- end
- val = lower(strrep(val,' ',''));
- switch val
- case {'graphicx','epsfig'}
- % fine
- otherwise
- error('Value of package is unknown.')
- end
- package = val;
- case 'color'
- color = value01(val,opt);
- case 'createview'
- createview = value01(val,opt);
- case 'viewfilename'
- if ~isa(val,'char')
- error('Value of viewfilename must be a character array.')
- end
- viewfilename = val;
- case 'processview'
- processview = value01(val,opt);
- case 'cmd1'
- if ~isa(val,'char')
- error('Value of cmd1 must be a character array.')
- end
- cmd1 = val;
- case 'cmd2'
- if ~isa(val,'char')
- error('Value of cmd2 must be a character array.')
- end
- cmd2 = val;
- case 'cmd3'
- if ~isa(val,'char')
- error('Value of cmd3 must be a character array.')
- end
- cmd3 = val;
- case 'cmd4'
- if ~isa(val,'char')
- error('Value of cmd4 must be a character array.')
- end
- cmd4 = val;
- case 'cmd5'
- if ~isa(val,'char')
- error('Value of cmd5 must be a character array.')
- end
- cmd5 = val;
- case 'cmd6'
- if ~isa(val,'char')
- error('Value of cmd6 must be a character array.')
- end
- cmd6 = val;
- case 'cmd7'
- if ~isa(val,'char')
- error('Value of cmd7 must be a character array.')
- end
- cmd7 = val;
- case 'cmd8'
- if ~isa(val,'char')
- error('Value of cmd8 must be a character array.')
- end
- cmd8 = val;
- case 'textwidth'
- textwidth = val;
- otherwise
- error(['Option ''' opt ''' unknown'])
- end % switch opt
- end % for i=3:2:nargin
- end % if nargin > 2
- end % try / catch
- if verbose,
- disp([ 'This is LaPrint, version ' laprintident '.' ]);
- end
- comment = strrep(strrep(comment,'\','\\'),'%','%%');
- caption = strrep(strrep(caption,'\','\\'),'%','%%');
- iscaption = logical(length(caption));
- if nzeros < 3
- warning('LaPrint:general',...
- 'The value of nzero should be >=3. I will use nzeros=3.')
- nzeros=3;
- end
- if processview
- createview=1;
- end
- if mathticklabels
- Do='$';
- else
- Do='';
- end
- % eps- and tex- filenames
- [epsfullnameext,epsbasenameext,epsbasename,epsdirname] = ...
- getfilenames(filename,'eps',verbose);
- [texfullnameext,texbasenameext,texbasename,texdirname] = ...
- getfilenames(filename,'tex',verbose);
- if ~strcmp(texdirname,epsdirname)
- warning('LaPrint:files',['The eps-file and tex-file are '...
- 'placed in different directories.']);
- end
- if createview | processview
- [viewfullnameext,viewbasenameext,viewbasename,viewdirname] = ...
- getfilenames(viewfilename,'tex',verbose);
- if strcmp(texfullnameext,viewfullnameext)
- viewfilename=[ viewfilename '_'];
- warning('LaPrint:files',['The tex- and view-file coincide. '...
- 'I''ll use '' ' viewfilename ' ''. Hope that''s ok.' ])
- end
- [viewfullnameext,viewbasenameext,viewbasename,viewdirname]= ...
- getfilenames(viewfilename,'tex',verbose);
- if ~strcmp(texdirname,viewdirname)
- warning('LaPrint:files',['The eps-file and view-file are '...
- 'placed in different directories.' ])
- end
- end
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% PART 2 of advanced usage:
- %%%% Create new figure, insert tags, and bookkeep original text
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % show all
- shh = get(0,'ShowHiddenHandles');
- set(0,'ShowHiddenHandles','on');
- % preparing check for copyobj bug
- figno_ori = figno;
- number_children_ori = length(get(figno_ori,'children'));
- % open new figure (if required) and set properties
- if figcopy
- figno = copyobj(figno,0);
- set(figno,'visible','off')
- set(figno,'Numbertitle','off')
- set(figno,'MenuBar','none')
- pause(0.5)
- end
- if asonscreen
- xlimmodeauto = findobj(figno,'xlimmode','auto');
- xtickmodeauto = findobj(figno,'xtickmode','auto');
- xticklabelmodeauto = findobj(figno,'xticklabelmode','auto');
- ylimmodeauto = findobj(figno,'ylimmode','auto');
- ytickmodeauto = findobj(figno,'ytickmode','auto');
- yticklabelmodeauto = findobj(figno,'yticklabelmode','auto');
- zlimmodeauto = findobj(figno,'zlimmode','auto');
- ztickmodeauto = findobj(figno,'ztickmode','auto');
- zticklabelmodeauto = findobj(figno,'zticklabelmode','auto');
- set(xlimmodeauto,'xlimmode','manual')
- set(xtickmodeauto,'xtickmode','manual')
- set(xticklabelmodeauto,'xticklabelmode','manual')
- set(ylimmodeauto,'ylimmode','manual')
- set(ytickmodeauto,'ytickmode','manual')
- set(yticklabelmodeauto,'yticklabelmode','manual')
- set(zlimmodeauto,'ylimmode','manual')
- set(ztickmodeauto,'ytickmode','manual')
- set(zticklabelmodeauto,'yticklabelmode','manual')
- end
- set(figno,'paperunits','centimeters');
- set(figno,'units','centimeters');
- orip = get(figno,'Position');
- % determine width and height
- if factor <= 0
- factor = width/orip(3);
- end
- latexwidth = width;
- epswidth = latexwidth/factor;
- epsheight = epswidth*orip(4)/orip(3);
- set(figno,'PaperPosition',[0 0 epswidth epsheight ])
- set(figno,'papersize',[epswidth epsheight])
- set(figno,'Position',[orip(1)+0.5 orip(2)-0.5 epswidth epsheight ])
- set(figno,'Name',[ 'To be printed; size: ' num2str(factor,3) ...
- ' x (' num2str(epswidth,3) 'cm x ' num2str(epsheight,3) 'cm)' ])
- % some warnings
- if verbose
- if (epswidth<13) | (epsheight<13*0.75)
- warning('LaPrint:size',['The size of the eps-figure is quite '...
- 'small. The text objects might not be properly set. '...
- 'Reducing ''factor'' might help.'])
- end
- if latexwidth/epswidth<0.5
- warning('LaPrint:size',['The size of the eps-figure is large ' ...
- 'compared to the latex figure. '...
- 'The text size might be too small. '...
- 'Increasing ''factor'' might help.'])
- end
- if (orip(3)-epswidth)/orip(3) > 0.1
- warning('LaPrint:size',['The size of the eps-figure is much '...
- 'smaller than the original '...
- 'figure on screen. Matlab might save different ticks '...
- 'and ticklabels than in the original figure. '...
- 'See option ''asonscreen''.'])
- end
- disp('Strike any key to continue.');
- pause
- end
- %
- % TEXT OBJECTS: modify new figure
- %
- % find all text objects
- hxl = get(findobj(figno,'type','axes'),'xlabel');
- hyl = get(findobj(figno,'type','axes'),'ylabel');
- hzl = get(findobj(figno,'type','axes'),'zlabel');
- hti = get(findobj(figno,'type','axes'),'title');
- hte = findobj(figno,'type','text');
- % array of all text handles
- htext = unique([ celltoarray(hxl) celltoarray(hyl) celltoarray(hzl) ...
- celltoarray(hti) celltoarray(hte)]);
- nt = length(htext);
- % set(celltoarray(hxl),'VerticalAlignment','top');
- % get alignments
- hora = get(htext,'HorizontalAlignment');
- vera = get(htext,'VerticalAlignment');
- align = cell(nt,1);
- for i=1:nt
- align{i} = hora{i}(1);
- switch vera{i}
- case 'top'
- align{i} = [align{i} 't'];
- case 'cap'
- % if ~isempty(get(htext(i),'string'))
- % warning('LaPrint:text',['Using vertical ' ...
- % 'alignment ''top'' instead of ''cap''.'])
- % end
- align{i} = [align{i} 't'];
- case 'middle'
- align{i} = [align{i} 'c'];
- case 'baseline'
- align{i} = [align{i} 'B'];
- case 'bottom'
- align{i} = [align{i} 'b'];
- otherwise
- warning('LaPrint:text',['Vertical alignment ' vera{i} ...
- ' unknown. Using ''c''.'])
- align{i} = [align{i} 'c'];
- end
- end
- % generate new strings and store old ones
- oldstr = get(htext,'string');
- newstr = cell(nt,1);
- basestr = ['s' char(48*ones(1,nzeros-1))];
- extrastr = 0;
- for i=1:nt
- osi = oldstr{i};
- oldstr{i} = ['\setlength{\tabcolsep}{0pt}\begin{tabular}{' ...
- align{i}(1) '}'];
- isnonempty_osi = 0;
- if strcmp(get(get(htext(i),'parent'),'tag'),'legend')
- newstr1 = [];
- if isa(osi,'cell')
- % Legend/cell : Don't use tabular, employ extra strings
- nlines = length(osi);
- if nlines > 1
- newstr{nt+extrastr+nlines-1} = [];
- oldstr{nt+extrastr+nlines-1} = [];
- htext((nt+extrastr+1):(nt+extrastr+nlines-1))=htext(i);
- for line=1:nlines-1
- oldstr{nt+extrastr+line} = ...
- strrep(strrep(osi{line},'\','\\'),'%','%%');
- newstr{nt+extrastr+line} = ...
- overwritetail(basestr,nt+extrastr+line);
- newstr1 = [newstr1; overwritetail(basestr,nt+extrastr+line)];
- end
- extrastr = extrastr+nlines-1;
- end
- if nlines > 0
- oldstr{i} = strrep(strrep(osi{nlines},'\','\\'),'%','%%');
- newstr{i} = overwritetail(basestr,i);
- newstr1 = [newstr1; overwritetail(basestr,i)];
- end
- % replace strings in figure
- set(htext(i),'string',cellstr(newstr1));
- else
- % Legend/matrix : Don't use tabular, employ extra strings
- nlines=size(osi,1);
- if nlines > 1
- newstr{nt+extrastr+nlines-1} = [];
- oldstr{nt+extrastr+nlines-1} = [];
- htext((nt+extrastr+1):(nt+extrastr+nlines-1))=htext(i);
- for line=1:nlines-1
- oldstr{nt+extrastr+line} = ...
- strrep(strrep(osi(line,:),'\','\\'),'%','%%');
- newstr{nt+extrastr+line} = ...
- overwritetail(basestr,nt+extrastr+line);
- newstr1 = [newstr1; overwritetail(basestr,nt+extrastr+line)];
- end
- extrastr = extrastr+nlines-1;
- end
- if nlines > 0
- oldstr{i} = strrep(strrep(osi(nlines,:),'\','\\'),'%','%%');
- newstr{i} = overwritetail(basestr,i);
- newstr1 = [newstr1; overwritetail(basestr,i)];
- end
- % replace strings in figure
- set(htext(i),'string',newstr1);
- end
- else
- % text, not a legend
- if isa(osi,'cell')
- nlines = length(osi);
- if nlines > 1
- for line=1:nlines-1
- oldstr{i}=[oldstr{i} osi{line} '\\'];
- isnonempty_osi = isnonempty_osi+length(osi{line});
- end
- if align{i}(2) == 'B'
- warning('LaPrint:text',['Vertical Alignment ''baseline'' '...
- 'in text with multiple rows might not match.'])
- align{i}(2) = 't';
- end
- end
- if nlines > 0
- oldstr{i} = [oldstr{i} osi{nlines} '\end{tabular}'];
- isnonempty_osi = isnonempty_osi+length(osi{nlines});
- end
- oldstr{i} = strrep(strrep(oldstr{i},'\','\\'),'%','%%');
- if isnonempty_osi
- newstr{i} = overwritetail(basestr,i);
- else
- newstr{i} = '';
- end
- % replace strings in figure
- set(htext(i),'string',newstr{i});
- else
- nlines=size(osi,1);
- if nlines > 1
- for line=1:nlines-1
- oldstr{i} = [oldstr{i} osi(line,:) '\\'];
- isnonempty_osi = isnonempty_osi+length(osi(line,:));
- end
- if align{i}(2) == 'B'
- warning('LaPrint:text',['Vertical Alignment ''baseline'' '...
- 'in text with multiple rows might not match.'])
- align{i}(2) = 't';
- end
- end
- if nlines > 0
- oldstr{i} = [oldstr{i} osi(nlines,:) '\end{tabular}'];
- isnonempty_osi = isnonempty_osi+length(osi(nlines,:));
- end
- oldstr{i} = strrep(strrep(oldstr{i},'\','\\'),'%','%%');
-
- if isnonempty_osi
- newstr{i} = overwritetail(basestr,i);
- else
- newstr{i} = '';
- end
- % replace string in figure
- set(htext(i),'string',newstr{i});
- end % isa cell
- end % isa legend
- end % for
- ntp = nt+extrastr;
- % Alignment of Legends
- if extrastr > 0
- align{ntp} = [];
- [align{nt+1:ntp}] = deal('lc');
- end
- % get font properties and create commands
- if ntp > 0
- [fontsizecmd{1:ntp}] = deal('');
- [fontanglecmd{1:ntp}] = deal('');
- [fontweightcmd{1:ntp}] = deal('');
- [colorcmd{1:ntp}] = deal('');
- [colorclose{1:ntp}] = deal('');
- end
- selectfontcmd = '';
- if keepfontprops
- % fontsize
- set(htext,'fontunits','points');
- fontsize = get(htext,'fontsize');
- for i=1:ntp
- fontsizecmd{i} = [ '\\fontsize{' num2str(fontsize{i}) '}{' ...
- num2str(fontsize{i}*1.5) '}' ];
- end
-
- % fontweight
- fontweight = get(htext,'fontweight');
- for i=1:ntp
- switch fontweight{i}
- case 'light'
- fontweightcmd{i} = [ '\\fontseries{l}\\mathversion{normal}' ];
- case 'normal'
- fontweightcmd{i} = [ '\\fontseries{m}\\mathversion{normal}' ];
- case 'demi'
- fontweightcmd{i} = [ '\\fontseries{sb}\\mathversion{bold}' ];
- case 'bold'
- fontweightcmd{i} = [ '\\fontseries{bx}\\mathversion{bold}' ];
- otherwise
- warning('LaPrint:text',['Unknown fontweight: ' fontweight{i} ])
- fontweightcmd{i} = [ '\\fontseries{m}\\mathversion{normal}' ];
- end
- end
- % fontangle
- fontangle = get(htext,'fontangle');
- for i=1:ntp
- switch fontangle{i}
- case 'normal'
- fontanglecmd{i} = [ '\\fontshape{n}' ];
- case 'italic'
- fontanglecmd{i} = [ '\\fontshape{it}' ];
- case 'oblique'
- fontanglecmd{i} = [ '\\fontshape{it}' ];
- otherwise
- warning('LaPrint:text',['unknown fontangle: ' fontangle{i} ])
- fontanglecmd{i} = [ '\\fontshape{n}' ];
- end
- end
- selectfontcmd = '\\selectfont ';
-
- end
- if color & ntp>0
- col = get(htext,'color');
- bgcol = get(htext,'BackgroundColor');
- ecol = get(htext,'EdgeColor');
- for i=1:ntp
- col0 = get(get(htext(i),'parent'),'color');
- [coli,isc] = char2rgb(col{i},[0 0 0]);
- [bgcoli,isbgc] = char2rgb(bgcol{i},col0);
- [ecoli,isec] = char2rgb(ecol{i},col0);
- if isbgc | isec
- set(htext(i),'BackgroundColor','none')
- set(htext(i),'EdgeColor','none')
- colorcmd{i} = ['\\setlength{\\fboxsep}{2pt}\\fcolorbox[rgb]{' ...
- num2str(ecoli(1)) ',' num2str(ecoli(2)) ',' ...
- num2str(ecoli(3)) '}{' ...
- num2str(bgcoli(1)) ',' num2str(bgcoli(2)) ',' ...
- num2str(bgcoli(3)) '}{\\color[rgb]{' ...
- num2str(coli(1)) ',' num2str(coli(2)) ',' num2str(coli(3)) '}' ];
- colorclose{i} = '}';
- else
- colorcmd{i} = ['\\color[rgb]{' ...
- num2str(coli(1)) ',' num2str(coli(2)) ',' num2str(coli(3)) '}' ];
- end
- end
- end
- %
- % LABELS: modify new figure
- %
- if ~keepticklabels
- % all axes
- hax = celltoarray(findobj(figno,'type','axes'));
- na = length(hax);
- % % try to figure out if we have 3D axes an warn
- % issuewarning = 0;
- % for i=1:na
- % issuewarning = max(issuewarning,is3d(hax(i)));
- % end
- % if issuewarning
- % warning('LaPrint:label',['This seems to be a 3D plot. '...
- % 'The LaTeX labels are possibly incorrect. '...
- % 'The option ''keepticklabels'' might help. '...
- % 'Setting ''figcopy'' to ''off'' might be wise, too.'])
- % end
- % try to figure out if we linear scale with extra factor
- % and determine powers of 10
- powers = NaN*zeros(na,3); % matrix with powers of 10
- for i=1:na % all axes
- allxyz = { 'x', 'y', 'z' };
- for ixyz=1:3 % x,y,z
- xyz = allxyz{ixyz};
- ticklabelmode = get(hax(i),[ xyz 'ticklabelmode']);
- if strcmp(ticklabelmode,'auto')
- tick = get(hax(i),[ xyz 'tick']);
- ticklabel = get(hax(i),[ xyz 'ticklabel']);
- nticklabels = size(ticklabel,1);
- nticks = length(tick);
- if nticks==0,
- powers(i,ixyz)=0;
- nticklabels=0;
- end
- if nticklabels==0,
- powers(i,ixyz)=0;
- end
- for k=1:nticklabels % all ticks
- label = str2num(ticklabel(k,:));
- if length(label)==0,
- powers(i,ixyz) = 0;
- break;
- end
- if ( label==0 ) & ( abs(tick(k))>1e-10 )
- powers(i,ixyz) = 0;
- break;
- end
- if label~=0
- expon = log10(tick(k)/label);
- rexpon = round(expon);
- if abs(rexpon-expon)>1e-10
- powers(i,ixyz) = 0;
- break;
- end
- if isnan(powers(i,ixyz))
- powers(i,ixyz) = rexpon;
- else
- if powers(i,ixyz)~=rexpon
- powers(i,ixyz) = 0;
- break;
- end
- end
- end
- end % k
- else % if 'auto'
- powers(i,ixyz) = 0;
- end % if 'auto'
- end % ixyz
- end % i
-
- % place text to be replaced by powers on y-axis
- for i=1:na
- allxyz = { 'x', 'y', 'z' };
- ixyz=2; % x,y,z
- xyz = allxyz{ixyz};
- leftright=get(hax(i),'yaxislocation');
- if powers(i,ixyz) & ~is3d(hax(i)) & isequal(leftright,'left')
- powertext = ['ypower' int2str(i)];
- xlimit = get(hax(i),'xlim');
- ylimit = get(hax(i),'ylim');
- htext = text(xlimit(1),ylimit(2)+...
- 0.01*(ylimit(2)-ylimit(1)),...
- powertext);
- set(htext,'VerticalAlignment','Baseline');
- end
- end % i
- % replace all ticklabels and bookkeep
- nxlabel = zeros(1,na);
- nylabel = zeros(1,na);
- nzlabel = zeros(1,na);
- allxyz={ 'x', 'y', 'z' };
- for ixyz=1:3
- xyz = allxyz{ixyz};
- k=1;
- if strcmp(xyz,'y')
- basestr = [ 'v' char(48*ones(1,nzeros-1))];
- else
- basestr = [ xyz char(48*ones(1,nzeros-1))];
- end
- oldtl = cell(na,1);
- newtl = cell(na,1);
- nlabel = zeros(1,na);
- for i=1:na
- % set(hax(i),[ xyz 'tickmode' ],'manual')
- % set(hax(i),[ xyz 'ticklabelmode' ],'manual')
- oldtl{i} = chartocell(get(hax(i),[ xyz 'ticklabel' ]));
- nlabel(i) = length(oldtl{i});
- newtl{i} = cell(1,nlabel(i));
- for j=1:nlabel(i)
- newtl{i}{j} = overwritetail(basestr,k);
- k = k+1;
- oldtl{i}{j} = deblank(strrep(strrep(oldtl{i}{j},'\','\\'),...
- '%','%%'));
- end
- set(hax(i),[ xyz 'ticklabel' ],newtl{i});
- end
- eval([ 'old' xyz 'tl=oldtl;' ]);
- eval([ 'new' xyz 'tl=newtl;' ]);
- eval([ 'n' xyz 'label=nlabel;' ]);
- end
- % determine latex commands for font properties
-
- if keepfontprops
- % ticklabel font size
- afsize = zeros(na,1);
- for i=1:na
- afsize(i) = get(hax(i),'fontsize');
- end
- if (any(afsize ~= afsize(1) ))
- warning('LaPrint:text',['Different font sizes for axes not '...
- 'supported. All axes will have font size ' ...
- num2str(afsize(1)) '.' ] )
- end
- afsizecmd = [ '\\fontsize{' num2str(afsize(1)) '}{' ...
- num2str(afsize(1)*1.5) '}' ];
- % ticklabel font weight
- afweight = cell(na,1);
- for i=1:na
- afweight{i} = get(hax(i),'fontweight');
- end
- switch afweight{1}
- case 'light'
- afweightcmd = [ '\\fontseries{l}\\mathversion{normal}' ];
- case 'normal'
- afweightcmd = [ '\\fontseries{m}\\mathversion{normal}' ];
- case 'demi'
- afweightcmd = [ '\\fontseries{sb}\\mathversion{bold}' ];
- case 'bold'
- afweightcmd = [ '\\fontseries{bx}\\mathversion{bold}' ];
- otherwise
- warning('LaPrint:text',['unknown fontweight: ' afweight{1} ])
- afweightcmd = [ '\\fontseries{m}\\mathversion{normal}' ];
- end
- for i=1:na
- if ~strcmp(afweight{i},afweight{1})
- warning('LaPrint:text',['Different font weights for axes '...
- 'are not supported. All axes will have font weight ' ...
- afweightcmd '.'])
- end
- end
- % ticklabel font angle
- afangle = cell(na,1);
- for i=1:na
- afangle{i} = get(hax(i),'fontangle');
- end
- switch afangle{1}
- case 'normal'
- afanglecmd = [ '\\fontshape{n}' ];
- case 'italic'
- afanglecmd = [ '\\fontshape{it}' ];
- case 'oblique'
- afanglecmd = [ '\\fontshape{it}' ];
- otherwise
- warning('LaPrint:text',['unknown fontangle: ' afangle{1} ])
- afanglecmd=[ '\\fontshape{n}' ];
- end
- for i=1:na
- if ~strcmp(afangle{i},afangle{1})
- warning('LaPrint:text',['Different font angles for axes not '...
- 'supported. All axes will have font angle ' ...
- afanglecmd '.'] )
- end
- end
-
- end
- % ticklabel color
- acolcmd='';
- if color
- acol=[];
- allxyz={ 'x', 'y', 'z' };
- acolwarn = 0;
- for i=1:na
- for ixyz=1:3
- xyzcolor = [allxyz{ixyz} 'color'];
- if ~isempty(get(hax(i),[allxyz{ixyz} 'ticklabel']))
- if isempty(acol)
- acol = char2rgb(get(hax(i),xyzcolor));
- else
- if any(char2rgb(get(hax(i),xyzcolor))~=acol)
- acolwarn = 1;
- end
- end
- end
- end
- end
- if acolwarn
- warning('LaPrint:label',['Different colors for axes not ' ...
- 'supported. All ticklabels will have color [ ' ...
- num2str(acol) ' ].' ] )
- end
- if ~isempty(acol)
- if any(acol~=[0 0 0])
- acolcmd = [ '\\color[rgb]{' num2str(acol(1)) ',' ...
- num2str(acol(2)) ',' num2str(acol(3)) '}' ];
- end
- end
- end
- % ticklabel alignment
- xyzalign = char([116*ones(na,1) 114*ones(na,1) 114*ones(na,1)]);
- for i=1:na
- switch get(hax(i),'XAxisLocation')
- case 'top'
- xyzalign(i,1)='B';
- end
- switch get(hax(i),'YAxisLocation')
- case 'right'
- xyzalign(i,2)='l';
- end
- end
- end
- %
- % extra picture environment
- %
- if extrapicture
- unitlength = zeros(na,1);
- ybound = zeros(na,1);
- for i=na:-1:1 % reverse order, to keep axes in original order
- if ~is3d(hax(i))
- xlim = get(hax(i),'xlim');
- ylim = get(hax(i),'ylim');
- axes(hax(i));
- hori = text(ylim(1),ylim(1),[ 'origin' int2str(i) ]);
- set(hori,'VerticalAlignment','bottom');
- set(hori,'Fontsize',2);
- set(hax(i),'Units','normalized')
- pos = get(hax(i),'Position');
- unitlength(i) = pos(3)*epswidth;
- ybound(i) = (pos(4)*epsheight)/(pos(3)*epswidth);
- else
- warning('LaPrint:extrapic',['Option ''extrapicture'' for 3D ' ...
- 'axes not supported.'])
- end
- end
- end
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%
- %%%% PART 3 of advanced usage:
- %%%% save eps and tex files
- %%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % prevent matlab print command to modify lims and ticks
- % (empty, if asonscreen=1)
- if ~keepticklabels
- xlimmodeauto = findobj(figno,'xlimmode','auto');
- xtickmodeauto = findobj(figno,'xtickmode','auto');
- xticklabelmodeauto = findobj(figno,'xticklabelmode','auto');
- ylimmodeauto = findobj(figno,'ylimmode','auto');
- ytickmodeauto = findobj(figno,'ytickmode','auto');
- yticklabelmodeauto = findobj(figno,'yticklabelmode','auto');
- zlimmodeauto = findobj(figno,'zlimmode','auto');
- ztickmodeauto = findobj(figno,'ztickmode','auto');
- zticklabelmodeauto = findobj(figno,'zticklabelmode','auto');
- set(xlimmodeauto,'xlimmode','manual')
- set(xtickmodeauto,'xtickmode','manual')
- set(xticklabelmodeauto,'xticklabelmode','manual')
- set(ylimmodeauto,'ylimmode','manual')
- set(ytickmodeauto,'ytickmode','manual')
- set(yticklabelmodeauto,'yticklabelmode','manual')
- set(zlimmodeauto,'ylimmode','manual')
- set(ztickmodeauto,'ytickmode','manual')
- set(zticklabelmodeauto,'yticklabelmode','manual')
- end
- % create eps file
- %cmd = strrep(printcmd,'<filename.eps>',epsfullnameext);
- cmd = strrep(printcmd,'<filename.eps>',epsbasenameext);
- cmd = strrep(cmd,'<filename>',filename);
- cmd = strrep(cmd,'<figurenumber>',int2str(figno));
-
- if verbose
- disp([ 'executing: '' ' cmd ' ''' ]);
- end
- eval(cmd);
- %
- % create latex file
- %
- if verbose
- disp([ 'writing to: '' ' texfullnameext ' ''' ])
- end
- %fid = fopen(texfullnameext,'w');
- fid = fopen(texbasenameext,'w');
- % head
- if head
- fprintf(fid,[ '%% This file is generated by the MATLAB m-file' ...
- ' laprint.m. It can be included\n']);
- fprintf(fid,[ '%% into LaTeX documents using the packages ']);
- fprintf(fid,package);
- if color
- fprintf(fid,', color');
- end
- fprintf(fid,[ ' and psfrag.\n' ]);
- fprintf(fid, ['%% It is accompanied by a postscript file. ',...
- 'A sample LaTeX file is:\n']);
- fprintf(fid, '%% \\documentclass{article}\\usepackage{');
- fprintf(fid,package);
- if color
- fprintf(fid,',color');
- end
- fprintf(fid, ',psfrag}\n');
- fprintf(fid,[ '%% \\begin{document}\\input{' ...
- texbasename '}\\end{document}\n' ]);
- fprintf(fid, [ '%% See http://www.mathworks.de/matlabcentral'...
- '/fileexchange/loadFile.do?objectId=4638\n']);
- fprintf(fid, [ '%% for recent versions of laprint.m.\n' ]);
- fprintf(fid, '%%\n');
- fprintf(fid,[ '%% created by: ' 'LaPrint version ' ...
- laprintident '\n' ]);
- fprintf(fid,[ '%% created on: ' datestr(now) '\n' ]);
- fprintf(fid,[ '%% eps bounding box: ' num2str(epswidth) ...
- ' cm x ' num2str(epsheight) ' cm\n' ]);
- fprintf(fid,[ '%% comment: ' comment '\n' ]);
- fprintf(fid,'%%\n');
- else
- fprintf(fid,[ '%% generated by laprint.m\n' ]);
- fprintf(fid,'%%\n');
- end
- % go on
- fprintf(fid,'\\begin{psfrags}%%\n');
- %fprintf(fid,'\\fontsize{10}{12}\\selectfont%%\n');
- fprintf(fid,'\\psfragscanon%%\n');
- % text strings
- numbertext=0;
- for i=1:nt
- numbertext = numbertext+length(newstr{i});
- end
- if numbertext>0,
- fprintf(fid,'%%\n');
- fprintf(fid,'%% text strings:\n');
- for i=1:ntp
- if length(newstr{i})
- alig = strrep(align{i},'c','');
- fprintf(fid,[ '\\psfrag{' newstr{i} '}[' alig '][' alig ']{' ...
- fontsizecmd{i} fontweightcmd{i} fontanglecmd{i} ...
- selectfontcmd colorcmd{i} oldstr{i} colorclose{i} '}%%\n' ]);
- end
- end
- end
- % labels
- if ~keepticklabels
- if ~isempty(acolcmd)
- fprintf(fid,'%%\n');
- fprintf(fid,'%% axes ticklabel color:\n');
- fprintf(fid,[ acolcmd '%%\n' ]);
- end
- if keepfontprops
- fprintf(fid,'%%\n');
- fprintf(fid,'%% axes font properties:\n');
- fprintf(fid,[ afsizecmd afweightcmd '%%\n' ]);
- fprintf(fid,[ afanglecmd '\\selectfont%%\n' ]);
- end
- nxlabel = zeros(1,na);
- nylabel = zeros(1,na);
- nzlabel = zeros(1,na);
- for i=1:na
- nxlabel(i) = length(newxtl{i});
- nylabel(i) = length(newytl{i});
- nzlabel(i) = length(newztl{i});
- end
-
- allxyz = { 'x', 'y', 'z' };
- for ixyz=1:3
- xyz = allxyz{ixyz};
- eval([ 'oldtl=old' xyz 'tl;' ]);
- eval([ 'newtl=new' xyz 'tl;' ]);
- eval([ 'nlabel=n' xyz 'label;' ]);
- if sum(nlabel) > 0
- fprintf(fid,'%%\n');
- fprintf(fid,[ '%% ' xyz 'ticklabels:\n']);
- for i=1:na
- poss = ['[' xyzalign(i,ixyz) '][' xyzalign(i,ixyz) ']'];
- if nlabel(i)
- if strcmp(get(hax(i),[ xyz 'scale']),'linear')
- % lin scale
- rexpon = powers(i,ixyz);
- if ~rexpon
- % no powers
- for j=1:nlabel(i)
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{' ...
- Do oldtl{i}{j} Do '}%%\n' ]);
- end
- else
- % powers
- if ixyz==2
- leftright=get(hax(i),'yaxislocation');
- if ~is3d(hax(i)) & isequal(leftright,'left')
- for j=1:nlabel(i)
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{' ...
- Do oldtl{i}{j} Do '}%%\n' ]);
- end
- fprintf(fid,[ '\\psfrag{ypower' int2str(i) ...
- '}[Bl][Bl]{$\\times 10^{' ...
- int2str(rexpon) '}$}%%\n' ]);
- else
- for j=1:nlabel(i)-1
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{' ...
- Do oldtl{i}{j} Do '}%%\n' ]);
- end
- if ~is3d(hax(i))
- fprintf(fid,[ '\\psfrag{' newtl{i}{nlabel(i)} ...
- '}' poss '{' ...
- Do oldtl{i}{nlabel(i)} Do '$\\times 10^{'...
- int2str(rexpon) '}$}%%\n' ]);
- else
- fprintf(fid,[ '\\psfrag{' newtl{i}{nlabel(i)} ...
- '}' poss '{\\shortstack{' ...
- Do oldtl{i}{nlabel(i)} Do '\\\\$\\times 10^{'...
- int2str(rexpon) '}\\ $}}%%\n' ]);
- end
- end
- elseif ixyz==1
- for j=1:nlabel(i)-1
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{' ...
- Do oldtl{i}{j} Do '}%%\n' ]);
- end
- leftright=get(hax(i),'xaxislocation');
- if isequal(leftright,'bottom')
- fprintf(fid,[ '\\psfrag{' newtl{i}{nlabel(i)} ...
- '}' poss '{\\shortstack{' ...
- Do oldtl{i}{nlabel(i)} Do '\\\\$\\times 10^{'...
- int2str(rexpon) '}\\ $}}%%\n' ]);
- else
- fprintf(fid,[ '\\psfrag{' newtl{i}{nlabel(i)} ...
- '}' poss '{\\shortstack{$\\times 10^{' ...
- int2str(rexpon) '}\\ $\\\\' ...
- Do oldtl{i}{nlabel(i)} Do '}}%%\n' ]);
- end
- else
- for j=1:nlabel(i)-1
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{' ...
- Do oldtl{i}{j} Do '}%%\n' ]);
- end
- fprintf(fid,[ '\\psfrag{' newtl{i}{nlabel(i)} ...
- '}' poss '{' Do oldtl{i}{nlabel(i)} Do ...
- '\\setlength{\\unitlength}{1ex}' ...
- '\\begin{picture}(0,0)\\put(0.5,1.5){$\\times 10^{' ...
- int2str(rexpon) '}$}\\end{picture}}%%\n' ]);
- end
- end % rexpon
- else
- % log scale
- for j=1:nlabel(i)
- fprintf(fid,[ '\\psfrag{' newtl{i}{j} '}' poss '{$10^{' ...
- oldtl{i}{j} '}$}%%\n' ]);
- end % for (log)
- end % if linear
- end % if nlabel(i)
- end
- end
- end
- end
- % extra picture
- if extrapicture
- fprintf(fid,'%%\n');
- fprintf(fid,'%% extra picture(s):\n');
- for i=1:na
- fprintf(fid,[ '\\psfrag{origin' int2str(i) '}[lb][lb]{' ...
- '\\setlength{\\unitlength}{' ...
- num2str(unitlength(i),'%5.5f') 'cm}%%\n' ]);
- fprintf(fid,[ '\\begin{picture}(1,' ...
- num2str(ybound(i),'%5.5f') ')%%\n' ]);
- %fprintf(fid,'\\put(0,0){}%% lower left corner\n');
- %fprintf(fid,[ '\\put(1,' num2str(ybound(i),'%5.5f') ...
- % '){}%% upper right corner\n' ]);
- fprintf(fid,'\\end{picture}%%\n');
- fprintf(fid,'}%%\n');
- end
- end
- % figure
- fprintf(fid,'%%\n');
- fprintf(fid,'%% Figure:\n');
- if iscaption
- fprintf(fid,[ '\\parbox{' num2str(latexwidth) 'cm}{\\centering%%\n' ]);
- end
- if ~scalefonts
- if (exist('textwidth'))
- switch package
- case 'epsfig'
- fprintf(fid,[ '\\epsfig{file=' epsfullnameext ',width=' ...
- num2str(textwidth) '\\textwidth}%%\n' ]);
- case 'graphicx'
- fprintf(fid,[ '\\includegraphics[width=' num2str(textwidth) ...
- '\\textwidth]{' epsfullnameext '}%%\n' ]);
- otherwise
- warning('LaPrint:general',['Package ''' package ''' not known. '...
- 'I hope you know what you are doing...'])
- end
- else
- switch package
- case 'epsfig'
- fprintf(fid,[ '\\epsfig{file='