Combined into a single file for easier use
This commit is contained in:
95
lib.typ
95
lib.typ
@ -1,95 +0,0 @@
|
||||
// Royal Holloway, University of London Report template
|
||||
// Created by Otto Helen-Goldring in 2024 under the MIT License.
|
||||
// Modified from light-report-uia (https://typst.app/universe/package/light-report-uia/)
|
||||
|
||||
#let report(
|
||||
title: none,
|
||||
author: none,
|
||||
group_name: none,
|
||||
course_name: none,
|
||||
unit_type: none,
|
||||
report_type: none,
|
||||
supervisor: none,
|
||||
date: none,
|
||||
location: "Egham",
|
||||
references: "references.yml",
|
||||
body
|
||||
) = {
|
||||
set document(title: [#title - #group_name], author: author)
|
||||
set text(font: ("Fira Sans", "Helvetica", "Arial", "Roboto", "SF Pro Display", "Segoe UI"))
|
||||
set par(justify: true)
|
||||
show link: underline
|
||||
|
||||
show heading: set block(above: 30pt, below: 30pt)
|
||||
|
||||
show heading.where(level: 1): set text(size: 20pt)
|
||||
|
||||
show heading.where(level: 1): set heading(supplement: [Chapter])
|
||||
show heading.where(level: 1): it => block({
|
||||
let prefix = if it.numbering != none {
|
||||
it.supplement + [ ] + counter(heading).display(it.numbering) + [: ]
|
||||
}
|
||||
text(weight: "regular",prefix) + it.body
|
||||
})
|
||||
|
||||
show heading.where(level: 2): set text(size: 16pt)
|
||||
|
||||
set page(header: context {if counter(page).get().first() > 1 [#report_type #h(1fr) #author]})
|
||||
|
||||
|
||||
// FRONT PAGE
|
||||
set align(center)
|
||||
|
||||
text(10pt, author + ", " + date)
|
||||
v(5mm)
|
||||
|
||||
text(22pt, "Final Year Project Report")
|
||||
v(1mm)
|
||||
text(14pt, unit_type + " - " + report_type, weight: "bold")
|
||||
v(3mm)
|
||||
line(length: 30%)
|
||||
text(25pt, weight: "bold", title)
|
||||
v(3mm)
|
||||
|
||||
text(18pt, group_name)
|
||||
text(18pt, author)
|
||||
v(3mm)
|
||||
line(length: 30%)
|
||||
|
||||
text(14pt, report_type + " submitted in part fulfilment of the degree of ")
|
||||
v(3mm)
|
||||
text(16pt, weight: "bold")[ #course_name ]
|
||||
v(3mm)
|
||||
text(18pt, "Supervisor: ", weight: "bold")
|
||||
text(18pt, supervisor)
|
||||
|
||||
v(1fr) // to bottom
|
||||
block(height: 25%, image("media/rhul.jpg", height: 75%))
|
||||
text(14pt)[Department of Computer Science#linebreak()Royal Holloway, University of London]
|
||||
v(20mm)
|
||||
|
||||
text(12pt)[#location, #date]
|
||||
|
||||
pagebreak()
|
||||
|
||||
// contents page
|
||||
set align(left)
|
||||
set heading(numbering: "1.1")
|
||||
|
||||
|
||||
outline(indent:2em, title: "Contents")
|
||||
|
||||
pagebreak()
|
||||
|
||||
// after the front page and content things
|
||||
|
||||
set page(numbering: "1", number-align: center)
|
||||
counter(page).update(1)
|
||||
|
||||
// main.typ
|
||||
body
|
||||
|
||||
pagebreak()
|
||||
|
||||
bibliography("template/" + references, title: "Bibliography")
|
||||
}
|
168
main.typ
Normal file
168
main.typ
Normal file
@ -0,0 +1,168 @@
|
||||
// Royal Holloway, University of London Report template
|
||||
// Created by Otto Helen-Goldring in 2024 under the MIT License.
|
||||
// Modified from light-report-uia (https://typst.app/universe/package/light-report-uia/)
|
||||
|
||||
// The main report template function.
|
||||
// It sets up the document's structure, styling, and front matter.
|
||||
#let report(
|
||||
title: none,
|
||||
author: none,
|
||||
group_name: none,
|
||||
course_name: none,
|
||||
unit_type: none,
|
||||
report_type: none,
|
||||
supervisor: none,
|
||||
date: none,
|
||||
location: "Egham",
|
||||
references: "references.yml", // Note: This file needs to exist.
|
||||
body
|
||||
) = {
|
||||
// === DOCUMENT SETUP ===
|
||||
set document(title: [#title - #group_name], author: author)
|
||||
// set text(font: ("Fira Sans", "Helvetica", "Arial", "Roboto") // Custom font can be set here
|
||||
set par(justify: true)
|
||||
show link: underline
|
||||
|
||||
// === HEADING STYLES ===
|
||||
show heading: set block(above: 30pt, below: 30pt)
|
||||
|
||||
// Chapter-level headings
|
||||
show heading.where(level: 1): set text(size: 20pt)
|
||||
show heading.where(level: 1): set heading(supplement: [Chapter])
|
||||
show heading.where(level: 1): it => block({
|
||||
let prefix = if it.numbering != none {
|
||||
it.supplement + [ ] + counter(heading).display(it.numbering) + [: ]
|
||||
}
|
||||
text(weight: "regular", prefix) + it.body
|
||||
})
|
||||
|
||||
// Section-level headings
|
||||
show heading.where(level: 2): set text(size: 16pt)
|
||||
|
||||
// === PAGE SETUP ===
|
||||
// Add a header to all pages except the first one.
|
||||
set page(header: context {if counter(page).get().first() > 1 [#report_type #h(1fr) #author]})
|
||||
|
||||
|
||||
// === FRONT PAGE ===
|
||||
set align(center)
|
||||
|
||||
text(10pt, author + ", " + date)
|
||||
v(5mm)
|
||||
|
||||
text(22pt, "Final Year Project Report")
|
||||
v(1mm)
|
||||
text(14pt, unit_type + " - " + report_type, weight: "bold")
|
||||
v(3mm)
|
||||
line(length: 30%)
|
||||
text(25pt, weight: "bold", title)
|
||||
v(3mm)
|
||||
|
||||
text(18pt, group_name)
|
||||
text(18pt, author)
|
||||
v(3mm)
|
||||
line(length: 30%)
|
||||
|
||||
text(14pt, report_type + " submitted in part fulfilment of the degree of ")
|
||||
v(3mm)
|
||||
text(16pt, weight: "bold")[#course_name]
|
||||
v(3mm)
|
||||
text(18pt, "Supervisor: ", weight: "bold")
|
||||
text(18pt, supervisor)
|
||||
|
||||
v(1fr) // Pushes the following content to the bottom of the page.
|
||||
|
||||
block(height: 25%, image("media/rhul.jpg", height: 75%))
|
||||
|
||||
text(14pt)[Department of Computer Science#linebreak()Royal Holloway, University of London]
|
||||
v(20mm)
|
||||
|
||||
text(12pt)[#location, #date]
|
||||
|
||||
pagebreak()
|
||||
|
||||
// === TABLE OF CONTENTS ===
|
||||
set align(left)
|
||||
set heading(numbering: "1.1")
|
||||
|
||||
outline(indent: 2em, title: "Contents")
|
||||
|
||||
pagebreak()
|
||||
|
||||
// === MAIN BODY ===
|
||||
// Reset page numbering for the main content.
|
||||
set page(numbering: "1", number-align: center)
|
||||
counter(page).update(1)
|
||||
|
||||
// The main content of the document is passed in here.
|
||||
body
|
||||
|
||||
// === BIBLIOGRAPHY ===
|
||||
// The bibliography has been commented out to prevent rendering errors.
|
||||
// To use it, create a "references.yml" file and uncomment the line below.
|
||||
// bibliography(references, title: "Bibliography")
|
||||
}
|
||||
|
||||
// === DOCUMENT CONFIGURATION ===
|
||||
// Apply the 'report' template to the entire document with the specified parameters.
|
||||
#show: report.with(
|
||||
title: "Algorithms for Lightsaber Dueling",
|
||||
author: "Anakin Skywalker",
|
||||
group_name: "Jedi Order Research Group", // Added for completeness
|
||||
unit_type: "Full Unit",
|
||||
report_type: "Final Report",
|
||||
course_name: "BSc (Hons) in Computer Science",
|
||||
supervisor: "Obi-Wan Kenobi",
|
||||
date: "October 2024",
|
||||
references: "references.yml" // Specify your bibliography file here
|
||||
)
|
||||
|
||||
|
||||
|
||||
// === MAIN CONTENT STARTS HERE ===
|
||||
|
||||
= Examples
|
||||
|
||||
#lorem(20)
|
||||
|
||||
== Citation
|
||||
This is something stated from a source.
|
||||
// The citation @example-source was removed because the bibliography is currently disabled.
|
||||
// You will need to add an entry for "example-source" in your "references.yml" file.
|
||||
|
||||
|
||||
== Tables
|
||||
Here's a table:
|
||||
#figure(
|
||||
caption: [Table of numbers],
|
||||
table(
|
||||
columns: (auto, auto),
|
||||
inset: 8pt,
|
||||
align: horizon,
|
||||
table.header(
|
||||
[*Letters*], [*Number*],
|
||||
),
|
||||
[Five], [5],
|
||||
[Eight], [8],
|
||||
)
|
||||
)
|
||||
|
||||
== Code blocks
|
||||
Here's a code block in Golang:
|
||||
|
||||
```go
|
||||
package main
|
||||
import "fmt"
|
||||
func main() {
|
||||
fmt.Println("Hello, world!")
|
||||
}
|
||||
```
|
||||
|
||||
== Math
|
||||
Let $a$, $b$, and $c$ be the side
|
||||
lengths of right-angled triangle.
|
||||
Then, we know that:
|
||||
$ a^2 + b^2 = c^2 $
|
||||
|
||||
Prove by induction:
|
||||
$ sum_(k=1)^n k = (n(n+1)) / 2 $
|
Binary file not shown.
@ -1,60 +0,0 @@
|
||||
#import "../lib.typ": *
|
||||
|
||||
#show: report.with(
|
||||
title: "Algorithms for Lightsaber dueling", // Change accordingly
|
||||
author: "Anakin Skywalker", // Add your name here
|
||||
unit_type: "Full Unit", // Full Unit or Half Unit
|
||||
report_type: "Final Report", // Project Plan, Interim Report, Final Report
|
||||
course_name: "BSc (Hons) in Computer Science", // Change accordingly
|
||||
supervisor: "Obi-Wan Kenobi", // Add your supervisor's name here
|
||||
date: "October 2024", // Change accordingly
|
||||
)
|
||||
|
||||
#import "@preview/codly:1.0.0": *
|
||||
#show: codly-init.with()
|
||||
#codly(zebra-fill: color.hsl(200deg, 80%, 95%, 98%))
|
||||
#codly(display-name: false)
|
||||
|
||||
= Examples
|
||||
|
||||
#lorem(20)
|
||||
|
||||
== Citation
|
||||
This is something stated from a source @example-source.
|
||||
|
||||
== Tables
|
||||
Here's a table:
|
||||
#figure(
|
||||
caption: [Table of numbers],
|
||||
table(
|
||||
columns: (auto, auto),
|
||||
inset: 8pt,
|
||||
align: horizon,
|
||||
table.header(
|
||||
[*Letters*], [*Number*],
|
||||
),
|
||||
[Five], [5],
|
||||
[Eight], [8],
|
||||
)
|
||||
)
|
||||
|
||||
== Code blocks
|
||||
Here's a code block in Golang:
|
||||
|
||||
```go
|
||||
package main
|
||||
import "fmt"
|
||||
func main() {
|
||||
fmt.Println("Hello, world!")
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
== Math
|
||||
Let $a$, $b$, and $c$ be the side
|
||||
lengths of right-angled triangle.
|
||||
Then, we know that:
|
||||
$ a^2 + b^2 = c^2 $
|
||||
|
||||
Prove by induction:
|
||||
$ sum_(k=1)^n k = (n(n+1)) / 2 $
|
Reference in New Issue
Block a user