Index: /issm/trunk/src/m/classes/public/plot/applyoptions.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/applyoptions.m	(revision 2826)
+++ /issm/trunk/src/m/classes/public/plot/applyoptions.m	(revision 2827)
@@ -55,4 +55,5 @@
 
 %axis
+set(gca,'FontSize',fontsize);
 if exist(options,'axis')
 	eval(['axis ' getfieldvalue(options,'axis')]);
Index: /issm/trunk/src/m/classes/public/plot/checkplotoptions.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/checkplotoptions.m	(revision 2826)
+++ /issm/trunk/src/m/classes/public/plot/checkplotoptions.m	(revision 2827)
@@ -73,17 +73,18 @@
 	
 %text
-%1: textsize
-textsizevaluesarray=cell(0,0);
-if exist(options,'textsize'),
-	textsizevalues=getfieldvalue(options,'textsize');
-	%ischar if only one textsize -> create a cell
-	if ischar(textsizevalues),
-		textsizevalues={textsizevalues};
-	end
-else
-	textsizevalues={14};
+%1: textvalue
+if exist(options,'text'),
+	textvalues=getfieldvalue(options,'text');
+	%ischar if only one expstyle -> create a cell
+	if ischar(textvalues),
+		textvalues={textvalues};
+		numtext=1;
+	elseif iscell(textvalues),
+		numtext=length(textvalues);
+	else
+		error('plot error message: ''text'' option should be either a string or a cell');
+	end
 end
 %2: textweight
-textweightvaluesarray=cell(0,0);
 if exist(options,'textweight'),
 	textweightvalues=getfieldvalue(options,'textweight');
@@ -91,10 +92,25 @@
 	if ischar(textweightvalues),
 		textweightvalues={textweightvalues};
+	elseif ~iscell(textweightvalues);
+		error('plot error message: ''textweight'' option should be either a string or a cell');
 	end
 else
 	textweightvalues={'n'};
 end
-%3: textcolor
-textcolorvaluesarray=cell(0,0);
+textweightvalues=repmat(textweightvalues,1,numtext); textweightvalues(numtext+1:end)=[];
+%3: textsize
+if exist(options,'textsize'),
+	textsizevalues=getfieldvalue(options,'textsize');
+	%ischar if only one textsize -> create a cell
+	if isnumeric(textsizevalues),
+		textsizevalues={textsizevalues};
+	elseif ~iscell(textsizevalues);
+		error('plot error message: ''textsize'' option should be either a number or a cell');
+	end
+else
+	textsizevalues={14};
+end
+textsizevalues=repmat(textsizevalues,1,numtext); textsizevalues(numtext+1:end)=[];
+%4: textcolor
 if exist(options,'textcolor'),
 	textcolorvalues=getfieldvalue(options,'textcolor');
@@ -102,59 +118,28 @@
 	if ischar(textcolorvalues),
 		textcolorvalues={textcolorvalues};
+	elseif ~iscell(textcolorvalues);
+		error('plot error message: ''textcolor'' option should be either a string or a cell');
 	end
 else
 	textcolorvalues={'k'};
 end
+textcolorvalues=repmat(textcolorvalues,1,numtext); textcolorvalues(numtext+1:end)=[];
 %4: textposition
-textpositionvaluesarray=cell(0,0);
 if exist(options,'textposition'),
 	textpositionvalues=getfieldvalue(options,'textposition');
-	%isnumeric if only one textposition -> create a cell
+	%ischar if only one textposition -> create a cell
 	if isnumeric(textpositionvalues),
 		textpositionvalues={textpositionvalues};
-	end
-end
-%5: textvalue
-textvaluesarray=cell(0,0);
-if exist(options,'text'),
-	textvalues=getfieldvalue(options,'text');
-	%ischar if only one expstyle -> create a cell
-	if ischar(textvalues),
-		textvalues={textvalues};
-	end
-	%get options
-	for i=1:length(textvalues)
-		textvaluesarray{end+1}=textvalues{i};
-		%size
-		if (length(textsizevalues)>=i),
-			textsizevaluesarray{end+1}=textsizevalues{i};
-		else
-			textsizevaluesarray{end+1}=textsizevalues{1};
-		end
-		%weight
-		if (length(textweightvalues)>=i),
-			textweightvaluesarray{end+1}=textweightvalues{i};
-		else
-			textweightvaluesarray{end+1}=textweightvalues{1};
-		end
-		%color
-		if (length(textcolorvalues)>=i),
-			textcolorvaluesarray{end+1}=textcolorvalues{i};
-		else
-			textcolorvaluesarray{end+1}=textcolorvalues{1};
-		end
-		%position
-		if (length(textpositionvalues)>=i),
-			textpositionvaluesarray{end+1}=textpositionvalues{i};
-		else
-			error('plotmodel error message: one or more textposition is missing');
-		end
-	end
-end
-options=changefieldvalue(options,'text',textvaluesarray);
-options=changefieldvalue(options,'textsize',textsizevaluesarray);
-options=changefieldvalue(options,'textweight',textweightvaluesarray);
-options=changefieldvalue(options,'textcolor',textcolorvaluesarray);
-options=changefieldvalue(options,'textposition',textpositionvaluesarray);
+	elseif ~iscell(textpositionvalues);
+		error('plot error message: ''textposition'' option should be either a string or a cell');
+	end
+else
+	error('plot error message: ''textposition'' option is missing');
+end
+options=changefieldvalue(options,'text',textvalues);
+options=changefieldvalue(options,'textsize',textsizevalues);
+options=changefieldvalue(options,'textweight',textweightvalues);
+options=changefieldvalue(options,'textcolor',textcolorvalues);
+options=changefieldvalue(options,'textposition',textpositionvalues);
 
 %expdisp
