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