[OS X TeX] How specify .ist for index?

Herbert Schulz herbs at wideopenwest.com
Sun Sep 23 17:23:07 EDT 2012


On Sep 23, 2012, at 4:16 PM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:

> 
> On Sep 23, 2012, at 14:34:08 -0500, Herbert Schulz <herbs at wideopenwest.com> wrote:
> 
>> On Sep 22, 2012, at 2:19 PM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:
>> 
>>> 
>>> On Sep 22, 2012, at 15:11:45 -0500, Herbert Schulz <herbs at wideopenwest.com> wrote:
>>>> 
>>>> On Sep 21, 2012, at 2:51 PM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:
>>>> 
>>>>> On Sep 21, 2012, at 15:44:48 -0500, Herbert Schulz <herbs at wideopenwest.com> wrote:
>>>>> 
>>>>>> 
>>>>>> On Sep 20, 2012, at 3:36 PM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:
>>>>>> 
>>>>>>> 
>>>>>>> On Sep 20, 2012, at 10:17:31 -0500, Herbert Schulz <herbs at wideopenwest.com> wrote:
>>>>>>> 
>>>>>>>> On Sep 20, 2012, at 10:07 AM, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sep 19, 2012, at 10:48:48 +0200, Claus Gerhardt <claus.gerhardt at uni-heidelberg.de> wrote:
>>>>>>>>> 
>>>>>>>>>> You have to use a shell script specifying that .ist file, see the [linked attachment] where I use a german.ist file. The .ist file should be saved in texmf/makeindex where texmf is your personal texmf folder.
>>>>>>>>>> 
>>>>>>>>>> The shell script can be called by an Applescript.
>>>>>>>>>> 
>>>>>>>>>> Claus….
>>>>>>>>>> 
>>>>>>>>>> Url : http://email.esm.psu.edu/pipermail/macosx-tex/attachments/20120919/f6ec0d64/makeindexc-0001.zip
>>>>>>>>>> 
>>>>>>>>>> On Sep 19, 2012, at 3:11, Murray Eisenberg <murrayeisenberg at gmail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>>> How does one go about specifying a .ist file to be used when makeindex is run automatically from within TeXShop?
>>>>>>>>>>> 
>>>>>>>>>>> (In my .ist file I use the usual settings so that each letter of the alphabet is typeset large and bold just before all the index entries that start with that letter.)
>>>>>>>>> 
>>>>>>>>> Is there some way to integrate this into TeXShop? So that either using the MakeIndex choice for Typeset -- or even, preferably, being able to do it all with the the pdflatexmk choice -- can be directed to use a particular .ist?
>>>>>>>>> 
>>>>>>>>> After having such a lovely front end to TeX as TeXShop, it seems a great shame to have to go to a command line to call a script.
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> If you want to integrate it into the pdflatexmk engine (actually this will do it for all of the latexmk based engines --- if that's no good let me know) just add the line
>>>>>>>> 
>>>>>>>> $makeindex = "makeindex  -s my.ist %O -o %D %S";
>>>>>>>> 
>>>>>>>> (on a separate line) where my.ist is the index style file you want to use to ~/Library/TeXShop/bin/latexmkrcedit. Note: from then on the my.ist file will always be used. Note that the my.ist file needs to be where TeX can find it; e.g., ~/Library/texmf/makeindex for personal .ist files---create that folder if necessary.
>>>>>>> 
>>>>>>> That works very nicely, thank you! (Although not as easily as would be the case if one could just use the TeXShop preferences to specify the file. Yes, that's a feature request!)
>>>>>>> 
>>>>>>> I note that this still works if I use a symlink in  ~/Library/texmf/makeindex to the actual .ist file. So then when I want to change the index style file, I don't have to copy a new file to that location, just re-create the symlink to the new one.
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> If you wish to you can actually create an engine file, pdflatexistmk (?), that will set that ist for makeindex and then use that engine when you wish.
>>>>> 
>>>>> Is creating a separate pdflatexistmk (say) better for some reason than just editing latexmkrcedit if I'm going to be changing from one .ist to another for different jobs?
>>>>> 
>>>> 
>>>> Howdy,
>>>> 
>>>> Editing the latexmkrcedit file changes the behavior of all of the latexmk based engines while creating the pdflatexistmk.engine (answering your question below) localizes the change to that engine alone.
>>>> 
>>>>> If I do create such an engine, do I correctly understand that you're referring to something named, say, pdflatexistmk.engine that goes into ~/Library/TeXShop/Engines? And that it would be similar, say, to pdflatexmk.engine but _somehow_ add the needed information about the .ist for makeindex? 
>>>>> 
>>>> 
>>>> Yes. What you would do is duplicate the pdflatexmk.engine file, rename it pdflatexistmk.engine and edit it. Change the line
>>>> 
>>>> "${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -r "${TSBIN}/pdflatexmkrc" "$1"
>>>> 
>>>> (that's all one line even if it looks wrapped on your screen) to
>>>> 
>>>> "${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -r "${TSBIN}/pdflatexmkrc" -e '$makeindex = q/makeindex -s my.ist %O -o %D %S/' "$1"
>>>> 
>>>> (again all on one line).
>>>> 
>>>>> The crux of pdflatexmk.engine seems to be that it calls ~/Library/TeXShop/bin/tslatexmk/latexmk with some options, one of which refers to latexmkrcedit. So are you suggesting that I create a new option for latexmk, which would involve modifying latexmk, or is there a way within the proposed pdflatexistmk.engine to pass an additional option to latexmk? 
>>>>> 
>>>>> (I see several options of the form "-r …" in the call to latexmk from within pdflatexistmk.engine, but I don't see how they get used in latexmk. Is this some universally understood bash or perl parameter?)
>>>> 
>>>> 
>>>> Not exactly a new -r option, which tells latexmk to read a specific initialization file which contain perl code, but the -e option, which actually contains perl code.
>>> 
>>> I tried what you suggested: duplicating pdflatexmk.engine, renaming the duplicate to pdflatexistmk.engine, and editing its last line so that it now reads:
>>> 
>>> "${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -r "${TSBIN}/pdflatexmkrc" -e '$makeindex = q/makeindex -s BOOKLB.IST %O -o %D %S/' "$1"
>>> 
>>> And I commented out the change I had previously made to ~/Library/TeXShop/bin/latexmkrcedit (to include a $makeindex = …" line.
>>> 
>>> But now typesetting my document using pdflatexistmk as choice does NOT apply the formatting prescribed by that specified .ist. And it makes no difference whether that .ist is in ~/Library/texmf/makeindex or the document's source directory.
>>> 
>>> Note that the method of editing latexmkrcedit did work (with pdflatexmk.engine).
>>> 
>>> Did I misunderstand something here?
>>> 
>> 
>> Howdy,
>> 
>> What is displayed on the Console when you run that command?
>> 
>> Could you try to add a ; just after the %S/ and before the final '? I'm not sure if that will do anything.
> 
> The original edit you proposed in order to create pdflatexistmk.engine, as well as the change to include the semicolon you just suggested…
> 
>  - both work on a minimal working example; BUT
>  - do NOT work on my actual document, which is a book-length document.
> 
> For the former, I see in the console the expected:
> 
>  Run number 1 of rule 'makeindex indexletters.idx'
>  ------------
>  Running 'makeindex -s BOOKLB.IST  -o "indexletters.ind" "indexletters.idx"'
> 
> For the latter, however, the console omits any "-s" option!
> 
> That's weird.
> 
> And as I already said, if I use the usual pdflatexmk.engine and instead do the edit to latexmkrcedit, both the MWE and the actual book document see the "-s" option and use it. 


Howdy,

You say it works for one case but not the other? Did the one where it works use makeindex? If not it certainly isn't a correct minimal case.

Could you send me a minimal example that doesn't work, ist file and engine file?

Good Luck,

Herb Schulz
(herbs at wideopenwest dot com)






More information about the MacOSX-TeX mailing list