Files
doa_doppler_est/CLAUDE.md
T
josh db95061026 meta: 写作风格新增"单模型推导段用裸主参数符号"
节内单模型时主参数/干扰/似然记裸 \eta/\psi/\kappa/\mathcal L,模型下标
(stat/dyn/pos/mu/cp/ip)只在跨模型对照处临时挂;简单等式对照用散文或
\eqref 引用,完整带标签定义集中在符号索引 A。
2026-06-16 16:45:42 +08:00

6.7 KiB
Raw Blame History

项目说明

LaTeX 学习笔记:相控阵 DoA + Doppler 估计与 CRB 推导。作者 Josh Gao,单人项目。

结构

  • 主文件:doa_doppler_est.tex(preamble 与 \input 列表)
  • 章节源:parts/*.tex
  • 文献:ref.bib
  • 图片:fig/
  • archive/:主线之外的历史草稿,仅供查阅,不参与 \input。/archive/ 在 .gitignore 里只是阻止新草稿意外被追踪,已追踪的旧稿继续保留版本史。

写作风格

  • 学习笔记优先:正文按"由简到繁"递进,每节开头一段过渡,说明上一节限制如何被解除、本节引入什么结构。
  • 一节一维度:每节只沿一个维度推进,其他维度保持最简。
  • 正文止于结论:信号模型、负对数似然、集中似然准则、EFIM/CRB 表达式都给出,矩阵代入与逐步化简推到附录。
  • 成稿口吻,不留重构痕迹:正文与附录是一个整体,按定稿状态描述结构。不用"迁移/移入/搬到附录"等暗示编辑过程的动词,详细推导以"见附录 X""集中在附录"陈述其所在。
  • 符号跟随问题引入:每个符号在首次出现的那一节定义;完整索引在附录 A。
  • 单模型推导段用裸主参数符号:节内只涉及一个模型时,主参数/干扰参数/似然记作裸 $\boldsymbol\eta/\boldsymbol\psi/\boldsymbol\kappa/\mathcal L$,不挂模型下标(stat/dyn/pos/mu/cp/ip 等);模型下标只在跨模型对照叙述处临时挂回。简单等式对照(如两模型主参数相同)用散文或 \eqref{} 引用,不并置双下标。完整带标签定义集中在符号索引 A。
  • 不创造元章节:"放置规则"、"阅读路线图"等元信息不进正文,归入前言或本文件。
  • 语言:中文为主;公式、符号、文件路径、命令用英文。
  • 推导卡壳留 % TODO: 注释,不编造 placeholder 文字。具体推导待办放在 .tex 源文件里,不进 CLAUDE.md。

LaTeX 操作约束

  • 默认不编译。阶段性收尾或涉及交叉引用/宏定义的改动后用 xelatex 验证:至少跑两次让 ref 稳定,有 bib 引用时夹一次 biber;检查 log 里的 ! 、undefined references、label(s) may have changed,全部消除后再 commit。
  • 编译产物在 .gitignore,不主动 add,也不主动 rm:用户在本地可能反复使用。
  • 不读编译产物:*.aux、*.log、*.bbl、*.bcf、*.synctex.gz、*.run.xml、*.toc、*.ist、*.glo、*.acn、根目录历史 PDF(doa_doppler_est_*.pdf)、*.zip。
  • preamble 指主文件 \documentclass 到 \begin{document} 之间的宏包/计数器/glossary 等设置。新增或修复 \newacronym 词条不算改 preamble,按 fix(preamble) 处理。\input 列表可按重构需要调整。
  • 不重排 ref.bib:除非明确要求。
  • 删除/重命名文件用 git mv:保留 history,diff 更小。归档主线之外的旧稿先 git mv 到 archive/。
  • 中文双引号统一用 ``…'':开引号为两个反引号、闭引号为两个单引号。不用 ASCII 直引号(XeLaTeX 下渲染为竖直引号)或 Unicode 弯引号 "",只有 TeX 连字能正确渲染成对中文引号。
  • 与正文连续的公式用 % 隔行占位:公式与正文无空行相接(句子流入公式、读完继续)时,在文字与 \begin{equation} 之间、\end{equation} 与后续文字之间各置一行单独的 %;既在源码中分隔公式块,又保持同段、不触发新段缩进。% 占位行不影响渲染输出。公式自成段落(前后留空行)的不加。
  • 矩阵行向量用逗号、不与 & 混用:单行列表式行向量(如时间模板 $[q_0,\ldots,q_{T-1}]$)用逗号分隔、不写 &;多行或二维矩阵用 &+\\、不加逗号。&(列分隔)与逗号(列表分隔)不在同一矩阵内并存。cases 中逗号作值的标点、& 作对齐点,属正常用法,不在此列。
  • 正文已定义缩写用 \gls{key}:\newacronym 词条的短形式在正文出现时一律用 \gls,不写裸短形式。例外(保留裸短形式):section/subsection 标题、\caption 题注、数学模式内的记号与下标(如 $\mathbf a_{\mathrm{UPA}}$、$\widehat{\bm\Theta}_{\mathrm{CDML}}$)、以及"全称(缩写)"并列释义。

Git 提交规范

格式

<type>(<scope>): <中文 subject,命令式,≤50 字>

<可选 body,每行 ≤72 字>

type(仅 4 类)

type 用途
struct 文件移动/合并/拆分、\input 顺序调整
content 实质性内容:新增/改写推导、过渡段、文献、图表
fix 修错:typo、公式错、断引用、缺词条
meta 元文件:CLAUDE.md、.gitignore、.gitattributes

scope(细分维度)

  • 章节定位:sec1–sec7、app-A…app-G、preamble
  • 跨章节专题:symbol、bib、fig

body 强制规则

  • type=struct 必须有 body,说明拆/合的依据
  • scope=symbol 必须有 body,说明符号冲突或废弃原因
  • 其他自由,建议解释"为什么"而非"什么"

subject 规则

  • 中英混合:type 用英文,scope/subject 用中文
  • 命令式动词开头:"新增 / 删除 / 合并 / 重命名 / 修正"
  • 不写"添加了 / 已完成"等完成时
  • 不加句号

其他硬规则

  • 结构改动与内容改动分开 commit——"重命名 A6 → E" (struct) 与 "E.2 新增多用户推导" (content) 必须是两个 commit
  • 不写 Co-Authored-By 尾注——个人学习笔记
  • subject 与 body 风格不一致时,参考既往 commit 历史定调

效率与 token 准则

  • 优先 Grep/Glob 直接命中:parts/*.tex 路径稳定、符号命名规律,三五次 Grep 即可定位绝大多数任务。仅当跨 10+ 文件做开放式分析时才用 Agent 子代理;子代理冷启动会重读上下文,单点查询用它得不偿失。
  • 不为了"再确认"重读刚改过的文件:Edit/Write 失败会立即报错,harness 自带状态追踪。
  • 独立的工具调用一次并行发出:多条 Grep/Glob/Read 没有依赖时合并到同一轮。
  • 大文件局部读取:ref.bib 几千条 entry 用 Grep 查找特定 key,不要 Read 全文;长 .tex 用 offset/limit 跳到目标区域。
  • 不创建中间元文档(plan.md、todo.md、analysis.md、summary.md):所有内容应进 parts/ 或 commit message,不另起辅助文件。
  • 响应不写 trailing summary,commit 后不复述改动清单——用户看 diff 与 commit message 即可。
  • 避免向用户罗列"我接下来会……"的长方案:直接执行小步操作,停在用户需要决策的节点。