用Typst打造的BUPT实验报告模板
北邮实验报告的Typst模板(一般用于DSP实验和模电实验)

代码仓库:https://github.com/zhao-leo/BUPT-Report-Typst

天下苦排版久矣!

Word的文本和排版混合的模式虽然提供了所见即所得的效果,但是,Word完全不能让我专心码字!

同时,Word的图注编辑较为麻烦(对我来说),Word代码块没有高亮等等各种问题让我下定决心,用Typst写一套BUPT的DSP实验报告模板。

如何使用

#import "template.typ": experiment-report

#show: doc => experiment-report(
  class: "2023211113",
  name: "张三",
  student-id: "2021123456",
  date: "2024年4月14日",
  doc
)

将这两行插入你的Typst文档,随后就可以自动生成包含校徽、专业信息、日期等要素的标准化封面页,以及调整好的字体、缩进、样式,让你专注于完成自己的实验报告,取得High Score

具体格式

基本格式

页边距

set page(
    paper: "a4",
    margin: (top: 2.54cm, bottom: 2.54cm, left: 3.18cm, right: 3.18cm),
)

封面样式

align(center)[
    #v(4em)
    // 第一行:学年学期
    #text(size: 22pt,font: "STZhongsong",weight: "bold")[2024-2025学年第二学期]

    // 第二行:实验报告标题
    #text(size: 22pt,font:"STZhongsong",weight: "bold")[《信号处理实验》实验报告]
    #v(4.5em)
    
    // Logo
    #image("assets/bupt-logo.jpg", width: 40%)
    #v(8em)
    
   // 学生信息表格函数
    #let info-row(label, content) = {
      grid(
        columns: (auto, auto),
        align(right)[#text(font: "STSong",size: 14pt)[#label]],
        [
          #box(width: 180pt)[
            #set text(font: "STSong",size: 14pt)
            #box(width: 180pt)[
              #place(dx: 0pt, dy: 14pt)[#line(length: 180pt)]
              #align(center)[#content]
            ]
          ]
        ]
      )
    }
    
    #set text(font: "STSong", size: 14pt)
    #grid( // 生成基本信息
      align: center,
      rows: 4,
      row-gutter: 2em,
      info-row("专业班级", class),
      info-row("姓  名", name),
      info-row("学  号", student-id),
      info-row("报告日期", date)
    )
  ]
pagebreak() // 生成分页

格式规范自动适配

  • 正文首行缩进2字符
  • 中英文字体自动匹配(中文宋体/英文Times New Roman)
  • 1.2倍行距标准
    set par(first-line-indent: 2em,leading: 1.2em)
    show raw.where(block: true): block => [
        #pad(left: 2.5em)[
        #block
        ]
    ]
    
  • 题注小五号仿宋字体
    show figure.caption: it => {
        set text(font: ("Times New Roman", "FangSong"), size: 9pt)
        it
    }
    
  • 正文五号字
set text(font: ("Times New Roman", "SimHei"), size: 12pt, weight: "regular")

快速上手指南

环境准备

  1. 安装Typst
  2. 通过Git拉取本项目
  3. 按照example.typ编写自己的报告
  4. 导出

基础使用

// 导入模板
#import "template.typ": experiment-report

// 设置文档参数
#show: doc => experiment-report(
  class: "电子信息工程2023级",
  name: "王小明",
  student-id: "202311001",
  date: "2024年4月20日",
  doc
)

// 开始撰写内容
= 实验二 数字滤波器设计

== 实验原理
...

结语:让写作回归本质

通过本模板,你可以将精力完全集中在实验内容的创作上,无需再为格式调整耗费时间。

该模板已在Github开源(示例仓库地址),欢迎提交Issue和Pull Request共同完善。

TIP: 配合VS Code的Tinymist Typst插件,可实时检查格式规范,实现「即写即所得」的完美写作体验。


最后修改于 2025-04-15