当前位置: 首页 > news >正文

TexStudio中的Latex,PDFLatex,XeLatex和LuaLatex的区别

多种LaTeX编译器

一、多种LaTeX编译器

1.1 PDFLaTeX(1994年

  • 默认、最常用的引擎。

  • 输入文件通常是 ASCII 或 UTF-8 编码(但中文需要 CJK 宏包或 ctex 宏包支持)。

  • 字体选择受限:只能使用 TeX 自带的字体或者 Type 1 格式的字体(TTF/OTF 字体不能直接使用)。

  • 优点:稳定、速度快、兼容性好,很多模板(尤其是期刊/会议)要求用它

  • 缺点:对多语言(特别是中文、日文、韩文等)和系统字体支持差。

Optima这种复杂的现代字体不像是PDFLaTeX可以编译出来的。

1.2 Xe  LaTeX(2004年

  • 基于 XeTeX 引擎,原生支持 Unicode,直接支持 UTF-8 输入(不用额外的宏包)。

  • 可以通过 fontspec 宏包直接调用操作系统字体(如宋体、Times New Roman)。

  • 对多语言排版支持好,特别适合 中文、日文、韩文

  • 缺点:比 PDFLaTeX 编译稍慢,有些老的宏包可能兼容性不好。

1.3 LuaLaTeX(2007年

  • 基于 LuaTeX 引擎,和 XeLaTeX 一样支持 Unicode + 系统字体

  • 内置 Lua 脚本语言,允许用户在编译过程中写 Lua 脚本,做自定义处理(如复杂的排版逻辑)。

  • 对 OpenType 字体特性支持更好(连字、变体字形等)。

  • 优点:灵活、现代化,适合需要扩展功能的场景(比如复杂排版、自动化处理)。

  • 缺点:速度较慢,生态相对新,部分模板可能不完全兼容。

lua语言在工业数据采集中具有重要应用

1.4 选择建议

  • 写英文论文、默认模板 → 用 PDFLaTeX(最快、最稳定)。

  • 写中文/多语言 → 推荐 XeLaTeX(最简单,直接调用系统字体)。

  • 需要复杂排版/编程扩展 → 用 LuaLaTeX

  • 一些期刊/出版社会强制要求 PDFLaTeX,因为它兼容性最好。

二、文本编译专业知识

2.1 三大编码

ASCII全称American Standard Code for Information Interchange,说白了就是美国人用的计算机编码方式;

Unicode 是一个字符编码标准,旨在为世界上所有书写系统的字符分配唯一的编码。它支持全球几乎所有的书写系统,涵盖了多种语言的字符,包括拉丁字母、汉字、日文假名、希腊字母等;

为世界上所有书写系统的字符分配唯一的编码

UTF-8是Unicode 的一种编码方式,兼容 ASCII。

2.2 Type 1 TTF/OTF

Type 1 是 Adobe 公司开发的一种字体格式,也被称为 PostScript Type 1 字体,主要用于 打印机排版系统

TTF全称TrueType 是由 AppleMicrosoft 开发的一种字体格式,旨在提供与 Type 1 字体类似的功能,但具有更好的兼容性和可操作性。

OTF全称OpenType 是由 MicrosoftAdobe 共同开发的字体格式,它是 TrueType 字体的扩展,加入了更多的功能和更强的跨平台兼容性。

Optima 字体

Optima 字体是 OpenType (OTF) 字体格式的一种,比较适合用LuaLaTeX进行编译。

2.3 Lua语言

来自百度百科:

Lua [1] 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译、运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

标题
http://www.xdnf.cn/news/1310779.html

相关文章:

  • RocketMq面试集合
  • 暴雨服务器:以定制化满足算力需求多样化
  • 小白挑战一周上架元服务——元服务开发06
  • 肖臻《区块链技术与应用》第20-22讲 - 以太坊难度调整、权益证明和智能合约
  • 415. 字符串相加
  • Java设计模式之《工厂模式》
  • 【Java web】HTTP 协议详解
  • HTTP 1.0, 2.0 和 3.0 有什么区别?
  • OpenAI TTS API + Web 前端 AudioContext 实战方案
  • (论文速读)ViDAR:视觉自动驾驶预训练框架
  • leetcode-139. 单词拆分-C
  • 中本聪思想与Web3的困境:从理论到现实的跨越
  • 从依赖到自研:一个客服系统NLP能力的跃迁之路
  • 昇腾AI自学Day2-- 深度学习基础工具与数学
  • Spring AI 进阶之路01:三步将 AI 整合进 Spring Boot
  • 异构数据库兼容力测评:KingbaseES 与 MySQL 的语法・功能・性能全场景验证解析
  • linux设备驱动之字符设备驱动
  • Python代码规范与静态检查(ruff/black/mypy + pyproject.toml + Makefile)自动化工具链介绍
  • 【LeetCode 热题 100】70. 爬楼梯——(解法二)自底向上
  • 在鸿蒙应用中快速接入地图功能:从配置到实战案例全解析
  • ISO27001 高阶架构 之 支持 -2
  • PHP域名授权系统网站源码/授权管理工单系统/精美UI/附教程
  • 广东省省考备考(第七十八天8.16)——资料分析、判断推理(强化训练)
  • Spring AMQP如何通过配置文件避免硬编码实现解耦
  • Linux -- 文件【下】
  • 深度解析和鲸社区热门项目:电商双 11 美妆数据分析的细节与价值
  • 41 C++ STL模板库10-容器3-list
  • 正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
  • docker-compose-mysql-定时备份数据库到其他服务器脚本
  • 【机器学习深度学习】OpenCompass:支持的开源评估数据集及使用差异