documentclass 是 LaTeX 中一个基本且重要的命令,用于定义文档的整体布局和样式。该命令告诉 LaTeX 编译器这是哪一类文档,例如文章、报告、书籍等。每个类别都有其预定义的格式和结构。
详细语法可以参考我写的另一篇博文:LaTeX中的documentclass命令:指定文档的类型和整体布局
使用包
介绍一下包。不同的包可以实现不同的功能。后面介绍具体功能的时候会介绍具体的包。
添加水印
如何在 LaTeX 中添加水印
4. LaTeX 基本语法加粗:\textbf{text}
斜体:\emph{text} 或 \textit{text}
下划线:underline{text} 或 uline{text} (可换行) 更改字体颜色,请参考:如何更改 LaTeX 中的字体颜色 更改字体背景(常用于突出显示、引用或注释):
\usepackage[most]{tcolorbox}
...
\begin{tcolorbox}[colback=pink!20, colframe=white, sharp corners, breakable]
这是一个带有粉色背景的引用块。
\end{tcolorbox}
(不加most参数的话,就不能加breakable参数,breakable参数是为了让整个tcolorbox可以平滑的跨过页面)插入超链接:\usepackage{hyperref}
\url{link} 或 \href{link}{显示文本}插入脚注:\footnote{脚注文本}在特殊符号前添加 \ 以防止其渲染注释:%参考:\ref{label_name}
(\label{label_name} 指的就是这个,显示的是类对应的数字)~ 不间断空格,也就是说它连接的两个 token 不会被分开,放在文档的不同行上,比如 Section~\ref{sec:Experiments}
如果您在文档的某处写入 Section \ref{sec:Experiments},Section 可能会出现在一行的末尾,而参考编号则出现在下一行的开头。使用 Section~\ref{sec:Experiments} 可确保 Section 及其参考编号始终位于同一行,从而使您的文档看起来更整洁、更专业。单引号 (''):
`single-quoted text'
双引号(“”):
``quoted text''
枚举
无序列表逐项列出
LaTeX 列表:无序列表使用 itemize,有序列表使用 enumerate 4.1 环境
用于使某些效果在本地生效或者生成特殊的文档元素。
用法:
\begin{⟨environment name⟩}[⟨optional arguments⟩]{⟨mandatory arguments⟩}
…
\end{⟨environment name⟩}
示例1:CJKutf8的中文环境(参见用LaTeX写中文(含支持中文显示和中文数字)):
\begin{CJK*}{UTF8}{gbsn}
...
\end{CJK*}
5. LaTeX 排版、字体和段落
全部需要在介绍区里设置。
中文字体设置
必须使用 XeLaTeX 或 LuaLaTeX 作为编译器。
内置字体
(如果是TeXLiv+ctex的话可以在texlive\2022\texmf-dist\tex\latex\ctex\fontset文件夹下找到对应的字体,参见overleaf内嵌中文字体列表,感觉overleaf内嵌中文字体里没有一个Kaiti的像Kaiti,建议使用本地的ttf文件)
Times New Roman:\usepackage{times}
类似于 Times New Roman 的字体,支持数学字符:\usepackage{txfonts}
\usepackage{newtx}
Kaiti 和其他中文字体:
\usepackage{ctexart}
\setCJKmainfont{KaiTi} % 设置中文主字体为楷体
\setCJKsansfont{KaiTi} % 设置中文无衬线字体为楷体
\setCJKmonofont{KaiTi} % 设置中文等宽字体为楷体
本地字体
\usepackage{fontspec}
\usepackage{ctexart}
%设置中文字体
\setCJKmainfont{SIMKAI.ttf}
[Path = {fonts/}
]
%设置英文字体
\setmainfont{SIMKAI.ttf}
[Path = {fonts/},
BoldFont={AA粗楷大字库.TTF} %显式设置加粗后的字体
]
AA粗体大字体库下载自
章节标题结构
章
部分
小节
(无限堆叠潜艇)
柜台
请参考我写的另一篇博客文章:LaTeX 中的计数器
\标题
\title 命令用于指定文档的标题,通常与 \author 和 \date 命令一起使用来设置文档的标题、作者和日期信息。
口粮:
\作者
在 LaTeX 中,\author 命令用于指定文档的作者。此命令是标准 LaTeX 命令集的一部分,因此可以说是内置的。当您使用 \documentclass 命令选择文档类别(例如文章、报告、书籍等)时,\author 命令已经定义,无需加载其他宏包即可使用。
口粮:
\author命令的基本用法如下:
\author{作者名}
如果一个文档有多个作者,可以使用 \and 命令将他们分开:
\author{第一个作者 \and 第二个作者 \and 第三个作者}
您还可以在 \author 命令中包含感谢或注释,通常通过 \thanks 命令:
\author{作者名\thanks{感谢的内容}}
例如\author{张三\and李四\thanks{感谢某基金的支持。}\and王五}
\author 命令定义的作者信息默认不会自动显示在文档中,需要配合 \maketitle 命令使用,\maketitle 命令会在文档中创建一个标题页或标题部分,显示标题、作者、日期等信息。
\author 命令的具体形式在某些特殊文档类别或情况下可能有所不同,但基本用法和概念是相同的。
{抽象的}
在 LaTeX 中,摘要环境用于创建摘要部分。此环境通常用于科学文章、报告、论文等的开头,以提供文档内容的简短概述。摘要环境内置于文章、报告等标准文档类中,因此无需加载额外的宏包即可直接使用。
口粮:
使用抽象环境的基本语法如下:
\begin{abstract}
这里是摘要内容。
\end{abstract}
在此环境中,您可以编写摘要的文本。摘要通常是一份简洁的描述,概述了文档的主要内容、研究目的、方法、结果和结论。
笔记:
\日期
在 LaTeX 中,\date 命令用于指定文档的日期。此命令是标准的 LaTeX 命令,用于在文档的标题中显示日期信息。如果您使用 \maketitle 命令生成标题,则 \date 命令提供的日期将显示在标题下方,紧接着作者信息;如果您未指定 \date,则将显示今天的日期。
\date 命令仅影响使用 \maketitle 生成的标题部分中显示的日期,并不影响文档的其余部分。
不指定 \date 的情况下显示今天日期的示例:
不显示日期 \date{} 的示例:
显示指定日期的示例 \date{您可以更改日期。}:
\date命令的基本语法如下:
\date{日期文本}
这里的“日期文本”可以是任何文本,例如具体日期、描述性文本或空白(如果不想显示任何日期)。
指定具体日期:
\date{2024年2月17日}
使用 \today 自动生成今天的日期:
\date{\today}
这会自动插入文档编译的日期。
不显示日期:
如果不想在标题中显示任何日期信息,可以使用空的 \date{} 命令:
\date{}
\sloppy:解决长文本超出页边距的问题
LaTeX中\sloppy命令详解及应用实例
自定义章节标题样式\章节
\usepackage{titlesec} %提供分节命令接口
% 设置章标题样式
\titleformat{\chapter}[block]
{\fontsize{14pt}{14pt}\bfseries} % 14pt加粗
{\thechapter\ } % 章节编号后跟一个空格
{0pt} % 标题与编号间距
{} % 可以在这里添加额外的格式命令
\titlespacing*{\chapter}{0pt}{17pt}{17pt} % 段前17磅,段后17磅
口粮:
参考:
CTAN: 软件包 titlesec \subsection
例如:\renewcommand\thesubsection{\arabic{subsection}.}
换行符
两个空行是换行符+缩进
\newline:仅换行,不缩进
\linebreak:可以避免单词中断
\par
空行
使用 \vspace{\baselineskip} 留空一行。修改花括号中的值可指定不同的空白高度。
分页
\pagebreak
纸张尺寸
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm,headheight=28pt,bindingoffset=6mm]{geometry}
引用原文(如代码)
内联:\verb|原始文本|
字里行间:
\begin{quote}
\begin{verbatim}
raw text
\end{verbatim}
\end{quote}
\begin{quote} 和 \end{quote} 是 LaTeX 中用于引用文本的环境,通常用来对文本进行轻微缩进,以区分引用内容与普通文本内容。
\begin{verbatim} 和 \end{verbatim} 是用于显示代码或逐字文本的环境。在此环境中,所有文本将逐字显示,包括 LaTeX 命令和特殊字符。这通常用于显示代码片段。
\setlength 设置长度参数
在LaTeX中,\setlength命令用于设置各种长度参数,包括文档中空间的大小,例如缩进、边距、间距等。该命令的基本语法如下:
\setlength{length_variable}{value}
其中,length_variable为要设置的长度变量,例如\parindent(段落缩进)、\textwidth(文本宽度)等;value为想要设置的长度值,可以是具体的值,例如10pt、1cm等,也可以是相对长度例如\linewidth。
使用示例:
设置段落缩进:如果要取消段落首行的缩进,可以使用\setlength命令,如下:
\setlength{\parindent}{0pt}
设置列表项间距:调整列表项之间的垂直间距:
\setlength{\itemsep}{1em}
注意这个命令要在列表环境中使用,比如 itemize 或者 enumerate,这两个命令的使用可以参考这篇博文:LaTeX List: Unordered List Itemize 和 Ordered List Enumerate
调整文档边距:虽然建议使用 geometry 包来调整边距,但也可以通过 \setlength 来实现。例如,设置左边距:
\setlength{\oddsidemargin}{0.5in}
\setlength 命令提供了一种直接控制 LaTeX 文档中各种长度的方法,但应谨慎使用,以免破坏文档的整体布局和格式。调整长度时,最好在文档的前言部分设置,或在特定环境的开头设置,以确保设置是局部的还是全局的,具体取决于您的需要。
6. 编译器/编译方法的选择
我一般用pdfLaTeX或者XeLaTeX,XeLaTeX天然就兼容CJK字体(中文)等,如果用pdflatex的话还需要用到ctex之类的包。
但一般来说,所使用的格式取决于原始模板的格式。
如果您使用 BibTeX,则需要先使用 pdfLaTeX(或其他编译器),然后用 BibTeX 编译,然后用 pdfLaTeX 编译(可能需要编译两次)。
7. 参考文献
我已将此部分单独列出。请参阅此博客文章:如何在 LaTeX 中引用参考文献
8. 表格和图表 1. 表格
三行表格在学术论文中经常使用,其特点是表格顶部、底部、标题下方各有三行(所谓“三行”,第一行是 \toprule,标题下方一行是 \midrule,第三行是 \bottomrule。如果没有定义,则全部为 \hline,比如 ACL 模板就是这么做的)。
基本三行表 MRE:
对于使用表格环境编写三行表格(包括标题、交叉引用和脚注)的 MRE,请参阅
对于使用 longtable 环境跨页写入三行表(包括标题和交叉引用)的 MRE,请参阅
使用tabular环境绘制三线表格,将左右两个表格合并为一个表格:(代码来自ACL2024 LaTeX模板,里面讲了如何在LaTeX中书写字母和音标)
\\新行,&跳转到下一个单元,这个类似于数学公式里画矩阵的操作
如果需要添加竖线,可以在 \begin{tabular} 后添加,如 {ll} 表示两行不加竖线,{|l|l|} 表示所有行垂直对齐。l 表示左对齐,c 表示居中对齐,r 表示右对齐。
如果将 r 改为 r@{},则会删除列之间的默认间距。直观地讲,如果使用 r,则会像这样:
如果你使用 r@{},它就会粘在边缘:
如果需要改变表格单元格的宽度,就把l改成p{10em}(这个数字是宽度,单位可以改成in或者类似的)
添加水平线border_hline
部分水平边框 \cline{ij}
跨越多列\multicolumn{列数}{c}{}
对于双列模板,默认是单列,如果要跨双列,需要使用 \begin{table*} \end{table*}
长桌
\endhead 前面是每页的标题,\endfirsthead 前面是只在第一页出现的标题
\endfoot 前面是每页的结束符(如“见下一页”),\endlastfoot 前面是最后一页的结束符(可以用来写注释等)
其他工具:tabularry
2. 图片
LaTeX 图像排版
3. 表格和图像共享的参数
这些是{table}或{figure}后面方括号内的参数:
如果您想要更好地控制表格的位置,可以使用 ! 参数,该参数指示 LaTeX 忽略其内部参数中对浮动位置的一般限制,并将浮动位置尽可能靠近您的规格。(将其放在第一位)
如果只使用[h],会报如下错误:
`h' float specifier changed to `ht'.
解决方法是改用 [ht]。
浮动包
float 包为浮动元素提供了一个 H 定位参数,该参数完全忽略 LaTeX 的浮动排版算法,将表格精确地放置在当前文本位置。这几乎相当于完全“强制”表格位置。在使用此参数之前,您需要确保已通过 \usepackage{float} 命令在文档前言中加载了 float 包。
\usepackage{float}
...
\begin{table}[H]
% 表格内容
\end{table}
9. LaTeX 支持中文
建议使用CTeX宏包,如果可以自己选择documentclass的话,可以直接选择:

