class Rake4LaTeX::Basefile
Define a basename.
Set the file for clean/clobber, offers the possibility to set defaults, define a logger.
end¶ ↑
Attributes
basename[R]
Basename of the Basefile
.
logger[R]
Get the logger
settings4LaTeXRunner[R]
Settings for the LaTeXRunner
. May be changed with Rake4LaTeX::Basefile#[]=
Public Class Methods
[](key)
click to toggle source
each() { |basefile| ... }
click to toggle source
set( basename, options = {} )
click to toggle source
Private Class Methods
new( basename, options = {} )
click to toggle source
Create a new basefile object.
This is a private method. To create new objects, use Rake4LaTeX::Basefile.set
end¶ ↑
# File lib/rake4latex/base.rb, line 217 def initialize( basename, options = {} ) @basename = basename.ext('') @settings4LaTeXRunner = DEFAULT_SETTINGS.dup @logger = Log4r::Logger.new(@basename) @logger.level = @settings4LaTeXRunner[:loglevel] options.each{|key, value| self[key] = value } @logger.outputters = Log4r::StdoutOutputter.new('log_stdout') #~ @logger.info("Define base file #{@basename}") set4clean() define_tasks() end
Public Instance Methods
[]=( key, option )
click to toggle source
Sets a default option for the LaTeXRunner
.
The options are stored and used for new LaTeXRunners.
Examples:
basefile = Rake4LaTeX::Basefile.set('filename') basefile[:maxruns] = 1 basefile[:loglevel] = Log4r::DEBUG basefile[:program] = :xelatex basefile[:texerrors_allowed] = true
end¶ ↑
# File lib/rake4latex/base.rb, line 332 def []=( key, option ) if ! settings4LaTeXRunner.keys.include?(key) raise ArgumentError, "Undefined key #{key.inspect} for LaTeXRunner" unless @latexrunner @ogger.warn("Undefined key #{key.inspect} for LaTeXRunner") if @ogger.warn? end settings4LaTeXRunner[key] = option case key when :program if LaTeXRunner::PROGRAMS.keys.include?( option.to_sym ) settings4LaTeXRunner[key] = option.to_sym else @ogger.warn("Undefined programm #{option.inspect} for LaTeXRunner") if @logger.warn? end end end
define_tasks()
click to toggle source
Defines document specific tasks (statistic, set clean and clobber)
end¶ ↑
# File lib/rake4latex/base.rb, line 245 def define_tasks() namespace @basename do desc "Create the statistic for #{@basename}" if Rake4LaTeX::TASK_DESCRIPTION task :statistic do stat = Rake4LaTeX::TeX_Statistic.new(@basename) puts "Statistic for #{@basename}:" puts stat.stat_summary.map{|e| " #{e}"} end desc "Build a log-overview for #{@basename}" if Rake4LaTeX::TASK_DESCRIPTION task :log_overview do stat = Rake4LaTeX::TeX_Statistic.new(@basename) puts stat.overview() end desc "Build a log-overview file for #{@basename}" if Rake4LaTeX::TASK_DESCRIPTION task :log_overview_file do stat = Rake4LaTeX::TeX_Statistic.new(@basename) #Filename also used in set4clean File.open("#{@basename}.overview.txt", 'w'){|f| puts "Create #{f.path}" f << stat.overview() } end end #namespace #Define the 'global' tasks. task :statistic => "#{@basename}:statistic" task :log_overview => "#{@basename}:log_overview" task :log_overview_file => "#{@basename}:log_overview_file" end
inspect()
click to toggle source
# File lib/rake4latex/base.rb, line 349 def inspect() "#<Rake4LaTeX::Basefile #{@basename}>" end
set4clean()
click to toggle source
Define the files to be deleted with clean and clobber.
There is no global definition to delete all files, only the help file for the selected basename is taken.
This method is called by task ‘basename’ (Basefile#initialize)
end¶ ↑
# File lib/rake4latex/base.rb, line 288 def set4clean() cleanlist = FileList.new("#{@basename}.{aux,log,out,toc,lot,lof,nav,snm}") cleanlist.add("#{@basename}.{ilg,idx,ind}") #Index cleanlist.add("#{@basename}-*.{ilg,idx,ind}") #splitindex.sty cleanlist.add("#{@basename}.{blg,bbl}") #BibTeX cleanlist.add("#{@basename}.{bcf}") #BibLaTeX cleanlist.add("#{@basename}-blx.{bib}") #auxiliary file used by the 'biblatex' package cleanlist.add("#{@basename}.*.{blg,bbl,aux}") #gloss.sty cleanlist.add("#{@basename}.{maf,ptc*,mtc*,stc*}") #minitoc.sty (stc1, stc2...) cleanlist.add("#{@basename}.{glo,gls}") #glossary.sty #~ cleanlist.add("#{@basename}.{rai,rao,RAO}") #rail/rail.sty cleanlist.add("#{@basename}.{rai,rao}") #rail/rail.sty cleanlist.add("#{@basename}.{tdo}") #tdo: todonotes.sty cleanlist.add("#{@basename}.{vrb}") #vrb: beamer.sty (verbatim) cleanlist.add("#{@basename}.{lox}") #lox: fixme.sty cleanlist.add("#{@basename}.{run.xml}") #run.xml: TeXworks (editor) cleanlist.add("#{@basename}.{upa,upb}") #pdfcomment.sty clobberlist = FileList.new("#{@basename}.{dvi,pdf,ps}") #The * is needed.else the filename is added always. With '*' it is checked for existence clobberlist.add("#{@basename}.overview*.txt") #rake4latex, task :log_overview CLEAN.include(cleanlist) CLOBBER.include(clobberlist) CLEAN.uniq! CLOBBER.uniq! end