xetex 命令行参数

xetex 命令行参数

是否可以在命令行中向 xetex 传递参数?例如 xetex filename.tex blahblah,在这种情况下,blahblah 将在 filename.tex 中用于执行其应执行的任何操作。

答案1

所有 TeX 程序都可以从命令行调用

<program name> '<arbitrary TeX code>'

或者

<program name> "<arbitrary TeX code>"

不同之处在于,它与 shell 命令行中的引号不同:前者不对传递的标记进行任何解释,而后者将以标准方式扩展标记(例如环境变量);在这种情况下,TeX 代码的反斜杠应该加倍,而对于第一个带单引号的选项来说,这不是必需的。

这里<program name>代表与 TeX 引擎(pdftexxetexluatex其他)或指向它的符号链接(pdflatexxelatex和其他)相对应的任何二进制文件,当首先加载名为符号链接的格式时,将首先加载;否则将使用lualatex构建于其上的格式。plain.tex

所有引擎的一个特点是,作业名称是根据第一个输入文件设置的。

因此,如果你想在开始实际工作之前定义一个宏,你可以调用

xetex '\def\foo{whatever}\input filename'

并且作业名称将被设置为filename就像xetex filename已经被调用一样。

请注意,只要引号后的第一个字符是反斜杠,此方法即可奏效:另一个字符将触发查找文件名以直接输入。如果您要排版横幅,请以\relax: 开头

xetex '\relax abcdef\par\input filename'

将在输入文件之前排版一段。

您甚至可以输入不同的文件,保留所需的作业名称:

xetex -jobname=filename '\input xyz\input filename'

xyz.tex将忽略这是用于设置作业名称的第一个输入文件的事实。

相关内容