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

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

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

revision 1.3 by gforget, Fri Jul 8 12:58:14 2011 UTC revision 1.13 by gforget, Mon Oct 5 22:00:09 2015 UTC
# Line 7  function []=write2tex(myFile,myStep,vara Line 7  function []=write2tex(myFile,myStep,vara
7  %                       2   add a figure plus caption (see myFig)  %                       2   add a figure plus caption (see myFig)
8  %                       3   add a paragraph  %                       3   add a paragraph
9  %                       4   finish file  %                       4   finish file
10  %                       5   compile and remove temporary files (incl. *fig*.ps)  %                       5   compile (latex x 2 then dvipdf)
11  %                       -5  compile solely  %                       6   remove temporary files (incl. *fig*.ps)
12  %optional       myText is a cell array of text lines (for myStep=1 to 2)  %optional       myText is a cell array of text lines (for myStep=1 to 2)
13  %               myLev is the title level (for myStep=1)  %               myLev is the title level (for myStep=1)
14  %                       1=section, 2=subsection (not yet implemented)  %                       1=section, 2=subsection (not yet implemented)
15  %               myFig is a figure handle (for myStep=2)  %               myFig is a figure handle (for myStep=2)
16    
17  myText=[]; myLev=[]; myFig=[];  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=[]; myRdm=[];
29  if myStep<4; myText=varargin{1}; end;  if myStep<4; myText=varargin{1}; end;
30  if myStep==1; myLev=varargin{2};  if myStep==0; myRdm=varargin{2};
31    elseif myStep==1; myLev=varargin{2};
32  elseif myStep==2; myFig=varargin{2};  elseif myStep==2; myFig=varargin{2};
33  end;  end;
34    
35    %format use for printing out plots :
36    frmt='eps';
37    if ispc; frmt='jpg'; end;
38    
39  %create file starting with write2tex.header  %create file starting with write2tex.header
40  if myStep==0;  if myStep==0;
41      test0=dir(myFile);      test0=dir(myFile);
# Line 36  if myStep==0; Line 52  if myStep==0;
52          fprintf(fid,'\\documentclass[12pt]{beamer}\n');          fprintf(fid,'\\documentclass[12pt]{beamer}\n');
53          fprintf(fid,'%%a nice series of examples for the beamer class:\n');          fprintf(fid,'%%a nice series of examples for the beamer class:\n');
54          fprintf(fid,'%%http://www.informatik.uni-freiburg.de/~frank/ENG/beamer/example/beamer-class-example-en-5.html\n');          fprintf(fid,'%%http://www.informatik.uni-freiburg.de/~frank/ENG/beamer/example/beamer-class-example-en-5.html\n');
55            fprintf(fid,'\\usepackage{multicol}\n');
56    
57            fprintf(fid,'\n');
58            fprintf(fid,'\\newcommand\\Fontvi{\\fontsize{6}{7.2}\\selectfont}\n');
59            fprintf(fid,'\n');
60    
61          fprintf(fid,'\\begin{document} \n\n');          fprintf(fid,'\\begin{document} \n\n');
62    
63          fprintf(fid,'\\title{\n');          fprintf(fid,'\\title{\n');
# Line 44  if myStep==0; Line 66  if myStep==0;
66          fprintf(fid,'\\date{\\today}\n\n');          fprintf(fid,'\\date{\\today}\n\n');
67          fprintf(fid,'\\frame{\\titlepage}\n\n');          fprintf(fid,'\\frame{\\titlepage}\n\n');
68    
69          fprintf(fid,'\\frame{');          fprintf(fid,'\\frame{\n');
70          fprintf(fid,'\\frametitle{Table of contents}');          fprintf(fid,'\\frametitle{Table of contents}\n');
71          fprintf(fid,'\\tableofcontents');          fprintf(fid,'\\begin{multicols}{2}\n');
72            fprintf(fid,'\\Fontvi\n');
73            fprintf(fid,'\\tableofcontents\n');
74            fprintf(fid,'\\end{multicols}\n');
75          fprintf(fid,'} \n\n');          fprintf(fid,'} \n\n');
76    
77            if ~isempty(myRdm);
78              fprintf(fid,'\\frame{\n');
79              fprintf(fid,'\\section{README}\n');
80              fprintf(fid,'\\Fontvi\n');
81              for pp=1:length(myRdm);
82                fprintf(fid,[myRdm{pp} '\n\n']);
83              end;
84              fprintf(fid,'} \n\n');
85            end;
86    
87          fclose(fid);          fclose(fid);
88      end;      end;
89      myFigNumTex=0;      myFigNumTex=0;
# Line 63  eval(['load ' myFile(1:end-4) '.mat;']); Line 98  eval(['load ' myFile(1:end-4) '.mat;']);
98  %add title or section page (see myLev)  %add title or section page (see myLev)
99  if myStep==1;  if myStep==1;
100      mySection=myText;      mySection=myText;
101      fprintf(fid,'\\section{\n');      if myLev==1; fprintf(fid,'\\section{\n');
102        else; fprintf(fid,'\\subsection{\n');
103        end;
104      fprintf(fid,mySection);      fprintf(fid,mySection);
105      fprintf(fid,'} \n\n');      fprintf(fid,'} \n\n');
106  end;  end;
# Line 73  if myStep==2; Line 110  if myStep==2;
110      figure(myFig);      figure(myFig);
111      drawnow;      drawnow;
112      myFigNumTex=myFigNumTex+1;      myFigNumTex=myFigNumTex+1;
113      nn=strfind(myFile,'/');      [dirTex,fileTex,EXT] = fileparts(myFile);
     if ~isempty(nn);  
         dirTex=myFile(1:nn(end)); fileTex=myFile(nn(end)+1:end-4);  
     else;  
         dirTex='./'; fileTex=myFile(1:end-4)  
     end;  
