LaTeX 中的 argc argv

LaTeX 中的 argc argv

LaTeX 可执行文件是否可以从命令行接收参数并用作内部变量?

也就是说,可以./latex document.tex a=3 b=rational c=-17.2 d=true使用类似这样的命令来传递将用于编译的值文档.tex

答案1

运行 TeX 的命令行设计非常古老,因此您会发现它非常不典型。首先读取命令切换器(如-ini-jobname)。如果下一个对象不是-nor ,\则假定这是主文件名的首字母。这是典型情况,例如:

tex -ini plain.tex '\dump'

读取文件名后,将读取文件,如果 tex 未通过\end\dump原语完成其工作,则将读取命令行的其余部分,下一个输入来自终端控制台。上面的示例通过\dump在命令行中给出来完成 TeX 作业。

如果这里是\而不是“文件名的正常首字母”,则命令行将被解释。通常可以有\def\let,当然还有\input file。例如

tex '\def\name{b} \input filename'

请注意,'...'因为我们不想\通过命令 shell 来解释。

TeX 的 Unix 实现将其 arg0 传播到正在运行的程序,并将其转换为-fmt arg0。例如,有符号链接latex -> pdftex。当您运行

latex document

然后pdftex调用(由于符号链接)并且传播命令行的 arg0,因此结果是:

pdftex -fmt latex document

相关内容