必须以\documentclass{ctexrep}开头,导言区加载amsmath等四个宏包,正文首章为\chapter{绪论},所有\section须在\chapter之后且不嵌套于列表环境。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让AI在检查LaTeX文档前,先完整理解你写的结构大纲,而不是一上来就盯着某一行报错或某一段语法。这种“先建模、后校验”的方式能避免AI只见树木不见森林,比如它不会把“\section{引言}后面没写内容”当成错误,而是知道这是大纲预留位置。
用SKILL.md强制AI加载结构认知
在你的 agent-skills 项目根目录下新建一个 skill 文件夹,命名为 latex-structural-check;进入该文件夹,创建 SKILL.md 文件。
在 SKILL.md 中第一行必须写明触发条件:【当用户提交的 .tex 文件包含 \tableofcontents 或 \section 命令时,本 skill 自动激活】。这句不是注释,是 agent 运行时真正识别技能启用的开关语句。
接着用三级标题写下结构规则块,例如:
### 文档结构要求1. 必须以 \documentclass{ctexrep} 开头;
2. 导言区需加载:amsmath, graphicx, listings, hyperref;
3. 正文起始必须为 \chapter{绪论},不得使用 \section{绪论} 替代;
4. 所有 \section 命令必须出现在 \chapter 命令之后,且不能嵌套在 \begin{itemize} 等环境中。
这一部分不写任何代码或模板,只描述结构逻辑。agent 加载这个 skill 后,会把上述四条当作“结构事实”存入当前会话上下文,后续所有检查都以此为基准。
让AI先解析大纲再逐项验证
方法一:用 LaTeX 编译器预处理提取结构树
在 skill 目录中新建 check-structure.sh 脚本,内容为:pdflatex -draftmode -interaction=nonstopmode %s.tex → grep -E '^(\chapter|\section|\subsection)' %s.log | sed 's/\//g' | sed 's/{/ /g' | sed 's/}//g'。
这一步会生成一份纯文本结构快照,例如:
chapter 绪论
section 研究背景
section 研究意义
chapter 实验设计
subsection 数据采集方法
agent 在执行检查前,会先运行该脚本并读取输出结果——这意味着它看到的是你文档真实的层级骨架,而不是靠正则硬匹配源码可能漏掉的嵌套情况。
方法二:用 Python 脚本做语义级结构校验
在同目录下放 parse-outline.py,用 AST 方式解析 .tex 文件:它不依赖编译日志,而是直接读取源码,识别 \begin{document} 之后的所有章节命令,并构建树状结构对象。它能判断 “\section{A} → \chapter{B}” 是否构成非法倒置,也能发现 “\subsection{C} 出现在 \chapter{D} 之前” 的结构性断裂。
注意:这个脚本必须返回 JSON 格式结构树,且字段名固定为 "outline" 和 "errors",否则 agent 无法解析结果。
在墨灵TeX中绑定结构检查skill
打开墨灵TeX设置 → AI 助手 → 自定义 Skill 路径,填入你本地 latex-structural-check 文件夹的绝对路径。
重启编辑器,打开任意 .tex 文件,光标定位到 \section 行,按下 Ctrl+Shift+X(结构检查快捷键)。
此时墨灵TeX内置的 agent 会:加载 SKILL.md → 运行 check-structure.sh 提取大纲 → 对比 outline 与 SKILL.md 中定义的结构要求 → 报出 “第7行:\section{文献综述} 出现在 \chapter{绪论} 之前,违反结构顺序”。


