Index: /issm/trunk/src/m/classes/public/plot/plot_manager.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 2826)
+++ /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 2827)
@@ -133,2 +133,25 @@
 end
 applyoptions(md,data2,options);
+
+%plot inset if requested
+if exist(options,'inset'),
+
+	%get inset relative position (x,y,width,height)
+	insetpos=getfieldvalue(options,'insetpos',[0.56 0.55 0.35 0.35]);
+	%get current plos position
+	cplotpos=get(gca,'pos');
+	%compute inset position
+	PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
+
+	%plot inset
+	axes('pos',PosInset);
+	box('on')
+	plot_unit(x,y,z,elements,data2,isongrid,is2d,isquiver,options);
+
+	%applay options
+	options=changefieldvalue(options,'colorbar',0);
+	options=changefieldvalue(options,'axis','equal off');
+	options=changefieldvalue(options,'xlim',getfieldvalue(options,'insetx',[min(x) max(x)]));
+	options=changefieldvalue(options,'ylim',getfieldvalue(options,'insety',[min(y) max(y)]));
+	applyoptions(md,data2,options);
+end
Index: /issm/trunk/src/m/classes/public/plot/plotdoc.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plotdoc.m	(revision 2826)
+++ /issm/trunk/src/m/classes/public/plot/plotdoc.m	(revision 2827)
@@ -51,4 +51,5 @@
 if ~strcmp(answer,'y'), return, end
 
+disp('       ''alloptions'': apply the options to all subplots if ''on''');
 disp('       ''axis'': same as standard matlab option (''equal'',''off'',''equal on'',...)');
 disp('       ''basin'': zoom on a given basin (''pineislandglacier'',''ronneiceshelf'', type basinzoom for a complete list)');
@@ -66,4 +67,5 @@
 disp('       ''contourcolor'': ticks and contour color');
 disp('       ''density'': density of quivers (one arrow every N nodes, N integer)');
+disp('       ''inset'': add an inset (zoom) of the current figure if 1 (''insetx'', ''insety'' and ''insetpos'' to be documented)');
 disp('       ''streamlines'': N (number of stream lines) or {[x1 y1],...} (coordinates of seed points) add streanlines on current figure');
 disp('       ''edgecolor'': same as standard matlab option EdgeColor (color name: ''black'' or RGB array: [0.5 0.2 0.8])');
Index: /issm/trunk/src/m/classes/public/printmodel.m
===================================================================
--- /issm/trunk/src/m/classes/public/printmodel.m	(revision 2826)
+++ /issm/trunk/src/m/classes/public/printmodel.m	(revision 2827)
@@ -18,5 +18,9 @@
 %   
 %   Usage:
+%      printmodel(filename,format,varargin);
+%
+%   Examples:
 %      printmodel('image','tiff')
+%      printmodel('image','eps','margin','on','frame','on','hardcopy','on')
 
 
@@ -33,5 +37,5 @@
 options=addfielddefault(options,'framesize',5);
 options=addfielddefault(options,'framecolor','black');
-options=addfielddefault(options,'trim','off');
+options=addfielddefault(options,'trim','on');
 options=addfielddefault(options,'hardcopy','on');
 
@@ -55,12 +59,16 @@
 
 %some trimming involved? 
-if strcmpi(getfieldvalue(options,'trim'),'on'),
-	eval(['!convert -trim ' filename '.tif ' filename '.tif']);
+if ~strcmpi(format,'pdf'),
+	if strcmpi(getfieldvalue(options,'trim'),'on'),
+		system(['convert -trim ' filename '.tif ' filename '.tif']);
+	end
 end
 
 %margin?
-if strcmpi(getfieldvalue(options,'margin'),'on'),
-	marginsize=getfieldvalue(options,'marginsize');
-	eval(['!convert -border ' num2str(marginsize) 'x' num2str(marginsize) ' -bordercolor "white" ' filename '.tif ' filename '.tif']);
+if ~strcmpi(format,'pdf'),
+	if strcmpi(getfieldvalue(options,'margin'),'on'),
+		marginsize=getfieldvalue(options,'marginsize');
+		system(['convert -border ' num2str(marginsize) 'x' num2str(marginsize) ' -bordercolor "white" ' filename '.tif ' filename '.tif']);
+	end
 end
 
@@ -70,11 +78,11 @@
 		framesize=getfieldvalue(options,'framesize');
 		framecolor=getfieldvalue(options,'framecolor');
-		eval(['!convert -border ' num2str(framesize) 'x' num2str(framesize) ' -bordercolor "' framecolor '" ' filename '.tif ' filename '.tif']);
+		system(['convert -border ' num2str(framesize) 'x' num2str(framesize) ' -bordercolor "' framecolor '" ' filename '.tif ' filename '.tif']);
 	end
 end
 
 %convert image to correct format
-eval(['!convert ' filename '.tif ' filename '.' format]);
-
-%erase .tif image: 
-delete([filename '.tif']);
+if ~strcmpi(format,'tiff') & ~strcmpi(format,'tif'),
+	system(['convert ' filename '.tif ' filename '.' format]);
+	delete([ filename '.tif']);
+end
