下一代latex指南
上一代 | 现在主流版本 | 下一代 | |
---|---|---|---|
TeX发行套装 | MiKTeX, TeXLive, MacTeX | ||
TeX | PDFTeX | XeTeX | LuaTeX |
LaTeX | LaTeX 2.09 | LaTeX 2ε | LaTeX 3 |
LaTeX中文支持 | CJK, CTeX套装 (已弃用) | CTeX宏集 | |
引用 | LaTeX内嵌 | natbib | biblatex |
插入图片 | graphics宏集 | graphicx宏集 |
TeX
- PDFTeX是最早的版本,貌似是后来支持的UTF-8,现在已经停止新功能更新,仅作Bug修复。
- XeTeX是现在的主流版本,和LuaTeX一样原生支持UTF-8。
- PDFTeX和XeTeX的底层都是plain TeX(是宏语言)。
- LuaTeX是下一代TeX。 相比于前两个TeX来说,LuaTeX底层变成了Lua,以及允许作者在文档中直接嵌入Lua代码;因此被认为选中为PDFTeX引擎的继任者。 (其实我很希望快点放弃对前两个版本的支持……这样很多包的开发都可以直接使用Lua,于是会变得非常简单。)
反正这些TeX开发速度都很慢就是了……
PS:似乎有个叫做ConTeXt,基于LuaTeX的,不知道是什么,我有空该了解下。
PPS:知乎@李阿玲似乎在写个新的TeX引擎,传送门clerkma/ptex-ng。
LaTeX
大概在1999年,LaTeX社群决定在2.09的基础上开发下一代LaTeX。于是他们首先开发了LaTeX 2e,然后准备开始写LaTeX 3。 然后就……难产到了现在。 (所以我说我很希望弃用前两代TeX……用现代语言开发LaTeX应该会容易很多吧我想。反正只要最终用户界面变化不大就行了。)
目前仍然只能在LaTeX2e中将其作为一个包使用(expl3)。
最近终于已经将\NewDocumentCommand
作为LaTeX的默认功能了……(确实挺好用的。)
关于LaTeX3的中文教程,我有幸找到了这个知乎用户stone-zeng和对应GitHub账号stone-zeng。欢迎大家关注wwww(这个人好像也是CTeX宏集的维护者之一。)
CTeX
最早社区用的是CJK宏集,不过比较难以配置。后来这群人基于CJK宏集写了CTeX宏集,使用CTeX宏集可以极大简化配置。 据作者讲,因为当时CTeX宏集的配置过于复杂,所以他们又写了CTeX套装,在套装里预配置好了相关参数(主要是字符集编码问题)。
最后一版CTeX套装(应该是2012年)也早在我接触LaTeX前就停止维护了。 包作者当时说,是因为当时MiKTeX和TeX Live都已经可以较好地支持中文了,所以他们就决定集中精力只维护CTeX宏集了。所以这些都是我后来在互联网上了解这段历史时看到的片段,不保证准确性……
现在你只需在LaTeX中输入\usepackage{ctex}
就可以使用中文啦,感谢他们w
UPD:我刚刚看到了作者的更新说明。CTeX已经放弃了Ubuntu下对PDFTeX的支持。所以大家尽量不要使用PDFTeX,以防止遇到兼容性问题。
BibLaTeX
引用
(待补充)