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.pswp.cn/diannao/95831.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器化部署:用Docker封装机器翻译模型与服务详解

文章目录一、机器翻译容器化的技术栈选型1.1 为什么需要容器化MT模型?1.2 基础镜像选择对比1.3 典型依赖分层方案1.4 性能对比(容器化 vs 原生部署)二、关键部署模式2.1 轻量级API服务封装2.2 模型热更新策略三、Docker镜像构建3.1 编写Docke…

leetcode_42 接雨水

1. 题意 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 2. 题解 这个题不会做,全部是看得题解捏。 不过能看懂题解感觉自己也很棒了! 看完题解后感觉最难的是如何求出有多少…

Spring Boot 整合 Thymeleaf 模板引擎:从零开始的完整指南

引言:为什么选择 Thymeleaf? Thymeleaf 是一个现代化的服务器端 Java 模板引擎,专为 Web 开发而设计。与 JSP 不同,Thymeleaf 模板是纯 HTML 文件,可以直接在浏览器中预览,无需后端服务器支持。这种"…

pytest介绍(python测试框架)(@pytest.mark.parametrize、@pytest.fixtures)

文章目录**1. 核心特点**- **简洁易用**:无需复杂的配置,只需编写简单的函数或类即可进行测试。- **丰富的断言**:直接使用 Python 内置的 assert 语句,失败时提供详细的错误信息。- **自动发现测试**:通过约定的命名规…

[Python 基础课程]继承

在 Python 的面向对象编程(OOP)中,继承(Inheritance) 是一种重要的机制,它允许一个类(称为子类或派生类)从另一个类(称为父类、基类或超类)中继承属性和方法。…

QT之设计器组件功能(8大类55个组件)

组件名称 功能描述关键属性1. Layouts(布局组件)(1) Vertical Layout(垂直布局)将子控件按垂直方向依次排列layoutSpacing:控件之间的间距layoutMargin:布局边缘的边距layoutStretch:设置各控件…

java中list的api详细使用

在Java中,List是集合框架中最常用的接口之一,继承自Collection,代表有序、可重复的元素集合(允许null元素)。其核心实现类有ArrayList(数组实现,随机访问高效)、LinkedList&#xff…

Azure AI Search 探索总结

Azure AI Search 原名 Azure Cognitive Service,是Azure中用来给AI项目构建知识库的组件。知识库本质和数据库很像,但是内部的存储结构和检索算法不一样。比如并不是知识库的每一列都可以用来过滤、检索或group by,而是要根据实际情况配置。A…

高效解决 pip install 报错 SSLError: EOF occurred in violation of protocol

高效解决 pip install 报错 SSLError: EOF occurred in violation of protocol 标签: Python, pip, SSLError, Clash, 网络代理, 问题解决 一、问题描述 在Python开发中,pip 是我们最亲密的伙伴。然而,当你身处需要科学上网的环境&#xff0c…

CSS 核心知识点全解析:从基础到实战应用

大家好!今天这篇文章将系统总结 CSS 的核心知识点,从最基础的样式引入到复杂的选择器应用,再到盒子模型、文本处理等实战技巧,全程结合代码示例,让你轻松掌握 CSS 的精髓。一、CSS 是什么?为什么需要它&…

ClickHouse的学习与了解

什么是ClickHouse? ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 在传统的行式数据库系统中,数据按如下顺序存储:RowWatchIDJavaEnableTitleGoodEventEventTime#0893543506621Investor Relations12016/5/18 5:19#1903295…

安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用

在定制化系统中。修改系统分区 解锁system。让用户可以自由删减应用。这个在定制化服务中比较常见。对于此项修改服务。需要我们了解基础的分区常识以及常用的几种基础修改步骤。 通过博文了解💝💝💝 1💝💝💝-----修改rom 解锁 system 分区有什么意义 2💝💝…

JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页”

JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页” 在Android开发的世界里,加载PDF文件一直是个让人又爱又恨的“小妖精”。爱它,因为PDF是文档界的“万能钥匙”;恨它,因为原生Andr…

Three.js三大组件:场景(Scene)、相机(Camera)、渲染器(Renderer)

上一篇中我们学习了第一个Three.js场景"Hello World"。这一篇就来学习three.js的核心组件。 此图来源(Three.js中文网) three.js的核心由三大组件构成:场景(Scene)、相机(Camera)和渲染器(Renderer)。下面我将详细介绍这三大件的作…

AI幻觉终结之后:GPT-5开启的“可靠性”新赛道与开发者生存指南

摘要: Sam Altman关于GPT-5将基本终结幻觉的宣告,不仅仅是一次技术升级,它标志着一个“万物皆可AI,但万事皆需验证”的混乱时代的结束。本文将从一个全新的战略视角出发,探讨当“可靠性”取代“创造性”成为AI竞赛的核…

ubuntu远程桌面很卡怎么解决?

服务端方案 完成XRDP的性能优化配置: 1. 首先检查当前的xrdp.ini文件 grep -n "tcp_send_buffer_bytes" /etc/xrdp/xrdp.ini2. 编辑xrdp.ini文件,修改TCP发送缓冲区大小 sudo sed -i s/#tcp_send_buffer_bytes32768/tcp_send_buffer_bytes4194…

[Linux] Linux系统负载监控 Linux服务管理

目录 Linux系统负载监控 系统负载介绍 查看系统负载 负载解读 top 命令 Linux服务管理 systemd 介绍 系统启动管理进程 基本概念 systemd 架构 unit 类型 查看 unit 列表信息 查看单个 unit 信息 控制系统服务 systemctl 命令 unit 配置文件 例:开发…

vector 手动实现 及遇到的各种细节问题

之前对vector的一些功能使用了一下 接下来手动实现一下vector vector的实现和string还是有不小区别的 有很多地方都有细节的问题不同于string的成员变量一个指针一个size一个capacity的成员变量 vector里面存的是三个迭代器iterator 这的迭代器其实就是模版T的指针 这样就…

OpenStack Neutron中的L2 Agent与L3 Agent:新手友好指南

引言:云网络的幕后英雄 在当今的云计算世界中,OpenStack作为开源云平台的佼佼者,为成千上万的企业提供了灵活、可扩展的基础设施服务。而在OpenStack的众多组件中,Neutron(网络服务)扮演着至关重要的角色—…

【自用】JavaSE--特殊文件Properties与XML、日志技术

特殊文件概述使用特殊文件可以存储多个有关系的数据,作为系统的配置信息属性文件类似于键值对,一一对应存储数据(比如用户名与密码)XML文件存储多个用户的多个属性更适合,适合存储更复杂的数据Properties注:这个属性文件的后缀即使…