LaTex学习笔记

1. VSCode+LaTex写作环境配置

1.1 VSCode配置

安装latex-workshop插件。

image-20230103201717610

配置默认的LaTex编译器和编译工具。我们使用miktex作为编译后端。在vscode的settings.json文件中添加:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//配置Latex Workshop的编译方案(recipe)
"latex-workshop.latex.recipes": [
{
"name": "texify", //放在最前面为默认编译方案, 适用于MikTex
"tools": [
"texify"
]
},
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "xe->bib->xe->xe",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
}
],
//配置Latex Workshop的编译工具(tool)
"latex-workshop.latex.tools": [
{
"name": "texify",
"command": "texify",
"args": [
"--synctex",
"--pdf",
"--tex-option=\"-interaction=nonstopmode\"",
"--tex-option=\"-file-line-error\"",
"%DOC%.tex"
]
},
{
// 编译工具和命令
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.clean.enabled": true //在编译出PDF后,删除临时文件

1.2 下载MikTex

官网下载:Home (miktex.org)

下载下来安装即可。

1.3 环境测试

新建LaTex文件

1
2
3
4
5
6
7
8
9
10
11
%!TEX program = xelatex
% 使用 ctexart 文类,UTF-8 编码
\documentclass[UTF8]{ctexart}
\title{文章标题}
\author{Siwind}
\date{\today}
\begin{document}
\maketitle
This is the context of the article.
这就是文章的所有内容。
\end{document}

点击Build Latex Project进行编译。

image-20230103210634990

在编译过程中,如果弹窗提示缺少宏包,只需依次点击安装即可。编译成功,点击预览效果如下。

image-20230103210857202

2. LaTex基础

一个LaTex文件分为两个部分:导言正文。 在\begin{document}\end{document}之间的是文档的正文内容。 在\begin{document}之前的命令称为preamble(导言)。

Tex文件样例:

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
26
27
28
29
30
31
32
33
34
\documentclass[12pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{comment}

% Title
\title{Document Title}
\author{Nobody \thanks{Somebody}}
\date{Some Date}

\begin{document}

\begin{titlepage}
\maketitle
\end{titlepage}

\tableofcontents

\begin{abstract}
This is a simple paragraph at the beginning of the
document. A brief introduction about the main subject.
\end{abstract}

First document. This is a simple example, with no
extra parameters or packages included.

% Comments
\begin{comment}
This text won't show up in the compiled pdf
this is just a multi-line comment. Useful
to, for instance, comment out slow-rendering
while working on the draft.
\end{comment}

\end{document}

2.1 导言部分 LaTex命令简介

preamble(导言)部分通常用于定义文档的格式、语言等。常用命令如下。

\documentclass

\documentclass命令是用于设置LaTex文件所生成文档的格式。其命令语法如下所示:

1
\documentclass[options]{class} 

常用的文档格式有:

Class 简介
article 科技论文,报告,软件文档等
IEEEtran IEEE Transactions 格式.
proc 法律文书
report 长篇报告(如:学位论文)
book 书籍
slides 幻灯片
memoir 传记
letter 信件
beamer PPT

中文支持

1
\documentclass{ctexart}

文档格式修正项

Options 简介
12pt 文档正文使用的字体大小(默认为10pt)
a4paper, letterpaper 页面规格(默认为letterpaper或a4paper)
fleqn 正文显示的公式左对齐(默认居中)
leqno 将公式的编号放在左侧(默认右侧)
titlepage,notitlepage 是否在文档标题之后开启新页面。默认情况下,article类不会开启新页面,而report和book会开启新页面。
twocolumn 在两列中键入文档(默认单列)

示例:

1
2
% 正文字体大小为12pt, 页面规格是A4, 使用article文档格式
\documentclass[12pt, a4paper]{article}

\usepackage

\usepackage命令设置编译LaTex文件时要导入的扩展包。

示例:

1
2
\usepackage[utf8]{inputenc}
\usepackage{comment}

封面格式

1
2
3
\title{Document Title}
\author{Nobody \thanks{Somebody}}
\date{Some Date}

设置所要生成文档的封面内容: 文档名,作者,日期等(这只是设置了封面格式,生成封面的是在正文中的\maketitle命令)。

注释

1
2
3
4
5
6
7
% Comments 
\begin{comment}
This text won't show up in the compiled pdf
this is just a multi-line comment. Useful
to, for instance, comment out slow-rendering
while working on the draft.
\end{comment}

从百分号%开始到这一个行结束的部分是LaTex文件的注释内容,不在编译后生成的pdf文档中显示。
\begin{comment}\end{comment}之间的内容也不在编译后生成的pdf文档中显示。

保留字符

1
# $ % ^ & _ { } \

这些字符在Latex中有特殊的意义,要想在生成的文档中显示这些字符,Latex文档中这些字符前加反斜杠"\" :

1
\#   \$   \%   \^   \&   \_  \{   \} 

因为两个反斜杠"\\"在Latex中是换行命令,可使用

1
$\backslash$

2.2 正文部分LaTex命令简介

生成封面

1
2
3
\begin{titlepage}
\maketitle
\end{titlepage}

按照在preamble(导言)中设置的封面格式生成文档封面。

生成目录

1
\tableofcontents

生成文档目录

页码

设置数字类型

1
\pagenumbering{digit type}

digit type:

  • arabic 阿拉伯数字(1,2,3,4),默认样式
  • roman 小写罗马数字(i,ii,iii,iv)
  • Roman 大写罗马数字(I,II,III,IV)
  • alph 小写拉丁字母(a,b,c,d)
  • Aiph 大写拉丁字母(A,B,C,D)

设置页码

1
\setcounter{page}{page number}

让当前页不标页码

1
\thispagestyle{empty}

示例,在封面不标记页码,目录页使用小写罗马数字标记页码,正文部分使用阿拉伯数字标记页码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\begin{document}

%% Making title pate
\begin{titlepage}
\maketitle
\thispagestyle{empty}
\end{titlepage}

%% Contents
\pagenumbering{roman}
\tableofcontents

\newpage
\pagenumbering{arabic}
\setcounter{page}{1}

章节和段落

1
2
3
4
5
6
7
8
9
\section{Hello China} % 一号标题
China is in East Asia.
\subsection{Hello Beijing} % 二号标题
Beijing is the capital of China.
\subsubsection{Hello Dongcheng District} % 三号标题
\paragraph{Tian'anmen Square}is in the center of Beijing % 一号段落
\subparagraph{Chairman Mao} is in the center of Tian'anmen Square % 二号段落
\subsection{Hello Guangzhou}
\paragraph{Sun Yat-sen University} is the best university in Guangzhou.

版面设置

空格

语法 简介
\enspace inserts a space of .5em in text or math mode
\quad inserts a space of 1em in text or math mode
\qquad inserts a space of 2em in text or math mode
~ inserts an “unbreakable” space (similar to an HTML  ) (in text or math mode)

段落行间距
使用{setspace}扩展包。示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
\documentclass[UTF8]{article}
\usepackage{setspace}

\begin{document}

%%双倍行间距
\begin{spacing}{2.0}
段落内容。
\end{spacing}

%%单倍行间距
\begin{spacing}{1.0}
段落内容。
\end{spacing}

\end{document}

段落间空白

1
2
\hspace{1cm}
\vspace{5pt}

居中

1
2
3
\begin{center} 
...
\end{center}

左对齐

1
2
3
\begin{flushleft}
...
\end{flushleft}

右对齐

1
2
3
\begin{flushright}
...
\end{flushright}

换行

1
\\

图片插入及引用

下面示例展示如何在文档中插入图片并在文中通过图片编号引用图片。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\documentclass{article}
\usepackage{graphicx}
% 设置图片文件存放路径
\graphicspath{{D:/img}}
\begin{document}
% 在正文中引用图片时使用\ref
In Figure \ref{fig:foo}
\begin{figure}
%设置对齐格式
\centering %图片居于页面中部
%指定图形大小和图形名称
\includegraphics[width=4in,height=4in]{1.jpg}
%设置标题
\caption{Foo}
%设置图形引用名称
\label{fig:foo}
\end{figure}
\end{document}

表格

简单表格示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
\begin{tabular}{llr}
\hline
\multicolumn{2}{c}{Item} \\
\cline{1-2}
Animal & Description & Price (\$) \\
\hline
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\hline
\end{tabular}

三线表示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{ccc}
\toprule
Name & ID & Gender\\
\midrule
Tom & 001& Male\\
Rose & 002& Female\\
\bottomrule
\end{tabular}
\caption{three line table}
\end{table}

数学公式

行中公式:

1
毕达哥拉斯定理 \begin{math} x^{2}+y^{2}=z^{2} \end{math}又称勾股定理。
1
毕达哥拉斯定理 $ x^{2}+y^{2}=z^{2} $又称勾股定理。

独立公式:

1
2
3
\begin{equation}
v = v^{1}e_{1} + v^{2}e_{2} + v^{3}e_{3} = v^{i}e_{i}, i = 1,2,3
\end{equation}
1
2
3
$$
v = v^{1}e_{1} + v^{2}e_{2} + v^{3}e_{3} = v^{i}e_{i}, i = 1,2,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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
The Newton's second law is F=ma.

The Newton's second law is $F=ma$.

The Newton's second law is
$$F=ma$$

The Newton's second law is
\[F=ma\]

Greek Letters $\eta$ and $\mu$

Fraction $\frac{a}{b}$

Power $a^b$

Subscript $a_b$

Derivate $\frac{\partial y}{\partial t} $

Vector $\vec{n}$

Bold $\mathbf{n}$

To time differential $\dot{F}$

Matrix (lcr here means left, center or right for each column)
\[
\left[
\begin{array}{lcr}
a1 & b22 & c333 \\
d444 & e555555 & f6
\end{array}
\right]
\]

Equations(here \& is the symbol for aligning different rows)
\begin{align}
a+b&=c\\
d&=e+f+g
\end{align}

\[
\left\{
\begin{aligned}
&a+b=c\\
&d=e+f+g
\end{aligned}
\right.
\]

\end{document}

参考

[1] 论文写作的又一利器:VSCode + Latex Workshop + MikTex + Git

[2] LaTex 入门

[3] LaTeX新人教程,30分钟从完全陌生到基本入门

[4] LaTeX写伪代码


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!