[OS X TeX] Applescript sync for BBEdit-->TeXniscope
Richard Seguin
riseguin at earthlink.net
Fri Nov 26 21:59:40 EST 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 MacOSX-TeX
mailing list