init of repo
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
#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.
|
||||
// ]
|
||||
Reference in New Issue
Block a user