ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

写给自己(误)的LaTeX入门教程

2021-12-16 13:33:22  阅读:266  来源: 互联网

标签:TeX LaTeX XeTeX 入门教程 写给 引擎 排版 格式文件


写作动机

笔者利用LaTeX进行排版的频率并不高,每次捡起来都要重新在网上辛苦查阅相关资料;
有时看到别人给出的现成宏命令,有一种想弄清其本义的冲动。
另外,若是能利用本次机会将TeX排版系统的历史以及原理快速捋一遍则是极好的。


本文适合的读者特点

> 不着急快速上手
> 想弄清楚各种xxxTeX之间关系
> 希望得到“官方级别”的LaTeX排版指导 --- 是的,我会在之后LaTeX团队的官方文档翻译出来


什么是TeX?

\(\TeX\)是高纳德(Donald Knuth)于1978年开发的排版系统,核心由Pascal语言编写,包含大量命令。由于其过于稳定,至今其核心基本没受到什么大改动,均是修修补补。

既然TeX是一个系统,就不能单纯说它是“一种编程语言“或”一个程序“,实际上它由排版语言、编译器(引擎)以及一些相关可执行程序构成。用户编写.tex源文件,TeX编译器将其编译为二进制机器码,并存储在.dvi文件中,可以将其对照为C语言和C语言编译器之间的关系。

DVI,Device Independent, 译为设备无关。TeX真正生成的其实是.dvi文件(而不是PDF),这种文件格式是由一个叫David R. Fuchs的人定义的,被高纳德顺手开发出来了。这种文件精确描述了所有页面元素的样式以及各自坐标,并且绝对固定并无法被更改,所以任何读取它的输出设备(显示器、打印机等)显示出来的效果一定是一模一样的!


TeX格式文件

TeX支持宏,所以开发者可将若干底层命令组合为一个新的宏,实现高一级抽象的功能,方便用户使用。

对于TeX系统,其在编译.tex源文件前,会预载一个格式文件,其中包含各种提前定义好的宏,以被用户在源文件中调用。紧接着对源文件进行编译。所以你可以将格式文件理解为宏的集合。

常见的格式文件

Plain TeX

由高纳德本人设计,仅包含了一些很基础的宏来处理简单的排版,现在很少人用。

LaTeX

\(\LaTeX\)是由美国人Leslie Lamport于80年代设计的格式,属于Plain TeX的套娃,实现了很多强大的宏。

LaTeX2e

于1994年发布,是LaTeX最新的一个大版本,也是如今使用最广泛的格式,一直更新至今,实际上我们如今说的“latex”便是指2e版本。

AMSTeX / AMSLaTeX

由美国数学协会设计,同样属于Plain TeX套娃,实现了很多高级数学排版渲染功能。

易于理解的角度

我将TeX基础命令类比于汇编语言,Plain TeX可类比于C语言,则LaTeX类比为C++。所以实际上TeX编译器最终会将.tex源文件中的各种高级宏一个不漏地解释拆解为一大堆TeX基础指令。


由TeX衍生的排版引擎

> 注:从这里开始,建议将“引擎”理解为实际的可执行程序

高纳德将TeX的排版引擎设计得如此开放且易扩展,以至于出现了一些由全球社区在此基础上编写的新排版引擎,它们虽然拓展了若干高级特性,但仍严格兼容TeX引擎本身的严谨性。

需要区分的是,如LaTeX这样的格式文件仅是对原始TeX命令的组合,本质上其拓展范畴仍在TeX系统内;而下文提到的对象则是针对TeX引擎本身进行了改动、拓展甚至重写。

pdfTeX

由TUG组织维护,在国外比较流行,主要特性是默认最终产物为pdf文件。

> 注:如果你于终端键入"latex"命令,实际上调用的是pdfTeX引擎,只不过是预载了LaTeX格式而已

image

XeTeX

由Jonathan Kew开发,在TeX基础上增加了对unicode的支持,同时增加若干高级字体渲染技术、高级数学排版功能,其预载的为Plain TeX格式。

XeTeX生成的目标文件为.xdv(extend DVI),其可由相关程序转换为PDF文件。

> 注:所谓的"XeLaTeX"并不是一个独立的排版引擎,终端命令"xelatex"的效果为调用XeTeX,预载LaTeX格式

image

LuaTeX

由另外几个科学家于pdfTeX的基础上开发而来,主要特性是内置Lua脚本引擎,理论上能利用Lua获得更灵活的扩展性,但其流行性及性能均不如XeTeX。所谓的"LuaLaTeX"同上。


TeX系统的发行版

我将原始的TeX系统类比于Linus早期开发的Linux内核,各非盈利 / 盈利组织由此开发出不同的Linux发行版本以增添一些特色功能,如Ubuntu、CentOS、SUSE、REDHAT等等。但Linux是操作系统,接下来介绍的各主流TeX系统发行版本准确来说是由一系列可执行文件、格式文件、宏包、开源字体包装起来的工具链ToolChain

TeXLive

由国际TeX用户组织TUG发行,是最流行的版本,开源且跨平台。其内置上述提到的所有排版引擎,以及最新的LaTeX2e格式。

MiKTeX

是Microsoft Windows平台上最出色的发行版本,其附带安装一个TeX编辑器。

MacTeX

是基于TeXLive修改而重发行的版本,由TUG的子团队开发,其相比于TeXLive增加了一些针对Mac特性的工具,以及附带了TeXShop编辑器。


结语

了解了TeX系统的简单历史后,你可以着手为你的电脑安装合适的TeX发行版本,选择一个你喜欢的文本编辑器(我推荐sublime text或者vs code)以及适合你的排版引擎(一般用户推荐XeTeX搭配LaTeX格式)开始写作。

对于LaTeX2e的官方文档,我会对其进行翻译,原pdf网址LATEX2e for authors

点击此处进入LaTeX2e for authors中文版翻译。


引用

wikipedia ------ TeX
wikipedia ------ LaTeX
wikipedia ------ XeTeX
wikipedia ------ TeXLive
stackoverflow

标签:TeX,LaTeX,XeTeX,入门教程,写给,引擎,排版,格式文件
来源: https://www.cnblogs.com/1Kasshole/p/15697472.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有