| name | outline-planning |
| description | 在 main.typ 中规划章节大纲,包括设计 == 二级目录和 === 三级目录,并编写 // 内容注释 |
规划章节大纲
任务说明
在已有 main.typ 的 = Chapter 下方,按 == → === → // 注释 → 正文 的层次生成内容。工作流分三步:先规划大纲 → 确认 → 写入实际内容。
执行步骤
1. 读取上下文
- 打开
main.typ,找到目标 = Chapter 的位置
- 确认该 Chapter 是否已有内容(已有
== 则跳过或扩展,完全空白则新建)
- 同时阅读该 Chapter 上方的注释大纲(
// Chapter N:标题 及 // N.1 列表),理解原设计意图
- 检查跨 Chapter 重复:确保本节规划的内容不与前面或后面章节重叠
- 检查已有的正文写作风格(Callout 使用频率、公式呈现方式、列表格式等),保持一致
2. 设计二层结构(==)
== 对应原注释大纲中的主知识点块,划分原则:
- 每个
== 代表一个独立的知识单元(对应原注释中 // N.1、// N.2 等行)
- 数量通常 3-6 个,太少则粒度太粗,太多则拆分过细
- 按学习顺序排列:概念 → 方法 → 深入 → 扩展/实战
- 如果原注释大纲未细分,按该主题的经典教材/知识体系划分
3. 设计三层结构(===)
=== 是 == 下的具体知识点,划分原则:
- 每个
=== 是一个可独立讲解的要点
- 每个
== 下通常 2-5 个 ===
- 标题具体、可操作,如 "最小二乘法"、"交叉熵损失" 而非 "原理"
- 如果某个知识点特别大(如梯度下降),可以单开一个
== 而非塞在别人下面
4. 编写内容注释(//)
在 === 下方写 // 注释,内容要求:
- 第一行:该知识点的核心定义/公式/一句话总结
- 后续行:关键要点、公式、与前后知识的联系
- 按条罗列,每行一个要点,用
// - 或 // 中文:
- 标注交叉引用:
详见 ChX、复用 ChY 评估指标、对比 ChZ 的 XXX
5. 写入实际内容(正文)
大纲确认后,在 === 下方(注释之后)展开实际教学内容:
内容结构模板:
=== 知识点名称
// 注释:核心要点
定义/介绍段落...
公式(如果需要)
#note[
注释框:补充说明、与其他知识的对比。
]
- 列表一
- 列表二
#tip[
技巧或记忆方法。
]
#caution[
注意事项或易错点。
]
Callout 使用指南(根据本项目写作经验):
#note[...]:定义注释、核心直觉、与其它知识的对比
#tip[...]:记忆技巧、实用建议
#info[...]:重要背景或扩展信息
#caution[...]:注意事项、局限性
- 每个
=== 内使用 1-2 个 Callout,过多则冗余
数学公式写作要点:
- 多字母变量用引号:
"RSS"、"Normal"、"en"
- 波浪号用
tilde:$epsilon tilde "Normal"(0,1)$
- 箭头用
arrow(l) / arrow(r) / arrow(u) / arrow(d)
- 远大于/远小于用
gt.gt / lt.lt
- 加减号用
plus.minus
- 乘积符号用
product
- 渐近符号(公式到箭头)用
=>
- 不要用
\prod、\sim、\uparrow 等 LaTeX 宏名
- 不要用
larr、uparrow、downarrow 等错误符号名
6. 提交用户确认
- 在写入正文之前,先展示规划大纲给用户确认
- 方案中说明:
== 和 === 的数量、每个 == 的覆盖范围
- 用户确认后再执行写入
关键原则
- == 与 === 必须同时生成:不要只写
== 不留 === 的空间
- 注释紧跟 ===:注释写在对应的
=== 下方,不留多余空行(用空行分隔不同的 === 即可)
- // 注释不能遗漏:每个
=== 都必须有至少一行 // 解释内容要点
- 避免与原大纲脱节:
== 的设计应忠实反映原 // N.x 注释的意图
- 复用已有内容用引用:遇重叠内容,注释中写
详见 ChX,正文中直接引用不重复展开
- 写完必须编译验证:
typst compile "main.typ" "main.pdf" --root .,修正所有 error 和 warning
- Error 修复顺序:查看
error: 行 → 定位具体行号 → 修复 → 重新编译,直到零 error
- Warning 也应修复:
no text within stars 等 warning 虽不阻止编译,但影响语义,应统一改用 *斜体*
示例对照
原注释大纲:
// Chapter 2:线性模型 🔶
// 2.1 线性回归:最小二乘法、正规方程、梯度下降
// 2.2 逻辑回归:sigmoid 函数、交叉熵损失、多分类
// 2.3 正则化:L1(Lasso)、L2(Ridge)、Elastic Net
// 2.4 广义线性模型:softmax 回归、感知机
生成结果:
= 线性模型
== 线性回归
=== 最小二乘法
// 目标函数:最小化残差平方和 RSS = Σ(yᵢ - wᵀxᵢ)²
// 闭式解推导:ŵ = (XᵀX)⁻¹Xᵀy
// 几何解释:投影到列空间
=== 正规方程
// 解析解 w* = (XᵀX)⁻¹Xᵀy
// 前提:XᵀX 可逆(特征数 < 样本数、无多重共线性)
=== 梯度下降
// 批量梯度下降(BGD):每步使用全部样本
// 随机梯度下降(SGD):每步使用一个样本
// 小批量梯度下降(Mini-batch GD):折中方案
=== 模型评估
// 回归指标:MSE / RMSE / MAE / R²(详见 Ch1 模型评估指标)
== 逻辑回归
=== sigmoid 函数
// σ(z) = 1 / (1 + e^{-z}),输出 (0,1) 概率
// 决策边界:σ(wᵀx) ≥ 0.5 → 预测正类
=== 交叉熵损失
// L(w) = -Σ [yᵢ log ŷᵢ + (1-yᵢ) log(1-ŷᵢ)]
// 为什么不用 MSE:非凸优化困难、概率解释不匹配
=== 多分类
// One-vs-Rest(OvR):K 个二分类器
// Softmax 回归(见 2.4)是更自然的多分类扩展
== 正则化
=== L1 正则化(Lasso)
// 损失:RSS + λ Σ|wⱼ|,产生稀疏解 → 特征选择
=== L2 正则化(Ridge)
// 损失:RSS + λ Σwⱼ²,权重缩小但不为 0
=== Elastic Net
// 结合 L1 的稀疏性和 L2 的稳定性
=== 正则化路径与调参
// 交叉验证选择 λ,λ↑ → 方差↓ 偏差↑
== 广义线性模型
=== Softmax 回归
// P(y=k|x) = exp(wₖᵀx) / Σ exp(wⱼᵀx)
=== 感知机
// 二分类线性模型:y = sign(wᵀx + b),误分类驱动更新