LaTex整理
实用工具
-
在线编辑
https://www.codecogs.com/latex/eqneditor.php
https://latex.vimsky.com/ -
模板:https://github.com/yuanhaizhuan/xtuthesis
基本概念
Tex:一种具有编译和排版功能的基础语言,类似于 C 语言
LaTeX:是 Tex 的扩展,有许多宏包,功能更加丰富
TexLive:Tex 语言的编辑器,操作没那么便利
Texstudio:相当于 TexLive 套上一个外壳,不过编辑起来更加方便
| 名称 | 定义 | 常用软件/包 |
|---|---|---|
| TeX | 最原始的排版引擎,类似 C 语言的底层语言,只提供最基本的排版指令 | TeX Live(发行版) |
| LaTeX | TeX 的宏包化扩展,提供大量预定义的结构(章节、图表、数学公式等)和宏包生态 | 需要配合 TeX Live、MiKTeX 使用 |
| TeX Live | 跨平台的 TeX 发行版,包含几百个宏包和编译器(pdfLaTeX、XeLaTeX、LuaLaTeX) | 下载安装 https://tug.org/texlive/ |
| TeXstudio | 基于 TeX Live 的图形化 IDE,集成代码补全、错误定位、模板管理等功能 | https://texstudio.org/ |
Tip:中文排版建议使用 XeLaTeX(或 LuaLaTeX),配合
xeCJK/ctex包即可获得完整的中文支持
示例
最小可工作文档结构
|
|
常用章节宏与环境
|
|
|
|
Tip:章节标题会自动编号,若想取消编号,可使用
\section*{标题}(带星号的版本)
三线表(booktabs)示例
依赖:\usepackage{booktabs}
建议使用 \toprule、\midrule、\bottomrule 替代默认的 \hline,表格更美观
|
|
小技巧:若表格宽度需要占满页面,可使用
\resizebox{\textwidth}{!}{...}包裹tabular
公式、标签与交叉引用
|
|
使用 \label{eq:alpha} 为公式命名
若加载 cleveref 包,可通过 \cref{eq:alpha} 对公式进行引用,自动输出 “式 (1)”
若不使用 cleveref,使用原生 \eqref{eq:alpha}
Tip:在
\begin{equation}前后留空行,保持源码可读性
插入图片
|
|
建议把图片放在 figures/ 目录,使用相对路径
width=0.9\textwidth 常用;若想原始大小,可不写 width
PDF、PNG、JPG 均可,推荐使用 PDF(矢量图)或 PNG(位图)
代码块(Listings)
依赖:\usepackage{listings} + \usepackage{xcolor}(自定义颜色)
|
|
MATLAB 代码块示例
|
|
向量 / 矩阵求导法则
参考资料:https://zhuanlan.zhihu.com/p/273729929
记号约定:列向量 $\mathbf{x}= [x_{1},x_{2},\dots,x_{n}]^{!T}$,常数矩阵 $A\in\mathbb{R}^{n\times n}$
标量对向量的导数
$$ \frac{\partial c}{\partial \mathbf{x}} = \mathbf{0} $$
常见形式
$$ \begin{aligned} \frac{\partial \mathbf{x}^{!T}\mathbf{a}}{\partial \mathbf{x}} &= \mathbf{a}, & \frac{\partial \mathbf{a}^{!T}\mathbf{x}}{\partial \mathbf{x}} &= \mathbf{a},\[4pt] \frac{\partial \mathbf{x}^{!T}\mathbf{x}}{\partial \mathbf{x}} &= 2\mathbf{x},\[4pt] \frac{\partial \mathbf{x}^{!T}A\mathbf{x}}{\partial \mathbf{x}} &= A\mathbf{x}+A^{!T}\mathbf{x},\[4pt] \frac{\partial \mathbf{a}^{!T}\mathbf{x}\mathbf{x}^{!T}\mathbf{b}}{\partial \mathbf{x}} &= \mathbf{a}\mathbf{b}^{!T}\mathbf{x}+\mathbf{b}\mathbf{a}^{!T}\mathbf{x}. \end{aligned} $$
矩阵对矩阵的导数(常见的矩阵微分)
$$ \begin{aligned} \frac{\partial \mathbf{a}^{!T}X\mathbf{b}}{\partial X} &= \mathbf{a}\mathbf{b}^{!T},\[4pt]
\frac{\partial \mathbf{a}^{!T}X^{!T}\mathbf{b}}{\partial X} &= \frac{\partial \mathbf{b}^{!T}X\mathbf{a}}{\partial X}\[4pt] &= \mathbf{b}\mathbf{a}^{!T},\[4pt]
\frac{\partial \mathbf{a}^{!T}XX^{!T}\mathbf{b}}{\partial X} &=
\frac{\partial \mathbf{X}^{!T}ab^{!T}\mathbf{X}}{\partial X}\[4pt] &= \mathbf{a}\mathbf{b}^{!T}X + \mathbf{b}\mathbf{a}^{!T}X,\[4pt]
\frac{\partial \mathbf{a}^{!T}X^{!T}X\mathbf{b}}{\partial X} &= \frac{\partial \mathbf{a}^{!T}(X^{!T})(X^{!T})^{!T}\mathbf{b}}{\partial (X^{!T})^{!T}}\[4pt] &= (\frac{\partial \mathbf{a}^{!T}(X^{!T})(X^{!T})^{!T}\mathbf{b}}{\partial X^{!T}})^{!T}\[4pt] &= (a\mathbf{b}^{!T}\mathbf{X}^{!T} + b\mathbf{a}^{!T}\mathbf{X}^{!T})^{!T}\[4pt] &= X\mathbf{b}\mathbf{a}^{!T} + X\mathbf{a}\mathbf{b}^{!T}. \end{aligned} $$
附录:常见错误 & 小贴士
| 场景 | 常见错误 | 正确做法 |
|---|---|---|
使用 \includegraphics |
忘记在导言区加载 graphicx 包。 |
\usepackage{graphicx} 必须在 \begin{document} 前出现。 |
| 中文编译报错 | 使用 pdfLaTeX 编译,出现乱码。 |
改为 xelatex 或 lualatex,并使用 xeCJK/ctex 包。 |
| 表格线条不对齐 | 手动使用 \hline,导致线宽不统一。 |
使用 booktabs 包的 \toprule、\midrule、\bottomrule。 |
| 公式编号不连续 | 在 equation* 环境外部写了 \nonumber。 |
统一使用 equation(有编号)或 equation*(无编号),不要混用。 |
| 交叉引用显示 “??” | 缺少 \label 或 \ref 前未编译两遍。 |
确保每个 \label 在对应环境内部,并运行 两次 编译(或使用 latexmk -pdf 自动多次编译)。 |
| 代码高亮失效 | listings 中未声明语言或未加载 xcolor。 |
在导言区加入 \usepackage{xcolor},并在 lstlisting 中写 language=...。 |
| 宏包冲突 | 同时加载 amsmath 与 mathtools 的旧版 \mathbb 定义冲突。 |
按需加载宏包,mathtools 已兼容 amsmath,建议只保留 mathtools。 |
快速排错技巧:
- 检查日志 (
.log文件) 是否有[Warning]或Undefined control sequence。- 最小化示例:将出现错误的代码截取到一个单独的
.tex文件中,只保留必要宏包,逐步排查。- 使用编辑器的自动补全:TeXstudio/Overleaf 会提示未闭合的
{}、$、$$。
| 命令 | 用途 | 示例 |
|---|---|---|
\keywords{} |
论文模板中自定义关键词(多数期刊模板已定义)。 | \keywords{LaTeX, 向量求导, 三线表} |
\quad |
插入约 1em 的水平空白。 | a\quad b → a b |
\qquad |
插入约 2em 的水平空白。 | a\qquad b |
\par |
强制段落结束(等价于空行)。 | 第一段文字\par 第二段文字 |
\\ 或 \newline |
换行但不新段落(常用于表格、数组中)。 | 行1\\ 行2 |
Tip:在正文中尽量使用
\par或直接空行来分段,避免在段落内部使用\\,以免出现排版异常。