【LaTex使用总结】LaTex,pdflatex,xelatex,xetex等的区别和关系

article/2025/10/25 3:58:01

问题是这样产生的,从本科毕设开始接触LaTex起,使用现成的模板进行编译生成操作,一步步按指示操作也从未深究。

后来使用word较多,LaTex经常是简单模板,也渐渐对LaTex的细节不再感兴趣,近期又开始用LaTex撰写论文,想起来以往的困惑,故查阅资料进行总结。

“我用的不是LaTex吗,为啥会有这么多Tex”,“而且有些文档还得指定某一种运行才能生成我想要的pdf?”,“这么多种类我怎么分得清嘛!”

 

以下将进行较全面的总结,包括对LaTex的基础介绍部分。

国际规范的LATEX的读音和书写

由于TEX一词应该读作“泰赫”(/tɛx/),所以LATEX一词可以音译为“拉泰赫”。

  • 在英语中,LATEX实际通常读作/ˈleɪ.tɛk/(音译“莱泰克”)或者/ˈlɑ.tɛk/(音译“拉泰克”)。
  • LATEX的开发者Lamport表示对LATEX的读音没有偏好。

LaTeX的正确的写法是“LATEX”。如果因技术限制而无法做到,则应该写成“LaTeX”。不得改变任何一个字母的大小写,以免和“latex”(乳胶)混淆。

LaTex?

遇事不决,先查百度,再上Google

LaTeX(排版系统)  阐述结合百度百科和维基进行整理

LaTeX(/ˈlɑːtɛks/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/,写作“LATEX”),是一种基于TEX的排版系统,由美国计算机科学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式系统的处理,即使使用者没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能,不必一一亲自去设计或校对,能在几天,甚至几小时内生成很多具有书籍品质的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学、物理文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。

LaTeX使用TeX作为它的格式化引擎,当前的版本是LaTeX2e(写作“LATEX2ε”)。LaTeX遵循呈现与内容分离的设计理念,以便作者可以专注于他们正在编写的内容,而不必同时注视其外观。在准备LaTeX文档时,作者使用章(chapter)、节(section)、表(table)、图(figure)等简单的概念指定文档的逻辑结构,并让LaTeX系统负责这些结构的格式和布局。因此,它鼓励从内容中分离布局,同时仍然允许在需要时进行手动排版调整。LaTeX系统是一种可以处理排版和渲染的标记语言。

奥,原来Tex相当于LaTex的底层。让我来查查Tex又是啥。

Tex?

TeX:一种宏语言。

