论文汇报稿生成(非论文阅读/教学解读)。忠实原文、少删减,仅摘要/引言/实验结论可压缩,其余高保真呈现。 自动裁剪论文图表为 PNG 嵌入报告,保留公式与符号定义。 触发词:论文汇报, 组会汇报, 读书会汇报, paper report, seminar report, 汇报稿, 论文报告。 场景:学术组会/读书会,面向同行听众。 与 paper-reader 的区别:paper-reader 是零基础教学化解读,paper-report 是忠实原文的同行汇报。
生成忠实原文的 Markdown 论文汇报稿,用于学术组会/读书会汇报。
核心原则:
[13]、[1,2]),仅保留正文语义默认产物要求:最终交付文件必须为图片内嵌(base64)的单一 Markdown,不保留并行的非内嵌版本。
输出:论文阅读 | 年份 期刊 | 英文题目.md(单一 Markdown 文件,文件名与一级标题一致)
复用 paper-reader skill 的脚本(路径:~/.config/opencode/skills/paper-reader/scripts/):
pip install PyMuPDF>=1.23.0 pdfplumber>=0.10.0 Pillow
{paper-name}/python ~/.config/opencode/skills/paper-reader/scripts/pdf_to_sections.py <pdf_path> <output_dir>/
<output_dir>/sections.json,获取 title、authors、abstract、sections[]同时运行:
标题截图裁剪(复用现有 validate_fidelity.py,不新增脚本):
python ~/.config/opencode/skills/paper-report/scripts/validate_fidelity.py extract-title <pdf_path> <output_dir>/images/title-screenshot.png
→ 将论文第一页标题区自动裁剪为 <output_dir>/images/title-screenshot.png
图表裁剪:
python ~/.config/opencode/skills/paper-reader/scripts/extract_figures.py <pdf_path> <output_dir>/images/
→ 读取 <output_dir>/images/figure_map.json,获取每张图/表的 id、kind、file、page、caption
公式提取:
python ~/.config/opencode/skills/paper-reader/scripts/extract_formulas.py <pdf_path> <output_dir>/
→ 读取 <output_dir>/formulas.json,获取公式的 LaTeX、位置、置信度
对 confidence="low" 且有 fallback_image 的公式,使用 look_at 工具视觉识别 LaTeX。
references/fidelity-rules.md(必读)references/compression-policy.md(必读)references/report-template-faithful.md(必读)报告头部格式规则(硬约束):
论文阅读 | 年份 期刊 | 英文标题[13]、[24,25])章节分类与处理策略:
| 章节类型 | 处理策略 | 详见 |
|---|---|---|
| Abstract | 可压缩(≤50% 篇幅) | compression-policy.md |
| Introduction | 可压缩(保留问题定义与贡献声明) | compression-policy.md |
| Method / Approach | 高保真(关键公式、图表、符号定义完整保留) | fidelity-rules.md |
| Experiments(设置与主结果) | 高保真(实验配置、对比表、图表完整保留) | fidelity-rules.md |
| Ablation / Analysis | 高保真 | fidelity-rules.md |
| Experiment Conclusion | 可压缩(保留核心数值结论) | compression-policy.md |
| Limitations / Future Work | 高保真 | fidelity-rules.md |
| Related Work | 高保真(除引言中已覆盖的部分) | fidelity-rules.md |
图表嵌入规则(硬约束):
[Figure 1]、fig1、(见图1) 等文字占位符代替图片figure_map.json 中的实际裁剪图片路径公式处理规则:
{paper-name}/论文阅读 | 年份 期刊 | 英文题目.md(与一级标题一致)运行验证脚本:
python scripts/validate_fidelity.py <output_dir>/论文汇报稿.md <output_dir>/sections.json <output_dir>/images/figure_map.json
将 <output_dir>/论文汇报稿.md 替换为实际输出文件名:
<output_dir>/论文阅读 | 年份 期刊 | 英文题目.md
校验项:
如校验失败,根据报告修复后重新校验。
将报告中的本地图片链接内嵌为 base64,并直接覆盖最终输出文件:
python scripts/embed_images_single_md.py <input_md> <output_single_md>
示例:
python scripts/embed_images_single_md.py \
"<output_dir>/论文阅读 | 年份 期刊 | 英文题目.md" \
"<output_dir>/论文阅读 | 年份 期刊 | 英文题目.md"
若文档体积过大,建议在同一命令中开启压缩参数:
python scripts/embed_images_single_md.py \
"<output_dir>/论文阅读 | 年份 期刊 | 英文题目.md" \
"<output_dir>/论文阅读 | 年份 期刊 | 英文题目.md" \
--compress --process-data-uri --max-width 1400 --jpeg-quality 80
{paper-name}/
├── 论文阅读 | 年份 期刊 | 英文题目.md # 最终汇报稿(与一级标题一致,图片已内嵌)
├── images/ # 裁剪的图表 PNG
│ ├── figure_001.png
│ ├── figure_002.png
│ └── ...
├── figure_map.json # 图表元数据
├── formulas.json # 公式元数据
└── sections.json # 章节结构
scripts/validate_fidelity.py extract-title 从当前论文 PDF 自动生成[13]、[1,2,3])look_at 工具视觉识别论文页面中的图表,如仍失败则标注"图像未提取成功"并保留文字结论references/report-template-faithful.mdreferences/fidelity-rules.md(术语、图表、公式、证据追溯)references/compression-policy.md(仅三处可压缩的执行规则)scripts/validate_fidelity.py(检查是否越权删减、图表是否嵌入)scripts/validate_fidelity.py extract-title(自动裁剪首页标题区)scripts/embed_images_single_md.py(将图片转为 base64 内嵌)~/.config/opencode/skills/paper-reader/scripts/pdf_to_sections.py~/.config/opencode/skills/paper-reader/scripts/extract_figures.py~/.config/opencode/skills/paper-reader/scripts/extract_formulas.py