class Nanoc::Latexmk::Filters::LatexmkFilter
Constants
- DEFAULT_PARAMS
- ENGINES
- LATEX_PARAMS
- TMPFILE_NAME
Public Instance Methods
run(content, params = {})
click to toggle source
# File lib/nanoc/latexmk/filters/latexmk.rb, line 27 def run(content, params = {}) params = DEFAULT_PARAMS.merge(params) raise 'Unknown Engine' unless ENGINES.key? params[:engine].to_sym latex_params = [] latex_params += params[:command_params] latex_params << if params[:shell_escape] '-shell-escape' else '-no-shell-escape' end Dir.mktmpdir do |dir| File.open(File.join(dir, TMPFILE_NAME), 'w') do |f| f.write(content) f.flush latexmk_command = ['latexmk', ENGINES[params[:engine].to_sym]] \ + latex_params.map { |p| '-latexoption=' + p } \ + ["-output-directory=#{dir}", f.path ] puts "Running latexmk command: #{latexmk_command}" raise 'Build Error' unless system(*latexmk_command) system('mv', f.path.sub('.tex', '.pdf'), output_filename) end end end