【Typst】4.导入、包含和读取

概述

上节概述了Typst脚本的基础语法,在此基础上,本节介绍Typst文件的导入、包含和读取的内容。你将可以更简单灵活的组织你的文件内容。

系列目录

导入模块

使用import语句可以导入自定义模块或Typst内部模块

import "bar.typ"                    // 将bar.typ作为模块导入
import "bar.typ" as baz             // 将bar.typ作为模块导入,重命名为baz
import "bar.typ": a,b               // 将bar.typ作为模块导入,引入其中定义的a和b变量
import "bar.typ":a as one,b as two  // 重命名引入的a和b变量
import "bar.typ": *                 // 导入bar.typ中的所有变量

导入包

import除了导入模块外,也可以用于导入自己或第三方的包。

#import "@preview/cmarker:0.1.0"

关于第三包的使用将专门一节讲解。

导入模板

import还可以用于导入模板。

模板可以看做是特殊的Typst脚本文件,用于统一定制页面的格式,并调用生成相同风格的文档。

关于创建和导入模板见后节。

包含文件内容

可以使用include语句包含其他.typ文件的内容到当前文件。对于大体量的书写,可以将内容分散到不同的.typ文件中,然后在主文件中包含和排序,方便管理。

关于导入和包含以及一个成熟的Typst排版架构见下图:

Typst的包含(#include)与导入(#import)

  • 模板中定义基础的页面、段落等样式,以及文档的基本结构,比如封面、目录
  • 所谓“模块”可以看作是一个自定义函数库,通过编写函数,你可以更方便的输出一些内容
  • 主文件负责内容的管理:包括模板的使用,库的导入,以及管理章节的之间的顺序等等
  • 通过将内容划分为章节,可以获得更好的写作体验。

读取并显示文件内容

使用read()函数,可以读取任意文件内容,默认以字符串形式读取。

这意味着你不仅可以在.typ文件中通过include()包含其他.typ文件,也可以用read()读取任意纯文本文件,比如MarkDown、HTML等等。

读取和显示MarkDown的内容

在Typst项目目录下创建“x.md”,内容如下:

# 这是MarkDown的内容

你可以看到它被正常的引入。#rect()

在Typst中使用read()函数读取并显示

#let md = read("x.md")//读取
#rect(md)

可以看到MarkDown中的内容会被原样输出,而不会处理类似typst语法的内容。

读取csv文件并用表格显示

读取csv文件不需要使用read()函数,直接使用csv()即可:

“a.csv”的内容如下:

张三,男,45
张三,男,45
张三,男,45
#csv("a.csv")

显示:

在这里插入图片描述

可以看到内容就是一个二维数组。

用表格显示:

#let data = csv("a.csv")

#table(columns: 3,..data.flatten())

在这里插入图片描述

读取JSON文件

JSON文件也可以直接使用json()函数读取:

“b.json”内容如下:

{
    "title":"JSON测试",
    "author":"巽星石"
}
#json("b.json")

显示:
在这里插入图片描述

可以看到内容被转化为字典。因此也就可以直接通过字典的语法获取对应键的值:

#let data = json("33.json")

#data.title \
#data.author

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巽星石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值