Skip to content

License and Attribution

zhangxh-math edited this page Sep 9, 2026 · 2 revisions

许可证、署名与再分发

本页详细说明 TeXLeaf 1.0.0 起的许可证、项目署名要求、修改版标记、源码/VSIX 再分发,以及历史 MIT 版本和第三方组件的边界。本页用于帮助使用者理解仓库中的正式文件,不代替适用于具体个人、组织或司法辖区的法律意见。

正式文本以主仓库中的以下文件为准:

一句话说明

TeXLeaf 项目自己编写的部分从 1.0.0 起采用 GNU GPL v3 only(GPL-3.0-only)。你可以免费或收费地使用、研究、修改和再分发;但当你向他人分发 TeXLeaf、修改版或基于 TeXLeaf 的作品时,必须遵守 GPLv3 的源码与同许可证义务,并按 NOTICE 保留 TeXLeaf、原作者 zhangxh-math 和原项目链接。

GPL-3.0-only 表示什么

GPL-3.0-only 中的 only 表示当前授权明确限定为 GNU GPL 第 3 版,不自动允许接收者改用未来尚未发布的 GPL 第 4 版或更高版本。

GPLv3 允许:

  • 为个人、教学、科研、企业或商业目的运行 TeXLeaf;
  • 阅读和研究源码;
  • 修改源码、制作自己的构建;
  • 免费或收费分发原版或修改版;
  • 在满足 GPLv3 的条件下,把 TeXLeaf 代码用于更大的衍生作品。

GPLv3 并不等于“禁止商用”或“禁止收费”。它约束的是接收者的自由不能在下一次分发中被拿走。仅仅在自己电脑上安装和使用官方 VSIX,不要求公开论文、设置、Snippet、API Key 或其他个人文件。

什么时候会产生再分发义务

下面这些行为通常属于本页所说的再分发或 convey:

  • 把官方或自行构建的 VSIX 发给其他人;
  • 在网站、网盘、Marketplace、Release 或软件包仓库提供下载;
  • 发布修改后的 TeXLeaf fork;
  • 把 TeXLeaf 代码合并进另一个扩展,然后把该扩展提供给其他人;
  • 把修改后的可执行包、bundle 或安装包交付给客户或外部组织。

仅供自己使用、研究或修改而不向他人提供副本,一般不会触发“向接收者提供对应源码”的分发义务。企业内部、外包、集团关系和跨组织交付可能涉及更具体的事实与当地法律;有合规风险时应由组织自己的法律顾问判断。

再分发时必须做什么

再分发 TeXLeaf、修改版或基于 TeXLeaf 的作品时,至少应检查:

  1. 向接收者提供 GNU GPLv3 正文,并清楚声明作品受 GPL-3.0-only 约束;
  2. 按 GPLv3 提供对应源码,包含生成、安装和修改所需的源码及构建脚本;
  3. 不用额外 EULA、下载条款或技术措施剥夺接收者在 GPLv3 下已有的权利;
  4. 修改版显著说明“已经修改”,并给出相关修改日期;
  5. 保留原有版权、无担保和许可证声明;
  6. 保留仓库的 NOTICE 文件,并满足下一节的 TeXLeaf 项目署名要求;
  7. 继续保留 THIRD_PARTY_NOTICES.md、licenses/ 和第三方组件要求的版权/许可证文本;
  8. 不暗示 TeXLeaf 或 zhangxh-math 对修改版、发行者、服务或商业产品提供认可、担保或支持。

这是一份实用检查表,不是 GPLv3 全文的替代品。出现冲突时以正式 LICENSE 与 NOTICE 为准。

TeXLeaf 的署名要求

GPLv3 第 7(b) 节允许版权所有者要求保留合理的法律声明或作者署名。TeXLeaf 的 NOTICE 使用这一机制,要求再分发者保留以下信息:

This software includes code from or is based on TeXLeaf, originally developed by zhangxh-math:
https://github.com/zhangxh-math/texleaf

中文可以写成:

本软件包含或基于 TeXLeaf 的代码;TeXLeaf 最初由 zhangxh-math 开发:
https://github.com/zhangxh-math/texleaf

文字允许翻译、换行或配合版式调整,但必须清楚保留:

  • TeXLeaf 项目名称;
  • 原作者 zhangxh-math;
  • 原项目地址 https://github.com/zhangxh-math/texleaf;
  • 不能把署名改写成原作者认可、认证或支持修改版。

署名应该放在哪里

源码分发必须保留 NOTICE。面向用户的再发行版还应在以下位置至少选择一个:

  • 随附 README 或使用文档;
  • 扩展详情页;
  • 用户可以正常找到的 About;
  • Credits;
  • Legal Notices / Open Source Licenses 页面。

