bascht.com

Rake Zum LaTeX Kompilieren

| Comments

Wer ein bisschen mit LaTeX zu tun hat, wird sicher sein Trio aus Tex, Makeindex und co. kennen. Die meisten IDE’s sind zwar schon flexibel und haben Build-Tools, aber ihr wisst ja: ‘Because I Can’. Flo hat mich daher letztens noch auf ein sehr cooles Tool getippt: rake. Einfach einen Rakefile in eurem Projekt anlegen und los gehts: PROJECT_NAME = "thesis" namespace :dir do namespace :pyg do desc "Pygmentizes all files in the directory to latex" task :latex do Dir.glob('*.{rb,php,html}').each do |filename| puts "pygmentizing #{filename}" `pygmentize -f latex #{filename} > #{File.basename(filename, '.php') + '.tex'}` end end end namespace :dot do desc "Render all dot files to png files" task :png do Dir.glob('**/*.{dot,circo}').each do |filename| puts "Rendering #{filename} with ext: #{File.extname(filename)}" `dot #{filename} -Tpng -o #{filename}.png` if File.extname(filename) == '.dot' `circo #{filename} -Tpng -o #{filename}.png` if File.extname(filename) == '.circo' `sam2p -j:quiet #{filename}.png EPS:#{filename}.eps` `rm #{filename}.png` end end end end namespace :latex do task :all => [:index, :bib, :compile] desc "Counts words of main document" task :count do puts "#{`detex #{PROJECT_NAME} | wc -w`.strip} words in thesis" if (file = ENV["file"]) puts "#{`detex #{file} | wc -w`.strip} words in #{file}" end end desc "Generates the Index" task :index do puts "Generating Index for #{PROJECT_NAME}." `makeindex #{PROJECT_NAME}.nlo -s nomencl.ist -o #{PROJECT_NAME}.nls` end desc "Generating BibTeX" task :bib do puts "Generating BibTeX for #{PROJECT_NAME}." `bibtex #{PROJECT_NAME}` end desc "Compile LaTeX" task :compile do puts "Compiling #{PROJECT_NAME}." `latex #{PROJECT_NAME}` end desc "Generate PDF File" task :pdf do puts "Generating PDF for #{PROJECT_NAME}." `dvipdf #{PROJECT_NAME}.dvi` end end desc “Grep out the TODO’s” task :todo do puts “n** Whats left to do for #{PROJECT_NAME} **n” puts `grep -n %TODO *.tex */*.tex` end desc “All (dot, tex, pdf)” task :default => [“dir:dot:png”, “latex:all”, “latex:pdf”, “todo”] Mit dem Rakefile in eurem Hauptarchiv habt ihr folgende Kommandos zur Verfügung: rake - baut alles (Bilder, LaTeX, Pdf, Todo) rake dir:dot:png - baut aus den .dot Dateien .eps Bilder rake dir:pyg:latex - Kompiliert die Quellcodebeispiele zu Latex-Dateien rake dir:bib - baut die Bibliografie neu rake dir:index - baut den Index neu rake dir:count - zählt Worte rake dir:pdf - Lässt ein PDF raus rake dir:bib - baut die Bibliografie neu rake todo - gibt alle übrigen TODO’s aus. Viel Spaß. Dank an Flo. Fragen an mich. (Oder in den Kommentaren an Skade.)

Comments