├── .gitignore ├── CHANGELOG.md ├── MANIFEST.md ├── README.md ├── VERSION ├── cleanthesis.sty ├── doc ├── cleanthesis-doc.pdf ├── cleanthesis-doc.tex └── wrapfooter.jpg ├── example-thesis ├── bib-refs.bib ├── content │ ├── abstract.tex │ ├── acknowledgement.tex │ ├── chapter-appendix.tex │ ├── chapter-concepts.tex │ ├── chapter-conclusion.tex │ ├── chapter-introduction.tex │ ├── chapter-related-work.tex │ ├── chapter-system.tex │ ├── colophon.tex │ ├── declaration.tex │ └── titlepages.tex ├── gfx │ ├── Clean-Thesis-Figure.pdf │ └── Clean-Thesis-Logo.pdf ├── my-thesis-setup.tex ├── my-thesis.pdf └── my-thesis.tex └── scripts ├── bumpversion.py ├── dev-end.sh ├── dev-start.sh ├── publish.py └── updatecopyrightyear.py /.gitignore: -------------------------------------------------------------------------------- 1 | *blx.bib 2 | *.aux 3 | *.bbl 4 | *.blg 5 | *.lof 6 | *.log 7 | *.lot 8 | *.out 9 | *.run.xml 10 | *.synctex.gz 11 | *.toc 12 | *.bcf 13 | *.fdb_latexmk 14 | *.fls 15 | *.lol 16 | example-thesis/cleanthesis.sty 17 | dist -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | CHANGELOG.md 4 | Copyright 2020 R. Langner 5 | 6 | This work may be distributed and/or modified under the 7 | conditions of the LaTeX Project Public License, either version 1.3 8 | of this license or (at your option) any later version. 9 | The latest version of this license is in 10 | http://www.latex-project.org/lppl.txt 11 | and version 1.3 or later is part of all distributions of LaTeX 12 | version 2005/12/01 or later. 13 | 14 | This work has the LPPL maintenance status `maintained'. 15 | 16 | The Current Maintainer of this work is R. Langner. 17 | 18 | This work consists of all files listed in MANIFEST.md. 19 | 20 | --- 21 | 22 | # Clean Thesis changelog 23 | 24 | The latest version of this file can be found at the master branch of the 25 | *Clean Thesis* [repository](https://github.com/derric/cleanthesis). 26 | 27 | ## Latest Dev 28 | - ... 29 | 30 | ## v0.4.1 31 | - Updated copyright year 32 | 33 | ## v0.4.0 34 | - Fixed compatibility to new version of KOMA script 35 | - Fixed code for headline/title styles (e.g., removed use of package titlesec) 36 | - Fixed code for footer style (e.g., removed use of package fancyhdr) 37 | - Fixed compatibility to new version of biblatex (e.g., obsolete options) 38 | - Fixed an issue with page breaks at headings (thanks @guillerodriguez) 39 | - Added style for part sections (often used for books) 40 | - Added new package options: quotation style, bibliography sorting, 41 | - Changed alignment of titles from justified to left aligned 42 | - Changed the documentation according the updates 43 | - Changed file structure of the repository in order to improve the development and release process 44 | - Example: several improvements, such as location of appendix, use of subsubsections and paragraphs, long section titles, listings, pdf bookmark for toc, or separate config file 45 | 46 | ## v0.3.1 47 | - re-licensed cleanthesis using the LPPL 1.3, http://www.latex-project.org/lppl.txt 48 | - moved documentation into a separate subfolder (doc/) 49 | - Example: change specific version number to a more general value (My First Draft). 50 | 51 | ## v0.3 52 | - Created this changelog text file 53 | - Switched to markdown files (README, CHANGELOG) 54 | - Added a sub-section in the example thesis 55 | - Fixed README. Corrected copyright statement (year), wording and link to classicthesis (moschlar) 56 | - Fixed broken package option/parameter colorize (hrzbrg) 57 | - Fixed changing font size of the document to small caused by a bug in the titlepage (matthieu-lapeyre) 58 | - Fixed documentation. Added missing descriptions for package options: hangfigurecaption, hangsection, hangsubsection, colorize, and colortheme 59 | - Fixed line height for the title on the very first title page (Riin) 60 | - Fixed colored title on title page, even if color mode is bw 61 | - New package option bibfile: allows you to link/use arbitrary bibtex files 62 | - New package option bibstyle: allows you to set a citation and bibliography style 63 | 64 | ## v0.2.3 65 | - Fixed line breaks for long chapter headlines (caused text overlapping) 66 | - Fixed wrong file names to the main latex file for the example document 67 | 68 | ## v0.2.2 69 | - Fix: added address for postcards 70 | - Doc: improved acknowledgments, added André Miede 71 | 72 | ## v0.2.1 73 | - Fix: make horizontal line longer (just a bit) 74 | - Fix: update my address (new) 75 | - Change: add my name to the colophon 76 | - Change: copyright years 77 | - Feature: new package option for citation management tool (bib engine), biber or bibtex 78 | - Doc: add first people to acknowledgments 79 | 80 | ## v0.2 81 | - Fix: label widths in the lof and lot (list of figures, list of tables) 82 | - Feature: more flexible/new package options 83 | - Feature: improved color management, introduction of color themes (currently two) 84 | - Doc: Initial documentation (package options) 85 | 86 | ## v0.1 87 | - Initial public beta version 88 | -------------------------------------------------------------------------------- /MANIFEST.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | MANIFEST.md 4 | Copyright 2020 R. Langner 5 | 6 | This work may be distributed and/or modified under the 7 | conditions of the LaTeX Project Public License, either version 1.3 8 | of this license or (at your option) any later version. 9 | The latest version of this license is in 10 | http://www.latex-project.org/lppl.txt 11 | and version 1.3 or later is part of all distributions of LaTeX 12 | version 2005/12/01 or later. 13 | 14 | This work has the LPPL maintenance status `maintained'. 15 | 16 | The Current Maintainer of this work is R. Langner. 17 | 18 | This work consists of all files listed in MANIFEST.md. 19 | 20 | --- 21 | 22 | # CONTENTS OF THE CLEANTHESIS STYLE 23 | 24 | ``` 25 | cleanthesis/ 26 | |-- CHANGELOG.md - changelog file 27 | |-- cleanthesis.sty - the cleanthesis style 28 | |-- MANIFEST.md - this file 29 | |-- README.md - readme file 30 | |-- VERSION - the version of the style 31 | |-- doc/ 32 | |-- cleanthesis-doc.tex - documentation source 33 | |-- cleanthesis-doc.pdf - generated documentation 34 | ``` 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Clean Thesis 2 | *-- A Clean LaTeX Style for Thesis Documents --* 3 | 4 | ## Table of contents 5 | 6 | * [About](#about) 7 | * [Getting started](#getting-started) 8 | * [Documentation and Support](#documentation-and-support) 9 | * [Contributing](#contributing) 10 | * [License Information](#license-information) 11 | 12 | ## About 13 | 14 | **Clean, Simple, Elegant** 15 | *Clean Thesis* is a LaTeX style for thesis documents, developed for my diploma thesis (Diplomarbeit). The style can be understood as my personal compromise — a typical clean looking scientific document combined and polished with minor beautifications. 16 | 17 | The design of this *Clean Thesis* style is inspired by user guide documents from Apple Inc. 18 | 19 | Note: If you are looking for an exact and correct style regarding typographic rules, please have a look at the "[Classic Thesis Style](see http://www.miede.de/#classicthesis)". 20 | 21 | **Donation = Postcard** 22 | Based on the idea of André Miede: If you like the *Clean Thesis* style I would be very pleased about a donation in the form of a POSTCARD. You can find my address at the *Clean Thesis* [website](http://cleanthesis.der-ric.de/) as well as in the [documentation](doc/cleanthesis-doc.pdf). I am going to collect all postcards and exhibit them at the website I mentioned. 23 | 24 | **Idea and Inspiration** 25 | The idea of providing my customized style for thesis documents passed through my mind while writing my own thesis. Motivated and inspired by the superb "[Classic Thesis Style](http://www.miede.de/#classicthesis)" by André Miede (thanks to André for doing a great job) I decided to collect all design and style related functionality in a separate LaTeX style and provide this style to other thesis writers. 26 | 27 | ## Getting started 28 | 29 | * Make sure you have an up-to-date TeX distribution 30 | * Download the example-thesis from the [releases page](https://github.com/derric/cleanthesis/releases) (file `cleanthesis-incl-example_v****.zip`) 31 | * [Check out the documentation](doc/cleanthesis-doc.pdf) to learn more about *Clean Thesis* and available package options 32 | 33 | ## Documentation and Support 34 | 35 | The [documentation](doc/cleanthesis-doc.pdf) gives an overview of available package options. 36 | 37 | Please use [Stack Exchange](http://tex.stackexchange.com/questions/tagged/cleanthesis) for questions about **using** *Clean Thesis*; and add the tag **cleanthesis** to your question. GitHub issues are for development purposes, e.g, reporting actual bugs or requesting new features. 38 | 39 | ## Contributing 40 | 41 | Did you find an error or a bug? Do you have a feature request? Before opening a [new issue](https://github.com/derric/cleanthesis/issues/new), please check out the list of [existing](https://github.com/derric/cleanthesis/issues) and [closed](https://github.com/derric/cleanthesis/issues?q=is%3Aissue+is%3Aclosed) issues. 42 | 43 | ## License Information 44 | 45 | README.md 46 | Copyright 2020 R. Langner 47 | 48 | This work may be distributed and/or modified under the 49 | conditions of the LaTeX Project Public License, either version 1.3 50 | of this license or (at your option) any later version. 51 | The latest version of this license is in 52 | http://www.latex-project.org/lppl.txt 53 | and version 1.3 or later is part of all distributions of LaTeX 54 | version 2005/12/01 or later. 55 | 56 | This work has the LPPL maintenance status `maintained'. 57 | 58 | The Current Maintainer of this work is R. Langner. 59 | 60 | This work consists of all files listed in MANIFEST.md. 61 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 0.4.1 -------------------------------------------------------------------------------- /cleanthesis.sty: -------------------------------------------------------------------------------- 1 | %% cleanthesis.sty 2 | %% Copyright 2020 R. Langner 3 | % 4 | % This work may be distributed and/or modified under the 5 | % conditions of the LaTeX Project Public License, either version 1.3 6 | % of this license or (at your option) any later version. 7 | % The latest version of this license is in 8 | % http://www.latex-project.org/lppl.txt 9 | % and version 1.3 or later is part of all distributions of LaTeX 10 | % version 2005/12/01 or later. 11 | % 12 | % This work has the LPPL maintenance status `maintained'. 13 | % 14 | % The Current Maintainer of this work is R. Langner. 15 | % 16 | % This work consists of all files listed in MANIFEST.md. 17 | % 18 | % 19 | % ************************************************** 20 | % 21 | % Clean Thesis 22 | % -- A LaTeX Style for Thesis Documents -- 23 | % 24 | % ************************************************** 25 | % 26 | % Readme: 27 | % ---------------------------------------- 28 | % Please check out the README.md file in the root of this package. 29 | % 30 | % ************************************************** 31 | \NeedsTeXFormat{LaTeX2e} 32 | \ProvidesPackage{cleanthesis}[2020/06/17 v0.4.1 A clean LaTeX style for thesis documents] 33 | % 34 | % ************************************************** 35 | % Package options 36 | % ************************************************** 37 | % 38 | % -- process all available package options 39 | % 40 | % 41 | % The xkeyval package enables us to handle for example key-value pairs 42 | % in an easy way 43 | \RequirePackage{xkeyval} 44 | 45 | % OPTION hangfigurecaption 46 | % --> values = true|false 47 | \define@boolkey[ct]{cthesis}{hangfigurecaption}[true]{} 48 | \setkeys[ct]{cthesis}{hangfigurecaption=false} 49 | 50 | % OPTION hangsection 51 | % --> values = true|false 52 | \define@boolkey[ct]{cthesis}{hangsection}[true]{} 53 | \setkeys[ct]{cthesis}{hangsection=true} 54 | 55 | % OPTION hangsubsection 56 | % --> values = true|false 57 | \define@boolkey[ct]{cthesis}{hangsubsection}[true]{} 58 | \setkeys[ct]{cthesis}{hangsubsection=true} 59 | 60 | % OPTION sansserif 61 | % --> values = true|false 62 | \define@boolkey[ct]{cthesis}{sansserif}[false]{} 63 | \setkeys[ct]{cthesis}{sansserif=false} 64 | 65 | % OPTION configurelistings 66 | % --> values = true|false 67 | \define@boolkey[ct]{cthesis}{configurelistings}[false]{} 68 | \setkeys[ct]{cthesis}{configurelistings=false} 69 | 70 | % OPTION configurebiblatex 71 | % --> values = true|false 72 | \define@boolkey[ct]{cthesis}{configurebiblatex}[false]{} 73 | \setkeys[ct]{cthesis}{configurebiblatex=false} 74 | 75 | % OPTION figuresep 76 | % --> values = none|colon|period|space|quad|endash 77 | \define@choicekey*[ct]{cthesis}{figuresep}{none,colon,period,space,quad,newline,endash}[endash]{\def\cthesis@figuresep{#1}} 78 | \setkeys[ct]{cthesis}{figuresep=endash} 79 | 80 | % OPTION colorize 81 | % --> values = full|reduced|bw 82 | \define@choicekey*[ct]{cthesis}{colorize}[\val\colorizenr]{full,reduced,bw}[full]{\def\cthesis@colorize{\colorizenr}} 83 | \setkeys[ct]{cthesis}{colorize=full} 84 | 85 | % OPTION colortheme 86 | % --> values = bluemagenta|bluegreen 87 | \define@choicekey*[ct]{cthesis}{colortheme}[\val\themenr]{bluemagenta,bluegreen}[bluemagenta]{\def\cthesis@colortheme{\themenr}} 88 | \setkeys[ct]{cthesis}{colortheme=bluemagenta} 89 | 90 | % OPTION bibsys 91 | % --> values = biber|bibtex 92 | \define@choicekey*[ct]{cthesis}{bibsys}[\val\bibsysnr]{biber,bibtex}[bibtex]{\def\cthesis@bibsys{#1}} 93 | \setkeys[ct]{cthesis}{bibsys=bibtex} 94 | 95 | % OPTION bibfile 96 | % --> values = file name of your bibtex file 97 | \define@key[ct]{cthesis}{bibfile}[bib-refs]{\def\cthesis@bibfile{#1}} 98 | \setkeys[ct]{cthesis}{bibfile=bib-refs} 99 | 100 | % OPTION bibstyle 101 | % --> values = biblatex style options 102 | \define@key[ct]{cthesis}{bibstyle}[alphabetic]{\def\cthesis@bibstyle{#1}} 103 | \setkeys[ct]{cthesis}{bibstyle=alphabetic} 104 | 105 | % OPTION bibsorting 106 | % --> values = biblatex sorting options 107 | \define@key[ct]{cthesis}{bibsorting}[nty]{\def\cthesis@bibsorting{#1}} 108 | \setkeys[ct]{cthesis}{bibsorting=nty} 109 | 110 | % OPTION quotesstyle 111 | % --> values = csquotes style options 112 | \define@key[ct]{cthesis}{quotesstyle}[english]{\def\cthesis@quotesstyle{#1}} 113 | \setkeys[ct]{cthesis}{quotesstyle=english} 114 | 115 | \DeclareOptionX*{ 116 | \PackageWarning{cleanthesis}{Unknown option ‘\CurrentOption’}% 117 | } 118 | 119 | \ProcessOptionsX[ct] 120 | 121 | % Checks if bib file exists, if not we throw an error 122 | \IfFileExists{\cthesis@bibfile.bib}{}{\PackageError{cleanthesis}{Unable to find BibTeX file \cthesis@bibfile.bib!}{Please provide the name of your BibTeX file to the cleanthesis package parameter bibfile.}} 123 | 124 | % ************************************************** 125 | % Color Definitions 126 | % ************************************************** 127 | % 128 | % -- defines color themes and color commands 129 | % 130 | % 131 | % The xcolor package enables us to create/handle/name different colors 132 | \RequirePackage[dvipsnames]{xcolor} 133 | 134 | % updates all colors regarding the defined main and accessory 135 | % color, as well as the defined colorize mode (full, reduced, bw) 136 | \long\def\ct@cthesis@updatecolors{% 137 | % sets all colors (like colorize == full) 138 | % -- footer colors 139 | \colorlet{ctcolorfooterpage}{ctcolorblack} 140 | \colorlet{ctcolorfooterline}{ctcolormain} 141 | \colorlet{ctcolorfootermark}{ctcolorblack} 142 | \colorlet{ctcolorfootertitle}{ctcolormain} 143 | % -- sectioning colors 144 | \colorlet{ctcolortitle}{ctcolormain} 145 | \colorlet{ctcolorpartnum}{ctcolormain} 146 | \colorlet{ctcolorpartline}{ctcolorblack} 147 | \colorlet{ctcolorparttext}{ctcolorblack} 148 | \colorlet{ctcolorchapternum}{ctcolormain} 149 | \colorlet{ctcolorchapterline}{ctcolormain} 150 | \colorlet{ctcolorsection}{ctcolormain} 151 | \colorlet{ctcolorsubsection}{ctcolormain} 152 | \colorlet{ctcolorparagraph}{ctcolorblack} 153 | % --> text colors 154 | \colorlet{ctcolorfloatlabel}{ctcoloraccessory} 155 | \colorlet{ctcolorlistlabel}{ctcolormain} 156 | 157 | \ifcase\cthesis@colorize 158 | % case = 0 (colorize == full) 159 | % do nothing 160 | \or 161 | % case = 1 (colorize == reduced) 162 | % --> footer colors 163 | \colorlet{ctcolorfooterline}{ctcolorgray} 164 | \colorlet{ctcolorfootertitle}{ctcolorgray} 165 | % --> sectioning colors 166 | \colorlet{ctcolorsubsection}{ctcolorblack} 167 | \colorlet{ctcolorpartnum}{ctcolorblack} 168 | % --> text colors 169 | \colorlet{ctcolorlistlabel}{ctcolorblack} 170 | \or 171 | % case = 2 (colorize == bw) 172 | % --> footer colors 173 | \colorlet{ctcolorfooterline}{ctcolorgray} 174 | \colorlet{ctcolorfootertitle}{ctcolorgray} 175 | % --> sectioning colors 176 | \colorlet{ctcolortitle}{ctcolorblack} 177 | \colorlet{ctcolorpartnum}{ctcolorblack} 178 | \colorlet{ctcolorchapternum}{ctcolorblack} 179 | \colorlet{ctcolorchapterline}{ctcolorblack} 180 | \colorlet{ctcolorsection}{ctcolorblack} 181 | \colorlet{ctcolorsubsection}{ctcolorblack} 182 | % --> text colors 183 | \colorlet{ctcolorfloatlabel}{ctcolorblack} 184 | \colorlet{ctcolorlistlabel}{ctcolorblack} 185 | \else 186 | \fi 187 | } 188 | 189 | % sets the main and accessory color for the document 190 | \def\cthesissetcolor#1#2#3{% 191 | \definecolor{ctcolormain}{#1}{#2}% 192 | \definecolor{ctcoloraccessory}{#1}{#3}% 193 | \ct@cthesis@updatecolors% 194 | } 195 | 196 | % sets the blue-magenta color theme (blue/magenta) 197 | \def\cthesissetcolorbluemagenta{% 198 | \cthesissetcolor{cmyk}{1, .50, .10, .01}{.18, .98, .18, 0}% 199 | } 200 | 201 | % sets the blue-green color theme (blue/green) 202 | \def\cthesissetcolorbluegreen{% 203 | \cthesissetcolor{cmyk}{.61, .47, .03, 0}{.48, .05, .91, 0}% 204 | } 205 | 206 | % defines general colors 207 | \definecolor{ctcolorblack}{gray}{0} 208 | \definecolor{ctcolorgray}{gray}{.5} 209 | \definecolor{ctcolorgraylight}{gray}{.8} 210 | \definecolor{ctcolorgraylighter}{gray}{.95} 211 | 212 | % sets the color theme regarding the given package option colortheme 213 | \ifcase\cthesis@colortheme 214 | % case 0 (colortheme == bluemagenta) 215 | \cthesissetcolorbluemagenta 216 | \or 217 | % case 1 (colortheme == bluegreen) 218 | \cthesissetcolorbluegreen 219 | \else 220 | % all other cases 221 | \cthesissetcolorbluemagenta 222 | \fi 223 | 224 | 225 | % ************************************************** 226 | % Font Definitions (see http://www.tug.dk/FontCatalogue/) 227 | % ************************************************** 228 | \RequirePackage[T1]{fontenc} % font types and character verification 229 | 230 | \ifct@cthesis@sansserif 231 | % Using sans-serif fonts 232 | % 233 | %\RequirePackage{helvet} % Font: Helvetica 234 | %\RequirePackage{nimbus} % Font: Nimbus Sans, a clone of the Helvetica 235 | \RequirePackage{tgheros} % Font: TEX Gyre Heros 236 | %\RequirePackage{libertine} % Font: Biolinum, the standard sans serif typeface with the Libertine package 237 | %\RequirePackage[scaled]{berasans} % Font: Bera Sans, a a version of Bitstream Vera Sans slightly enhanced 238 | \renewcommand*\familydefault{\sfdefault}% 239 | \else 240 | % Using serif fonts 241 | % 242 | \RequirePackage{lmodern} % font set: Latin Modern 243 | \RequirePackage{charter} % font set: Charter 244 | %\RequirePackage{fourier} % font set: (basically improved utopia) 245 | \fi 246 | 247 | % ************************************************** 248 | % Load Packages 249 | % ************************************************** 250 | \RequirePackage{microtype} % typographic tuning 251 | \RequirePackage{setspace} % for line spacing, e.g. \onehalfspacing 252 | \RequirePackage[]{graphicx} % graphics import features 253 | \RequirePackage{tabularx} % table features 254 | %\RequirePackage{fancyhdr} % for header and footer modifications 255 | \RequirePackage{enumitem} % for simple list modifications 256 | \RequirePackage{blindtext} % package for blind text 257 | \RequirePackage{textcomp} % different symbols 258 | \RequirePackage{hyperref} % interactive link inside the document 259 | \RequirePackage{calc} 260 | \RequirePackage[automark]{scrlayer-scrpage} 261 | 262 | % 263 | \RequirePackage[ % modify figure and table captions 264 | font={small}, % - small font size 265 | labelfont={bf,sf,color=ctcolorfloatlabel},% - label in bold, sans-serif and magenta 266 | labelsep=\cthesis@figuresep, % - separator: none, colon, period, space, quad, newline, endash 267 | singlelinecheck=false % - no centered single-lined captions 268 | ]{caption}[2008/08/24] 269 | %\ifthenelse{\boolean{@figurecaptionoutside}}% 270 | \ifct@cthesis@hangfigurecaption 271 | % {% 272 | \DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}% 273 | \captionsetup{format=llap,labelsep=quad,singlelinecheck=false}% 274 | % }{} 275 | \fi 276 | % 277 | % 278 | % ************************************************** 279 | % Page construction 280 | % ************************************************** 281 | \KOMAoption{headinclude}{false} % include header in body? 282 | \KOMAoption{footinclude}{false} % include footer in body? 283 | \KOMAoption{footlines}{2.1} % number of foot lines 284 | \KOMAoption{mpinclude}{false} % include marginpar in body? 285 | \KOMAoption{BCOR}{25mm} % binding correction 286 | \KOMAoption{DIV}{12} % number of page divs (divider) 287 | % 288 | % 289 | \RequirePackage[ % advanced quotes 290 | strict=true, % - warning are errors now 291 | style=\cthesis@quotesstyle % - german quotes 292 | ]{csquotes} 293 | % 294 | 295 | % ************************************************** 296 | % Bibliography 297 | % ************************************************** 298 | \ifct@cthesis@configurebiblatex 299 | \RequirePackage[ % use biblatex for bibliography 300 | backend=\cthesis@bibsys, % - use biber backend (bibtex replacement) or bibtex 301 | style=\cthesis@bibstyle, % - use alphabetic (or numeric) bib style 302 | natbib=true, % - allow natbib commands 303 | hyperref=true, % - activate hyperref support 304 | backref=true, % - activate backrefs 305 | isbn=false, % - don't show isbn tags 306 | url=false, % - don't show url tags 307 | doi=false, % - don't show doi tags 308 | urldate=long, % - display type for dates 309 | maxnames=3,% 310 | minnames=1,% 311 | maxbibnames=5,% 312 | minbibnames=3,% 313 | maxcitenames=2,% 314 | mincitenames=1,%, 315 | sorting=\cthesis@bibsorting% 316 | ]{biblatex} 317 | \bibliography{\cthesis@bibfile} 318 | \DefineBibliographyStrings{ngerman}{% 319 | andothers = {{et\,al\adddot}}, % 'et al.' instead of 'u.a.' 320 | backrefpage = {{zitiert auf Seite}},% 321 | backrefpages = {{zitiert auf den Seiten}},% 322 | } 323 | \fi 324 | 325 | % ************************************************** 326 | % Text Format 327 | % ************************************************** 328 | \setstretch{1.2} % value for line spacing, use \setstretch{} or \singlespacing or \onehalfspacing or \doublespacing 329 | %\setlength{\parindent}{0em} % value for paragraph indentation 330 | \clubpenalty = 10000 % prevent single lines at the beginning of a paragraph (Schusterjungen) 331 | \widowpenalty = 10000 % prevent single lines at the end of a paragraph (Hurenkinder) 332 | \displaywidowpenalty = 10000 % 333 | 334 | % ************************************************** 335 | % Listing Format 336 | % ************************************************** 337 | \ifct@cthesis@configurelistings 338 | \RequirePackage{listings} % package for listings 339 | \lstset{% 340 | backgroundcolor=\color{ctcolorgraylighter}, 341 | linewidth=\textwidth, 342 | xleftmargin=10pt, 343 | captionpos=b, 344 | showspaces=false, 345 | showstringspaces=false, 346 | showtabs=false, 347 | tabsize=2, 348 | basicstyle=\footnotesize\ttfamily, 349 | frame=leftline, 350 | framerule=3pt, 351 | framexleftmargin=4pt, 352 | rulecolor=\color{ctcolorgraylight}, 353 | numbers=left, 354 | numberstyle=\footnotesize\sffamily\color{ctcolorgray}, 355 | numbersep=15pt 356 | } 357 | \fi 358 | 359 | % ************************************************** 360 | % List Definitions 361 | % ************************************************** 362 | \newenvironment{my_list}% 363 | {\begin{enumerate}% 364 | \setlength{\itemsep}{1pt}% 365 | \setlength{\parskip}{0pt}% 366 | \setlength{\parsep}{0pt}% 367 | }% 368 | {\end{enumerate}} 369 | % 370 | \newenvironment{my_list_num} 371 | {\begin{enumerate}[topsep=-5pt,partopsep=0pt,parsep=2pt,itemsep=3pt]} 372 | {\end{enumerate}}% 373 | 374 | \newenvironment{my_list_item} 375 | {\begin{itemize}[topsep=-5pt,partopsep=0pt,parsep=2pt,itemsep=3pt]} 376 | {\end{itemize}}% 377 | 378 | \newenvironment{ct_version_list} 379 | {\begin{itemize}[topsep=-5pt,partopsep=0pt,parsep=2pt,itemsep=3pt]} 380 | {\end{itemize}}% 381 | 382 | \newenvironment{ct_version_list_sub} 383 | {\begin{itemize}[topsep=-0pt,partopsep=0pt,parsep=0pt,itemsep=0pt]} 384 | {\end{itemize}}% 385 | 386 | \renewcommand{\descriptionlabel}[1]{% 387 | \hspace*{\labelsep}% 388 | \color{ctcolorlistlabel}% 389 | \tgherosfont\textbf{#1}% 390 | } 391 | \newenvironment{my_list_desc} 392 | {\begin{description}[% 393 | style=multiline,% 394 | topsep=-5pt,% 395 | leftmargin=3cm,% 396 | partopsep=0pt,% 397 | parsep=2pt,% 398 | itemsep=3pt% 399 | ]} 400 | {\end{description}}% 401 | 402 | % ************************************************** 403 | % Header and Footer 404 | % ************************************************** 405 | 406 | \automark[section]{chapter} % automatically marks sections as rightmark 407 | % and chapters as leftmark 408 | \setlength{\footheight}{120pt} % avoids scrlayer-scrpage warning: 409 | % footheight to low warning 410 | \setlength{\footskip}{185pt} % BAD HACK that moves the foot downwards 411 | \KOMAoption{footwidth}{foot:53pt} % BAD HACK that moves the foot towards 412 | % the outer border 413 | \setkomafont{pagefoot}{\ctfontfootertext} % font for footer 414 | \setkomafont{pagenumber}{\ctfontfooterpagenumber} % font for page numbers 415 | 416 | %% Redefinition of the chaptermark (used for footer mark on even (left) pages) 417 | \renewcommand{\chaptermark}[1]{% 418 | \markboth{% 419 | \ctfontfootertext 420 | % use \@chapapp instead of \chaptername to avoid 421 | % 'Chapter A Appendix ...', thanks to @farbverlust (issue #47) 422 | {\color{ctcolorfootermark}\textbf{\@chapapp\ \thechapter}}% 423 | \hspace{.25cm}% 424 | \protect\begin{minipage}[t]{.65\textwidth}% 425 | #1% 426 | \protect\end{minipage}% 427 | }{}% 428 | } 429 | 430 | %% Redefinition of the sectionmark (used for footer mark on odd (right) pages) 431 | \renewcommand{\sectionmark}[1]{% 432 | \markright{% 433 | \ctfontfootertext 434 | \protect\raggedleft% 435 | {\color{ctcolorfootermark}\textbf{\thesection}}% 436 | \hspace{.25cm}% 437 | \protect\begin{minipage}[t]{\minof{\widthof{#1}}{.7\textwidth}}% 438 | #1% 439 | \protect\end{minipage}% 440 | }% 441 | } 442 | 443 | %% Vertical line in the footer (between page number and mark) 444 | \newcommand{\ctfooterline}{% 445 | \color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}% 446 | } 447 | 448 | %% Page number for odd (right) pages 449 | \newcommand{\ctfooterrightpagenumber}{% 450 | \ctfooterline% 451 | \hspace*{10pt}% 452 | \begin{minipage}[b]{1.5cm}% 453 | \pagemark\ % 454 | \end{minipage}% 455 | } 456 | 457 | %% Page number for even (left) pages 458 | \newcommand{\ctfooterleftpagenumber}{% 459 | \begin{minipage}[b]{1.5cm}% 460 | \raggedleft\pagemark% 461 | \end{minipage}% 462 | \hspace*{10pt}% 463 | \ctfooterline% 464 | } 465 | 466 | %% Defines the content for header and footer 467 | \lehead{} 468 | \cehead{} 469 | \rehead{} 470 | \lohead{} 471 | \cohead{} 472 | \rohead{} 473 | \lefoot[% > plain 474 | \ctfooterleftpagenumber% 475 | ]{% > srcheadings 476 | \ctfooterleftpagenumber% 477 | \hspace*{0.75cm}% 478 | \headmark% 479 | } 480 | \cefoot{} 481 | \refoot{} 482 | \lofoot{} 483 | \cofoot{} 484 | \rofoot[% > plain 485 | \ctfooterrightpagenumber% 486 | ]{% > srcheadings 487 | \headmark% 488 | \hspace*{0.75cm}% 489 | \ctfooterrightpagenumber% 490 | } 491 | 492 | 493 | % ************************************************** 494 | % New Commands 495 | % ************************************************** 496 | % TODO command 497 | \definecolor{color_todo}{rgb}{.6,.8,.2} 498 | \newcommand{\TODO}[1]{{\color{color_todo}\textbf{[TODO #1]}}} 499 | % 500 | % 501 | % ref commands, e.g. for images, tables and text labels 502 | % -------------------------------------------------- 503 | % RESULT = (siehe Tab. 12.4) 504 | \newcommand{\tabref}[1]{(siehe Tab.~\ref{#1})} 505 | % 506 | % RESULT = (siehe Tab. 12.4) 507 | \newcommand{\tableref}[1]{(siehe Tab.~\ref{#1} Seite~\pageref{#1})} 508 | % 509 | % -------------------------------------------------- 510 | % RESULT = (siehe 3.4) 511 | \newcommand{\tref}[1]{(siehe \ref{#1})} 512 | % 513 | % RESULT = Abschnitt 3.4 514 | \newcommand{\treft}[1]{Abschnitt~\ref{#1}} 515 | % 516 | % RESULT = (siehe 3.4, Seite 12) 517 | \newcommand{\textref}[1]{(siehe \ref{#1}, Seite~\pageref{#1})} 518 | % 519 | % RESULT = Abschnitt 3.4 (siehe Seite 12) 520 | \newcommand{\textreft}[1]{Abschnitt~\ref{#1} (siehe Seite~\pageref{#1})} 521 | % 522 | % -------------------------------------------------- 523 | % RESULT = (siehe Abb. 10.4) 524 | \newcommand{\fref}[1]{(siehe Abb.~\ref{#1})} 525 | % 526 | % RESULT = (siehe Abb. 10.4 b) 527 | \newcommand{\frefadd}[2]{(siehe Abb.~\ref{#1}~#2)} 528 | % 529 | % RESULT = (siehe Abb. 10.4, Seite 12) 530 | \newcommand{\figref}[1]{(siehe Abb.~\ref{#1}, Seite~\pageref{#1})} 531 | % 532 | % RESULT = (siehe Abb. 10.4 b, Seite 12) 533 | \newcommand{\figrefadd}[2]{(siehe Abb.~\ref{#1}~#2, Seite~\pageref{#1})} 534 | % 535 | % RESULT = Abbildung 10.4 536 | \newcommand{\figreft}[1]{Abbildung~\ref{#1}} 537 | % 538 | % RESULT = Abbildung 10.4 b 539 | \newcommand{\figrefaddt}[2]{Abbildung~\ref{#1}~#2} 540 | % 541 | % -------------------------------------------------- 542 | % RESULT = (siehe Seite 12) 543 | \newcommand{\seepage}[1]{(siehe Seite~\pageref{#1})} 544 | 545 | 546 | % ************************************************** 547 | % Sectioning Commands 548 | % ************************************************** 549 | % 550 | \newcommand*{\ctSetFont}[3]{% 551 | arg1=#1, arg2=#2, arg3=#3% 552 | } 553 | 554 | % own font definitions 555 | \newcommand{\helv}{\fontfamily{phv}\fontsize{9}{11}\selectfont} 556 | \newcommand{\book}{\fontfamily{pbk}\fontseries{m}\fontsize{11}{13}\selectfont} 557 | \newcommand{\tgherosfont}{\fontfamily{qhv}\selectfont} 558 | 559 | \newcommand{\thesispartlabelfont}{\color{ctcolorpartnum}\nobreak\book\fontsize{60}{60}\selectfont} 560 | \newcommand{\thesispartfont}{\color{ctcolorparttext}\nobreak\normalfont\huge \tgherosfont\selectfont} 561 | \newcommand{\thesischapterfont}{\color{ctcolorblack}\nobreak\normalfont\huge \fontfamily{phv}\selectfont} 562 | %\newcommand{\thesissectionfont}{\color{ctcolormain}\nobreak\LARGE\bfseries \tgherosfont} 563 | \newcommand{\thesissectionfont}{\color{ctcolorsection}\nobreak\normalfont\LARGE \tgherosfont} 564 | \newcommand{\thesissubsectionfont}{\color{ctcolorsubsection}\nobreak\normalfont\Large \tgherosfont} 565 | \newcommand{\thesisparagraphfont}{\color{ctcolorparagraph}\nobreak\tgherosfont\small\bfseries} 566 | 567 | \newcommand{\ctfontfooterpagenumber}{% 568 | \color{ctcolorfooterpage}% 569 | \normalfont\normalsize\bfseries \tgherosfont% 570 | } 571 | \newcommand{\ctfontfootertext}{% 572 | \color{ctcolorfootertitle}% 573 | \normalfont\footnotesize \tgherosfont% 574 | } 575 | % 576 | % headings 577 | \setkomafont{part}{\thesispartfont} % for chapter entries 578 | \setkomafont{chapter}{\thesischapterfont} % for chapter entries 579 | \setkomafont{section}{\thesissectionfont} % for section entries 580 | \setkomafont{subsection}{\thesissubsectionfont} % for section entries 581 | \addtokomafont{subsubsection}{\tgherosfont} 582 | %\addtokomafont{paragraph}{\tgherosfont} 583 | \setkomafont{paragraph}{\thesisparagraphfont} 584 | 585 | %\setkomafont{subsection}{\large} % for subsection entries 586 | 587 | 588 | 589 | % 590 | % ************************************************** 591 | % Sectioning 592 | % ************************************************** 593 | % 594 | % -- modifications regarding sectioning (structural) commands, 595 | % i.e. \part, \chapter, \section, \subsection, \subsubsection, \paragraph 596 | % 597 | % --------------------------- 598 | % > formats: \part 599 | % --------------------------- 600 | \renewcommand*{\partpagestyle}{empty} 601 | \renewcommand*{\raggedpart}{\raggedleft} 602 | \renewcommand*\partheadmidvskip{\par\vspace*{3em}} 603 | \renewcommand*{\partformat}{% 604 | \usekomafont{part}% 605 | \thesispartlabelfont% 606 | \partname\ \thepart\quad% 607 | {\color{ctcolorpartline}\hspace*{-200pt}\rule[0pt]{600pt}{2pt}}% 608 | } 609 | % 610 | % --------------------------- 611 | % > formats: \chapter 612 | % --------------------------- 613 | \renewcommand*\chapterheadstartvskip{\vspace*{-8.75em}} 614 | \renewcommand*\chapterheadendvskip{\vspace*{2.5\baselineskip}} 615 | \renewcommand*{\chapterformat}{% 616 | \ctchapternumber{\thechapter}% 617 | } 618 | \renewcommand{\chapterlinesformat}[3]{% 619 | \ctchaptertitle{#3}% 620 | #2% 621 | } 622 | %\renewcommand{\chapterlineswithprefixformat}[3]{% 623 | % \ctchaptertitle{\@chapapp\ \thechapter: #3}% 624 | % #2% 625 | %} 626 | \newcommand{\ctchapternumber}[1]{% 627 | \usekomafont{chapter}% 628 | \begin{minipage}[t]{0.3\textwidth}% 629 | \raggedleft{% 630 | {\color{ctcolorchapterline}\rule[-5pt]{2pt}{5cm}}% 631 | \quad% 632 | {\color{ctcolorchapternum}\fontsize{60}{60}\selectfont#1}% 633 | }% 634 | \end{minipage}% 635 | } 636 | \newcommand{\ctchaptertitle}[1]{% 637 | \usekomafont{chapter}% 638 | \begin{minipage}[t]{0.7\textwidth}% 639 | \vspace*{5.85em}% 640 | \raggedright% 641 | #1% 642 | \end{minipage}% 643 | } 644 | % 645 | % --------------------------- 646 | % > formats: \section 647 | % --------------------------- 648 | \ifct@cthesis@hangsection 649 | \renewcommand*{\sectionformat}{% 650 | \usekomafont{section}% 651 | \makebox[0pt][r]{\color{ctcolorblack}\thesection\hspace*{10pt}}% 652 | } 653 | \else 654 | \renewcommand*{\sectionformat}{% 655 | \usekomafont{section}% 656 | {\color{ctcolorblack}\thesection\hspace*{10pt}}% 657 | } 658 | \fi 659 | % 660 | % --------------------------- 661 | % > formats: \subsection 662 | % --------------------------- 663 | \ifct@cthesis@hangsubsection 664 | \renewcommand*{\subsectionformat}{% 665 | \usekomafont{subsection}% 666 | \makebox[0pt][r]{\color{ctcolorblack}\thesubsection\hspace*{10pt}}% 667 | } 668 | \else 669 | \renewcommand*{\subsectionformat}{% 670 | \usekomafont{subsection}% 671 | {\color{ctcolorblack}\thesubsection\hspace*{10pt}}% 672 | } 673 | \fi 674 | % 675 | % 676 | % ************************************************** 677 | % ToC, LoF, LoT, LoL 678 | % ************************************************** 679 | % 680 | % -- modifications regarding the table of contents, 681 | % the list of figures, list of tables, 682 | % and list of listings 683 | % 684 | % > removes indention for lists of floating environments (e.g., lof and lot) 685 | \KOMAoption{listof}{flat} 686 | % 687 | % 688 | % ************************************************** 689 | % Mishmash 690 | % ************************************************** 691 | % 692 | % Clean chapter quotations 693 | \newcommand{\hugequote}{% 694 | {\book\fontsize{75}{80}\selectfont% 695 | \hspace*{-.475em}\color{ctcolorgraylight}% 696 | \textit{\glqq}% 697 | \vskip -.26em}% 698 | } 699 | \newcommand{\cleanchapterquote}[3]{% 700 | \begin{minipage}{.865\textwidth}% 701 | \begin{flushright} 702 | \begin{minipage}{.65\textwidth}% 703 | \begin{flushleft} 704 | {\hugequote}\textit{#1} 705 | \end{flushleft} 706 | \begin{flushright} 707 | --- \textbf{#2} \\ 708 | #3 709 | \end{flushright} 710 | \end{minipage}% 711 | \end{flushright} 712 | \end{minipage}% 713 | \bigskip 714 | } 715 | % 716 | % Clean Quotation environment 717 | \newenvironment{thesis_quotation}% 718 | {% 719 | \begin{minipage}{.865\textwidth}% 720 | \begin{flushright} 721 | \begin{minipage}{.95\textwidth}% 722 | }% 723 | {% 724 | \end{minipage}% 725 | \end{flushright} 726 | \end{minipage}% 727 | }% 728 | % 729 | % Clean signs around word origins in definitions 730 | %\newcommand{\cthesisorigin}[1]{\textsf{\textlangle}#1\textsf{\textrangle}} 731 | 732 | 733 | 734 | -------------------------------------------------------------------------------- /doc/cleanthesis-doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derric/cleanthesis/63d1fdd815e3f78fd1cb64c58f8a9a1c28cad57c/doc/cleanthesis-doc.pdf -------------------------------------------------------------------------------- /doc/cleanthesis-doc.tex: -------------------------------------------------------------------------------- 1 | %% cleanthesis-doc.tex 2 | %% Copyright 2020 R. Langner 3 | % 4 | % This work may be distributed and/or modified under the 5 | % conditions of the LaTeX Project Public License, either version 1.3 6 | % of this license or (at your option) any later version. 7 | % The latest version of this license is in 8 | % http://www.latex-project.org/lppl.txt 9 | % and version 1.3 or later is part of all distributions of LaTeX 10 | % version 2005/12/01 or later. 11 | % 12 | % This work has the LPPL maintenance status `maintained'. 13 | % 14 | % The Current Maintainer of this work is R. Langner. 15 | % 16 | % This work consists of all files listed in MANIFEST.md. 17 | % 18 | \documentclass{ltxdockit} 19 | \usepackage{btxdockit} 20 | \usepackage[utf8]{inputenc} 21 | \usepackage[american]{babel} 22 | \usepackage[strict]{csquotes} 23 | \usepackage{tabularx} 24 | \usepackage{longtable} 25 | \usepackage{booktabs} 26 | \usepackage{shortvrb} 27 | \usepackage{pifont} 28 | \usepackage{graphicx} 29 | 30 | \newcommand*{\cleanthesis}{\emph{Clean Thesis}\xspace} 31 | \newcommand*{\cthesishome}{http://cleanthesis.der-ric.de/} 32 | %\newcommand*{\cthesisctan}{http://www.ctan.org/tex-archive/macros/latex/contrib/../} 33 | 34 | \titlepage{% 35 | title={The \sty{cleanthesis} Package}, 36 | subtitle={A Clean LaTeX Style for Thesis Documents}, 37 | url={\cthesishome}, 38 | author={Ricardo Langner}, 39 | email={info@cleanthesis.der-ric.de}, 40 | revision={0.4.1}, 41 | date={2020/06/17}} 42 | 43 | \hypersetup{% 44 | pdftitle={The \cleanthesis Package}, 45 | pdfsubject={A Clean LaTeX Style for Thesis Documents}, 46 | pdfauthor={Ricardo Langner}, 47 | pdfkeywords={tex, latex, thesis, style}} 48 | 49 | 50 | %\setcounter{secnumdepth}{4} 51 | % > adjust depth of the toc and removes the indention 52 | \setcounter{tocdepth}{3} 53 | \AtBeginToc{\setcounter{tocdepth}{3}} 54 | \AtEndToc{\setcounter{tocdepth}{5}} 55 | \KOMAoption{toc}{flat} 56 | 57 | \begin{document} 58 | 59 | \printtitlepage 60 | \tableofcontents 61 | %\listoftables 62 | 63 | \section{Introduction} 64 | \label{sec:intro} 65 | 66 | \subsection[About]{About \sty{cleanthesis}} 67 | \label{sec:intro:about} 68 | 69 | \subsection{Donation} 70 | \label{sec:intro:donation} 71 | 72 | If you like the \cleanthesis style, or you have used it for one of your own documents successfully there are (at least) three different but pretty easy ways of saying thank you. 73 | 74 | \paragraph{Report on issues and missing features} If you have ideas for new features, suggestions for improvements or you encounter problems and errors using the \cleanthesis style please report them using the issue tracker\footnote{\url{https://github.com/derric/cleanthesis/issues}} at the GitHub Project\footnote{\url{https://github.com/derric/cleanthesis}} or send an email to \texttt{issue[at]cleanthesis.der-ric.de}. 75 | 76 | \paragraph{Be Social} I would very much appreciate a donation in the form of a blog post, tweet, or facebook post. Share your experience and your opinion. Talk to your friends, fellow students, or colleagues about the \cleanthesis style. 77 | 78 | \paragraph{Send me a postcard} Based on the idea of André Miede: I would be very pleased about a donation in the form of a POSTCARD. You can find my address below this paragraph. I am going to collect all postcards and exhibit them on the website \url{\cthesishome}. My address is 79 | 80 | 81 | \begin{itemize} 82 | \item \textbf{Ricardo Langner} \\ 83 | Alfred-Schrapel-Str. 7 \\ 84 | 01307 Dresden, Germany 85 | \end{itemize} 86 | 87 | \subsection{License} 88 | \label{sec:intro:license} 89 | 90 | Copyright \textcopyright\ 2020 R. Langner 91 | 92 | This work may be distributed and/or modified under the 93 | conditions of the LaTeX Project Public License, either version 1.3 94 | of this license or (at your option) any later version. 95 | The latest version of this license is in 96 | \url{http://www.latex-project.org/lppl.txt} 97 | and version 1.3 or later is part of all distributions of LaTeX 98 | version 2005/12/01 or later. 99 | 100 | This work has the LPPL maintenance status `maintained'. 101 | 102 | The Current Maintainer of this work is R. Langner. 103 | 104 | This work consists of all files listed in MANIFEST.md. 105 | 106 | \subsection{Feedback} 107 | \label{sec:intro:feedback} 108 | 109 | \subsection{Acknowledgments} 110 | \label{sec:intro:ack} 111 | 112 | First of all I would like to thank André Miede. He is the author of the Classic Thesis style. His Classic Thesis style inspired end encouraged me to publish my own thesis style. Thank you André for doing a great job. 113 | 114 | I would like to thank the following people for using the \cleanthesis style and providing me important initial feedback (e.g., features, bugs): (1) \textbf{Sebastian Kleinau} in his bachelor thesis, (2) \textbf{Mathias Frisch} in his dissertation (PhD), and (3) \textbf{Anton Augsburg} in his project thesis. 115 | 116 | \subsection{Prerequisites} 117 | \label{sec:intro:pre} 118 | 119 | The following section gives an overview of all resources required by this package. 120 | 121 | \subsubsection{Requirements} 122 | \label{sec:intro:req} 123 | 124 | \section{User Guide} 125 | \label{sec:userguide} 126 | 127 | \subsection{Package Options} 128 | \label{sec:userguide:pkgopt} 129 | 130 | All package options are given in \keyval notation. 131 | The value \texttt{true} can be omitted for all boolean keys, \eg \opt{hangsection} without a value is equivalent to \kvopt{hangsection}{true}. 132 | 133 | All of the following options must be used as \sty{cthesis} is loaded, \ie in the optional argument to \cmd{usepackage}. 134 | 135 | \begin{optionlist} 136 | 137 | \boolitem[false]{hangfigurecaption} 138 | 139 | Sets whether to use a hanging figure label (similar to headlines, placed in page margin) or not. 140 | 141 | \boolitem[true]{hangsection} 142 | 143 | Sets whether to use a hanging section label (placed in page margin) or not. 144 | 145 | \boolitem[true]{hangsubsection} 146 | 147 | Sets whether to use a hanging sub-section label (placed in page margin) or not. 148 | 149 | \boolitem[false]{sansserif} 150 | 151 | Sets whether to use a sans serif font or not. 152 | 153 | \boolitem[false]{configurelistings} 154 | 155 | Sets whether to use the package listings and to configure the visual appearance of lstlisting environments. 156 | 157 | \optitem[endash]{figuresep}{\opt{none},\opt{colon},\opt{period},\opt{space},\opt{quad},\opt{endash}} 158 | 159 | This option can be used to define a different label separator for cations of figures. The following value are allowed: 160 | 161 | \begin{valuelist} 162 | \item[none] Inserts no character in between. 163 | \item[colon] Inserts a colon (\textbf{:}) in between. 164 | \item[period] Inserts a period (\textbf{.}) in between. 165 | \item[space] Inserts a single space character in between. 166 | \item[quad] Inserts a \cmd{\\quad} in between. 167 | \item[endash] Inserts an en dash (\textbf{--}) in between. 168 | \end{valuelist} 169 | 170 | \optitem[full]{colorize}{\opt{full},\opt{reduced},\opt{bw}} 171 | 172 | This option can be used to define a color mode, i.e., what elements or parts of the document should be colored. 173 | This allows you to reduce costs, if you need to print the document. 174 | The following values are allowed: 175 | 176 | \begin{valuelist} 177 | \item[full] In this mode, almost every page uses some color, because the thin line besides the page number (footer) is colored. 178 | The following elements are colored as well: title of the document (title page), number of the chapter on the chapter page, name of the chapter in the footer, section and sub-section headlines, and figure labels. 179 | \item[reduced] This mode reduces the use of colors to reasonable level. 180 | Footers are totally free of colors. 181 | Only the title page, chapter pages, section headlines, and figure labels are colored. 182 | \item[bw] This mode completely eliminates all colors of the document style---every element is black or gray. 183 | If you do not use colored images either, the document is completely achromatic. 184 | \end{valuelist} 185 | 186 | \optitem[bluemagenta]{colortheme}{\opt{bluemagenta},\opt{bluegreen}} 187 | 188 | This option can be used, to switch between different color presets. 189 | These presets are used to colorize, e.g., headlines, footnotes, or chapter numbers. 190 | This option has a reduced or no effect depending on the package option \texttt{colorize} (see above). 191 | The following values are allowed: 192 | 193 | \begin{valuelist} 194 | \item[bluemagenta] Headlines and titles use a blue color, figure labels use magenta. 195 | \item[bluegreen] Headlines and titles use a blue color, figure labels use green. 196 | \end{valuelist} 197 | 198 | \optitem[english]{quotesstyle}{csquotes style options} 199 | 200 | Sets the quote style. 201 | This is a direct interface to the corresponding style option of the csquotes package. 202 | For further information please check out the csquotes documentation \url{https://www.ctan.org/pkg/csquotes}. 203 | The default is \texttt{english}. 204 | For individual settings, for instance German quotes, you can use \texttt{quotesstyle=german}. 205 | 206 | 207 | \subsubsection{Setup Your Bibliography} 208 | 209 | \boolitem[false]{configurebiblatex} 210 | 211 | Sets whether to use and configure the package biblatex within the template. 212 | 213 | If this option is set to false, you can setup your bibliography environment by yourself depending on your individual needs or requirements. In this case, you have to include something like \cs{usepackage\{biblatex\}} and \cs{bibliography\{bib-refs\}} in your preamble (i.e., before the \cs{begin\{document\}} statement). 214 | 215 | \optitem[bibtex]{bibsys}{\opt{biber},\opt{bibtex}} 216 | 217 | Sets whether to use \texttt{biber} or \texttt{bibtex} as citation management tool (engine). 218 | The default (still) is \texttt{bibtex}. 219 | 220 | "\texttt{Biber} [is] a BibTeX replacement for users of BibLaTeX", see \url{http://biblatex-biber.sourceforge.net/}. 221 | 222 | \optitem[bib-refs]{bibfile}{file name of your bibtex file} 223 | 224 | Sets the file name of the bibtex file used for the bibliography. 225 | If this option is not used (defined), the package looks for the default bibliography \texttt{bib-refs.bib}. 226 | 227 | \optitem[alphabetic]{bibstyle}{biblatex style options} 228 | 229 | Sets the bibliography style. 230 | This is a direct interface to the corresponding style option of the biblatex package. 231 | For further information please check out the biblatex documentation \url{http://www.ctan.org/pkg/biblatex}. 232 | The default is \texttt{alphabetic}. 233 | Two popular options are: 234 | 235 | \begin{valuelist} 236 | \item[alphabetic] (default) Prints labels similar to the traditional BibTeX style \texttt{alpha.bst}, for instance \texttt{[Lan+15]} or \texttt{[LHD17]} 237 | \item[numeric] Uses numeric labels, such as \texttt{[1]} or \texttt{[37]} 238 | \end{valuelist} 239 | 240 | However, you can also pass non-standard options to make use of other bibliography packages for biblatex. 241 | For example, by setting the option \texttt{style=ieee} or \texttt{style=ieee-alphabetic} you can use the biblatex-ieee package (see \url{https://ctan.org/pkg/biblatex-ieee}). 242 | 243 | \optitem[nty]{bibsorting}{biblatex sorting options} 244 | 245 | Sets the sorting order of the bibliography. 246 | This is a direct interface to the corresponding option of the biblatex package. 247 | For further information please check out the biblatex documentation \url{http://www.ctan.org/pkg/biblatex}. 248 | The default is \texttt{nty}. 249 | Some popular options include: 250 | 251 | \begin{valuelist} 252 | \item[nty] (default) Sort by name, title, year 253 | \item[nyt] Sort by name, year, title 254 | \item[none] No sorting at all, entries are processed in the order of their citation 255 | \end{valuelist} 256 | 257 | \end{optionlist} 258 | 259 | \end{document} 260 | -------------------------------------------------------------------------------- /doc/wrapfooter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derric/cleanthesis/63d1fdd815e3f78fd1cb64c58f8a9a1c28cad57c/doc/wrapfooter.jpg -------------------------------------------------------------------------------- /example-thesis/bib-refs.bib: -------------------------------------------------------------------------------- 1 | @online{WEB:GNU:GPL:2010, 2 | Author = {{Free Software Foundation, Inc.}}, 3 | Title = {GNU General Public License}, 4 | Url = {http://www.gnu.org/licenses/gpl.html}, 5 | Urldate = {2011-05-27}, 6 | Year = {2010}} 7 | 8 | @online{WEB:Miede:2011, 9 | Author = {Andr{\'e} Miede}, 10 | Title = {A Classic Thesis Style by Andr{\'e} Miede}, 11 | Url = {http://www.miede.de/index.php?page=classicthesis}, 12 | Urldate = {2011-05-27}, 13 | Year = {2011}} 14 | 15 | @book{Jurgens:2000, 16 | Author = {Manuela J{\"u}rgens}, 17 | Publisher = {FernUniversit{\"a}t Gesamthochschule in Hagen}, 18 | Title = {LaTeX: eine Einf{\"u}hrung und ein bisschen mehr}, 19 | Year = {2000}} 20 | 21 | @book{Jurgens:1995, 22 | Author = {Manuela J{\"u}rgens}, 23 | Publisher = {FernUniversit{\"a}t Gesamthochschule in Hagen}, 24 | Title = {LaTeX: Fortgeschrittene Anwendungen}, 25 | Year = {1995}} 26 | 27 | @manual{Miede:2011, 28 | Author = {Andr{\'e} Miede}, 29 | Title = {A Classic Thesis Style: An Homage to The Elements of Typographic Style}, 30 | Year = {2011}} 31 | 32 | @book{Kohm:2011, 33 | Author = {Markus Kohm and Jens-Uwe-Morawski}, 34 | Title = {KOMA-Script: Die Anleitung}, 35 | Year = {2011}} 36 | 37 | @book{Apple:keynote:2010, 38 | Author = {{Apple Inc.}}, 39 | Publisher = {{Apple Inc.}}, 40 | Title = {Keynote '09 User Guide}, 41 | Year = {2010}} 42 | 43 | @book{Apple:numbers:2010, 44 | Author = {{Apple Inc.}}, 45 | Publisher = {{Apple Inc.}}, 46 | Title = {Numbers '09 User Guide}, 47 | Year = {2010}} 48 | 49 | @book{Apple:pages:2010, 50 | Author = {{Apple Inc.}}, 51 | Publisher = {{Apple Inc.}}, 52 | Title = {Pages '09 User Guide}, 53 | Year = {2010}} 54 | -------------------------------------------------------------------------------- /example-thesis/content/abstract.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \pdfbookmark[0]{Abstract}{Abstract} 4 | \addchap*{Abstract} 5 | \label{sec:abstract} 6 | 7 | \blindtext 8 | 9 | \vspace*{20mm} 10 | 11 | {\usekomafont{chapter}Abstract (different language)} 12 | \label{sec:abstract-diff} 13 | 14 | \blindtext 15 | -------------------------------------------------------------------------------- /example-thesis/content/acknowledgement.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \pdfbookmark[0]{Acknowledgement}{Acknowledgement} 4 | \addchap*{Acknowledgement} 5 | \label{sec:acknowledgement} 6 | 7 | \Blindtext[2][2] 8 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-appendix.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{Example Appendix} 4 | \label{sec:appendix} 5 | 6 | \Blindtext[1][1] 7 | 8 | \section{Appendix Section 1} 9 | \label{sec:appendix:sec1} 10 | 11 | \Blindtext[1][1] 12 | 13 | \begin{table}[h] 14 | \begin{tabularx}{\textwidth}{X | X | X} 15 | %\hline 16 | Alpha & Beta & Gamma \\ \hline 17 | 0 & 1 & 2 \\ \hline 18 | 3 & 4 & 5 \\ %\hline 19 | \end{tabularx} 20 | \label{tab:table1} 21 | \caption{This is a caption text.} 22 | \end{table} 23 | 24 | \section{Appendix Section 2} 25 | \label{sec:appendix:sec2} 26 | 27 | \Blindtext[1][1] 28 | 29 | \begin{table}[h] 30 | \begin{tabularx}{\textwidth}{X | X | X} 31 | %\hline 32 | Alpha & Beta & Gamma \\ \hline 33 | 0 & 1 & 2 \\ \hline 34 | 3 & 4 & 5 \\ %\hline 35 | \end{tabularx} 36 | \label{tab:table2} 37 | \caption{This is a caption text.} 38 | \end{table} 39 | 40 | \Blindtext[1][2] 41 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-concepts.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{Concepts: This text is here to test a very long title, to simulate the line break behavior, to show that an extremely long title also works} 4 | \label{sec:concepts} 5 | 6 | \cleanchapterquote{Users do not care about what is inside the box, as long as the box does what they need done.}{Jef Raskin}{about Human Computer Interfaces} 7 | 8 | \Blindtext[2][1] 9 | 10 | \section{Concepts Section 1} 11 | \label{sec:concepts:sec1} 12 | 13 | \Blindtext[2][2] 14 | 15 | \section{Concepts Section 2 with a very very long title that illustrates how long section titles are handled in the footer} 16 | \label{sec:concepts:sec2} 17 | 18 | \Blindtext[3][2] 19 | 20 | \section{Concepts Section 3} 21 | \label{sec:concepts:sec3} 22 | 23 | \Blindtext[4][2] 24 | 25 | \section{Conclusion} 26 | \label{sec:concepts:conclusion} 27 | 28 | \Blindtext[2][1] 29 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-conclusion.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{Conclusion} 4 | \label{sec:conclusion} 5 | 6 | \Blindtext[2][1] 7 | 8 | \section{System Section 1} 9 | \label{sec:conclusion:sec1} 10 | 11 | \Blindtext[2][2] 12 | 13 | \section{System Section 2} 14 | \label{sec:conclusion:sec2} 15 | 16 | \Blindtext[3][2] 17 | 18 | \section{Future Work} 19 | \label{sec:conclusion:future} 20 | 21 | \Blindtext[2][2] 22 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-introduction.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{Introduction} 4 | \label{sec:intro} 5 | 6 | \cleanchapterquote{You can’t do better design with a computer, but you can speed up your work enormously.}{Wim Crouwel}{(Graphic designer and typographer)} 7 | 8 | \Blindtext[2][2] 9 | 10 | \section{Postcards: My Address} 11 | \label{sec:intro:address} 12 | 13 | If you like the template and if it was somehow useful and helpful to you, I would be very pleased about a good old postcard from you\footnote{perhaps a postcard with a picture of your location}. My address is: 14 | 15 | \textbf{Ricardo Langner} \\ 16 | Alfred-Schrapel-Str. 7 \\ 17 | 01307 Dresden \\ 18 | Germany 19 | 20 | 21 | \section{Motivation and Problem Statement} 22 | \label{sec:intro:motivation} 23 | 24 | \Blindtext[3][1] \cite{Jurgens:2000,Jurgens:1995,Miede:2011,Kohm:2011,Apple:keynote:2010,Apple:numbers:2010,Apple:pages:2010} 25 | 26 | \section{Results} 27 | \label{sec:intro:results} 28 | 29 | \Blindtext[1][2] 30 | 31 | \subsection{Some References} 32 | \label{sec:intro:results:refs} 33 | 34 | \cite{WEB:GNU:GPL:2010,WEB:Miede:2011} 35 | \Blindtext[1][1] 36 | 37 | \subsubsection{Methodology} 38 | \label{sec:intro:results:refs:method} 39 | 40 | \Blindtext[1][2] 41 | 42 | \paragraph{Strategy 1} 43 | \Blindtext[1][1] 44 | 45 | \begin{lstlisting}[language=Python, caption={This simple helloworld.py file prints Hello World.}\label{lst:pyhelloworld}] 46 | #!/usr/bin/env python 47 | print "Hello World" 48 | \end{lstlisting} 49 | 50 | \paragraph{Strategy 2} 51 | \Blindtext[1][1] 52 | 53 | \begin{lstlisting}[language=Python, caption={This is a bubble sort function.}\label{lst:pybubblesort}] 54 | #!/usr/bin/env python 55 | def bubble_sort(list): 56 | for num in range(len(list)-1,0,-1): 57 | for i in range(num): 58 | if list[i]>list[i+1]: 59 | tmp = list[i] 60 | list[i] = list[i+1] 61 | list[i+1] = tmp 62 | 63 | alist = [34,67,2,4,65,16,17,95,20,31] 64 | bubble_sort(list) 65 | print(list) 66 | \end{lstlisting} 67 | 68 | \section{Thesis Structure} 69 | \label{sec:intro:structure} 70 | 71 | \textbf{Chapter \ref{sec:related}} \\[0.2em] 72 | \blindtext 73 | 74 | \textbf{Chapter \ref{sec:system}} \\[0.2em] 75 | \blindtext 76 | 77 | \textbf{Chapter \ref{sec:concepts}} \\[0.2em] 78 | \blindtext 79 | 80 | \textbf{Chapter \ref{sec:concepts}} \\[0.2em] 81 | \blindtext 82 | 83 | \textbf{Chapter \ref{sec:conclusion}} \\[0.2em] 84 | \blindtext 85 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-related-work.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{Related Work} 4 | \label{sec:related} 5 | 6 | \cleanchapterquote{A picture is worth a thousand words. An interface is worth a thousand pictures.}{Ben Shneiderman}{(Professor for Computer Science)} 7 | 8 | \Blindtext[2][1] 9 | 10 | \begin{lstlisting}[language=Java, caption={A simple Hellow World example in Java.}\label{lst:javahelloworld}] 11 | public class HelloWorld { 12 | public static void main ( String[] args ) { 13 | // Output Hello World! 14 | System.out.println( "Hello World!" ); 15 | } 16 | } 17 | \end{lstlisting} 18 | 19 | \Blindtext[1][1] 20 | 21 | \section{Related Work Section 1} 22 | \label{sec:related:sec1} 23 | 24 | \Blindtext[2][2] 25 | 26 | \section{Related Work Section 2} 27 | \label{sec:related:sec2} 28 | 29 | \Blindtext[3][2] 30 | 31 | \section{Related Work Section 3} 32 | \label{sec:related:sec3} 33 | 34 | \Blindtext[4][2] 35 | 36 | \section{Conclusion} 37 | \label{sec:related:conclusion} 38 | 39 | \Blindtext[2][1] 40 | -------------------------------------------------------------------------------- /example-thesis/content/chapter-system.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \chapter{System} 4 | \label{sec:system} 5 | 6 | \cleanchapterquote{Innovation distinguishes between a leader and a follower.}{Steve Jobs}{(CEO Apple Inc.)} 7 | 8 | \Blindtext[2][1] 9 | 10 | \section{System Section 1} 11 | \label{sec:system:sec1} 12 | 13 | \Blindtext[1][2] 14 | 15 | \begin{figure}[htb] 16 | \includegraphics[width=\textwidth]{gfx/Clean-Thesis-Figure} 17 | \caption{Figure example: \textit{(a)} example part one, \textit{(c)} example part two; \textit{(c)} example part three} 18 | \label{fig:system:example1} 19 | \end{figure} 20 | 21 | \Blindtext[1][2] 22 | 23 | \section{System Section 2} 24 | \label{sec:system:sec2} 25 | 26 | \Blindtext[1][2] 27 | 28 | \begin{figure}[htb] 29 | \includegraphics[width=\textwidth]{gfx/Clean-Thesis-Figure} 30 | \caption{Another Figure example: \textit{(a)} example part one, \textit{(c)} example part two; \textit{(c)} example part three} 31 | \label{fig:system:example2} 32 | \end{figure} 33 | 34 | \Blindtext[2][2] 35 | 36 | \section{System Section 3} 37 | \label{sec:system:sec3} 38 | 39 | \Blindtext[4][2] 40 | 41 | \section{Conclusion} 42 | \label{sec:system:conclusion} 43 | 44 | \Blindtext[2][1] 45 | -------------------------------------------------------------------------------- /example-thesis/content/colophon.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | \pagestyle{empty} 4 | \hfill 5 | \vfill 6 | \pdfbookmark[0]{Colophon}{Colophon} 7 | \section*{Colophon} 8 | 9 | This thesis was typeset with \LaTeXe. 10 | It uses the \textit{Clean Thesis} style developed by Ricardo Langner. 11 | The design of the \textit{Clean Thesis} style is inspired by user guide documents from Apple Inc. 12 | 13 | Download the \textit{Clean Thesis} style at \url{http://cleanthesis.der-ric.de/}. 14 | -------------------------------------------------------------------------------- /example-thesis/content/declaration.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | %************************************************ 4 | % Declaration 5 | %************************************************ 6 | \pdfbookmark[0]{Declaration}{Declaration} 7 | \addchap{Declaration} 8 | \label{sec:declaration} 9 | \thispagestyle{empty} 10 | 11 | You can put your declaration here, to declare that you have completed your work solely and only with the help of the references you mentioned. 12 | 13 | \bigskip 14 | 15 | \noindent\textit{\thesisUniversityCity, \thesisDate} 16 | 17 | \smallskip 18 | 19 | \begin{flushright} 20 | \begin{minipage}{5cm} 21 | \rule{\textwidth}{1pt} 22 | \centering\thesisName 23 | \end{minipage} 24 | \end{flushright} 25 | 26 | %***************************************** 27 | %***************************************** 28 | -------------------------------------------------------------------------------- /example-thesis/content/titlepages.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = ../my-thesis.tex 2 | % 3 | % ------------------------------------ --> cover title page 4 | \begin{titlepage} 5 | \pdfbookmark[0]{Cover}{Cover} 6 | \flushright 7 | \hfill 8 | \vfill 9 | {\LARGE\thesisTitle \par} 10 | \rule[5pt]{\textwidth}{.4pt} \par 11 | {\Large\thesisName} 12 | \vfill 13 | \textit{\large\thesisDate} \\ 14 | Version: \thesisVersion 15 | \end{titlepage} 16 | 17 | 18 | % ------------------------------------ --> main title page 19 | \begin{titlepage} 20 | \pdfbookmark[0]{Titlepage}{Titlepage} 21 | \tgherosfont 22 | \centering 23 | 24 | {\Large \thesisUniversity} \\[4mm] 25 | \includegraphics[width=6cm]{gfx/Clean-Thesis-Logo} \\[2mm] 26 | \textsf{\thesisUniversityDepartment} \\ 27 | \textsf{\thesisUniversityInstitute} \\ 28 | \textsf{\thesisUniversityGroup} \\ 29 | 30 | \vfill 31 | {\large \thesisSubject} \\[5mm] 32 | {\LARGE \color{ctcolortitle}\textbf{\thesisTitle} \\[10mm]} 33 | {\Large \thesisName} \\ 34 | 35 | \vfill 36 | \begin{minipage}[t]{.27\textwidth} 37 | \raggedleft 38 | \textit{1. Reviewer} 39 | \end{minipage} 40 | \hspace*{15pt} 41 | \begin{minipage}[t]{.65\textwidth} 42 | {\Large \thesisFirstReviewer} \\ 43 | {\small \thesisFirstReviewerDepartment} \\[-1mm] 44 | {\small \thesisFirstReviewerUniversity} 45 | \end{minipage} \\[5mm] 46 | \begin{minipage}[t]{.27\textwidth} 47 | \raggedleft 48 | \textit{2. Reviewer} 49 | \end{minipage} 50 | \hspace*{15pt} 51 | \begin{minipage}[t]{.65\textwidth} 52 | {\Large \thesisSecondReviewer} \\ 53 | {\small \thesisSecondReviewerDepartment} \\[-1mm] 54 | {\small \thesisSecondReviewerUniversity} 55 | \end{minipage} \\[10mm] 56 | \begin{minipage}[t]{.27\textwidth} 57 | \raggedleft 58 | \textit{Supervisors} 59 | \end{minipage} 60 | \hspace*{15pt} 61 | \begin{minipage}[t]{.65\textwidth} 62 | \thesisFirstSupervisor\ and \thesisSecondSupervisor 63 | \end{minipage} \\[10mm] 64 | 65 | \thesisDate \\ 66 | 67 | \end{titlepage} 68 | 69 | 70 | % ------------------------------------ --> lower title back for single page layout 71 | \hfill 72 | \vfill 73 | { 74 | \small 75 | \textbf{\thesisName} \\ 76 | \textit{\thesisTitle} \\ 77 | \thesisSubject, \thesisDate \\ 78 | Reviewers: \thesisFirstReviewer\ and \thesisSecondReviewer \\ 79 | Supervisors: \thesisFirstSupervisor\ and \thesisSecondSupervisor \\[1.5em] 80 | \textbf{\thesisUniversity} \\ 81 | \textit{\thesisUniversityGroup} \\ 82 | \thesisUniversityInstitute \\ 83 | \thesisUniversityDepartment \\ 84 | \thesisUniversityStreetAddress \\ 85 | \thesisUniversityPostalCode\ and \thesisUniversityCity 86 | } 87 | -------------------------------------------------------------------------------- /example-thesis/gfx/Clean-Thesis-Figure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derric/cleanthesis/63d1fdd815e3f78fd1cb64c58f8a9a1c28cad57c/example-thesis/gfx/Clean-Thesis-Figure.pdf -------------------------------------------------------------------------------- /example-thesis/gfx/Clean-Thesis-Logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derric/cleanthesis/63d1fdd815e3f78fd1cb64c58f8a9a1c28cad57c/example-thesis/gfx/Clean-Thesis-Logo.pdf -------------------------------------------------------------------------------- /example-thesis/my-thesis-setup.tex: -------------------------------------------------------------------------------- 1 | % !TEX root = my-thesis.tex 2 | 3 | 4 | % ************************************************** 5 | % Files' Character Encoding 6 | % ************************************************** 7 | \PassOptionsToPackage{utf8}{inputenc} 8 | \usepackage{inputenc} 9 | 10 | 11 | % ************************************************** 12 | % Information and Commands for Reuse 13 | % ************************************************** 14 | \newcommand{\thesisTitle}{The Clean Thesis Style} 15 | \newcommand{\thesisName}{Ricardo Langner} 16 | \newcommand{\thesisSubject}{Documentation} 17 | \newcommand{\thesisDate}{June 21, 2016} 18 | \newcommand{\thesisVersion}{My First Draft} 19 | 20 | \newcommand{\thesisFirstReviewer}{Jane Doe} 21 | \newcommand{\thesisFirstReviewerUniversity}{\protect{Clean Thesis Style University}} 22 | \newcommand{\thesisFirstReviewerDepartment}{Department of Clean Thesis Style} 23 | 24 | \newcommand{\thesisSecondReviewer}{John Doe} 25 | \newcommand{\thesisSecondReviewerUniversity}{\protect{Clean Thesis Style University}} 26 | \newcommand{\thesisSecondReviewerDepartment}{Department of Clean Thesis Style} 27 | 28 | \newcommand{\thesisFirstSupervisor}{Jane Doe} 29 | \newcommand{\thesisSecondSupervisor}{John Smith} 30 | 31 | \newcommand{\thesisUniversity}{\protect{Clean Thesis Style University}} 32 | \newcommand{\thesisUniversityDepartment}{Department of Clean Thesis Style} 33 | \newcommand{\thesisUniversityInstitute}{Institute for Clean Thesis Dev} 34 | \newcommand{\thesisUniversityGroup}{Clean Thesis Group (CTG)} 35 | \newcommand{\thesisUniversityCity}{City} 36 | \newcommand{\thesisUniversityStreetAddress}{Street address} 37 | \newcommand{\thesisUniversityPostalCode}{Postal Code} 38 | 39 | 40 | % ************************************************** 41 | % Debug LaTeX Information 42 | % ************************************************** 43 | %\listfiles 44 | 45 | 46 | % ************************************************** 47 | % Load and Configure Packages 48 | % ************************************************** 49 | \usepackage[english]{babel} % babel system, adjust the language of the content 50 | \PassOptionsToPackage{% setup clean thesis style 51 | figuresep=colon,% 52 | hangfigurecaption=false,% 53 | hangsection=true,% 54 | hangsubsection=true,% 55 | sansserif=false,% 56 | configurelistings=true,% 57 | colorize=full,% 58 | colortheme=bluemagenta,% 59 | configurebiblatex=true,% 60 | bibsys=biber,% 61 | bibfile=bib-refs,% 62 | bibstyle=alphabetic,% 63 | bibsorting=nty,% 64 | }{cleanthesis} 65 | \usepackage{cleanthesis} 66 | 67 | \hypersetup{% setup the hyperref-package options 68 | pdftitle={\thesisTitle}, % - title (PDF meta) 69 | pdfsubject={\thesisSubject},% - subject (PDF meta) 70 | pdfauthor={\thesisName}, % - author (PDF meta) 71 | plainpages=false, % - 72 | colorlinks=false, % - colorize links? 73 | pdfborder={0 0 0}, % - 74 | breaklinks=true, % - allow line break inside links 75 | bookmarksnumbered=true, % 76 | bookmarksopen=true % 77 | } 78 | 79 | % ************************************************** 80 | % Other Packages 81 | % ************************************************** 82 | \usepackage{scrhack} -------------------------------------------------------------------------------- /example-thesis/my-thesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derric/cleanthesis/63d1fdd815e3f78fd1cb64c58f8a9a1c28cad57c/example-thesis/my-thesis.pdf -------------------------------------------------------------------------------- /example-thesis/my-thesis.tex: -------------------------------------------------------------------------------- 1 | % ************************************************** 2 | % Document Class Definition 3 | % ************************************************** 4 | \documentclass[% 5 | paper=A4, % paper size --> A4 is default in Germany 6 | twoside=true, % onesite or twoside printing 7 | openright, % doublepage cleaning ends up right side 8 | parskip=half, % spacing value / method for paragraphs 9 | chapterprefix=true, % prefix for chapter marks 10 | 11pt, % font size 11 | headings=normal, % size of headings 12 | bibliography=totoc, % include bib in toc 13 | listof=totoc, % include listof entries in toc 14 | titlepage=on, % own page for each title page 15 | captions=tableabove, % display table captions above the float env 16 | chapterprefix=false, % do not display a prefix for chapters 17 | appendixprefix=false, % but display a prefix for appendix chapter 18 | draft=false, % value for draft version 19 | ]{scrreprt}% 20 | 21 | 22 | % ************************************************** 23 | % Setup YOUR thesis document in this file ! 24 | % ************************************************** 25 | \input{my-thesis-setup} 26 | 27 | 28 | % ************************************************** 29 | % Document CONTENT 30 | % ************************************************** 31 | \begin{document} 32 | 33 | % uncomment the following command to fill up pages with 34 | % whitespace instead of aligning the first and last lines 35 | % of a page (see \raggedbottom vs. \flushbottom) 36 | %\raggedbottom 37 | 38 | % -------------------------- 39 | % rename document parts 40 | % -------------------------- 41 | 42 | % > set short label names for floating environments figure and table 43 | %\renewcaptionname{ngerman}{\figurename}{Abb.} 44 | %\renewcaptionname{ngerman}{\tablename}{Tab.} 45 | \renewcaptionname{english}{\figurename}{Fig.} 46 | \renewcaptionname{english}{\tablename}{Tab.} 47 | 48 | % > rename the title of the LOL, i.e. list of listings (default is "Listings") 49 | \renewcommand*{\lstlistlistingname}{List of Listings} 50 | 51 | % -------------------------- 52 | % Front matter 53 | % -------------------------- 54 | \pagenumbering{roman} % roman page numbing (invisible for empty page style) 55 | \pagestyle{empty} % no header or footers 56 | \input{content/titlepages} % INCLUDE: all titlepages 57 | \cleardoublepage 58 | 59 | \pagestyle{plain} % display just page numbers 60 | \input{content/abstract} % INCLUDE: the abstracts (english and german) 61 | \cleardoublepage 62 | % 63 | \input{content/acknowledgement} % INCLUDE: acknowledgement 64 | \cleardoublepage 65 | % 66 | \currentpdfbookmark{\contentsname}{toc} 67 | \setcounter{tocdepth}{2} % define depth of toc 68 | \tableofcontents % display table of contents 69 | \cleardoublepage 70 | 71 | % -------------------------- 72 | % Body matter 73 | % -------------------------- 74 | \pagenumbering{arabic} % arabic page numbering 75 | \setcounter{page}{1} % set page counter 76 | \pagestyle{scrheadings} % header and footer style 77 | 78 | %% Uncomment the following lines using the \part command 79 | %% to add part sections 80 | %\part{Example Part} 81 | \input{content/chapter-introduction} % INCLUDE: introduction 82 | \input{content/chapter-related-work} % INCLUDE: related work 83 | 84 | %\part{Additional Example Part} 85 | \input{content/chapter-system} % INCLUDE: system 86 | \input{content/chapter-concepts} % INCLUDE: concepts 87 | \input{content/chapter-conclusion} % INCLUDE: conclusion 88 | 89 | % -------------------------- 90 | % Back matter 91 | % -------------------------- 92 | % 93 | {% 94 | \setstretch{1.1} 95 | \renewcommand{\bibfont}{\normalfont\small} 96 | \setlength{\biblabelsep}{0pt} 97 | \setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip} 98 | \printbibliography[nottype=online] 99 | \newrefcontext[labelprefix={@}] 100 | \printbibliography[heading=subbibliography,title={Webpages},type=online] 101 | } 102 | \cleardoublepage 103 | 104 | \listoffigures 105 | \cleardoublepage 106 | 107 | \listoftables 108 | \cleardoublepage 109 | 110 | \lstlistoflistings 111 | \cleardoublepage 112 | 113 | \appendix\cleardoublepage 114 | \input{content/chapter-appendix} % INCLUDE: appendix 115 | 116 | \cleardoublepage 117 | \input{content/colophon} 118 | 119 | \cleardoublepage 120 | \input{content/declaration} 121 | \clearpage 122 | 123 | \newpage 124 | \mbox{} 125 | 126 | % ************************************************** 127 | % End of Document CONTENT 128 | % ************************************************** 129 | \end{document} 130 | -------------------------------------------------------------------------------- /scripts/bumpversion.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import re 3 | from datetime import datetime 4 | 5 | def bump(args): 6 | if ( len(args) != 1 ): 7 | print('Usage: python bumpversion.py [major|minor|patch]') 8 | return 9 | 10 | # get the current version 11 | f = open('VERSION') 12 | current_version = f.readline() 13 | f.close() 14 | 15 | # extract the version parts 16 | parts = current_version.split('.') 17 | major = parts[0] 18 | minor = parts[1] 19 | patch = parts[2] 20 | 21 | # bump the version 22 | cmd_arg = args[0] 23 | if (cmd_arg=='major'): 24 | major = int(major)+1 25 | minor = 0 26 | patch = 0 27 | if (cmd_arg=='minor'): 28 | minor = int(minor)+1 29 | patch = 0 30 | if (cmd_arg=='patch'): 31 | patch = int(patch)+1 32 | new_version = '{}.{}.{}'.format(major, minor, patch) 33 | 34 | bump_version_file(current_version, new_version) 35 | bump_sty_file(current_version, new_version) 36 | bump_docs_file(current_version, new_version) 37 | 38 | def bump_version_file(curr_version, new_version): 39 | filename = 'VERSION' 40 | 41 | with open(filename, 'r') as f: 42 | content = f.read() 43 | content = content.replace(curr_version, new_version) 44 | with open(filename, 'w') as f: 45 | f.write(content) 46 | 47 | def bump_sty_file(curr_version, new_version): 48 | filename = 'cleanthesis.sty' 49 | 50 | with open(filename, 'r') as f: 51 | content = f.read() 52 | regex = re.compile('\d{4}/\d{2}/\d{2}\sv'+curr_version) 53 | content = re.sub(regex, datetime.now().strftime('%Y/%m/%d')+' v'+new_version, content) 54 | with open(filename, 'w') as f: 55 | f.write(content) 56 | 57 | def bump_docs_file(curr_version, new_version): 58 | filename = 'doc/cleanthesis-doc.tex' 59 | 60 | with open(filename, 'r') as f: 61 | content = f.read() 62 | 63 | regex = re.compile('revision={'+curr_version+'}') 64 | repl = 'revision={'+new_version+'}' 65 | content = re.sub(regex, repl, content) 66 | 67 | regex = re.compile('date={\d{4}/\d{2}/\d{2}}') 68 | repl = 'date={'+datetime.now().strftime('%Y/%m/%d')+'}' 69 | content = re.sub(regex, repl, content) 70 | 71 | with open(filename, 'w') as f: 72 | f.write(content) 73 | 74 | if __name__ == "__main__": 75 | bump(sys.argv[1:]) -------------------------------------------------------------------------------- /scripts/dev-end.sh: -------------------------------------------------------------------------------- 1 | unlink ./example-thesis/cleanthesis.sty -------------------------------------------------------------------------------- /scripts/dev-start.sh: -------------------------------------------------------------------------------- 1 | ln -s ../cleanthesis.sty ./example-thesis/cleanthesis.sty -------------------------------------------------------------------------------- /scripts/publish.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | import zipfile 4 | import subprocess 5 | 6 | # code for zipping from https://stackoverflow.com/questions/14568647/create-zip-in-python 7 | def zip(src, dst): 8 | print ' create zip archive '+dst+'.zip' 9 | zf = zipfile.ZipFile("%s.zip" % (dst), "w", zipfile.ZIP_DEFLATED) 10 | abs_src = os.path.abspath(src) 11 | for dirname, subdirs, files in os.walk(src): 12 | for filename in files: 13 | absname = os.path.abspath(os.path.join(dirname, filename)) 14 | arcname = absname[len(abs_src) + 1:] 15 | #print ' zipping %s as %s' % (os.path.join(dirname, filename), arcname) 16 | zf.write(absname, arcname) 17 | zf.close() 18 | 19 | def publish(): 20 | print 'PUBLISH cleanthesis --> started' 21 | 22 | dist_folder = './dist' 23 | folder_plain = dist_folder+'/plain/cleanthesis' 24 | folder_withexample = dist_folder+'/withexample/cleanthesis' 25 | 26 | # remove dist folder and recreate it 27 | print ' delete dist folder '+dist_folder 28 | shutil.rmtree(dist_folder, ignore_errors=True) 29 | os.makedirs(dist_folder) 30 | print ' create folder '+dist_folder 31 | 32 | # publish example thesis files 33 | print ' copy files of example thesis' 34 | shutil.copytree(src='./example-thesis', dst=folder_withexample, 35 | ignore=shutil.ignore_patterns('*.aux', '*.bbl', '*.bcf', '*.blg', '*.fdb_latexmk', '*.fls', '*.lof', '*.log', '*.lol', '*.lot', '*.out', '*.xml', '*.gz', '*.toc', '.sty')) 36 | 37 | # create doc folder 38 | os.makedirs(folder_plain+'/doc') 39 | print ' create folder '+folder_plain+'/doc' 40 | os.makedirs(folder_withexample+'/doc') 41 | print ' create folder '+folder_withexample+'/doc' 42 | 43 | files = [ 44 | ('./CHANGELOG.md', 'CHANGELOG.md'), 45 | ('./cleanthesis.sty', 'cleanthesis.sty'), 46 | ('./MANIFEST.md', 'MANIFEST.md'), 47 | ('./README.md', 'README.md'), 48 | ('./VERSION', 'VERSION'), 49 | ('./doc/cleanthesis-doc.tex', 'doc/cleanthesis-doc.tex'), 50 | ('./doc/cleanthesis-doc.pdf', 'doc/cleanthesis-doc.pdf') 51 | ] 52 | 53 | print ' copy cleanthesis to dist folder' 54 | for file in files: 55 | #print ' copy {} to {}'.format(file[0], folder_plain+'/'+file[1]) 56 | shutil.copyfile(file[0], folder_plain+'/'+file[1]) 57 | #print ' copy {} to {}'.format(file[0], folder_withexample+'/'+file[1]) 58 | shutil.copyfile(file[0], folder_withexample+'/'+file[1]) 59 | 60 | # get the current version 61 | f = open('VERSION') 62 | current_version = f.readline() 63 | f.close() 64 | 65 | # fix file permissions 66 | print ' fix file permissions for CTAN ...' 67 | for f in [folder_plain,folder_withexample]: 68 | for dir, subdirs, files in os.walk(f): 69 | for file in files: 70 | #print os.path.join(dir, file) 71 | os.chmod(os.path.join(dir, file), 0664) 72 | #for d in subdirs: 73 | # print os.path.join(dir, d) 74 | # os.chmod(os.path.join(dir, d), 0775) 75 | 76 | # zip the release of the style (without example thesis) 77 | zip(folder_plain+'/..', dist_folder+'/cleanthesis_v'+current_version) 78 | # zip the release of the style including example thesis 79 | zip(folder_withexample+'/..', dist_folder+'/cleanthesis-incl-example_v'+current_version) 80 | 81 | print 'PUBLISH cleanthesis --> finished' 82 | 83 | if __name__ == "__main__": 84 | publish() -------------------------------------------------------------------------------- /scripts/updatecopyrightyear.py: -------------------------------------------------------------------------------- 1 | import re 2 | from datetime import datetime 3 | 4 | def update_copyright_year(): 5 | # header of all files (occurrences) 6 | files = ['CHANGELOG.md','cleanthesis.sty','MANIFEST.md','README.md','doc/cleanthesis-doc.tex'] 7 | for filename in files: 8 | with open(filename, 'r') as f: 9 | content = f.read() 10 | regex = re.compile('Copyright\s\d{4}\sR.\sLangner') 11 | if (len(re.findall(regex, content)) > 0): 12 | repl = 'Copyright {} R. Langner'.format(datetime.now().strftime('%Y')) 13 | content = re.sub(regex, repl, content) 14 | with open(filename, 'w') as f: 15 | f.write(content) 16 | 17 | # in the docs 18 | filename = 'doc/cleanthesis-doc.tex' 19 | with open(filename, 'r') as f: 20 | content = f.read() 21 | regex = re.compile('Copyright\s.textcopyright.\s\d{4}\sR.\sLangner') 22 | repl = 'Copyright \\\\textcopyright\ '+datetime.now().strftime('%Y')+' R. Langner' 23 | content = re.sub(regex, repl, content) 24 | with open(filename, 'w') as f: 25 | f.write(content) 26 | 27 | if __name__ == "__main__": 28 | update_copyright_year() --------------------------------------------------------------------------------