不要求启动时弹窗、编辑器水印、每个功能页面重复显示,也不要求在与软件无关的论文、视频或社交媒体内容中宣传 TeXLeaf。要求的目标是让收到衍生软件的人可以合理发现来源,而不是制造广告负担。

合规示例

以下做法通常满足本项目的署名位置要求:

  • Fork 的 README 有“Based on TeXLeaf”段落,含作者与原仓库链接,同时仓库保留 NOTICE;
  • 修改版扩展详情页有 Credits,并在源码包内保留 LICENSE、NOTICE 与第三方声明;
  • 商业发行版在可访问的 Legal Notices 页面列出规定署名,并向接收者提供完整对应源码;
  • 未改动镜像保留原仓库文档和所有许可证文件,并明确它是镜像而不是官方新版本。

以下做法不符合本项目要求或存在明显风险:

  • 删除 TeXLeaf 名称、原作者或原仓库地址;
  • 只在源码中留下一个难以发现的提交记录,却从随附文档和 Legal Notices 删除署名;
  • 发布修改后的 VSIX,但不提供对应源码或构建脚本;
  • 用闭源 EULA 禁止接收者修改或再分发 GPL 覆盖的部分;
  • 把修改版包装成“TeXLeaf 官方版”,却没有说明修改者、修改事实和日期;
  • 保留 TeXLeaf 署名但删除 CodeMirror、MathJax 等第三方组件要求的独立声明。

修改版、名称与官方身份

GPLv3 允许创建和分发修改版,但修改版必须显著说明已经修改并给出相关日期。可以给 fork 使用不同名称,也可以在描述中准确说明它基于 TeXLeaf;无论是否改名,NOTICE 中要求的原项目署名都应保留。

TeXLeaf 名称、仓库链接和署名不能被用来暗示:

  • 修改版由 zhangxh-math 发布;
  • 原作者检查过或认可修改;
  • 原作者负责修改版的 Bug、安全、支持、退款或服务;
  • 赞助、商业购买或使用修改版会获得 TeXLeaf 官方优先级。

VSIX 再发行检查表

发布修改后的 VSIX 前建议逐项检查:

  1. package.json 的许可证信息没有被改成闭源或宽松许可证;
  2. VSIX 中包含完整 LICENSE、NOTICE、THIRD_PARTY_NOTICES.md 和所需的 licenses/ 文件;
  3. 扩展详情 README 或可访问的 Credits/Legal Notices 含规定署名;
  4. 修改版版本号、名称和说明不会让用户误认为是未经修改的官方构建;
  5. 对应源码与构建脚本可由接收者免费取得,位置说明与 VSIX 下载同样清楚;
  6. 源码仓库显著说明修改事实和日期;
  7. 没有附加禁止逆向、禁止修改、禁止再分发或限制源码访问的冲突条款;
  8. 最终解压 VSIX 检查许可证文件确实进入归档,而不是只存在于构建机。

历史 MIT 版本

已经有人在 MIT License 下合法获得的历史 TeXLeaf 版本,继续适用当时随副本提供的 MIT 条款;新许可证不能追回已经授予并合法保留的旧版本权利。

从 1.0.0 起发布的新源码和官方 VSIX 使用 GPL-3.0-only 与 NOTICE。因此:

  • 不能把旧 MIT 副本的许可证文件替换成 GPL 后,声称旧接收者原有权利自动消失;
  • 也不能从旧 MIT 版本取得新版本中后来增加的代码,除非同时遵守新代码的 GPLv3 与署名条款;
  • 判断某份副本适用什么条款,应查看它具体版本、提交、下载来源和随附许可证,而不能只看项目今天的首页。

用户论文、模板与 Snippet 输出例外

NOTICE 提供一项 GPLv3 第 7 节下的附加许可,明确区分“TeXLeaf 软件”与“用户使用 TeXLeaf 写出的文档”。仅仅进行以下操作,不会让用户文档自动变成 GPL 作品,也不要求用户在论文中提到 TeXLeaf:

  • 用 TeXLeaf 创建、打开或编辑 .tex、.bib、Markdown 等文件;
  • 展开 TeXLeaf 内置或用户配置的 Snippet;
  • 从 TeXLeaf article/Beamer 模板创建文档;
  • 使用公式预览、结构化表格、交换图、引用、Zotero 或 AI 检查功能;
  • 通过 TeXLeaf 与 LaTeX Workshop 编译 PDF;
  • 把生成的论文、幻灯片、bibliography 或 PDF 交给期刊、学校、客户或公众。

这些用户文档可以由作者按照自己的需要选择许可证,包括保留全部权利、期刊投稿条款、Creative Commons 或其他安排。用户不需要因为模板里存在通用导言、定理环境或 Snippet 展开结果,就在论文首页、致谢或参考文献中强制添加 TeXLeaf。

