A template for writing an Oxford University thesis in R Markdown.
See the video tutorials for how to use the template:
- Part 1: Building the entire thesis
- Part 2: Building a single chapter
- Part 3: Understanding the file structure
- Part 4: A walk-through example of creating your thesis
- Part 5: The content included in index.Rmd (or: why the introduction chapter is special)
- Part 6: Adjusting the order of chapters
- Part 7: _bookdown.yml: Adjusting build settings
- Part 8: Makefile: Adjusting build settings
- Part 9: The LaTeX templates
For how to write your content with the R Markdown syntax, read through the sample content.
The template uses the bookdown R package together with the OxThesis LaTeX template, plus lots of inspiration from thesisdown.
NOTE: If you've used this template to write your thesis, drop me a line at ulrik.lyngs@cs.ox.ac.uk and I'll add a link showcasing it!
@misc{lyngsOxforddown2019,
author = {Lyngs, Ulrik},
title = {oxforddown},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ulyngs/oxforddown}},
doi = {10.5281/zenodo.3484682},
}
- LaTeX - if you're lazy and got sufficient disc space, just download and install the MacTeX distribution from tug.org/mactex/. If you're short on disc space, go for the BasicTeX distribution from the same site.
- (For unclear reasons, Yihui Xie's TinyTeX sometimes causes trouble! If you are unable to get the PDF output to work with TinyTex, try uninstalling it with tinytex::uninstall_tinytex(), then install the MacTeX LaTeX distribution and restart RStudio.)
- R and RStudio version 1.2 or higher
- (pandoc version 2 or higher - comes bundled with RStudio v1.2+)
- The R packages
bookdown
,tidyverse
andkableExtra
(should be automatically installed for you if you don't already have them, when you build this project for the first time in RStudio) - (If on a Mac): Command line developer tools. You can install these by typing
xcode-select --install
in a terminal prompt
- PDF output: see docs/_main.pdf
- Gitbook output: see ulyngs.github.io/oxforddown/
- clone the ulyngs/oxforddown repo or download it as a zip
- open oxforddown.Rproj in RStudio
- click 'Build All' on the 'Build' tab or type 'make pdf' in the terminal (not the R console!)
- the compiled PDF is saved as docs/_main.pdf, and the PDF is opened
- in the terminal tab (not the R console!), type 'make gitbook'
- the set of HTML files for the gitbook are stored in the docs/ folder, and the front page (docs/index.html) is opened in a browser
- if you want to deploy your thesis as a gitbook on GitHub Pages, then make sure that there's a .nojekyll file in the docs/ folder (otherwise GitHub does some voodoo that causes some paths not to work)
- in the terminal tab (not the R console!), type 'make word'
- the compiled MS Word document is saved as docs/_main.docx and opened
The Word output has no template behind it, and many things do not work (e.g. image rotation, highlighting corrections). I encourage pull requests that optimise the Word output, e.g. by using tools from the officer
package.
To use this template to write your thesis, do the following:
- update the YAML header (the stuff at the top between '---') in index.Rmd with your name, college, etc.
- write the individual chapters as .Rmd files in the root folder - the introduction chapter must be named _00-introduction.Rmd.
- write the front matter (abstract, acknowledgements, abbreviations) and back matter (appendices) by adjusting the .Rmd files in the front-and-back-matter/ folder
- for abbreviations, change front-and-back-matter/abbreviations.tex to fit your needs (follow the LaTeX syntax in there)
.Rmd files you don't want included in the body text must be given file names that begin with an underscore (e.g. front-and-back-matter/_abstract.Rmd and front-and-back-matter/_acknowledgements.Rmd). (Alternatively, specify manually in _bookdown.yml which files should be merged into the body text.)
To knit an individual chapter without compiling the entire thesis:
- open the .Rmd file of a chapter
- add a YAML header specifying the output format(s) (e.g.
bookdown::word_document2
for a word document you might want to upload to Google Docs for feedback from collaborators)
- To output a single chapter to PDF, use
bookdown::pdf_documents2: template: templates/brief_template.tex
- this will format the chapter in the OxThesis style but without including the front matter (table of contents, abstract, etc)
The output file is saved in the root folder.
By default, when you build the entire thesis, the auxillary files will be removed (to adjust how this is done, edit Makefile).
To clean up files generated when knitting individual chapters, type 'make clean-knits' in the terminal.
- at the moment only PDF and HTML output have been properly implemented; I may improve on the Word output further down the line
Enjoy!