[OS X TeX] Applescript sync for BBEdit-->TeXniscope

Richard Seguin riseguin at earthlink.net
Sat Nov 27 03:59:40 CET 2004


When I run this script from BBEdit, I get the error "Can't make 
<<script Applescript>> into a number".

Also, when I run pdflatex_special, I get this error message: 'Can't 
make <<class psxf>> 
"Users/richardseguin/Library/TeXShop/Scripts/setnamebbedit.scpt" of 
application "BBEdit" into a alias.'

These scripts are currently located in the BBEdit scripts folder. Is 
this right? What am I doing wrong?

Richard Séguin



On Nov 26, 2004, at 11:39 AM, Claus Gerhardt wrote:

> Below is an Applescript which synchronizes BBEdit-->TeXniscope, if the 
> package pdfsync is used.
>
> As a special feature the line where the cursor was in BBEdit will be 
> indicated in the pdf file by having the word "sync" written in the 
> margin to help navigating. Please note that the line in the source 
> file may not be part of a display equation, i.e., it should be a 
> normal text line.
>
> I would like to hear some comments about the feature. The Applescript 
> includes a standard pdflatex typesetting.
>
> Notice also that the script needs the new subroutine preview_bbedit, 
> that can be downloaded from
> http://www.math.uni-heidelberg.de/studinfo/gerhardt/tex/
>
> Claus
>
> -- Applescript
> -- The file has to be a TeXShop file, but can be opened, saved and 
> edited in BBEdit.
> -- sync
> -- Claus Gerhardt, Nov. 2004
>
> (* The subroutine setnamebbedit returns baseName, texName, pdfName, 
> namePath, dirName, dirNameunquoted, and saves the document of window 
> texName.
> *)
> --set previewer to "TeXShop"
> set previewer to "TeXniscope"
> --set previewer to "Acrobat  6.0.1 Professional"
> --set previewer to "Preview"
>
> if previewer is equal to "Acrobat  6.0.1 Professional" then
> 	set process_name to "acrobat"
> else
> 	set process_name to previewer
> end if
>
> tell application "BBEdit"
> 	get file of window 1
> 	set filepath to result
> 	set fileName to POSIX path of filepath as string
> 	
> 	
> 	
> 	set scriptPath to (do shell script "dirname " & 
> "~/Library/TeXShop/Scripts/ex")
> 	set scriptPath to scriptPath & "/setnamebbedit.scpt"
> 	set scriptName to POSIX file scriptPath as alias
> 	set scriptLiB to (load script scriptName)
> 	tell scriptLiB
> 		set {baseName, texName, pdfName, namePath, dirName, dirNameunquoted, 
> logName, logPath, rtfName} to setnamebbedit(fileName)
> 	end tell
> 	select document texName
> 	set sourceLine to startLine of selection as number
> 	set current clipboard to "\\marginpar{sync}" as string
> 	paste
> 	save document texName
> 	set texPath to namePath & ".tex"
> 	set texFile to texPath as POSIX file
> 	set thePDF to pdfName as POSIX file
> 	try
> 		set shellScript to "cd " & dirName & ";"
> 		set shellScript to shellScript & "~/Library/TeXShop/bin/pdflatexc  " 
> & texName
> 		do shell script shellScript
> 	end try
> 	
> 	set logFile to logPath as POSIX file
> 	
> 	set findString to "Emergency stop"
> 	
> 	set findString to "'Emergency stop'"
> 	set foundText to "no error"
> 	try
> 		set shellScript to "cd " & dirName & ";"
> 		set shellScript to "/usr/bin/egrep -w -n  " & findString & " " & 
> logPath
> 		do shell script shellScript
> 		
> 		set foundText to result as string
> 		set n to (number of characters of contents of foundText)
> 		set i to 1 as number
> 		
> 		repeat while i < (n + 1)
> 			if character i of foundText is equal to ":" then
> 				set k to i
> 				exit repeat
> 			else
> 				set i to (i + 1)
> 			end if
> 		end repeat
> 		set lineNumber to (characters 1 thru (k - 1) of foundText as string)
> 		set theLine to lineNumber as number
> 	end try
> 	
> 	if foundText is equal to "no error" then
> 		set thePDF to POSIX file pdfName as alias
> 		set scriptPath to (do shell script "dirname " & 
> "~/Library/TeXShop/Scripts/ex")
> 		set scriptPath to scriptPath & "/preview_bbedit.scpt"
> 		set scriptName to POSIX file scriptPath as alias
> 		set scriptLiB to (load script scriptName)
> 		tell scriptLiB
> 			preview_bbedit(texName, thePDF, previewer, process_name)
> 		end tell
> 		tell application "TeXniscope"
> 			refresh of the front document
> 			the front document goto line sourceLine of source texPath
> 		end tell
> 	else
> 		beep
> 		do shell script "bbedit " & "+" & theLine & " " & logPath
> 	end if
> end tell
> tell application "BBEdit"
> 	find "\\marginpar{sync}" searching in text 1 of text window 1 options 
> {search mode:literal, starting at top:true, wrap around:false, 
> backwards:false, case sensitive:false, match words:false, extend 
> selection:false} with selecting match
> 	set selection of window 1 to ""
> save document texName
> end tell
>
>
> --------------------- 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 Post: <mailto:MacOSX-TeX at email.esm.psu.edu>
>
>

--------------------- 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 Post: <mailto:MacOSX-TeX at email.esm.psu.edu>





More information about the macostex-archives mailing list