主页 · 2
页面与布局:盒子、网格与浮动
用 Xuan 从零学 Typst 第 6 篇:我用 Typst 0.15.1 编译了 ch06 的 6 个 lab 文件和十几个临时实验,实测 fr 怎样分配剩余空间、弱间距怎样折叠、float 怎样改变正文流,再把纸张、边距和标题块收进 @local/xuan:0.1.0 的 page.typ。
字体与中文排版
用 Xuan 从零学 Typst 第 5 篇:我用 Typst 0.15.1 和 Noto CJK 可变字体编译了 ch05 的 6 个 lab 文件,量出 cjk-latin-spacing 开关相差 12 pt,查清字体列表按字符回退、0.15 的 variations 与 PDF 里 ExtraLight 字体名的来历,再把结论收进 xuan 的 fonts.typ 和 cjk.typ。
set 与 show:样式是规则,不是命令
用 Xuan 从零学 Typst 第 4 篇:我用 Typst 0.15.1 编译了 ch04 的 6 个 lab 文件和一批临时实验,弄清 set、show、选择器和 numbering 各自管什么,再把它们收进本地包 @local/xuan:0.1.0 的 base 与 note 模板,让 #show: note.with(...) 一行排出带目录的 A4 笔记。
函数与 content:一切都是函数调用
用 Xuan 从零学 Typst 第 3 篇:我用 Typst 0.15.1 写了命名参数、..args、闭包和 .with,亲手触发了“外部变量只读”的编译错误,打印出 [*a* b] 的 content 树,再据此写出 xuan 的第一个模块 util.typ 和它的 assert 测试。
代码模式:值、类型与控制流
用 Xuan 从零学 Typst 第 2 篇:我用 Typst 0.15.1 的 typst eval 和 6 个实验文件把代码模式逐项撞了一遍,量出两个汉字的 len() 是 6 而 clusters 只有 2,撞出字符边界和类型错误,并亲手触发 assert、assert.eq 与 panic 看真实报错。
第一份文档:标记语法、编译与 watch
用 Xuan 从零学 Typst 第 1 篇:我在 Typst 0.15.1 里编译了四份成品文档,用同一份 8 节、30 个公式、5 张表的中文文档对比 Typst 与 latexmk(226 ms 对 3.131 s,快 13.85 倍),并亲手跑了 compile、watch、fonts 和 --root,把标记语法与三种模式逐条编译了一遍。
18.06 第 34 讲:期末复习
MIT 18.06 第 34 讲的配套笔记:我用 Python 3.13 和 NumPy 2.4 把 Strang 期末复习课上的每道题都算了一遍,Markov 矩阵从 (0, 10, 0) 出发迭代 10 步,离稳态 (3, 3, 4) 只剩 7.24e-07。
18.06 第 33 讲:左逆、右逆与伪逆
MIT 18.06 第 33 讲的配套笔记:我用 Python 3.13 和 NumPy 2.4 手写了左逆、右逆和基于 SVD 的伪逆,在一个秩 2 的 4 × 3 矩阵上加了 1e-12 的噪声后,朴素的 (AᵀA)⁻¹Aᵀ 与 A⁺ 差了 9.23e+02,截断小奇异值的伪逆只差 7.10e-13。
18.06 第 32 讲:第三次测验复习
MIT 18.06 第 32 讲的配套笔记:我用 Python 3.13 和 NumPy 2.4 把 Strang 复习课里的反对称矩阵、特征值判断题、SVD 的符号问题和“对称又正交”的真假题逐一验证,SVD 的 U 有 4 种符号选法,只有 1 种能还原 A。
18.06 第 31 讲:基变换与图像压缩
MIT 18.06 第 31 讲的配套笔记:我用 Python 3.13 和 NumPy 2.4 在 Haar 小波基下压缩一张合成的 64 × 64 灰度图,只存 516 个数,相对误差 0.0142,同样存储量的 SVD 低秩近似是 0.0795。