中文释义】:基于的流行的文本格式化程序 (它是包括LaTeX和teTeX在内的其它此类格式化程序的基础

TeX提供了一套功能强大并且十分灵活的排版语言,它多达900多条指令,并且TeX有宏功能,用户可以不断地定义自己适用的新命令来扩展TeX系统的功能。许多人利用TeX提供的宏定义功能对TeX进行了二次开发,其中比较著名的有美国数学学会推荐的非常适合于数学家使用的AMS-TeX以及适合于一般文章、报告、书籍的LaTeX系统。

LaTex与Tex的关系

LaTeX 是TeX 中的一种格式(format) ,是建立在TeX 基础上的宏语言,也就是说,每一个LaTeX 命令实际上最后都会被转换解释成几个甚至上百个TeX 命令。但是,普通用户可以无需知道这中间的复杂联系。就象编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LaTeX 根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果。

那么问题来了,宏又是啥? 是C语言中的"宏定义"那个"宏"吗?

宏语言?

宏语言是一种强有力的工具语言,可以用来描述软件和解决软件移植等问题,用于书写宏指令和宏定义的表示法和规则。 

宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。

"宏"相关概念

宏变量通过将一段文本赋值给一个宏变量,从而可以很灵活的通过引用这个宏变量来达到使用这段文本的效果。宏变量的长度是由自身的文本长度决定的,而不是通过设定得到,所以宏变量的值是随着文本的长度而任意发生变化。

宏变量包含的只是字符数据。宏变量分为用户自定义宏变量和自动宏变量。宏变量从使用范围上分还分为局部宏变量和全局宏变量。

宏语句:宏语句与一般的程序设计的语句功能类似,只是在使用宏语句时的语法格式与其它编程语句有所差异。

宏函数:宏函数是指由宏语句组成的实现某些特定功能的函数。大多数编程库提供了很多现成的宏函数,可以实现各种功能。宏函数的调用和用户定义的宏函数使用方法相同。

“宏”的使用步骤

第一步定义宏。在程序使用宏之前必须先定义宏。定义宏有如下两种方法:

1、可以在源程序的开始处中定义。

2、可以在宏库中定义宏。宏库汇集了由归档器创建的归档格式的文件。归档文件(宏

库)中的每个成员可以包含一个宏定义且宏的名字与成员名相同

第二步调用宏。用户定义了宏之后,在源程序中可以用宏的名字作助记符来调用宏。这就是宏调用。

第三步扩展宏。当源程序调用宏时,汇编器就扩展宏。在扩展时,汇编器通过变量将参量传递给宏参数,用宏定义代替宏调用语句,然后再汇编源程序代码。

嗷,原来是这样,那下面这个表大概能理解了。

首先是宏包,简要提出几个来说明,

Plain Tex: Tex中的一个最基本的宏集合与TeX的基础语言构成的一种格式。

LaTex: Tex中的一个宏集合,构成一种与 Plain TeX 不一样的格式。

Latex命令:tex命令加上某一个选项使用,就会用LaTeX 格式进行排版,也就是说此时后面跟的tex文件应该是用LaTex格式写的。为方便,就把tex 命令与对应编译选项合成为一个命令,叫latex命令。

然后是替代引擎

Tex程序:把Tex语言转换为排版的程序,也叫Tex。为区别,称这个 TeX 程序叫Knuth TeX。

Tex命令:Tex程序中的编译命令。tex命令默认用Plain TeX格式进行排版。也就是说tex命令后面默认跟的tex文件应该是用Plain Tex格式写的。

eTeX 程序:Knuth TeX程序的一个扩展,也是一个程序,一般写成 eTeX。增加了少量的几个命令,但一般来说是与Knuth TeX程序没有太多区别的。

实现:在文中的意思就是指“程序”的意思。如文中:eTeX 程序和 Knuth TeX 都是TeX语言的一个实现(也就是说,eTeX 程序和 Knuth TeX 都是把TeX语言转换为排版的程序。程序作用于tex文本文件,把tex文件编译成dvi文件)。

pdfTeX程序:Tex语言的又一个实现,也就是把Tex语言转换为排版的又一个程序。它会把 TeX 语言写的代码直接编译成 PDF 文件。

pdftex命令:pdfTex程序中的命令,用来编译用Plain TeX格式写的tex文件。

pdflatex命令:pdfTex程序中的命令,用来编译用LaTeX格式写的tex文件。

XeTeX程序:TeX语言的新的实现,即把Tex语言转换为排版的一个新程序。支持Unicode 编码和直接访问操作系统字体。

xetex命令:XeTeX程序中的命令,用来编译用Plain TeX格式写的tex文件。

xelatex命令:XeTeX程序中的命令,用来编译用LaTeX格式写的tex文件。

XeLaTeX :为了支持Unicode和现代字体,XETEX被开发出来,其直接使用本地计算机中安装的字体的方法,大大降低了使用LaTeX的难度。是使用LaTeX的排版引擎,也有上述XeTeX的优点,命令下直接使用xelatex ***.tex就会产生对应的PDF文件。

接着是发行版

比较常用的有TeX Live、MiKTeX、TeXstudio

其他:(参考于其他博客)

BibTeX——通常与LaTeX一起使用的文献管理软件


http://chatgpt.dhexx.cn/article/0jydOyAQ.shtml

相关文章

pyplot 使用 latex 报错:xelatex not found……

错误提示 发生异常: RuntimeError xelatex not found. Install it or change rcParams[pgf.texsystem] to an available TeX implementation. 原始参数: plt.rcParams.update({"pgf.texsystem": "xelatex","text.usetex": True,# u…

Winedt为什么可以用pdfLaTex编译中文(pdfLaTex和XeLaTex的使用)

文章目录 Winedt为什么可以用pdfLaTex编译中文查看Winedt的默认编译器: 1.XeLaTex和pdfLaTex的关系2.Winedt中使用pdfLaTex编译中文的tex3.原因4.验证 Winedt为什么可以用pdfLaTex编译中文 前言:如果你只是想用Winedt实现LaTex中英混排那么可以直接选择…

recipe terminated with fatal error: spawn xelatex enoent.

vscode配置latex的小问题 问题产生的原因是环境变量没有配置好。所以只需要把环境变量配置好就可以了。 1、 打开textlive安装的路径(…\textlive\2022\bin\win32),比如我的就是C:\texlive\2022\bin\win32 2、编辑环境变量: 编…

TeXstudio报错: fwrite: Broken pipe xelatex.exe

错误: 解决方法: 选项->设置TeXstudio 默认编译器换成PdfLaTex: 问题解决。

CTEX编译Xelatex以及如何更新Miktex

1.现在很多科研人员都喜欢用latex来写文章,主要是latex有了模板之后排版较简单,而且参考文献比较容易生成,不需要再去排版。本人自己比较喜欢使用CTEX,这个得看个人习惯使用吧。有很多同胞在使用CTEX 时可能会遇到无法编译Xelatex…

linux下latex使用教程,LaTeX使用--XeLaTeX入门基础(二)

主机平台:Gentoo Linux 11.2 内核版本:Linux Kernel 3.2.1 编译环境:XeTeX 3.1415926-2.3-0.9997.5 (TeX Live 2011) 相关阅读 主机平台:Gentoo Linux 11.2 内核版本:Linux Kernel 3.2.1 编译环境:XeTeX 3.…

TeXworks 设置成默认用XeLaTeX排版

TeXworks 设置成默认用XeLaTeX排版 在用Texlive2020中,自身自带的编辑器每次都是默认以pdfLaTeX的方式进行排版 因为pdfLaTex在排版中文的时候容易乱码和报错, 用XeLaTeX排版就不会,为了方便就将它设置为一打开编辑器就是以XeLaTeX 方式排版 一打开就是这样子 首先在编辑器页面…

解决XeLaTex编译后中文出现乱码的问题

最近想用LaTex做简历,但是在做中文简历的时候,出现乱码的情况,网上查了很多解决方法,最后成功解决了,在这里总结分享一下。 先建立一个tex文件,输入一下格式的文件,注意加入\usepackage{CTEX} …

Latex、XeLatex无法加粗

XeLaTeX是新的Unicode版本,内建支持Unicode(UTF-8),可以调用操作系统的字体。但是在使用的时候也可能会出现许多问题,例如我最近使用的时候字体就一直无法显示粗体,但是运行的时候不报错。 原因有可能是你的系统里面缺少模板指定…

配置中文XeLaTex环境

本人初始时懒人一键使用了CTex安装,但无奈写中文论文时版本太低不支持使用的模板,所以开始自行配置TexLiveWinEdtSumatraPDF的环境。【TeXworks个人觉得真的不太好用 其中使用TexLive时遇到的一些问题及解决方案如下: fontspec.cfg: Erroneo…

VSCode Latex Workshop 设置 XeLatex 编译

前言 VSCode LatexWorkshop 是非常方便的组合,而对于中文文档,pdfLatex 引擎的支持很差,很多时候需要使用 XeLatex 引擎编译,但是总是莫名其妙各种报错。用下面的 magic 语句也无济于事。 % !TEX program xelatex 本篇介绍通…

overleaf 改为XeLatex怎么操作

文章目录 overleaf 改为XeLatex怎么操作 overleaf 改为XeLatex怎么操作 想将overleaf中的编译器改为XeLatex,搜索后也没有发现太好的回答,解决方法如下 点击菜单选项,然后就可以对overleaf进行设置了 效果如下:

XeLaTeX: 支持现代字体 LaTeX 编译器

XeLaTeX: 支持现代字体 LaTeX 编译器 原  文:XeLaTeX 译  者:Xovee 翻译时间:2023年2月21日 文章目录 XeLaTeX: 支持现代字体 LaTeX 编译器介绍基础:Times New Roman为不同的LaTeX模块设置不同的字体Overleaf中的字体安装在O…

java中如何做展示 IP 属地的功能(至尊典藏版)

目录 前言 1、HttpServletRequest 获取 IP 2、Ip2region 3、99.9%准确率 4、多查询客户端的支持 5、Ip2region V2.0 特性 6、ip2region xdb java 查询客户端实现 7、IDEA中做个测试 8、编译测试程序 9、查询测试 10、bench 测试 前言 细心的朋友应该会发现&#xff…

【获取IP归属地】Java如何实现通过IP获取IP归属地 [离线+在线](附代码,2023年亲测有效)

【写在前面】 编撰这篇文章还得从之前做安全业务需求说起,我们都知道安全攻击都是在某台客户机上执行某些恶意操作(sql注入,DoS/DDoS攻击),致使服务端响应异常崩溃亦或响应数据被篡改,那么怎么去阻止这些东…

1.Java获取本机IP地址,主机名,域名

1.如何在程序中获取本机的IP地址,主机名以及域名呢? 在java中,我们可以利用java.net.InetAddress这个类来实现。 InetAddress 类提供了操作 IP 地址的各种方法。该类本身没有构造方法,而是通过调用相关静态方法获取实例。 InetA…

Java通过Ip2region实现IP定位

我们在一些短视频平台上可以看到,视频作者或评论区可以显示IP地址,这其实就是根据IP获取到的我们可以通过一些在线网站就可以看到我们当前的公网IP和IP定位,最近有个需求也需要通过请求获取客户端的IP和IP的定位,于是通过一系列的百度,最终选择使用Ip2region这个工具库来进行定…

ip解析 java_JAVA解析纯真IP地址库

http://lumaqq.linuxsir.org/article/qqwry_format_detail.html,这里就不多叙述了。 看下JAVA代码中怎么解析IP的吧。(代码参考至lumaQQ.谢谢开源作者luma) 解析的主类 package com.showtime.IPparse; import java.io.File; import java.io.FileNotFoundException; …

Java后台获取IP地址位置信息

最近做一个项目,某个模块需要根据IP地址获取区域位置和运营商信息,以前都是根据淘宝提供的一个免费获取该信息接口 http://ip.taobao.com/service/getIpInfo.php?ip112.10.111.18 返回结果为 {"msg": "Server is busy ,Current qps 8…

java 根据ip获取地区信息

离线版本&#xff1a; 依赖&#xff1a; maven <dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</artifactId><version>1.7</version> </dependency> gradle implementation org.lionsoul:ip2region:2…