[OS X TeX] Applescript sync for BBEdit-->TeXniscope
Claus Gerhardt
gerhardt at math.uni-heidelberg.de
Fri Nov 26 22:25:52 EST 2004
My TeX-Scripts-BBEdit have to be installed, including the new
subroutine preview_bbedit, which has to be downloaded separately from
http://www.math.uni-heidelberg.de/studinfo/gerhardt/tex/
from where one can also get the TeX-Scripts.
A completely updated version TEX-Scripts-BBEdit should be available in
the next days, though I would like to get some feed back if the new
features work well or not, before I do a thorough update.
Claus
On 27.11.2004, at 03:59, Richard Seguin wrote:
> 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>
>
>
--------------------- 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