LaTeX 模块化构建
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_800d68d6/latex-modular。
技能介绍
问题在哪
长篇 .tex 往往把宏包、自定义命令、环境和正文揉在一起:改一处容易牵动全局,复用导言区要靠复制粘贴,换引擎(pdfLaTeX ↔ LuaLaTeX)还要手工改语法。你还需要在「生成完」和「交付前」之间有一道可靠的编译验证,而不是靠肉眼猜 log。
技能如何工作
latex-modular 把 LaTeX 拆成可管理的组件(导言、命令、环境、样式等),用 Python 脚本做原子写入与组合,而不是让 Agent 直接 Write/Edit 改 SKILL.md 或组件文件。
核心模式包括:
- extract:从现有源码解析导言区与正文,把片段落到
scripts/components/并维护manifest.json - compose:按依赖顺序组文档(文档类 → 宏包去重 → 命令/环境 → 样式 → 正文)
- refactor:保留语义,把单体
.tex改成\input{}/\include{}的模块化主文档 - template / inject:从模板库起稿或向已有
.tex增量插入组件;inject 支持 LuaLaTeX/XeLaTeX,也可对 pdfLaTeX 做动态语法转换 - convert:整份 pdfLaTeX 转 LuaLaTeX 兼容语法,原文件不动,另出报告
- validate:调用
lualatex编译,结构化回报错误位置与修复方向
流程上还有语义路由(workflow_router.py)把意图落到四条线:新建文档、改造、增量编辑、组件复用;改造与增量编辑会先备份,并在链末做 final_validate 与报告。超过约 2MB 的 .tex 会强制要求 --lines 范围,避免无参全量处理。
适用边界
- 用户只想问「LaTeX 怎么写」、或明确要求不用模块化直接改
.tex时,不应触发本技能。 - 默认组件库面向 LuaLaTeX(可用
--engine xelatex);中文排版依赖 Windows 常见字体(SimSun、SimHei 等)。首次用 MiKTeX 编译可能自动拉宏包,需要等待。 - 大文件请配合
--lines、--encoding;inject 用锚点或行号定位,避免全文扫描。
使用场景
- 课题组沿用的课程讲义 `.tex` 导言与正文缠在一起,需要 extract 拆组件并用 template/compose 按学期组新稿。
- 投稿稿仍是 pdfLaTeX 全文,要用 convert 生成 LuaLaTeX 兼容副本,并对照转换报告改语法。
- 学位论文已定稿,只想在导言区追加宏包和自定义环境,走 backup → inject → validate,避免整文件手改。
- 同事发来一整份试卷源码,需提取自定义命令与环境进组件库,再 compose 生成新卷并 validate 确认能编过。
适合人员
- 每学期重排实验报告、要把导言区与章节样式抽成模块的课程助教
- 接手他人上万行单体 `.tex`、需要 refactor 成 `\input{}` 结构以便分工改的研究生
- 维护多份教材或论文源稿、合并宏包前必须用 lualatex 验编译的排版维护者
- 习惯从模板库起稿、且常处理超大 `.tex`(需 `--lines` 分段)的技术写作者