Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oduwsdl/wsdlthesis
ODU WS-DL Thesis/Dissertation LaTeX Template
https://github.com/oduwsdl/wsdlthesis
dissertation latex odu template thesis wsdl
Last synced: 2 months ago
JSON representation
ODU WS-DL Thesis/Dissertation LaTeX Template
- Host: GitHub
- URL: https://github.com/oduwsdl/wsdlthesis
- Owner: oduwsdl
- License: mit
- Created: 2017-10-16T19:21:05.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T16:00:39.000Z (9 months ago)
- Last Synced: 2024-04-20T16:58:09.720Z (9 months ago)
- Topics: dissertation, latex, odu, template, thesis, wsdl
- Language: TeX
- Size: 165 KB
- Stars: 3
- Watchers: 5
- Forks: 11
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OUT OF DATE: ODU WS-DL Thesis/Dissertation LaTeX Template
**Important:** The template contained in this repository was last updated *May 2018*. The most recent template (approved by the College of Sciences in *April 2024*) is available at
## Summary
This is a ready to use ODU thesis/dissertation LaTeX template, both for Master and PhD, tailored to suit the needs of the [WS-DL Research Group](https://ws-dl.cs.odu.edu/).
The template is based on [the Old Dominion University Guide for the Preparation of Theses and Dissertation](https://www.odu.edu/content/dam/odu/offices/graduate-studies/thesis-dissertation/docs/thesis_dissertation_guide.pdf)
This repository contains:* a LaTeX class named, `wsdlthesis`
* a minimal bootstrap thesis with an opinionated directory structure and file naming convention
* a handful of useful macros
* a `Makefile` with common tasks and a `Dockerfile` to package necessary dependencies## Getting Started
[Install necessary LaTeX](https://en.wikibooks.org/wiki/LaTeX/Installation) distribution or use [Docker](https://docs.docker.com/engine/installation/).
Then follow these steps:```
$ git clone https://github.com/oduwsdl/wsdlthesis.git YOUR_THESIS_NAME
$ cd YOUR_THESIS_NAME
$ make
```This should generate the `main.pdf` file in the working directory that has all the necessary skeleton of a PhD dissertation.
### Basic Customization
Change the basic properties such as `title` and `author` in the `config.tex` file to make it your own.
At the bottom of the `config.tex` file there are some configuration options that can be enabled/disabled as needed.* `\mastertrue` - Uncomment this if a Master's thesis is desired (the default is PhD dissertation).
* `\proposaltrue` - Uncomment this for the candidacy proposal (the default is thesis/dissertation).
* `\revisiontrue` - Uncomment this to add the draft revision build date and time in the footer (the default is final formatting).Alternatively, these attributes can be set by passing optional parameters to the `documentclass[master,proposal,revision]{wsdlthesis}` in the `main.tex` file.
Any additional parameters to the `wsdlthesis` class will be passed on to the parent `report` class.
We encourage to keep the `main.tex` file unchanged.The `Abstract`, `Preface`, and `Vita` pages are placed under the `./pages` folder.
Modify corresponding `./pages/*.tex` files to make them your own.
Now, build again to make sure these changes are reflected in the `main.pdf` file.```
$ make
```### Adding Chapters
The repository is preloaded with `Introduction`, `Background`, and `Related Work` chapters under the `./chapters` folder.
We use a specific naming convention for chapter files like `01_introduction.tex` and `02_background.tex`.
Numeric prefix here makes it easy to include these files automatically in the desired order, while the chapter name helps to quickly open the desired file for modifications.
Start with modifying the content of the existing chapters and add more chapter files with the same naming convention as necessary.A similar file naming convention is used for the appendix chapters that are located under the `./appendices` folder.
The example file there uses an alphabetical prefix in the file name to match the chapter numbering in the document, but any naming scheme would work as long as files are sortable in the desired order.### Adding Bibliography
The `ref.bib` file is located in the root of the repository and referenced in the `main.tex` file.
In most cases, adding more entries in the bib file, as needed, would be sufficient.### Adding Figures
A folder named `./figures` is specified as a place to store the figures.
Additionally, `\graphicspath` is set to this folder in the `config.tex` file so that figures can be added in the document just by using their names rather than a relative or absolute path.### Adding Listings
Code samples are a very common thing that appear in a CS thesis.
***[TODO: We need to add a folder for external code samples, streamline the mechanism to add listings, include a list of listings after ToC in the class, and add some helper macros.]***
## Make Tasks
Task | Description
-------------|-------------------------------------------------------------------
`make` | Make a clean build of the `main.pdf`
`make build` | Repeatedly build LaTeX and BibTeX to ensure references are correct
`make clear` | Remove all intermediate files
`make clean` | Remove all intermediate files and the `main.pdf`
`make save` | Save a timestamped copy of `main.pdf` under `./revisions` folder## Using Docker
To avoid installing LaTeX and other dependencies on a host machine one can use official `oduwsdl/wsdlthesis` Docker image.
```
$ docker image pull oduwsdl/wsdlthesis
```Alternatively, an image can be built locally as the repository includes a `Dockerfile`.
```
$ docker image build -t oduwsdl/wsdlthesis .
```**Note:** This is a big image (>5GB) as it includes `texlive-full` package along with some other dependencies, hence, both pulling it from the DockerHub or building locally may take a significant amount of time and disk space.
Once the image is locally available, either by pulling from DockerHub or building locally, run the following command from the source directory to compile the code.
By virtue of mounting current working directory inside the container at `/src`, build artifacts such as `main.pdf` will be available in the current directory.```
$ docker container run --rm -it -v $PWD:/src oduwsdl/wsdlthesis
```The default command in the image is set to `make`, which can be overridden to anything as illustrated below.
```
$ docker container run --rm -it -v $PWD:/src oduwsdl/wsdlthesis make save
```To further simplify these long commands, the repository provides a wrapper Shell script `runindocker.sh`.
The script also ensures that the container runs with the appropriate UID and GID to avoid any file permission issues in build artifacts.
The above two commands can be executed using this script as illustrated below.```
$ ./runindocker.sh
$ ./runindocker.sh make save
```## Macros
The repository comes with the `custommacros.sty` file that is included in the `main.tex` file.
This is a good place to include all the necessary packages needed for your thesis.
This files is preloaded with some helper macros, but add your own as necessary.### `\todo`
The `\todo` macro adds a red **TODO** note.
This can be used with or without an argument.
`\todo` adds a default note while `\todo[Custom note]` allows the note customization.### `\inputAllFiles`
The `\inputAllFiles` is a macro to add all `*.tex` files under the folder argument.
This is being used in the `main.tex` file to automatically include all the chapters and appendices.
This will only work on Unix-like machines, hence, Windows users should manually `\input` those files.