pdflatex 是引擎还是格式?

pdflatex 是引擎还是格式?

http://www.tug.org/levels.html

引擎:TeX、pdfTeX、XeTeX、LuaTeX……这些是实现不同 TeX 方言的实际可执行二进制文件。LaTeX 格式由 pdfTeX(pdflatex) 和 XeTeX (xelatex) 引擎。当有人说“TeX 找不到我的字体”时,他们通常指的是引擎。

格式:LaTeX、纯 TeX、pdfLaTeX……这些是基于 TeX 的语言,您实际上用它们来编写文档。当有人说“TeX 给我这个神秘的错误”时,他们通常指的是格式。

从高层次上讲,使用的输出格式取决于您调用的程序。如果您运行 latex(实现 LaTeX 格式),您将获得 DVI;如果您运行pdflatex(它也实现了 LaTeX 格式),您将获得 PDF。

pdflatex 是引擎还是格式?

pdflatex 和 pdftex 有什么关系?

谢谢!

答案1

在评论中,我列出了我在 texlive 2012 安装中默认安装的所有“latex”格式。

texmf-var/web2c/eptex/platex.fmt 
texmf-var/web2c/euptex/uplatex.fmt 
texmf-var/web2c/luatex/dvilualatex.fmt 
texmf-var/web2c/luatex/lualatex.fmt 
texmf-var/web2c/pdftex/cslatex.fmt 
texmf-var/web2c/pdftex/latex.fmt 
texmf-var/web2c/pdftex/mllatex.fmt 
texmf-var/web2c/pdftex/pdfcslatex.fmt 
texmf-var/web2c/pdftex/pdflatex.fmt 
texmf-var/web2c/xetex/xelatex.fmt 

但必须小心,因为它们并非都是“乳胶”,因为它们并非是未修改的乳胶宏集的编译版本。

我相信latex.fmtpdflatex.fmt唯一的不同之处在于,同一个latex.ltx文件分别用 tex 和 pdftex 转储。(实际上,latex.fmt现在用 dvi etex 模式的 pdftex 转储,而不是经典 tex)但例如,cslatex是一种不同的格式,通过编译 tex 宏来制作

 /usr/local/texlive/2012/texmf-dist/tex/cslatex/base/cslatex.ini

如果我没记错的话,这个文件做了一些定义,设置了非标准编码机制,然后输入了标准 latex。这一切都是公开的,正如预期的那样,你可以对 latex 源做任何你想做的事情,除了调用更改后的副本 latex(如果你读了小字,你甚至可以这样做,如果你声称你必须这样做)pdfcslatex.fmt当然是与此相同的源,但用 pdftex 转储。我需要检查一下,但我认为 xelatex 和 lulatex 格式同样对标准 latex 宏做了一些小的(或不那么小的)添加,并分别被 xetex 和 luatex 引擎转储。

答案2

pdflatex是一个终端命令,它告诉pdfTeX引擎使用该LaTeX格式。

更正

严格来说,pdflatex加载pdfLaTeX格式,但就用户而言,这与格式相同LaTeX。使用时可用的附加命令pdflatex(大多以 开头\pdf)由引擎提供pdfTeX,而不是格式。

相关内容