[Tex/LaTex] Makeindex fails when called from a script

glossariesxetex

I've written a (python) script to automate my XeLaTeX run. What it does:

  • creates a temp dir
  • copies necessary tex, bib and image files into it from the cwd
  • runs xelatex on the tex file
  • runs biber on the file basename
  • runs makeglossaries on the file basename
  • runs xelatex x 2 on the tex file
  • copies the resulting PDF back to current working dir

So far, so straightforward; I'm just emulating what I would do manually. However, my makeglossaries call fails with the following error:

makeglossaries version 2.02 (2011-04-02)
added glossary type 'main' (glg,gls,glo)
makeindex  -s "test-mmd3.ist" -t "/var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.glg" -o "/var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.gls" "/var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.glo"
Index style file test-mmd3.ist not found.
Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]

***Call to makeindex failed***

Possible cause of problem:

Style name indicates makeindex, but may be in xindy format.
Remember to use \setStyleFile to specify the name
of the style file rather than redefining \istfilename
explicitly.

Check '/var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.glg' for details

I've checked that all the necessary files are being produced (in particular, the .ist file), openout_any is set to a, and the run completes fine when I do it manually using the same steps. I'm wondering if the error has anything to do with the the -s test-mmd3.ist option in makeindex; should it be using the full path, i.e. /var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.ist?

Best Answer

(Originally posted as a comment by Ulrike Fischer)

I doubt that you are in the temp directory when calling makeglossaries. A simple makeglossaries file doesn't show absolute paths. Also I get exactly the same error/messages as you when I start makeglossaries from another directory with an absolute path as argument. I also get errors when I call makeglossaries from the document folder but still with an absolute path as argument but then the error message is slightly different.

Related Question