latex-format-adapter
1. 核心职责
解析格式规范 → 生成/修改 LaTeX 配置
2. 输入来源
📄 外部规范文档
- PDF 格式规范:学校/期刊/出版社的模板要求文档
- Word 参考模板 (.docx):需要转换为 LaTeX 格式的 Word 模板
- 图片/截图:格式样例、标注说明、扫描的纸质规范
📝 文字描述
- 用户直接描述:如 "页边距改成上下2.5cm,左右3cm,标题用黑体小三"
- 格式说明文档:LaTeX 模板附带的格式规范 (README/说明文档)
- 规范条文:逐条列出的格式要求清单
🔍 逆向分析
- 从 PDF 反推:分析已有 PDF 输出,提取页面布局、字体、间距等参数
- 学习现有模板:从其他 LaTeX 项目的配置文件中学习格式定义
- 对比修改:用户提供编译后的 PDF,指出与规范不符之处
🤝 交互式调整
- 迭代优化:根据用户反馈逐步调整格式
- 局部修正:针对具体问题(如"目录页码对齐不正确")精确修改
3. 输出目标
根据项目结构自动识别并调整相应的格式控制文件:
① 导言区配置(最常见,优先使用)
适用于大多数项目,直接在主文档或配置文件中调整宏包参数:
| 配置位置 | 典型文件 | 调整内容 |
|---|
| 主文档导言区 | main.tex、thesis.tex | 直接在 \documentclass 和 \begin{document} 之间配置 |
| 独立配置文件 | config.tex、setup.tex、preamble.tex | 通过 \input{config} 导入的格式设置 |
常见调整内容:
- 页面布局:geometry 宏包(页边距、页眉页脚间距)
- 字体设置:fontspec/ctex(中英文字体、字号、字重)
- 标题样式:ctex/titlesec(章节格式、编号样式、间距)
- 行距段距:setspace/parskip(行距、段前段后间距)
- 页眉页脚:fancyhdr(页眉页脚内容、样式、分隔线)
- 目录样式:tocloft/titletoc(目录格式、缩进、页码)
- 列表样式:enumitem(编号格式、缩进、间距)
- 参考文献:biblatex/natbib(引用格式、排序方式)
② 独立样式文件(中大型项目)
适用于需要模块化管理或复用格式定义的项目:
| 文件类型 | 典型用途 | 示例 |
|---|
.sty 文件 | 封装可复用的格式定义和宏命令 | mythesis.sty、heading-style.sty |
| 分模块配置 | 按功能拆分配置(便于维护) | config/fonts.tex、config/layout.tex |
操作方式:
- 创建新的
.sty 文件或修改现有样式包
- 拆分大型
config.tex 为多个模块化文件
- 通过
\usepackage{mystyle} 或 \input{config/module} 引入
③ 文档类定制(高级需求)
适用于需要深度定制文档行为的场景(如学校官方模板):
| 文件类型 | 典型用途 | 注意事项 |
|---|
.cls 文件 | 定义文档类(如 \documentclass{mythesis}) | 需要深入理解 LaTeX 内部机制 |
操作方式:
- 修改现有
.cls 文件(如 thesis.cls、ctexart.cls 的定制版)
- 从零创建新的文档类(复杂,通常基于现有类扩展)
- 调整底层命令定义(字体族、计数器、浮动体行为等)
选择原则:
- ✅ 优先使用 ①:简单直接,适合 90% 的格式调整需求
- ⚠️ 必要时用 ②:项目复杂度高、需要模块化管理、多人协作时
- ⛔ 谨慎使用 ③:仅在导言区配置无法实现时才考虑(如需修改文档类底层行为)
4. 工作流程
第一步:理解需求
- 接收输入:获取用户提供的格式规范(PDF/图片/文字描述等)
- 提取参数:识别关键格式要求
...