Skip to content

Commit

Permalink
Update the thesis template and structure (part 1)
Browse files Browse the repository at this point in the history
  • Loading branch information
jiribenes authored Jan 16, 2025
2 parents b973003 + e46aee7 commit 5a25fea
Show file tree
Hide file tree
Showing 21 changed files with 716 additions and 1,486 deletions.
48 changes: 19 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,35 +1,25 @@
ROOT_DOC = thesis
BIB_FILE = bibliography
ROOT_FILE := thesis.tex
TEX_CMD := latexmk -lualatex -interaction=nonstopmode -f

MODE = batchmode
LATEX = pdflatex -interaction=$(MODE) -synctex=1
BIB = bibtex
.PHONY: default
default: pdf clean

.PHONY: all view clean

all: $(ROOT_DOC).pdf

view:
@xdg-open $(ROOT_DOC).pdf &
# Full build: builds the PDF and ensures correct citations
.PHONY: pdf
pdf:
$(TEX_CMD) $(ROOT_FILE)

# delete all output files but not the PDF
.PHONY: clean
clean:
@find . -name "*.aux" -type f -delete
@find . -name "*.log" -type f -delete
@find . -name "*.bbl" -type f -delete
@find . -name "*.blg" -type f -delete
@find . -name "*.bcf" -type f -delete
@find . -name "*.run.xml" -type f -delete
@find . -name "*.out" -type f -delete
@find . -name "*.toc" -type f -delete
@find . -name "*.synctex.gz" -type f -delete
@echo "Cleanup complete."
$(TEX_CMD) -c

.PHONY: full
full: $(ROOT_DOC).tex $(BIB_FILE).bib
$(LATEX) $(ROOT_DOC) ;true
$(BIB) $(ROOT_DOC) ;true
$(LATEX) $(ROOT_DOC) ;true
$(LATEX) $(ROOT_DOC) ;true
# delete all output files including the PDF
.PHONY: full-clean
full-clean:
$(TEX_CMD) -C

$(ROOT_DOC).pdf: $(ROOT_DOC).tex *.tex sections/** # Add further dependencies here
$(LATEX) $(ROOT_DOC)
# Rebuild the PDF on changes in the source files
.PHONY: watch
watch:
$(TEX_CMD) -pvc $(ROOT_FILE)
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,16 @@
# latex-thesis-template
Template for bachelor and master theses.
# Thesis Template
This repository includes a template for your bachelor's or master's thesis.
You may use the the command runner tool [`just`](https://github.com/casey/just) ([justfile](/justfile)) for easily building the PDF.
The build process assumes that you already have a functioning LaTeX toolchain with `lualatex` installed.
The file `thesis.tex` is the main file and includes each chapter as a separate file located in the [src](/src/) folder.

# Tips

- Use `git` for organising your thesis files. This allows you to easily revert changes and backup your files to Github.
- For ensuring your `.tex` source files remain readable, we adivse you to put every sentence on a separate line.

# Disclaimer

This template provides a basic thesis structure and a brief description of what to put in each chapter.
While this is a good starting point, we offer no guarantee that this structure is appropiate for your particular thesis or covers all requirements for a good grade.
It is your responsibility to appropiately adjust this template to fit your needs and requirements.
47 changes: 17 additions & 30 deletions bibliography.bib
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,31 +1,18 @@
@inproceedings{Cook1990object,
author = {Cook, William R.},
title = {Object-oriented programming versus abstract data types},
year = {1990},
booktitle = {Proceedings of the REX Workshop / School on the Foundations of Object-Oriented Languages},
publisher = {Springer},
pages = {151--178}
}
@inproceedings{Cook2009understanding,
author = {Cook, William R.},
title = {On understanding data abstraction, revisited},
booktitle = {Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications},
year = {2009},
pages = {557--572},
address = {New York},
publisher = {ACM},
location = {Orlando},
numpages = {16},
}
@article{Cockx2020,
title = {Elaborating dependent (co) pattern matching: No pattern left behind},
author = {Cockx, Jesper and Abel, Andreas},
journal = {Journal of Functional Programming},
volume = {30},
year = {2020},
publisher = {Cambridge University Press},
DOI = {10.1017/S0956796819000182}
@article{brachthäuserBoxing,
author = {Brachth\"{a}user, Jonathan Immanuel and Schuster, Philipp and Lee, Edward and Boruch-Gruszecki, Aleksander},
title = {Effects, capabilities, and boxes: from scope-based reasoning to type-based reasoning and back},
year = {2022},
issue_date = {April 2022},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {6},
number = {OOPSLA1},
url = {https://doi.org/10.1145/3527320},
doi = {10.1145/3527320},
abstract = {Reasoning about the use of external resources is an important aspect of many practical applications. Effect systems enable tracking such information in types, but at the cost of complicating signatures of common functions. Capabilities coupled with escape analysis offer safety and natural signatures, but are often overly coarse grained and restrictive. We present System C, which builds on and generalizes ideas from type-based escape analysis and demonstrates that capabilities and effects can be reconciled harmoniously. By assuming that all functions are second class, we can admit natural signatures for many common programs. By introducing a notion of boxed values, we can lift the restrictions of second-class values at the cost of needing to track degree-of-impurity information in types. The system we present is expressive enough to support effect handlers in full capacity. We practically evaluate System C in an implementation and prove its soundness.},
journal = {Proc. ACM Program. Lang.},
month = apr,
articleno = {76},
numpages = {30},
keywords = {capabilities, effect polymorphism, effect systems, second-class values}
}
Loading

0 comments on commit 5a25fea

Please sign in to comment.