LaTex介绍🤏


官方介绍

日常我们都会碰到许许多多的文档编写,最常见的就是Microsoft文字处理器应用程序 Word。其最大优点在于 “所见即所得 ” 的文档处理方式,我们可以通过样式中的 文字段落等选项直接改变文档的排版样式,上手十分简单。

但是,往往选择越多,要处理的麻烦也越多。如果在样式排版处理上的麻烦比重远超过我们的内容时,会带来很多困扰,尤其是对于科研人员而言。

LaTex便应运而生…它由美国计算机学家莱斯利·兰伯特在20世纪80年代初期开发的一种基于Tex的排版系统,它最大的优点在于将文档样式与内容分隔开来,只需调用对应的宏包、命令便可以写出版式十分优美严谨的科技论文,在书籍排版上也有不错的表现。

我与LaTex

我个人第一次接触这个是在大二上学期上《计算方法》这门课时交实验报告,在钉钉群里想看看别人怎么排版,随手在群里下载了一个同学的PDF作业,发现他的作业排版相当好看。自己想着照猫画虎在 Word 里借鉴排版一下,但排了两天(你没听错,两天🤦‍♂️)排出来的文档也还是和人家的有差距…这里留一下我当时用 Word 排版的作业👇。

第二次计算方法上机报告密码:dqb9

之后很恰巧大三上又和这个同学上一节射频课,他们组小组汇报由他演讲,结果人家又一次用 LaTex 里的 beamer 完成了一次很完美的汇报答辩,至此我才了解了 LaTex 这个名字,大三下成功保研后就开始系统学习 LaTex,并在日常文档笔记、报告中使用,可以说是很香了🙆‍♂️…不过注意,也不能过分依赖 LaTex,毕竟在很多场合还是 Word 更适用

LaTex 配置


这里不着重讲如何配置,是因为相关配置资料太多了,其编辑器也是五花八门。我用的是“Tex Live+Vscode+Sumatra “组合配置(还有Vscode干不了的事吗?(。・ω・。)),相关链接放在下面了👇。

这里B站教程里up主留的json配置文件有点问题,大概在70~80行的地方,有个command打错打成commmand了,记得留意一下

LaTex语法入门🤏


一开始学 LaTex 的时候我是看刘海洋老师的《LaTex入门》,但是很容易一学就忘,因为内容实在很多,之后明白了学习这些东西我们应该遵照作者之意:

不要着眼于文章的样式如何,作为科研工作者应该多着重文章的内容输出。

我们更多的应该把它当一本工具书看待,用到什么地方的时候拿出来看一看。这里也留下该书PDF与另一本官方编写的《一份(不太)简短的 LaTex 2ε 介绍》👇。

LaTex基本结构

我们拿一个最简单、最常见的中文article类文档举例

1
2
3
4
5
6
7
\documentclass{ctexart}
\begin{document}
\section{一级标题}
我是大ONE\_CAN %这里下划线前加\是因为Latex中_表示下标,故得用转义符号
\subsection{二级标题}
我是小ONE\_CAN
\end{document}

这里的\documentclass{}就是一个命令

LaTeX里,\命令名{参数}代表一个命令

这个命令指定我们的文档是中文article文档,英文类参数就是article。当然还有别的文档类型,比如book、report,但是日常使用的话就ctexart和article类型应用最多,因此这里主要以ctexart为例,其他的只是变化了一点而已。

另外, LaTeX结构十分严谨,可以通过\section、\subsection、\subsubsection、\paragraph…来设立标题结构,LaTeX会自动为它们编号分级。

\begin{}和\end{}就表示一个环境

LaTeX里, \begin{环境名}…\end{环境名}表示该环境名的一个环境

这样简单几句便构成了一个最简单的 LaTex文档,编译后结果如下图。

最简单的LaTex文档图

由于一切都是默认的,它有一个页眉描述的是当前页的标题和页码。从这个短短的 LaTex 文档我们便可以知悉控制 LaTex 的总体语法:命令与环境

LaTex特色语法

这里不逐一介绍 LaTex 的各个命令与环境,只介绍刚开始容易踩坑的地方。

空格与分段

  • LaTex英文间的空格就是我们日常的分隔空格,但两个字母间的空格不论打多少个实际上只显示一个,中文汉字之间的空格不会在文本中显示。为了保持一个合适的字符间隔,一般标点符号后如果是英文字母我们可以加一个空格。
  • LaTex分段有两种方式:一种是敲下两个回车,另一种用分段命令\par表示新起一段。

数学公式的输入

数学公式的输入是 LaTex 引以为傲的地方,一般有两种方式。

  1. 行内公式,在文本中引用描述的公式,拿欧拉公式举例,我们可以用 $$ a^2+b^2=c^2 $$表示
  2. 行间公式
    • 编号
      1
      2
      3
      \begin{eqution}
      a^2+b^2=c^2
      \end{eqution}
    • 不编号
      1
      2
      3
      \begin{eqution*}
      a^2+b^2=c^2
      \end{eqution*}
      或者
      1
      2
      3
      \[
      a^2+b^2=c^2
      \]

图表的插入

LaTex 图表不会像 Word 一样老老实实地放在你想要的地方,因为很多时候你放的地方可能都打破了它对于规范排版的认知。所以我们经常会用一种叫“浮动体 ”的东西来引用图表,语法如下。

