从脚本调用时 Makeindex 失败

从脚本调用时 Makeindex 失败

我编写了一个 (python) 脚本来自动运行 XeLaTeX。它的作用是:

  • 创建临时目录
  • 从 cwd 复制必要的 tex、bib 和图像文件到其中
  • xelatex在 tex 文件上 运行
  • biber在文件基名上运行
  • makeglossaries在文件基名上运行
  • xelatex在 tex 文件上运行x 2
  • 将生成的 PDF 复制回当前工作目录

到目前为止,一切都很简单;我只是在模拟我手动执行的操作。但是,我的makeglossaries调用失败,并出现以下错误:

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

我已检查所有必要的文件是否都已生成(特别是文件.ist),openout_any设置为,当我使用相同步骤手动执行时,运行顺利完成。我想知道错误是否与中的选项a有关;是否应该使用完整路径,即?-s test-mmd3.istmakeindex/var/folders/In/Inv5nKauESSVg9ibb4l3c++++TI/-Tmp-/tmpG330ND/test-mmd3.ist

答案1

(最初由 Ulrike Fischer 发表为评论)

我怀疑您在调用 makeglossaries 时是否在临时目录中。简单的makeglossaries file不会显示绝对路径。此外,当我从另一个目录以绝对路径作为参数启动 makeglossaries 时,我收到与您完全相同的错误/消息。当我从文档文件夹调用 makeglossaries 时也会收到错误,但仍然以绝对路径作为参数,但错误消息略有不同。

答案2

对于不使用 Xindy 的词汇表,我们必须在 test.tex 所在的文件夹中使用 makeglossaries test.tex。Xindy
也有类似的路径问题,但我们必须将 tex 文件复制到 xindy 的 Temp 文件夹中,然后 xindy 才能工作。

我用

xindy --interactive -L....

找到xindy的临时文件夹,然后我将test.tex复制到其中,它看起来像:

/private/var/folders/9u/3d3edDd34trdetrgdDEffg/

然后我用

xelatex test.tex, makeglossaries test, xelatex test.tex

好了,它起作用了。

但是它太脏了,我不知道该如何解决它。

相关内容