[OS X TeX] latexdb & texshop
Claus Gerhardt
gerhardt at math.uni-heidelberg.de
Thu Oct 13 12:02:31 CEST 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 macostex-archives
mailing list