Skip to content

Instantly share code, notes, and snippets.

@pokutuna
Created September 28, 2011 09:10
Show Gist options
  • Save pokutuna/1247428 to your computer and use it in GitHub Desktop.
Save pokutuna/1247428 to your computer and use it in GitHub Desktop.
target: sample # 対象のtexファイルの名前
bb_cmd: ebb # .bbファイルを生成するコマンド
tex_cmd: platex # .texをコンパイルするコマンド
dvi_cmd: dvipdfmx # .dviをコンパイルするコマンド
open_cmd: open # できたpdfを開くコマンド
require 'rake/clean'
require 'yaml'
config = YAML.load_file(File.dirname(__FILE__) + '/config.yaml')
img_require_bb = FileList['img/*.png', 'img/*.jpg', 'img/*.pdf']
CLEAN.include(FileList['*.log', '*.aux', '*.dvi', '*.toc', '*.ps'])
CLOBBER.include(FileList['*.pdf', '**/*.bb', '**/*.xbb'])
task :default => :open
desc "generate BoundingBox(.bb or .xbb) files inside 'img' directory'"
file :bb => img_require_bb.ext('bb')
desc "compile .tex"
file :tex => "#{config['target']}.dvi"
file "#{config['target']}.pdf" => "#{config['target']}.dvi" do |t|
sh "#{config['dvi_cmd']} #{t.prerequisites.first}"
end
desc "make pdf file from .dvi"
file :dvi => "#{config['target']}.pdf"
file "#{config['target']}.dvi" => ["#{config['target']}.tex", :bb] do |t|
sh "#{config['tex_cmd']} #{t.prerequisites.first}"
end
desc "open pdf"
task :open => "#{config['target']}.pdf" do |t|
sh "#{config['open_cmd']} #{t.prerequisites.first}"
end
# rules
rule '.bb' => '.png' do |t|
sh "#{config['bb_cmd']} #{t.source}"
end
rule '.bb' => '.jpg' do |t|
sh "#{config['bb_cmd']} #{t.source}"
end
rule '.bb' => '.pdf' do |t|
sh "#{config['bb_cmd']} #{t.source}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment