我编写了一个 (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.ist
makeindex
/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
好了,它起作用了。
但是它太脏了,我不知道该如何解决它。