make_latex_model
from huangwb8/chineseresearchlatex
中国科研常用LaTeX模板集
720 stars88 forksUpdated Jan 25, 2026
npx skills add https://github.com/huangwb8/chineseresearchlatex --skill make_latex_modelSKILL.md
NSFC LaTeX 模板高保真优化器
📋 文档目录
- 深度参考 - 文档参考范围
- 核心目标 - 样式要素与关键点
- 执行模式说明 - 硬编码工具 + AI 规划
- 工作空间说明 - 专用工作空间管理
- 触发条件 - 何时使用本技能
- 输入参数 - 必需与可选参数
- 执行流程 - 完整的 6 步工作流程
- 迭代优化闭环 - 自动化迭代优化
- 输出规范 - 修改摘要与代码变更
- 核心原则 - 绝对禁区与修改原则
- 验证清单 - 验收标准
- 常见问题 - FAQ 解答
深度参考
- 本项目的 CLAUDE.md 和 skills/README.md 规范
- 现有某个 project 的
@config.tex的样式定义模式 - ⚠️ 关于
main.tex的参考范围:- ✅ 允许参考:
main.tex中的\section{}、\subsection{}标题文本 - ❌ 禁止参考:
main.tex中的\input{}引用的正文内容文件
- ✅ 允许参考:
核心目标
确保 LaTeX 渲染的 PDF 与 Word 版打印的 PDF 像素级对齐:
样式要素(必须完全一致)
- 标题层级格式(一级、二级、三级、四级)
- ⚠️ 标题文字内容(每年度的 Word 模板标题可能不同)
- 字体(中文楷体 + 英文 Times New Roman)
- 字号(三号、四号、小四等)
- 颜色(MsBlue RGB 0,112,192)
- 间距(行距、段前段后、缩进)
- 列表样式(编号格式、缩进)
- 页面设置(边距、版心)
⚠️ 关键 1:标题文字对齐
- 标题的文字内容必须与 Word 完全相同
- 标题的编号格式必须与 Word 完全相同(如"1." vs "1.")
- 标点符号必须与 Word 完全相同(如全角/半角符号)
- 例如:Word 是"1. 项目的立项依据",LaTeX 必须完全一致
⚠️ 关键 2:每行字数对齐
- 每行的字数必须与 Word 完全相同
- 换行位置必须与 Word 完全一致
- 这需要精确调整:字号、字间距、行距、段间距
执行模式说明
本技能采用**"硬编码工具 + AI 规划"**的混合模式:
自动模式(硬编码脚本)
以下步骤由 Python 脚本自动执行,无需 AI 干预:
| 步骤 | 脚本工具 | 输入 | 输出 |
|---|---|---|---|
| 状态检查 | scripts/check_state.py | 项目路径 | 状态报告 |
| PDF 样式分析 | scripts/analyze_pdf.py | Word PDF | *_analysis.json |
| 标题文字对比 | scripts/compare_headings.py | Word .docx + LaTeX | 对比报告 |
| 样式参数验证 | scripts/run_validators.py | 项目路径 | 验证报告 |
| 编译检查 | xelatex 命令 | .tex 文件 |
AI 规划模式(需要智能决策)
以下步骤需要 AI 根据分析结果进行规划和执行:
| 决策点 | 输入数据 | AI 任务 | 输出 |
|---|---|---|---|
| 决策点 1: 是否需要修改样式? | PDF 分析结果 + 当前配置 | 判断差异是否超出容忍度 | 修改清单或跳过 |
| 决策点 2: 生成具体修改方案 | 差异分析结果 | 规划 LaTeX 代码修改 | 具体修改内容 |
| 决策点 3: 应用修改到配置文件 | 修改方案 | 使用 Edit 工具修改 | 修改后的 @config.tex |
| 决策点 4: 验证结果是否达标 | 修改前后的验证报告 | 判断是否需要迭代 | 继续微调/完成 |
协作流程
Word 模板 → [自动] analyze_pdf.py → 分析结果
↓
当前 @config.tex
↓
[AI 决策点 1] 是否需修改?
↓
是 → [AI 决策点 2] 生成方案
↓
[AI 决策点 3] 应用修改
↓
[自动] 编译 + 验证
↓
[AI 决策点 4] 是否达标?
↓
否 → 微调 → 返回 [AI 决策点 2]
是 → 完成
关键原则:
- ✅ 数据提取 由硬编码工具完成(精确、稳定)
- ✅ 决策判断 由 AI 完成(灵活、可解释)
- ✅ 代码修改 由 AI + Edit 工具完成(可控、可回溯)
注:AI 决策点的详细规范已整合到"第 3 节 执行流程"的相应步骤中。
工作空间说明
本 skill 使用专用工作空间存储所有工作产物,避免污染用户项目目录。
工作空间结构
skills/make_latex_model/workspace/{project_name}/
├── baseline/ # Word PDF 基准文件
│ ├── word.pdf
│ ├── word_analysis.json
│ └── quality_report.json
├── iterations/ # 迭代历史记录
│ ├── iteration_001/
│ │ ├── main.pdf
│ │ ├── config.tex
│ │ └── metrics.json
│ └── iteration_002/
├── reports/ # 生成的报告
│ ├── diff_report.html
│ └── optimization_report.html
├── backup/ # 备份文件
│ └── main_*.tex.bak
└── cache/ # 缓存文件
└── pdf_renders/
路径管理
所有脚本统一使用 WorkspaceManager 获取路径:
from core.workspace_manager import WorkspaceManager
ws_manager = WorkspaceManager()
baseline_dir = ws_manager.get_baseline_path("NSFC_Young")
report_path = ws_manager.get_reports_path("NSFC_Young")
清理策略
- 缓存文件默认保留 24 小时
- 迭代历史默认保留最近 10 轮
- 可通过
config.yaml的workspace节配置清理策略
触发条件
用户在以下场景触发本技能:
- NSFC 发布了新的年度 Word 模板
- 当前 LaTeX 模板与 Word 模板存在明显样式差异
- 用户主动要求"对齐 Word 样式""更新模板格式"
输入参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
project | string | 是 | 项目名称(如 NSFC_Young、NSFC_General) |
word_template_year | string | 是 | Word 模板年份(如 2025) |
optimization_level | string | 否 | 优化级别:minimal(最小改动)|moderate(中等)|thorough(彻底),默认 moderate |
dry_run | boolean | 否 | 预览模式,不实际修改文件,默认 false |
执行流程
步骤 0:预检查(AI 必须首先执行)
AI 在开始任何优化工作前,必须先执行状态检查:
python3 skills/make_latex_model/scripts/check_state.py projects/{project}
根据状态报告决定后续行动:
- 如果
has_baseline=false:提示用户先生成 Word PDF - 如果
compilation_status=failed:先修复编译错误 - 如果
baseline_source=quicklook:调整像素对比权重
AI 决策点 1:是否需要修改样式?
输入数据:
*_analysis.json: Word PDF 分析结果extraTex/@config.tex: 当前样式配置config.yaml: 容忍度配置
判断逻辑:
# 伪代码
for 参数 in ["行距", "字号", "颜色", "边距"]:
word_value = analysis[参数]
latex_value = extract_from_config(config_tex)
diff = abs(word_value - latex_value)
tolerance = config["validation"]["tolerance"][参数]
if diff > tolerance:
需要修改 = True
修改清单.append({
"参数": 参数,
"当前值": latex_value,
"目标值": word_value,
"差
...
Repository Stats
Stars720
Forks88
LicenseMIT License