rake4latex 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. data/bin/call_rake4latex.rb +7 -1
  2. data/bin/readme_call_rake4latex.txt +1 -0
  3. data/lib/rake4latex.rb +15 -14
  4. data/lib/rake4latex/analyse_texfile.rb +6 -4
  5. data/lib/rake4latex/base.rb +191 -63
  6. data/lib/rake4latex/clean.rb +9 -6
  7. data/lib/rake4latex/glossaries.rb +101 -0
  8. data/lib/rake4latex/latexrunner.rb +16 -27
  9. data/lib/rake4latex/rules.rb +81 -54
  10. data/lib/rake4latex/splitindex.rb +0 -1
  11. data/lib/rake4latex/tex_statistic.rb +18 -6
  12. data/lib/rake4latex_dtx.rb +3 -3
  13. data/lib/rake4latex_dvipdfm.rb +2 -2
  14. data/readme.html +32 -14
  15. data/readme.txt +21 -11
  16. data/test/_expected/bibtex_test.txt +9 -9
  17. data/test/_expected/bibtex_test_bib.txt +4 -4
  18. data/test/_expected/bibtex_test_build_rakefile.txt +3 -0
  19. data/test/_expected/dtx_test.txt +11 -11
  20. data/test/_expected/dvipdfm_test.txt +6 -6
  21. data/test/_expected/error_test.txt +3 -3
  22. data/test/_expected/error_test_ignore_error.txt +4 -4
  23. data/test/_expected/error_test_overview.txt +7 -2
  24. data/test/_expected/error_test_statistic.txt +2 -2
  25. data/test/_expected/gloss_test.txt +15 -15
  26. data/test/_expected/gloss_test_bib.txt +7 -7
  27. data/test/_expected/gloss_test_build_rakefile.txt +3 -0
  28. data/test/_expected/glossaries_test.txt +12 -0
  29. data/test/_expected/includes_test.txt +7 -7
  30. data/test/_expected/includes_test_build_rakefile.txt +3 -0
  31. data/test/_expected/index_test.txt +6 -6
  32. data/test/_expected/longtable_test.txt +5 -5
  33. data/test/_expected/minitoc_test.txt +7 -7
  34. data/test/_expected/ps2pdf_test.txt +7 -7
  35. data/test/_expected/rail_error_test.txt +9 -9
  36. data/test/_expected/rail_test.txt +6 -6
  37. data/test/_expected/splitindex_test.txt +7 -7
  38. data/test/_expected/splitindex_test_build_rakefile.txt +9 -6
  39. data/test/_expected/supertabular_test.txt +5 -5
  40. data/test/_expected/supertabular_test_statistic.txt +1 -1
  41. data/test/_expected/two_tasks_test.txt +15 -0
  42. data/test/_expected/two_tasks_test_statistic.txt +11 -0
  43. data/test/_expected/varioref_test.txt +5 -5
  44. data/test/_expected/varioref_test_ignore_error.txt +7 -7
  45. data/test/_expected/z_complex_test.txt +12 -11
  46. data/test/_expected/z_complex_test_overview.txt +24 -9
  47. data/test/_expected/z_complex_test_overview_file.txt +2 -0
  48. data/test/_expected/z_complex_test_statistic.txt +2 -2
  49. data/test/bibtex/rakefile.rb +4 -2
  50. data/test/dtx/rakefile.rb +3 -3
  51. data/test/dvipdfm/rakefile.rb +4 -2
  52. data/test/error/rakefile.rb +10 -6
  53. data/test/gloss/rakefile.rb +3 -2
  54. data/test/glossaries/rakefile.rb +50 -0
  55. data/test/glossaries/sample.tex +133 -0
  56. data/test/includes/rakefile.rb +7 -6
  57. data/test/index/rakefile.rb +3 -2
  58. data/test/longtable/rakefile.rb +3 -2
  59. data/test/minitoc/rakefile.rb +3 -2
  60. data/test/ps2pdf/rakefile.rb +3 -2
  61. data/test/rail/rakefile.rb +5 -4
  62. data/test/rail_error/rakefile.rb +3 -2
  63. data/test/splitindex/rakefile.rb +7 -5
  64. data/test/supertabular/rakefile.rb +3 -2
  65. data/test/two_tasks/rakefile.rb +50 -0
  66. data/test/two_tasks/testdocument_1.tex +10 -0
  67. data/test/two_tasks/testdocument_2.tex +10 -0
  68. data/test/unittest_rake4latex.rb +27 -4
  69. data/test/unittest_rake4latex_testcases.rb +27 -11
  70. data/test/varioref/rakefile.rb +11 -5
  71. data/test/z_complex/rakefile.rb +8 -6
  72. data/test/z_complex/testdocument.tex +12 -1
  73. metadata +149 -28
