Typst set 规则与 show 规则:3 步上手的完整指南
【免费下载链接】typstA markup-based typesetting system that is powerful and easy to learn.项目地址: https://gitcode.com/GitHub_Trending/ty/typst
改了第一页的标题,后面十页的版式全跟着跑。做文档的人都遇到过:Typst 的set 规则与 show 规则一个管属性配置,一个管渲染逻辑,分不清边界,样式一改就整篇跑版。
一个类比看懂 Typst 样式控制
把 Typst 想成一家印刷厂。set 规则是控制面板上的旋钮:字号、页边距、对齐方式,拧一下,机器照常印,只是参数变了。show 规则是整块模具换掉:原来印出来什么样不管了,新模具压出什么就是什么。
调参数和换模具,是两个量级的操作。后面所有用法,都从这句话里长出来。
三步上手 Typst 全局样式设置与标题自定义
拿一份课程讲义练手,三步走完 set 与 show 的配合。
实验 1:用 set 配全局基础样式
#set page(paper: "a4", margin: 2.2cm) #set text(font: "Source Han Serif", size: 10.5pt) #set par(justify: true)三行 set 下去,整篇讲义就是 A4 纸、衬线字体、两端对齐。旋钮拧好,机器开工。
实验 2:块级作用域局部覆盖
#box(width: 100%, inset: 8pt, fill: lightgray)[ #set text(size: 9pt, color: darkblue) 本节要点:只有这一块变小、变蓝 ]set 只在方括号作用域内生效,出了块就回到全局值。讲义里给要点框单独换色,靠的就是这个。
实验 3:用 show 做 Typst 标题自定义
#show heading.where(level: 1): it => block(width: 100%, fill: navy)[ #set align(center) #text(fill: white)[#smallcaps(it.body)] ]一级标题变成深蓝底、白字、居中的小型大写,二级及以下标题原样不动。拧旋钮做不到这点,只能把标题的印刷模具整个换掉。
set 与 show 选型一张表
| 使用场景 | 推荐规则 | 一句话理由 |
|---|---|---|
| 页面尺寸、字号、页边距 | set | 属性有现成旋钮 |
| 全局字体、段落对齐 | set | 一处配置全篇生效 |
| 重写标题长相 | show | 改结构只能换模具 |
| 不同级别标题不同样 | show | 按条件走不同模具 |
| 元素变成另一种组件 | show | 输出输入不是一类东西 |
口诀就一句:能拧旋钮的用 set,拧不动的才上 show。
避坑清单 ⚠️
- 症状:#set heading(numbering: "1.") 和 #show heading 都写了,编号不显示。→ 原因:show 优先于 set,渲染被重定义后,编号进不了新模具。→ 解法:用了 show,就在 show 里把编号和样式一起写全。
- 症状:只想改一章字号,整篇文档跟着变。→ 原因:set 写在顶层,作用域漏到全文。→ 解法:把 set 收进 #box 这类块里限定作用域。
- 症状:set 写在段落后面,那段没变样式。→ 原因:set 只影响同作用域内它之后的内容。→ 解法:把 set 挪到内容上方。
- 症状:十几个 show 堆满全文,改一处崩一片。→ 原因:能用旋钮解决的事动了模具。→ 解法:默认 set,拧不动才上 show。
先拧旋钮,再换模具,样式就不会跑。想继续练手,可以看官方教程的高级样式章节。
【免费下载链接】typstA markup-based typesetting system that is powerful and easy to learn.项目地址: https://gitcode.com/GitHub_Trending/ty/typst
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考