Skip to content

Scripst v1.1.2 Release 🎉

Latest

Choose a tag to compare

@An-314 An-314 released this 18 Aug 08:36
· 1 commit to main since this release

Scripst 1.1.2 正式版 Release Notes 🎉

Scripst 是一套简洁、灵活的文档模板,适用于文章、报告、书籍、作业、笔记和论文等场景。

🚀 更新内容(与 1.1.1 相比)

🔥 新特性

  • 引入 Ratchet:计数器的注册、重置、编号生成与引用现在统一交由 Ratchet 管理,大幅简化了 Scripst 内部的计数逻辑
  • 独立调整 countblock 深度
    • 支持通过 cb-counter-depth 设置所有 countblock 的默认编号深度
    • 支持通过 set-countblock-depth 单独调整某一类 countblock
    • 支持使用 detach: true 将共享计数器的块拆分为独立计数器
    • add-countblock 新增 depth 参数,可在创建块时直接指定编号深度
  • 自定义 countblock 集合:新增 countblocks 参数,可将扩展后的 countblock 配置一次性交给 scripst
  • 编号格式接口
    • 新增 matheq-outline,控制数学公式编号格式
    • 新增 counter-outline,控制图片、表格和 countblock 的编号格式
    • 新增 numbering-formatchapter-numbering-format,分别控制标题和章标题的编号样式
    • 新增 offset,用于调整标题编号起始偏移
  • 颜色接口
    • 新增 matheq-colorcounter-color
    • 新增 link-color,控制普通超链接颜色
    • 新增 ref-color,控制 @label 引用颜色
  • 标题格式扩展:标题编号现在支持字符串或函数形式,可实现更灵活的编号样式
  • 数学环境改进:新增 cases 辅助函数,使分段公式中的内容保持 display mode
  • 依赖更新physica 更新至 0.9.8

🐛 Bug 修复

  • 修复数学公式编号缺少括号的问题
  • 修复跨章节时公式、图片、表格及 countblock 引用编号不正确的问题
  • 修复 Ratchet 状态锚点可能导致 article 或 main 文档开头出现空白页的问题
  • 修复不同 countblock 共享计数器时可能产生深度不一致的问题
  • 增加 countblock 注册、深度和参数类型检查,错误信息更加明确
  • 修复 countblock 无法跨页的问题:将 Ratchet 使用的 figure 调整为不占版面的计数与引用锚点,使实际块内容可以正常分页
  • 修复 Typst Universe package-check 提出的 README 警告,并将 tablem 更新至 0.3.0

🎨 样式优化

  • 重新设计 countblock 的标题区域、背景透明度、间距和圆角
  • 优化 blankblock 的背景、内边距和圆角
  • 改进公式、引用和超链接的默认配色
  • 更新文章、报告、书籍及英文文档的预览图片
  • 重新生成适用于 Typst Universe 的 thumbnail

📄 文档更新

  • 完整列出默认 countblock 的名称、深度、颜色和调用函数
  • 新增全局调整、单独调整及拆分 countblock 深度的说明
  • 新增创建自定义 countblock 的完整示例
  • 补充 Ratchet 的工作原理、使用方式及扩展示例
  • 更新中英文 README、在线文档和示例 PDF

主要改进

更简单的计数管理:不再需要手动注册和重置每一类计数器
更灵活的 countblock:不同块可以使用不同编号深度,也可以共享或拆分计数器
更统一的编号系统:公式、图片、表格和自定义块均由 Ratchet 管理
更丰富的样式接口:编号格式、标题格式、链接颜色和引用颜色均可配置
向后兼容:原有的 reg-countblockreg-default-countblock 接口仍然保留为兼容入口


🛠️ 如何使用 Scripst

#import "@preview/scripst:1.1.2": *

#let blocks = set-countblock-depth(cb, "thm", 3)
#let blocks = set-countblock-depth(blocks, "rmk", 1, detach: true)
#let blocks = add-countblock(
  blocks,
  "alg",
  "算法",
  yellow,
  depth: 2,
)

#show: scripst.with(
  title: [示例文档],
  author: ("作者 1", "作者 2"),
  countblocks: blocks,
  matheq-depth: 2,
  matheq-outline: "(1.1)",
  counter-outline: "1.1",
  link-color: blue,
  ref-color: red,
)

= 第一章

#theorem[这是一个定理。] <example-theorem>

#countblock("alg", blocks)[
  这是一个自定义算法块。
]