1function collect_latex_files
2% function collect_LaTeX_Files;
3% Creates TeX-File embedding all eps-loaders created for current mod-file
4%
5% Inputs: none
6%
7% Notes:
8%   - The packages loaded enable pdflatex to run
9%   - The _dynamic and _static TeX-model files are not included as they are standalone TeX-files
10
11% Copyright (C) 2015-2019 Dynare Team
12%
13% This file is part of Dynare.
14%
15% Dynare is free software: you can redistribute it and/or modify
16% it under the terms of the GNU General Public License as published by
17% the Free Software Foundation, either version 3 of the License, or
18% (at your option) any later version.
19%
20% Dynare is distributed in the hope that it will be useful,
21% but WITHOUT ANY WARRANTY; without even the implied warranty of
22% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23% GNU General Public License for more details.
24%
25% You should have received a copy of the GNU General Public License
26% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
27
28global M_
29%% Write header
30f_name_binder=[M_.fname,'_TeX_binder.tex'];
31fid=fopen(f_name_binder,'w+');
32fprintf(fid,'%s \n','\documentclass[12pt]{article}');
33fprintf(fid,'%s \n','\usepackage[margin=2cm]{geometry}');
34fprintf(fid,'%s \n','\usepackage{psfrag}');
35fprintf(fid,'%s \n','\usepackage{graphicx}');
36fprintf(fid,'%s \n','\usepackage{epstopdf}');
37fprintf(fid,'%s \n','\usepackage{longtable,booktabs}');
38fprintf(fid,'%s \n','\usepackage{amsmath,amsfonts}');
39fprintf(fid,'%s \n','\usepackage{breqn}');
40fprintf(fid,'%s \n','\usepackage{float,morefloats,caption}');
41fprintf(fid,'%s \n','\begin{document}');
42
43%% Include LaTeX files from <fname>/latex/ directory, except the standalone ones
44TeX_Files=dir([M_.dname filesep 'latex' filesep '*.tex']);
45for ii=1:length(TeX_Files)
46    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
47    if ~strcmp(f_name, 'dynamic') && ...
48            ~strcmp(f_name, 'static') && ...
49            ~strcmp(f_name, 'original') && ...
50            ~strcmp(f_name, 'steady_state')
51        fprintf(fid,'%s \n',['\include{' M_.dname '/latex/' f_name '}']);
52    end
53end
54
55%% Output directory
56TeX_Files=dir([M_.dname filesep 'Output' filesep  M_.fname '*.tex']);
57for ii=1:length(TeX_Files)
58    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
59    if ~strcmp(TeX_Files(ii).name,f_name_binder)
60        fprintf(fid,'%s \n',['\include{', M_.dname '/Output' '/',f_name,'}']);
61    end
62end
63
64%% graphs directory
65TeX_Files=dir([M_.dname filesep 'graphs' filesep  M_.fname '*.tex']);
66for ii=1:length(TeX_Files)
67    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
68    if ~strcmp(TeX_Files(ii).name,f_name_binder)
69        fprintf(fid,'%s \n',['\include{', M_.dname '/graphs' '/',f_name,'}']);
70    end
71end
72
73%% Identification directory
74TeX_Files=dir([M_.dname filesep 'identification' filesep  M_.fname '*.tex']);
75for ii=1:length(TeX_Files)
76    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
77    if ~strcmp(TeX_Files(ii).name,f_name_binder)
78        fprintf(fid,'%s \n',['\include{', M_.dname '/identification' '/',f_name,'}']);
79    end
80end
81
82
83%% Identification/Output directory
84TeX_Files=dir([M_.dname filesep 'identification' filesep 'Output' filesep M_.fname '*.tex']);
85for ii=1:length(TeX_Files)
86    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
87    if ~strcmp(TeX_Files(ii).name,f_name_binder)
88        fprintf(fid,'%s \n',['\include{', M_.dname '/identification/Output' '/',f_name,'}']);
89    end
90end
91
92%% GSA directory
93TeX_Files=dir([M_.dname filesep 'gsa' filesep  M_.fname '*.tex']);
94for ii=1:length(TeX_Files)
95    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
96    if ~strcmp(TeX_Files(ii).name,f_name_binder)
97        fprintf(fid,'%s \n',['\include{', M_.dname '/gsa' '/',f_name,'}']);
98    end
99end
100
101%% GSA/Output directory
102TeX_Files=dir([M_.dname filesep 'gsa' filesep 'Output' filesep  M_.fname '*.tex']);
103for ii=1:length(TeX_Files)
104    [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
105    if ~strcmp(TeX_Files(ii).name,f_name_binder)
106        fprintf(fid,'%s \n',['\include{', M_.dname '/gsa/Output' '/',f_name,'}']);
107    end
108end
109
110
111dirinfo_parent = dir([M_.dname filesep 'gsa' filesep 'redform*']);
112dirinfo_parent(~[dirinfo_parent.isdir]) = [];  %remove non-directories
113tf = ismember( {dirinfo_parent.name}, {'.', '..'});
114dirinfo_parent(tf) = [];  %remove current and parent directory.
115numsubdir_level1 = length(dirinfo_parent);
116for level1_iter = 1:numsubdir_level1
117    dirinfo_subfolder = dir([M_.dname filesep 'gsa' filesep dirinfo_parent(level1_iter).name]);
118    dirinfo_subfolder(~[dirinfo_subfolder.isdir]) = [];  %remove non-directories
119    tf = ismember( {dirinfo_subfolder.name}, {'.', '..'});
120    dirinfo_subfolder(tf) = [];  %remove current and parent directory.
121    numsubdir_level2 = length(dirinfo_subfolder);
122    for level2_iter = 1:numsubdir_level2
123        TeX_Files=dir([M_.dname filesep 'gsa' filesep dirinfo_parent(level1_iter).name filesep  dirinfo_subfolder(level2_iter).name filesep M_.fname '*.tex']);
124        for ii=1:length(TeX_Files)
125            [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
126            if ~strcmp(TeX_Files(ii).name,f_name_binder)
127                fprintf(fid,'%s \n',['\include{', M_.dname '/gsa/',dirinfo_parent(level1_iter).name '/'  dirinfo_subfolder(level2_iter).name ,'/',f_name,'}']);
128            end
129        end
130        TeX_Files=dir([M_.dname filesep 'gsa' filesep dirinfo_parent(level1_iter).name filesep  dirinfo_subfolder(level2_iter).name filesep 'Output' filesep  M_.fname '*.tex']);
131        for ii=1:length(TeX_Files)
132            [pathstr,f_name,ext] = fileparts(TeX_Files(ii).name);
133            if ~strcmp(TeX_Files(ii).name,f_name_binder)
134                fprintf(fid,'%s \n',['\include{', M_.dname '/gsa/', dirinfo_parent(level1_iter).name '/'  dirinfo_subfolder(level2_iter).name, '/Output' '/',f_name,'}']);
135            end
136        end
137    end
138end
139
140
141
142
143%% Write footer
144fprintf(fid,'%s \n','\end{document}');
145
146fclose(fid);
147