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}
		\toprule
		xxx	& xxx & xxx	\\
		\midrule
		xxx	& 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.mfbz.cn/a/218110.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

父类的@Autowired字段被继承后能否被注入

可以 示例 父类:Animal.class public class Animal {Autowiredprivate PrometheusAlertService prometheusAlertService;public void eat(){System.out.println("eat food");}} 子类:Dog.class Service public class Dog extends Animal …

Vue3 组合式实现 带连接线的Tree型 架构图(一级树形图)

创建组件名称 TreeNodeView.vue <template><div class"tree-node"><div class"node">{{ rootNodeName }}</div><div class"children" :style"childrenLineStyle"><div class"child-node"…

Affinity VS PS 2024最新功能详细对比?Affinity Photo与Photoshop比哪家强?

多年来&#xff0c;ps已经有了大量竞争对手。然而每次Photoshop都足以保持其领先地位。开源GIMP和Pixelmator都试图取代Photoshop&#xff0c;不过Photoshop对此不屑一顾。英国Serif公司研发了一款名为Affinity Photo的软件&#xff0c;声称可以叫板ps。今天我们看看有最有可能…

12.4作业

1. #include <iostream>using namespace std;class Sofa { private:string sitting;string *lying; public:Sofa(){cout << "Sofa::无参构造函数" << endl;}Sofa(string sitting,string lying):sitting(sitting),lying(new string(lying)){cout &…

ffmpeg格式转换 免费使用视频格式转换教程

下载安装 首先去官网下载ffmpeg的软件包https://ffmpeg.org/ 如果是windows可以在直接下载编译好的软件包 https://www.gyan.dev/ffmpeg/builds/ 进入解压后的目录&#xff0c;子目录bin中的ffmpeg.exe就是我们要使用的转换器 视频信息查看 打开cmd控制台&#xff0c;从…

【开源】基于JAVA语言的天沐瑜伽馆管理系统

项目编号&#xff1a; S 039 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S039&#xff0c;文末获取源码。} 项目编号&#xff1a;S039&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课…

Latex去掉参考文献后面的参考文献所在页(去掉参考文献的反向超链接)

如下&#xff1a; 在使用latex插入参考文献的时候&#xff0c;最后面总是会出现这种代号。这是表明的是这条参考文献所在的页码&#xff0c;并且点击之后可以跳转到该页。正式来讲&#xff0c;这个叫超链接的BACKREF。若要去掉&#xff0c;只需要在引用hyperref的时候去掉page…

C++学习之路(十八)C++ 用Qt5实现一个工具箱(点击按钮以新窗口打开功能面板)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《增加托盘图标并且增加显示和退出菜单》功能。今天我们把按钮打开功能的方式改一改&#xff0c;让点击按钮以新窗口打开功能面板。下面我们就来看看如何来规划开发这样的小功能并且添加到我们的工具箱中吧。 老规矩&…

Ubuntu之Sim2Real环境配置(坑居多)

不要一上来就复制哦&#xff0c;因为很多下面的步骤让我走了很多弯路&#xff0c;如果可能的话&#xff0c;我会重新整理再发出来 前提&#xff1a; 参考教程 Docs 创建工作空间(不用跟着操作&#xff0c;无用&#xff09; 1.创建sim2real server container 1.尝试创建sim2r…

导入JDBC元数据到Apache Atlas

前言 前期实现了导入MySQL元数据到Apache Atlas, 由于是初步版本&#xff0c;且功能参照Atlas Hive Hook&#xff0c;实现的不够完美 本期对功能进行改进&#xff0c;实现了导入多种关系型数据库元数据到Apache Atlas 数据库schema与catalog 按照SQL标准的解释&#xff0c;…

直观清晰的带你了解KMP算法(超详细)

KMP算法用来找某个字符串是否存在某个连续的真子串的 下面举一个例子让抽象的KMP算法更加直观&#xff0c;有助于理解 首先我们要了解KMP算法首先要找到一个next数组来表示主串中每一个字符的回退的下标&#xff08;这个下标是对于真子串而言的&#xff0c;主串不需要回退&…

编写并调试运行一个简单的 Java 应用程序,显示自己的学号、姓名、兴趣爱好等。

源代码&#xff1a; public class Main { public static void main(String[] args) { System.out.println("学号是:""0233217821"); System.out.println("姓名是:""赵港"); System.out.println("兴趣爱好是:""运动&qu…

【若依框架实现上传文件组件】

若依框架中只有个人中心有上传图片组件&#xff0c;但是这个组件不适用于el-dialog中的el-form表单页面 于是通过elementui重新写了一个上传组件&#xff0c;如图是实现效果 vue代码 <el-dialog :title"title" v-model"find" width"600px"…

基于Eclipse+Mysql+Tomcat开发的 教学评价管理系统

基于EclipseMysqlTomcat开发的 教学评价管理系统 项目介绍&#x1f481;&#x1f3fb; 随着教育信息化的发展&#xff0c;教学评价管理系统已经成为了学校、教育机构等场所必不可少的一部分。本项目是基于EclipseMysqlTomcat开发的一套教学评价管理系统&#xff0c;旨在帮助教育…

Linux系统上RabbitMQ安装教程

一、安装前环境准备 Linux&#xff1a;CentOS 7.9 RabbitMQ Erlang 1、系统内须有C等基本工具 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz socat2、下载安装包 1&#xff09;首先&a…

C++12.4

沙发床的多继承 多继承代码实现沙发床沙发床继承于沙发和床 代码&#xff1a; #include <iostream>using namespace std;//封装 沙发 类 class Sofa { private:string sitting;double *size; public://无参构造函数Sofa() {cout << "Sofa::无参构造函数&quo…

JAVAEE初阶相关内容第十六弹--网络原理之TCP_IP

目录 1. TCP-IP五层模型 2. UDP协议 2.1 特点 2.2 UDP协议端格式 2.3 校验和 3. TCP协议 3.1 特点 3.2 TCP协议段格式 3.2.1 首部长度 3.2.2 选项 3.2.3 保留6位 3.3 TCP内部的工作机制 3.3.1 确认应答 &#xff08;1&#xff09;应答报文ack &#xff08;2&…

【Filament】Filament环境搭建

1 前言 Filament 是一个实时物理渲染引擎&#xff0c;用于 Android、iOS、Linux、macOS、Windows 和 WebGL 平台。该引擎旨在提供高效、实时的图形渲染&#xff0c;并被设计为在 Android 平台上尽可能小而尽可能高效。Filament 支持基于物理的渲染&#xff08;PBR&#xff09;&…

【Vue】使用 Vue CLI 脚手架创建 Vue 项目(使用GUI创建)

前言 在开始使用Vue进行开发之前&#xff0c;我们需要先创建一个Vue项目。Vue CLI&#xff08;Command Line Interface&#xff09;是一个官方提供的脚手架工具&#xff0c;可以帮助我们快速创建Vue项目。Vue CLI也提供了一个可视化的GUI界面来创建和管理Vue项目。 步骤 打开终…

接口获取数据控制台打印有值但是展开又没有了

谷歌浏览器只会展现响应式数据最后的结果&#xff0c;证明原来接口是有值的&#xff0c;后面对这个数据进行操作后&#xff0c;最终没有值了。所以对数据进行操作时最好对数据进行一次深拷贝 JSON.parse(JSON.stringify(data))
最新文章