LaTex入门简明教程

文章目录

  • 写在前面
  • 安装
    • Texlive的安装
    • TeXstudio 的安装
  • LaTex 的使用
    • 节指令
    • 图指令
    • 表指令
    • 公式指令
    • 参考文献指令
    • 引用指令
    • TeXstudio 编译
  • LaTex 的 `\label{}` 写法建议
  • 最后

写在前面

这篇文章面向没有任何 LaTex 基础的小白,主要讲解了 LaTex 的安装和使用。读完文章之后,已经具备基础的 LaTex 文档编写能力,可以使用 LaTex 进行写作。

刚开始上研究生的时候,写论文和文档用的是 Word。后来第一次写小论文的时候,接触了 LaTex ,学会了用 LaTex 写论文,于是发现了 LaTex 的好。

比起 Word来, LaTex 实在好用太多。

比如说写一本百来页的学位论文,页码、标题编号、图编号、表编号、公式编号、文献引用等等,都是一件十分十分繁杂的事情。特别容易出现察觉不到但又无从解决的问题。

有的同学可能觉得既然难办,那就不办咯。

于是选择纯手工敲 Word。

导致整个 Word里,标题数字是自己手打上去的,图编号是自己手打上去的,表编号是自己手打上去的,公式编号说不定也是自己打上去的,说不定还在头痛怎么把数学公式居中,公式编号放在最左边呢。

也有可能100多篇文献的引用也是自己手敲上的。

内心十分佩服这样的新世纪勇士。

但是有没有想过一个这样的问题:

假如你引用了100篇参考文献,突然!!!中间的第42篇文献你不需要了,在正文里把这篇文献删掉,那么后面的文献是不是需要把所有的文献序号往前提一位?

其实这个时候还好,因为只删了一篇文献,还算有一些规律。

但要是删掉好几篇文献呢?这个时候序号就完全乱掉了,要是再重新把文献序号改成正常的顺序,是一件让人头皮发麻的事情。

不过我承认,多花一些时间,是可以整出来的。

但是,为什么要花那么多时间来整这样没有意义的事情呢?能不能用一些更快的方式呢?关于Word的使用教程,我在前面的文章里面已经详细介绍过,这里想介绍一种新的文档编写工具。

在这里插入图片描述
LaTex 是一种可以让写作者专注于内容的文档编写手段,它把文档格式和文档内容分开,格式是格式,内容是内容,两者互不干扰。让写作者不用再为乱糟糟的文档格式发愁,只需要专心把文字内容写上去就好了。

至于之前提到的页码、标题编号、图编号、表编号、公式编号、文献引用什么的,统统都不用管。

甚至连目录都只需要一行指令就可以自动生成。

在这里插入图片描述

趣闻:LaTex 的诞生。

计算机领域有一本特别特别著名的书,《计算机编程艺术》。这本书是斯坦福大学的 Donald Knuth 教授计划编写的一系列书籍。Donald Knuth 在写这本书的时候,遇见一个很大的问题——没有一种很好的排版方式来实现他想要达到的效果。于是自己开发了一种编程语言来给自己正在写的书排版,也就是 TeX 语言。

再后来,Leslie Lamport 在已有的 TeX 语言上开发一系列更加易于使用的宏,并将这些宏开源。于是只需要运行一个程序,让 Tex 引擎先读取这个宏,来实现复杂的需求。于是 LaTex 诞生了。

很有意思的出现过程啊。

相当于本来想吃顿红烧肉,于是从养猪这一步开始做起,最后没有想到,猪也被人养得挺好的。

安装

首先要介绍的是 TeX Live 的安装和 TeXstudio 的安装。

在我的理解里,TeX Live 是运行 TeX 文档制作系统的基础语言,而 TeXstudio 是编译 TeX 的工具,那么 LaTex 就是一把使用TeX语言大杀四方的宝刀。

Texlive的安装

进入清华大学开源软件镜像网站,https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/。

在这里插入图片描述

网站里一般会给出最新版本的 Tex Live ,现在是最新的 Tex Live 2023。

