#Anlegen des Parsers
opts = OptionParser.new()
opts.banner = "Usage: call_rake4latex.rb [options] filename" #Usage-zeile
opts.separator "Call LaTeX as often as needed."
opts.separator ""
opts.separator "Examples:"
opts.separator "call_rake4latex testdocument.pdf"
opts.separator " Create testdocument.pdf via pdflatex"
opts.separator " Starts only if testdocument.tex is newer then testdocument.pdf."
opts.separator ""
opts.separator "call_rake4latex -e testdocument"
opts.separator " Touch 'testdocument.tex' (set the modification date)"
opts.separator " Create testdocument.pdf via pdflatex"
opts.separator ""
opts.separator "Specific options:"
#
#List of task to be done after the TeX-call.
#
TASK_BEFORE_TeX = [] #only task where we need the filenem
TASK_AFTER_TeX = []
PARSE_MESSAGES = true
#
#fixme: format
=begin
Shortcuts
=end
opts.on('-e', "--enforce", "Enforce an initial TeX-run") { |v|
TASK_BEFORE_TeX << :enforce
}
opts.on('-f', "--format FORMAT", "Set the format for TeX-run (pdflatex, xelatex, lualatex)") { |v|
Rake4LaTeX::DEFAULT_SETTINGS[:program] = v.to_sym
}
#
#fixme:
#Warum gibt es immer einen TeX-Lauf mit dieser Option?
#
opts.on('--dep', "--dependecies", "Build dependecies (rakefile recommended)") { |v|
TASK_BEFORE_TeX << :dependecies
}
opts.on("-i", "--ignore", "--ignore-error", "Allow LaTeX errors") { |v|
puts "Allow LaTeX errors" if PARSE_MESSAGES
Rake4LaTeX::DEFAULT_SETTINGS[:texerrors_allowed] = true
}
opts.on("-s", "--statistic", "Show the statistic after TeX-run") { |v|
puts "Show the statistic after TeX-run" if PARSE_MESSAGES
TASK_BEFORE_TeX << :statistic #Set filename
TASK_AFTER_TeX << :statistic
}
opts.on("-o", "--overview", "Create a log-overview file") { |v|
puts "Create a log-overview file after TeX-run" if PARSE_MESSAGES
TASK_BEFORE_TeX << :statistic #Set filename
TASK_AFTER_TeX << :log_overview_file
}
opts.on("-c", "--clean", "Clean after TeX-run (delete auxiliary files)") { |v|
puts "Clean after TeX-run" if PARSE_MESSAGES
TASK_AFTER_TeX << :clean
}
=begin
Main options
=end
# Soll der Parameter Optional sein, kann [] verwendet werden.
opts.on("--touch FILE", "Touch FILE") { |v|
puts "Touch #{v.inspect}" if PARSE_MESSAGES
task :touch => v
task :default => :touch
}
#
opts.on("--task TASK", "Define a rake-task") { |v|
puts "Set task #{v.inspect}" if PARSE_MESSAGES
task :default => v
}
#
opts.on("--task_after TASK", "Define a rake-task after the TeX-run") { |v|
puts "Set task #{v.inspect} after LaTeX" if PARSE_MESSAGES
TASK_AFTER_TeX << v
}