├── .github └── workflows │ └── latexmk.yml ├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── Sources ├── Abstract.tex ├── Introduction.tex ├── Title.tex ├── Title_Dissertation_ETH_Zurich.tex └── Title_Dissertation_Heidelberg.tex ├── Thesis.bib ├── Thesis.tex ├── bibliography-mimosis.tex ├── english-mimosis.lbx ├── latexmkrc └── mimosis.cls /.github/workflows/latexmk.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: CI 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the main branch 8 | push: 9 | branches: [ master ] 10 | pull_request: 11 | branches: [ master ] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 17 | jobs: 18 | # This workflow contains a single job called "build" 19 | build: 20 | # The type of runner that the job will run on 21 | runs-on: ubuntu-latest 22 | 23 | # Steps represent a sequence of tasks that will be executed as part of the job 24 | steps: 25 | - uses: actions/checkout@v3 26 | 27 | # This hack makes hspaans/latexmk-action use lualatex: 28 | - run: echo "\$pdflatex = 'lualatex -file-line-error %O %S';" >> latexmkrc 29 | 30 | - name: Compile LateX 31 | uses: hspaans/latexmk-action@v1 32 | with: 33 | format: pdf 34 | filename: "Thesis.tex" 35 | 36 | - name: Push generated files to branch 'gh-pages' 37 | run: | 38 | mkdir -p static/pdf 39 | mv *.pdf static/pdf 40 | cd static/pdf 41 | git init -b main 42 | git config user.name $GITHUB_ACTOR 43 | git config user.email $GITHUB_ACTOR@users.noreply.github.com 44 | git remote add origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY 45 | git add . 46 | git commit -m "[release] Publish on GitHub Pages" 47 | git push --force origin main:gh-pages 48 | if: ${{ success() }} 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.acn 2 | *.acr 3 | *.alg 4 | *.aux 5 | *.auxlock 6 | *.bak 7 | *.bbl 8 | *.bcf 9 | *.blg 10 | *.dvi 11 | *.fls 12 | *.glg 13 | *.glo 14 | *.gls 15 | *.idx 16 | *.ist 17 | *.ilg 18 | *.ind 19 | *.log 20 | *.out 21 | *.pdf 22 | *.ps 23 | *.sav 24 | *.swp 25 | *.synctex.gz 26 | *.toc 27 | 28 | *.run.xml 29 | *-blx.bib 30 | 31 | *_latexmk 32 | 33 | *~ 34 | 35 | *.pgf-plot.* 36 | 37 | Figures/External/ 38 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Bastian Rieck 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | build: 4 | latexmk 5 | 6 | clean: 7 | latexmk -c 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # latex-mimosis: A minimal & modern template for your thesis 2 | 3 | This repository contains a minimal & modern LaTeX template for 4 | dissertations and other university documents. 5 | 6 | For the impatient or curious: [this is what the template looks like](https://pseudomanifold.github.io/latex-mimosis/Thesis.pdf). 7 | You may also want to take a look at [my Ph.D. dissertation](http://bastian.rieck.me/research/Dissertation_Rieck_2017.pdf), which uses a predecessor of this template. 8 | 9 | # Users 10 | 11 | Before going over the details of this template, why not look at how it 12 | looks in practice? The following documents have been typeset with this 13 | template (or a slightly modified variant of it): 14 | 15 | - S. Almasian, [Learning Joint Vector Representations of Words and Named Entities](https://github.com/satya77/Thesis_Entity_Embeddings/blob/master/MasterThesis_SatyaAlmasian.pdf), M.Sc. thesis, Heidelberg University, 2018 16 | - E. Angriman, [Scalable Algorithms for the Analysis of Massive Networks](https://edoc.hu-berlin.de/handle/18452/25013), Ph.D. thesis, Humboldt University of Berlin, 2022 17 | - C. Bock, [Motifs and Manifolds: Statistical and Topological Machine Learning for Characterising and Classifying Biomedical Time Series](https://www.research-collection.ethz.ch/handle/20.500.11850/524042), Ph.D. thesis, ETH Zurich, 2021 18 | - A. Coín, [Bayesian RKHS-based methods in functional regression](https://github.com/antcc/tfm/releases/download/v1.1/masters-thesis.pdf), M.Sc. thesis, Autonomous University of Madrid, 2022 19 | - K. Hanser, [Visualization of Coherence in Meteorological Data](https://github.com/hanserK/master_thesis/blob/master/Thesis_Karsten_Hanser.pdf), M.Sc. thesis, Heidelberg University, 2018 20 | - M. Moor, [Machine Learning on Clinical Time Series: Classification and Representation 21 | Learning](https://www.research-collection.ethz.ch/handle/20.500.11850/532377), Ph.D. thesis, ETH Zurich, 2022 22 | - B. Rieck, [Persistent Homology in Multivariate Data Visualization](http://archiv.ub.uni-heidelberg.de/volltextserver/22914/1/Dissertation.pdf), Ph.D. thesis, Heidelberg University, 2017 23 | 24 | Please open a pull request if you want your document to be listed here, 25 | and consider acknowledging this repository. 26 | 27 | # Advantages 28 | 29 | This template aims to be… 30 | - clean: no LaTeX trickery 31 | - minimal: no unnecessary adjustments and decorations 32 | - modern: typographically pleasing 33 | 34 | It is specifically suited for the European education system because it 35 | uses A4 paper size by default—this can be easily adjusted to fit 36 | your personal needs, though (see below). 37 | 38 | The class is based on [`KOMA-script`](komascript.de), so it should be 39 | flexible enough to suit virtually any purpose. 40 | 41 | # How to use 42 | 43 | If you are using Overleaf, download [`latex-mimosis`](https://www.overleaf.com/latex/templates/latex-mimosis/syptyjpjrzzj) 44 | in the gallery. If you want to use the template locally, follow these 45 | steps: 46 | 47 | - Clone this repository 48 | - Copy the file `mimosis.cls` into your document directory 49 | - Add `\documentclass{mimosis}` to your document preamble 50 | - Optionally copy the file `Thesis.tex` and the files in `Sources` as 51 | a starting point 52 | - Use `latexmk` to build the document 53 | - Write a nice thesis in LaTeX 54 | 55 | While you can customise everything to your heart's desire, you should 56 | probably start with changing the fonts. I strongly recommend to use 57 | `xelatex` or `lualatex` to build the document, as this will make font 58 | selection almost trivial. Essentially, you only require these three 59 | commands (I took the liberty to specify some example fonts): 60 | 61 | ```latex 62 | \setmainfont{Baskerville} 63 | \setsansfont{IBM Plex Sans} 64 | \setmonofont{IBM Plex Mono} 65 | ``` 66 | 67 | Put these commands in your main file such as `Thesis.tex` and be sure to 68 | remove this code block here: 69 | 70 | ```latex 71 | \ifxetexorluatex 72 | % ... 73 | \else 74 | % ... 75 | \fi 76 | ``` 77 | 78 | Note that the document will work fine nevertheless, but some people 79 | dislike the default fonts or do not have them installed. 80 | 81 | **Overleaf users**: If you are using Overleaf to build your thesis, you 82 | are restricted by their choice of fonts. Please read [this document](https://www.overleaf.com/learn/latex/Questions/Which_OTF_or_TTF_fonts_are_supported_via_fontspec%3F) 83 | for more information about which fonts are available. 84 | 85 | # How to customise 86 | 87 | The template is based on the excellent [`KOMA-script`](https://ctan.org/pkg/koma-script) 88 | class. You can thus change the appearance of many things quite easily. 89 | For example, if you want the thesis to use the `letter` paper format, 90 | just add 91 | 92 | \KOMAoptions{paper=letter} 93 | 94 | in the preamble of the document and recompile. 95 | 96 | # Example 97 | 98 | The repository comes with an example file called `Thesis.tex`. Please 99 | take a look at this file in order for more detailed instructions about 100 | how to use the class. 101 | 102 | It is recommended to use `latexmk` to build your LaTeX documents. Your 103 | distribution might already have this command. If so, you can use 104 | 105 | latexmk 106 | 107 | in the main directory of this repository in order to build the example 108 | file. 109 | 110 | ## Required packages for the class 111 | 112 | The template uses various LaTeX packages that you should install using 113 | your favourite LaTeX distribution. Some distributions already do this 114 | automatically when you compile the document for the first time. Others 115 | require manual updates. Please refer to the documentation of your LaTeX 116 | distribution for more details. 117 | 118 | Here is a list of packages that you need (I am using the package 119 | name as specified on CTAN): 120 | 121 | - [`amsmath`](https://ctan.org/pkg/amsmath) 122 | - [`amsthm`](https://ctan.org/pkg/amsthm) 123 | - [`booktabs`](https://ctan.org/pkg/booktabs) 124 | - [`csquotes`](https://ctan.org/pkg/csquotes) 125 | - [`dsfont`](https://ctan.org/pkg/dsfont) 126 | - [`glossaries`](https://ctan.org/pkg/glossaries) 127 | - [`graphicx`](https://ctan.org/pkg/graphicx) 128 | - [`fontspec`](https://ctan.org/pkg/fontspec) (only for LuaTeX and XeTeX users) 129 | - [`ifluatex`](https://ctan.org/pkg/ifluatex) 130 | - [`ifpdf`](https://ctan.org/pkg/ifpdf) 131 | - [`ifxetex`](https://ctan.org/pkg/ifxetex) 132 | - [`inputenc`](https://ctan.org/pkg/inputenc) (only for pdfTeX users) 133 | - [`koma-script`](https://ctan.org/pkg/koma-script) 134 | - [`makeidx`](https://ctan.org/pkg/makeidx) 135 | - [`paralist`](https://ctan.org/pkg/paralist) 136 | - [`setspace`](https://ctan.org/pkg/setspace) 137 | - [`siunitx`](https://ctan.org/pkg/siunitx) 138 | - [`subcaption`](https://ctan.org/pkg/subcaption) 139 | - [`xcolor`](https://ctan.org/pkg/xcolor) 140 | - [`xspace`](https://ctan.org/pkg/xspace) 141 | 142 | ## Required packages for the example document 143 | 144 | Typesetting the example document requires an additional set of packages. 145 | Feel free to remove them, though—they are only used for showcasing 146 | how a real document might look like. 147 | 148 | - [`biblatex`](https://ctan.org/pkg/biblatex) 149 | - [`bookmark`](https://ctan.org/pkg/bookmark) 150 | - [`etoolbox`](https://ctan.org/pkg/etoolbox) 151 | - [`hyperref`](https://ctan.org/pkg/hyperref) 152 | - [`metalogo`](https://ctan.org/pkg/metalogo) 153 | 154 | For pdfTeX users: 155 | 156 | - [`ebgaramond`](https://ctan.org/pkg/ebgaramond) 157 | - [`sourcecodepro`](https://ctan.org/pkg/sourcecodepro) 158 | 159 | For LuaTeX or XeTeX users: 160 | 161 | - The EB Garamond font 162 | - The Source Code Pro font 163 | 164 | If you installed the packages above, everything should work 165 | automatically. 166 | 167 | # License 168 | 169 | The template uses the MIT license. Please see the file 170 | [`LICENSE.md`](LICENSE.md) in the main directory of the repository for 171 | more details. 172 | 173 | # Known issues 174 | 175 | The superscript citation style is not compatible with all citation 176 | styles. For example, to use the citation with `chem-angew`, please 177 | use an adjusted `\supercite` command such as this one: 178 | 179 | ```latex 180 | \DeclareCiteCommand{\supercite}[\mkbibsuperscript] 181 | {\bibopenbracket% 182 | \usebibmacro{cite:init}% 183 | \let\multicitedelim=\supercitedelim 184 | \usebibmacro{prenote}} 185 | {\usebibmacro{citeindex}% 186 | \usebibmacro{cite:comp}} 187 | {} 188 | {\usebibmacro{cite:dump}% 189 | \usebibmacro{postnote}% 190 | \bibclosebracket% 191 | } 192 | ``` 193 | 194 | Thanks to Carlo Botha for this contribution! 195 | 196 | # Extensions 197 | 198 | ## Table of contents per chapter 199 | 200 | If you want a small table of contents for each chapter, update 201 | `mimosis.cls` as follows: 202 | 203 | ```latex 204 | \usepackage[automark,headsepline,plainheadsepline]{scrlayer-scrpage} 205 | \pagestyle{scrheadings} 206 | \automark[section]{chapter} 207 | 208 | \lehead*{\headmark} 209 | \cehead{} 210 | \rehead{\headmark} 211 | 212 | \lohead{\headmark} 213 | \cohead{} 214 | \rohead*{\headmark} 215 | 216 | \newpairofpagestyles[scrheadings]{chapter}{ 217 | \KOMAoptions{headsepline=false,plainheadsepline=false}% 218 | \ihead*{}% 219 | \ohead*{}% 220 | } 221 | 222 | \newpairofpagestyles[scrheadings]{part}{ 223 | \KOMAoptions{headsepline=false,plainheadsepline=false}% 224 | \ihead*{}% 225 | \ohead*{}% 226 | } 227 | 228 | \renewcommand*\chapterpagestyle{chapter} 229 | 230 | \renewcommand*\partpagestyle{part} 231 | ``` 232 | 233 | This extension was contributed by [Nikos Antoniadis](https://github.com/nikosantoniadis) in [issue 16](https://github.com/Pseudomanifold/latex-mimosis/issues/16). 234 | If you want to add this as proper extension or configurable parameter, 235 | please let me know! 236 | 237 | # Frequently asked questions (FAQ) 238 | 239 | 1. Does the template support bold fonts?\ 240 | \ 241 | Yes. First of all, you can change the default font (my personal 242 | suggestion is to use the `fontspec` package and `xelatex` or `lualatex`; 243 | then, changing your font is as easy as using `\setmainfont`). Second, 244 | note that in older TeX distributions, the font ‘EB 245 | Garamond’, shipped in the `ebgaramond` package, does *not* ship 246 | with a bold variant. Consider updating your TeX distribution or manually 247 | replacing the font. This is *not* an issue with this 248 | package—please see [issue #10](/../../issues/10) for more 249 | information. 250 | 251 | 2. How do I use `siunitx`?\ 252 | \ 253 | The options of this package were recently updated. The setup has now 254 | been removed to simplify the package. For the new version of the 255 | package, the following options are suggested by [Holger Dell](https://github.com/holgerdell): 256 | ```latex 257 | \sisetup{% 258 | mode = match, 259 | propagate-math-font = true, 260 | reset-math-version = false, 261 | reset-text-family = false, 262 | reset-text-series = false, 263 | reset-text-shape = false, 264 | text-family-to-math = true, 265 | text-series-to-math = true, 266 | } 267 | ``` 268 | If this does not work, you can also fall back to the older settings: 269 | ```latex 270 | \sisetup{% 271 | detect-all = true, 272 | detect-family = true, 273 | detect-mode = true, 274 | detect-shape = true, 275 | detect-weight = true, 276 | } 277 | ``` 278 | 279 | 3. I have a font with special support for ordinal numbers. How can I use 280 | them?\ 281 | \ 282 | The easiest way is to override the definitions and specify the 283 | required font features: 284 | ```latex 285 | \renewcommand{\st}{{\addfontfeatures{VerticalPosition=Ordinal}\textup{st}}\xspace} 286 | \renewcommand{\rd}{{\addfontfeatures{VerticalPosition=Ordinal}\textup{rd}}\xspace} 287 | \renewcommand{\nd}{{\addfontfeatures{VerticalPosition=Ordinal}\textup{nd}}\xspace} 288 | \renewcommand{\th}{{\addfontfeatures{VerticalPosition=Ordinal}\textup{th}}\xspace} 289 | ``` 290 | Notice that this will not work for most fonts. If you are unsure, 291 | just leave the default values in place. 292 | 293 | 4. I want to use standard TeX fonts, but they look weird. (See [issue #29](https://github.com/Pseudomanifold/latex-mimosis/issues/29) for more details)\ 294 | \ 295 | This could be related to the encoding if you are using `pdflatex`. 296 | Either consider using a better font, such as `lmodern` (to be found 297 | in the package with the same name), or use a different encoding: 298 | ```latex 299 | \usepackage[OT1]{fontenc} 300 | ``` 301 | This might cause problems when copying text from the template, 302 | though. The better solution is to use `lmodern`. 303 | 304 | 5. How can I ensure that the font for equations matches the main font?\ 305 | \ 306 | This depends a lot on your font selection. If you are using 307 | `xelatex`, consider using the `mathspec` package. Else, check that 308 | a package is available that provides maths support. For EB Garamond, 309 | the `unicode-math` package can be used, for instance. (See [issue 310 | #33](https://github.com/Pseudomanifold/latex-mimosis/issues/33) for 311 | a brief discussion) 312 | 313 | 6. How can I remove the indent in the second line (and all following ones) of Table/Figure captions? \ 314 | \ 315 | In `mimosis.cls` change `\captionsetup{subrefformat=parens}` to: 316 | ```tex 317 | \captionsetup{subrefformat=parens,format=plain} 318 | ``` 319 | For details see [here](https://latex-tutorial.com/caption-customization-latex/). 320 | 321 | 7. How can I update the font size of citations? \ 322 | \ 323 | Check out `bibliography-mimosis.tex` and update or remove 324 | the `\renewcommand*{\citesetup}` block to your preference. 325 | 326 | 8. I do not like some of the mathematical symbols. How can I change them? \ 327 | \ 328 | You should be using `fontspec` and see whether your selected font 329 | supports `StylisticSet`. See [`garamond-math`](https://ctan.org/pkg/garamond-math) 330 | for an example. 331 | 332 | # Contributing 333 | 334 | If you require additional features, find some bugs, or just have some 335 | generic inquiries, please just open an issue in this repository. 336 | 337 | # Testimonials 338 | 339 | > I like it! 340 | 341 | — My mum 342 | 343 | > Garish and overproduced. 344 | 345 | — Some rando on social media 346 | 347 | > Nice and clean! 348 | 349 | — [`utopcell` on Hacker News](https://news.ycombinator.com/item?id=16414851) 350 | 351 | > A dream to work with! A beautiful template that just works. 352 | 353 | — [Leslie O'Bray](https://leslieobray.com) (who was totally not 354 | coerced into writing something nice about this template) 355 | 356 | # Contributors 357 | 358 | Here is a list of contributors: 359 | 360 | - [Nikos Antoniadis (nikosantoniadis)](https://github.com/nikosantoniadis): mini-TOC extension 361 | - [bottom-bracket](https://github.com/bottom-bracket): `automake` and `standalone` compatibility improvements 362 | - [Giuseppe (giuscri)](https://github.com/giuscri): improved cleanup operations 363 | - [Jannis Born (jannisborn)](https://github.com/jannisborn): extended hyperlinks for `\textcite` commands 364 | - Carlo Botha: fixed `\supercite` for `chem-angew` citation style 365 | - [Miloslav Číž (drummyfish)](https://github.com/drummyfish): grammar/style corrections for `README` file 366 | - [Michaël Defferrard (mdeff)](https://github.com/mdeff): matching fonts for mathematics and text 367 | - [Holger Dell (holgerdell)](https://github.com/holgerdell): numerous simplifications of the main template; compatibility updates; automated publishing workflow 368 | - [Florian Graf (f-graf)](https://github.com/f-graf): numerous font style and font size improvements 369 | - [Bastian Rieck (Pseudomanifold)](https://github.com/Pseudomanifold): original creator and maintainer 370 | - [Diego A. Rodriquez (diarodriguezva)](https://github.com/diarodriguezv): support with `ebgaramond` updates 371 | - [TonyY](https://github.com/toooonyy): `latexmkrc` updates and fixes; `hyperref` fixes 372 | -------------------------------------------------------------------------------- /Sources/Abstract.tex: -------------------------------------------------------------------------------- 1 | \begin{center} 2 | \textsc{Abstract} 3 | \end{center} 4 | % 5 | \noindent 6 | % 7 | Scientific documents often use \LaTeX{} for typesetting. While numerous 8 | packages and templates exist, it makes sense to create a new one. Just 9 | because. 10 | -------------------------------------------------------------------------------- /Sources/Introduction.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | \chapter{Introduction} 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | 5 | \begin{center} 6 | \begin{minipage}{0.5\textwidth} 7 | \begin{small} 8 | In which the reasons for creating this package are laid bare for the 9 | whole world to see and we encounter some usage guidelines. 10 | \end{small} 11 | \end{minipage} 12 | \vspace{0.5cm} 13 | \end{center} 14 | 15 | \noindent This package contains a minimal, modern template for writing your 16 | thesis. While originally meant to be used for a Ph.\,D.\ thesis, you can 17 | equally well use it for your honour thesis, bachelor thesis, and so 18 | on---some adjustments may be necessary, though. 19 | 20 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 21 | \section{Why?} 22 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 23 | 24 | I was not satisfied with the available templates for \LaTeX{} and wanted 25 | to heed the style advice given by people such as Robert 26 | Bringhurst~\cite{Bringhurst12} or Edward R.\ 27 | Tufte~\cite{Tufte90,Tufte01}. While there \emph{are} some packages out 28 | there that attempt to emulate these styles, I found them to be either 29 | too bloated, too playful, or too constraining. This template attempts to 30 | produce a beautiful look without having to resort to any sort of hacks. 31 | I hope you like it. 32 | 33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 34 | \section{How?} 35 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 36 | 37 | The package tries to be easy to use. If you are satisfied with the 38 | default settings, just add 39 | % 40 | \begin{verbatim} 41 | \documentclass{mimosis} 42 | \end{verbatim} 43 | % 44 | at the beginning of your document. This is sufficient to use the class. 45 | It is possible to build your document using either \LaTeX|, \XeLaTeX, or 46 | \LuaLaTeX. I personally prefer one of the latter two because they make 47 | it easier to select proper fonts. 48 | 49 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 50 | \section{Making this template \emph{yours}} 51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 | 53 | Prior to using this template, the first thing you want to do is probably 54 | a little bit of customisation. You can achieve quick changes in look and 55 | feel by picking your own fonts. With the \verb|fontspec| package loaded 56 | and \XeLaTeX or \LuaLaTeX as your compiler, this is pretty simple: 57 | % 58 | \begin{verbatim} 59 | \setmainfont{Your main font} 60 | \setsansfont{Your sans-serif font} 61 | \setmonofont{Your monospaced font} 62 | \end{verbatim} 63 | % 64 | Make sure to select nice combinations of that are pleasing to 65 | \emph{your} eyes---this is your document and it should reflect your own 66 | style. Make sure to specify font names as they are provided by your 67 | system. For instance, you might want to use the following combination: 68 | % 69 | \begin{verbatim} 70 | \setmainfont{Libre Baskerville} 71 | \setsansfont[Scale=MatchLowercase]{IBM Plex Sans} 72 | \setmonofont[Scale=MatchLowercase]{IBM Plex Mono} 73 | \end{verbatim} 74 | % 75 | \ifxetexorluatex 76 | If these fonts exist on your system, your normal text will look 77 | {\fontspec{Libre Baskerville}{a little bit different from the other font used 78 | in this example PDF}}, while your sans-serif font {\fontspec[Scale=MatchLowercase]{IBM Plex Sans}will 79 | pair nicely with your} {\fontspec[Scale=MatchLowercase]{IBM Plex Mono}{monospaced font}}. 80 | % 81 | You can also remove the \verb|Scale| directive, but I find that most 82 | fonts pair better if they are adjusted in size a little bit. Experiment 83 | with it until you finds a combination that you enjoy. 84 | \fi 85 | 86 | \XeLaTeX and \LuaLaTeX also offer you a way to change the font that is 87 | used for mathematical equations. If installed, the 88 | \href{https://ctan.org/pkg/garamond-math}{\texttt{garamond-math}} 89 | package permits you to choose from different stylistic sets that 90 | slightly change how certain mathematical symbols look. For instance, the 91 | following command changes `Fraktur' symbols: 92 | % 93 | \begin{verbatim} 94 | \setmathfont{Garamond-Math.otf}[StylisticSet={6}] 95 | \end{verbatim} 96 | 97 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 98 | \section{Features} 99 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 100 | 101 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 102 | \begin{table} 103 | \centering 104 | \begin{tabular}{ll} 105 | \toprule 106 | \textbf{Package} & \textbf{Purpose}\\ 107 | \midrule 108 | \texttt{amsmath} & Basic mathematical typography\\ 109 | \texttt{amsthm} & Basic mathematical environments for proofs etc.\\ 110 | \texttt{babel} & Language settings\\ 111 | \texttt{booktabs} & Typographically light rules for tables\\ 112 | \texttt{bookmarks} & Bookmarks in the resulting PDF\\ 113 | \texttt{csquotes} & Language-specific quotation marks\\ 114 | \texttt{dsfont} & Double-stroke font for mathematical concepts\\ 115 | \texttt{graphicx} & Graphics\\ 116 | \texttt{hyperref} & Hyperlinks\\ 117 | \texttt{multirow} & Permits table content to span multiple rows or columns\\ 118 | \texttt{paralist} & Paragraph~(`in-line') lists and compact enumerations\\ 119 | \texttt{scrlayer-scrpage} & Page headings\\ 120 | \texttt{setspace} & Line spacing\\ 121 | \texttt{siunitx} & Proper typesetting of units\\ 122 | \texttt{subcaption} & Proper sub-captions for figures\\ 123 | \bottomrule 124 | \end{tabular} 125 | \caption{% 126 | A list of the most relevant packages required~(and automatically imported) by this template. 127 | } 128 | \label{tab:Packages} 129 | \end{table} 130 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 | 132 | The template automatically imports numerous convenience packages that 133 | aid in your typesetting process. \autoref{tab:Packages} lists the 134 | most important ones. Let's briefly discuss some examples below. Please 135 | refer to the source code for more demonstrations. 136 | 137 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 138 | \subsection{Typesetting mathematics} 139 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 140 | 141 | This template uses \verb|amsmath| and \verb|amssymb|, which are the 142 | de-facto standard for typesetting mathematics. Use numbered equations 143 | using the \verb|equation| environment. 144 | % 145 | If you want to show multiple equations and align them, use the 146 | \verb|align| environment: 147 | % 148 | \begin{align} 149 | V &:= \{ 1, 2, \dots \}\\ 150 | E &:= \big\{ \left(u,v\right) \mid \dist\left(p_u, p_v\right) \leq \epsilon \big\} 151 | \end{align} 152 | % 153 | Define new mathematical operators using \verb|\DeclareMathOperator|. 154 | Some operators are already pre-defined by the template, such as the 155 | distance between two objects. Please see the template for some examples. 156 | % 157 | Moreover, this template contains a correct differential operator. Use \verb|\diff| to typeset the differential of integrals: 158 | % 159 | \begin{equation} 160 | f(u) := \int_{v \in \domain}\dist(u,v)\diff{v} 161 | \end{equation} 162 | % 163 | You can see that, as a courtesy towards most mathematicians, this 164 | template gives you the possibility to refer to the real numbers~$\real$ 165 | and the domain~$\domain$ of some function. Take a look at the source for 166 | more examples. By the way, the template comes with spacing fixes for the 167 | automated placement of brackets. 168 | 169 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 170 | \subsection{Typesetting text} 171 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 172 | 173 | Along with the standard environments, this template offers 174 | \verb|paralist| for lists within paragraphs. 175 | % 176 | Here's a quick example: The American constitution speaks, among others, of 177 | % 178 | \begin{inparaenum}[(i)] 179 | \item life 180 | \item liberty 181 | \item the pursuit of happiness. 182 | \end{inparaenum} 183 | % 184 | These should be added in equal measure to your own conduct. To typeset 185 | units correctly, use the \verb|siunitx| package. For example, you might 186 | want to restrict your daily intake of liberty to \SI{750}{\milli\gram}. 187 | 188 | Likewise, as a small pet peeve of mine, I offer specific operators for 189 | \emph{ordinals}. Use \verb|\th| to typeset things like July~4\th 190 | correctly. Or, if you are referring to the 2\nd edition of a book, 191 | please use \verb|\nd|. Likewise, if you came in 3\rd in a marathon, use 192 | \verb|\rd|. This is my 1\st rule. 193 | 194 | If you want to write a text in German and use German hyphenation rules, set the language of your text to german using \verb|\selectlanguage{ngerman}|, or add 195 | \begin{verbatim} 196 | \PassOptionsToPackage{spanish}{babel} 197 | \end{verbatim} 198 | before the \verb|\documentclass| command to load a specific language. The languages \verb|ngerman|, \verb|french|, and \verb|english| are loaded by default, with \verb|english| being selected. 199 | 200 | Quotation marks can be typeset using the \verb|\enquote{...}| command from the \verb|csquotes| package, which is preloaded by \verb|latex-mimosis|. 201 | Depending on the currently selected language, quotes will look like \enquote{this}, 202 | \selectlanguage{ngerman}\enquote{this}\selectlanguage{english}, 203 | or 204 | \selectlanguage{french}\enquote{this}\selectlanguage{english}. 205 | One must never use "ASCII" quotation marks or even 'apostrophe' symbols. 206 | 207 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 208 | \section{Changing things} 209 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 210 | 211 | Since this class heavily relies on the \verb|scrbook| class, you can use 212 | \emph{their} styling commands in order to change the look of things. For 213 | example, if you want to change the text in sections to \textbf{bold} you 214 | can just use 215 | % 216 | \begin{verbatim} 217 | \setkomafont{sectioning}{\normalfont\bfseries} 218 | \end{verbatim} 219 | % 220 | at the end of the document preamble---you don't have to modify the class 221 | file for this. Please consult the source code for more information. 222 | -------------------------------------------------------------------------------- /Sources/Title.tex: -------------------------------------------------------------------------------- 1 | \begin{titlepage} 2 | \vspace*{5cm} 3 | \makeatletter 4 | \begin{center} 5 | \begin{Huge} 6 | \@title 7 | \end{Huge}\\[0.1cm] 8 | % 9 | \begin{Large} 10 | \@subtitle 11 | \end{Large}\\ 12 | % 13 | \emph{by}\\ 14 | \@author\space(with the help of many others!) 15 | % 16 | \vfill 17 | A document submitted in partial fulfillment 18 | of the requirements for the degree of\\ 19 | \emph{Technical Report}\\ 20 | at\\ 21 | \textsc{Miskatonic University} 22 | \end{center} 23 | \makeatother 24 | \end{titlepage} 25 | 26 | \newpage 27 | \null 28 | \thispagestyle{empty} 29 | \newpage 30 | -------------------------------------------------------------------------------- /Sources/Title_Dissertation_ETH_Zurich.tex: -------------------------------------------------------------------------------- 1 | \begin{titlepage} 2 | \begin{center} 3 | \begin{large} 4 | \textsc{Diss.\ ETH No.\ XXXXXXX} 5 | \end{large}\\[1.2cm] 6 | % 7 | \begin{Huge} 8 | \makeatletter% 9 | \@title 10 | \makeatother% 11 | \end{Huge}\\[1.2cm] 12 | % 13 | \begin{large} 14 | \emph{A thesis submitted to attain the degree of}\\ 15 | \textsc{Doctor of Sciences of ETH Zürich}\\ 16 | (Dr.\,sc.\ ETH Zürich) 17 | \end{large}\\[1.2cm] 18 | % 19 | \begin{large} 20 | \emph{presented by}\\ 21 | \textbf{Hermann Minkowski}\\ 22 | \emph{born on} 22.06.1864\\[1.5em] 23 | \emph{citizen of}\\ 24 | Germany 25 | \end{large}\\[1.2cm] 26 | % 27 | \begin{large} 28 | \emph{accepted on the recommendation of}\\ 29 | Prof.\,Dr.~Ferdinand von Lindemann 30 | \end{large}\\[1.5em] 31 | {\large 1885} 32 | \end{center} 33 | \end{titlepage} 34 | 35 | \newpage 36 | \null 37 | \thispagestyle{empty} 38 | \newpage 39 | -------------------------------------------------------------------------------- /Sources/Title_Dissertation_Heidelberg.tex: -------------------------------------------------------------------------------- 1 | \selectlanguage{ngerman} 2 | 3 | \begin{titlepage} 4 | \begin{center} 5 | \textsc{\huge Inaugural-Dissertation} 6 | \vskip 1cm 7 | \begin{large} 8 | zur Erlangung der Doktorwürde der\\[0.50cm] 9 | \begin{Large} 10 | \textsc{Gesamtfakultät für Mathematik, Ingenieur- und Naturwissenschaften}\\[0.50cm] 11 | \end{Large} 12 | der\\[0.50cm] 13 | \begin{Large} 14 | \textsc{Ruprecht-Karls-Universität\\Heidelberg}\par 15 | \end{Large} 16 | \end{large} 17 | % 18 | \vfill 19 | % 20 | \begin{large} 21 | vorgelegt von\\ 22 | Diplom-Mathematiker\\[0.5cm] 23 | \begin{LARGE} 24 | \textbf{Albrecht Dold} 25 | \end{LARGE}\\[0.5cm] 26 | aus Nu{\ss}bach 27 | \end{large} 28 | % 29 | \vskip 1cm 30 | % 31 | \begin{small} 32 | Tag der mündlichen Prüfung: 01.01.1954 33 | \end{small} 34 | \end{center} 35 | \end{titlepage} 36 | 37 | \selectlanguage{english} 38 | 39 | \begin{titlepage} 40 | % 41 | \phantom{} 42 | \vfill 43 | % 44 | \begin{center} 45 | \begin{singlespace*} 46 | \begin{Huge} 47 | Persistent Homology in\\ 48 | Multivariate Data Visualization\par 49 | \end{Huge} 50 | % 51 | \vskip 0.25cm 52 | \emph{by} 53 | \vskip 0.25cm 54 | % 55 | \textsc{Bastian Alexander Rieck}\par 56 | \end{singlespace*} 57 | \end{center} 58 | % 59 | \vfill 60 | % 61 | \begin{singlespace*} 62 | Supervisors: Prof.\,Dr.\,Heike Leitte\\ 63 | \phantom{Supervisors:} Prof.\,Dr.\,Michael Gertz 64 | \end{singlespace*} 65 | \end{titlepage} 66 | 67 | \newpage 68 | \null 69 | \thispagestyle{empty} 70 | \newpage 71 | -------------------------------------------------------------------------------- /Thesis.bib: -------------------------------------------------------------------------------- 1 | % Encoding: UTF-8 2 | 3 | @Book{Bringhurst12, 4 | title = {The Elements of Typographic Style}, 5 | publisher = {Hartley \& Marks Publishers}, 6 | year = {2012}, 7 | author = {Robert Bringhurst}, 8 | address = {Vancouver, British Columbia, Canada}, 9 | edition = {4}, 10 | } 11 | 12 | @Book{Tufte01, 13 | title = {The visual display of quantitative information}, 14 | publisher = {Graphics Press}, 15 | year = {2001}, 16 | author = {Edward R. Tufte}, 17 | address = {Chesh\-ire, CT, USA}, 18 | edition = {2}, 19 | } 20 | 21 | @Book{Tufte90, 22 | title = {Envisioning information}, 23 | publisher = {Graphics Press}, 24 | year = {1990}, 25 | author = {Tufte, Edward R.}, 26 | address = {Chesh\-ire, CT, USA}, 27 | } 28 | 29 | @Comment{jabref-meta: databaseType:bibtex;} 30 | -------------------------------------------------------------------------------- /Thesis.tex: -------------------------------------------------------------------------------- 1 | \documentclass{mimosis} 2 | 3 | \usepackage{metalogo} 4 | 5 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6 | % Some of my favourite personal adjustments 7 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8 | % 9 | % These are the adjustments that I consider necessary for typesetting 10 | % a nice thesis. However, they are *not* included in the template, as 11 | % I do not want to force you to use them. 12 | 13 | % This ensures that I am able to typeset bold font in table while still aligning the numbers 14 | % correctly. 15 | \usepackage{etoolbox} 16 | 17 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 18 | % Hyperlinks & bookmarks 19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 20 | 21 | \usepackage[% 22 | colorlinks = true, 23 | citecolor = RoyalBlue, 24 | linkcolor = RoyalBlue, 25 | urlcolor = RoyalBlue, 26 | unicode, 27 | ]{hyperref} 28 | 29 | \usepackage{bookmark} 30 | 31 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 32 | % Bibliography 33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 34 | % 35 | % I like the bibliography to be extremely plain, showing only a numeric 36 | % identifier and citing everything in simple brackets. The first names, 37 | % if present, will be initialized. DOIs and URLs will be preserved. 38 | 39 | \usepackage[% 40 | autocite = plain, 41 | backend = biber, 42 | doi = true, 43 | url = true, 44 | giveninits = true, 45 | hyperref = true, 46 | maxbibnames = 99, 47 | maxcitenames = 99, 48 | sortcites = true, 49 | style = numeric, 50 | ]{biblatex} 51 | 52 | \input{bibliography-mimosis} 53 | \addbibresource{Thesis.bib} 54 | 55 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 | % Fonts 57 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 58 | 59 | \ifxetexorluatex 60 | \usepackage{unicode-math} 61 | \setmainfont{EB Garamond} 62 | \setmathfont{Garamond Math} 63 | 64 | % Load some missing symbols from another font. 65 | \setmathfont{STIX Two Math}[% 66 | range = { 67 | \sharp, 68 | \natural, 69 | \flat, 70 | \clubsuit, 71 | \spadesuit, 72 | \checkmark 73 | } 74 | ] 75 | \setmonofont[Scale=MatchLowercase]{Source Code Pro} 76 | \else 77 | \usepackage[lf]{ebgaramond} 78 | \usepackage[oldstyle,scale=0.7]{sourcecodepro} 79 | \singlespacing 80 | \fi 81 | 82 | \newacronym[description={Principal component analysis}]{PCA}{PCA}{principal component analysis} 83 | \newacronym {SNF}{SNF}{Smith normal form} 84 | \newacronym[description={Topological data analysis}] {TDA}{TDA}{topological data analysis} 85 | 86 | \newglossaryentry{LaTeX}{% 87 | name = {\LaTeX}, 88 | description = {A document preparation system}, 89 | sort = {LaTeX}, 90 | } 91 | 92 | \newglossaryentry{Real numbers}{% 93 | name = {$\real$}, 94 | description = {The set of real numbers}, 95 | sort = {Real numbers}, 96 | } 97 | 98 | \makeindex 99 | \makeglossaries 100 | 101 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 102 | % Ordinals 103 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 | 105 | \makeatletter 106 | \@ifundefined{st}{% 107 | \newcommand{\st}{\textsuperscript{\textup{st}}\xspace} 108 | }{} 109 | \@ifundefined{rd}{% 110 | \newcommand{\rd}{\textsuperscript{\textup{rd}}\xspace} 111 | }{} 112 | \@ifundefined{nd}{% 113 | \newcommand{\nd}{\textsuperscript{\textup{nd}}\xspace} 114 | }{} 115 | \makeatother 116 | 117 | \renewcommand{\th}{\textsuperscript{\textup{th}}\xspace} 118 | 119 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 120 | % Incipit 121 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 122 | 123 | \title{\texttt{latex-mimosis}} 124 | \subtitle{A minimal, modern \LaTeX{} package for typesetting your thesis} 125 | \author{Bastian Rieck} 126 | 127 | \begin{document} 128 | 129 | \frontmatter 130 | \include{Sources/Title} 131 | \include{Sources/Abstract} 132 | 133 | \tableofcontents 134 | 135 | \mainmatter 136 | 137 | \part[A good part]{% 138 | A good part\\ 139 | % 140 | \vspace{1cm} 141 | % 142 | \begin{minipage}[l]{\textwidth} 143 | % 144 | \textnormal{% 145 | \normalsize 146 | % 147 | \begin{singlespace*} 148 | \onehalfspacing 149 | % 150 | You can also use parts in order to partition your great work 151 | into larger `chunks'. This involves some manual adjustments in 152 | terms of the layout, though. 153 | \end{singlespace*} 154 | } 155 | \end{minipage} 156 | } 157 | 158 | \include{Sources/Introduction} 159 | 160 | % This ensures that the subsequent sections are being included as root 161 | % items in the bookmark structure of your PDF reader. 162 | \bookmarksetup{startatroot} 163 | \backmatter 164 | 165 | \begingroup 166 | \let\clearpage\relax 167 | \glsaddall 168 | \printglossary[type=\acronymtype] 169 | \newpage 170 | \printglossary 171 | \endgroup 172 | 173 | \printindex 174 | \printbibliography 175 | 176 | \end{document} 177 | -------------------------------------------------------------------------------- /bibliography-mimosis.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Some adjustments to make the bibliography more clean 3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4 | % 5 | % The subsequent commands do the following: 6 | % - Removing the month field from the bibliography 7 | % - Fixing the Oxford commma 8 | % - Suppress the "in" for journal articles 9 | % - Remove the parentheses of the year in an article 10 | % - Delimit volume and issue of an article by a colon ":" instead of 11 | % a dot "" 12 | % - Use commas to separate the location of publishers from their name 13 | % - Remove the abbreviation for technical reports 14 | % - Display the label of bibliographic entries without brackets in the 15 | % bibliography 16 | % - Ensure that DOIs are followed by a non-breakable space 17 | % - Use hair spaces between initials of authors 18 | % - Make the font size of citations smaller 19 | % - Fixing ordinal numbers (1st, 2nd, 3rd, and so) on by using 20 | % superscripts 21 | 22 | % Remove the month field from the bibliography. It does not serve a good 23 | % purpose, I guess. And often, it cannot be used because the journals 24 | % have some crazy issue policies. 25 | \AtEveryBibitem{\clearfield{month}} 26 | \AtEveryCitekey{\clearfield{month}} 27 | 28 | % Fixing the Oxford comma. Not sure whether this is the proper solution. 29 | % More information is available under [1] and [2]. 30 | % 31 | % [1] http://tex.stackexchange.com/questions/97712/biblatex-apa-style-is-missing-a-comma-in-the-references-why 32 | % [2] http://tex.stackexchange.com/questions/44048/use-et-al-in-biblatex-custom-style 33 | % 34 | \AtBeginBibliography{% 35 | \renewcommand*{\finalnamedelim}{% 36 | \ifthenelse{\value{listcount} > 2}{% 37 | \addcomma 38 | \addspace 39 | \bibstring{and}% 40 | }{% 41 | \addspace 42 | \bibstring{and}% 43 | } 44 | } 45 | } 46 | 47 | % Suppress "in" for journal articles. This is unnecessary in my opinion 48 | % because the journal title is typeset in italics anyway. 49 | \renewbibmacro{in:}{% 50 | \ifentrytype{article} 51 | {% 52 | }% 53 | % else 54 | {% 55 | \printtext{\bibstring{in}\intitlepunct}% 56 | }% 57 | } 58 | 59 | % Remove the parentheses for the year in an article. This removes a lot 60 | % of undesired parentheses in the bibliography, thereby improving the 61 | % readability. Moreover, it makes the look of the bibliography more 62 | % consistent. 63 | \renewbibmacro*{issue+date}{% 64 | \setunit{\addcomma\space} 65 | \iffieldundef{issue} 66 | {\usebibmacro{date}} 67 | {\printfield{issue}% 68 | \setunit*{\addspace}% 69 | \usebibmacro{date}}% 70 | \newunit} 71 | 72 | % Delimit the volume and the number of an article by a colon instead of 73 | % by a dot, which I consider to be more readable. 74 | \renewbibmacro*{volume+number+eid}{% 75 | \printfield{volume}% 76 | \setunit*{\addcolon}% 77 | \printfield{number}% 78 | \setunit{\addcomma\space}% 79 | \printfield{eid}% 80 | } 81 | 82 | % Do not use a colon for the publisher location. Instead, connect 83 | % publisher, location, and date via commas. 84 | \renewbibmacro*{publisher+location+date}{% 85 | \printlist{publisher}% 86 | \setunit*{\addcomma\space}% 87 | \printlist{location}% 88 | \setunit*{\addcomma\space}% 89 | \usebibmacro{date}% 90 | \newunit% 91 | } 92 | 93 | % Ditto for other entry types. 94 | \renewbibmacro*{organization+location+date}{% 95 | \printlist{location}% 96 | \setunit*{\addcomma\space}% 97 | \printlist{organization}% 98 | \setunit*{\addcomma\space}% 99 | \usebibmacro{date}% 100 | \newunit% 101 | } 102 | 103 | % Display the label of a bibliographic entry in bare style, without any 104 | % brackets. I like this more than the default. 105 | % 106 | % Note that this is *really* the proper and official way of doing this. 107 | \DeclareFieldFormat{labelnumberwidth}{#1\adddot} 108 | 109 | % Ensure that DOIs are followed by a non-breakable space. 110 | \DeclareFieldFormat{doi}{% 111 | \mkbibacro{DOI}\addcolon\addnbspace 112 | \ifhyperref 113 | {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} 114 | % 115 | {\nolinkurl{#1}} 116 | } 117 | 118 | % Use proper hair spaces between initials as suggested by Bringhurst and 119 | % others. 120 | \renewcommand*\bibinitdelim {\addnbthinspace} 121 | \renewcommand*\bibnamedelima{\addnbthinspace} 122 | \renewcommand*\bibnamedelimb{\addnbthinspace} 123 | \renewcommand*\bibnamedelimi{\addnbthinspace} 124 | 125 | % Make the font size of citations smaller. Depending on your selected 126 | % font, you might not need this. 127 | \usepackage{relsize} 128 | \renewcommand*{\citesetup}{% 129 | \biburlsetup 130 | \relsize{-.5}% 131 | } 132 | 133 | \DeclareLanguageMapping{english}{english-mimosis} 134 | 135 | % Make hyperlinks extend to the author name if `\textcite` is being used 136 | % instead of another cite command. 137 | 138 | \DeclareFieldFormat{citehyperref}{% 139 | % Need this to avoid nested links 140 | \DeclareFieldAlias{bibhyperref}{noformat}% 141 | \bibhyperref{#1}% 142 | } 143 | 144 | \DeclareFieldFormat{textcitehyperref}{% 145 | % Need this to avoid nested links 146 | \DeclareFieldAlias{bibhyperref}{noformat}% 147 | \bibhyperref{% 148 | #1% 149 | \ifbool{cbx:parens} 150 | {\bibcloseparen\global\boolfalse{cbx:parens}} 151 | {}% 152 | }% 153 | } 154 | 155 | \savebibmacro{cite} 156 | \savebibmacro{textcite} 157 | 158 | \renewbibmacro*{cite}{% 159 | \printtext[citehyperref]{% 160 | \restorebibmacro{cite}% 161 | \usebibmacro{cite}}% 162 | } 163 | 164 | \renewbibmacro*{textcite}{% 165 | \ifboolexpr{ 166 | ( not test {\iffieldundef{prenote}} and 167 | test {\ifnumequal{\value{citecount}}{1}} ) 168 | or 169 | ( not test {\iffieldundef{postnote}} and 170 | test {\ifnumequal{\value{citecount}}{\value{citetotal}}} ) 171 | }% 172 | {\DeclareFieldAlias{textcitehyperref}{noformat}} 173 | {}% 174 | \printtext[textcitehyperref]{% 175 | \restorebibmacro{textcite}% 176 | \usebibmacro{textcite}}% 177 | } 178 | -------------------------------------------------------------------------------- /english-mimosis.lbx: -------------------------------------------------------------------------------- 1 | \ProvidesFile{english-mimosis.lbx} 2 | \InheritBibliographyExtras{english} 3 | 4 | % Do not abbreviate "technical report". 5 | \DeclareBibliographyStrings{% 6 | inherit = {english}, 7 | techreport = {{technical report}{technical report}}, 8 | } 9 | 10 | % Use superscripts whenever appropriate and possible 11 | \DeclareBibliographyExtras{% 12 | \protected\def\mkbibordinal#1{% 13 | \begingroup% 14 | \@tempcnta0#1\relax\number\@tempcnta% 15 | \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}% 16 | \ifnum\@tempcnta>20% 17 | \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}% 18 | \fi% 19 | \mkbibsuperscript{\ifcase\@tempcnta th\or st\or nd\or rd\else th\fi}% 20 | \endgroup}% 21 | \protected\def\mkbibmascord{\mkbibordinal}% 22 | \protected\def\mkbibfemord{\mkbibordinal}% 23 | \protected\def\mkbibneutord{\mkbibordinal}% 24 | } 25 | 26 | \endinput 27 | -------------------------------------------------------------------------------- /latexmkrc: -------------------------------------------------------------------------------- 1 | @default_files = ('Thesis.tex'); 2 | 3 | add_cus_dep( 'acn', 'acr', 0, 'makeglossaries' ); 4 | add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' ); 5 | 6 | sub makeglossaries { 7 | my ($name, $path) = fileparse( $$Psource ); 8 | return system "makeglossaries -d '$path' '$name'"; 9 | } 10 | 11 | $lualatex = 'lualatex %O --shell-escape %S'; 12 | $pdf_mode = 4; 13 | $clean_ext = "%R.acn %R.acr %R.alg %R.aux %R.auxlock %R.bak %R.bbl %R.blg %R.dvi %R.fls %R.glg %R.glo %R.gls %R.idx %R.ist %R.ilg %R.ind %R.log %R.out %R.pdf %R.ps %R.sav %R.swp %R.toc %R.run.xml %R-blx.bib %R_latexmk %R~ %R.pgf-plot.%R Figures/External/"; 14 | -------------------------------------------------------------------------------- /mimosis.cls: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \ProvidesClass{mimosis}[2017/08/01 Minimal modern thesis class] 3 | 4 | \PassOptionsToPackage{ 5 | DIV = 10, % TODO: Make configurable 6 | BCOR = 10mm, % TODO: Make configurable 7 | }{typearea} 8 | 9 | \LoadClass[a4paper, 10 | twoside, 11 | 11pt, 12 | cleardoublepage=empty, 13 | numbers=noenddot, 14 | titlepage, 15 | toc=bibliography, 16 | toc=index,]{scrbook} 17 | 18 | \RequirePackage{iftex} 19 | \newif\ifxetexorluatex\xetexorluatexfalse 20 | \ifxetex 21 | \xetexorluatextrue 22 | \fi 23 | \ifluatex 24 | \xetexorluatextrue 25 | \fi 26 | 27 | \ifxetexorluatex 28 | \RequirePackage{fontspec} 29 | \else 30 | \RequirePackage[T1]{fontenc} 31 | \RequirePackage[utf8]{inputenc} 32 | \fi 33 | 34 | % Makes it possible to switch between different languages in the text 35 | % while keeping hyphenation rules correct. Should you add another one 36 | % in the list, please ensure that `english` is the last one. The last 37 | % language is used to control standard hyphenation. 38 | \usepackage[ngerman,french,english]{babel} 39 | 40 | \RequirePackage[autostyle=true]{csquotes} % Context-sensitive quotation marks 41 | \RequirePackage{makeidx} % For creating indices 42 | \RequirePackage{xspace} % For automatically "eating" spaces 43 | 44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 45 | % Multi-line comments 46 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 47 | 48 | \newcommand{\comment}[1]{} 49 | 50 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 51 | % Fonts & colours 52 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 53 | 54 | \RequirePackage[dvipsnames]{xcolor} 55 | 56 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 57 | % Graphics 58 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59 | 60 | \RequirePackage{graphicx} 61 | \graphicspath{% 62 | {Figures/} 63 | {./} 64 | } 65 | 66 | % Suppress warnings about page groups in PDFs. This is not justified 67 | % in most of the cases. I am pretty sure I am including my images in 68 | % the right manner. 69 | \begingroup\expandafter\expandafter\expandafter\endgroup 70 | \expandafter\ifx\csname pdfsuppresswarningpagegroup\endcsname\relax 71 | \else 72 | \pdfsuppresswarningpagegroup=1\relax 73 | \fi 74 | 75 | \RequirePackage{subcaption} 76 | 77 | % Make sub-references using \subref being typeset with parentheses. 78 | % Otherwise, only the counter will be printed. 79 | \captionsetup{subrefformat=parens} 80 | 81 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 82 | % Glossaries 83 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 84 | 85 | \RequirePackage[% 86 | acronym, 87 | nogroupskip, 88 | nopostdot, 89 | nonumberlist, 90 | toc, 91 | ]{glossaries} 92 | 93 | % New style that prevents line-breaks between the full description and 94 | % the acronym. Furthermore, it ensures that the acronym is always 95 | % printed in an upright font. 96 | \newacronymstyle{long-short-mimosis} 97 | {% 98 | \GlsUseAcrEntryDispStyle{long-short}% 99 | }% 100 | {% 101 | \GlsUseAcrStyleDefs{long-short}% 102 | \renewcommand*{\genacrfullformat}[2]{% 103 | \glsentrylong{##1}##2~\textup{(\firstacronymfont{\glsentryshort{##1}})}% 104 | }% 105 | \renewcommand*{\Genacrfullformat}[2]{% 106 | \Glsentrylong{##1}##2~\textup{(\firstacronymfont{\glsentryshort{##1}})}% 107 | }% 108 | \renewcommand*{\genplacrfullformat}[2]{% 109 | \glsentrylongpl{##1}##2~\textup{(\firstacronymfont{\glsentryshortpl{##1}})}% 110 | }% 111 | \renewcommand*{\Genplacrfullformat}[2]{% 112 | \Glsentrylongpl{##1}##2~\textup{(\firstacronymfont{\Glsentryshortpl{##1}})}% 113 | }% 114 | } 115 | 116 | % A new glossary style that based on the long style of the glossaries 117 | % package. It ensures that descriptions and entries are aligned. 118 | \newglossarystyle{long-mimosis}{% 119 | \setglossarystyle{long} 120 | 121 | \renewcommand{\glossentry}[2]{% 122 | \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & 123 | \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline 124 | }% 125 | } 126 | 127 | % Constrain the description width to enforce breaks. 128 | \setlength{\glsdescwidth}{10cm} 129 | 130 | \setacronymstyle{long-short-mimosis} 131 | \setglossarystyle{long-mimosis} 132 | 133 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 134 | % Paragraph lists & compact enumerations 135 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 136 | 137 | \RequirePackage[% 138 | olditem, % Do not modify itemize environments by default 139 | oldenum % Do not modify enumerate environments by default 140 | ]{paralist} 141 | 142 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 143 | % Spacing 144 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 145 | 146 | \RequirePackage{setspace} 147 | \onehalfspacing 148 | 149 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 150 | % Tables 151 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 152 | 153 | \RequirePackage{booktabs} 154 | \RequirePackage{multirow} 155 | 156 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 157 | % Proper typesetting of units 158 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 159 | 160 | \RequirePackage{siunitx} 161 | 162 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 163 | % Mathematics 164 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 165 | 166 | \RequirePackage{amsmath} 167 | \RequirePackage{amsthm} 168 | \RequirePackage{dsfont} 169 | 170 | % Fix the spacing of \left and \right. Use these with the proper bracket 171 | % in order to ensure that they scale automatically. 172 | \let\originalleft\left 173 | \let\originalright\right 174 | \renewcommand{\left}{\mathopen{}\mathclose\bgroup\originalleft} 175 | \renewcommand{\right}{\aftergroup\egroup\originalright} 176 | 177 | \DeclareMathOperator*{\argmin} {arg\,min} 178 | \DeclareMathOperator {\dist} {dist} 179 | \DeclareMathOperator {\im} {im} 180 | 181 | \newcommand{\domain}{\ensuremath{\mathds{D}}} 182 | \newcommand{\real} {\ensuremath{\mathds{R}}} 183 | 184 | % Proper differential operators 185 | \newcommand{\diff}[1]{\ensuremath{\operatorname{d}\!{#1}}} 186 | 187 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 188 | % Penalties 189 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 190 | 191 | \clubpenalty = 10000 192 | \widowpenalty = 10000 193 | \displaywidowpenalty = 10000 194 | 195 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 196 | % Headers 197 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 198 | 199 | \RequirePackage{scrlayer-scrpage} 200 | \pagestyle{scrheadings} 201 | 202 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 203 | % Typefaces for parts, chapters, and sections 204 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 205 | 206 | \renewcommand{\partformat}{\huge\partname~\thepart\autodot} 207 | \renewcommand{\raggedpart}{\flushleft} 208 | 209 | \setkomafont{part}{\normalfont\huge\scshape} 210 | 211 | \setkomafont{sectioning}{\normalfont\scshape} 212 | \setkomafont{descriptionlabel}{\normalfont\bfseries} 213 | 214 | \setkomafont{caption}{\small} 215 | \setkomafont{captionlabel}{\usekomafont{caption}} 216 | 217 | % Large number for chapter 218 | \renewcommand*{\chapterformat}{% 219 | \fontsize{50}{55}\selectfont\thechapter\autodot\enskip 220 | } 221 | --------------------------------------------------------------------------------