Latex的语法和使用

本文最后更新于 2024年5月14日 上午

本文主要整理了一些常用的Latex语法。

整体架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
% 导言区,英文文献用article
%\documentclass{article} %英文文献
\documentclass[utf-8]{ctexart} %中文用这个

% 导包都在\begin{document} 前面进行导入
% 导入中文包
\usepackage{ctex}

\begin{document} % 文献所有内容都要在document里面
\title{\heiti 题目}
\author{\kaishu 作者}
\date{\today} % 显示当天时间
\maketitle % 显示题目

% 正文区域
\begin{abstract}
摘要
\end{abstract}

\section{一级标题}

\subsection{二级标题}

\subsubsection{三级标题}
\end{document}

导入模板

  1. *.cls模板文件放在与*.tex同一个路径下。
  2. 导入包,\documentclass{cls文件名},与*.cls文件名字保持一致,运行就行了。

换行&分段&换页&空格

换行

  • 在LaTeX中,一个回车表示一个空格,两个回车表示一个分段。多个连续的空行,只会被看成一个空行。
  • 在段落模式下,\newline 命令相当于双反斜杠(\\)。

分段

  • \par

换页

  • \newpage

空格

要求 Latex语法 可视化 说明
两个quad空格 a \qquad b a quad b 两个m的宽度
quad空格 a \quad b a uad b 一个m的宽度
大空格 a\ b ab 1/3m宽度
中等空格 a\;b ab 2/7m宽度
小空格 a\,b ab 1/6m宽度
没有空格 ab ab
紧贴 a\!b ab 缩进1/6m宽度

\quad1ememm代表当前字体下接近字符M的宽度。

数学公式

基本语法

LaTeX数学符号大全

1
2
$ 行内公式 $  % 数学公式的前后要加上$或\,比如:$f(x) = 3x + 7$和\(f(x) = 3x + 7) \效果是一样的
$$ 行间公式 $$ % 如果用\\公式,或者使用$$公式 ,则该公式独占一行

涉及到上下标的公式就算是一个变量前后也要加$,不然会编译失败

1
2
A^{bc}  上标
A_{bc} 下标

向量表示

1
2
3
% 有两种形式
\boldsymbol % 加粗
\vec % 上面加横向箭头

单行公式

如果用 \begin{equation}\end{equation},则公式除了独占一行还会自动被添加序号。

如何公式不想编号则使用 \begin{equation*} \end{equation*}

1
2
3
4
% 公式插入
\begin{equation}
a^{2}+b^{2}=c^{2}
\end{equation}

多行公式

导包:\usepackage{amsmath}

1
2
3
4
5
6
7
% 系统自动编号,允许公式按等号或其他关系符对齐,在关系符前加 &表示对齐;
\begin{equation}
\begin{aligned}
aa \\
bb
\end{aligned}
\end{equation}
1
2
3
4
5
% 自己手动编号
\begin{gather}
公式1 \\ \tag{公式编号}
公式2 \tag{公式编号}
\end{gather}

插入矩阵

1
2
3
4
5
6
7
8
9
10
11
% & 分割元素,\\ 换行
$$
\left[
\begin{matrix}
d_{10}(t) & d_{11}(t) & ... & d_{1n}(t) \\
d_{20}(t) & d_{21}(t) & ... & d_{2n}(t) \\
\vdots & \vdots & ... & \vdots \\
d_{n0}(t) & d_{n1}(t) & ... & d_{nn}(t) \\
\end{matrix}
\right]
$$

