98 lines
1.7 KiB
Typst
98 lines
1.7 KiB
Typst
|
|
#let ai-ethics-template(
|
|
title: [],
|
|
abstract: [],
|
|
author: (),
|
|
keywords: (),
|
|
doc,
|
|
) = {
|
|
|
|
// -- Text
|
|
let font-size = 9.5pt
|
|
set text(size: font-size, font: "New Computer Modern")
|
|
|
|
// -- Header
|
|
set page(header: context {
|
|
if here().page() > 1 [
|
|
#grid(
|
|
columns: (1cm, 1fr, 1cm),
|
|
[#here().page()],
|
|
align(center, [#text(size: 8pt, title)])
|
|
)
|
|
]
|
|
}, header-ascent: 2em)
|
|
|
|
// -- Margins
|
|
set page(margin: (x: 4.5cm, top: 5.5cm, bottom: 5cm))
|
|
|
|
// -- Headings
|
|
show heading.where(level: 1): set heading(numbering: (n) => {numbering("1", n) + h(0.35cm)})
|
|
|
|
show heading.where(level: 1): it => [
|
|
#set text(size: 12pt)
|
|
#it
|
|
#v(0.2em)
|
|
]
|
|
|
|
show heading.where(level: 2): it => {
|
|
block(above: par.spacing, below: 0pt)
|
|
box(text(size: font-size, it)) + h(0.25cm)
|
|
}
|
|
|
|
|
|
// -- Bibliography
|
|
show bibliography: set bibliography(title: [References #v(0.5em)])
|
|
|
|
show bibliography: it => {
|
|
show heading: set heading(numbering: none)
|
|
it
|
|
}
|
|
|
|
// -- Lists
|
|
show list: set list(marker: [#text(baseline: -0.2em, size: 15pt, "•")])
|
|
show list: it => [
|
|
#pad(y: 0.5em, [
|
|
#it
|
|
])
|
|
]
|
|
|
|
// Front-matter Content
|
|
align(center, [
|
|
#v(0.75cm)
|
|
#text(weight: "bold", size: 1.6em, title)
|
|
#v(1em)
|
|
|
|
#text(size: 12pt, author.name)
|
|
#v(0.5em)
|
|
|
|
#emph([
|
|
#{author.number} \
|
|
#{author.email} \
|
|
#{author.course} \
|
|
])
|
|
])
|
|
|
|
v(1em)
|
|
|
|
block([
|
|
#line(length: 100%)
|
|
#v(-0.1cm)
|
|
|
|
*Abstract* \
|
|
|
|
#{abstract} \
|
|
|
|
#emph[Keywords]: #h(0.5em) #(keywords.join(", "))
|
|
|
|
#v(-0.1cm)
|
|
|
|
#line(length: 100%)
|
|
])
|
|
|
|
// -- Paragraph indents
|
|
set par(first-line-indent: 1em, spacing: 0.65em, justify: true)
|
|
|
|
|
|
doc
|
|
}
|