[OS X TeX] AppleScript for the use of nomenclature in TeXShop
Thomas Schröder
hydrochlorix at gmx.net
Wed Mar 31 10:05:00 EST 2004
Hi everybody,
I wipped up a small TeXShop AppleScript for the use of the very nice
nomenclature package that was mentioned here a couple of times. In case
one of you missed it, the nomenclature package enables you to easily
set up a nomenclature for all of your symbols and/or a list of
abbreviations. It does so by creating a *.glo file which has to be run
with makeindex. The thing is that you can't (well, I couldn't anyway)
use the makeindex menu option from within TeXShop because that menu
option expects a *.idx file instead of a *.glo file and because you
must also load nomenclature's own makeindex style file to get
everything right. This is where my little AppleScript comes in. It is
heavily based on Claus Gerhardt's AppleScripts for TeXShop, so my
thanks go to you Claus (and Dick, of course)!
What it does is, it gets the name of the opened file, runs makeindex on
the *.glo file that was produced with nomenclature's help from a
previous latex run and produces a *.gls file that will be read by
nomenclature on subsequent latex runs. When it is finished it will open
makeindex's log file at your convenience.
So, without further ado, here's the script:
---------Begin Script
--Applescript
-- Apply only to an already saved file
-- Claus Gerhardt, Nov. 2003
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 gloName to baseName & ".glo"
set glsName to baseName & ".gls"
set shellScript to "cd " & dirName & ";"
-- the next part should be on one line, I think
set shellScript to shellScript &
"/usr/local/teTeX/bin/powerpc-apple-darwin-current/makeindex " &
gloName & " -o " & glsName & " -s
/usr/local/teTeX/share/texmf.tetex/makeindex/nomencl.ist"
-- end of one line
do shell script shellScript
set fileLog to fileName & ".ilg"
set theFile to alias (POSIX file fileLog)
set logName to baseName &".ilg"
tell application "TeXShop"
open theFile
end tell
---------End Script
Unfortunately, I had to use absolute paths for makeindex and
nomenclature's style file, but other than that it has been working
nicely over here. To use it, open TeXShop's macro editor, create a new
macro, give it a nice name and paste in the above macro (possibly from
a big window in Mail, so as not to mess up the line breaks, I guess).
I thought this might be useful for others, so here you go. Hints on how
to do this in a better way are much appreciated :-)
Ciao, Thomas
--
Thomas Schröder +++ hydrochlorix at gmx.net
-----------------------------------------------------
Please see <http://www.esm.psu.edu/mac-tex/> for list
guidelines, information, and LaTeX/TeX resources.
More information about the MacOSX-TeX
mailing list