或者直接使用ctex宏包。
更多细节可以参考我写的另一篇博文:用LaTeX写中文(包括支持中文显示和中文数字)
10. 特殊字符 LaTex{} \LaTeX\
\TeX{}
① \textcircled{1} 反斜杠:\ \textbackslash 数值和单位
\usepackage{siunitx}
平方米 ㎡:\si{\meter\squared}
5 平方米:\SI{5}{\meter\squared} 11.\renewcommand:重新定义现有命令
具体命令重定义参考很多,我在相应的命令位置都写过了。
使用 \renewcommand 时,需要确保命令已定义。如果是第一次定义命令,则应使用 \newcommand。
12.其他LaTeX辅助工具 LaTeX自动转换模板工具(这个我也想写一下,这里收集了市面上的竞品) PaperShell - Overleaf,在线LaTeX编辑器 word转LaTeX:最好用的WORD转LATEX转换器 13. LaTeX overleaf模板
Overleaf 官方模板合集:模板 - 期刊、简历、演示文稿、报告等 - Overleaf,在线 LaTeX 编辑器)
IEEE 会议(双列)IEEE 会议模板 - Overleaf,在线 LaTeX 编辑器CVPR2022 会议(双列)[CVPR2022] 官方 LaTeX 模板 - Overleaf,在线 LaTeX 编辑器NeurIPS2021 会议(单列)NeurIPS 2021 - Overleaf,在线 LaTeX 编辑器ICML2021 会议(双列)ICML2021 模板 - Overleaf,在线 LaTeX 编辑器ICLR2021 会议(单列)ICLR 2021 会议提交模板 - Overleaf,在线 LaTeX 编辑器AAAI 会议(双列)AAAI Press LaTeX 模板 - Overleaf,在线 LaTeX 编辑器ACL 会议Elsevier 期刊
你可以参考这篇博客:爱思唯尔(Elsevier)LaTex模板详细说明_Elsevier latex模板-CSDN博客 简易(单列)爱思唯尔文章(elsarticle)模板 - Overleaf,在线LaTeX编辑器(单列)爱思唯尔CAS LaTeX单列模板 - Overleaf,在线LaTeX编辑器(双列)爱思唯尔CAS LaTeX双列模板 - Overleaf,在线LaTeX编辑器天文学与计算期刊(双列)爱思唯尔天文学与计算期刊模板 - Overleaf,在线LaTeX编辑器(中文)优雅论文(单列)ElegantPaper模板 - Overleaf,在线LaTeX编辑器(这个模板的官方项目:ElegantLaTeX/ElegantPaper: Elegant LaTeX Template for Working Papers,他们的项目组还有中文LaTeX书籍和笔记的模板) 在使用该模板时可能会遇到的一些问题: 如果书目文件中的月份是不是整数值,会报错;若要对参考文献进行排序,可以在简介区域添加\ExecuteBibliographyOptions{sorting=none},排序方式选择可参考:

