#latex概览

##tex 和 latex

###1. TeX:底层排版引擎

示例(纯 TeX 代码)

tex
\font\myfont=cmr12 at 14pt
\myfont Hello, \TeX!
\bye

###2. LaTeX:基于 TeX 的高级封装

示例(LaTeX 代码)

tex
\documentclass{article}
\begin{document}
\section{Introduction}
Hello, \LaTeX!
\end{document}

###核心区别

特性 TeX LaTeX
设计目标 底层排版控制 高层文档结构
语法复杂度 复杂(类似编程) 简单(声明式)
典型用户 排版系统开发者、极客 学术作者、普通用户
扩展性 需手动实现一切 通过宏包(如 hyperref)扩展
默认输出 .dvi .dvi.pdf(现代工具链)

###类比解释

###技术关系

###总结

如果需要进一步解释某个具体细节(如宏包机制或引擎差异),可以继续讨论!

##引擎和使用

###1. 排版引擎(Engines)

引擎是实际执行排版工作的底层程序,负责解析代码、计算布局并生成输出文件(如 PDF/DVI)。
属于引擎的有

###2. 模板/格式(Formats)

格式是基于引擎的预定义命令集合(宏包),提供高层抽象,简化用户操作。
属于格式的有

###3. 前端命令(Frontends)

用户直接调用的命令,本质是 “引擎 + 格式” 的组合

命令 实际调用 说明
latex pdftex + LaTeX 格式 传统 LaTeX(DVI 输出)。
pdflatex pdftex + LaTeX 格式 直接生成 PDF(无 Unicode 支持)。
xelatex xetex + LaTeX 格式 支持 Unicode 和系统字体。
lualatex luatex + LaTeX 格式 支持 Lua 脚本和现代字体。

###关键区分

###常见误解澄清

  1. latex 不是引擎
    • 它是 LaTeX 格式通过 pdftex 引擎运行的接口(命令)。
  2. pdflatex vs pdftex
    • pdftex 是引擎,pdflatex = pdftex + LaTeX 格式。

##引擎(Engines)

###基础引擎

引擎名称 特点 输出格式 主要用途
tex Knuth原始引擎,底层控制 .dvi 历史兼容、底层排版开发
pdftex TeX的扩展,直接PDF输出 .pdf 传统LaTeX文档排版
xetex (XeTeX) 支持Unicode和系统字体 .xdv/.pdf 多语言排版、系统字体支持
luatex (LuaTeX) 内嵌Lua解释器,动态脚本 .pdf 复杂排版、自动化处理

###引擎特性对比

特性 tex pdftex xetex luatex
Unicode支持 ✔️ ✔️
OpenType字体 ✔️ ✔️
Lua脚本 ✔️
系统字体 ✔️ ✔️
输出格式 DVI PDF XDV/PDF PDF

##格式(Formats)

###主要格式

格式名称 基于引擎 特点 适用场景
plain tex tex Knuth提供的极简格式 底层TeX编程
latex 多引擎 高级文档结构,宏包丰富 学术论文、书籍、报告
contex luatex 模块化设计,强大功能 复杂排版、图形密集型文档

##前端命令(Frontend Commands)

###常用命令组合

命令 实际组成 输出格式 特点
tex tex + plain tex .dvi 原始TeX排版
latex pdftex + latex格式 .dvi 传统LaTeX处理
pdflatex pdftex + latex格式 .pdf 直接PDF输出
xelatex xetex + latex格式 .pdf Unicode和字体支持
lualatex luatex + latex格式 .pdf Lua脚本+现代特性

##文件格式

###输入文件类型

扩展名 类型 说明
.tex 源文件 TeX/LaTeX源代码
.sty 宏包文件 LaTeX功能扩展包
.cls 文档类 文档类型定义
.bib 参考文献 BibTeX数据库文件

###输出文件类型

扩展名 生成工具 说明
.dvi tex/latex 设备无关文件
.pdf pdflatex/xelatex/lualatex 便携文档格式
.xdv xetex 扩展DVI格式
.aux 所有引擎 辅助信息文件
.log 所有引擎 编译日志文件

##工具链组件

###核心工具

工具名称 用途 示例
texlua Lua解释器 运行TeX相关Lua脚本
kpsewhich 文件查找 定位TeX文件位置
bibtex 参考文献处理 生成参考文献列表
makeindex 索引生成 创建文档索引

###编译工具链

graph TD
    A[.tex源文件] --> B{选择引擎}
    B --> C[pdflatex]
    B --> D[xelatex]
    B --> E[lualatex]

    C --> F[生成PDF]
    D --> F
    E --> F

    subgraph "可选处理"
        G[.bib文件] --> H[bibtex]
        I[.idx文件] --> J[makeindex]
        H --> K[.bbl文件]
        J --> L[.ind文件]
    end

    K --> C
    L --> C

##选择指南

###引擎选择建议

  1. 中文/多语言文档xelatexlualatex
  2. 传统英文文档pdflatex
  3. 需要动态功能lualatex(Lua脚本)
  4. 底层开发texluatex

##列举

###1. tex(原始 TeX 引擎)

###2. latex(LaTeX 格式 + pdfTeX 引擎)

###3. xetex(XeTeX 引擎,支持 Unicode 和系统字体)

###4. xelatex(LaTeX + XeTeX 引擎)

###5. luatex(LuaTeX 引擎,支持 Lua 脚本)

###6. lualatex(LaTeX + LuaTeX 引擎)

###总结对比

命令 引擎 输出格式 Unicode 支持 OpenType 支持 Lua 支持 典型用途
tex TeX DVI 原始 TeX 排版
latex pdfTeX DVI/PDF 传统 LaTeX 文档
pdflatex pdfTeX PDF 直接生成 PDF
xetex XeTeX XDV/PDF ✔️ ✔️ 多语言排版(系统字体)
xelatex XeTeX PDF ✔️ ✔️ 现代 LaTeX(中文友好)
luatex LuaTeX PDF ✔️ ✔️ ✔️ 动态脚本控制排版
lualatex LuaTeX PDF ✔️ ✔️ ✔️ 高级 LaTeX 自动化