问题的最简短版本(看到评论后):
XeTeX 和 XeLaTeX 之间的唯一区别在于命令xetex
和xelatex
兼容性不同TeX和乳胶格式化的文档?
那就是特克斯和西拉特克斯排版引擎实际上是相同的,并且和xetex
都是xelatex
这些引擎的命令,并且这些命令有所不同。
XeTeX
和之间的主要区别是什么?它们只是和XeLaTeX
之间的类似区别吗?前者是一个排版引擎,带有一组基本的宏(),而后者是一组更全面的宏?TeX
LaTeX
plain-tex
是否XeTeX
包含LaTeX
宏?在XeTeX
网页,似乎暗示了这一点,说
XeTeX
现在是标准TeX
发行版的一部分TeX 直播并且可以与和之TeX
类的宏包很好地配合。LaTeX
ConTeXt
XeTeX
如果是这样,那么在处理您的文档时是否需要特别调用它们?
此外,如果LaTeX
在某种意义上已经“包含”在 中XeTeX
,那么 有什么不同XeLaTeX
?即XeTeX
和是否XeLaTeX
相同?
维护者是否XeTeX
与 的维护者相同XeLaTeX
?如果是,在哪里可以找到有关此信息(请注意,它不包含在 TUG 链接参考 XeTeX也不是XeTeX
网页)?
是否有 支持的软件包XeTeX
不受 支持的软件包? 这些软件包是否XeLaTeX
与 支持的软件包相同?TeX
LaTeX
是否有 支持的软件包XeLaTeX
不受 支持的软件包? 这些软件包是否LaTeX
与 支持的软件包相同?LaTeX
TeX
XeTeX
结构是否能够自动合并对代码库TeX
的更新?LaTeX
结构是否能够自动合并XeLaTeX
更新TeX
或LaTeX
代码库?
正如预期的那样,这个问题被标记为重复,它包含了以前的问题所没有的许多其他方面(例如,询问维护者西拉特克斯),并且我已就其不同之处作了序言说明。如果您认为这是重复的,请阅读下文。
类似的问题实际上已经之前问过,但它被列为重复,指向的问题实际上并未回答有关XeTeX
和之间差异的原始问题XeLaTeX
。我是 TeX 新手。我应该使用 LaTeX、XeLaTeX 还是……?回答了关于新用户最喜欢使用哪种排版引擎的问题。XeTeX
和之间的区别XeLaTeX
并没有写在任何地方;事实上,XeTeX
和XeLaTeX
甚至没有出现在同一个句子或同一个段落中。
另一个问题中似乎有一个答案几乎成立(TeXworks 编辑器中的 XeTeX 和 XeLaTeX),但实际上似乎并不准确,因为它声称在以该LaTeX
格式书写时不能使用 XeTeX。TeXworks 中的选项可能实际上遵循了这一约定,即使该xetex
命令在命令行中运行时本身能够处理LaTeX
格式化的文档。
我今天花了很长时间试图找到这个问题的答案,然后我本来想将其写成一篇博客文章,但我找不到任何明确的答案。
在将其标记为重复之前,请考虑以下事项:
- 即使存在和,它们之间的关系也
XeTeX
并不明显。例如,和也共享此命名约定,但它们之间的差异与和之间的差异不同。XeLaTeX
TeX
LaTeX
BibTeX
BibLaTeX
TeX
LaTeX
- 如果你看看关于
XeTeX
或 的许多问题和答案,这两个术语的使用就好像它们可以自由交换一样(当然,和 的XeLaTeX
情况并非如此)。事实上,问题作者在TeX
LaTeX
TeXworks 编辑器中的 XeTeX 和 XeLaTeX明确陈述这一假设。 - 的网页没有提及和
XeTeX
之间的关系,关于的大部分文档只是间接地提到了命令(如果有的话),并且似乎没有自己的网页。XeTeX
XeLaTeX
XeTeX
xelatex
XeLaTeX
XeLaTeX
- 我猜这个问题被搜索得足够频繁,以至于将答案与符合人们预期搜索词的问题联系起来对许多人来说都是有用的。即使关于
TeXWorks
“新用户应该使用哪个引擎”的问题回答了这个问题(如上所述,它们没有回答),它们也不会成为人们寻找答案的搜索对象。
答案1
tex
tex
是一个可执行文件——一个可运行的程序。默认情况下,它预加载了 Plain TeX 格式,因此当您运行时,tex file.tex
它已准备好读取 中定义的宏plain.tex
。它产生 DVI 输出。
pdftex
pdftex
是可执行文件的另一个版本tex
,其中包含对原始程序的某些扩展(扩展e-tex
,包括附加内存寄存器)。默认情况下,它会直接生成 PDF 输出,而不是 DVI。它还预加载了 Plain TeX 格式。
latex
该命令latex
调用pdftex
程序(或“引擎”),但预加载 LaTeX 格式而不是 Plain TeX,并设置为产生 DVI 输出。
pdflatex
该命令pdflatex
调用pdftex
引擎,但预加载 LaTeX 格式而不是 Plain TeX,并设置为生成 PDF 输出。
xetex
xetex
tex
是与和不同的可执行文件pdftex
。它包括对原始程序的扩展,以允许 Unicode 输入和从右到左排版等功能。默认情况下,它预加载了 Plain TeX 格式并生成 PDF 输出。
xelatex
该命令xelatex
调用xetex
引擎,但预加载 LaTeX 格式而不是 Plain TeX,并生成 PDF 输出。
luatex
luatex
是另一个不同的可执行文件,是 的部分重新实现,tex
其中包含lua
脚本语言。与 一样xetex
,luatex
它被构建为接受 Unicode 输入。它预加载了 Plain TeX 格式并生成 PDF 输出。
lualatex
该命令lualatex
调用luatex
预加载的 LaTeX 格式(而不是 Plain TeX)的引擎,并生成 PDF 输出。
例子
纯 TeX 格式
您可以使用tex
、pdftex
、xetex
或成功编译此 Plain Tex 文件luatex
:
Test of Plain \TeX.\bye
带有 Unicode 输入的纯 TeX 格式
如果使用 Unicode 字符,则只能通过运行xetex
或luatex
和选择包含它们的字体:
\font\tenrm=ecrm1000 \rm
Test of Unicode with Plain \TeX: Matthäuspassion, esdrújulo.\bye
LaTeX 格式
要编译 LaTeX 文档,请使用latex
、pdflatex
、xelatex
或lualatex
:
\documentclass{article}
\begin{document}
Test of \LaTeX.
\end{document}
带有 Unicode 输入的 LaTeX 格式
如果使用 Unicode 字符,则可以通过两种方式打印它们:
- 使用和包
pdflatex
设置正确的输入和字体编码 ,或者inputenc
fontenc
- 使用
xelatex
或lualatex
并使用包选择一个 Unicode 字体fontspec
。
为了pdflatex
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
Test of Unicode with \LaTeX: Matthäuspassion, esdrújulo.
\end{document}
对于xelatex
或lualatex
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\begin{document}
Test of Unicode with \LaTeX: Matthäuspassion, esdrújulo.
\end{document}
答案2
我不知道这是否是一个完整的答案,但根据迄今为止对这个问题的评论,答案的某些部分开始形成。
因为问题具体询问了 XeTeX 和 XeLaTeX,所以我将具体解决它,但正如所选答案所建议并在评论中指出的那样,XeTeX 和 XeLaTeX 之间的关系没有什么特别之处。但是,由于这种特殊性,可以更详细地讨论,尽管如果不修改其他情况(至少在命令中输入的确切字符方面),它就不会概括。
这里有两类事物被混为一谈:特克斯是一个排版引擎,西拉特克斯是用于编译的格式文件乳胶格式化的文档特克斯引擎,xetex
命令行命令是实际执行编译的二进制文件,并且xelatex
是将适当格式的文件包含到命令中的便捷包装函数xetex
。
如果你谈到特克斯和西拉特克斯因为两者都是排版引擎,所以两者之间没有区别(或者你描述错了西拉特克斯作为排版引擎)。
但是,xetex
和xelatex
命令并不相同。事实上,是带有特定参数的命令xelatex
的便捷包装器。xetex
xetex
将无法使用指定的指令代码编译文档乳胶格式文件,它需要纯文本格式的文档,就像tex
二进制文件一样。
xelatex
是一个包装器,本质上与xetex "&xelatex"
能够处理乳胶格式化的文档,其中涉及xelatex.ini
作为序言的一部分进行调用。
这个答案对于澄清这一点有很大帮助:https://tex.stackexchange.com/a/126634/67313
您可以使用以下方式生成必要的格式文件xetex --ini latex.ltx
,请参阅如何从 xetex 源构建 xelatex,尽管看起来可能需要添加额外的代码来构建实际上等同于xelatex.ini
格式文件的东西。
也感谢评论中的每个人帮助我澄清我的理解和描述中“不正确”的地方。