92 lines
2.0 KiB
Typst
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
|
|
]
|
|
}
|