[OS X TeX] Applescript sync for BBEdit-->TeXniscope
Claus Gerhardt
gerhardt at math.uni-heidelberg.de
Sat Nov 27 05:12:41 EST 2004
The sync comes frommy script
>> set sourceLine to startLine of selection as number
>> set current clipboard to "\\marginpar{sync}" as string
>> paste
Then a pdflatex run is initiated, the pdf file is opened in TeXniscope
at the corresonding line or very close to the the line, and "sync" (a
later version uses "\\marginpar{\\textcolor{red}{sync}}" which I
prefer) is written to the marigin in the pdf file, and the
corresponding command in the source file is removed.
Claus
On 27.11.2004, at 09:04, Jérôme Laurens wrote:
>
> Le 26 nov. 04, à 18:39, Claus Gerhardt a écrit :
>
>> 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/
>
> Sorry, I am afraid I don't understand
> The "sync" written feature comes from your script, BBEdit or
> TeXnicenter?
> Does it appear in the BBEdit source window or in the pdf TeXnicenter
> window?
>
>>
>> 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