(图片来源)(中文)Journal of Computer Science 官方 LaTeX 模板(双栏)直接转换为 overleaf 可用的版本(我对其进行了调整,因此如果有任何错误,请直接联系我):Journal of Computer Science 官方 LaTeX 模板 - 修改为 overleaf 可用的版本 - Overleaf,在线 LaTeX 编辑器简历(我目前使用的是中文版):简洁优雅的 XeLaTeX 简历模板 - Tiankui Zhang
本模板可以使用fontAwesome5(具体图标ID可以直接在 中找到),修改方案是将 resume.cls 中第18行直接改为 \RequirePackage{fontawesome5}(参考 标题前可选的小图标有哪些 · Issue #26 · billryan/resume) 14. 教程
我没见过:
文档 - Overleaf,在线 LaTeX 编辑器LaTeX - 维基教科书,开放世界的开放书籍R 和 LaTeX 简介 15. 文中未引用的其他参考文献如何在 LaTeX 文本中输入反斜杠: LaTeX 教程:[13]在表格中插入水平和垂直边框 - 百度经验如何用 LaTeX 输入各种箭头? - 知乎 Latex 中如何给表格添加注释_latex 表格注释_VS Shampoo 的博客-CSDN 博客 longtable 宏包使用说明- 知乎 多列的表格! - TeX - LaTeX Stack ExchangeLatex语法学习11:不显示未引用的参考文献,编译后参考文献更新但不显示_latex中如何隐藏未引用的参考文献-CSDN博客 texlive2021及以后版本调用本地字体的一些解决办法-知乎XeLaTeX编译CTEX报系统字体错误_xelatex fontset-CSDN博客 【论文写作】Latex命令学习,以ACL2020论文模板为例_overleaf acl模板-CSDN博客 【Latex】texstudio使用方法及ACL论文模板初步解读_texstudio模板-CSDN博客 LaTeX中如何使用换行符_笔记_设计学院
LaTeX Tips 004:给文本添加下划线、波浪线等样式_latex underline-CSDN博客
tcolorbox设置breakable后分页符后的字体颜色与分页符前的字体颜色不一致 - LaTeX Studio
latex插入超链接_latex超链接-CSDN博客
解决方法:将“h”浮点说明符改为“ht”_h'浮点说明符改为ht'-CSDN博客
排序 - Biblatex 引用顺序