写在最前面: 这篇教程是我学习LaTeX过程中的一些笔记, 仅供参考, 希望能够帮助到大家.
如有错误或不当之处, 还望指正, 本人联系方式为2031853749@qq.com.
文档中蓝色的是超链接, 点击可以直接跳转到相应的部分.
什么是 LaTeX
$\LaTeX$ (读作/ˈlɑːtɛx/或/ˈleɪtɛx/) 是一种基于TeX的排版系统, 它是一个让你的文档看起来更专业的排版系统, 而不是文字处理器.
其与常见的Word等不同之处在于, 它使用一种基于文本的格式语言, 而不是像Word那样基于图形的界面.Word是所见即所得的文本编辑器, LaTeX是一种非所见即所得的排版系统, 用户需要输入特定的代码, 保存在后缀为.tex
的文件中, 通过编译得到所需的pdf文件.
如何理解非所见即所得呢? 在这里举个所见即所得的例子:Word的界面就是一张A4纸, 输入的时候是什么样子, 最后呈现出来就是什么样子. 具有极高的自由度和易用性, 但是有如下问题:
- 对于对细节不敏感的朋友, Word的排版常常会在细节存在问题, 比如两段话之间行间距不同,字体不同,标题样式不同等;
- 对于撰写论文的朋友, Word的标题, 章节, 图表, 参考文献等无法自动标号, 也很难在正文中引用;
- 对于有公式输入需求的用户, Word自带的公式不稳定, 而公式插件效果常常不好.
这些在同学们撰写冯如杯论文的时候应该会有更多体会.
相比之下, 使用LaTeX进行排版, 就像是在铺好的轨道上驾驶火车一样. 使用LaTeX没有办法像Word一样非常自由, 但是可以保证排版的一致性, 公式的清晰度, 引用的准确性等. 这使得LaTeX非常适合用于论文的排版. 在学习的过程中, 也将会感受到这一点.
无论是LaTeX还是Word, 其归根结底都只是排版工具, 真正的创作才是最重要的~
准备工作:安装LaTeX和配置环境
如果嫌麻烦, 可以使用在线LaTeX编辑器:Overleaf,而忽略后面的本地下载环节.
通常来说,LaTeX分为两步安装:
- 安装TeX发行版: 包括安装TeX Live, MikTeX等, 这些发行版都包含了TeX和相关的工具.
- 配置编辑器: 选择一个编辑器, 并配置好相关的插件.
总的安装可以参考这个文档: 一份简短的关于 LATEX 安装的介绍
安装TeX发行版
要让 LaTeX 跑起来,核心就是要有一套 TeX 发行版. TeX 发行版是 LaTeX 工作所需的一组「后台」程序和文件, 但是大多数情况下, 并不需要直接「运行」它们.
目前, 主要有两大 TeX 发行版: MiKTeX 和 TeX Live. 无论是在 Windows, macOS 还是 Linux 平台上, 这两个发行版均可使用.
由于 TeX Live 在所有常见平台上均可使用, 并且具有一定的性能优势, 因此如果不确定应该安装哪一个发行版, 我建议选择 TeX Live.
本文以 Windows 平台的 TeX Live 为例, 介绍如何安装和配置 TeX Live.
一些技术细节可参阅官方文档: TeX Live for Windows
官方的地址是(https://mirror.ctan.org/systems/texlive/Images/), 点击会随机进入国内的镜像站如清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/).
点击页面右侧的「获取下载链接」按钮, 并选择「应用软件」标签下的「TeX 排版系统」即可下载 TeX Live 的安装包.
找到下载好的ISO压缩包,右键—>打开方式—>windows资源管理器打开
找到install-tl-windows文件,右键以管理员身份运行
接下来出现的就是基本的配置了, 修改路径等. TeXworks 前端按需安装, 这里可以选择安装.
然后就会进行安装,你只需要等待就行,这个过程可能很长))
或者挂载后执行命令行安装程序 install-tl-advanced.bat
具体步骤如下:
- 打开命令行窗口(
Win + R
—> 输入cmd
—> 确定) - 输入
cd /d "D:\Program Files\texlive\2021"
(cd /d X:\Y 即为进入盘符 X, Y表示文件夹路径, 请根据实际情况修改路径; 注意: 路径中不要出现中文) - 输入
install-tl-advanced.bat
并回车 - 按照提示逐步安装 TeX Live
安装完成后, 重启计算机即可生效.(如果安装过程中出现问题, 请参考官方文档或者技术文件进行排查.)
配置编辑器
LaTeX 文档只是纯文本文件, 因此可以使用任何文本编辑器进行编辑. 但是, 使用专为 LaTeX 设计的编辑器将带来更多便利, 因为它们往往会提供一键编译, 内置 PDF 阅读器以及语法高亮等功能.
无论选择哪种编辑器, 都建议放在 TeX 发行版之后安装, 以便该编辑器可以「找到」TeX 发行版并正确进行设置.
对于新手, 最推荐的编辑器是TeXworks, 非常适合用来上手, 也避免了配置环境带来的问题. 如果想要提高效率的话, 可以选用
- TeXstudio: 本人用的就是这个, 功能强大, 界面简洁.
- Visual Studio Code: 功能丰富, 但需要安装插件和手动配置.
- 在线编辑器: Overleaf, ShareLaTeX 等.
TeXworks
Windows 和 Linux 平台上的 TeX Live 和 MiKTeX 均包含有一个基本的编辑器 TeXworks.
TEXworks 是一款轻量级的 LATEX 编辑器, 个人认为非常适合入门级用户使用.
和大多数国产软件不同, TEXworks 不会自动在桌面生成快捷方式, 新人往往不知道如何打开它.
实际上 TEXworks 在 TEX Live 安装路径的 \bin\windows
中, 可在 cmd
中执行texworks
打开, 也可直接
在 Windows 搜索栏里搜 TEXworks 打开. 刚开始使用 TEXworks 的用户不必过多配置, 在默认状态下打开软件, 编写代码, 保存文件后, 用户可使用 TEXworks 的“排版”按钮进行文档编译而不必回到命令行 . 按钮旁边是编译命令菜单, 用户可根据需要自行选择.
TexStudio
TEXstudio 的下载地址为 https://www.texstudio.org/; 而清华大学镜像站(https://mirrors.tuna.tsinghua.edu.cn/)也有相应文件, 便于用户下载. 这里不再展开.
Visual Studio Code
VScode的LaTeX配置请参考(https://zhuanlan.zhihu.com/p/166523064), 不再赘述.
在线编辑器
如今, 几个强大的在线系统使你完全不必再安装 TeX 发行版和 LaTeX 编辑器. 这些网站允许你直接在网页中编辑文档, 然后在后台运行 LaTeX, 并显示生成的 PDF.
如Overleaf是全球范围内首屈一指的在线 $\LaTeX$ 编辑平台. 具有强大的协作功能, 你可以与他人协作编辑文档, 也可与其他平台分享文档. 同时, 它还提供免费的公开项目空间, 让你无限次地保存和编辑文档. 同时也有强大的模板库, 让你快速地找到你想要的模板.
在介绍了这么多之后, 你应该对 LaTeX 有了一个大概的了解了. 接下来, 我们将开始学习 $\LaTeX$ .(以TeXStudio为例)
LaTeX 基础文档结构
打开TeXStudio, 新建一个文档, 输入以下代码:
\documentclass{article} % 选择文档类
\begin{document}
Hello, world! % 正文
Hello, \LaTeX!
\end{document}
点击菜单栏中的绿色双三角形(构建并查看(Ctrl+B
)), 你就会得到一个PDF文档.
基本要素
LaTeX 文档是文本和命令的混合体.
命令以反斜线开始, 有时在大括号里有参数(或有时在方括号中有可选参数). 然后你通过使用 LaTeX 对你的文件进行排版, 得到一个输出的 PDF.
\documentclass{}
命令必须出现在每个 LaTeX 文档的开头.花括号内的文本指定了文档的类型. 对于英文, 可以用book, article和beamer; 对于中文, 可以用ctexbook, ctexart和ctexbeamer, 这些类型自带了对中文的支持. 我们一般用article.
另外, 可以在\documentclass
命令后添加选项, 如\documentclass[12pt,a4paper]{article}
, 设置默认字体大小为12pt, 页面尺寸为A4.
每个 LaTeX 文档都有一个 \begin{document}
和一个匹配的\end{document}
. 在这两者之间是文档的主体, 即你的内容所在.
\begin{document}
和\end{document}
命令将你的文本内容包裹起来. 任何在 \begin{documnet}
之前的文本都被视为前导命令, 会影响整个文档; 任何在\end{document}
之后的文本都会被忽视.
注意到这里的正文有两个段落, 相邻的两行在编译时仍然会视为同一段, 在 LaTeX 中, 我们使用一个或多个空行来分隔段落.在LaTeX中, 多个空格被当成一个空格, 多个空行被当成一个空行.
没有必要加入空格来缩进, 因为文档默认会进行首行缩进.
另起一页的方式是使用 \newpage
命令.
在 \begin{document}
之前是文档导言区(preamble), 它包含一些设置文档格式的命令.
可以引用很多包来增强 LaTeX 的排版效果. 包引用的命令放置在文档的前导命令的位置(即放在 \begin{document} 命令之前).
使用 \usepackage[options]{package}
来引用包. 其中 package 是包的名称, 而 options 是指定包的特征的一些参数.这些包我们将会在后面介绍.
LaTeX 还有其他 \begin{...}
和\end{...}
的搭配;我们称这些为环境(environments). 你必须正确匹配它们, 以便每一个 begin{x} 都有一个 end{x}. 如果你对它们进行嵌套, 那么你必须有\end{y} … \end{x} 来匹配 \begin{x} … \begin{y}, 即按 \begin 和 \end 语句的顺序匹配.
我们可以在 LaTeX 文件中添加以 % 开头的注释;让我们用它来显示结构:
\documentclass[12pt,a4paper]{article}
\begin{document}
% 第一段
Hello, world!
% 第二段
Hello, \LaTeX!
\end{document}
添加标题
我们可以在begin{document}
后面紧跟着 \title{}
和 \author{}
命令来设置文档的标题和作者.
\documentclass[a4paper, 12pt]{article}
\begin{document}
\title{My First Document}
\author{My Name}
\date{\today}
\maketitle
A sentence of text.
\end{document}
\maketitle
命令将根据文档标题, 作者和日期生成一个标题页. \today
命令会自动插入当前日期, 你也可以用其他日期格式代替它.
章节
如果需要的话, 你可能想将你的文档分为章(Chatpers),节(Sections)和小节(Subsections).下列分节命令适用于 article 类型的文档:
- \section{…}
- \subsection{…}
- \subsubsection{…}
- \paragraph{…}
- \subparagraph{…}
花括号内的文本表示章节的标题. 对于 report 和 book 类型的文档我们还支持 \chapter{...}
的命令.
\documentclass[a4paper, 12pt]{article}
\begin{document}
\title{My First Document}
\author{My Name}
\date{\today}
\maketitle
\section{Introduction}
This is the introduction.
\subsection{Background}
This is the background.
\subsubsection{History}
This is the history.
\section{Methods}
\subsection{Stage 1}
The first part of the methods.
\end{document}
生成结果如图:
创建标签和交叉引用
为了让 LaTeX 记住文档中的一个位置, 你必须先标记它, 然后在其他位置引用它.
你可以对任意章节命令创建标签, 这样他们可以在文档的其他部分被引用.
在需要引用的位置(如章节, 图表, 公式后)使用 \label{key}
定义唯一标签
使用 \ref{key}
或 \pageref{key}
引用标签的编号或页码.
LaTeX 会自动根据上下文为不同对象分配编号, 但建议通过标签前缀提高可读性和维护性
对象类型 | 推荐标签前缀 | 示例 |
---|---|---|
章节(section) | sec | \section{Introduction}\label{sec:intro} |
表(table) | tab | \begin{table}\label{tab:mytable}...\end{table} |
图(figure) | fig | \begin{figure}\label{fig:myfig}...\end{figure} |
公式(equation) | eq | \begin{equation}\label{eq:myeq}...\end{equation} |
定理(theorem) | thm | \begin{theorem}\label{thm:mythm}...\end{theorem} |
注意:
- 编译顺序: LaTeX 需要至少两次编译才能正确解析标签引用.
- 唯一性: 标签名(key)必须在文档中唯一, 避免重复导致引用错误.
- 位置敏感: \label 应放在 \caption、\section 等命令之后, 否则可能引用到前一个计数器. 对于公式, 建议放在 \begin{equation} 内
目录
如果使用分节命令, 那么可以容易地生成一个目录. 使用 \tableofcontents
在文档中创建目录. 通常我们会在标题的后面建立目录.
你可能也想更改页码为罗马数字(i,ii,iii). 这会确保文档的正文从第 1 页开始. 页码可以使用 \pagenumbering{...}
在阿拉伯数字和罗马数字间切换.
%在maketitle之后添加
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}
页面
LaTeX 允许你设置页面的大小, 边距, 页眉和页脚.
使用 \textheight
和 \textwidth
命令设置页面高度和宽度.
引入宏包 geometry
可以方便地设置页面大小, 边距, 页眉和页脚.
在导言区加入:
\usepackage{geometry}
\geometry{a4paper, top=3cm, bottom=2cm, left=3cm, right=3cm}
这将设置页面大小为 A4, 页眉和页脚高度为 3cm, 左右边距为 3cm.
另外, 为了设置行间距, 可以使用如下代码: \linespread{1.5}
, 其中 1.5 是行间距的倍数.
添加页眉和页脚需要先引入宏包 fancyhdr
, 然后使用 \pagestyle{...}
命令.
\pagestyle{fancy}
\fancyhf{}
\rhead{Page \thepage}
\lhead{My Document}
\cfoot{\today}
\fancyhf{}
命令清除页眉和页脚的默认设置. \rhead{}
和 \lhead{}
命令设置页眉的右和左边, \cfoot{}
命令设置页脚的居中部分. \thepage
命令会自动插入当前页码.
使用\renewcommand{\headrulewidth}{width}
和\renewcommand{\footrulewidth}{width}
命令来分别设置页眉下方和页脚上方的横线宽度, width设为 0 时不显示横线.
文字处理
中文字体支持
让 LaTeX 支持中文字体有许多方法. 在此我们仅给出最简洁的解决方案: 使用 ctex 宏包.
例如, 要引用 ctex 宏包, 在文档的导言区加入 \usepackage[UTF8]{ctex}
命令即可.
字体
修改字体, 需引入宏包 fontspec
.
我在导入宏包 fontspec
后, 遇到了Emergency stop. \msg_fatal:nn {fontspec} {cannot-use-pdftex}
这个错误, 简单而言就是我在 pdfTeX 编译引擎下使用 fontspec 宏包, 而 fontspec 宏包是专门为 XeTeX 和 LuaTeX 编译引擎设计的, 不能在 pdfTeX 中使用.
解决这个问题比较简单, 切换到 XeTeX 或 LuaTeX 编译引擎即可. 在TeXStudio中, 点击菜单栏中的选项 –> 设置TeXstudion –> 构建 –> 默认编译器 –> 切换到 XeTeX 或 LuaTeX 即可.
修改全局字体, 如设置英文字体为 Times New Roman, 则在导言区加入:\setmainfont{Times New Roman}
; 如设置中文字体为宋体, 则在导言区加入:\setCJKmainfont{SimSun}
(特别注意大括号中的字体名称区分大小写).
一些常用的中文字体有: SimSun(宋体), FangSong(仿宋), NSimSun(新宋体), STFangsong(华文仿宋), STZhongsong(华文中宋), STXihei(华文细黑), KaiTi(楷体), STKaiti(华文楷体), SimHei(黑体), MicrosoftYaHei(微软雅黑), LiSu(隶书), STLiti(华文隶书), YouYuan(幼圆).
修改局部的字体, 只需用大括号包住, 然后加上”\字体名称”命令即可, 在这里使用 \newfontfamily
命令(依旧是宏包fontspec中的)定义新的字体族, 如\newfontfamily{\MyFont}{宋体}
, 即可在文档中使用\MyFont
命令调用宋体字体.
例如:
\newfontfamily{\courier}{Courier New}
\newfontfamily{\tinro}{Times New Roman}
\newfontfamily{\airal}{Arial}
\newfontfamily{\calibri}{Calibri}
\newfontfamily{\cambria}{Cambria}
\newfontfamily{\consolas}{Consolas}
{\courier Courier New-FengRu College of BeiHang University}
{\tinro Times New Roman-FengRu College of BeiHang University}
{\airal Arial-FengRu College of BeiHang University}
{\calibri Calibri-FengRu College of BeiHang University}
{\cambria Cambria-FengRu College of BeiHang University}
{\consolas Consolas-FengRu College of BeiHang University}
{\songti 宋体-北京航空航天大学冯如书院}
{\heiti 黑体-北京航空航天大学冯如书院}
{\fangsong 仿宋-北京航空航天大学冯如书院}
{\kaishu 楷书-北京航空航天大学冯如书院}
{\lishu 隶书-北京航空航天大学冯如书院}
{\youyuan 幼圆-北京航空航天大学冯如书院}
{\yahei 雅黑-北京航空航天大学冯如书院}
展示效果如下:
字体效果
LaTeX 有多种不同的字体效果, 如斜体, 粗体, 下划线, 等宽字体, 等宽斜体, 等宽粗体, 等宽下划线等.
字体 | 代码 |
---|---|
直立 | \textup{text} |
意大利斜体 | \textit{text} |
衬线字体 | \textrm{text} |
粗体 | \textbf{text} |
下划线 | \underline{text} |
等宽字体 | \texttt{text} |
等宽斜体 | \texttt{\textit{text}} |
等宽下划线 | \texttt{\underline{text}} |
斜体命令\textit{}只对英文有效, 对中文无效.中文斜体可以使用强调命令\emph{}
, 如\emph{text}
.
对英文同时斜体和粗体则需\usepackage{bm}
, 然后使用\bm{}
命令包裹英文.
字体颜色
使用\usepackage{color}
后, 我们可以调用常见的颜色.
使用彩色字体的代码为:
{\color{colorname}text}
其中 colorname 是你想要的颜色的名字, text 是你的彩色文本内容.
如果想要背景色, 可以使用\colorbox{colorname}{text}
命令.
也可以添加一些参数来调用更多的颜色, 甚至自定义你需要的颜色, 但这部分超出了我们的内容, 请自行查阅相关资料.
字体大小
使用\tiny
, \scriptsize
, \small
, \normalsize
, \large
, \LARGE
, \huge
, \Huge
命令来调整字体大小.
大小 | 代码 | 展示 |
---|---|---|
无指令 | normal size words | $normal size words$ |
小型 | {\tiny tiny words} | ${\tiny tiny words}$ |
小号 | {\scriptsize scriptsize words | ${\scriptsize scriptsize words}$ |
中号 | {\small small words} | ${\small small words}$ |
正常 | {\normalsize normalsize words} | ${\normalsize normalsize words}$ |
大号 | {\large large words} | ${\large large words}$ |
特大号 | {\LARGE LARGE words} | ${\LARGE LARGE words}$ |
巨大号 | {\huge huge words} | ${\huge huge words}$ |
特巨大号 | {\Huge Huge words} | ${\Huge Huge words}$ |
段落缩进
LaTeX 默认每个章节第一段首行顶格, 之后的段落首行缩进.
如果想要段落顶格, 在要顶格的段落前加\noindent
命令即可.
如果希望全局所有段落都顶格, 在文档的某一位置使用 \setlength{\parindent}{0pt}
命令, 之后的所有段落都会顶格.
列表
LaTeX 支持三种类型的列表: 有序列表(enumerate) , 无序列表(itemize)和描述列表(description). 列表中的元素定义为 \item. 列表可以有子列表
有序列表使用 \begin{enumerate} \end{enumerate}
环境, 无序列表使用 \begin{itemize} \end{itemize}
环境, 描述列表使用 \begin{description} \end{description}
环境.
\begin{enumerate}
\item First thing
\item Second thing
\begin{itemize}
\item A sub-thing
\item Another sub-thing
\end{itemize}
\item Third thing
\end{enumerate}
可以使用方括号参数来修改无序列表头的标志.
例如, \item[-]
会使用一个杠作为标志, 你甚至可以使用一个单词, 比如 \item[One]
.
注释, 空格和间距
我们使用 % 创建一个单行注释, 在这个字符之后的该行上的内容都会被忽略, 直到下一行开始.
通常来说, LaTeX 忽略空行和其他空白字符, 使用 \\
等命令可以强制换行 .
我们可以使用\,
添加一个小的间距(大概半个空格宽度), \quad
可以建立一个更大的间距. 在数学模式(稍后会介绍)中还可以使用:\.
, \:
, \;
, 以及用于添加负间隙的 \!
使用 \hspace{width}
命令可以创建水平间距, 使用 \vspace{height}
命令可以创建垂直间距. 其中 width 和 height 是以磅为单位的长度. 它们通常用于控制行距和段落间距.
特殊字符
下列字符在 LaTeX 中属于特殊字符:
# $ % & _ { } ~ ^ \
为了使用这些字符, 我们需要在他们前面添加反斜杠进行转义:
\# \$ \% \& \_ \{ \} \~{} \^{} \textbackslash
注意在使用^
和~
字符的时侯需要在后面紧跟一对闭合的花括号, 否则他们就会被解释为字母的上标.
\
无法使用反斜杠转义, 不然会被当做换行符. 所以我们需要使用\textbackslash
命令来表示\
.
表格
LaTeX 支持创建表格. 创建表格可以使用这个网站:Create LaTeX tables online
在导言区添加\usepackage{array}
命令, 可以使用LaTeX的表格的更多功能.
在 LaTeX 中, 使用tabular
环境构建表格.
为了排版 tabular 表格, 我们需要告诉 LaTeX 总共有多少列, 以及应当怎样对齐. 这通常通过一个额外的参数——通常被称为表格导言(table preamble)——来指定 tabular 列数.
每列通常通过单个字母(被称为引导符, preamble-token)指定, 这些字母的含义如下:
引导符 | 含义 |
---|---|
l | 左对齐(left align) |
c | 居中(center) |
r | 右对齐(right align) |
p{width} | 表格列的宽度为width, 固定列宽; 文字会被自动折行并两端对齐 |
m{width} | 和p 类似,但垂直居中对齐 |
b{width} | 和p 类似,但垂直底部对齐 |
w{align}{width} | 固定列宽, 如果太长会稍稍出界. align 是对齐方式, 可以是l , c , r 中的一个. |
被 l
, c
,r
标识的列将会根据最宽的单元格自动决定列宽. 每一列都需要被声明.
如果需要三个居中列, 你可以在表格导言使用 ccc
, 当然因为空格会被忽略掉, c c c
也是等同的.
表格主体中, 列都是通过 & 和号来分隔的, 行是通过 \ 来另起的.
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{lll}
Animal & Food & Size \\
dog & meat & medium \\
horse & hay & large \\
frog & flies & small \\
\end{tabular}
\end{document}
也可以在表格前用\caption{}
命令来添加表格标题, 并使用label
命令来创建引用.
你可能会发现, 这个时候的表格没有分割线, 这里我们来介绍添加分割线.例如{lll}
会生成一个三列的表格, 并且保存向左对齐, 没有显式的竖线; {|l|l|l|}
会生成一个三列表格, 并且保存向左对齐, 并且有显式的竖线.
不过我们有其他的方式, 也提个建议: 表格中应当少用分割线, 而且纵向分割线一般看起来不专业.
使用\usepackage{booktabs}
命令引入 booktabs 宏包, 它可以帮助我们创建更加专业的表格.
booktabs 提供了四种不同的分割线. 每一种命令都需要在每一行之前或者在一个分割线之后使用. 其中三种分割线命令是:\toprule
, \midrule
, \bottomrule
. 顾名思义, 它们分别在表格顶部, 中间, 底部添加分割线.
第四种 booktabs 提供的分割线命令是 \cmidrule{col1-col2}
, 可用来绘制出仅占用指定列范围而不占满整行的分割线. 列范围被表示为一个数字范围, 即使你只需要对一列画分割线, 也要指定一个范围(范围两端的列号相同罢了).
在 LaTeX 中, 可以通过\multicolumn
命令水平合并两个单元格, 如果需要使用这个命令, 必须在输入单元格内容前使用.
\multicolumn{}{}{}
接受三个参数:需要合并多少个单元格, 合并后单元格的对齐方式, 合并后单元格的内容.
对齐方式可以使用 tabular 中定义的任何方式, 但只需要指定一个列类型.
\toprule
Animal & Food & Size \\
\midrule
dog & meat & medium \\
horse & hay & large \\
frog & flies & small \\
fuath & \multicolumn{2}{c}{unknown} \\
\bottomrule
LaTeX 不支持纵向单元格的合并.
图片
LaTeX 可以插入图片, 但需要使用一些额外的命令.
首先, 我们需要使用\usepackage{graphicx}
命令来加载 graphicx 宏包.
然后, 使用\includegraphics[options]{filename}
命令来插入图片.
其中 options 是一些选项, 如宽度和高度, 以及对齐方式.
filename 是图片文件的名称, 通常以 .png,.jpg, .pdf 等结尾.
\begin{figure}[h]
\centering
\includegraphics[width=1\textwidth]{myimage}
\caption{Here is my image}
\label{image-myimage}
\end{figure}
这个代码插入一个名为 myimage 的图片, 并居中显示, 并添加一个标题和一个标签.
在排版的时候, 图片可能会移动到文档中的其他位置上, 这通常被称为浮动(float). 图片通常会被设定为浮动体, 从而页面中不会有大面积的留白.
我们可以使用[h]
, [t]
, [b]
, [p]
等参数来控制图片的位置(有的时候直接用[htbp]
的作用是自动选择插入图片的最优位置).
- h(here) 表示把图表近似地放置在这里(如果能放得下).
- t(top) 表示把图表放在页面顶端.
- b(bottom) 表示把图表放在页面底端.
- p(page) 表示把图表另起一页放置.
你也可以添加一个 !
参数来强制放在参数指定的位置(尽管这样排版的效果可能不太好).
\centering 将图片放置在页面的中央. 如果没有该命令会默认左对齐. 不使用 center 环境来水平居中图片, 这将避免浮动环境和 center 环境都会增加纵向间隔的局面.
\includegraphics{…} 命令可以自动将图放置到你的文档中, 图片文件应当与 TeX 文件放在同一目录下. [width=1\textwidth]
是一个可选的参数, 它指定图片的宽度——与文本的宽度相同. 宽度也可以以厘米为单位, 你也可以使用 [scale=0.5]
将图片按比例缩小一半
\caption{} 命令用来添加图片的标题. 如果使用了它, LaTeX 会给你的图表添加「Figure」开头的序号. 你可以使用\listoffigures
来生成一个图表的目录.
\label{} 命令用来创建引用.
公式
我们选择LaTeX来排版数学公式的原因就是其强大的数学公式排版能力. 公式的输入和输出都十分简单, 而且公式的排版效果也十分出色.
例如
都是使用LaTeX排版的数学公式.
排版复杂的数学公式是 LaTeX 最重要的优势之一. 你可以在「数学模式」下通过逻辑标记的方式编写数学公式.
注意: 在数学公式环境中要加汉字, 则必须置于\text{}
之内.
我常用的数学公式网站是LaTeX数学公式在线编辑器, 里面提供了大量可以直接输入的公式符号和字母, 还可以保存为图片或者输出LaTeX代码, 非常方便 (其实也只有在想不起来希腊字母怎么拼的时候才用到).
数学模式
在数学模式下, 空格会被省略, 字符间(基本上)都会有恰当的空格.
数学模式有两种形式:
- 行内公式
- 行间公式
行内公式
行内数学公式是通过一对美元符号($...$
)标记的, 当然用\( ... \)
标记也是可行的.
输入简单表达式不需要任何特殊的标记, 你将看到数学公式会被排版出合适的间隔, 而且文字会变成斜体.
行内数学模式限制了表达式的纵向高度以使数学公式尽可能不打乱段落的行间距.
注意到所有的数学符号都应被标记成数学模式下的, 即使只是一个字符也应该使用如 ... $2$ ...
而不是... 2 ...
.
行间公式
行间数学公式是通过$$...$$
或\[... \]
标记的, 这两种环境只能输入单行公式, 换行符\在其中无效.
你可以在行间模式中使用与行内模式一样的命令. 行间数学模式默认设置在居中位置, 并,为「仍属于该段」的大型公式所准备. 注意到行间数学环境不允许在数学模式中结束该段, 所以你也许不能够在该模式的源代码中留有空行.
段落都应当在行间公式之前开始, 所以不要在行间数学环境之前留有空行. 如果你的数学公式有多行, 不要使用多个连续的行间数学环境(这将导致不一致的行间距), 而是使用一种多行行间公式环境, 比如稍后提及的 amsmath 宏包中 align 环境.
你通常需要对公式编号, 使用 equation
环境可以创建这些编号(equation也只能输入单行公式, 换行符\在其中无效).
\begin{equation}
e^{i\pi} + 1 = 0
\end{equation}
\begin{equation}
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
\end{equation}
公式编号将会自动递增, 公式旁或者只有一个数字, 或者会加一个目次号码的前缀, 比如 (2.5) 表示第 2 节的第 5 个公式, 这种只有你的文档有设置章节时才会出现, 比如 report 类型的文档.
使用eqnarray
环境可以撰写一组带标号的公式.
\begin{eqnarray}
y &=& \sin x \\
y' &=& \cos x
\end{eqnarray}
要撰写不标号的公式就在环境标志的后面添加 *
字符, 使用\notag
或\nonumber
可隐藏任意一行公式的编号.
amsmath 宏包和多行公式环境
数学符号太多了, amsmath 宏包拓展了内核以提供更多的方案, \usepackage{amsmath}
可导入该宏包.
多行公式环境
多行公式通常使用align
环境, 它可以自动对齐公式中的符号.
\begin{align*}
f(x) &= \int_{-\infty}^{\infty} e^{-x^2} dx \\
&= \sqrt{\pi}
\end{align*}
align 环境可以处理多行公式, 并且可以自动对齐公式中的符号. 你也可以使用 &
和 \\
来手动控制对齐.
aligned
环境同样来自 amsmath 宏包, 不过它是一个数学模式中的子环境, 不能单独使用, 必须嵌套在其他数学环境如( equation, […] 等)中, 用于将一组公式进行内部对齐, 通常不会为这些公式单独编号.好处是将整体作为一个公式, 只会有一个编号.
alignat
和align环境区别不明显, align整体稍微宽一点.
gather
环境中不能出现对齐符号&
, 否则报错. 此环境下所有行的公式全部居中对齐.
cases
环境对于带左大括号的情形特别有用, 比如分段函数, 方程联立等(不能单独使用, 必须嵌套在其他数学环境中).
\begin{align*}
\begin{cases}
2 x + 3 y = 7 \\
3 x + 5 y = 8
\end{cases}
\end{align*}
multline
环境第一行左对齐, 中间的行居中对齐最后一行右对齐, 用得较少(我反正没用过).
split
环境可以将公式分割成多行,必须在其他数学环境中使用.且不能再嵌套.
给公式外围加上边框可以使用\boxed{}
命令, 如\boxed{\int_{-\infty}^{\infty} e^{-x^2} dx}
公式编号和位置
想让公式编号带上章序号或节序号, 可使用\numberwithin{equation}{chapter}
和\numberwithin{equation}{section}
命令.
不想让公式带上章号节号, 则:
\usepackage{chngcntr}
\counterwithout{equation}{chapter}
\counterwithout{equation}{section}
其中的equation
可以换成其他公式环境名, 可以换成成table
和figure
等来不让表格和图片带上章节号.
要让全文的行间公式居左(默认是居中),使用
\usepackage[fleqn]{amsmath}
如果同时需要公式编号在左侧,那么使用
\usepackage[leqno,fleqn]{amsmath}
如果只想要让单个公式居左,使用
\begin{flalign}
E=mc^2 &&
\end{flalign}
特别注意最后的两个对齐符号&&
, 如果漏掉, 则没有居左的效果.
注意 \usepackage{chngcntr}
不能与 \usepackage[leqno]{amsmath}
同时使用, 但可以用但可以用\usepackage{amsmath}
, 如果要使用公式编号位于左侧这个效果, 可以使用\documentclass[a4paper,leqno]{article}
.
想要更改编号样式, 可以使用\renewcommand
命令, 比如\renewcommand{\theequation}{\thesection.\arabic{equation}}
将公式编号改为 节-公式 的形式.
公式字体
和正常文本不同的是, 数学模式的字体变化通常会蕴含非常特定的意义. 因此它们经常被写做特殊的命令.
命令 | 字体效果 | 示例代码 | 展示 |
---|---|---|---|
\mathrm | 罗马字体(直立体) | $\mathrm{ABCabc123}$ | $\mathrm{ABCabc123}$ |
\mathit | 使用普通文本字间隔的斜体 | $\mathit{ABCabc123}$ | $\mathit{ABCabc123}$ |
\mathbf | 粗体 | $\mathbf{ABCabc123}$ | $\mathbf{ABCabc123}$ |
\mathsf | 无衬线字体 | $\mathsf{ABCabc123}$ | $\mathsf{ABCabc123}$ |
\mathtt | 等宽字体(打字机字体) | $\mathtt{ABCabc123}$ | |
\mathbb | 双重粗体(黑板粗体,由 amsfonts 宏包提供, 只适用大写字母) | \usepackage{amsfonts}<br>$\mathbb{ABC}$ | |
\mathscr | 手写字体(由 amsfonts 宏包提供, 只适用大写字母) | \usepackage{amsfonts}<br>$\mathscr{ABC}$ | |
\mathfrak | 哥特字体(由 amsfonts 宏包提供) | \usepackage{amsfonts}<br>$\mathfrak{ABC}$ |
数学符号
LaTeX 中有大量的数学符号, 包括希腊字母, 罗马字母, 一些特殊符号, 还有一些常用的函数和运算符, 接下来我们将进行详细介绍.
上标和下标
$A_b^c$: A_b^c
$A_{bc}^{def}$: A_{bc}^{def}
如果上下标的字母不止一个, 则需要用花括号括起来.
组合数: $\binom{n}{2}$: \binom{n}{2}或{n\choose 2}
分式和根号
高度自适应的分数(行内较矮,行间较高): \frac{}{}
——$\frac{a}{b}$
强制较高的分数: \dfrac{}{}
——$\dfrac{a}{b}$
强制较矮的分数: \tfrac{}{}
——$\tfrac{a}{b}$
开方根号: \sqrt{x}
——$\sqrt{x}$
根号: \sqrt[n]{x}
——$\sqrt[n]{x}$
运算符
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|
$+$ | 加号:+ | $-$ | 减号:- | $\times$ | 乘号:\times | $\div$ | 除号:\div |
$\odot$ | 圆点乘号:\odot,\bigodot | $\oplus$ | 圆加号:\oplus,\bigoplus | $\ominus$ | 圆减号:\ominus,\bigominus | $\otimes$ | 圆乘号:\otimes,\bigotimes |
$=$ | 等于号:= | $\neq$ | 不等于号:\neq | $\leq$ | 小于等于号:\leq, \leqslant(需导入{amssymb}) | $\geq$ | 大于等于号:\geq, \geqslant(需导入{amssymb}) |
$\pm$ | 正负号:\pm | $\mp$ | 负正号:\mp | $\gg$ | 远大于:\gg | $\ll$ | 远小于:\ll |
$\equiv$ | 恒等符号:\equiv | $\sim$ | 相似符号:\sim | $ \backsim$ | 逆符号:\backsim | $\approx$ | 约等于号:\approx |
$\cong$ | 全等号:\cong | $\in$ | 属于:\in | $\notin$ | 不属于:\notin | $\subset$ | 子集:\subset |
$\supset$ | 超集:\supset | $\subsetneq$ | 子集不等于:\subsetneq | $\subseteq$ | 子集等于:\subseteq | $\supseteq$ | 超集等于:\supseteq |
$\cap$ | 交集:\cap, \bigcap | $\cup$ | 并集:\cup, \bigcup | $\setminus$ | 补集:\setminus | $ \wedge$ | 且:\wedge, \bigwedge |
$\vee$ | 或:\vee, \bigvee | $\neg$ | 非:\neg | $\int$ | 积分:\int | $\iint$ | 双重积分:\iint |
$\iiint$ | 三重积分:\iiint |
路径积分$\oint$ : \oint
, 二重环路积分为\varoiint
,需要导入{esint}宏包.
其他符号
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|
$\exists$ | 存在量词:\exists | $\forall$ | 任意量词:\forall | $\bullet$ | 黑色圆点:\bullet | $\cdot$ | 点乘:\cdot |
$\cdots$ | 省略号:\cdots | $\vdots$ | 省略号:\vdots | $\ddots$ | 省略号:\ddots | $\hbar$ | 约化普朗克常数:\hbar |
$\propto$ | 比例符号:\propto | $\infty$ | 无穷大:\infty | $\prime$ | 质数:\prime | $\emptyset$ | 空集:\emptyset |
$\aleph$ | 阿列夫:\aleph | $\partial$ | 偏导:\partial | $\nabla$ | 梯度:\nabla | $\Delta$ | 微分算子:\Delta |
$\square$ | 正方形:\square | $\angle$ | 角度:\angle | $\triangle$ | 三角形:\triangle | $\circ$ | 小圆圈:\circ |
$\lfloor\,\rfloor$ | 向下舍入:\lfloor \rfloor | $\lceil\,\rceil$ | 向上取整:\lceil \rceil |
角度$45^\circ$ : 45^{\circ}
极限, 累加, 累乘, 积分
$\lim_{x\to\infty} f(x)$: \lim_{x\to\infty} f(x)
上极限: \varlimsup_{n\to\infty} a_n
下极限: \varliminf_{n\to\infty} a_n
$\sum_{i=1}^n $: \sum_{i=1}^n
$\prod_{i=1}^n $: \prod_{i=1}^n
$\int_{a}^{b} $: \int_{a}^{b}
行内公式相对较为狭小,如果是行间公式, 如下:
多重极限: 如$x$,$y$同时趋近到$x_0$,$y_0$,则有\lim\limits_{x\to x_0\atopy\toy_0}
括号
\left( \right), \left[ \right]
\left\{ \right\}, \left| \right|
\big,\bigg,\bigl,\bigr,\biggl,\biggr
\Big,\Bigg,\Bigl,\Bigr,\Biggl,\Biggr
直接使用(),[],{},括号的高度不会随着括号中的内容高度而变化, 如$(\frac{\pi^2}{2})$.
而用\left( \right)
则能让括号随内容增高而变高, 如$\left(\frac{\pi^2}{2}\right)$.
使用\bigg(\bigg)
, \Bigg(\Bigg)
之类的,不同的命令代表不同尺寸的括号, 而与括号中的内容无关.
使用\left\right时, 内部不能出现换行符\\
.
如果只需要显示单侧的括号, 最常见的情形是只显示左大括号, \right不能省略, 必须与\left配对出现, 配对方法是要把右括号改成小数点, 即输入\right.
.
一些其他括号命令:
$ \left|\dfrac{a}{b}\right|$: \left|\dfrac{a}{b}\right|
$ \left\langle x,y\right\rangle$: \left\langle x,y\right\rangle
$ \left\lfloor x \right\rfloor$: \left\lfloor x \right\rfloor
$ \left\lceil x \right\rceil$: \left\lceil x \right\rceil
矩阵
输入矩阵需要导入{amsmath}宏包.
矩阵的输入方法如下:
\begin{pmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22} \\
\end{pmatrix}
\begin{bmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22} \\
\end{bmatrix}
\begin{vmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22} \\
\end{vmatrix}
不带括号和竖线用matrix, 大括号用Bmatrix, 双竖线用Vmatrix.
别忘了三种省略号: \cdots
, \vdots
, \ddots
.
常见函数
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|---|---|
$\sin x$ | 正弦:\sin | $\cos x$ | 余弦:\cos | $\tan x$ | 正切:\tan | $\cot x$ | 余切:\cot | $\sec x$ | 正割:\sec |
$\csc x$ | 余割:\csc | $\arcsin x$ | 反正弦:\arcsin | $\arccos x$ | 反余弦:\arccos | $\arctan x$ | 反正切:\arctan | $\sinh x$ | 双曲正弦:\sinh |
$\cosh x$ | 双曲余弦:\cosh | $\tanh x$ | 双曲正切:\tanh | $\exp x$ | 指数:\exp | $\log x$ | 对数:\log | $\ln x$ | 自然对数:\ln |
$\lg x$ | $\常用对数:\lg | $\inf$ | 无穷小:\inf | $\sup$ | 无穷大:\sup | $\max$ | 最大值:\max | $\min$ | 最小值:\min |
$\det$ | 行列式:\det | $\arg$ | 极角:\arg | $\deg$ | 度:\deg | $\dim$ | 维度:\dim |
这些函数只能在公式环境中使用, 而且字体是正体. 如果没有反斜杠\
, 就是普通斜体.
希腊字母
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|---|---|
$\alpha,A$ | 希腊字母:\alpha,\Alpha | $\beta,B$ | 希腊字母:\beta,\Beta | $\gamma,\Gamma$ | 希腊字母:\gamma,\Gamma | $\delta,\Delta$ | 希腊字母:\delta,\Delta | $\epsilon,E,\varepsilon$ | 希腊字母:\epsilon,\Epsilon, \varepsilon |
$\zeta,Z$ | 希腊字母:\zeta,\Zeta | $\eta,H$ | 希腊字母:\eta,\Eta | $\theta,\Theta, \vartheta$ | 希腊字母:\theta,\Theta, \vartheta | $\iota,I$ | 希腊字母:\iota,\Iota | $\kappa,K, \varkappa$ | 希腊字母:\kappa,\Kappa, \varkappa |
$\lambda,\Lambda$ | 希腊字母:\lambda,\Lambda | $\mu,M$ | 希腊字母:\mu,\Mu | $\nu,N$ | 希腊字母:\nu,\Nu | $\xi,\Xi$ | 希腊字母:\xi,\Xi | $\omicron,O$ | 希腊字母:\omicron,\Omicron |
$\pi,\Pi,\varpi$ | 希腊字母:\pi,\Pi,\varpi | $\rho,P,\varrho$ | 希腊字母:\rho,\Rho,\varrho | $\sigma,\Sigma$ | 希腊字母:\sigma,\Sigma | $\tau,T$ | 希腊字母:\tau,\Tau | $\upsilon,\Upsilon$ | 希腊字母:\upsilon,\Upsilon |
$\phi,\Phi, \varphi$ | 希腊字母:\phi,\Phi, \varphi | $\chi,X$ | 希腊字母:\chi,\Chi | $\psi,\Psi$ | 希腊字母:\psi,\Psi | $\omega,\Omega$ | 希腊字母:\omega,\Omega |
一些公式的正体
公式环境中, 某些特殊含义的字母需要用正体而非斜体, 比如自然对数底数e, 虚数单位i和微分符号d, 使用\mathrm{}
即可. 比如
\mathrm{e}^{\mathrm{i}\theta}=
\cos\theta+{\mathrm{i}}\sin\theta \\
\int_0^{+\infty}\frac{x}{\mathrm{e}^x-1}\mathrm{d}x=\frac{\pi^2}{6}
当然如果嫌输入麻烦, 可以自定义新的命令, \newcommand{}{}
, 可以简单理解为C语言中的宏定义#define
.
比如嫌\quad太麻烦, 可以用\newcommand{\q}{\quad}
定义一个命令\q
, 然后用\q
来表示一个空格.
个人一般有如下习惯:
\renewcommand{\Re}{\mathrm{Re}}
\renewcommand{\Im}{\mathrm{Im}}
\renewcommand{\d}{\mathrm{d}}
\renewcommand{\i}{\mathrm{i}}
\newcommand{\e}{\mathrm{e}}
字母上下加符号
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|---|---|
$\overline{x}$ | 上划线:\overline | $\underline{x}$ | 下划线:\underline | $\widehat{x}$ | 向右弯曲:\widehat | $\widetilde{x}$ | 向右伸长:\widetilde | $\overbrace{x+y}^{z}$ | 向上方框:\overbrace |
$\underbrace{x+y}_{z}$ | 向下方框:\underbrace | $\overleftarrow{AB}$ | 向左上方箭头:\overleftarrow | $\overrightarrow{AB}$ | 向右上方箭头:\overrightarrow | $\overleftrightarrow{AB}$ | 向左右上方箭头:\overleftrightarrow | $\underleftarrow{AB}$ | 向左下方箭头:\underleftarrow |
$\underrightarrow{AB}$ | 向右下方箭头:\underrightarrow | $\underleftrightarrow{AB}$ | 向左右下方箭头:\underleftrightarrow | $ \stackrel{b}{a}$ | 竖着写:\stackrel | $\overset{b}{a}$ | 向上写:\overset | $\underset{b}{a}$ | 向下写:\underset |
$\tilde{a}$ | 短波浪号:\tilde | $\widetilde{abc}$ | 长波浪号:\widetilde | $\bar{a}$ | 条形线:\bar | $\vec{a}$ | 矢量符号:\vec | $\hat{a}$ | 尖帽符:\hat |
$\widehat{abc}$ | 宽尖帽符:\widehat | $\acute{a}$ | 重音符:\acute | $\grave{a}$ | 加重符:\grave | $\check{a}$ | 钩符:\check | $\breve{a}$ | 短倒杠符:\breve |
$\dot{a}$ | 点符:\dot | $\ddot{a}$ | 双点符:\ddot |
中文加下划线
需要\usepackage{ulem}
- 单下划线
\uline{}
- 双下划线
\uuline{}
- 波浪线
\uwave{}
- 删除线
\sout{}
- 虚下划线
\dashuline{}
- 点下划线
\dotuline{}
箭头
符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 | 符号 | 命令 |
---|---|---|---|---|---|---|---|---|---|
$\leftarrow$ | 左箭头:\leftarrow | $\uparrow$ | 上箭头:\uparrow | $\rightarrow$ | 右箭头:\rightarrow, \to | $\downarrow$ | 下箭头:\downarrow | $\leftrightarrow$ | 左右箭头:\leftrightarrow |
$\updownarrow$ | 上下箭头:\updownarrow | $\Leftarrow$ | 双线左箭头:\Leftarrow | $\Uparrow$ | 双线上箭头:\Uparrow | $\Rightarrow$ | 双线右箭头:\Rightarrow | $\Downarrow$ | 双线下箭头:\Downarrow |
$\hookleftarrow$ | 向左钩箭头:\hookleftarrow | $\hookrightarrow$ | 向右钩箭头:\hookrightarrow | $\leftharpoonup$ | 向左上弯箭头:\leftharpoonup | $\rightharpoonup$ | 向右上弯箭头:\rightharpoonup | $\leftharpoondown$ | 向左下弯箭头:\leftharpoondown |
$\rightharpoondown$ | 向右下弯箭头:\rightharpoondown | $\rightleftharpoons$ | 向左右弯箭头:\rightleftharpoons | $\longleftarrow$ | 长左箭头:\longleftarrow | $\Longleftarrow$ | 长双线左箭头:\Longleftarrow | $\longrightarrow$ | 长右箭头:\longrightarrow |
$\Longrightarrow$ | 长双线右箭头:\Longrightarrow | $\longleftrightarrow$ | 长左右箭头:\longleftrightarrow | $\Longleftrightarrow$ | 长双线左右箭头:\Longleftrightarrow |
$ \xrightarrow[a,b]{c,d}$ : 箭头带字母:\xrightarrow[]{}
化学方程式的\xlongequal[140^{\circ}{\mathrm{C}]{\text{稀硫酸}}
需\usepackage{extarrows}
带圈数字
使用\usepackage{pifont}
, 然后\ding{}
即可. 比如\ding{172}-\ding{181}
表示一组带圈数字1~10.
交换图的制作
使用\usepackage{xypic}
\usepackage[all]{xy}
\begin{displaymath}
\xymatrix{
V \ar[r]^{\bm{\varphi}}
\ar[d]_{\bm{\eta}_1}
& U\ar[d]^{\bm{\eta}_2} \\
{\mathbb{K}_n} \ar[r]^{\bm{\varphi}_A}
& {\mathbb{K}_m} }
\end{displaymath}
空格与空白
- 负空格
\!
- 窄空格
\,
- 中等空格
\:
- 宽空格
\;
- 词间空格
\
- 四倍空格
\quad
- 八倍空格
\qquad
注意: “词间空格”的斜杠后有一个看不见的空格.
- 取消首行缩进:
\noindent
- 水平空白
\hspace{±2cm}
- 垂直空白
\vspace{±2cm}
- 换页
\newpage
- 换行
\newline
宏包的介绍
LaTeX中的宏包可以为文档添加各种功能和样式, 以下是一些常用的宏包介绍, 限于篇幅, 具体的用法请自行上网搜索, 后续也会出一些相关介绍(如果有时间的话, 又在挖坑)
数学公式相关
- amsmath: 提供了大量扩展的数学环境和命令, 如
align
,equation*
等环境, 方便编写复杂的数学公式和进行公式对齐. 例如:
\begin{align*}
a + b &= c\\
d - e &= f
\end{align*}
- amssymb: 补充了许多额外的数学符号,像各种特殊的集合符号,逻辑符号等. 比如
\mathbb{R}
表示实数集,\forall
表示全称量词.
排版相关
- geometry: 用于轻松设置页面布局, 包括边距,纸张大小等. 例如, 可以通过
\usepackage[margin=2cm]{geometry}
将页面四周的边距都设置为2厘米. - indentfirst: 让段落的首行自动缩进, 符合中文等大多数文档的排版习惯。
图表相关
- graphicx: 用于插入图片, 支持多种图片格式. 使用
\includegraphics
命令来插入图片, 如\includegraphics[width=0.5\textwidth]{example.jpg}
可以将名为example.jpg
的图片插入到文档中,并设置宽度为页面宽度的一半。 - tikz: 强大的绘图宏包, 可以用于绘制各种复杂的图形, 图表和流程图等. 例如:
\begin{tikzpicture}
\draw (0,0) -- (2,2) -- (4,0) -- cycle;
\end{tikzpicture}
引用和参考文献相关
- cite: 提供了方便的引用格式和管理参考文献的功能, 配合
.bib
文件使用. 可以使用\cite{key}
来引用参考文献, 其中key
是在.bib
文件中定义的文献标识符. - natbib: 增强了参考文献的管理和引用功能, 提供了更多的引用样式和选项.
中文支持相关
- ctex: 专门用于处理中文排版的宏包, 支持多种中文字体, 能很好地解决中文编码, 断行等问题.例如在
ctexart
文档类下,可以直接使用中文进行书写和排版.
代码排版相关
- listings:用于在LaTeX文档中插入和排版代码, 支持多种编程语言的语法高亮显示. 例如:
\begin{lstlisting}[language=Python]
def hello_world():
print("Hello, World!")
\end{lstlisting}
- minted: 也是用于代码排版的宏包, 基于Pygments库提供更丰富的语法高亮和样式设置.
颜色相关
- xcolor: 允许在LaTeX中使用颜色, 可用于文本, 图形等元素的上色. 比如可以通过
\textcolor{red}{这是红色的文本}
将文本设置为红色.
目录相关
- hyperref: 用于创建超链接, 使文档中的目录, 参考文献等具有交互性, 方便读者在PDF文档中快速跳转. 同时还可以设置链接的颜色等属性.
- tocbibind: 可以将参考文献, 索引等内容添加到目录中, 使文档结构更加清晰完整.
写在最后
不知不觉写了这么多, 总算是简单的介绍完了…
我把我在使用LaTeX的一些简单总结都记录在了这个文档里, 希望对大家有所帮助, 也希望对大家的LaTeX使用有所启发, 共同进步.
其实LaTeX一开始上手会感觉很难, 但是慢慢熟练起来后, 你会发现它的魅力, 尤其是在排版公式的时候, 感觉超级解压.
不会的不要害怕, 遇到bug和编译错误要多看报错信息, 多查资料, 多问AI, 多试错, 最后一定可以得到解决的!
最后, 祝大家在使用LaTeX的道路上, 都能顺利前行!
伟大无需多言
伟大无需多言