45 lines
1.4 KiB
Typst
45 lines
1.4 KiB
Typst
// NITRAC document-group template.
|
|
// Provides the standardized mark, cover wrapper, and body configuration.
|
|
#import "../NLI-doc-template.typ": cover, conf as base-conf
|
|
|
|
#let conf = base-conf
|
|
|
|
#let mark-unit = 1.2cm
|
|
#let mark-blue = rgb("#4FC3F7")
|
|
#let mark-font = "Bahnschrift"
|
|
|
|
// Standard NITRAC mark. The top offset is intentionally configurable here
|
|
// because the mark is positioned independently from the cover grid.
|
|
#let nitrac-mark = context {
|
|
let mark-x = 3.3 * mark-unit
|
|
let mark-width = 21cm - mark-x - 0.3 * mark-unit
|
|
let mark-height = 6 * mark-unit
|
|
let mark-padding = 1 * mark-unit
|
|
let mark-safe-height = mark-height - 0 * mark-padding
|
|
let probe-size = 100pt
|
|
let mark = text(
|
|
font: mark-font,
|
|
weight: "bold",
|
|
size: probe-size,
|
|
fill: mark-blue,
|
|
)[ITRAC]
|
|
let mark-size = probe-size * (mark-width / measure(mark).width)
|
|
let mark-text = text(font: mark-font, weight: "bold", size: mark-size, fill: mark-blue)[ITRAC]
|
|
let mark-stretch-y = mark-safe-height / measure(mark-text).height * 100%
|
|
place(
|
|
top + left,
|
|
dx: mark-x,
|
|
dy: mark-padding,
|
|
box(
|
|
width: mark-width,
|
|
height: mark-safe-height,
|
|
inset: 0pt,
|
|
scale(x: 100%, y: 100%, reflow: false, {
|
|
align(center + horizon, scale(x: 100%, y: mark-stretch-y, reflow: false, mark-text))
|
|
}),
|
|
),
|
|
)
|
|
}
|
|
|
|
#let nitrac-cover(..args) = cover(logo: nitrac-mark, ..args)
|