我偶然发现了一个例子,它需要用附加选项进行编译--shell-escape
。使用这个选项它工作得很好,但我很好奇:
为什么或何时需要此选项以及它实际上起什么作用?
答案1
有时,能够从 tex 文件内部运行外部命令很有用:例如,它允许外部化某些排版,或使用 bibtex 等外部工具。这可通过 tex\write18
原语实现。
问题是它几乎允许一切。tex 文件旨在可移植,并且在编译第三方文件时不必担心任何安全问题。因此默认情况下,此原语是禁用的。
如果用户需要使用它,他需要明确地告诉编译器他信任该文件的作者并且与 shell 进行交互,这正是可选参数的意义所在--shell-escape
。