更新日志
注:本页面由 ChatGPT 辅助翻译,可能会有错漏。
版本 0.10.0(2023年12月4日)
-
参考文献管理
- 添加了对引用合并的支持(例如
[1]-[3]
而不是[1],[2],[3]
),如果由 CSL 样式请求 - 修复了一组引用之后会出现额外空格的错误
- 修复了参考文献中链接的显示规则
- 修复了对引用的显示设置规则
- 修复了在某些系统上发生的与参考文献相关的崩溃
- 更正了 GB/T 7714 系列样式的名称,从 7114 更正为 7714
- 修复了某些参考文献样式中缺少标题的问题
- 修复了某些样式中卷的打印问题
- 修复了某些样式中贡献者分隔符的顺序问题(例如 APA)
- 修复了字母数字样式的行为
- 修复了 GB/T 7714 样式的多个错误
- 修复了 Hayagriva 值中的转义问题
- 修复了 Hayagriva 文件中空日期导致的崩溃
- 修复了数学块周围的间距问题
- 修复了在 verbatim 文本和撇号之后的标题大小写格式问题
.bib
文件中的页面范围现在可以是任意字符串.bib
文件中的多行值现在被正确解析.bib
文件中的条目键现在允许更多字符- 修复了对空日期在
.bib
文件中的错误消息 - 添加了对
.bib
文件中无前导零的长度年份的支持 .bib
文件中现在尊重更多 LaTeX 命令(例如引号)
- 添加了对引用合并的支持(例如
-
可视化
-
文本和布局
- CJK 文本现在即使没有空格也可以使用
*
和_
语法强调 - 为希腊语和爱沙尼亚语添加了基本的国际化支持
- 改进了中文、法文和俄文的默认 图题分隔符
- 将俄文的默认 图题补充 更改为短形式
- 修复了在 CJK-Latin-spacing 和
locate
调用中的行尾断行 - 修复了链接末尾的断行问题
- CJK 文本现在即使没有空格也可以使用
-
数学
-
脚本
- 现在,任何非标识符的字典键都被解释为表达式:例如
((key): value)
将创建一个带有动态键的字典 stroke
类型现在有一个构造函数,可以将值转换为描边或根据其部分创建描边- 为
arguments
类型添加了构造函数 - 添加了
calc.div-euclid
和calc.rem-euclid
函数 - 修复了
arguments
的相等性 - 修复了
color.cmyk
颜色的repr
- 现在,任何非标识符的字典键都被解释为表达式:例如
-
工具和诊断
- 现在,匹配其自身输出的显示规则将生成适当的错误消息,而不是崩溃(这是第一步,在将来它们将正常工作)
- 现在,过于嵌套或无限嵌套的布局将生成错误消息,而不是崩溃
- 为无效标识符添加了提示
- 尝试使用手动构建的脚注或大纲条目时添加了提示
- 对类型的自动完成添加了缺失的详细信息
- 在传递命名参数而期望位置参数时,改进了错误消息
- 现在,在原始块上单击可以跳转
-
导出
-
命令行界面
- 修复了
typst watch
会混淆文件并未能捕捉更新的重大错误 typst update
中的发布元数据获取现在尊重代理- 修复了在路径中包含空格时 Windows 上
--open
标志的错误 TYPST_FONT_PATHS
环境变量现在可以包含多个路径(在 Windows 上用;
分隔,在其他地方用:
分隔)- 将嵌入的 New Computer Modern 字体更新到版本 4.7
- 当主文件包含无效 UTF-8 时,监视进程不再停止
- 修复了
-
杂项改进
- 并行化 PDF 导出中的图像编码
- 改进了用于提高性能的内容的内部表示
- 优化了内省(查询、计数等)性能
- 文档标题 现在可以是任意内容,而不仅仅是字符串
- 编号列表上的
number-align
参数现在也接受垂直对齐 - 修复了 引用 元素上的选择器
- 修复了在标记中解析
#return
表达式的问题 - 修复了内联方程显示在方程大纲中的问题
- 修复了
raw
块中的潜在 CRLF 问题 - 修复了中文编号无法超过数字 255 的错误
-
开发
- 合并了
typst
和typst-library
,并将typst-pdf
、typst-svg
和typst-render
提取到独立的 crate 中 - Nix flake 现在在运行
typst --version
时包含 git 修订版本
- 合并了
版本 0.9.0(2023年10月31日)
-
参考文献管理
- 基于 CSL(引文样式语言)的新参考文献引擎。
集成了约100种常用引文样式,并可加载自定义的
.csl
文件。 - 在
cite
函数中添加了新的form
参数,以生成不同形式的引文 (例如,用于嵌入散文的引文形式)。 cite
函数现在仅接受单个标签/键,不再支持多个。 相邻的引文会根据引文样式的规则自动合并和格式化。 这在引用语法和对cite
函数的显式调用中都有效。(重大变更)cite
函数现在接受 label 而不是字符串(重大变更)- 在参考文献函数中添加了
full
参数, 以便即使没有引用所有作品也能打印完整的参考文献列表 - 现在,参考文献条目可以包含 Typst 方程(用
$..$
包裹,与标记语言中一样), 这适用于.yml
和.bib
参考文献 - 改进了 hayagriva YAML 格式。详见其 变更日志获取更多详细信息。(重大变更)
- 修复了
.bib
文件解析的一些错误 - 在
cite
函数中删除了brackets
参数,改用form
- 基于 CSL(引文样式语言)的新参考文献引擎。
集成了约100种常用引文样式,并可加载自定义的
-
可视化
-
文本和布局
- 添加了自动在 CJK 和拉丁文本之间添加适当的 间距 的支持(默认启用)
- 添加了对更多 CJK 标点的自动调整支持
- 添加了
quote
元素,用于插入行内和块引用,可选择性地附带归属信息 - 添加了
raw.line
元素,用于定制单行原始文本的显示, 例如,添加行号同时保持适当的语法高亮 - 在表格函数中添加了对每一侧的 插图 定制的支持
- 添加了匈牙利语和罗马尼亚语的翻译
- 添加了捷克语断词的支持
- 添加了设置自定义 智能引号 的支持
- 默认的 图例分隔符 现在会根据当前设置的语言和区域做出反应
- 改进了链接/URL的断行(对于具有许多URL的参考文献特别有用)
- 改进了两个连字符在对齐算法中的处理
- 修复了两个对齐和悬挂缩进的交互问题
- 修复了启用对齐时短行没有空格时的断行问题
- 修复了由连字符生成的连字符在字体回退中的问题
- 在断字期间修复了字接合器和其他不换行字符的处理
- 在空行后断字时修复了崩溃的问题
- 修复了类似 🏳️🌈 的复合表情符号的断行问题
- 修复了一些SVG中缺失的文本
- 修复了SVG中的字体回退问题
- 修复了
to
函数对pagebreak
函数的参数的行为 - 修复了方程中的
set align(..)
行为 - 修复了 placed 元素周围的间距
- 修复了
above
和below
间距的合并问题,如果以em单位给出且字体大小不同 - 修复了
underline
、overline
和strike
函数中extent
参数的处理 - 修复了 float 元素没有指定垂直对齐时的崩溃
- 部分修复了脚注中引文的错误
-
数学
- 为
vec
、mat
和cases
函数添加了gap
参数 - 为
abs
、norm
、floor
、ceil
和round
函数添加了size
参数 - 在 cases 函数中添加了
reverse
参数 - 为
binom
函数添加了对多项式系数的支持 - 在
cancel
函数中删除了rotation
参数,改用新的更灵活的angle
参数(重大变更) - 添加了
wide
常量,它插入两倍于quad
的间距 - 添加了
csch
和sech
运算符 ↼
、⇀
、↔
和⟷
现在可用作 重音- 添加了
integral.dash
、integral.dash.double
和integral.slash
符号 - 添加了为 增广 行指定负索引的支持,以从后面定位行
- 修复了矩阵 增广 行的默认颜色
- 修复了附加到行内表达式的素数的问题
- 数学内容现在遵循文本 基线 设置
- 为
-
性能
- 修复了与模板中显示规则相关的错误,这将有效地禁用受影响文档中的增量编译
- 在几个热点路径上进行了微优化,带来了相当大的性能提升,尤其是在增量编译中
- 改进了增量解析,影响整个增量编译流程
- 在 CLI 中添加了对增量解析的支持
- 在 PDF 导出期间添加了对增量 SVG 编码的支持,这大大提高了对包含许多SVG的文档的导出性能
-
工具和诊断
- 改进了在作用域内的变量的自动补全
- 添加了对包导入的自动补全
- 添加了对 labels 的自动补全
- 添加了显示函数捕获的变量的工具提示(在悬停在函数的等号或箭头上时)
- 诊断现在被去重
- 在尝试将仅支持二进制
+
和-
的类型应用到一元+
或-
时改进了诊断 - 错误消息现在会说明文档或其参考文献中缺少哪个标签或引文键
- 修复了函数参数解析错误被函数执行错误遮蔽的错误(例如,尝试调用
array.sorted
时, 将键函数作为位置参数而不是命名参数传递)
-
导出
-
Web 应用
- 添加了版本选择器,以将项目固定到较旧的编译器版本(支持 Typst 0.6.0+)
- 修复了编辑器和编译器之间的不同步,并提高了整体稳定性
- 在文档编译时,应用程序现在会继续突出显示文档,即使在键入时
-
命令行界面
- 添加了通过 fontconfig 发现字体的支持
- 现在在清屏而不是重置终端时清除屏幕
- 在选择输出格式时现在会自动选择正确的文件扩展名
- 使用
typst watch
时,只在更改的页面中重新生成 PNG 或 SVG 图像
-
杂项改进
- 添加了
version
类型和sys.version
常量,指定当前编译器版本。可用于优雅地支持多个版本。 - 在显示数字值时,现在使用 U+2212 减号符号,以及在文本模式下在数字前的普通连字符的位置。 这在特别是改善了负整数值在数学模式中的显示。
- 添加了在 array 和 dictionary 的
remove
函数中 指定默认值而不是失败的支持 - 简化了页面设置指南示例
- 在适当的地方,将文档从使用 "hashtag" 改为使用 "hash"
- 添加了无需其他参数即可使用的
array.zip
- 修复了插件尝试读取超出界限内存时的崩溃
- 修复了处理无限 长度 时的崩溃
- 由于文档接近结尾的弱分页,修复了内省(主要是参考文献)错误
- 添加了
-
开发
- 将
typst::ide
提取到独立的typst_ide
crate 中 - 移除了对
&dyn World
上的一些残余'static
限制 - 移除了不必要的依赖,减小了二进制文件大小
- 修复了仅编译
typst
本身(没有typst-library
)时的问题 - 修复了使用
lib.getExe
时在 Nix flake 中的警告
- 将
版本 0.8.0(2023年9月13日)
-
脚本
- 插件(感谢 @astrale-sharp 和 @arnaudgolfouse)
- 类型现在是一等值(破坏性更改)
- 添加了使用
as
重命名的import
支持 - 添加了
duration
类型 - 添加了 CBOR 编码和解码的支持
- 添加了与数据格式的字节编码和解码函数相关的功能:
json.decode
、json.encode
等 - 添加了
array.intersperse
函数 - 添加了
str.rev
函数 - 添加了
calc.tau
常量 - 使 bytes 可连接和可相加
- 使
array.zip
函数变为可变元的 - 修复了当
mode
设置为"math"
时eval
的错误 - 修复了字符串的
ends-with
函数的错误 - 修复了解构与 break、continue 和 return 结合使用时的错误
- 修复了双曲线函数的参数类型,它们不再接受角度了(破坏性更改)
-
导出
- 添加了 SVG 导出(感谢 @Enter-tainer)
- 修复了 PDF 字体嵌入的错误
- 添加了支持页面标签的功能,反映在 PDF 中的页码编号样式
-
文本和布局
- 添加了
highlight
用于文本高亮的功能 - 添加了
polygon.regular
用于绘制规则多边形的功能 - 添加了在
raw
元素中支持制表符的功能,同时伴随着tab-width
参数 - 布局引擎现在会尽量避免产生 "runts"(最后一行只有一个单词)
- 添加了芬兰语翻译
- 为波兰语添加了断字支持
- 改进了不同类型智能引号的连续处理
- 修复了页面函数上的
number-align
参数的垂直对齐(破坏性更改) - 修复了计数更新后弱页面断页
- 修复了当文本字体设置为 "New Computer Modern" 时,SVG 中文本缺失的问题
- 修复了中文的翻译问题
- 修复了在显示规则中的空文本导致崩溃的问题
- 修复了数字和逗号之间有换行符时的前导空格
- 修复了在列和其他容器中浮动元素的位置
- 修复了只包含单个方块的块的大小
- 添加了
-
数学
-
工具和诊断
- 在尝试调用存储在字典中的函数时,现在会给出提示,提示需要额外的括号
- 在引用未编号方程式时,现在会给出提示
- 为某些诊断添加了更多细节(例如 SVG 解码失败时)
-
命令行界面
- 添加了
typst update
命令以自动更新 CLI (感谢 @jimvdl) - 添加了包和更新的下载进度指示器
- 添加了
--format
参数以明确指定输出格式 - CLI 现在通过环境变量尊重代理配置,并具有新的
--cert
选项来设置自定义 CA 证书 - 修复了字段不存在时,传递
--one
给typst query
会导致崩溃的问题
- 添加了
-
其他改进
- 添加了页面设置指南
- 添加了
figure.caption
函数,可用于更简单的图题自定义(破坏性更改,因为it.caption
现在在图表显示规则和手动大纲中呈现完整的图题与补充) - 将
caption-pos
参数移动到figure.caption
函数中,并将其重命名为position
(破坏性更改) - 为
figure.caption
函数添加了separator
参数 - 添加了组合和/或和之前/之后的选择器支持
- 包现在可以指定它们所需的最小编译器版本
- 修复了标记中方法调用可以移到它们自己的行中的解析器错误(在标记中继续工作)
- 修复了参考文献的句子和标题大小写转换中的错误
- 修复了字母数字和作者-标题参考文献样式的补充
- 修复了 APA 参考文献样式中的 off-by-one 错误
-
开发
- 使
Span
和FileId
更具类型安全性,以便World
的实现者必须处理所有错误条件
- 使
Version 0.7.0(2023年8月7日)
-
文本和布局
- 通过图像函数的
placement
参数添加了对浮动图像的支持 - 通过放置函数的
float
参数添加了对任意浮动内容的支持 - 添加了加载
.sublime-syntax
文件作为原始块的高亮 语法 的支持 - 添加了加载
.tmTheme
文件作为原始块的高亮 主题 的支持 - 为文本函数的
top-edge
和bottom-edge
参数添加了_bounds_
选项,用于创建紧密边界框 - 移除了无意义的
top-
和bottom-edge
选项,例如底部边缘的 ascender (破坏性更改) - 为文本函数添加了
script
参数 - 为智能引号函数添加了
alternative
参数 - 添加了日语的基础国际化支持
- 除了
no
外,还添加了对nb
和nn
语言代码的断词支持 - 修复了容器中 放置元素 的定位问题
- 修复了因优化的换行而导致容器溢出的问题
- 通过图像函数的
-
导出
- 大幅改进了将 SVG 图像导出为 PDF 的功能。非常感谢 @LaurenzV 在此方面的工作
- 在 PDF 导出中添加了对 RGBA 颜色的 alpha 通道的支持
- 修复了 PNG 导出中 PPI(每英寸像素数)的错误
-
数学
- 改进了素数的布局(例如在
$a'_1$
中) - 改进了多重素数的显示(例如在
$a''$
中) - 改进了 根 的布局
- 默认情况下,将关系改为默认显示为 限制(例如在
$a ->^x b$
中) - 大型运算符和分隔符现在始终垂直居中
- 方程中的 方框 现在默认坐落在基线上,而不是垂直居中。值得注意的是,这不会影响 块,因为它们不是内联元素。
- 添加了 弱间距 的支持
- 添加了 OpenType 字符变体的支持
- 添加了自定义内容的 数学类别 的支持
- 修复了
.
,\/
, 和...
周围的间距问题 - 修复了闭合分隔符与大型运算符之间的间距问题
- 修复了数学字体重量选择的错误
- 符号和运算符(破坏性更改)
- 添加了
id
、im
和tr
文本 运算符 - 将
ident
重命名为equiv
,并添加别名eq.triple
,并移除了ident.strict
,改用eq.quad
- 将
ast.sq
重命名为ast.square
,将integral.sq
重命名为integral.square
- 将
.eqq
修饰符重命名为.equiv
(并将.neqq
重命名为.nequiv
),用于tilde
、gt
、lt
、prec
和succ
- 添加了
emptyset
作为nothing
的别名 - 添加了
lt.curly
和gt.curly
作为prec
和succ
的别名 - 添加了
aleph
、beth
和gimmel
作为alef
、bet
和gimel
的别名
- 添加了
- 改进了素数的布局(例如在
-
脚本
-
工具和诊断
- 添加了对编译器警告的支持
- 当编译由于强烈使用内省功能而在五次尝试内不收敛时,添加了警告
- 对空强调 (
__
和**
) 添加了警告 - 改进了无效字段分配的错误消息
- 改进了单个
#
后的错误消息 - 当关键字用于期望标识符的位置时,改进了错误消息
- 修复了模块中的函数的参数自动补全
- 现在,导入自动补全仅在键入冒号之前显示最新的包版本
- 修复了包含空格的字典键的自动补全
- 修复了 for 循环的自动补全
-
命令行界面
- 添加了
typst query
子命令,用于在命令行上执行查询 - 不再支持在命令之前使用
--root
和--font-paths
参数(破坏性更改) - 现在,本地和缓存的包存储在形式为
namespace}/{name}/{version}
的目录中,而不再是namespace}/{name}-{version}
(破坏性更改) - 现在,显式给定的字体(通过
--font-paths
)优先于系统和嵌入字体 - 修复了在某些文本编辑器中
typst watch
不起作用的问题 - 修复了显示的编译时间(现在包括导出)
- 添加了
-
其他改进
- 在标题中添加了
bookmarked
参数,用于控制标题是否成为PDF大纲的一部分 - 添加了
caption-pos
参数,用于控制图像标题的位置 - 添加了
metadata
函数,用于将任意值暴露给内省系统 - 修复了
state
被识别为(key, init)
对而不仅仅是其key
的问题 - 改进了 枚举 的缩进逻辑。现在,它们只需要比标记的起始缩进多一个空格缩进。因此,即使是长标记如
12.
也只需要 2 个空格缩进。 - 修复了
raw
块的缩进逻辑问题 - 修复了字典的解析问题
- 在标题中添加了
-
开发
- 将解析器和语法树提取到
typst-syntax
包中 - 如果 Typst 的依赖关系中有相同的 bug,则 Typst 依赖项的
World::today
实现可能需要修复
- 将解析器和语法树提取到
Version 0.6.0(2023年6月30日)
-
包管理
-
数学
-
文本和布局
-
命令行界面
- 破坏性更改: 添加了
--root
/TYPST_ROOT
目录必须包含输入文件的要求,因为它指定了 项目 根目录。现有设置中使用TYPST_ROOT
来模拟包管理的应更改为使用本地包 - 破坏性更改: 现在拒绝在项目根目录之外访问文件
- 添加了对本地包和按需包下载的支持
- 现在监视根目录和所有包内的所有相关文件
- 现在显示编译时间
- 破坏性更改: 添加了
-
其他改进
- 添加了
outline.entry
以自定义大纲条目与显示规则 - 为错误消息添加了一些提示
- 为
raw
高亮添加了一些缺失的语法 - 改进了在 PNG 导出和 Web 应用程序中渲染旋转图像的效果
- 使脚注可重复使用和可引用
- 修复了
locate
中的引用和参考文献的问题 - 修复了文档中时态不一致的问题
- 添加了
-
开发
- 添加了贡献指南
- 重新设计了
World
接口以适应包管理,并使其更简单实现(对于实现者的破坏性更改)
Version 0.5.0(2023年6月9日)
-
文本和布局
-
数学
-
脚本
- 添加了新的
datetime
类型和datetime.today
以获取当前日期 - 添加了
str.from-unicode
和str.to-unicode
函数 - 在内容上添加了
fields
方法 - 为
str
函数添加了base
参数 - 添加了
calc.exp
和calc.ln
- 改进了特定基数的
calc.pow
和calc.log
的精度 - 修复了字典的删除顺序
- 修复了字符串[$str.at]和内容[$content.at]的
.at(default: ..)
问题 - 修复了对带有样式元素的字段访问
- 移除了已弃用的
calc.mod
函数
- 添加了新的
-
命令行界面
- 通过
typst compile source.typ output-{n}.png
添加了PNG导出。如果文档有多个页面,则输出路径必须包含{n}
。 - 添加了
--diagnostic-format=short
以进行类似Unix的简短诊断 - 如果 stderr 不是 TTY,则不再发出颜色代码
- 当以不存在的文件调用时,现在设置了正确的退出状态
- 不再忽略Typst文件中的UTF-8 BOM
- 通过
-
其他改进
- 改进了不匹配分隔符的错误
- 改进了长度比较失败的错误消息
- 修复了在Apple Preview中图像未显示的问题
- 修复了PDF大纲的多个错误
- 修复了在
hide
中的引用和其他可搜索元素的错误 - 修复了Nix flake问题
-
文档
-
数学
- 破坏性更改:方程中的对齐点 (
&
) 现在在左对齐和右对齐之间交替 - 添加了对使用Unicode编写根号的支持:例如,
$root(x+y)$
现在也可以写成$√(x+y)$
- 修复了不均匀的垂直
attachment
对齐 - 修复了装饰元素的间距(例如,canceled运算符周围的间距)
- 修复了可伸缩符号的样式
- 添加了
tack.r.double
、tack.l.double
、dotless.i
和dotless.j
符号 - 修复了符号的显示规则(例如,
show sym.tack: set text(blue)
) - 修复了应该在之前版本中进行的从
ast.op
到ast
的重命名遗漏
- 破坏性更改:方程中的对齐点 (
-
脚本
- 添加了函数作用域:现在,函数可以在其自己的作用域中保存相关定义,类似于模块。例如,新的
assert.eq
函数是assert
函数作用域的一部分。请注意,目前仅内置函数支持函数作用域。 - 添加了
assert.eq
和assert.ne
函数,用于更简单的相等性和不等性断言,并提供更有帮助的错误消息 - 在它们各自的函数作用域中公开了 list、enum 和 term list 项目
- 在 strings、arrays、dictionaries 和 content 上的
at
方法现在支持指定默认值 - 添加了将函数传递给
replace
的支持,每次匹配时调用函数 - 修复了替换字符串:现在,它们被完全原样插入,而不再支持以前(不打算的)魔术美元符号语法来捕获组
- 修复了在解构模式中的尾随占位符问题
- 修复了参数解构中下划线的问题
- 修复了嵌套模式和在无效模式上悬停时的崩溃
- 在将类型转换为 integer 或 float 失败时提供更好的错误消息
- 添加了函数作用域:现在,函数可以在其自己的作用域中保存相关定义,类似于模块。例如,新的
-
文本和布局
-
导出
- 修复了PDF导出中的连字:它们现在可以复制和搜索
- 导出的PDF现在嵌入了具有ICC配置文件的图像
- 修复了零厚度笔画的导出
-
Web应用
- 项目现在可以包含文件夹
- 添加了通过拖放到文件面板上传的功能
- 现在可以将文件面板中的文件拖放到编辑器中以将它们插入Typst文件
- 您现在可以直接从计算机中复制粘贴图像和其他文件到编辑器中
- 添加了重新发送确认电子邮件的按钮
- 在深色模式下添加了反转预览颜色的选项
- 在加载屏幕和帮助菜单中添加了提示信息。欢迎提出更多建议!
- 为YAML文件添加了语法高亮
- 允许在许多按钮上使用中间鼠标按钮单击以导航到新标签页
- 允许更多项目名称
- 修复了覆盖的Vim模式键绑定
- 修复了关于文件上传等方面的许多错误
-
杂项改进
- 提高了计数器、状态和查询的性能
- 改进了更高效的增量解析以进行重新编译
- 现在支持
.yaml
扩展名,除了.yml
用于参考文献 - CLI现在只在输出是TTY时发出转义代码
- 对于
typst
crate 的用户:Document
现在再次是Sync
,而World
不再需要'static
Version 0.3.0 (2023年4月26日)
-
重大变更:
-
新功能
-
改进
-
Bug 修复
-
命令行界面
- 现在可以使用环境变量
TYPST_FONT_PATHS
和TYPST_ROOT
设置字体路径和编译根目录 typst fonts
的输出现在包括了嵌入式字体
- 现在可以使用环境变量
-
开发
- 添加了用于调试和优化的工具
- 添加了
--update
标志和UPDATE_EXPECT
环境变量以更新测试的参考图像 - 现在可以使用
--subtest
运行特定的子测试 - 测试现在在多个线程上运行
Version 0.2.0 (2023年4月11日)
-
重大变更:
-
新功能
-
命令行界面
- 修复了
--open
标志阻塞程序的问题 - 新的 Computer Modern 字体现在嵌入到二进制文件中
- 可以通过将
GEN_ARTIFACTS
环境变量设置为目标目录,然后构建 Typst 来生成 shell 自动完成和 man 页面
- 修复了
-
杂项改进
版本 0.1.0 (2023年4月4日)
-
重大变更:
-
图表改进
- 图表现在可以自动检测其内容并调整其行为。例如,包含表格的图表现在会自动加上前缀 "表 X" 并具有单独的计数器。
- 图表的补充部分(例如 "图" 或 "表")现在可以自定义。
- 此外,图表现在可以完全自定义,因为显示规则提供了对自动解析的种类、补充和计数器的访问权限。
-
参考文献改进
bibliography
现在还接受多个参考文献路径(作为数组)。- BibLaTeX 文件的解析现在更加宽松(接受非数字的版本、页数、卷数、日期和 Jabref 样式的注释;修复了缩写解析)。
- 标签和引用现在可以包含
:
和.
,除了末尾。 - 修复了 APA 参考文献排序问题。
-
绘图新增功能
-
命令行界面
- 如果存在错误,现在返回非零状态码。
- 现在默认监视根目录,而不是当前目录。
- 默认情况下,现在将 PDF 文件放在输入文件旁边。
- 现在接受更多类型的输入文件(例如
/dev/stdin
)。 - 添加了
--open
标志,可以直接打开 PDF。
-
其他改进
- 添加了
yaml
函数,用于从 YAML 文件加载数据。 - 为更多语言添加了基本的国际化支持(意大利语、俄语、中文、法语、葡萄牙语)。
- 添加了对希伯来语的编号支持。
- 添加了支持以 2、8 和 16 为基数的整数。
- 添加了双括号和拉普拉斯运算符的符号。
link
函数现在接受标签。- 现在链接语法允许更多字符。
- 改进了日语和中文文本的对齐。
- 计算函数在处理非实数结果时更一致。
- 替换了不推荐使用的尖括号。
- 将最大函数调用深度从 256 减少到 64。
- 修复了在段落以样式化文本开头时
first-line-indent
不被应用的问题。 - 修复了等式中一元操作符周围的额外空格,例如
block(above: 1cm, below: 1cm, ..)
中的问题。 - 修复了数学中文本操作符的样式问题。
- 修复了对带有单个反引号的原始块中的语言标签的无效解析。
- 修复了在某些标记元素之后进行无效自动完成的问题。
- 添加了
以下是日期为 2023 年 3 月 28 日的更新内容的中文翻译:
markdown Copy code
2023年3月28日
-
重大变更:
- 枚举现在需要在它们的标记后面加一个空格,也就是说,
1.ok
现在必须写成1. ok
。 - 更改了术语列表的默认样式:不再包含冒号,并且缩进更多。
- 枚举现在需要在它们的标记后面加一个空格,也就是说,
-
命令行界面
- 为 CLI 添加了
--font-path
参数。 - 在 CLI 二进制文件中嵌入了默认字体。
- 修复了如果未安装
git
则 CLI 无法构建的问题。
- 为 CLI 添加了
-
其他改进
- 添加了禁用 矩阵 和 向量 分隔符的支持。通常使用
#set math.mat(delim: none)
或单独使用$mat(delim: #none, 1, 2; 3, 4)$
。 - 为术语列表添加了
separator
参数。 - 为等式添加了
round
函数。 - 编号现在允许零。要重置计数器,您可以编写
#counter(..).update(0)
。 - 添加了
location
类型上的page()
和position()
方法的文档。 - 添加了双点、三点和四点重音符号的符号。
- 为挪威博克马尔语添加了智能引号支持。
- 添加了 Nix flake。
- 修复了 IEEE 样式下的参考文献排序问题。
- 修复了数学中小数的解析:
$1.2/3.4$
。 - 修复了分数中不平衡分隔符的解析问题:
$1/(2 (x)$
。 - 修复了将数字意外解析为枚举,例如
1.2
。 - 修复了页面填充和页眉的组合问题。
- 修复了如果在具有自动宽度的页面中使用
repeat
会导致编译器崩溃的问题。 - 修复了具有显式分隔符的矩阵。
- 修复了术语列表的
indent
属性。 - 大量文档修复。
- 参考文献中的链接现在受到链接样式的影响。
- 修复了在 Web 应用程序中悬停在注释上的问题。
- 添加了禁用 矩阵 和 向量 分隔符的支持。通常使用
2023年3月21日
-
引用和参考文献管理
-
文档不同部分之间的交互检测系统
counter
函数- 访问和修改页面、标题、图形和方程的计数器
- 定义并使用自定义计数器
- 时间旅行:查找文档中其他位置(例如,在构建图表时,您可以确定在给定图表的任何位置的图表计数器的值)的计数器值。
- 计数器按布局顺序计数,而不是按代码顺序计数。
state
函数- 管理文档中的任意状态
- 时间旅行:查找文档中任何位置的状态值
- 状态按布局顺序修改,而不是按代码顺序。
query
函数- 查找元素或标签的所有出现位置,可以是整个文档或某个位置之前/之后。
- 链接到元素,查找其在页面上的位置并访问其字段。
- 示例用例:自定义图表或包含当前章节标题的页面页眉。
locate
函数- 确定自身在最终布局中的位置。
- 可以访问以获取
page
和x
、y
坐标。 - 可以与计数器和状态一起使用,以查找其在该位置的值。
- 可以与查询一起使用,以查找其位置之前或之后的元素。
-
新的
measure
函数- 测量元素的布局尺寸。
- 与新的
style
函数一起使用,该函数使您能够基于将要插入的内容的样式上下文生成不同的内容(因为这会影响内容的测量尺寸)。
-
暴露的内容表示
- 内容不再是不透明的。
- 内容可以进行比较以确定是否相等。
- 内容元素的树可以通过代码进行遍历。
- 可以在悬停提示中或使用
repr
查看内容。 - 内容上的新方法:
func
、has
、at
和location
。 - 现在可以设置元素上的所有可选字段。
- 更统一的字段名称(例如,
heading.title
变成了heading.body
,list.items
变成了list.children
,还有其他一些更改)。
-
进一步的改进
- 添加了
figure
函数。 - 在方程函数上添加了
numbering
参数。 - 在页面函数上添加了
numbering
和number-align
参数。 - 页面函数的
header
和footer
参数不再接受函数。如果要根据页码自定义它们,请改用新的numbering
参数或counter
函数。 - 添加了
footer-descent
和header-ascent
参数。 - 改进了页眉和页脚的默认对齐方式。
- 修复了阿拉伯语元音的位置。
- 修复了 PDF 字体嵌入问题。
- 将
math.formula
重命名为math.equation
。 - 现在必须将字体系列作为命名参数:
#set text(font: "..")
。 - 添加了 悬挂缩进 的支持。
- 将段落
indent
重命名为first-line-indent
。 - 当基数为
2
或10
时,对数 更加准确。 - 改进了一些错误消息。
- 修复了
terms
列表的布局。
- 添加了
-
Web 应用程序改进
- 添加了模板库。
- 添加了插入标题、方程、原始块和引用的按钮。
- 通过单击预览面板中的内容(适用于文本、方程、图像等)可以跳转到其源。
- 您现在可以上传自己的字体并在项目中使用它们。
- 悬停调试和自动完成现在考虑了多个文件,并在显示规则中工作。
- 悬停工具提示现在会自动折叠多个连续相等的值。
- 当输入时,预览现在会自动滚动到正确的位置。
- 预览区域中的链接现在可以点击。
- 工具栏、预览和编辑器现在都可以隐藏。
- 添加了原始块语言标签的自动完成。
- 在 SVG 文件中添加了自动完成。
- 新的返回按钮替代了四点按钮。
- 大量错误修复。
2023年2月25日
- 字体变更
- 新的默认字体:Linux Libertine
- 原始块的新默认字体:DejaVu Sans Mono
- 数学公式的新默认字体:New Computer Modern Math 的 Book 版本
- 提供了许多新的数学字体
- 删除了 Latin Modern 字体,采用了 New Computer Modern 字体系列
- 移除了不必要的小型大写字母字体,因为它们已经可以通过相应的主要字体和
smallcaps
函数访问
- 改进了标题的默认间距
- 添加了
panic
函数 - 为字符串添加了
clusters
和codepoints
方法 - 在
set document
中支持多个作者 - 修复了访问字符串的位置不是字符边界时的崩溃问题
- 修复了在
#"abc"
末尾插入反斜杠时的增量解析问题 - 修复了一些字体系列的名称(包括 Noto Sans Symbols 和 New Computer Modern 等系列)
- 修复了字体系列的自动完成
- 改进了用户自定义函数的增量编译
2023年2月15日
- 盒子 和 块 现在具有
fill
、stroke
、radius
和inset
属性 - 块现在可以显式设置大小,固定高度的块仍然可以跨页面分页
- 块现在可以配置为可分页或不可分页,使用
breakable
属性 - 现在可以为嵌套的枚举配置 编号样式
- 现在可以为嵌套的列表配置 标记
eval
函数现在需要代码而不是标记,并返回任意值。仍然可以通过用括号括起字符串来评估标记。- Typst 生成的 PDF 现在包含 XMP 元数据
- PDF 输出中现在禁用了链接框
- 表格在分页之前不再生成小的空单元格
- 修复了原始块高亮显示的错误问题
2023年2月12日
- 形状、图像和变换(移动/旋转/缩放/重复)现在都是块级元素。要将它们整合到段落中,使用
box
与其他元素一样。 - "everything" 展示规则现在需要冒号:写成
show: it => ..
,而不是show it => ..
。这样可以防止中间状态破坏整个文档。 - 数学公式中的非数学内容,如形状或表格,现在在垂直方向上居中显示。
- 容器内的孤行和孤字防止支持
- 列表、网格和表格支持 RTL(从右到左)
- 盒子和形状现在支持显式的
auto
大小设置 - 盒子支持分数宽度(例如
1fr
) - 修复列跳到下一页的错误问题
- 修复列表项没有行首间距的问题
- 修复列表、正方形和网格自动列的相对大小问题
- 修复
place
函数中的相对位移问题 - 修复行没有大小的问题
- 修复
set document(..)
后跟内容的错误问题 - 修复
not in
操作的解析问题 - 修复数学中的悬停工具提示问题
- 修复当大纲存在时,标题显示规则可能不包含分页符的错误问题
- 在
box
上添加了baseline
属性 - 在数学中添加了
tg
和ctg
运算符 - 为
cases
函数添加了分隔符设置 - 在接受函数自动完成时现在包括括号
2023年2月2日
- 合并文本和数学符号,重命名了一些符号(包括将
infty
重命名为infinity
,并使用别名oo
) - 修复了缺失的斜体映射
- 数学斜体校正现在应用正确
- 括号现在在
$zeta(x/2)$
中按比例缩放 - 修复了大型根指数的位置
- 修复了
$abs(-x)$
中的间距问题 - 修复了数学中文本和标识符之间的不一致性
- 当定位上标时,现在会忽略重音符号
- 修复了矩阵中的垂直对齐问题
- 修复了
raw
显示规则中的text
设置规则 - 标题和列表标记现在解析一致
- 允许在内容中直接使用任意数学公式
2023年1月30日
- 在标记/数学中的新表达式语法
- 不再可以直接嵌入块到标记中
- 与其他表达式一样,现在需要以井号(#)开头
- 井号(#)可用于更多的表达式,包括字面量(
#"string"
)以及字段访问和方法调用,无需空格:#emoji.face
- 新的导入语法
#import "module.typ"
创建名为module
的绑定#import "module.typ": a, b
或#import "module.typ": *
以导入项目#import emoji: face, turtle
以从已绑定的模块导入
- 新的符号处理方式
- 移除了符号表示法
- 现在符号位于模块中:
sym
,emoji
和math
- 数学模块也重新导出了
sym
的所有内容 - 通过字段访问进行修改,仍然不受顺序影响
- 不再允许未知修饰符
- 通过
symbol
函数支持自定义符号定义 - 现在在文档中列出了符号
- 新的
math
模块- 包含所有与数学相关的函数
- 直接位于数学中的变量和函数调用(无需井号)将访问此模块,但也可以访问本地变量
- 可以在代码中明确使用,例如
#set math.vec(delim: "[")
- 数学中的分隔符匹配
- 任何开放分隔符都匹配任何闭合分隔符
- 当匹配时,它们会自动缩放
- 为了防止缩放,可以对它们进行转义
- 为了强制匹配两个分隔符,请使用
lr
函数 - 匹配的分隔符之间可以发生换行
- 分隔符也可以不平衡
- 您还可以使用
lr
函数手动将括号(或只有一个括号)缩放到特定大小
- 具有对齐的多行数学
- 反斜杠(\)字符插入换行符
&
字符定义对齐点- 对齐点还适用于下标、矢量、分情况和矩阵
- 支持多个对齐点
- 更多功能丰富的数学函数调用
- 数学中的函数调用现在可以使用带有井号的代码表达式
- 现在还可以接受命名参数
- 在数学函数调用内部,分号将前面的参数转换为数组,以支持矩阵:
$mat(1, 2; 3, 4)$
- 数学中的任意内容
- 现在可以在数学中嵌入文本、图像和其他任意内容
- 数学现在还支持字体回退以支持例如 CJK 和表情符号
- 更多数学功能
- 新的文本运算符:
op
函数,lim
,max
等 - 新的矩阵函数:
mat
- 使用
root
函数的新的 n 元根:$root(3, x)$
- 新的下标上标、上下括号、上下线
- 新的
abs
和norm
函数 - 新的快捷方式:
[|
,|]
和||
- 新的
attach
函数,可通过script
和limit
进行覆盖附件 - 数学中的手动间距,使用
h
,thin
,med
,thick
和quad
- 符号和其他内容现在可以像函数一样使用,例如
$zeta(x)$
- 添加了 Fira Math 字体,移除了 Noto Sans Math 字体
- 通过
#show math.formula: set text("Fira Math")
支持替代数学字体
- 新的文本运算符:
- 更多库改进
- 新的
calc
模块,abs
,min
,max
,even
,odd
和mod
移动到该模块 assert
函数上的新的message
参数- 字典上的
pairs
方法现在返回长度为 2 的数组数组,而不是使用闭包 - 方法调用
dict.at("key")
如果"key"
不存在,现在总是失败,以前允许在赋值中使用。替代方法是dict.key = x
和dict.insert("key", x)
- 新的
- 更智能的编辑器功能
- 本地变量的自动补全
- 值可用的方法的自动补全
- 符号和模块的自动补全
- 导入的自动补全
- 在标识符上悬停以查看其值
- 更多编辑器改进
- 新的离线指示器
- 所有按钮都有工具提示
- 改进的账户保护
- 将状态指示器移动到错误列表按钮内
- 更多修复
- 增量解析器的多个错误修复
- 修复了闭包参数捕获问题
- 修复了大量数学错误
- 性能、文件管理和编辑可靠性的错误修复
- 添加了登录后重新导航到原始导航页面的重定向