@@ -18,21 +18,24 @@
18
18
  # Changes:
19
19
  # * Use File.delete (avoid stderr-messages of rm_r)
20
20
  # * Use LaTeXRunner.logger if available.
21
- # * Add task :basefile as prerequisite.
21
+ # * Use uniq to avoid warnings for just deleted files.
22
22
 
23
- require 'rake'
23
+ require 'rake'
24
24
 
25
25
  CLEAN = Rake::FileList["**/*~", "**/*.bak", "**/core"]
26
26
  CLEAN.clear_exclude.exclude { |fn|
27
27
  fn.pathmap("%f") == 'core' && File.directory?(fn)
28
28
  }
29
+
29
30
 
30
31
  desc "Remove any temporary products."
31
32
  #~ task :clean do
32
- task :clean => :basefile do
33
- logger = Rake4LaTeX::Logger
33
+ task :clean do
34
+ Rake4LaTeX::Basefile.each{|file| file.set4clean } #late call is necessary. doc. says FileList would work without...
35
+
36
+ logger = Rake4LaTeX::Logger
34
37
  logger.info("Clean: delete helpfiles #{CLEAN.inspect}") if logger.info?
35
- CLEAN.each { |fn|
38
+ CLEAN.uniq.each { |fn|
36
39
  #~ rm_r fn rescue nil
37
40
  #~ logger.debug("Clean: delete #{fn}") if logger
38
41
  File.delete(fn) rescue ( logger.warn("Clean: #{fn} not deleted") if logger )
@@ -45,7 +48,7 @@ desc "Remove any generated file."
45
48
  task :clobber => :clean do
46
49
  logger = Rake4LaTeX::Logger
47
50
  logger.info("Clobber: delete helpfiles #{(CLEAN + CLOBBER).inspect}") if logger.info?
48
- CLOBBER.each { |fn|
51
+ CLOBBER.uniq.each { |fn|
49
52
  #~ rm_r fn rescue nil
50
53
  #~ logger.debug("Clobber: delete #{fn}") if logger
51
54
  File.delete(fn) rescue ( logger.warn("Clobber: #{fn} not deleted") if logger )
@@ -0,0 +1,101 @@
1
+ =begin rdoc
2
+ Define tasks for usage of rake4latex with glossaries.sty
3
+
4
+ More about glossaries.sty:
5
+ * http://www.ctan.org/tex-archive/help/Catalogue/entries/glossaries.html
6
+ * http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/
7
+ * http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/glossaries/glossaries-manual.html
8
+
9
+ ToDo:
10
+ The logs from the glossaries are not analysed by Rake4LaTeX::TeXMessage
11
+ =end
12
+
13
+
14
+ =begin
15
+ AUX-File:
16
+
17
+ \@newglossary{label}{log}{out-ext}{in-ext}
18
+
19
+ \@newglossary{main}{glg}{gls}{glo}
20
+ \@newglossary{ext}{TeX-extensions}{glsext_in}{glsext_out}
21
+ \@istfilename{sample.ist}
22
+
23
+ Anschliessend makeindex rufen.
24
+
25
+ Statt ind/idx werden
26
+ - gls => glo (default)
27
+ - glsext_in => glsext_out (selbstdefiniert)
28
+ verwendet.
29
+
30
+ Zus�tzlich Index-file ist.
31
+ =end
32
+
33
+
34
+ module Rake4LaTeX
35
+ =begin
36
+ Extend the class by accessors for glossaries.sty.
37
+ =end
38
+ class LaTeXRunner
39
+ =begin rdoc
40
+ Store information from glossaries.sty to transport it from
41
+ tex_postrule_check to tex_postrule for 'gls'-task.
42
+ =end
43
+ attr_accessor :glossaries
44
+ =begin rdoc
45
+ Format for the makefindex call neeeded for glossaries.sty.
46
+ =end
47
+ attr_accessor :glossaries_format
48
+ end #LaTeXRunner
49
+ end #Rake4LaTeX
50
+
51
+ =begin
52
+ Check glossaries.sty-infos after a TeX-run.
53
+
54
+ The data are stored in Rake4LaTeX::LaTeXRunner#glossaries
55
+ and Rake4LaTeX::LaTeXRunner#glossaries_format .
56
+ =end
57
+ desc "Build glossary with glossaries.sty"
58
+ tex_postrule_check '.gls' do |args|
59
+ gls = {}
60
+ File.read(args[:task].name.ext('aux')).each{|auxline|
61
+ case auxline
62
+ when /\\@newglossary\{(.*)\}\{(.*)\}\{(.*)\}\{(.*)\}/
63
+ args[:logger].debug("Found Glossary #{$1}-#{$2}-#{$3}-#{$4}")
64
+ gls[$1] = { :log => $2, :out => $3, :in => $4 }
65
+ when /\\@istfilename\{(.*)\}/
66
+ args[:logger].debug("Found Glossary format definition #{$1}")
67
+ args[:texrunner].glossaries_format = $1
68
+ end
69
+ }
70
+
71
+ #Provide glossaries-data to gls-task.
72
+ args[:texrunner].glossaries = gls
73
+ gls.empty? ? false : true
74
+ end
75
+
76
+
77
+ =begin
78
+ Build the glossaries from glossaries.sty.
79
+
80
+ The data are taken from Rake4LaTeX::LaTeXRunner#glossaries
81
+ and Rake4LaTeX::LaTeXRunner#glossaries_format .
82
+ =end
83
+ desc "Call Makeindex for glossaries with glossaries.sty"
84
+ tex_postrule '.gls' => '.glo' do | t |
85
+ #fixme: check for t.texrunner.glossaries
86
+ t.texrunner.logger.info("Prepare glossaries #{t.texrunner.glossaries.keys.inspect}")
87
+ t.texrunner.logger.warn("No makeindex-style available for glossaries") unless t.texrunner.glossaries_format
88
+ t.texrunner.glossaries.each{|key, par|
89
+ cmd = Rake4LaTeX.build_cmd( 'makeindex',
90
+ :file_in => t.name.ext(par[:in]), :file_out => t.name.ext(par[:out]),
91
+ :file_log => t.name.ext(par[:log]), :format => t.texrunner.glossaries_format
92
+ )
93
+ #~ puts cmd
94
+ Rake4LaTeX::Logger.debug("Call #{cmd}")
95
+ stdout, stderr = catch_screen_output{
96
+ sh cmd
97
+ }
98
+ CLEAN.include(FileList.new("#{t.name.ext()}.{#{par[:in]},#{par[:out]},#{par[:log]}}"))
99
+ }#$gls.each
100
+ CLEAN.include(FileList.new(t.texrunner.glossaries_format)) if t.texrunner.glossaries_format
101
+ end
@@ -7,19 +7,7 @@ It calls (pdf|xe|lua)LaTeX and checks if additional tools are needed.
7
7
  class LaTeXRunner
8
8
  #Define Infinity (needed for option maxruns.
9
9
  Infinity = 1.0/0
10
- #
11
- #Define the main settings for the runner.
12
- #
13
- #This values can be overwritten with
14
- # Rake.application.set_latexrunner_default(:loglevel, Log4r::DEBUG)
15
- #
16
- DEFAULT_SETTINGS = {
17
- :main_file => nil, #only needed for key-check. Must be defined later.
18
- :maxruns => 5,
19
- :program => :pdflatex, #Valid entries see PROGRAMS
20
- :loglevel => Log4r::INFO,
21
- :texerrors_allowed => false,
22
- }
10
+
23
11
  =begin rdoc
24
12
  All tasks, which should be executed after a TeX-call.
25
13
 
@@ -56,15 +44,20 @@ Should return true or false.
56
44
  =begin rdoc
57
45
  Define a new runner.
58
46
 
59
- The settings contain the following values:
60
- * main_file, see LaTeXRunner#main_file
61
- * maxruns, see LaTeXRunner#maxruns
47
+ The settings must contain:
48
+ * main_file, see Rake4LaTeX::LaTeXRunner#main_file
49
+ It may contain the following values:
50
+ * maxruns, see Rake4LaTeX::LaTeXRunner#maxruns
51
+ Defaults are defined in Rake4LaTeX::Basefile#settings4LaTeXRunner
62
52
  =end
63
53
  def initialize( settings )
64
54
 
65
- #~ raise ArgumentError, "Task is no RakeTask but #{t.class}" unless task.is_a?(Rake::Task)
55
+ @main_file = settings[:main_file]
56
+ raise MainfileError, "main_file missing" unless @main_file
57
+ #Define or get Basefile
58
+ basefile = Rake4LaTeX::Basefile.set( @main_file )
66
59
 
67
- @logger = Rake4LaTeX::Logger
60
+ @logger = basefile.logger
68
61
  #~ @logger = Log4r::Logger.new("LaTeXRunner #{settings[:main_file]}")
69
62
  #~ @logger.outputters = Log4r::StdoutOutputter.new('log_stdout')
70
63
 
@@ -72,7 +65,7 @@ The settings contain the following values:
72
65
  #This allows us to overwrite the program settings for a special LaTeXRunner.
73
66
  @programms = Programms.dup
74
67
 
75
- DEFAULT_SETTINGS.merge(settings).each{|key, value|
68
+ basefile.settings4LaTeXRunner.merge(settings).each{|key, value|
76
69
  #~ puts "#{key}: #{value}"
77
70
  case key
78
71
  when :main_file; @main_file = value
@@ -87,7 +80,7 @@ The settings contain the following values:
87
80
  raise ArgumentError, "Undefined key #{key} for LaTeXRunner"
88
81
  end
89
82
  }
90
- raise MainfileError, "main_file missing" unless @main_file
83
+
91
84
  raise MainfileError, "main_file #{@main_file} not found" unless File.exist?(@main_file)
92
85
  raise ArgumentError, "Maxrun is no number" unless @maxruns.is_a?( Fixnum ) or @maxruns == Infinity
93
86
 
@@ -95,8 +88,6 @@ The settings contain the following values:
95
88
  @input_dir = File.dirname(@main_file)
96
89
  @full_input_dir = File.expand_path(@input_dir)
97
90
 
98
- #This replacement is global in Rake4LaTeX::Logger -> May be a problem with multiple documents, parallel tasks...
99
- @logger.name.replace("LaTeXRunner #{@basename}") #no, only one global Logger.
100
91
  @logger.info( "StartLaTeXRunner for #{@main_file}")
101
92
 
102
93
  @rerun_necessary = true #initialize
@@ -164,8 +155,6 @@ The settings contain the following values:
164
155
  run_latex_once(cmd)
165
156
  end
166
157
  end
167
- #Guarentee that help files are deleted in clean.
168
- Rake4LaTeX.set4clean( @basename )
169
158
 
170
159
  plural_s = "#{@texruns} run#{@texruns>1 ? 's': ''}"
171
160
  if @rerun_necessary
@@ -187,7 +176,7 @@ The settings contain the following values:
187
176
  checksums = {}
188
177
  FileList["#{@basename.ext('*')}"].each do |file|
189
178
  # Computes a MD5 digest for the given file, reading the file.
190
- File.open(file){|f| checksums[file] = MD5.new(f.read).hexdigest }
179
+ File.open(file){|f| checksums[file] = Digest::MD5.hexdigest(f.read) }
191
180
  end
192
181
 
193
182
  @logger.info("Excute #{cmd}")
@@ -209,7 +198,7 @@ The settings contain the following values:
209
198
  when nil
210
199
  @logger.debug("new file #{file}")
211
200
  checksums[file] = :changed
212
- when File.open(file){|f| MD5.new(f.read).hexdigest}
201
+ when File.open(file){|f| Digest::MD5.hexdigest(f.read) }
213
202
  #no message needed
214
203
  #~ @logger.debug("Unchanged file #{file}")
215
204
  else
@@ -280,7 +269,7 @@ The settings contain the following values:
280
269
  @logger.info("Call target #{post_prereq.name} (#{reason4call})" )
281
270
  post_prereq.invoke()
282
271
  File.open(post_prereq.name){|f|
283
- @rerun_necessary = (MD5.new(f.read).hexdigest != checksums[f.path])
272
+ @rerun_necessary = ( Digest::MD5.hexdigest(f.read) != checksums[f.path])
284
273
  @logger.info("Rerun necessary (#{f.path} changed)" ) if @rerun_necessary
285
274
  } unless @rerun_necessary #check not necessary, if we already need an additional run
286
275
  break #Only one call necessary
@@ -28,7 +28,7 @@ This may be done via different ways. You can select your version on your own:
28
28
 
29
29
  #Some Tools have screen output.
30
30
  #Rake4LaTeX should run silent in background, so we have to redirect the output.
31
- require 'catch_output'
31
+ require 'knut_tools/catch_output'
32
32
  include Catch_output
33
33
 
34
34
  desc "Show compiled source in Adobe Acrobat Reader."
@@ -40,46 +40,16 @@ task :acroread do |t|
40
40
  }
41
41
  end
42
42
 
43
+ =begin
44
+ Alternative definition instead Rake4LaTeX::Basefile.set(filename)
45
+ =end
43
46
  desc "Set the basefile - needed for clean and statistic"
44
47
  task :basefile do |task|
45
48
  task.prerequisites.each{|pre|
46
49
  #~ puts "Set basefile #{pre.inspect}"
47
- Rake4LaTeX.set4clean( pre )
48
- file :statistic => pre
50
+ puts "Task basefile defined for #{pre.inspect} (Please replace it with: Rake4LaTeX::Basefile.set)"
51
+ Rake4LaTeX::Basefile.new(pre)
49
52
  }
50
- task.reenable() #If not the second call for clean will not work.
51
- end
52
- task :default => :basefile
53
-
54
- desc "Build a log-overview file"
55
- task :log_overview => :basefile do
56
- Rake.application[:statistic].prerequisites.each{|pre|
57
- next if pre == 'basefile' #exclude task :basefile
58
- stat = Rake4LaTeX::TeX_Statistic.new(pre)
59
- #Filename also used in set4clean
60
- File.open("#{pre.ext()}.overview.txt", 'w'){|f|
61
- f << stat.overview()
62
- }
63
- }
64
- end
65
-
66
- desc "Archive all log-files to zip-file"
67
- task :log_archive => :basefile do
68
- require 'zip/zipfilesystem'
69
- Zip::ZipFile.open("rake4latex_log_archive.zip", Zip::ZipFile::CREATE ){|zip|
70
- puts "Pack #{zip.name}"
71
- #Store all Files to be deleted
72
- CLEAN.each{|filename|
73
- zip.file.open(File.basename(filename), 'w'){|f| f << File.open(filename,"rb") {|io| io.read} }
74
- }
75
- Rake.application[:statistic].prerequisites.each{|pre|
76
- next if pre == 'basefile' #exclude task :basefile
77
- stat = Rake4LaTeX::TeX_Statistic.new(pre)
78
- zip.file.open("#{pre}.overview.txt", 'w'){|f|
79
- f << stat.overview()
80
- }
81
- }
82
- } #close zip-file
83
53
  end
84
54
 
85
55
  #
@@ -92,6 +62,9 @@ task :touch do |task|
92
62
  }
93
63
  end
94
64
 
65
+ =begin
66
+ Call LaTeX
67
+ =end
95
68
  desc "Build a dvi-file with LaTeX"
96
69
  rule '.dvi' => '.tex' do |task|
97
70
  runner = Rake4LaTeX::LaTeXRunner.new(
@@ -102,9 +75,13 @@ rule '.dvi' => '.tex' do |task|
102
75
  runner.execute #Does all the work and calls the "post-prerequisites"
103
76
  end
104
77
 
78
+ =begin
79
+ Call dvips
80
+ =end
105
81
  desc "Build a ps-file from dvi"
106
82
  rule '.ps' => '.dvi' do |task|
107
- Rake4LaTeX::Logger.info("Call dvips for <#{task.source}>")
83
+
84
+ Rake4LaTeX::Basefile.set(task.source).logger.info("Call dvips for <#{task.source}>")
108
85
  cmd = Rake4LaTeX.build_cmd( 'dvips', :filename => task.source )
109
86
 
110
87
  stdout, stderr = catch_screen_output{
@@ -113,16 +90,18 @@ rule '.ps' => '.dvi' do |task|
113
90
  #stderr -> log.
114
91
  }
115
92
  if $? != 0
116
- Rake4LaTeX::Logger.fatal("There where dvips errors. \n#{stdout}")
93
+ Rake4LaTeX::Basefile.set(task.source).fatal("There where dvips errors. \n#{stdout}")
117
94
  end
118
95
  end
119
96
 
120
-
121
-
97
+ =begin
98
+ Call Makenindex
99
+ =end
122
100
  desc "Call Makeindex"
123
101
  tex_postrule '.ind' => '.idx' do |task|
124
102
  #check for splitidx
125
- splitidx = Rake4LaTeX::Splitindex.new(task.source, Rake4LaTeX::Logger)
103
+ #If you use index.sty you will get an error.
104
+ splitidx = Rake4LaTeX::Splitindex.new(task.source, task.texrunner.logger)
126
105
  if splitidx.makeindex? #standard index, no splitidx
127
106
  #makeindex writes to stderr -> catch it
128
107
  cmd = Rake4LaTeX.build_cmd( 'makeindex', { :file_in => task.source }, task )
@@ -136,6 +115,9 @@ tex_postrule '.ind' => '.idx' do |task|
136
115
  end
137
116
  end
138
117
 
118
+ =begin
119
+ Call BibTeX
120
+ =end
139
121
  desc "Call BibTeX"
140
122
  #Define the precheck
141
123
  tex_postrule_check '.bbl' do |args|
@@ -154,6 +136,13 @@ tex_postrule_check '.bbl' do |args|
154
136
  else
155
137
  args[:logger].warn("\t#{auxfile} not found in bbl-precheck")
156
138
  end
139
+
140
+ #Check, if the bbl is missing.
141
+ #may occur, if the bbl-file was deleted manual, but no change in aux...
142
+ # fixme -- provoziert unn�tige bibtex-laeufe.
143
+ #~ bblfile = args[:task].name.ext('bbl')
144
+ #~ necessary = "#{bblfile} missing" unless File.exist?(bblfile)
145
+
157
146
  #Check all prerequisites.
158
147
  #This should be the aux-file and (optional) bib-files.
159
148
  args[:task].prerequisites.each{|post_prereq_pre|
@@ -192,8 +181,10 @@ tex_postrule '.bbl' => '.aux' do |task|
192
181
  end
193
182
  end
194
183
 
195
- #Support for rail
196
- #http://www.ctan.org/tex-archive/support/rail/
184
+ =begin
185
+ Call Rail
186
+ http://www.ctan.org/tex-archive/support/rail/
187
+ =end
197
188
  desc "Call Rail"
198
189
  tex_postrule '.rao' => '.rai' do |task|
199
190
  #Rail works only with filenames with 8 characters.
@@ -208,7 +199,7 @@ tex_postrule '.rao' => '.rai' do |task|
208
199
  task.texrunner.logger.fatal("There where Rail errors.")
209
200
  error = true
210
201
  end
211
- stderr.each{|errline|
202
+ stderr.each_line{|errline|
212
203
  task.texrunner.logger.error("Rail error: #{errline.strip}")
213
204
  error = true
214
205
  }
@@ -225,15 +216,51 @@ tex_postrule '.rao' => '.rai' do |task|
225
216
  CLEAN.include(task.name)
226
217
  end
227
218
 
219
+ =begin
220
+ End Task and TeX-independend tasks.
228
221
 
229
- desc "Build a statistic for TeX project"
230
- task :statistic => :basefile do |task|
231
- task.prerequisites.each{|pre|
232
- next if pre == 'basefile' #exclude task :basefile
233
- stat = Rake4LaTeX::TeX_Statistic.new(pre)
234
- puts "Statistic for #{pre}:"
235
- puts stat.stat_summary.map{|e| " #{e}"}
236
- #~ puts stat
237
- }
238
- end
222
+ This tasks require a previous Rake4LaTeX::Basefile.set
223
+ =end
224
+
225
+
226
+
227
+ =begin
228
+ Build Statistic.
229
+
230
+ The main action is defined in Rake4LaTeX::Basefile
231
+ =end
232
+ desc "Build a statistic for all TeX project"
233
+ task :statistic
234
+
235
+ =begin
236
+ Show the log-overview
237
+ =end
238
+ desc "Show the log-overview"
239
+ task :log_overview
240
+
241
+ =begin
242
+ Build a log-overview file
243
+ =end
244
+ desc "Build a log-overview file"
245
+ task :log_overview_file
239
246
 
247
+ =begin
248
+ Archive all log-files to zip-file
249
+ =end
250
+ desc "Archive all log-files to zip-file"
251
+ task :log_archive do
252
+ require 'zip/zipfilesystem'
253
+ Zip::ZipFile.open("rake4latex_log_archive.zip", Zip::ZipFile::CREATE ){|zip|
254
+ puts "Pack #{zip.name}"
255
+ #Store all Files to be deleted
256
+ CLEAN.each{|filename|
257
+ zip.file.open(File.basename(filename), 'w'){|f| f << File.open(filename,"rb") {|io| io.read} }
258
+ }
259
+ Rake4LaTeX::Basefile.each{|basefile|
260
+ stat = Rake4LaTeX::TeX_Statistic.new(basefile.basename)
261
+ zip.file.open("#{basefile.basename}.overview.txt", 'w'){|f|
262
+ f << stat.overview()
263
+ }
264
+ }
265
+ } #close zip-file
266
+ end