[TxMt] How to add Unix commands to "Typeset & View (PDF)"?

Marius Hofert m_hofert at web.de
Sat Dec 26 13:07:53 UTC 2009

Dear TextMate users,

I would like to customize the way in which "Typeset & View (PDF)" works. Under Bundles => Bundle Editor => Edit Commands, I added the line "rm -rf *.toc" to the "Typeset & View (PDF)"-code. However, this did not work. I realized that this is a ruby script (although I have never worked with ruby) and changed my code to "puts `rm -rf *.toc`". Now the .tex document is compiled, but the command does not seem to be executed. How can I add unix shell commands to "Typeset & View (PDF)" to be executed on command+R? 

Many thanks,


Here is the content of "Typeset & View (PDF)":

#!/usr/bin/env ruby
# coding: utf-8

require ENV["TM_SUPPORT_PATH"] + "/lib/tm/process"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/htmloutput"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/require_cmd"

# To enable the typesetting of unsaved documents, you must change the “Save” setting of
# this command to “Current File” and add the variable TM_LATEX_AUTOSAVE to TextMate's
# Shell Variables preferences. Be warned that your document must be encoded as UTF-8 if
# you excercise this option — becauseTextMate.save_current_document cannot know the file
# encoding you prefer.

TextMate.save_current_document unless ENV["TM_LATEX_AUTOSAVE"].nil?


texMate = ENV["TM_BUNDLE_SUPPORT"] + "/bin/texMate.py"
engine_version = TextMate::Process.run(texMate, "version")
TextMate::HTMLOutput.show(:title => "Typesetting “#{ENV["TM_DISPLAYNAME"] || File.basename(ENV["TM_FILEPATH"])}”…", :sub_title => engine_version) do |io|
  TextMate::Process.run(texMate, 'latex', '1', :interactive_input => false) do |line|
	io << line

More information about the textmate mailing list