[OS X TeX] latexdb & texshop

Claus Gerhardt gerhardt at math.uni-heidelberg.de
Thu Oct 13 06:02:31 EDT 2005


Ingo,

Try the following script and convince yourself that the required  
subscripts or subroutines are all available.

Claus

%%%%%%%% begin %%%%%%%
--Applescript

tell application "TeXShop"
         get path of document of window 1
         set fileName to result
     end tell
     set scriptPath to (do shell script "dirname " & "~/Library/ 
Flashmode/Subroutines/ex")
     set scriptPath to scriptPath & "/setnamets.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 setnamets(fileName)
     end tell



set shellScript to "cd " & dirName & ";"
set shellScript to shellScript & "~/Library/TeXShop/bin/latexdbi  " &  
texname
do shell script shellScript

set shellScript to "cd " & dirName & ";"
set shellScript to shellScript & "~/Library/TeXShop/bin/dvipdfc  " &  
basename
do shell script shellScript
(*
set pdfName to quotedform of pdfName

set thePDF to POSIX file pdfName as alias
*)
tell document texName of application "TeXShop"
             activate
             refreshpdf
         end tell


%%%%%%%%% end %%%%%%%%%%

-- Save the subroutine setnamets.scpt in ~/Library/TeXShop/Scripts

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


On Oct 13, 2005, at 2:30, Claus Gerhardt wrote:

> The command in the shell script should be
>
>
>> latexdb  "$1"
>>
>
>
> Claus
>
>
> On Oct 13, 2005, at 1:12, Ingo Reich wrote:
>
>
>> Hi,
>> I'd like to use latexdb from within texshop. (latexdb is a script  
>> based on python that enables one to connect to mySQL-databases  
>> from within a latex-file: http://privat.hgesser.com/software/ 
>> latexdb/). I tried to adapt one of Claus Gerhardts Scripts and  
>> came up with the one below. The applescript works properly the  
>> first time it is called, the second time ii is called however  
>> texshop complains that it can't locate the file example.tex  (in  
>> German: "Der Ort des Dokuments 'example.tex' konnte nicht  
>> festgestellt werden"), and it wants me to "save as ...". Any ideas  
>> what's going wrong here? Thanks,
>> Ingo
>>
>>
>>
>> %%%%%%%% begin %%%%%%%
>> --Applescript
>>
>> set scriptPath to (do shell script "dirname " & "~/Library/TeXShop/ 
>> Scripts/ex")
>> set scriptPath to scriptPath & "/setname.scpt"
>> set scriptName to POSIX file scriptPath as alias
>> set scriptLiB to (load script scriptName)
>> tell scriptLib
>> set frontName to setname(#NAMEPATH#,#TEXPATH#)
>> end tell
>>
>> set fileName to  #NAMEPATH#
>> set n to (number of characters of contents of fileName)
>> set fileNamequoted to quoted form of fileName
>> set baseName to do shell script "basename " & fileNamequoted
>> set m to (number of characters of contents of baseName)
>> set dirName to quoted form of (characters 1 thru (n - m - 1) of  
>> fileName as string)
>> set texName to baseName & ".tex"
>>
>> set shellScript to "cd " & dirName & ";"
>> set shellScript to shellScript & "~/Library/TeXShop/bin/latexdbi   
>> " & baseName
>> do shell script shellScript
>>
>> tell application "TeXShop"
>>   activate
>>   open POSIX file #DVIPATH#
>> end tell
>> %%%%%%%%% end %%%%%%%%%%
>>
>>
>> where "latexdbi" is the following binary script:
>>
>> %%%%%%%% begin %%%%%%%%%%
>> #!/bin/tcsh
>> # latexdbi
>>
>> set path= ($path  /usr/local/bin  /usr/local/teTeX/bin/powerpc- 
>> apple-darwin-current)
>>
>> latexdb  "$1.tex"
>>
>> %%%%%%%%% end %%%%%%%%%%
>>
>> ------------------------- 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/
>>
>>
>>
>
> ------------------------- 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/
>
>

------------------------- 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 MacOSX-TeX mailing list