LaTeX Document Skill 是一个通用 LaTeX 文档技能,核心目标是创建任意 LaTeX 文档、编译为 PDF,并生成 PNG 预览,同时支持将任意类型的 PDF 转换为 LaTeX。
【用途】 该技能面向需要生成专业排版文档的场景,涵盖简历、报告、求职信、发票、文章、论文、学术 CV、演示、海报、考试、书籍、速查表等文档类型。它同时提供 PDF 到 LaTeX 的转换、文档格式互转、邮件合并、版本差异对比、PDF 表单填写以及高级 PDF 操作等能力。
【主要能力】
- 文档创建与编译:从 assets/templates/ 复制模板或从零编写,编译为 PDF 并生成 PNG 预览。编译脚本 scripts/compile_latex.sh 支持自动检测引擎(使用 fontspec、xeCJK、polyglossia 时用 xelatex;使用 luacode、luatextra 时用 lualatex;否则默认 pdflatex),支持 --preview、--preview-dir、--engine、--use-latexmk、--verbose、--quiet、--clean、--pdfa、--auto-fix 等标志。脚本会自动安装缺失的 texlive(含 texlive-science、texlive-xetex、texlive-luatex、biber)与 poppler-utils,自动检测 \bibliography{}、\addbibresource{}、\makeindex、\makeglossaries 并运行相应工具与正确遍数,用 pdftoppm 生成 PNG 预览并清理辅助文件。
- 富化元素:可询问用户选择 AI 生成图像、图表(pgfplots 或 matplotlib)、流程图/示意图(TikZ 或 Mermaid)、引用/参考文献(BibTeX/biblatex)、数据表格(booktabs)、水印等。
- 海报子工作流:读取 references/poster-design-guide.md,包含会议尺寸预设(NeurIPS/ICML/CVPR/ICLR)、布局原型(Traditional/BetterPoster/Visual-Heavy)、配色方案与排版标准,使用 poster.tex(纵向)或 poster-landscape.tex(横向)。
- 速查表子工作流:读取 references/cheatsheet-guide.md,选择 cheatsheet.tex(通用,3 栏横向)、cheatsheet-exam.tex(考试公式,2 栏纵向)或 cheatsheet-code.tex(编程,4 栏横向)。
- 邮件合并:用 scripts/mail_merge.py 从 LaTeX 模板 + CSV/JSON 数据源生成 N 份个性化文档,模板语法支持 {{variable}} 简单替换与 Jinja2(<< >>、<% %>)条件/循环。
- 版本差异:用 scripts/latex_diff.sh 生成高亮变更追踪 PDF,支持文件对文件、git 修订差异、多文件展平与自定义标记样式。
- 格式转换:用 scripts/convert_document.sh 在 Markdown、DOCX、HTML 与 LaTeX 之间转换。
- PDF 转 LaTeX:将现有 PDF(手写笔记、打印报告、法律文档)转为 LaTeX,流程包括拆分页面图像(scripts/pdf_to_images.sh)、选择转换配置、创建共享导言区、应用缩放策略、用 scripts/validate_latex.py 验证、拼接、编译。缩放策略:1-10 页单代理;11-20 页分半(2 代理);21+ 页批量-7 流水线(ceil(N/7) 个代理,run_in_background: true)。转换配置位于 references/profiles/:math-notes.md(含 beautiful 模式)、business-document.md、legal-document.md、general-notes.md。
- PDF 表单填写:支持可填写(有表单字段)与不可填写(基于图像)两种。可填写时用 pdf_extract_fields.py 提取字段元数据、创建 field_values.json 后用 pdf_fill_form.py 填写;不可填写时用 pdf_to_images.sh 转图像、视觉识别字段、创建 fields.json 边界框、用 pdf_validate_boxes.py 验证、用 pdf_fill_annotations.py 以文本注释填写。
- 高级 PDF 操作:文本/表格提取(pdfplumber)、OCR(pytesseract)、程序化 PDF 创建(reportlab)、水印、页面旋转/裁剪、元数据提取、JavaScript 库(pdf-lib、pdfjs-dist)与批处理,详见 references/pdf-operations.md。
【使用方式】 基本编译:bash <skill_path>/scripts/compile_latex.sh document.tex;编译并生成 PNG 预览:加 --preview;指定预览目录:--preview --preview-dir ./outputs;强制引擎:--engine xelatex 或 --engine lualatex;复杂文档推荐 --use-latexmk --preview;PDF/A 输出:--pdfa;调试:--verbose;批处理/CI:--quiet;仅清理辅助文件:--clean。当安装 texfot(TeX Live 自带)时,默认详细度下编译输出会自动过滤,仅显示相关警告与错误。
【模板】 简历模板(5 个 ATS 兼容选项):resume-classic-ats.tex(金融、法律、政府,零图形纯文本,ATS 10/10)、resume-modern-professional.tex(科技、企业、通用专业,9/10)、resume-executive.tex(VP、总监、C 级,两页,9/10)、resume-technical.tex(软件、数据、工程,9/10)、resume-entry-level.tex(应届生,一页,9/10)。全部遵循 ATS 规则:单栏、无图形/图像、不用表格布局、标准章节标题、联系方式在正文而非页眉页脚。 STEM 学生模板:homework.tex(作业提交,可切换解答,自定义问题/解答环境,荣誉守则,amsmath+amssymb+amsthm,listings 代码高亮,enumitem 子部分)、lab-report.tex(实验报告,siunitx 不确定度与 SI 单位,pgfplots 数据可视化,booktabs 表格,caption+subcaption)。 其他模板:lecture-notes.tex(KOMA-Script scrartcl,Palatino 字体,microtype,彩色 tcolorbox 定理环境,TikZ 图论宏)、thesis.tex(book 类,含标题页、声明、摘要、致谢、目录、图表清单、章节、附录、参考文献)、academic-cv.tex(多页学术 CV,含出版物、资助、教学、指导学生、奖项、服务、特邀报告,ORCID 与 Google Scholar 链接)、book.tex(完整书籍,含半标题、版权页、献词、前言、目录、部分、章节、附录、参考文献、索引)、poster.tex(tikzposter,A0 纵向,2 栏,QR 码,5 种配色,含 BetterPoster 变体)、poster-landscape.tex(A0 横向,3 栏 30/40/30,含 CVPR/NeurIPS 自定义尺寸预设)、cheatsheet.tex、cheatsheet-exam.tex、cheatsheet-code.tex、letter.tex、exam.tex、report.tex、cover-letter.tex、invoice.tex、academic-paper.tex(含示例 references.bib)、examples/ieee-twocolumn-sample.tex(IEEEtran 期刊示例,配合 references/ieee-journal-twocolumn-guide.md 使用)。
【适用场景】 适合需要专业排版输出的个人与团队:求职简历与求职信、学术论文与 IEEE 期刊投稿、学位论文与学术 CV、会议海报、考试与作业、实验报告、讲义笔记、书籍、发票、商务信函、速查表与参考卡,以及 PDF 转 LaTeX、格式互转、邮件合并、版本对比、PDF 表单填写与高级 PDF 处理等任务。
【限制】 资料未提供该技能的收费、价格、平台支持范围、性能指标或效果保证等信息,暂未提供。部分能力依赖外部工具(如 texlive、poppler-utils、latexmk、texfot、pdfplumber、pytesseract、reportlab 等),脚本会自动安装缺失的 texlive 与 poppler-utils,其余工具依赖情况资料未完整说明。