输出例外不允许把 TeXLeaf 自己的模板库或 Snippet 库作为一个软件/素材库抽出后闭源再发行。判断方法是:

  • 用户文档:为了表达用户自己的论文、演示、笔记或 bibliography 而生成的最终内容,适用输出例外;
  • 库的再分发:把 TeXLeaf 模板、Snippet 集合、运行代码或实质修改后的同类工具作为可复用软件资源交给别人,仍需遵守 GPLv3 与 NOTICE;
  • 第三方素材:如果用户主动加入了另有许可证的图片、字体、代码或文本,仍由对应素材的许可证决定,TeXLeaf 的输出例外不能替它重新授权。

第三方组件

TeXLeaf 的 GPLv3 只覆盖 TeXLeaf 项目有权授权的材料。CodeMirror 6、MathJax、字体、JSONC 解析器和其他依赖继续使用各自许可证;GPL 不会把这些独立组件原有的 MIT、Apache 或其他许可证文字改掉。

再分发者必须同时满足:

  • TeXLeaf 主体的 GPLv3 与 NOTICE;
  • 每个实际分发的第三方组件的许可证和版权声明;
  • 修改版自己引入的新依赖或素材的许可证。

实际打入官方 VSIX 的清单以 THIRD_PARTY_NOTICES.md、licenses/、锁文件和最终归档检查为准。

PR 与贡献

向 TeXLeaf 提交代码、测试、文档或其他可受版权保护的贡献前,贡献者应确认自己有权提交。被项目接受的贡献将按适用于项目主体的 GPL-3.0-only 与 NOTICE 条款提供;贡献者不应提交与这些条款不兼容、来源不明或无法保留完整许可证的内容。

项目维护者没有编程背景,功能实现和审查主要借助 AI 工具完成,因此“PR 已打开”不表示项目能够及时完成版权来源、许可证兼容、功能或安全审查。详见 支持 TeXLeaf 与 开发与发布。

常见问题

普通用户安装官方版,需要在论文里引用 TeXLeaf 吗?

不需要。仅仅安装和运行软件不会产生在论文、幻灯片或社交媒体中署名的要求;当然,自愿推荐或引用项目仍然非常感谢。

可以把 TeXLeaf 用于公司、付费课程或商业论文吗?

可以。GPLv3 不禁止商业用途。只有在向他人分发 TeXLeaf 或衍生软件时,才需要重点检查源码、许可证、修改标记和署名义务。

可以收费出售修改版吗?

可以收费,但接收者仍必须获得 GPLv3 保障的权利和对应源码,且规定署名、修改标记和第三方声明都不能删除。

可以做闭源 fork 吗?

可以私下修改而不分发;一旦向他人分发 GPL 覆盖的修改版或衍生作品,就不能用闭源条款剥夺接收者的 GPLv3 权利。

必须在启动界面显示 TeXLeaf 吗?

不强制启动弹窗或水印。保留 NOTICE,并在 README、About、Credits 或 Legal Notices 中提供清楚、可访问的规定署名即可。

只复制少量代码是否适用?

许可证是否适用于某段复制内容取决于版权意义上的实质性、具体代码和司法辖区,不能只凭行数下结论。来源不确定时,最安全的做法是保留许可证与署名,或重新独立实现并记录来源边界。

能否只写“受到 TeXLeaf 启发”而不保留链接?

如果实际复制、修改或分发了 TeXLeaf 覆盖的代码,仅写模糊的“受到启发”不足以代替 NOTICE 规定的项目名称、原作者和原仓库地址。

1.2.1 实际嵌入的 quiver 与 KaTeX

这里实际嵌入了 q.uiver.app / varkor/quiver 1.7.0 的代码,上游提交为 2f289ecbae9b7e5a473e04b924750c538ed5c4cf,原作者版权为 Copyright (c) 2018 varkor,使用 MIT License。TeXLeaf 维护本地汉化与集成补丁,并保留 quiver 和 KaTeX 0.18.1 的原许可证;这是实际代码集成,不只是交互参考。

quiver 的原许可证随源码保存在 vendor/quiver/LICENSE,发行包保存在 dist/quiver/LICENSE;KaTeX 的原许可证分别为 vendor/quiver/KaTeX/LICENSE 和 dist/quiver/KaTeX/LICENSE,版权为 Copyright (c) 2013-2020 Khan Academy and other contributors。固定来源与本地补丁说明同时随 UPSTREAM.md 提供。根目录 GPL-3.0-only、NOTICE 合理署名及用户文档输出例外完整保留,第三方原许可证继续适用。

相关页面

Clone this wiki locally