年初给自己电脑下载 Tex Live 的时候,还是 Tex Live 2022。

这里建议尽可能地保持自己电脑中的 Tex Live 是比较新的版本。因为有的期刊给的 LaTex 模板里,使用比较老的 Tex Live 版本可能没有办法编译成功。

下载 texlive2023.iso 文件。下载好之后,解压到文件夹中。

在这里插入图片描述

点击 install-tl-windows.bat 安装。

在这里插入图片描述

最好不要更改任何设置,点击安装即可。会出现下面的界面,表示正在安装。

在这里插入图片描述

当出现如下所示的界面时,说明安装完毕,点击退出即可。

在这里插入图片描述

最好再验证一下 Tex Live 是否真的安装成功。

按下 win+R,输入 cmd,出现系统终端界面。再输入 tex -v,出现以下信息,说明安装成功。

在这里插入图片描述

TeXstudio 的安装

安装好 Tex Live 后,需要再安装 Texstudio , Texstudio 是编写 Tex 的工具。其实安装好 Tex Live 后,会自带一个编写工具。但是那个工具实在不好用,基本上没有人会用,现在用得比较多的工具还是 Texstudio 。

进入 Texstudio 官网([https:// Texstudio .sourceforge.net/](https:// Texstudio .sourceforge.net/))点击下载(Download now)即可。

在这里插入图片描述

Texstudio 很简单,一路点击下一步即可安装成功,这里不再赘述。

在这里插入图片描述

安装好之后,打开TeXstudio,界面如下所示。

在这里插入图片描述

这样,TeXstudio 也安装好了。

LaTex 的使用

安装好 Tex Live 和TeXstudio后,就可以开始 LaTex 的编写了。

在这里我用一个期刊的模板作为讲解。因为99%的情况下我们都不用自己写 LaTex 的风格文件,只需要用期刊编写好的风格文件就可以,所以不用担心自己需要从零到有创造一个全新的 LaTex 文件出来。

一般来说,期刊给的 LaTex 模板里包含了投稿所需的所有内容,我们只需要把文字填写进去即可。

这里我用的是出版 Nature 杂志的出版社 Springer 的 LaTex 模板,可以点击这里下载。

好了!下面让我们开始编写 LaTex 。

因为这篇教程是面向小白的文章,所以我只会介绍几种最常用的指令,以免一下子接收太多知识无法消化。

要介绍的指令一共有以下 6 种:

  1. 节指令:\section{}\subsection{}
  2. 图指令:\begin{figure} ... \end{figure}
  3. 表指令:\begin{table} ... \end{table}
  4. 公式指令:\begin{equation} ... \end{equation}
  5. 参考文献指令:\bibliography{}
  6. 引用指令:\cite{}\ref{}\eqref{}

节指令

\section{}\subsection{}是用来生成论文中的“节”。

\section{} 生成的是论文中的某节,比如第1节,第2节,第3节,等等。

\subsection{} 生成的是论文中的某子节,比如第1.1节,第1.2节,第1.3节,等等。

或许还有机会用到 \subsubsection{},生成的是第三级的子节,比如第1.1.1节,第1.1.2节,第1.1.3节,等等。

图指令

通常写法是这样子的:

\begin{figure}[htbp]\centering\includegraphics[width=0.5\textwidth]{fig.pdf}\caption{Some caption}\label{fig:your_label}
\end{figrue}

从上往下讲解。

  • \begin{figure} ... \end{figure}代表插入图的框架。
  • [htbp] 表示插入图的位置。现在你不用知道为什么 htbp要全部写上,反正能用就行。
    • h:here,当前位置。
    • t:top,页面顶部。
    • b:bottom,页面底部。
    • p:page,浮动页面。
  • \centering表示插入的图为居中格式。
  • \includegraphics[width=\textwidth]{fig.pdf}表示插入图片。
    • [width=0.5\textwidth]:图宽度是页面宽度的1/2。
    • {fig.pdf}:要插入的图文件,一般与.tex文件放在同一路径。
  • \caption{Some caption}表示图例说明,一定要放在\includegraphics[width=\textwidth]{fig.pdf}的下面
  • \label{fig:your_label}表示图引用标签,为后面引用作准备。

插入图的话,记得在文档最开始插入宏包 \usepackage{graphicx}

表指令

通常写法是这样子的:

\begin{table}[htbp]\centering\caption{your_caption}\label{tab:your_label}\begin{tabular}{ccc}\toprulexxx	& xxx & xxx	\\\midrulexxx	& xxx & xxx	\\\bottomrule\end{tabular}
\end{table}

从上往下讲解。

  • \begin{table} ... \end{table}代表插入表的框架。
  • [htbp] 表示插入表的位置,含义已在前面解释过。
  • \centering表示表格居中。
  • \caption{your_caption}\label{tab:your_label}的含义在前面已经解释过,但需要注意的是,这两行代码一定要放在\begin{tabular}{ccc} ... \end{tabular}的前面
  • \begin{tabular}{ccc} ... \end{tabular}表示创建表格环境,表的内容全部写在这里面。
    • {ccc}表示表格有3列,居中格式。
    • \toprule\midrule\bottomrule分别为三线表的上、中、下线。
    • &连接一行之中的各元素,\\表示表格换行。

插入表的话,记得在文档最开始插入宏包 \usepackage{booktabs}

如果不会写表格的话,可以用[在线网站](https://tableconvert.com/zh-cn/ LaTex -generator)编辑表格,把编辑好的表格代码复制进 LaTex 文档中就好了。

在这里插入图片描述

公式指令

通常写法是这样子的:

\begin{equation}\label{eq:your_label}r=a(1-sinθ)
\end{equation}

上面的公式写出来是这样子。
r = a ( 1 − s i n θ ) r=a(1-sinθ) r=a(1sinθ)
从上往下讲解。

  • \begin{equation} ... \end{equation}代表插入公式的框架。
  • \label{eq:your_label} 为数学公式的标签。
  • r=a(1-sinθ)为想要编写的公式。

插入公式的话,记得在文档最开始插入宏包 \usepackage{amsmath}

你可能会担心,不知道如何写 LaTex 公式怎么办?

没有关系,有在线网站可以解决这个问题。大家可以在网站里面编写好公式,再把代码复制进 LaTex 文档中就好啦。

在这里插入图片描述

参考文献指令

只有一行,很简单,\bibliography{reference}reference代表文件reference.bib,文件名可以随便取。

reference.bib为要引用的参考文献,各期刊网站都会给出论文的bibtex格式,导出的时候选择bibtex即可。

举个例子,我在reference.bib里写入一篇文献。

@article{long2018performance,title={Performance analysis for minimally nonlinear irreversible refrigerators at finite cooling power},author={Long, Rui and Liu, Zhichun and Liu, Wei},journal={Physica A: Statistical Mechanics and its Applications},volume={496},pages={137--146},year={2018},publisher={Elsevier}
}

第一行 long2018performance 就是要在正文中引用文献的关键字。

一般来说,使用了\bibliography{reference}作为参考文献的引用方式,还需要另外加上一个参考文献的风格文件,代码是\bibliographystyle{}

另外,这篇论文很浪漫,作者在最后的致谢里向对象求婚了。

在这里插入图片描述

还有另外一种引用参考文献的方式,不过没有 \bibliography{reference} 简洁。所以防止大家吸收知识太多导致脑袋混乱,这里就不再作介绍了。

引用指令

常用的引用指令有 3 种,\cite{}\ref{}\eqref{}

  • \cite{} 为参考文献的引用方式,像前面提到的论文要在正文中引用的话,输入代码 \cite{long2018performance} 即可。
  • \ref{} 通常用于引用打了标签(\label{})的地方,比如说章节号、图号、表号等等。
  • \eqref{} 用于引用公式编号。

TeXstudio 编译

好了!掌握了上面 6 种指令的使用,现在就可以在 TeXstudio 中编译 LaTex 了。

打开 TeXstudio ,再打开 .tex 文件,点击编译。

在这里插入图片描述

点红框那个按钮!其他的不用管。

如果没有报错的话,就可以得到一份全新的文档啦!

在这里插入图片描述

如果没有编译成功,TeXstudio 会在下面的信息框里提示错误信息,根据错误信息上网搜搜解决方法,一般都可以解决。

在这里插入图片描述

假如文档中出现“?”的情况,比如下面这样子。

在这里插入图片描述

不要慌,多编译几次就会出来了。这是 LaTex 编译链的问题,不理解没有关系,记住就好啦!

在这里插入图片描述

LaTex 的 \label{} 写法建议

这个部分我想单独拿出来讲,因为假如 \label{} 写得不好的话,写成的 LaTex 文档维护难度很高。拿公式举例子,一篇论文里面有 5 个公式,有些小伙伴可能就很简单地按照顺序命名成:

\label{eq1}
\label{eq2}
\label{eq3}
\label{eq4}
\label{eq5}

这样的命名方式是不太推荐的。也许 \label{eq2} 代表论文中的第 2 个公式,但如果第 2 个公式删掉了,第 3 个公式成为了第 2 个公式。那么现在代表第 2 个公式的 \label{eq3} 就有点意义不明,所以不推荐这样的命名方式。

我的命名习惯是这样:要引用的文本类型: 该文本意义

比如说,前面提到的公式就可以命名为

\label{eq:heart}

因为 r=a(1-sinθ) 是心形函数,所以把它命名成 eq:heart

下面是具体实例:

  • 节(section):sec:name
  • 子节(subsection):subsec:name
  • 子子节(subsubsection):subsubsec:name
  • 图(figure):fig:name
  • 表(table):table:name
  • 公式(equation):eq:name
  • 算法(algorithm):algo:name
  • 定义(definition):defi:name
  • 定理(theorem):theo:name
  • 引理(lemma):lma:name
  • 证明(proof):prf:name
  • 备注(remark):rmk:name
  • 假设(assumption):asp:name

最后

好了,就这么多!祝大家编写 LaTex 文档顺利!

欢迎通过邮箱联系我:lordofdapanji@foxmail.com

来信请注明你的身份,否则恕不回信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197979.shtml

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

相关文章

android https 证书过期

有的时候 我们android https 证书过期 ,或者使用明文等方式去访问服务器 可能会碰到类似的 问题 : javax.net.ssl.SSLHandshakeException: Chain validation failed java.security.cert.CertPathValidatorException: Response is unreliable: its validi…

通讯录管理系统(基于C语言)

模块设计 本通讯录管理系统功能模块共包括9个部分:1.输入数据、2.显示数据、 3.插入数据、4.删除数据、5.查看数据、6.修改数据、7.保存数据、 8.返回主菜单、9.退出系统. 一.总体设计 通讯录的每一条信息包括:姓名、性别、住址、联系电话…

西南科技大学模拟电子技术实验七(集成运算放大器的非线性应用)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 预习计算内容根据运放的非线…

【Linux下如何生成coredump文件】

一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢&#…

QT使用SQLite(打开db数据库以及对数据库进行增删改查)

QTSQLite 在QT中使用sqlite数据库,有多种使用方法,在这里我只提供几种简单,代码简短的方法,包括一些特殊字符处理。 用SQlite建立一个简单学生管理数据库 数据库中有两个表一个是class和student。 class表结构 student表结果…

非标设计之气缸类型

空压机: 空压机又称空气压缩机,简单来说就是将机械能转化为压力能来进行工作的,空压机在电力行业应用比较多,除了在电力行业应用较多外,其实空压机还有一个比较常见的用途就是用来制冷和分离气体,输送气体…

【web安全】RCE漏洞原理

前言 菜某的笔记总结,如有错误请指正。 RCE漏洞介绍 简而言之,就是代码中使用了可以把字符串当做代码执行的函数,但是又没有对用户的输入内容做到充分的过滤,导致可以被远程执行一些命令。 RCE漏洞的分类 RCE漏洞分为代码执行…

RT-Thread 三步实现利用DMA进行串口发送

应某些网友需求,说网上根本找不到基于Rt-Thread DMA串口发送代码,只有官方开源的串口DMA接收。 其实这些东西并不难,只要你细心去看哪些闲置的驱动文件且都是包装好的,通过关键字去查询或点开源文件查看,花不了几分钟…

【C/PTA —— 14.结构体1(课内实践)】

C/PTA —— 14.结构体1(课内实践) 6-1 计算两个复数之积6-2 结构体数组中查找指定编号人员6-3 综合成绩6-4 结构体数组按总分排序 6-1 计算两个复数之积 struct complex multiply(struct complex x, struct complex y) {struct complex product;product.…

Selenium 自动化高级操作与解决疑难杂症,如无法连接、使用代理等

解决 Selenium 自动化中的常见疑难杂症 这里记录一些关于 Selenium的常用操作和疑难杂症。 有一些细节的知识点就不重复介绍了,因为之前的文章中都有! 如果对本文中的知识点有疑问的,可以先阅读我以前分享的文章! 知识点&…

PyQt实战 创建一个PyQt5项目

前后端分离 参考链接 PyQt5实战(二):创建一个PyQt5项目_pyqt5实战项目_笨鸟未必先飞的博客-CSDN博客 项目目录 创建一个QT项目 调用pyuic工具将dialog.ui文件编译为Python程序文件ui_dialog.py。 # -*- coding: utf-8 -*-# Form implemen…

【离散差分】LeetCode2953:统计完全子字符串

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本题其它解法 【滑动窗口】LeetCode2953:统计完全子字符串 涉及知识点 分块循环 离散差分 题目 给你一个字符串 word 和一个整数 k 。 如果 word 的一个子字符串 s 满足以下条件,我们称它是 完全…

云原生之深入解析如何限制Kubernetes集群中文件描述符与线程数量

一、背景 linux 中为了防止进程恶意使用资源,系统使用 ulimit 来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等)。同样地在容器化场景中,需要限制其系统资源的使用量。ulimit: docker 默认支持…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

同旺科技 USB TO SPI / I2C --- 调试W5500_TCP Client测试

所需设备: 内附链接 1、USB转SPI_I2C适配器(专业版); 首先,连接W5500模块与同旺科技USB TO SPI / I2C适配器,如下图: 网关IP地址寄存器(192.168.1.1)子网掩码寄存器(255.255.255.0)源MAC地址寄存器源IP地址寄存器(192.168.1.8)…

QT4和 QT5 槽函数连接的区别

正常连接方式 //QT4官方用列QLabel *label new QLabel;QScrollBar *scrollBar new QScrollBar;QObject::connect(scrollBar, SIGNAL(valueChanged(int)),label, SLOT(setNum(int)));//QT5官方用列QLabel *label new QLabel;QLineEdit *lineEdit new QLineEdit;QObject::c…

STK Components 二次开发-飞行器

1.创建飞机 参数帮助文档 var poitList GetTracksData(); var waypointPropagator new WaypointPropagator(m_earth, poitList); var locationPoint waypointPropagator.CreatePoint();m_aircraft new Platform {Name "MH730",LocationPoint locationPoint,Or…

vue3 中使用 sse 最佳实践,封装工具

工具 // 接受参数 export interface SSEChatParams {url: string,// sse 连接onmessage: (event: MessageEvent) > void,// 处理消息的函数onopen: () > void,// 建立连接触发的事件finallyHandler: () > void,// 相当于 try_finally 中的 finally 部分,不…

机器学习(2)回归

0.前提 上一期,我们简单的介绍了一些有关机器学习的内容。学习机器学习的最终目的是为了服务我未来的毕设选择之一——智能小车,所以其实大家完全可以根据自己的需求来学习这门课,我做完另一辆小车后打算花点时间去进行一次徒步行&#xff0…

20:kotlin 类和对象 --泛型(Generics)

类可以有类型参数 class Box<T>(t: T) {var value t }要创建类实例&#xff0c;需提供类型参数 val box: Box<Int> Box<Int>(1)如果类型可以被推断出来&#xff0c;可以省略 val box Box(1)通配符 在JAVA泛型中有通配符?、? extends E、? super E&…