114      %print the very figure      %print the very figure
115      print(myFig,'-depsc',[dirTex fileTex '.fig' num2str(myFigNumTex)]);      if strcmp(frmt,'eps');
116          print(myFig,'-depsc',[dirTex fileTex '_fig' num2str(myFigNumTex) '.eps']);
117        elseif strcmp(frmt,'jpg');
118          print(myFig,'-djpeg90',[dirTex fileTex '_fig' num2str(myFigNumTex) '.jpg']);
119        elseif strcmp(frmt,'png');
120          print(myFig,'-dpng',[dirTex fileTex '_fig' num2str(myFigNumTex) '.png']);
121        end
122      close;      close;
123      %add figure to text file      %add figure to text file
124      fprintf(fid,'\\frame{ \n');      fprintf(fid,'\\frame{ \n');
# Line 88  if myStep==2; Line 126  if myStep==2;
126      fprintf(fid,'\\begin{figure}[tbh] \\centering \n');      fprintf(fid,'\\begin{figure}[tbh] \\centering \n');
127  %     fprintf(fid,'\\includegraphics[width=\\textwidth,height=0.9\\textheight]');  %     fprintf(fid,'\\includegraphics[width=\\textwidth,height=0.9\\textheight]');
128      fprintf(fid,'\\includegraphics[width=0.75\\textwidth]');      fprintf(fid,'\\includegraphics[width=0.75\\textwidth]');
129      fprintf(fid,['{' fileTex '.fig' num2str(myFigNumTex) '}\n']);      fprintf(fid,['{' fileTex '_fig' num2str(myFigNumTex) '.' frmt '}\n']);
130      fprintf(fid,'\\caption{');      fprintf(fid,'\\caption{');
131      for ii=1:length(myText); fprintf(fid,[myText{ii} '\n']); end;      for ii=1:length(myText); fprintf(fid,[myText{ii} '\n']); end;
132      fprintf(fid,'} \\end{figure} \n');      fprintf(fid,'} \\end{figure} \n');
# Line 111  fclose(fid); Line 149  fclose(fid);
149  eval(['save ' myFile(1:end-4) '.mat myFigNumTex mySection;']);  eval(['save ' myFile(1:end-4) '.mat myFigNumTex mySection;']);
150    
151  %compile  %compile
152  if myStep==5|myStep==-5;  if myStep==5;
153      dirOrig=pwd;      fprintf('\nNow we can attempt to compile the tex file from within Matlab. \n');
154      nn=strfind(myFile,'/');      fprintf('If the latex implementation is incomplete then this may fail, and \n');
155      if ~isempty(nn);      fprintf('user should then abort and compile the tex file from outside Matlab. \n');
156          cd(myFile(1:nn)); fileTex=myFile(nn+1:end-4);      fprintf('The beamer class is required by in particular. In Matlab, if prompted \n');
157      else;      fprintf(' with a question mark then typing ''quit'' will abort compilation. \n');
158          fileTex=myFile(1:end-4);      test0=input('\n type 1 to proceed or 0 to skip this attempt\n');
159        if test0;
160          dirOrig=pwd;
161          [PATHSTR,fileTex,EXT] = fileparts(myFile);
162          cd(PATHSTR);
163          system(['latex ' fileTex]);
164          system(['latex ' fileTex]);
165          system(['dvipdf ' fileTex]);
166          cd(dirOrig);
167      end;      end;
     eval(['!latex ' fileTex]);  
     eval(['!latex ' fileTex]);  
     eval(['!dvipdf ' fileTex]);  
     cd(dirOrig);  
168  end;  end;
169    
170    
171  %compile  %compile
172  if myStep==5;  if myStep==6&ispc;
173        fprintf('warning : compiling tex to pdf is bypassed on PCs\n');
174    end;
175    
176    if myStep==6&~ispc;
177      dirOrig=pwd;      dirOrig=pwd;
178      nn=strfind(myFile,'/');      nn=strfind(myFile,filesep);
179      if ~isempty(nn);      if ~isempty(nn);
180          cd(myFile(1:nn)); fileTex=myFile(nn+1:end-4);          cd(myFile(1:nn(end))); fileTex=myFile(nn(end)+1:end-4);
181      else;      else;
182          fileTex=myFile(1:end-4);          fileTex=myFile(1:end-4);
183      end;      end;
184      eval(['!\rm -f ' fileTex '.fig*']);      delete([fileTex '_fig*']);
185      eval(['!\rm -f ' fileTex '.aux']);      delete([fileTex '.aux']);
186      eval(['!\rm -f ' fileTex '.log']);      delete([fileTex '.log']);
187      eval(['!\rm -f ' fileTex '.out']);      delete([fileTex '.out']);
188      eval(['!\rm -f ' fileTex '.dvi']);      delete([fileTex '.dvi']);
189      cd(dirOrig);      cd(dirOrig);
190  end;  end;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22