変数$?とtexpdf.rb
texpdf.rbは、pLaTeX→PDF変換をするバッチファイル的なスクリプトをRubyで書いたものです。
目次生成のためにplatexを二回走らせるのですが、何らかのエラーが起こってplatexのXコマンドで終了したときにはtexpdf.rbを中断するように修正しました。
ri systemで調べ、変数$?を利用することにしました。
課題:FileUtilsではなくPathnameを使ってシンプルに書き直す。
require "fileutils" if ARGV.length == 0 puts "Usage: texpdf.rb filename[.tex]" exit end from = ARGV[0].gsub(/\.tex$/, "") tmp = ENV["TMP"] # '\\tmp' time = Time.now.to_i to = "#{from}_#{time}" to_tex = "#{to}.tex" to_dvi = "#{to}.dvi" to_pdf = "#{to}.pdf" FileUtils.cp("#{from}.tex", "#{tmp}\\#{to_tex}") Dir.chdir(tmp) system("platex #{to_tex}") if $? != 0 exit end system("platex #{to_tex}") if $? != 0 exit end unless File.exist?(to_dvi) puts "#{to_dvi} is not found." exit end system("dvipdfm #{to_dvi}") unless File.exist?(to_pdf) puts "#{to_pdf} is not found." exit end system("start #{to_pdf}")