Unofficial typst template for undergraduate thesis manuscript for PUP (Polytechnic University of the Philippines). This template adheres to the University’s Thesis and Dissertation Manual as of 2017 (ISBN: 978-971–95208-8-7 (Online)). An example manuscript is also provided (see ./thesis.pdf
).
Setup
Using Typst CLI:
typst init @preview/uo-pup-thesis-manuscript my-thesis
cd my-thesis
typst compile thesis.typ # to compile to PDF
or run
typst watch thesis.typ # to automatically compiles PDF on save
Usage
The template already provided an example structure and some guides. But to start from nothing, make an entrypoint file with a basic structure like this:
// thesis.typ
#import "@preview/uo-pup-thesis-manuscript:0.1.0": *
#show: template.with(
[<your thesis title here>],
("Author 1", "Author 2", ..., "Author N"),
"name of your college here",
"name of your deg. program here",
"Month YYYY"
)
// Main content starts here
// This provides a customized heading for
// chapters that follows the manual
#chapter(1, "Chapter 1 Title")
// Since #chapter() provides a heading level 1,
// start each headings under chapters with level 2
// to avoid messing up the generated Table of Contents
== Introduction
...
#chapter(2, "Chapter 2 Title")
== Topic A
...
// End of main content
// Bibliography formatting setup
#set par(first-line-indent: 0pt, hanging-indent: 0.5in)
#set page(header: context [#h(1fr) #counter(page).get().first()])
#align(center)[ #heading("REFERENCES") ]
#set par(spacing: 1.5em)
// Get the apa.csl file from `template/` folder
#bibliography(title: none, style: "./apa.csl", "path/to/your/bibtex/file.bib")
// Appendices
#show: appendices-section
#appendix(1, "Appendix Title")
...
#pagebreak()
#appendix(2, "Appendix Title")
...
There are also provided utilities for some parts that have a specific way of formatting.
For example, in Definition of Terms
and Significance of the Study
sections, use #description
function:
== Significance of the Study
#description(
(
(term: [Topic A], desc: [#lorem(30)]),
(term: [Topic B], desc: [#lorem(30)]),
(term: [Topic C], desc: [#lorem(30)]),
)
)
...
== Definition of Terms
#description(
(
(term: [Topic A], desc: [#lorem(30)]),
(term: [Topic B], desc: [#lorem(30)]),
)
)
If there’s any mistakes, wrong formatting (e.g., not actually following the manual), etc., file an issue or a pull request.
TODO
- [ ] Chapter 4
- [ ] Chapter 5
- [ ] Abstract
- [ ] Acknowledgement
- [ ] Copyright
- If possible:
- Approval Sheet
- Certificate of Originality