插入图片

  1. 导入图片包\usepackage{graphicx}

  2. 把图片跟*.tex文件放在同一路径下,可以直接导入,如果不是同一路径就使用绝对路径。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    % 一张图片占一栏
    \begin{figure}[h]
    \centering
    \includegraphics[scale=0.35]{system_model.png}
    \caption{system model}
    \end{figure}
    % 一张图片占双栏
    \begin{figure*}[h]
    \centering
    \includegraphics[scale=0.35]{system_model.png}
    \caption{system model}
    \end{figure*}

    其中,

    1
    2
    3
    4
    5
    figure参数:h 此处(here)t 页顶(top)b 页底(bottom)p 独立一页(page)
    figure* 双栏排版可加入通栏图片
    \centering表示的是里面紧跟的内容都居中
    \includegraphics[缩放比例]{图片途径}
    \caption添加标题
  3. 插入并排图片:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    % 导包
    \usepackage{geometry}%页面设置
    \usepackage{graphicx}%图片设置
    \usepackage{subfig}%多个子图
    \usepackage{caption}%注释设置

    \begin{figure*}[htp] %[htbp]中的h是浮动的意思
    \centering %居中
    \subfloat[子图1名称] %第一张子图
    {
    \begin{minipage}[t]{0.5\textwidth}
    \centering %子图居中
    \includegraphics[scale=0.5]{paper_img/ave_delay.png}
    \end{minipage}%
    }%注意这里不能回车空行,否则两张图会上下排列,而不是并排排列
    \subfloat[子图2名称] %第二张子图
    {
    \begin{minipage}[t]{0.5\textwidth}
    \centering %子图居中
    \includegraphics[scale=0.5]{paper_img/all_delay.png} %以行宽的0.5倍大小显示
    \end{minipage}
    }%
    \caption{大图名称} % %大图名称
    \label{fig2} %图片引用标记
    \end{figure*}

插入表格

小技巧

控制表格标题位置

现有一个表格,若要把表格标题放在表格下面,则把\caption{***}这一行代码放在下面,如下所示:

1
2
3
4
5
6
7
8
9
10
\begin{table}[H]
\renewcommand{\arraystretch}{1.3}
\centering
\begin{tabular}{c|cc|cc}
\hline
\hline
\end{tabular}
\caption{***}
\label{tab1}
\end{table}

若要把表格标题放在表格上面,则把\caption{***}这一行代码放在上面,如下所示:

1
2
3
4
5
6
7
8
9
10
\begin{table}[H]
\renewcommand{\arraystretch}{1.3}
\caption{***}
\label{tab1}
\centering
\begin{tabular}{c|cc|cc}
\hline
\hline
\end{tabular}
\end{table}

\label{tab1}一定要放在\caption{***}后面。(\label即标记,用于\ref即引用)

控制浮动体的位置

在LaTeX中,tablefigure等环境都是浮动体。当我们在这些环境后面添加[htbp!]等参数时,如\begin{figure}[h],我们实际上在告诉LaTeX我们希望浮动体出现在何处。

[htbp!]中的每个字母代表一个特定的位置:

  • h(here):就在当前位置。
  • t(top):在当前页面的顶部。
  • b(bottom):在当前页面的底部。
  • p(page):在一个特殊的浮动体页面,该页面除了浮动体和它们的标题外不包含任何其他内容。
  • !:这是一个特殊的标记,它告诉LaTeX忽视大部分对浮动体位置的内建限制,尽可能地满足我们的位置需求。

要使用[htbp!],只需将其作为参数添加到浮动体环境后面即可。例如:

1
2
3
4
5
6
7
8
9
10
11
12
\begin{figure}[h]
\includegraphics{figure.jpg}
\caption{This is a figure.}
\end{figure}

\begin{table}[ht]
\centering
\begin{tabular}{c c}
% Your table here.
\end{tabular}
\caption{This is a table.}
\end{table}

在上面的例子中,figure环境的参数是[h],这告诉LaTeX我们希望图像就在当前位置。table环境的参数是[ht],这告诉LaTeX我们优先希望表格在当前位置,如果这不可能,那么就放在页面顶部。

