mcpField
L
latex-document

latex-document

github.com/brycewang-stanford文档处理4.8k58 次安装3 天前更新
代码仓库

关于 latex-document

用于创建、编译和转换 LaTeX 文档的技能,适合制作简历、报告、论文和海报等材料。还涵盖 PDF 表单填写、格式转换、邮件合并和版本差异处理。

主要功能

  1. 01适用于多种文档类型的模板
  2. 02编译 LaTeX 为 PDF 并生成 PNG 预览
  3. 03转换 PDF 和文档格式
  4. 04填写可交互及扫描版 PDF 表单
  5. 05邮件合并与版本差异处理

适用场景

  1. 01制作论文、简历、海报或报告
  2. 02将 PDF 转换为 LaTeX
  3. 03批量生成个性化文档
  4. 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。

工作流:创建文档

  1. 确定文档类型(简历、报告、信函、发票、文章、论文、学术简历、演示文稿、海报、试卷、书籍、速查表)
  2. **如果是海报:**运行海报子工作流(参见下文的海报子工作流),然后跳到第 5 步。
  3. **如果是速查表/参考卡片:**运行速查表子工作流(参见下文的速查表/参考卡片子工作流),然后跳到第 5 步。
  4. 询问用户希望添加哪些增强元素(使用 AskUserQuestion 工具并启用 multiSelect)。根据文档类型提供相关选项:
    • AI 生成的图像——自定义插图、图表、照片(使用 generate-image 技能)
    • 图表/统计图——柱状图、折线图、饼图、散点图、热力图(pgfplots 或 matplotlib)
    • 流程图/示意图——流程、架构、决策树(TikZ 或 Mermaid)
    • 引用/参考文献——学术引用、脚注、引用作品(BibTeX/biblatex)
    • 数据表格——比较矩阵、财务数据、统计数据(booktabs)
    • 水印——DRAFT、CONFIDENTIAL 或公司徽标背景
    • 对于简单文档(求职信、发票),或用户已明确指定所需内容时,跳过此步骤。
  5. 从 assets/templates/ 复制合适的模板,或从头编写
  6. 根据用户需求自定义内容
  7. 根据用户选择的元素生成外部素材:
    • 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
  8. **对于 5 页及以上的文档:**在编译前查看长篇文档反模式(报告、论文、书籍必读)部分,并执行内容生成检查清单。关键规则:优先使用段落而非项目符号;全局压缩列表;在文本模式下转义 </>;变换章节格式;限制使用 ewpage;将图像尺寸设为 textwidth 的 0.75–0.85 倍。
  9. 使用 scripts/compile_latex.sh 编译(自动检测 XeLaTeX,以支持 CJK/RTL、术语表和参考文献)
  10. 向用户展示 PNG 预览,并交付 PDF
海报子工作流

用户需要制作海报时:阅读 references/poster-design-guide.md,了解完整工作流,包括会议尺寸预设(NeurIPS/ICML/CVPR/ICLR 尺寸)、布局类型(Traditional/BetterPoster/Visual-Heavy)、配色方案和排版标准。使用 poster.tex(纵向)或 poster-landscape.tex(横向)。使用 AskUserQuestion 询问用户会议/方向、布局风格和配色方案,然后继续执行第 5 步。

速查表/参考卡片子工作流

用户需要制作速查表、参考卡片或公式表时:

  1. 阅读 references/cheatsheet-guide.md,了解完整工作流,包括模板选择、内容预算、排版规则和 PDF 转速查表流程。
  2. 选择模板:cheatsheet.tex(通用,横向三栏)、cheatsheet-exam.tex(试卷公式,纵向双栏)或 cheatsheet-code.tex(编程,横向四栏)。
  3. 按照指南中的工作流步骤操作,然后返回主工作流第 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 DIRPNG 输出目录(默认:与 .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.texVP、总监、高管(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。通过 `

评论

支持 Markdown