1
2
3
4
5
\begin{figure}[ht]
\centering
\includegraphics[height=6cm]{你的图.png}
\caption{图的名称}
\end{figure}

对于表格的话浮动体环境名将figure改为tabel,[ht]对应here和top表示浮动体会默认优先将你的图片排版在你写入代码的地方或者文章顶部。

[…]里的都是可选参数

文章标题封面

在文章导言区,就是\document{…}和\begin{document}中间,写上如下代码信息。

1
2
3
\title{文章名}
\author{作者名}
\date{时间} %时间一般用\today命令显示当天

然后在文档编写最开头加上\maketitle,如下。

1
2
3
4
\begin{document}
\maketitle
...
\end{document}

一个简单标题就写好了

文献引用

其实 LaTex 有自己的自动化工具直接部署文献引用,很方便。这里留一个最原始的直接需要写引用内容的命令。

1
2
3
\begin{thebibliography}{99}
\bibitem[显示符号]{引用标签} 引用信息
\end{thebibliography}

这里99是文献引用的最大数,你在这个thebibliography环境里引用的文献条数最多不能大于这个数,如本例中的99。

小小的初步总结

刚开始用肯定有一些不适应觉得好繁杂( ´・・)ノ(._.`),所以开始我不准备讲太多东西,也不拓展什么,以后需要注意的各个细节点我会写成专题。同时这里放一个本人自己写好的实验报告模板,(具体你要用估计还得在本地查一下字体文件,或者直接注释掉字体部分即可,我在注释会写好的👇),还有什么问题欢迎来评论区留下联系方式或者利用我主页的联系方式,886…

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
\documentclass{ctexart}
\usepackage{ctex}
\usepackage{xeCJK}
\usepackage{lmodern}
\usepackage{fontspec}%设置字体
%tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge
% \linespread{1.3}
% \setCJKmainfont[BoldFont=simhei.ttf, ItalicFont=simkai.ttf]{simsun.ttc}
%罗马字体族选用宋体
% \setCJKsansfont[BoldFont=simhei.ttf, ItalicFont=simkai.ttf]{SIMYOU.TTF}
%无衬线字体族选用幼圆字体SIMYOU.TTF
% \setCJKmonofont[BoldFont=simhei.ttf, ItalicFont=simkai.ttf]{simfang.ttf}
%打字机字体族选用仿宋体simfang.ttf
% \setmainfont{Times New Roman}%Times New Roman
% \setsansfont{Verdana}
% \setmonofont{Courier New}
% \setmainfont{Times New Roman}%Times New Roman
% \setsansfont{Verdana}
% \setmonofont{Courier New}
\usepackage{titlesec}
\usepackage{zhnumber}
\titleformat{\section}{\raggedright\Large\bfseries}{\zhnum{section}、}{0pt}{}[]
\usepackage{amsmath}
\usepackage{txfonts}%设置数字模式的字体为Times New Romam
\usepackage{graphicx}%插图
\usepackage{subfigure}
\counterwithin{subfigure}{figure}
\counterwithin{figure}{subsection}
\renewcommand{\thefigure}{\arabic{figure}}
\renewcommand{\thesubfigure}{(\alph{subfigure})}
% \renewcommand{\thetable} {\thesection.\arabic{table}}
% \renewcommand{\thefigure} {\arabic{section}.\arabic{figure}}
% \renewcommand{\thesubfigure}{\thesection.\thesubfigure}
\usepackage{caption}
\usepackage{float}%浮动体
\usepackage{fancyhdr}%页眉页脚
\pagestyle{fancy}
\setlength{\headheight}{13pt}
\fancyhead[L]{学号:...}
\fancyhead[C]{实验名}
\fancyhead[R]{姓名:名字}
\fancyfoot[C]{\thepage}
\usepackage{listings}%插入代码的宏包
\usepackage{xcolor}
\lstset{
language=Matlab,%设置语言
frame=single,%设置边框
framexleftmargin=20pt,%左边距
basicstyle=\footnotesize\ttfamily,%字体
keywordstyle=\color{blue!70!black},%关键字颜色
commentstyle=\color{green!70!black},%设置注释颜色
stringstyle=\color{red!50!blue},%设置字符串颜色
showstringspaces=false,%不显示字符串中的空格
breaklines=true,%长句自动换行
numbers=left,%显示行号
numberstyle=\tiny\color{gray},%行号字体
columns=flexible,
backgroundcolor=\color{yellow!10},%设置背景
tabsize=4,%设置tab键
escapeinside={(*}{*)},%(*xxx*)中x可以使用latex命令
emph={},%设定某些关键词进行强调
emphstyle=\color{red}
}

\begin{document}

\begin{titlepage}
\begin{figure}[ht]
\centering
\includegraphics[width=10cm]{loge1.jpeg}
\end{figure}
\vspace*{\fill}
\begin{center}
\Huge\textbf{题目名}
\end{center}
\vspace*{\fill}
\begin{table}[b]
\centering
\large
\begin{tabular}{ll}
%\textbf{实验:} & 实验名 \\
\textbf{姓名:} & 名字 \\
\textbf{学号:} & ... \\
\textbf{时间:} & 2021年11月 \\
\end{tabular}
\end{table}
\thispagestyle{empty}
\end{titlepage}

\section{一级标题}

\subsection{二级标题}
%插图
\begin{figure}[hb]
\centering
\includegraphics[height=2.3cm]{图片.jpg}
\caption{图片名}
\end{figure}

\end{document}