Make sure you have a working LaTeX installation, including latexmk.
Preferred method (for maximal reproducibility): Install Docker on your computer, use a pre-build docker image to run all LaTeX-related commands.
- Install Docker
docker pull mathematicalmichael/thesis- Clone thesis and copy contents of
binto~/binon your computer. - Make sure
~/binis in yourPATHvariable:
mkdir -p ~/bin/
cp bin/* ~/bin/
You now have all the files you need to build the thesis, but we need to make your computer aware of them.
export PATH=$HOME/bin:$PATH
This makes your current shell session aware of the files we just moved (we could have replaced $HOME with the directory of the repository and skipped moving them, but if you move the location of it, the PATH will have to change accordingly.
If you add this line to
~/.bash_profile(on macOS; it is~/.bashrcin Linux), the programs will be accessible from any shell session.
You can skip copying the files if you only plan to use them within this project folder:
./bin/dmake
Moving them to somewhere in your path means you can just run the commands from anywhere on your computer. If you plan to use an IDE (Atom, TexMaker, etc), then the contents need to be in your PATH variable.
Launch an interactive editor (using Binder):
This button/link is pointing to the
binderbranch of this repository and usingnbgitpullerto sync latest changes frommasterbranch. These choices were made to expedite load times, since mybinder.org re-builds the environment if it detects commits. Thebinderbranch is an orphan, containing only the build files. The environment contains all the dependencies required to generate this dissertation.
When it launches:
- Change the web-address ending
/tree/...to/lab - Open the Terminal by clicking on the icon
- Copy/Paste the following commands:
cd template-thesis; make; make cleanYou can then use the File-Browser on the left-hand side to navigate to
thesis/dissertation.pdfand open a preview PDF in the JupyterLab web-app.
This will run the makefile, which calls LaTeXMake to fully compile the thesis with the bibliography and references.
Template based on this repository.
Clone the repository, cd thesis, and execute make; make clean to build the PDF, then open with your favorite viewer (a web-browser works).
Note that make defaults to make dissertation.pdf.
Alternatively, click the binder badge above, which will launch a Jupyterlab interface that has jupyterlab-latex pre-installed, so you can right-click on the opened
dissertation.texfile toShow LaTeX Preview(as per usual, it may take several builds for all citations and references to link properly). Usingmakein Terminal is the proper workflow, butjupyterlab-latexcan technically be configured to runlatekmkthe same way the makefile does.
Docker is a container-orchestration platform which also offers a cloud registry. What this means is that if you have Docker installed on your computer (it runs on any platform), you can download a Linux image with all the dependencies required and build the thesis without installing Python or LaTeX on your computer, since it will be built in an container managed by Docker. This technology enables the Binder service above.
Clone the repo and cd into the folder, then you can build the PDF with:
docker run --rm -v $(pwd):/tmp --workdir /tmp mathematicalmichael/math-user:thesis make
Jupyterlab is a good IDE, and launches with the Binder link above. You can run the Docker image to get the same environment locally in your web browser. Alternatively, you might choose to use a different IDE.
Assuming you have a local LaTeX installation (including latekmk), you can use an editor to accomplish a very comfortable environment on your local machine in your favorite editor. I personally like Atom, so below are instructions to set up a LaTeX editor capable of building this thesis (with two-way SyncTeX):
If using Atom, here are the packages I installed in order to get things working (make sure the packages in /binder/apt.txt are also installed on your computer first since these are the LaTeX dependencies on which we rely).
- atom-latex [0.8.10]
The following were simply for visual purposes (italics = highly recommend):
- minimap
- minimap-highlight-selected
- minimap-selection
- minimap-autohide
- minimap-lens
- highlight-selected
- highlight-line
- multi-cursor