Skip to content

v1.0.6 —— PDF 带上版本与提交印记

Choose a tag to compare

@mypopydev mypopydev released this 28 Sep 01:44
· 21 commits to master since this release

v1.0.6 —— PDF 带上版本与提交印记

《向量》中文译本的第 6 个修订版。正文内容相对 v1.0.5 无变化,本版只做一件事:让每一份 PDF 自己说得出自己是谁。

为什么要做

PDF 一旦离开仓库就没有来源信息。此前 dist/vector-cn.pdf 里除了正文没有任何版本痕迹——v1.0.0–v1.0.5 六个 Release 的附件字节数各不相同,下载下来却看不出是哪一版,也没法判断是不是从干净的工作区构建的。

现在 tools/build_pdf.py 在构建时取 git describe --tags --always 与短 commit,烧进 PDF:

  • 扉页(原「日期」那一行):译本版本 v1.0.6,git f7932ba,2026-09-28
  • PDF 元数据(pdfinfo 或阅读器的「属性」里可直接看到):
    Subject:  vector-cn v1.0.6 (f7932ba) built 2026-09-28
    Keywords: vector-cn; v1.0.6; f7932ba
    Creator:  tools/build-pdf.py
    
  • dist/build-report.json 新增 version / commit / dirty 三个字段
  • 源(dist/ 之外)有未提交改动时,扉页追加「(含未提交改动)」、元数据标 dirty——拿到 PDF 就能看出它不是从干净提交构建的

实现上的两个坑

  • 元数据用 \AtBeginDocument 包住 \hypersetup:pandoc 模板自己的 \hypersetup 排在 header-includes 之后,直接写会被覆盖掉
  • 元数据串保持纯 ASCII:中文进 pdfstring 会被转义成一串八进制,pdfinfo 里看不出是什么;下划线会被吞掉(build_pdf.py 会显示成 buildpdf.py)
  • dirty 判定排除 dist/:dist 是构建脚本自己的产物,用 git describe --dirty 的话每次构建必然变脏,每份 PDF 都会印「含未提交改动」,等于没有信息量

版本系列质量状况

四轮复核已全部闭环,无遗留待定项。

轮次 主题 主要收获
一 全文逐段精读 严重 6 / 中等 62 / 轻微 92
二 四项盲区(前附件 / 图注 / 交叉引用 / 机械项) 严重 1(序言图注编号重复,已修)
三 回归复核 + 精炼度量化 16 处回归新错;232 条候选甄别出 19 条真翻译腔
四 索引词头 / 强调标记 / 英文残留 / 逐句精读 / 公式说明 索引 3 处张冠李戴;严重 1 + 中等 28
  • 校验:九道自动化守卫(structure / math / terms / fidelity / refs / style / emphasis / residue / baseline),严重项全 0
  • 术语表 443 条;汉字 263,934

关于本译本

个人学习与交流用途的非商业翻译。原书的文字、插图与版式之著作权归原作者及原出版社所有,本译本不主张任何权利。如权利人提出异议,译者将立即停止传播。

网页版:https://mypopydev.github.io/books/vector-zh/

附件

  • vector-cn.pdf —— A4 330 页,含 57 幅插图、353 条注释与 636 条索引(索引沿用原版页码以便回查)。扉页与元数据均带本版印记。

注:v1.0.0–v1.0.5 的附件是该版本发布时的 PDF 原样存档,不含版本印记(这项功能从本版才加入)。


完整变更:v1.0.5...v1.0.6


⚠️ 关于本版附件的版本印记

本版附件是在打 tag 之前构建的,因此 PDF 扉页与元数据里的印记显示为「上一版号 + 提交偏移量」、并带一句「含未提交改动」——这两点都是构建顺序与判定口径造成的,正文内容与 v1.0.6 完全一致(附件就是该 tag 树中的 dist/vector-cn.pdf)。

  • 印记显示成「上一版号」:构建时 git describe 还取不到本版 tag(正确做法是先打 tag、再从 tag 重建,v1.0.9 起已照此执行);
  • 「含未提交改动」是误报:当时的判定把校验脚本生成的 review/*.md 报告也算作了源改动(同一根因已于 v1.0.9 修正,现在只看真正参与构建的 cn-book/ 与 tools/)。

本项目不对已发布的附件做字节替换,故本版附件保持原样,仅在此说明其印记的实际含义。