Making a texindy
Engine
Here's what your texindy.engine
should look like.
#! /bin/bashPATH=/Library/TeX/texbin:/usr/local/bin:${PATH}bfname=${1%\.*}texindy -g "$bfname".idx
Make sure you set the executable bit on the file. In the Terminal type:
chmod +x ~/Library/TeXShop/Engines/texindy.engine
Making a texindy
rule for arara
An alternative way to do this (although the two approaches are not incompatible) is to make an arara
rule to run texindy
. We can do this modelled after the makeindex
rule given in the arara
manual.
First, move the arara.engine
from the Inactive
folder to the Engines
folder in ~/Library/TeXShop
if you haven't already.
Then, you need to make a local configuration file for arara
to tell it where to find your custom rules. This should be saved as ~/araraconfig.yaml
(i.e., in your home folder.)
Make a directory for your local rules somewhere in your home folder. For example if you make a folder arara
in your home folder you would put the following, but the folder can be anywhere (for example, mine is in my Dropbox folder so that all my Macs can find it.) You just need to specify the place in this file.
!configpaths:- /Users/andy/arara
Now in the arara
folder you've created, we can add the following rule called texindy.yaml
!configidentifier: texindyname: texindycommand: texindy @{style} "@{ getBasename(file) }.idx"arguments:- identifier: germanflag: <arara> @{ isTrue( parameters.german, "-g" ) }
This is an arara
rule that will allow you to call texindy
with arara
. I've set up the rule to be able to pass the -g
option; if you need other options you will need to add them similarly to the rule.
Now in your source document you can put the following, which should do all the necessary runs for you automatically. (You may need to adjust the order.)
%!TEX TS-program = arara% arara: pdflatex % arara: bibtex% arara: pdflatex% arara: texindy: { style: german }% arara: pdflatex\documentclass{book}...\begin{document}...\end{document}