#import "NLI-doc-template.typ": cover, conf // ============================================================ // Nitload 标准文件模板说明文档 // 本文件既是使用手册,也是可直接编译的完整示例。 // ============================================================ #cover( title: "Nitload标准文件模板说明文档", title-en: "Nitload Standard Document Template Manual", number: "NLI-DOC-TEMPLATE-001", author: "Nitload Industry", classification: "NON[无秘]SEC", date: "2026 年 9 月", ) #show: conf.with(number-pages: true) = 第一章 模板概述 NLI 文档模板用于生成具有统一 Nitload 视觉标识的 A4 标准文件。模板包含独立封面、中文和英文标题布局、文档识别信息、密级标记、签名位、正文排版以及带边框和自动行号的代码块。 当前目录中只需要两个核心文件: - `NLI-doc-template.typ`:模板实现,通常不在业务文档中直接修改。 - `main.typ`:文档入口,负责填写封面字段并编写正文。 编译 `main.typ` 即可生成完整 PDF。空值字段会自动跳过,封面信息区和蓝色切角会依据实际内容高度重新排布。 == 1.1 最小使用方式 在新文档中导入模板,填写封面,然后启用正文配置: ```typst #import "NLI-doc-template.typ": cover, conf #cover( title: "文档标题", title-en: "Document Title", number: "NLI-2026-001", author: "作者姓名", classification: "NON[无秘]SEC", date: "2026 年 9 月", ) #show: conf.with(number-pages: true) = 第一章 正文 这里开始编写正文。 ``` == 1.2 文件命名建议 建议保留模板文件名 `NLI-doc-template.typ`,业务文档可以按编号或主题命名,例如 `NLI-2026-001.typ`。若模板与正文位于不同目录,应相应调整 `#import` 的相对路径。 = 第二章 封面参数 `cover` 的稳定参数如下。除装饰控制参数外,所有信息字段均可留空。 #table( columns: (1.35fr, 0.9fr, 3.4fr), inset: (x: 7pt, y: 6pt), stroke: 0.5pt + luma(78%), align: (left, center, left), [*参数*], [*必填*], [*说明*], [`title`], [否], [中文主标题,按照封面网格自动换行。], [`title-en`], [否], [英文主标题,使用封面西文字体自动换行。], [`number`], [否], [文档编号,对应信息区中的“编号”。], [`author`], [否], [作者名称;也可以传入作者数组。], [`classification`], [否], [专用密级字段,使用CSEA标准密级表示方法。], [`date`], [否], [成文日期或版本日期。], [`info`], [否], [附加信息字典,用于项目、部门、审核人等非固定字段。], [`fill`], [否], [封面背景色,默认白色。], [`decorate`], [否], [是否显示 NITLOAD 图形装饰,默认为 `true`。], ) `classification` 是与 `author`、`date` 同级的专用参数,不再需要写入 `info`。`info` 仅用于没有专用参数的扩展信息: ```typst #cover( title: "项目评审报告", classification: "内部", info: ( 项目: "Flagship", 审核人: "示例姓名", ), ) ``` 模板中仍保留 `subtitle` 和 `logo` 两个预留接口;当前版本没有为它们提供独立的稳定版式,不建议在正式文件中依赖。 = 第三章 正文排版 正文由 `conf` 统一配置,默认使用 A4 页面,上下边距 3.5 cm、左右边距 2 cm,并在页脚中央显示页码。中文正文使用宋体,英文正文使用 Times New Roman,段落采用两端对齐和两字符首行缩进。 如不需要页码,可以使用: ```typst #show: conf.with(number-pages: false) ``` == 3.1 标题与段落 一级标题使用一个等号,二级标题使用两个等号。为了让文档目录和层级保持清晰,建议不要跳级使用标题。 ```typst = 第一章 一级标题 这里是正文段落。 == 1.1 二级标题 这里是小节内容。 ``` == 3.2 代码排版 行内代码使用反引号,例如 `let x = 1`。块级代码会自动获得浅色背景、细边框和连续行号: ```rust fn main() { println!("Hello, Nitload!"); } ``` = 第四章 字体与分发 模板当前依赖 SimHei、SimSun、Source Code Pro 和 Times New Roman。跨设备使用前应确认这些字体已经安装;若计划在 Linux、CI 或公共环境编译,建议后续增加思源黑体、思源宋体等开源字体回退。 模板可以直接托管在 Git 仓库中。最简单的复用方式是将 `NLI-doc-template.typ` 与文档一同克隆,并通过相对路径导入。模板稳定后,也可以增加 `typst.toml`,将其安装为本地 Typst 包。 == 4.1 发布前检查 每次发布或修改模板后,建议完成以下检查: #grid( columns: (1fr, 1fr), column-gutter: 1.2em, row-gutter: 0.45em, [• 长中文与长英文标题], [• 编号、作者、日期与密级], [• 蓝色切角避让信息区], [• 签名线与 `signed` 标记], [• 代码块、分页与页码], [• 目标系统字体可用性], ) #block(above: 0.8em, below: 0pt)[ *4.2 版本记录* 本文档对应 NLI 文档模板初始说明版本。后续修改模板接口时,应同步更新本说明文档、示例代码和文档编号。 ] // Stale patch tail intentionally disabled. // ]