# LaTeX工具

从官方或内置模板创建、编译和校验数学建模 LaTeX 论文项目，并可配合 DOCX 工具把完整 LaTeX 论文转换为 Word。

- Repository: https://github.com/XiaoMaColtAI/math-modeling-skill (1892 stars)
- Category: Documents
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add XiaoMaColtAI/math-modeling-skill --skill LaTeX工具 -g -a claude-code -y`
Codex: `npx skills add XiaoMaColtAI/math-modeling-skill --skill LaTeX工具 -g -a codex -y`
Cursor: `npx skills add XiaoMaColtAI/math-modeling-skill --skill LaTeX工具 -g -a cursor -y`
Gemini CLI: `npx skills add XiaoMaColtAI/math-modeling-skill --skill LaTeX工具 -g -a gemini-cli -y`

## Description

从官方或内置模板创建、编译和校验数学建模 LaTeX 论文项目，并可配合 DOCX 工具把完整 LaTeX 论文转换为 Word。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# LaTeX 工具

## 路径与写入

- 当前目录为 `LATEX_TOOL_ROOT`，只读。
- 模板和脚本从本目录读取；论文项目只写入 `PROJECT_ROOT`。
- 官方模板、题目附件和 Skill 文件保持只读；先复制，再填充。
- 默认不覆盖已有输出目录。
- 初始化生成 `latex-project.json`，记录主入口、竞赛配置、模板来源、版本、哈希与资源绑定；不要手工删除或伪造。

## 环境诊断

开始初始化和写作前，按官方模板选择引擎与参考文献后端并执行：

```powershell
python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" doctor `
  --engine xelatex `
  --bibliography-backend biber `
  --need-pandoc
```

仅生成 LaTeX/PDF 时省略 `--need-pandoc`。诊断会检查 `latexmk`、所选引擎、BibTeX/Biber、`pypdf`、`pdfimages`、`pdftoppm`，需要生成 Word 时再检查 Pandoc。任一必需项缺失都先报告阻塞，不要写完整论文后才发现无法编译或校验。

## 模板优先级

1. 用户提供的当届官方 LaTeX 模板项目。
2. 从目标竞赛官方网站取得的当届 LaTeX 模板项目。
3. `assets/templates/cumcm/` 或 `assets/templates/mcm-icm/` 构建基线。

内置模板只在没有官方 LaTeX 模板时使用，不替代当届官方规则。复制官方模板目录时保留其 `.cls`、`.sty`、`.bst`、字体和图片资源，不重写导言区或文档类。

## 初始化

```powershell
python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" init `
  "<PROJECT_ROOT>/完整论文-LaTeX" `
  --contest cumcm `
  --template "<PROJECT_ROOT>/当届官方LaTeX模板" `
  --main "src/paper.tex" `
  --template-source "<官方模板页面URL>" `
  --template-version "<适用届次或版本>"
```

没有官方模板时同时省略 `--template`、`--main` 和模板元数据。官方模板入口为 `main.tex` 或只有一个顶层 `.tex` 时可省略 `--main`；入口位于子目录或存在多个候选文件时必须按官方说明显式指定，不能猜测。CUMCM、MCM/ICM 以外的竞赛使用 `--contest generic`，且必须提供当届官方模板。初始化后在复制件中填充正文，并把核验后的 BibTeX 条目放入项目；不得修改模板源文件。

## 绑定代码与图表资源

代码和图表的权威版本保留在 `PROJECT_ROOT`，不要只在 LaTeX 项目中维护第二份。把需要随论文交付的代码或图表复制到 LaTeX 项目后，立即建立哈希绑定：

```powershell
python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" bind `
  "<PROJECT_ROOT>/完整论文-LaTeX/main.tex" `
  "<PROJECT_ROOT>/figures" `
  "figs"

python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" bind `
  "<PROJECT_ROOT>/完整论文-LaTeX/main.tex" `
  "<PROJECT_ROOT>/code" `
  "code"
```

权威代码位于项目根目录时也可逐文件绑定，例如把 `<PROJECT_ROOT>/问题1_求解.py` 绑定到现有副本 `code/问题1_求解.py`。命令只在权威来源与现有副本内容一致时写入 `latex-project.json`，不会替用户复制或覆盖文件。权威来源或副本变化后，先重新同步文件，再重跑 `bind`。校验和编译会扫描任意目录中的新增或已修改代码、数据和图像资源，并阻断缺失、未绑定或哈希漂移的副本，不局限于固定目录名。

## 编译

The rest: https://github.com/XiaoMaColtAI/math-modeling-skill/blob/HEAD/dsh-plugin/math-modeling-agent/skills/math-modeling/tools/latex/SKILL.md
