如何使 TeX 文件可执行?

如何使 TeX 文件可执行?

据我所知,在 UNIX 下,任何常规文件都可以通过添加舍邦

#! /path/to/executing-program --with --options

如何在不改变整个文档的语法规则的情况下将相同的原理应用于 TeX 文件?

$ cat > tmp.tex
#! /usr/bin/env tex --mystery --options
hello, world
\bye
$ chmod +x tmp.tex
$ ./tmp.tex
$ dvi2tty -q tmp.dvi | grep .
hello, world
                                   1
$ logout

答案1

这是文件seanenv.tex

#! /usr/bin/env pdflatex \catcode35=14 \input
\catcode`\#=6
\documentclass{article}
\begin{document}
Hello, Sean!
\end{document}

之后chmod u+x seanenv.tex,我可以发出

./seanenv.tex

并且seanenv.pdf文件已被编译。

注意 的字符代码是 35 #,在 TeX 重新读取文件之前必须将其转换为注释字符。此后,#会返回其类别代码 6。

这不仅限于pdflatex;同样的策略也适用于tex等等。

答案2

我也遇到这种情况。将第一行更改为使用 pdflatex 的路径(而不是通过 /usr/bin/env)即可解决问题:

#! /bin/pdflatex \catcode35=14 \input

如果需要,将 /bin/pdflatex 更改为 pdflatex 的完整路径。命令:

which pdflatex

会告诉你这是什么。

相关内容