虽然[htbp!]能够让我们对浮动体的位置有更多的控制,但它们并不总是能够完全满足我们的期望。LaTeX的排版算法有其内在的逻辑和限制,它旨在使整个文档的排版看起来整齐和美观。因此,即使我们使用了[htbp!],LaTeX也可能不会完全按照我们的期望来放置浮动体。

导入参考文献

  1. 创建*.bib文件。在TexStudio中新建文件,然后保存的时候选择保存为*.bib文件,即创建了一个BibTex参考文献库,如创建的BibTex库的名字为:ref.bib

  2. 添加引用文章的内容,复制文献的BibTex引用格式,粘贴到ref.bib里。例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @article{mur2017orb,
    title={Orb-slam2: An open-source slam system for monocular, stereo, and rgb-d cameras},
    author={Mur-Artal, Raul and Tard{\'o}s, Juan D},
    journal={IEEE transactions on robotics},
    volume={33},
    number={5},
    pages={1255--1262},
    year={2017},
    publisher={IEEE}
    }
  3. *.tex文章开头,\begin{document}前加入\usepackage{cite}

  4. 添加引用配置,可选的引用格式包括:

    1
    2
    3
    4
    5
    6
    7
    8
    1. plain,按字母的顺序排列,比较次序为作者、年度和标题
    2. unsrt,样式同plain,只是按照引用的先后排序
    3. alpha,用作者名首字母+年份后两位作标号,以字母顺序排序
    4. abbrv,类似plain,将月份全拼改为缩写,更显紧凑
    5. ieeetr,国际电气电子工程师协会期刊样式
    6. acm,美国计算机学会期刊样式
    7. siam,美国工业和应用数学学会期刊样式
    8. apalike,美国心理学学会期刊样式

    例如,如果想按照cite顺序自动排序文献编号,则把\bibliographystyle{unsrt}放在\begin{document}后面,\bibliography{ref(这里是管理参考文献.bib文件的文件名)}放在\end{document}前面。

  5. 添加引用,在文中添加引用,引用格式如下:\cite{mur2017orb},括号里面填ARTICLE后面的代号就行了,此时引用序号为正文字体大小。使用\upcite{},此时引用序号为上标。

  6. 点击Tools-Bibliography先把*.bib文件编译一下,然后编译两次*.tex文件就行成看到引用的文献啦。

    将参考文献在正文中进行引用后,再进行编译。如果不引用,该参考文献将不会出现在参考文献列表中。

小技巧

比较两个Latex文件的不同

参考链接

使用latexdiff,而且TexLive就自带了latexdiff。

  1. 查看latexdiff是否可用:

    在终端输入命令:

    1
    latexdiff

    结果如下则可以直接使用:

    1
    2 and only 2 non-option arguments required.  Write latexdiff -h to get help
  2. 比较两个文件的不同:

    1
    latexdiff origin.tex modify.tex > diff.tex
  3. 报错处理:

    • 使用PdfLaTex编译器编译直接报错编译失败,没有提示信息。切换为XeLaTex编译器编译成功。这个问题是因为latexdiff默认的编码方式是UTF-16 LE格式导致的。也可以通过将diff.tex的编码方式改为UTF-8或者新建一个文本文档,将diff.tex的内容复制进去解决。

删除注释行

根据参考链接,定义LaTeX格式文本注释行的正则表达式如下:

注释类型 正则表达式
多行注释 r'(?m)^%.*\n?'
单行注释 r'[^\\]%.+$'

经测试,单行注释的正则表达式为%.+$,将其替换为空字符即可。不过删除之后留下的空行可能会导致报错,根据报错位置删除空行即可。

参考链接

TexStudio的安装及简单使用(持续更新)

Latex中的空格

TexStudio的安装与使用教程(包括参考文献的引用)Latex教程

LaTeX+TexStudio环境配置

LaTeX中的[htbp!]选项:控制浮动体的位置

LaTeX的表格标题位置


Latex的语法和使用
http://zeyulong.com/posts/874d7da/
作者
龙泽雨
发布于
2024年5月11日
许可协议