PreTeXt - 质量审阅报告

PreTeXt - 质量审阅报告

审阅日期: 2026-04-13 审阅范围: 01-discovery.md、02-analysis.md、03-tutorial.md 质量评分: B 级


审阅清单结果

1. 事实准确性 — 通过(修复 2 个 P1 问题)

检查内容与验证方式: - GitHub 数据(Stars 436、Forks 232、Open Issues 590、License GPL、Created 2013-09-21、Pushed 2026-04-13):01-discovery.md 和 02-analysis.md 均与 GitHub API(curl -s https://api.github.com/repos/PreTeXtBook/pretext)数据一致 ✅ - 创建者信息(Rob Beezer,75 位贡献者):与 GitHub README 和 Rob Beezer 演讲一致 ✅ - 竞品数据(Quarto 5,517 Stars、Typst 52,792 Stars):通过 GitHub API 直接验证一致 ✅ - 技术栈信息(XSLT 75.5%、JavaScript 7.4%、Python 7.2%):与 GitHub 页面语言统计一致 ✅ - CLI 版本(v2.38.2):与 PyPI 和 GitHub Releases 数据一致 ✅ - 11 条设计原则:与 GitHub README 逐条比对一致 ✅ - XSLT 转换架构:与 PreTeXt Guide 第 46 章(Processing with xsltproc)一致 ✅ - PreTeXt Guide 目录结构(50+ 章):与 web reader 抓取的 pretextbook.org 内容一致 ✅ - Rob Beezer 演讲中的历史时间线(2004-2023):与 web reader 抓取的演讲内容逐条对比一致 ✅

发现: 1. 01-discovery.md 第 11 行标注创建者为"华盛顿大学数学系教授",但 Rob Beezer 的实际机构为"University of Puget Sound"(普吉特湾大学),并非"华盛顿大学"(University of Washington)。已修正。标记为 P1 已修复。 2. 02-analysis.md 第 27 行发展历程中将"Shuttleworth Flash Grant"误拼为"Shuttleville Flash Grant"。与第 13 行(正确拼写"Shuttleworth")和 Rob Beezer 演讲原文矛盾。已修正。标记为 P1 已修复。

2. 代码可运行性 — 通过

检查内容: - 01-discovery.md:无代码示例 ✅ - 02-analysis.md: - PreTeXt XML 示例(5 个关键概念):结构正确,标签嵌套符合 Schema 约定,与 PreTeXt Guide 一致 ✅ - CLI 命令示例(bash):pretext newpretext buildpretext viewpretext deploypretext validate 命令与 CLI 文档一致 ✅ - 03-tutorial.md: - 环境搭建代码(bash):pip install --upgrade pretextbrew install --cask mactex 命令语法正确 ✅ - XML 代码示例(6 节 + 实战项目):标签正确嵌套,属性格式规范,与官方 Guide 示例一致 ✅ - Publication File 示例(XML):结构正确,标签名与 PreTeXt Guide 一致 ✅ - CLI 命令示例(bash):pretext build htmlpretext viewpretext generate 等命令基于官方文档 ✅

发现: 教程中部分 XML 示例(如 <webwork> 嵌套结构、<var> 属性)基于 PreTeXt Guide 的 WeBWorK 章节构造,完整的 WeBWorK 交互需要 WeBWorK 服务器才能验证。教程中已明确标注此限制。标记为 P2 保留。

3. 完整性 — 通过

检查内容: - 01-discovery.md:基本信息(8 项全部覆盖)✅、一句话定位 ✅、5 条核心特性 ✅、社区生态(7 项指标)✅、技术栈定位(5 个维度)✅、关键链接(3 类:官方/教程/社区)✅、6 条信息来源 ✅ - 02-analysis.md:技术背景与动机 ✅、核心原理(3 设计哲学 + 核心机制 + 数据流图)✅、架构设计(整体 4 层架构 + 7 核心模块 + 5 扩展机制)✅、5 个关键概念详解(含代码示例)✅、同类技术横向对比(4 个技术:PreTeXt + LaTeX + Quarto + Typst,覆盖 15 个维度)✅、适用场景(5 最佳 + 3 不适用)✅、优缺点(5 优势 + 4 劣势 + 3 风险)✅、生态评估(4 项)✅、生产就绪度(5 项)✅、学习曲线 ✅、总结与建议(含评分 7.0/10)✅ - 03-tutorial.md:环境搭建 ✅、入门篇 3 节(标记基础 + 文档结构 + 数学环境)✅、进阶篇 2 节(交叉引用 + 多格式构建)✅、高级篇 3 节(WeBWorK + 图像处理 + 最佳实践)✅、实战项目 ✅、常见问题(10 条错误 + 3 条调试技巧)✅、学习路线(7 步阅读顺序 + 4 资源)✅ - 横向对比:包含 4 个技术(PreTeXt + LaTeX + Quarto + Typst),满足"至少 3 个竞品"要求 ✅

4. 逻辑递进 — 通过

检查内容: - 教程章节顺序:标记语言基础(1.1 "什么是 XML/PreTeXt")→ 文档结构与章节组织(1.2 "怎么组织多章节文档")→ 数学环境(1.3 "怎么写定理和证明")→ 交叉引用与 Knowl(2.1 "怎么引用前面的定义和定理")→ 多格式构建(2.2 "怎么生成 HTML 和 PDF")→ WeBWorK(3.1 "怎么加交互式习题")→ 图像处理(3.2 "怎么加图表")→ 最佳实践(3.3 "经验总结")→ 实战项目 ✅ - 每个知识点建立在前一个之上 ✅ - 1.1 理解 XML 基础 → 1.2 在此基础上组织文档结构 - 1.3 理解数学标记 → 2.1 在此基础上添加交叉引用 - 2.2 理解多格式构建 → 3.1/3.2 利用构建系统添加高级功能 - 实战项目综合运用 5 个知识点(文档结构、数学环境、交叉引用、TikZ 图像、Publication File),满足最低 3 个要求 ✅ - 每节配有练习题 ✅

5. 术语一致性 — 通过

检查内容: - "PreTeXt"三份文档统一使用 ✅ - "交叉引用(Cross-Reference)"三份文档统一使用 ✅ - "无障碍访问(Accessibility)"三份文档统一使用 ✅ - "语义化标记(Semantic Markup)"三份文档统一使用 ✅ - "单一来源(Single Source)"三份文档统一使用 ✅ - "标记语言(Markup Language)"三份文档统一使用 ✅ - "盲文(Braille)"三份文档统一使用 ✅ - "开放教育资源(OER)"三份文档统一使用 ✅ - 首次出现非中文术语附英文原文 ✅ - 代码中 XML 标签命名与文字描述一致 ✅

6. 时效性 — 通过

检查内容: - 01-discovery.md 信息获取日期:2026-04-13 ✅ - 02-analysis.md 信息获取日期:2026-04-13 ✅ - 03-tutorial.md:基于 PreTeXt-CLI v2.38.2 和 GitHub 主分支编写 ✅ - 竞品数据标注获取时间(Quarto 2026-04-13、Typst 2026-04-13)✅ - 项目 12+ 年历史在分析报告和教程中多处标注 ✅ - 01-discovery.md 区分了 GitHub 仓库创建日期(2013-09-21)和项目构思起始日期(更早期)✅ - 所有 GitHub Stars 数据标注了精确获取日期 ✅

7. 来源可溯 — 通过

检查内容: - 01-discovery.md:6 条来源(GitHub API、GitHub README、PreTeXt 官网、PyPI、GitHub Releases、Web 搜索)✅ - 02-analysis.md:10 条来源(GitHub API、GitHub README、PreTeXt 官网、PreTeXt Guide、Rob Beezer 演讲、Runestone Academy、Accessibility 页面、Quarto GitHub API、Typst GitHub API、PyPI)✅ - 03-tutorial.md:代码示例标注"基于官方文档"和"基于 PreTeXt-CLI v2.38.2" ✅ - 独立来源域名:api.github.com、github.com、pretextbook.org、pypi.org、blog.runestone.academy、youtube.com、groups.google.com、dasroot.net — 8 个独立来源域名 ✅ - 关键数据点标注来源 ✅ - 不确信的结论标注置信度(02-analysis.md 覆盖高/中/低三个级别)✅


问题列表

# 级别 所在文件 问题描述 状态
1 P1 01-discovery.md:11 创建者机构标注为"华盛顿大学数学系教授",实际为"University of Puget Sound"(普吉特湾大学),机构名称有误 已修复
2 P1 02-analysis.md:27 发展历程中"Shuttleworth Flash Grant"误拼为"Shuttleville Flash Grant",与同文件第 13 行和来源矛盾 已修复
3 P2 03-tutorial.md 多处 WeBWorK 习题的 <webwork> 嵌套结构和 <var> 属性需要 WeBWorK 服务器才能完全验证,本地环境只能构建静态版本 保留

修正说明

问题 #1(P1 - 已修复)

  • 所在文件: 01-discovery.md:11
  • 问题描述: 创建者机构标注为"华盛顿大学数学系教授"。"华盛顿大学"通常指 University of Washington,但 Rob Beezer 的实际机构为 University of Puget Sound(普吉特湾大学),两者是不同的机构。
  • 修正内容: 修改为"Rob Beezer(@rbeezer,University of Puget Sound 数学系教授)"。
  • 修正依据: Rob Beezer "The State of PreTeXt" 演讲(blog.runestone.academy)明确标注 "University of Puget Sound";Balisage 会议论文也标注 "Professor, University of Puget Sound"。

问题 #2(P1 - 已修复)

  • 所在文件: 02-analysis.md:27
  • 问题描述: 发展历程中写入"获得 Shuttleville Flash Grant",但正确的基金会名称为"Shuttleworth Foundation"(谢特尔沃斯基金会),对应拨款为"Shuttleworth Flash Grant"。同文件第 13 行正确拼写为"Shuttleworth"。
  • 修正内容: 将"Shuttleville Flash Grant"修正为"Shuttleworth Flash Grant"。
  • 修正依据: Rob Beezer 演讲原文(blog.runestone.academy/_static/pretext23/prose-workshop.html)显示"2013-05-20: Shuttleworth Flash Grant awarded for MathBook XML (MBX)"。

问题 #3(P2 - 保留)

  • 所在文件: 03-tutorial.md 多处
  • 问题描述: WeBWorK 交互式习题示例(<webwork> 嵌套、<var> 属性、category="formula" 等)基于 PreTeXt Guide 第 7 章(WeBWorK Exercises)和第 16.5 节构造,但完整的交互功能需要 WeBWorK 服务器,无法在纯本地环境中完全验证。
  • 保留理由: 教程中已在 3.1 节的"注意事项"中明确标注"WeBWorK 需要服务器"的限制。XML 结构和属性命名与 PreTeXt Guide 一致。读者在实际使用时需配合 WeBWorK 服务器。

质量评分:B 级

评级依据: 发现 0 个 P0 问题、2 个 P1 问题(均已修复)、1 个 P2 问题(保留)。修复后无 P0/P1 问题,满足 B 级要求。

三份文档数据经 8 个独立来源域名(api.github.com、github.com、pretextbook.org、pypi.org、blog.runestone.academy、youtube.com、groups.google.com、dasroot.net)交叉验证。核心技术描述(语义化 XML 标记、XSLT 转换管道、Knowl 系统、WeBWorK 集成、Braille 无障碍输出)与 PreTeXt Guide、Rob Beezer 演讲和 Runestone Academy 文章高度一致。02-analysis.md 的置信度标注规范,覆盖了高/中/低三个级别。竞品对比使用可验证的 GitHub API 数据(Quarto 5,517 Stars、Typst 52,792 Stars),均为 2026-04-13 当天获取。

教程从"编写第一个 XML 文档"到"构建完整的线性代数教材单章"的递进逻辑清晰,实战项目综合运用 5 个知识点(文档结构、数学环境、交叉引用、TikZ 图像、Publication File),超过最低 3 个的要求。代码示例覆盖 XML(PreTeXt 标记、Publication File、project.ptx)和 Bash(CLI 命令)两种类型,XML 语法正确,标签嵌套符合 Schema 约定。