/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_misc/write2tex.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/matlab_class/gcmfaces_misc/write2tex.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download)
Fri Jan 31 23:23:41 2014 UTC (11 years, 5 months ago) by gforget
Branch: MAIN
Changes since 1.6: +0 -1 lines
- remove 'keyboard'

1 function []=write2tex(myFile,myStep,varargin);
2 %object: create/increment/complete/compile a tex file from within matlab
3 %input: myFile is the file name
4 % myStep is the operation to perform on the tex file
5 % 0 create file starting with title page (see myText)
6 % 1 add section or subsection (see myLev)
7 % 2 add a figure plus caption (see myFig)
8 % 3 add a paragraph
9 % 4 finish file
10 % 5 compile (latex x 2 then dvipdf)
11 % 6 remove temporary files (incl. *fig*.ps)
12 %optional myText is a cell array of text lines (for myStep=1 to 2)
13 % myLev is the title level (for myStep=1)
14 % 1=section, 2=subsection (not yet implemented)
15 % myFig is a figure handle (for myStep=2)
16
17 if isempty(myFile);
18 %if no file name, then do nothing
19 return;
20 end;
21 if iscell(myFile);
22 %extecute alternative command (myFile{1}) passing rest as arguments
23 eval([myFile{1} '(myFile{2:end});']);
24 return;
25 end;
26
27
28 myText=[]; myLev=[]; myFig=[];
29 if myStep<4; myText=varargin{1}; end;
30 if myStep==1; myLev=varargin{2};
31 elseif myStep==2; myFig=varargin{2};
32 end;
33
34 %create file starting with write2tex.header
35 if myStep==0;
36 test0=dir(myFile);
37 if ~isempty(test0);
38 test0=input(['you are about to overwrite ' myFile ' !!! \n type 1 to proceed, 0 to stop \n']);
39 else;
40 test0=1;
41 end;
42 if ~test0;
43 return;
44 else;
45 fid=fopen(myFile,'w');
46
47 fprintf(fid,'\\documentclass[12pt]{beamer}\n');
48 fprintf(fid,'%%a nice series of examples for the beamer class:\n');
49 fprintf(fid,'%%http://www.informatik.uni-freiburg.de/~frank/ENG/beamer/example/beamer-class-example-en-5.html\n');
50 fprintf(fid,'\\begin{document} \n\n');
51
52 fprintf(fid,'\\title{\n');
53 for ii=1:length(myText); fprintf(fid,[myText{ii} '\\\\ \n']); end;
54 fprintf(fid,'}\n\n');
55 fprintf(fid,'\\date{\\today}\n\n');
56 fprintf(fid,'\\frame{\\titlepage}\n\n');
57
58 fprintf(fid,'\\frame{');
59 fprintf(fid,'\\frametitle{Table of contents}');
60 fprintf(fid,'\\tableofcontents');
61 fprintf(fid,'} \n\n');
62
63 fclose(fid);
64 end;
65 myFigNumTex=0;
66 mySection='';
67 eval(['save ' myFile(1:end-4) '.mat myFigNumTex mySection;']);
68 end;
69
70 %open file and go to last line
71 fid=fopen(myFile,'a+');
72 eval(['load ' myFile(1:end-4) '.mat;']);
73
74 %add title or section page (see myLev)
75 if myStep==1;
76 mySection=myText;
77 if myLev==1; fprintf(fid,'\\section{\n');
78 else; fprintf(fid,'\\subsection{\n');
79 end;
80 fprintf(fid,mySection);
81 fprintf(fid,'} \n\n');
82 end;
83
84 %add a figure plus caption (see myFig)
85 if myStep==2;
86 figure(myFig);
87 drawnow;
88 myFigNumTex=myFigNumTex+1;
89 nn=strfind(myFile,'/');
90 if ~isempty(nn);
91 dirTex=myFile(1:nn(end)); fileTex=myFile(nn(end)+1:end-4);
92 else;
93 dirTex='./'; fileTex=myFile(1:end-4)
94 end;
95 %print the very figure
96 print(myFig,'-depsc',[dirTex fileTex '.fig' num2str(myFigNumTex)]);
97 close;
98 %add figure to text file
99 fprintf(fid,'\\frame{ \n');
100 fprintf(fid,['\\frametitle{' mySection '} \n']);
101 fprintf(fid,'\\begin{figure}[tbh] \\centering \n');
102 % fprintf(fid,'\\includegraphics[width=\\textwidth,height=0.9\\textheight]');
103 fprintf(fid,'\\includegraphics[width=0.75\\textwidth]');
104 fprintf(fid,['{' fileTex '.fig' num2str(myFigNumTex) '}\n']);
105 fprintf(fid,'\\caption{');
106 for ii=1:length(myText); fprintf(fid,[myText{ii} '\n']); end;
107 fprintf(fid,'} \\end{figure} \n');
108 fprintf(fid,'} \n\n');
109 end;
110
111 %add a paragraph
112 if myStep==3;
113 for ii=1:length(myText);
114 fprintf(fid,[myText{ii} '\n']);
115 end;
116 end;
117
118 %finish file
119 if myStep==4; fprintf(fid,'\n\n \\end{document} \n\n'); end;
120
121 %close file
122 fprintf(fid,'\n\n');
123 fclose(fid);
124 eval(['save ' myFile(1:end-4) '.mat myFigNumTex mySection;']);
125
126 %compile
127 if myStep==5;
128 dirOrig=pwd;
129 nn=strfind(myFile,'/');
130 if ~isempty(nn);
131 cd(myFile(1:nn(end))); fileTex=myFile(nn(end)+1:end-4);
132 else;
133 fileTex=myFile(1:end-4);
134 end;
135 eval(['!latex ' fileTex]);
136 eval(['!latex ' fileTex]);
137 eval(['!dvipdf ' fileTex]);
138 cd(dirOrig);
139 end;
140
141
142 %compile
143 if myStep==6;
144 dirOrig=pwd;
145 nn=strfind(myFile,'/');
146 if ~isempty(nn);
147 cd(myFile(1:nn(end))); fileTex=myFile(nn(end)+1:end-4);
148 else;
149 fileTex=myFile(1:end-4);
150 end;
151 eval(['!\rm -f ' fileTex '.fig*']);
152 eval(['!\rm -f ' fileTex '.aux']);
153 eval(['!\rm -f ' fileTex '.log']);
154 eval(['!\rm -f ' fileTex '.out']);
155 eval(['!\rm -f ' fileTex '.dvi']);
156 cd(dirOrig);
157 end;

  ViewVC Help
Powered by ViewVC 1.1.22