[OS X TeX] TeXShop wish list

Claus Gerhardt gerhardt at math.uni-heidelberg.de
Mon Sep 4 20:16:04 CEST 2006


Below is the Applescript in its final form that takes care of all  
possible settings  in the Finder as well as in the file properties  
(for hiding the suffix).

Claus

--AppleScript
-- Apply only to an already saved file
-- Claus Gerhardt, September 2006
(*This script closes the frontmost (tex) document in TeXShop and  
removes the corresponding auxilary files the suffixes of which are  
listed in the list L. Beware of the quotation marks. The list L may  
contain suffixes to which no corresponding files exist.*)

set L to {"aux", "flashmode"} as list

tell application "TeXShop"
	get path of document of window 1
	set fileName to result
end tell



set {baseName, texName, pdfName, namePath, dirName, dirNameunquoted,  
logName, logPath, rtfName} to setnamets(fileName)

set theFile to POSIX file fileName as string
(*
tell application "Finder"
	if the file theFile exists then
		set theAnswer to "yes"
	else
		set theAnswer to "no"
	end if
end tell

if theAnswer is equal to "yes" then
	set texName to baseName
else
	set texName to texName
end if
*)

tell application "Finder"
	get displayed name of the file theFile
end tell
set texName to result



tell application "TeXShop"
	save document texName
	close document texName
end tell

repeat with x in L
	try
		set shellScript to "cd " & dirName & ";"
		set shellScript to shellScript & "rm -f  " & baseName & "." & x
		do shell script shellScript
	end try
end repeat

on setnamets(x)
	set n to (number of characters of contents of x)
	set fileNamequoted to quoted form of x
	set windowName to do shell script "basename " & fileNamequoted
	set m to (number of characters of contents of windowName)
	set dirName to quoted form of (characters 1 thru (n - m - 1) of x as  
string)
	set dirNameunquoted to (characters 1 thru (n - m - 1) of x as string)
	set theText to contents of windowName as string
	
	set n to (number of characters of contents of theText)
	set i to n as number
	
	repeat while i > 0
		if character i of theText is equal to "." then
			set m to i
			exit repeat
		else
			set i to (i - 1)
		end if
	end repeat
	
	set baseName to (characters 1 thru (m - 1) of theText as string)
	set texName to baseName & ".tex"
	set namePath to dirNameunquoted & "/" & baseName as string
	set pdfName to namePath & ".pdf" as string
	set rtfName to namePath & ".rtf" as string
	set logPath to namePath & ".log" as string
	set logName to baseName & ".log" as string
	
	try
		tell application "TeXShop"
			save document texName
		end tell
	end try
	return {baseName, texName, pdfName, namePath, dirName,  
dirNameunquoted, logName, logPath, rtfName} as list
end setnamets
------------------------- Info --------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
          & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/




More information about the macostex-archives mailing list