关于 latex-document
用于创建、编译和转换 LaTeX 文档的技能,适合制作简历、报告、论文和海报等材料。还涵盖 PDF 表单填写、格式转换、邮件合并和版本差异处理。
主要功能
- 01适用于多种文档类型的模板
- 02编译 LaTeX 为 PDF 并生成 PNG 预览
- 03转换 PDF 和文档格式
- 04填写可交互及扫描版 PDF 表单
- 05邮件合并与版本差异处理
适用场景
- 01制作论文、简历、海报或报告
- 02将 PDF 转换为 LaTeX
- 03批量生成个性化文档
- 04填写 PDF 表单或比较 LaTeX 修订版
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ brycewang-stanford/ auto-empirical-research-skills --skill latex-document安装后在 Claude Code 中输入/latex-document确认已加载。
附带文件README-original.md
详细介绍
LaTeX 文档技能
创建任意 LaTeX 文档、编译为 PDF,并生成 PNG 预览。将任意类型的 PDF 转换为 LaTeX。
工作流:创建文档
- 确定文档类型(简历、报告、信函、发票、文章、论文、学术简历、演示文稿、海报、试卷、书籍、速查表)
- **如果是海报:**运行海报子工作流(参见下文的海报子工作流),然后跳到第 5 步。
- **如果是速查表/参考卡片:**运行速查表子工作流(参见下文的速查表/参考卡片子工作流),然后跳到第 5 步。
- 询问用户希望添加哪些增强元素(使用 AskUserQuestion 工具并启用 multiSelect)。根据文档类型提供相关选项:
- AI 生成的图像——自定义插图、图表、照片(使用 generate-image 技能)
- 图表/统计图——柱状图、折线图、饼图、散点图、热力图(pgfplots 或 matplotlib)
- 流程图/示意图——流程、架构、决策树(TikZ 或 Mermaid)
- 引用/参考文献——学术引用、脚注、引用作品(BibTeX/biblatex)
- 数据表格——比较矩阵、财务数据、统计数据(booktabs)
- 水印——DRAFT、CONFIDENTIAL 或公司徽标背景
- 对于简单文档(求职信、发票),或用户已明确指定所需内容时,跳过此步骤。
- 从
assets/templates/复制合适的模板,或从头编写 - 根据用户需求自定义内容
- 根据用户选择的元素生成外部素材:
- AI 图像:
python3 <skill_path>/../generate-image/scripts/generate_image.py "prompt" --output ./outputs/figure.png - matplotlib 图表:
python3 <skill_path>/scripts/generate_chart.py <type> --data '<json>' --output chart.png - Mermaid 示意图:
bash <skill_path>/scripts/mermaid_to_image.sh diagram.mmd output.png
- AI 图像:
- **对于 5 页及以上的文档:**在编译前查看长篇文档反模式(报告、论文、书籍必读)部分,并执行内容生成检查清单。关键规则:优先使用段落而非项目符号;全局压缩列表;在文本模式下转义
</>;变换章节格式;限制使用ewpage;将图像尺寸设为 textwidth 的 0.75–0.85 倍。 - 使用
scripts/compile_latex.sh编译(自动检测 XeLaTeX,以支持 CJK/RTL、术语表和参考文献) - 向用户展示 PNG 预览,并交付 PDF
海报子工作流
用户需要制作海报时:阅读 references/poster-design-guide.md,了解完整工作流,包括会议尺寸预设(NeurIPS/ICML/CVPR/ICLR 尺寸)、布局类型(Traditional/BetterPoster/Visual-Heavy)、配色方案和排版标准。使用 poster.tex(纵向)或 poster-landscape.tex(横向)。使用 AskUserQuestion 询问用户会议/方向、布局风格和配色方案,然后继续执行第 5 步。
速查表/参考卡片子工作流
用户需要制作速查表、参考卡片或公式表时:
- 阅读 references/cheatsheet-guide.md,了解完整工作流,包括模板选择、内容预算、排版规则和 PDF 转速查表流程。
- 选择模板:
cheatsheet.tex(通用,横向三栏)、cheatsheet-exam.tex(试卷公式,纵向双栏)或cheatsheet-code.tex(编程,横向四栏)。 - 按照指南中的工作流步骤操作,然后返回主工作流第 5 步。
工作流:邮件合并(批量生成个性化文档)
使用 scripts/mail_merge.py,通过 LaTeX 模板和 CSV/JSON 数据源生成 N 份个性化文档。模板语法:简单替换使用 {{variable}},条件语句/循环使用 Jinja2(<< >>、<% %>)。示例请参见 assets/templates/mail-merge-letter.tex。完整指南:references/interactive-features.md。
工作流:版本差异对比(latexdiff)
使用 scripts/latex_diff.sh 生成带有高亮修订痕迹的 PDF。支持文件间差异对比、Git 修订版本差异对比、多文件合并和自定义标记样式。完整指南:references/interactive-features.md。
工作流:转换文档格式
使用 scripts/convert_document.sh 在 Markdown、DOCX、HTML 和 LaTeX 之间进行转换。完整指南:references/format-conversion.md。
工作流:将 PDF 转换为 LaTeX
将现有 PDF(手写笔记、印刷报告、法律文档)转换为 LaTeX。完整流程:references/pdf-conversion.md。
快速步骤:将 PDF 拆分为页面图像(scripts/pdf_to_images.sh),选择转换配置,创建共享导言区,应用缩放策略,使用 scripts/validate_latex.py 验证,合并,然后编译。
缩放策略:1–10 页 = 单个 Agent;11–20 页 = 对半拆分(2 个 Agent);21 页及以上 = batch-7 流程(ceil(N/7) 个 Agent,且 run_in_background: true)。
转换配置(位于 references/profiles/):math-notes.md(公式、定理——包含优美模式)、business-document.md(报告、备忘录)、legal-document.md(合同、法规)、general-notes.md(手写内容、混合内容)。
工作流:填写 PDF 表单
填写现有 PDF 表单,包括可填写表单(带有表单字段)和不可填写表单(基于图像)。完整指南:references/pdf-operations.md。
步骤 1:检查表单类型:
python3 <skill_path>/scripts/pdf_check_form.py form.pdf
如果可填写(带有表单字段):
# Extract field metadata
python3 <skill_path>/scripts/pdf_extract_fields.py form.pdf field_info.json
# Create field_values.json with values for each field, then fill
python3 <skill_path>/scripts/pdf_fill_form.py form.pdf field_values.json output.pdf
如果不可填写(不带表单字段):
# Convert to images for visual analysis
bash <skill_path>/scripts/pdf_to_images.sh form.pdf ./tmp/pages
# Visually identify fields, create fields.json with bounding boxes
# Validate bounding boxes (+ optional validation image)
python3 <skill_path>/scripts/pdf_validate_boxes.py fields.json --image page_1.png --output validation.png --page 1
# Fill with text annotations
python3 <skill_path>/scripts/pdf_fill_annotations.py form.pdf fields.json output.pdf
工作流:高级 PDF 操作
有关文本/表格提取(pdfplumber)、OCR(pytesseract)、以编程方式创建 PDF(reportlab)、添加水印、旋转/裁剪页面、提取元数据、JavaScript 库(pdf-lib、pdfjs-dist)和批处理,请参阅 references/pdf-operations.md。
编译脚本
# Basic compile (auto-detects engine)
bash <skill_path>/scripts/compile_latex.sh document.tex
# Compile + generate PNG previews
bash <skill_path>/scripts/compile_latex.sh document.tex --preview
# Compile + PNG in specific directory
bash <skill_path>/scripts/compile_latex.sh document.tex --preview --preview-dir ./outputs
# Force a specific engine
bash <skill_path>/scripts/compile_latex.sh document.tex --engine xelatex
bash <skill_path>/scripts/compile_latex.sh document.tex --engine lualatex
# Use latexmk for automatic multi-pass (recommended for complex documents)
bash <skill_path>/scripts/compile_latex.sh document.tex --use-latexmk --preview
# PDF/A output for thesis submissions and archival compliance
bash <skill_path>/scripts/compile_latex.sh document.tex --pdfa
# Verbose output for debugging compilation issues
bash <skill_path>/scripts/compile_latex.sh document.tex --verbose
# Quiet mode for batch/CI jobs (only errors shown)
bash <skill_path>/scripts/compile_latex.sh document.tex --quiet
# Clean auxiliary files only (no compilation)
bash <skill_path>/scripts/compile_latex.sh document.tex --clean
编译标志
| 标志 | 描述 |
|---|---|
--preview | 编译后为每一页生成 PNG 预览图 |
--preview-dir DIR | PNG 输出目录(默认:与 .tex 文件相同的目录) |
--engine ENGINE | 强制使用指定引擎:pdflatex、xelatex 或 lualatex |
--use-latexmk | 使用 latexmk 作为编译后端(自动多轮编译、处理参考文献和索引) |
--verbose | 显示完整编译输出(所有引擎日志) |
--quiet | 隐藏所有非错误输出 |
--clean | 删除辅助文件(.aux、.log、.bbl、.fdb_latexmk 等)并退出 |
--pdfa | 生成符合 PDF/A-2b 标准的文件(自动注入 pdfx 宏包) |
--auto-fix | 自动修复常见编译错误(浮动体位置、编码) |
编译后端
**手动多轮编译(默认):**根据需要多次运行引擎,并执行参考文献/索引/术语表处理。这是传统方式,无需安装 latexmk 即可使用。
**latexmk(--use-latexmk):**使用 latexmk 根据依赖关系自动编译。对于包含参考文献、索引、术语表或交叉引用的复杂文档,推荐使用此方式——latexmk 会自动确定正确的编译轮数。需要安装 latexmk(TeX Live 自带)。
日志过滤(texfot)
安装 texfot(包含在 TeX Live 中)后,编译输出会自动经过过滤,只显示相关警告和错误,并抑制嘈杂的宏包加载消息。此功能适用于默认详细程度模式。使用 --verbose 查看未过滤的输出,或使用 --quiet 抑制所有非错误输出。
引擎自动检测:如果 .tex 文件使用 fontspec、xeCJK 或 polyglossia,脚本会自动使用 xelatex。如果使用 luacode 或 luatextra,则使用 lualatex。否则默认使用 pdflatex。使用 --engine 可覆盖此设置。
如果缺少 texlive(包括 texlive-science、texlive-xetex、texlive-luatex、biber)和 poppler-utils,脚本会自动安装。脚本会自动检测 ibliography{}(运行 bibtex)、ddbibresource{}(运行 biber)、\makeindex(运行 makeindex)、\makeglossaries(运行 makeglossaries),运行正确次数的编译,并使用 pdftoppm` 生成 PNG 预览,最后清理辅助文件。
脚本和工具参考
有关 PDF 实用工具(加密、合并、优化、提取页面、PDF 转图像)、LaTeX 质量工具(lint、字数统计、分析、宏包检查、引用)、编译自动修复、文献获取和图表脚本(Mermaid、Graphviz、PlantUML),请参阅 references/script-tools.md。
模板
从 assets/templates/ 复制并进行自定义。
简历模板(5 种兼容 ATS 的选项)
根据经验水平、行业和 ATS 要求进行选择。有关完整的 ATS 指南,请参阅 references/resume-ats-guide.md。
| 模板 | 最适用场景 | 主要特点 | ATS 评分 |
|---|---|---|---|
resume-classic-ats.tex | 金融、法律、政府,以及任何 ATS 门户 | 无图形,仅纯文本,解析安全性最高 | 10/10 |
resume-modern-professional.tex | 科技、企业及一般专业岗位 | 低调的色彩点缀、简洁的设计,兼顾 ATS 和人工阅读体验 | 9/10 |
resume-executive.tex | VP、总监、高管(5-15+ 年经验) | 两页版式、高管摘要、董事会职务、侧重损益 | 9/10 |
resume-technical.tex | 软件、数据、工程岗位 | 技能优先的混合式布局、项目部分、突出技术栈 | 9/10 |
resume-entry-level.tex | 应届毕业生、初入职场者 | 教育经历优先、一页版式、课程作业、活动经历 | 9/10 |
全部 5 个模板均遵循 ATS 规则:单栏布局、无图形或图片、不使用表格进行排版、采用标准的章节标题,联系信息放在正文中(而非页眉或页脚)。
STEM 学生模板
homework.tex—— 作业提交模板(article类,11pt),支持切换是否显示解答(\showsolutionstrue/\showsolutionsfalse),提供自定义题目/解答环境、诚信守则部分、fancyhdr页眉、用于数学排版的amsmath+amssymb+amsthm、支持语法高亮的listings(Python、Java、C++、Matlab 样式)、用于 (a)、(b)、(c) 子题的enumitem,以及hyperref。通过 `