Files
homework-template/templates/lib.typ

92 lines
2.0 KiB
Typst

#import "@preview/cmarker:0.1.8"
#import "@preview/mitex:0.2.6": mitex
#import "@preview/codly:1.3.0": *
#import "@preview/codly-languages:0.1.1": *
#let shadow_switch = state("phomework.shadow.enabled", true)
/// ===========
/// 问题排版
/// ===========
// 直接文本定义的问题,适合复杂的图标
#let question(content, title: "问题") = [
#v(1em)
#grid(
columns: (auto, auto),
align: top,
gutter: .2em,
rect(fill: rgb("#776cad"), width: 4.5em)[
#set text(fill: rgb("#ffffff"), font: "Source Han Serif", weight: "bold")
#set align(center)
#title
],
rect(stroke: none, width: 100%)[
#set text(font: "Source Han Serif", fill: rgb("#3e3978"))
#set table(stroke: (paint: rgb("#3e3978")), inset: (y: 6pt, x: 9pt))
#show table: t => align(center, t)
#content
]
)
]
#let answer(content) = [
#set par(first-line-indent: (amount: 2em, all: true))
#content
]
#let shadow(content) = context {
set text(fill: gray)
if (shadow_switch.get()) {
cmarker.render(content, math: mitex)
}
}
#let homework(
title: "",
secret: "",
enable_shadow: true,
body
) = {
set page(
header: [
#set text(font: "HarmonyOS Sans SC", weight: 700)
#title
#h(1fr)
#secret
],
numbering: "第 1 页,共 1 页",
)
set text(font: ("LXGW WenKai"))
show: codly-init.with()
shadow_switch.update(enable_shadow)
show heading.where(level: 1): it => [
#set align(center)
#text(it, size: 24pt, weight: "black", font: "Source Han Serif")
]
show heading.where(level: 2): it => [
#set align(center)
#text(it, size: 16pt, weight: "bold", font: "Source Han Serif")
]
show heading.where(level: 3): it => [
#text(it, size: 14pt, weight: "bold", font: "Source Han Sans SC")
]
show raw: set text(font: "Maple Mono NF", size: 9pt)
show math.equation: set text(font: (
"New Computer Modern Math",
"Source Han Serif",
))
[
= #title
== #secret
#body
]
}