Contents

LaTex整理

实用工具

基本概念

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 包即可获得完整的中文支持

示例

最小可工作文档结构

 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
%------------------- 前置设置 -------------------
\documentclass[12pt,a4paper]{article}     % 任选 article、report、book 等
\usepackage{geometry}                     % 页面布局
\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}
\usepackage{fontspec}                     % XeLaTeX 必须
\setmainfont{Times New Roman}
\usepackage{xeCJK}                        % 中文支持
\setCJKmainfont{SimSun}                   % 或思源宋体、Microsoft YaHei 等
\usepackage{amsmath,amssymb,amsthm}       % 基本数学宏包
\usepackage{booktabs}                     % 三线表宏包
\usepackage{graphicx}                     % 插入图片
\usepackage{hyperref}                     % 超链接(可选 \hypersetup{colorlinks=true})
\usepackage{cleveref}                     % \cref 跨引用(需配合 \label)
\usepackage{listings}                     % 代码高亮
\usepackage{xcolor}                       % 代码块颜色
%------------------- 文档主体 -------------------
\begin{document}

\title{Your Title}
\author{Your Name}
\date{\today}
\maketitle

% 这里开始正文 ...

\end{document}

常用章节宏与环境

1
2
3
\begin{abstract}
    摘要内容(中文/英文均可)
\end{abstract}
1
2
3
\section{章节标题}
\subsection{子章节标题}
\subsubsection{更细分的标题}

Tip:章节标题会自动编号,若想取消编号,可使用 \section*{标题}(带星号的版本)

三线表(booktabs)示例

依赖:\usepackage{booktabs}
建议使用 \toprule、\midrule、\bottomrule 替代默认的 \hline,表格更美观

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
\begin{table}[!htbp]
    \centering
    \setlength{\tabcolsep}{5mm} % 调整列间距
    \caption{示例三线表}
    \begin{tabular}{ccccc}
        \toprule[1.5pt]
        符号 & 含义 \\
        \midrule[1pt]
        $S_{i}$     & $i=1,2,3$ 分别为当日可分配的医用品、消耗品、日用品的总量 \\
        $[x_{i1},x_{i2},x_{i3}]$ &$i$ 个灾区每人每日实际收到的三类物资数量 \\
        $c_{i}$     &$i$ 个灾区 \\
        $R$         & 模糊相似矩阵 \\
        $c_{ij}$    &$i$ 个灾区中第 $j$ 项受灾指标 \\
        $a$,$b$,$c$ & 每人每日医用品、消耗品、日用品的平均使用量 \\
        \bottomrule[1.5pt]
    \end{tabular}
\end{table}

小技巧:若表格宽度需要占满页面,可使用 \resizebox{\textwidth}{!}{...} 包裹 tabular

公式、标签与交叉引用

1
2
3
4
5
\begin{equation}
    \alpha_{i} = \frac{P_{ih}+2\,P_{iw}}{P_{i}},
    \qquad i \in \{B_{1},B_{2},\dots,B_{10}\}
    \label{eq:alpha}
\end{equation}

使用 \label{eq:alpha} 为公式命名
若加载 cleveref 包,可通过 \cref{eq:alpha} 对公式进行引用,自动输出 “式 (1)”
若不使用 cleveref,使用原生 \eqref{eq:alpha}

Tip:在 \begin{equation} 前后留空行,保持源码可读性

插入图片

1
2
3
4
5
6
\begin{figure}[!h]
    \centering
    \includegraphics[width=0.9\textwidth]{figures/模糊相似矩阵}
    \caption{模糊相似矩阵示意图}
    \label{fig:fuzzy}
\end{figure}

建议把图片放在 figures/ 目录,使用相对路径
width=0.9\textwidth 常用;若想原始大小,可不写 width
PDF、PNG、JPG 均可,推荐使用 PDF(矢量图)或 PNG(位图)

代码块(Listings)

依赖:\usepackage{listings} + \usepackage{xcolor}(自定义颜色)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
% 在导言区添加以下样式(可放在 preamble.tex 中统一管理)
\lstset{
    basicstyle=\ttfamily\small,
    numbers=left,
    numberstyle=\tiny,
    keywordstyle=\color{blue},
    commentstyle=\color{gray},
    stringstyle=\color{red},
    breaklines=true,
    frame=single,
    backgroundcolor=\color{gray!5}
}

MATLAB 代码块示例

1
2
3
4
5
6
\begin{lstlisting}[language=Matlab, caption={MATLAB 示例代码}, label={lst:matlab}]
% 计算向量的范数
x = [1, 2, 3];
norm_x = norm(x);
disp(['向量范数为:', num2str(norm_x)]);
\end{lstlisting}

向量 / 矩阵求导法则

参考资料: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 编译,出现乱码。 改为 xelatexlualatex,并使用 xeCJK/ctex 包。
表格线条不对齐 手动使用 \hline,导致线宽不统一。 使用 booktabs 包的 \toprule\midrule\bottomrule
公式编号不连续 equation* 环境外部写了 \nonumber 统一使用 equation(有编号)或 equation*(无编号),不要混用。
交叉引用显示 “??” 缺少 \label\ref 前未编译两遍。 确保每个 \label 在对应环境内部,并运行 两次 编译(或使用 latexmk -pdf 自动多次编译)。
代码高亮失效 listings 中未声明语言或未加载 xcolor 在导言区加入 \usepackage{xcolor},并在 lstlisting 中写 language=...
宏包冲突 同时加载 amsmathmathtools 的旧版 \mathbb 定义冲突。 按需加载宏包,mathtools 已兼容 amsmath,建议只保留 mathtools

快速排错技巧

  1. 检查日志 (.log 文件) 是否有 [Warning]Undefined control sequence
  2. 最小化示例:将出现错误的代码截取到一个单独的 .tex 文件中,只保留必要宏包,逐步排查。
  3. 使用编辑器的自动补全:TeXstudio/Overleaf 会提示未闭合的 {}$$$
命令 用途 示例
\keywords{} 论文模板中自定义关键词(多数期刊模板已定义)。 \keywords{LaTeX, 向量求导, 三线表}
\quad 插入约 1em 的水平空白。 a\quad ba b
\qquad 插入约 2em 的水平空白。 a\qquad b
\par 强制段落结束(等价于空行)。 第一段文字\par 第二段文字
\\\newline 换行但不新段落(常用于表格、数组中)。 行1\\ 行2

Tip:在正文中尽量使用 \par 或直接空行来分段,避免在段落内部使用 \\,以免出现排版异常。