Module: Rabbit::Parser::Ext::TeX
- Includes:
- GetText
- Defined in:
- lib/rabbit/parser/ext/tex.rb
Constant Summary
Constants included from GetText
Class Method Summary collapse
- .make_image_by_LaTeX(path, prop, logger) ⇒ Object
- .make_image_by_mimeTeX(path, prop, logger) ⇒ Object
- .make_latex_source(src, prop) ⇒ Object
Methods included from GetText
Class Method Details
.make_image_by_LaTeX(path, prop, logger) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rabbit/parser/ext/tex.rb', line 8 def make_image_by_LaTeX(path, prop, logger) image_file = Tempfile.new("rabbit-image") latex_file = Tempfile.new("rabbit-image-latex") dir = File.dirname(latex_file.path) base = latex_file.path.sub(/\.[^.]+$/, '') dvi_path = "#{base}.dvi" eps_path = "#{base}.eps" log_path = "#{base}.log" aux_path = "#{base}.aux" File.open(path) do |f| src = [] f.each_line do |line| src << line.chomp end latex_file.open latex_file.puts(make_latex_source(src.join("\n"), prop)) latex_file.close begin latex_command = ["latex", "-halt-on-error", "-output-directory=#{dir}", latex_file.path] dvips_command = ["dvips", "-q", "-E", dvi_path, "-o", eps_path] unless SystemRunner.run(*latex_command) raise TeXCanNotHandleError.new(latex_command.join(" ")) end unless SystemRunner.run(*dvips_command) raise TeXCanNotHandleError.new(dvips_command.join(" ")) end FileUtils.mv(eps_path, image_file.path) image_file ensure FileUtils.rm_f(dvi_path) FileUtils.rm_f(eps_path) FileUtils.rm_f(log_path) FileUtils.rm_f(aux_path) end end end |
.make_image_by_mimeTeX(path, prop, logger) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/rabbit/parser/ext/tex.rb', line 46 def make_image_by_mimeTeX(path, prop, logger) image_file = Tempfile.new("rabbit-image-mimetex") args = ["-e", image_file.path, "-f", path] commands = ["mimetex", "mimetex.cgi"] if commands.any? {|command| SystemRunner.run(command, *args)} image_file else format = _("tried mimeTeX commands: %s") additional_info = format % commands.inspect raise TeXCanNotHandleError.new("mimetex #{args.join(' ')}", additional_info) end end |
.make_latex_source(src, prop) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/rabbit/parser/ext/tex.rb', line 60 def make_latex_source(src, prop) latex = "\\documentclass[fleqn]{article}\n" latex << "\\usepackage[latin1]{inputenc}\n" (prop["style"] || "").split.each do |style| latex << "\\usepackage[#{style}]\n" end latex << <<-PREAMBLE \\begin{document} \\thispagestyle{empty} \\mathindent0cm \\parindent0cm PREAMBLE latex << src latex << "\n\\end{document}\n" latex end |