Community研究与数据分析github.com

Shass27/stem-notes

为STEM学科生成补充笔记。将讲座幻灯片、教材章节、扫描习题、图片(png/jpg)或PowerPoint/Word文件转换为LaTeX公式/定义表、完整解题过程和总结笔记。当用户要求从参考/源文件中生成笔记、公式表、速查表、解题过程或复习材料时使用。

stem-notes 是什么?

该技能专为STEM学科设计,能从多种源文件(如PDF、图片、PPTX/DOCX)自动生成结构化的LaTeX学习材料,包括公式表、完整解题过程和总结笔记。它通过多轮问答(MCQ)的方式与用户交互,确保每一步都由用户决策,例如选择输出类型、安装必要工具(如Tectonic、pdfinfo、LibreOffice)和编译选项。技能支持处理扫描型PDF(通过逐页转换为图片读取)、PowerPoint/Word文档(通过LibreOffice转换为PDF),并严格遵循风格指南,包括对每个题目添加来源标签、生成覆盖率表格、检查数字准确性,并在发现矛盾时向用户报告。该技能主要面向Claude Code等AI代理平台,工作流包括资源盘点、工具检查、文件读取、解题验证、LaTeX文件生成和可选编译,最后生成简洁的报告。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Shass27/stem-notes/tree/main

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

STEM 补充笔记(LaTeX)

从任何STEM源材料生成 .tex 格式的学习材料。用户通过多项选择题(AskUserQuestion)驱动所有选择,因此在构建之前务必询问。

支持文件(在到达相应步骤时读取):

  • references/tooling.md:软件、安装命令和大小、转换命令
  • references/questions.md:MCQ问题库(包括轮次问题,含编译问题)
  • references/style-guide.md:布局、标签、解题格式、验证和差异规则
  • templates/formula_sheet.tex、templates/solutions.tex、templates/summary_notes.tex:需要复制的前导部分

工作流

1. 盘点源文件

  • 列出用户指向的文件(文件夹或 @ 路径)。支持 PDF、PNG/JPG、PPTX/DOCX。
  • 对每个PDF运行 pdfinfo(页数)和 pdftotext -layout 到会话暂存区,然后统计字数。每页字数少于约50字意味着是扫描或图像密集型文件:将每一页作为图像读取;文本转储无效。
  • 幻灯片通常只将公式和图形保存为图像。即使有文本存在,仍然需要查看页面。

2. 检查工具(先只读)

运行 which pdfinfo pdftotext pdftoppm soffice tectonic pdflatex。任何缺失且需要的内容将进入第一批MCQ问题,并附上其大小(参见 references/tooling.md)。没有MCQ答案绝不安装。 仅在存在Office文件时才需要LibreOffice。如果用户以问题回答(例如“需要多少存储空间?”),先回答该问题,然后重新提问。

3. 接收MCQ问题

按照 references/questions.md 中的轮次提问,每次AskUserQuestion调用最多4个问题。将推荐选项放在第一位并标记为“(推荐)”。只提问用户所选输出对应的问题组。编译问题总是最后提问。 逐字阅读答案:自由文本答案覆盖选项。

4. 读取所有内容

  • PDF:使用Read工具,指定 pages(每次调用最多20页,因此拆分较大范围),并一次性并行发出所有文件的所有页面范围读取请求。Read工具需要poppler的 pdftoppm。
  • 图片:直接读取。
  • PPTX/DOCX:在暂存区转换为PDF(soffice --headless --convert-to pdf --outdir <scratchpad> file),然后按PDF读取。
  • 对每个问题或示例记录:源文件、幻灯片/页数、题号、源文件是否已完全或部分解决,以及任何给出的答案。

5. 求解并验证

  • 处理范围内的每个问题。对于任何非平凡问题(曲线拟合、积分、力矩平衡、多步数值计算),使用暂存区中的简短 python3 脚本检查数值。
  • 与给出的答案进行比较。如果不一致,重新检查,然后在文档中和向用户报告差异。 绝不为了匹配给出的答案而强行修改计算过程。
  • 在脚注或“为何如此”的注释中标明源文件中的笔误(符号错误、项错误、数据不一致)。

6. 编写 .tex 文件

  • 从 templates/ 中的相应模板开始:保留其前导部分,替换 %% TODO 占位符。
  • 遵循 references/style-guide.md:为每个条目打上标签(来源 · 幻灯片/页数 · 题号)、添加覆盖率表格、完整复述每个问题、用框标出答案。
  • 使用仅ASCII源文件。注释仅使用单行 % 注释,绝不使用多行横幅注释。
  • 默认输出文件夹为源文件旁边的 latex/,除非用户另行指定。

7. 仅在用户选择时编译

  • tectonic:tectonic -X compile file.tex。MacTeX:latexmk -pdf file.tex。修复错误并重新编译,直到无误。
  • 如果用户要求停止,立即停止任务(TaskStop),不要重试。

8. 报告

简要列出:写入的文件、每个文件涵盖的内容、跳过的题目(源文件中已有解答的)、发现的差异以及编译状态。如果未进行编译,请明确说明。

相关技能