PreTeXt - 技术发现报告
PreTeXt - 技术发现报告
基本信息
- 名称: PreTeXt
- 官方地址: https://pretextbook.org
- GitHub 仓库: https://github.com/PreTeXtBook/pretext
- 当前版本: CLI v2.38.2(PreTeXt-CLI,PyPI 包名
pretext);核心标记语言持续迭代中,无独立版本号 - License: GPL(GPL-3.0-or-later)
- 主要编程语言: XSLT(75.5%)、JavaScript(7.4%)、Python(7.2%)、CSS(5.1%)、SCSS(4.6%)
- 首次发布日期: 2013-09-21(GitHub 仓库创建日期);项目构思始于更早期,创始人 Rob Beezer 自 2013 年起持续开发
- 创建者/维护团队: Rob Beezer(@rbeezer,University of Puget Sound 数学系教授)创建并领衔维护,75 位贡献者参与
一句话定位
PreTeXt 是一个基于 XML 的学术文档创作与发布系统,专为教科书、研究论文和学术专著设计,尤其适用于 STEM(科学、技术、工程、数学)领域,核心理念是"一次编写,处处发布"(Write once, read anywhere)——从单一 XML 源文件可生成 HTML、PDF(LaTeX)、EPUB、Braille(盲文)、Jupyter Notebook、RevealJS 幻灯片等多种输出格式。
核心特性
-
单一来源多格式输出(Single Source, Multiple Outputs) - PreTeXt 的核心理念:作者只需编写一份 XML 源文件,即可自动转换为 HTML(含交互式 3D 图形、GeoGebra 小程序等)、PDF(通过 LaTeX 排版)、EPUB(电子书)、Braille(盲文触觉图形)、Jupyter Notebook、RevealJS 幻灯片等格式。这彻底解决了学术作者需要维护多个格式版本的问题。[来源:pretextbook.org、GitHub README]
-
高质量数学排版与无障碍访问(Accessibility-First Design) - PreTeXt 对数学公式的支持达到专业排版水准,HTML 输出使用 MathJax 渲染 LaTeX 数学公式,PDF 输出通过原生 LaTeX 实现出版级质量。更重要的是,PreTeXt 将无障碍访问(Accessibility)作为核心设计原则——屏幕阅读器可以朗读数学内容,Braille 输出支持 Nemeth 盲文编码,使视觉障碍者也能阅读 STEM 教材。这在学术出版工具中极为罕见。[来源:pretextbook.org、GitHub README 原则 #11]
-
结构化标记语言(Structured Markup Language) - PreTeXt 定义了一套完整的 XML 标记语言,精确捕捉学术文档的语义结构(章节、定理、证明、示例、练习、注解等),而非仅描述视觉呈现。这种语义化方法使得文档可以被程序化处理、验证和转换。标记语言同时保持人类可读和人类可写。[来源:GitHub README 原则 #1-2]
-
学术生态集成(Academic Ecosystem Integration) - PreTeXt 与多个学术工具深度集成:WeBWorK(在线作业系统)可以在 PreTeXt 文档中嵌入交互式习题;STACK(计算机辅助评估系统)支持自动评分的数学问题;GeoGebra 和 D3.js 等工具支持交互式可视化。这些集成使 PreTeXt 特别适合构建交互式教学材料。[来源:pretextbook.org、社区文章]
-
开放与免费(Open and Free) - PreTeXt 完全开源(GPL 许可),软件免费使用,且使用 PreTeXt 创作的文档不受任何约束(文档版权归作者所有)。项目不依赖任何商业服务,核心转换基于 XSLT 样式表实现。社区通过 Google Groups 邮件列表(pretext-support)和 GitHub Issues 提供支持。[来源:GitHub README 原则 #8-9]
社区生态
- GitHub Stars: 436(截至 2026-04-13,PreTeXtBook/pretext 仓库,通过 GitHub API 获取)
- Forks: 232
- Open Issues: 590
- Contributors: 75 位贡献者,以 Rob Beezer(@rbeezer)为核心,David Farmer、Alex Jordan、Oscar Levin 等数学教育者为重要贡献者
- 最近更新日期: 2026-04-13(GitHub 最后推送日期),项目保持活跃开发
- 社区讨论热度: 专注于学术数学教育社区。支持邮件列表 pretext-support 和公告列表 pretext-announce 为主要交流渠道。项目已被美国数学学会(MAA)、数十所大学采用,在 OER(开放教育资源)运动中扮演重要角色。PreTeXtBook 组织下共有 15 个仓库(包括 pretext-cli、pretext-book 等)。
- PyPI 下载量:
pretext包(CLI 工具)通过pip install pretext安装,当前版本 v2.38.2
技术栈定位
- 所属领域: 学术出版 / 文档标记语言 / STEM 教育 / 开放教育资源(OER)/ 无障碍出版 / 教材创作工具
- 解决的核心问题: STEM 领域的学术文档(特别是教科书)需要同时满足多种需求:高质量数学排版(印刷级)、在线交互性(Web 特性)、无障碍访问(盲文、屏幕阅读器)、多格式发布(PDF、HTML、EPUB)。传统工具(如纯 LaTeX 或 Word)无法同时满足这些需求。PreTeXt 通过语义化 XML 标记作为单一来源,配合 XSLT 转换引擎,实现一次编写、多格式发布,同时保证每种输出格式的质量。
- 替代/竞品技术: LaTeX(传统排版系统)、AsciiDoc(轻量级标记语言)、DocBook(技术文档标记)、Sphinx(Python 文档生成)、Quarto(Posit 推出的科学出版工具)、R Markdown(可重现研究)、Bookdown(R 生态书籍工具)、Typst(新一代排版系统)、Markdown + MathJax(简易数学文档)
- 依赖的上游技术: XML(标记语言基础)、XSLT(核心转换引擎)、LaTeX(PDF 输出后端)、MathJax(HTML 数学渲染)、Python(CLI 工具,pretext 包)、Node.js(部分构建工具)
- 下游使用者/集成方: 大学数学系(教材编写)、开放教育资源(OER)项目、学术出版社、K-12 STEM 教育、需要无障碍学术文档的机构。知名采用案例包括:Oscar Levin 的《Discrete Mathematics: An Open Introduction》、美国数学学会(MAA)的多个出版物、AIM(American Institute of Mathematics)的 OER 项目
关键链接汇总
宇方资源
- PreTeXt 官网 — 项目介绍、特性说明、快速入门
- PreTeXt 指南 — 作者指南,完整的标记语言参考
- PreTeXt GitHub 仓库 — 核心源代码(XSLT 样式表、schema)
- PreTeXt CLI GitHub 仓库 — 命令行工具源代码
- PreTeXt CLI PyPI — pip 安装包(当前版本 v2.38.2)
- 更新日志 — 版本更新记录
教程资源
- PreTeXt 快速入门 — 官方快速入门指南
- PreTeXt 作者指南 — 完整的标记语言和发布教程
- Oscar Levin 的 PreTeXt 教程 — 社区贡献的实践教程
- MathTech.org PreTeXt 教程 — 交互式学习资源
社区资源
- pretext-support 邮件列表 — 社区支持论坛
- pretext-announce 邮件列表 — 项目公告(低频)
- GitHub Issues — 问题反馈和功能建议(590 个 Open Issues)
- pretext.plus — PreTeXt 在线编辑和托管平台
信息来源
- GitHub API - PreTeXtBook/pretext(Stars: 436, Forks: 232, Open Issues: 590, Created: 2013-09-21, Pushed: 2026-04-13, Contributors: 75, Language: XSLT) — 获取日期:2026-04-13
- GitHub README - PreTeXtBook/pretext(项目描述、11 条设计原则、支持论坛、公告列表) — 获取日期:2026-04-13
- PreTeXt 官网(产品定位、核心特性、快速入门、作者指南链接) — 获取日期:2026-04-13
- PyPI - pretext(CLI 工具,当前版本 v2.38.2,包名变迁说明) — 获取日期:2026-04-13
- GitHub Releases - PreTeXtBook/pretext-cli(版本历史,v2.38.2 为最新) — 获取日期:2026-04-13
- Web 搜索 "PreTeXt authoring publishing system STEM textbooks" 多来源结果 — 获取日期:2026-04-13