文章目录
-
- [0 前言](#0 前言)
- [1 基本概述](#1 基本概述)
-
- [1.1 代码框架](#1.1 代码框架)
- [1.2 环境配置](#1.2 环境配置)
- [2 常用指令](#2 常用指令)
-
- [2.1 中文支持](#2.1 中文支持)
- [2.2 字号及其单位](#2.2 字号及其单位)
- [2.3 插图](#2.3 插图)
- [2.4 插入参考文献](#2.4 插入参考文献)
- [2.5 设置跳转链接](#2.5 设置跳转链接)
- [2.6 双栏显示](#2.6 双栏显示)
- [2.7 常用输入](#2.7 常用输入)
0 前言
记得最早接触LaTeX还是在大二参加数学建模大赛的时候,当时比较懵懂,对工具非常"迷信",觉得需要把这个学得非常好才能在数学建模中表现良好。但一路走来发现其实目标才是最重要的,达到目标所使用的所有工具不过是一种手段,或者说是达到目标的一小部分投资而已,这些往往并不是决定最后目标是否能达成的关键。反倒是当朝着目标前进一段时间之后,蓦然回首,才发现原来我已经会使用工具了完成我的目标了,而这,也就够了。
网上LaTeX优秀的资料非常多,远不是我一篇博客能超越的,所以这里主要还是以记录使用体验为主和尝试出来的一些小技巧为主。当前AI如此发达,基于AI建立自己的框架或者已有框架基于AI来完善内容都是很不错的选择,记录不过是为了固化曾经尝试出来的方法罢了。
1 基本概述
1.1 代码框架
对于有编程经验的人来说,学习LaTeX还是比较简单的。首先最重要的就是搞清楚代码的基本结构,有基本认识之后再去看各种指令介绍,会容易很多。这也是我一直推崇的 "先有框架再填充内容" 的学习方式。
一个最基本的LaTeX文章包含两个板块:导言区和正文区,如下所示。
bash
\documentclass{article} % 说明文档的类型
\usepackage{geometry} % 引入第三方宏包
% 导言区
\begin{document} % 正文开始 --------------------------------
Hello, world! % 正文区
\end{document} % 正文结束
其中导言区用来配置文档的一些基本格式,可以理解为文档的初始化部分,会在这里引入宏包(可以理解为第三方打包好的库),同时自定义一些指令;正文区就是编译之后实际看到的内容,这里主要就是使用导言区配置好的格式,或者调用自定义的指令。
1.2 环境配置
如果需要经常写LaTeX文章,而且文章都比较大的话,建议还是在本地配置好一个LaTeX环境,如果同时需要写中英文文章,然后对于使用的工具有较高要求的,比较推荐的配置如下:
texstudio的使用方法可以参考这篇文章。
这可能也是目前最流行的配置了吧。具体的安装方式比较简单,这里不再赘述。
但如果只是偶尔使用LaTeX写文章,大部分时间还是以word或者markdown为主,而且不想在电脑上安装臃肿的环境,那比较推荐使用在线的工具,而且这种工具往往提供多人协作功能。比较经典的工具是OverLeaf,但是这个平台是收费的,而且价格不菲,免费版会限制文档大小以及协作人数,加上OverLeaf是国外平台,实测在网络同步方面有一点问题。之前是没得选,最近几年国内也涌现出一批LaTeX在线协作平台,而且也非常优秀。这里推荐使用的是LoongTeX,具有基本的在线协作功能,而且界面简洁好看,最重要的是收费便宜,如果不需要协作只需要一个在线的平台完全可以使用免费版。

2 常用指令
2.1 中文支持
默认LaTeX是不支持中文的,需要引入中文宏包。
txt
\usepackage[UTF8]{ctex}
然后编译器一般使用pdfLaTeX 或者XeLaTeX。
2.2 字号及其单位
参考下图

2.3 插图
插入图片的代码如下所示
bash
\begin{figure}[htbp]
\centerline{\includegraphics{Images/fig1.png}}
\caption{Example of a figure caption.}
\label{fig7}
\end{figure}
其中label字段是这个图片的唯一标识,可以通过\ref{xxx}或者\cref{xxx}来引用,注意,这里引用的都是编号,所以文字中应该使用的是"如图\ref{fig1}",也可以在导言区配置ref指令的格式,这里不再赘述。
另外,这里\begin之后的[htbp],这个是设置图片的浮动格式,四个字母表示:
-
h\] \~ here,当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩页面不够,这一参数将不起作用。
-
b\] \~ bottom,底部。将图形放置在页面的底部。
也就是说,图片可以有四种不同的位置。如果想固定图片的位置,可以使用[H],但要引入float宏包:\usepackage{float}
此外,插图为了追求清晰度,一般建议插入矢量图,即使放大图片,内容仍然是清晰的。正常如果使用word写文档,那直接从PPT中复制图片放到word里面,可以得到矢量图,但LaTeX不支持复制粘贴图片,所以建议先将矢量图导出为pdf,再插入到文档中。
具体步骤如下所示
-
首先在PPT或者Visio等软件中绘制图片,然后导出为PDF,这个时候如果用软件打开这个pdf会发现还是矢量图(不管怎么放大都不会显示像素块)。这个过程也适合一些允许导出PDF格式文件的设计软件,如Altium Designer,CAD等
-
然后在Acrobat中对页面进行裁剪。方法如下
-
点击编辑PDF的按钮,找到工具栏中裁剪页面

-
然后就会发现光标变成十字,然后将所需的部分框选起来

-
最后最关键的就是双击这个选中的图,然后点击确定即可


-
-
页面裁剪好之后,剩下的就是将PDF的每一页都提取出来------这里的前提是每个页面只包含一张图


这样有几个页面就可以得到几个PDF了,最后就是在LaTeX中图片引用中引用这个PDF文件即可。
2.4 插入参考文献
LaTeX中有专门的生成参考文献的工具,即bibtex,他可以自动给文献编号,同时可以快速设置参考文献的格式。使用时,先设置参考文献格式再导入参考文献的文件即可。
matlab
\bibliographystyle{unsrt} % 设置参考文献的格式
\bibliography{reference} %其中reference为需要引用的参考文献合集reference.bib
其中,reference.bib是放在同目录下存放参考文献的文件,格式大致如下所示。

这种格式很多网站和软件都可以导出。这里大括号后面紧跟着的就是这篇文献的标识,可以随意修改,但不能有同名的。正文中引用使用的就是这个名字,如\cite{xie2025},这个过程中会自动按引用顺序生成编号。所以这里面文献不要求顺序,可以随意。
这里设置格式指令传递的参数可以根据投递的期刊进行修改,比如,可以改为ieeetr用于投递IEEE Transactions。
在中文写作场景下,一般会要求使用GB/T-7714格式的参考文献,直接修改设置格式指令的参数即可。当然要先导入相关的宏包,一个基本的模板如下所示:
matlab
% ===========================调用 gbt7714 宏包和样式===============================================
\usepackage{ctex} % 若需要中文支持,必须调用 ctex 宏包(否则中文会乱码)
\usepackage{natbib} % gbt7714 依赖的基础引用宏包,必须先调用
\usepackage{gbt7714} % 调用 GB/T 7714 宏包(核心!)
...
% 选择参考文献样式:数字序号制(gbt7714-numerical)或著者-年份制(gbt7714-author-year)
\bibliographystyle{gbt7714-numerical}
...
\renewcommand{\refname}{参考文献} %参考文献标题中文显示
\bibliography{myself}
这里前提是所使用的环境有安装包含这个格式的宏包(CTEX和TeXlive套装默认是带的),或者也可以到GitHub上下载对应的.bst文件,然后放到同目录下,如下图所示。

2.5 设置跳转链接
上面提到,引用参考文献直接使用\cite指令即可,但实际上单独使用这个指令是无法实现那种点击可跳转的功能的,想要实现点击可跳转,还需要引入宏包:
bash
\usepackage{hyperref}
但是引入之后又会发现\cite指令最后生成的内容会有一个红色外框,当然这个也和打开PDF的软件有关,有些pdf软件上不会显示这个红色外框,但为了提升兼容性,可以增加几行代码来消除这个红框。
matlab
% 保证超链接不会带红色方框
\hypersetup{hidelinks,
colorlinks=true,
allcolors=black,
pdfstartview=Fit,
breaklinks=true
}
2.6 双栏显示
很多期刊的文章都是双栏,但双栏有时候会出现问题,比如图片插入和最后双栏是否对齐等,这里直接给出参考链接。
2.7 常用输入
总结一些LaTeX的"特色"输入,备忘。
左右引号
如果要输入左引号,无论单双,都不能使用键盘上的引号,左引号要使用 `````,即数字1左边的按键,然后右边引号正常使用"或者'。
空格与空白

除此之外,还有设置水平和竖直方向上的间隔:
\hspace{}水平间隔\vspace{}垂直间隔
设置颜色和字体
\color{red}
\fontsize{字体尺寸}{行间距}\selectfont
这两者都有延时效应,即设置之后,此后的内容都是一样的字体和颜色,除非再次设置。
带星号标题
有时候可以看到章节标题指令后面加上了一个星号,如\section*,这是为了实现不带编号也不编入目录。参考链接