├── .github ├── _config.yml └── PULL_REQUEST_TEMPLATE.md ├── .gitattributes ├── .gitignore ├── .editorconfig ├── release.bat ├── demo.tex ├── .circleci ├── config.yml └── deploy-ghpages.sh ├── tests ├── TEST_english_oneside_no_number.tex ├── TEST_english_oneside.tex ├── TEST_english_twoside.tex ├── TEST_german_oneside.tex └── TEST_german_twoside.tex ├── CONTRIBUTING.md ├── CHANGELOG.md ├── README.md ├── scientific-thesis-cover.sty └── LICENSE /.github/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate 2 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | <...describe the change...> 2 | 3 | - [ ] Change in CHANGELOG.md described 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.bat eol=crlf 2 | 3 | # enforce unix line endings 4 | .git* eol=lf 5 | *.md eol=lf 6 | *.sty eol=lf 7 | *.tex eol=lf 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.aux 3 | *.bak* 4 | *.log 5 | *.pdf 6 | *.synctex* 7 | scientific-thesis-cover.md 8 | scientific-thesis-cover.tar.gz 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_style = space 7 | indent_size = 4 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.bat] 12 | end_of_line = crlf 13 | -------------------------------------------------------------------------------- /release.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem Generate deml.pdf 4 | pdflatex demo 5 | 6 | rem Generate scientific-thesis-cover.pdf out of README.md 7 | copy README.md scientific-thesis-cover.md 8 | sed -i "s/.*svg.*//" scientific-thesis-cover.md 9 | pandoc -f markdown_github-hard_line_breaks -t latex scientific-thesis-cover.md -o scientific-thesis-cover.pdf 10 | 11 | ctanify --noauto --notds README.md CHANGELOG.md scientific-thesis-cover.sty scientific-thesis-cover.pdf demo.tex demo.pdf release.bat 12 | -------------------------------------------------------------------------------- /demo.tex: -------------------------------------------------------------------------------- 1 | \documentclass[oneside]{article} 2 | \usepackage[utf8]{inputenc} 3 | \usepackage{mwe} 4 | \usepackage[ 5 | title={Super relevant evaluation of new blackhole-generation method}, 6 | author={Max Musterjunge}, 7 | type=bachelor, 8 | institute=iaas, 9 | number=12345, 10 | course=se, 11 | examiner={Prof.\ Dr.\ Hans Mustermann}, 12 | supervisor={Otto Normalverbraucher\ M.Sc.}, 13 | startdate={2012-06-01}, 14 | enddate={2012-12-01}, 15 | language=english, 16 | logo={example-image-16x9.pdf} 17 | ]{scientific-thesis-cover} 18 | \begin{document} 19 | \Coverpage 20 | \Affirmation 21 | \end{document} -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: koppor/texlive 6 | steps: 7 | - checkout 8 | - run: pdflatex demo.tex 9 | - run: cd tests && pdflatex TEST_english_oneside.tex 10 | - run: cd tests && pdflatex TEST_english_oneside_no_number.tex 11 | - run: cd tests && pdflatex TEST_english_twoside.tex 12 | - run: cd tests && pdflatex TEST_german_oneside.tex 13 | - run: cd tests && pdflatex TEST_german_twoside.tex 14 | - run: mkdir build && cp README.md tests/*.pdf .github/_config.yml demo.pdf build/ 15 | - run: if [ "$CIRCLE_BRANCH" == "master" ]; then .circleci/deploy-ghpages.sh build/; fi 16 | -------------------------------------------------------------------------------- /tests/TEST_english_oneside_no_number.tex: -------------------------------------------------------------------------------- 1 | %\RequirePackage{kvoptions-patch} 2 | \documentclass[oneside]{article} 3 | %\usepackage{lmodern}% http://ctan.org/pkg/lm 4 | \usepackage{blindtext} 5 | \usepackage{mathpazo} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage[ 8 | title={Super relevant evaluation of new blackhole-generation method}, 9 | author={Max Musterjunge}, 10 | type=bachelor, 11 | institute=iaas, 12 | course=se, 13 | examiner={Prof.\ Dr.\ Hans Mustermann}, 14 | supervisor={Otto Normalverbraucher\ M.Sc.}, 15 | startdate={2012-06-01}, 16 | enddate={2012-12-01}, 17 | language=english 18 | ]{../scientific-thesis-cover} 19 | \begin{document} 20 | \Coverpage 21 | \section{Introduction}\blindtext[1]\newpage 22 | \section{Content}\blindmathpaper 23 | \section{Conclusion}\blindtext[1] 24 | \Affirmation 25 | \end{document} -------------------------------------------------------------------------------- /tests/TEST_english_oneside.tex: -------------------------------------------------------------------------------- 1 | %\RequirePackage{kvoptions-patch} 2 | \documentclass[oneside]{article} 3 | %\usepackage{lmodern}% http://ctan.org/pkg/lm 4 | \usepackage{blindtext} 5 | \usepackage{mathpazo} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage[ 8 | title={Super relevant evaluation of new blackhole-generation method}, 9 | author={Max Musterjunge}, 10 | type=bachelor, 11 | institute=iaas, 12 | number=12345, 13 | course=se, 14 | examiner={Prof.\ Dr.\ Hans Mustermann}, 15 | supervisor={Otto Normalverbraucher\ M.Sc.}, 16 | startdate={2012-06-01}, 17 | enddate={2012-12-01}, 18 | language=english 19 | ]{../scientific-thesis-cover} 20 | \begin{document} 21 | \Coverpage 22 | \section{Introduction}\blindtext[1]\newpage 23 | \section{Content}\blindmathpaper 24 | \section{Conclusion}\blindtext[1] 25 | \Affirmation 26 | \end{document} -------------------------------------------------------------------------------- /tests/TEST_english_twoside.tex: -------------------------------------------------------------------------------- 1 | %\RequirePackage{kvoptions-patch} 2 | \documentclass[twoside]{article} 3 | %\usepackage{lmodern}% http://ctan.org/pkg/lm 4 | \usepackage{blindtext} 5 | \usepackage{mathpazo} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage[ 8 | title={Super relevant evaluation of new blackhole-generation method}, 9 | author={Max Musterjunge}, 10 | type=bachelor, 11 | institute=iaas, 12 | number=12345, 13 | course=se, 14 | examiner={Prof.\ Dr.\ Hans Mustermann}, 15 | supervisor={Otto Normalverbraucher\ M.Sc.}, 16 | startdate={2012-06-01}, 17 | enddate={2012-12-01}, 18 | language=english 19 | ]{../scientific-thesis-cover} 20 | \begin{document} 21 | \Coverpage 22 | \section{Introduction}\blindtext[1]\newpage 23 | \section{Content}\blindmathpaper 24 | \section{Conclusion}\blindtext[1] 25 | \Affirmation 26 | \end{document} -------------------------------------------------------------------------------- /tests/TEST_german_oneside.tex: -------------------------------------------------------------------------------- 1 | %\RequirePackage{kvoptions-patch} 2 | \documentclass[oneside]{article} 3 | %\usepackage{lmodern}% http://ctan.org/pkg/lm 4 | \usepackage[ngerman]{babel} 5 | \usepackage{blindtext} 6 | \usepackage{mathpazo} 7 | \usepackage[utf8]{inputenc} 8 | \usepackage[ 9 | title={Super relevant evaluation of new blackhole-generation method}, 10 | author={Max Musterjunge}, 11 | type=bachelor, 12 | institute=iaas, 13 | number=12345, 14 | course=se, 15 | examiner={Prof.\ Dr.\ Hans Mustermann}, 16 | supervisor={Otto Normalverbraucher\ M.Sc.}, 17 | startdate={2012-06-01}, 18 | enddate={2012-12-01}, 19 | language=german 20 | ]{../scientific-thesis-cover} 21 | \begin{document} 22 | \Coverpage 23 | \section{Introduction}\blindtext[1]\newpage 24 | \section{Content}\blindmathpaper 25 | \section{Conclusion}\blindtext[1] 26 | \Affirmation 27 | \end{document} -------------------------------------------------------------------------------- /tests/TEST_german_twoside.tex: -------------------------------------------------------------------------------- 1 | %\RequirePackage{kvoptions-patch} 2 | \documentclass[twoside]{article} 3 | %\usepackage{lmodern}% http://ctan.org/pkg/lm 4 | \usepackage[ngerman]{babel} 5 | \usepackage{blindtext} 6 | \usepackage{mathpazo} 7 | \usepackage[utf8]{inputenc} 8 | \usepackage[ 9 | title={Super relevant evaluation of new blackhole-generation method}, 10 | author={Max Musterjunge}, 11 | type=bachelor, 12 | institute=iaas, 13 | number=12345, 14 | course=se, 15 | examiner={Prof.\ Dr.\ Hans Mustermann}, 16 | supervisor={Otto Normalverbraucher\ M.Sc.}, 17 | startdate={2012-06-01}, 18 | enddate={2012-12-01}, 19 | language=german 20 | ]{../scientific-thesis-cover} 21 | \begin{document} 22 | \Coverpage 23 | \section{Introduction}\blindtext[1]\newpage 24 | \section{Content}\blindmathpaper 25 | \section{Conclusion}\blindtext[1] 26 | \Affirmation 27 | \end{document} -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to the scientific thesis template 2 | 3 | We welcome contributions to this template and encourage to create a fork, clone, **create a new branch** (such as `fix-for-issue-121`), **work on the new branch — not master**, and create a pull request. 4 | Be sure to create a **separate branch** for each improvement you implement. 5 | Take a look at GitHub's excellent [help documentation] for a detailed explanation and the explanation of [Feature Branch Workflow](https://de.atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow) for the idea behind this kind of development. 6 | 7 | Alternatively, you can just use the edit button if a single file in the web browser. 8 | Steps described at https://github.com/JabRef/help.jabref.org/blob/gh-pages/CONTRIBUTING.md. 9 | Keep in mind that these steps are wrote for , but they are also fully applicable for this repository. 10 | 11 | ## Rights 12 | 13 | By contributing, you agree that your contribution is made available under [LPPL](https://www.latex-project.org/lppl/lppl-1-3c/). 14 | 15 | ## Create a pull request 16 | 17 | Create a pull request on GitHub. 18 | For text inspirations, consider [How to write the perfect pull request](https://github.com/blog/1943-how-to-write-the-perfect-pull-request). 19 | 20 | You can add the prefix `[WIP]` to indicate that the pull request is not yet complete, but you want to discuss something or inform about the current state of affairs. 21 | -------------------------------------------------------------------------------- /.circleci/deploy-ghpages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ideas used from https://gist.github.com/motemen/8595451 3 | 4 | # abort the script if there is a non-zero error 5 | set -e 6 | 7 | # show where we are on the machine 8 | pwd 9 | 10 | remote=$(git config remote.origin.url) 11 | 12 | siteSource="$1" 13 | 14 | if [ ! -d "$siteSource" ] 15 | then 16 | echo "Usage: $0 " 17 | exit 1 18 | fi 19 | 20 | # make a directory to put the gp-pages branch 21 | mkdir gh-pages-branch 22 | cd gh-pages-branch 23 | # now lets setup a new repo so we can update the gh-pages branch 24 | git config --global user.email "$GH_EMAIL" > /dev/null 2>&1 25 | git config --global user.name "$GH_NAME" > /dev/null 2>&1 26 | git init 27 | git remote add --fetch origin "$remote" 28 | 29 | # switch into the the gh-pages branch 30 | if git rev-parse --verify origin/gh-pages > /dev/null 2>&1 31 | then 32 | git checkout gh-pages 33 | # delete any old site as we are going to replace it 34 | # Note: this explodes if there aren't any, so moving it here for now 35 | git rm -rf . 36 | else 37 | git checkout --orphan gh-pages 38 | fi 39 | 40 | # copy over or recompile the new site 41 | cp -a "../${siteSource}/." . 42 | 43 | # stage any changes and new files 44 | git add -A 45 | # now commit, ignoring branch gh-pages doesn't seem to work, so trying skip 46 | git commit --allow-empty -m "Deploy to GitHub pages [ci skip]" 47 | # and push, but send any output to /dev/null to hide anything sensitive 48 | git push --force --quiet origin gh-pages 49 | 50 | # go back to where we started and remove the gh-pages git repo we made and used 51 | # for deployment 52 | cd .. 53 | rm -rf gh-pages-branch 54 | 55 | echo "Finished Deployment!" 56 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](http://keepachangelog.com/). 5 | Since version 4.0.0, this project adheres to [Semantic Versioning](http://semver.org/). 6 | 7 | ## [unreleased] 8 | 9 | ### Added 10 | - Add `Institute for Natural Language Processing` as an institute option 11 | - Add document confirmations for multiple authors 12 | - Added VISUS as an institute. 13 | - Added the ability to add a logo at the top of the coverpage. 14 | 15 | ## Fixed 16 | - Fix `ß` being displayed as `SS` in `Universitätsstraße`. 17 | - Fix English name of IPVS: "Institute **for** Parallel and Distributed Systems" instead of "Institute **of** Parallel and Distributed Systems" 18 | 19 | ## [4.0.2] - 2018-06-03 20 | 21 | ## Fixed 22 | - Also include `demo.tex` and `CHANGELOG.md` in CTAN upload. 23 | 24 | ## [4.0.1] - 2018-06-03 25 | 26 | ### Fixed 27 | - Fix `\USCCover@setLanguage` to have correct `{}` in the implementation. 28 | 29 | ### Changed 30 | - CTAN distributions contains `scientific-thesis-cover.pdf` instead of `README.md` to be consistent with other packages. 31 | 32 | ## [4.0.0] - 2016-12-30 33 | 34 | ### Added 35 | 36 | - Added shorthand for sec institute. 37 | - Added `demo.tex` which produces `demo.pdf` providing a short illustration. 38 | 39 | ### Changed 40 | 41 | - Renamed repository from uni-stuttgart-cs-cover to scientific-thesis-cover to stress that the cover also can be used at other institutions. 42 | - Numbers are now optional. 43 | - Cover is sans serif again. 44 | 45 | ### Removed 46 | 47 | - Removed `thesis.tex` as we recommend . 48 | - Removed "CR classification" as the [ACM Computing Classification System](https://en.wikipedia.org/wiki/ACM_Computing_Classification_System) from [1998](https://www.acm.org/about-acm/class/how-to-use) is superseeded by a very different system from [2012](https://www.acm.org/publications/class-2012). However, the 2012 classification is not required by the University of Stuttgart anymore. 49 | 50 | ## [3.1] - 2016-05-29 51 | 52 | ### Added 53 | 54 | - Added README.md 55 | - Added example thesis 56 | - Added more types and courses 57 | - Added support for two-column documents 58 | 59 | ### Fixed 60 | 61 | - Fix typo at German "signature" 62 | 63 | ### Changed 64 | 65 | - Versioning on GitHub 66 | - Cover is typeset with serif font 67 | 68 | ## 3.0 - 2012-11-20 69 | 70 | Versioned outside of GitHub. 71 | 72 | [unreleased]: https://github.com/latextemplates/scientific-thesis-cover/compare/4.0.2...HEAD 73 | [4.0.2]: https://github.com/latextemplates/scientific-thesis-cover/compare/4.0.1...4.0.2 74 | [4.0.1]: https://github.com/latextemplates/scientific-thesis-cover/compare/4.0.0...4.0.1 75 | [4.0.0]: https://github.com/latextemplates/scientific-thesis-cover/compare/3.1...4.0.0 76 | [3.1]: https://github.com/latextemplates/scientific-thesis-cover/compare/3.0...3.1 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cover page for scientific works [![Build Status](https://circleci.com/gh/latextemplates/scientific-thesis-cover/tree/master.svg?style=shield)](https://circleci.com/gh/latextemplates/scientific-thesis-cover/) [![CTAN](https://img.shields.io/badge/CTAN-scientific--thesis--cover-blue.svg?style=flat-square)](https://ctan.org/pkg/scientific-thesis-cover) 2 | 3 | Institutions require a cover page and an affirmation at the end of the thesis. 4 | This package provides both. 5 | It stems from the [computer science institutes of the University of Stuttgart], but is open to any university. 6 | 7 | In case you are looking for a **full thesis template** including a cover page and affirmation, please go to . 8 | Please report issues concerning this package at the GitHub repository at . 9 | 10 | ## Features 11 | 12 | - utf8 13 | - options for all required text on the coverpage 14 | 15 | ## Installation 16 | 17 | Usually, one does not need a seperate installation step, because both MiKTeX and texlive come with a recent version of this template. 18 | Do not forget to [keep your tex distribution updated](https://tex.stackexchange.com/q/55437/9075). 19 | 20 | Alternatively, you can download `scientific-thesis-cover.sty` and put it in the folder where you are going to use it. 21 | 22 | ## Usage Example 23 | 24 | An example can be found in [demo.tex](demo.tex). 25 | 26 | ## Usage 27 | 28 | Just include the package with all options specified: 29 | 30 | \usepackage[ 31 | title={Super relevant evaluation of new blackhole-generation method}, 32 | author={Max Musterjunge}, 33 | type=bachelor, 34 | institute=iaas, 35 | course=cs, 36 | examiner={Prof.\ Dr.\ Hans Mustermann}, 37 | supervisor={Otto Normalverbraucher, M.Sc.}, 38 | startdate={2012-06-01}, 39 | enddate={2012-12-01}, 40 | language=english, 41 | logo={unilogo} 42 | ]{scientific-thesis-cover} 43 | 44 | Afterwards you can create the cover using `\Coverpage` and get the affirmation text by using `\Affirmation` 45 | 46 | ## Supported Options 47 | 48 | This package supports the following options: 49 | 50 | - language: Language used for all labels and text. 51 | - `language=german` will use german (default) 52 | - `language=english` will use english 53 | 54 | - title: Title of work. Should be placed in curly braces: 55 | 56 | - `title={My thesis title}` 57 | - `title={My very long thesis title}` 58 | 59 | - author: Author of work. Should be placed in curly braces. May contain more than one author seperated by commas: 60 | - `author={Peter Lustig}` 61 | - `author={Peter Lustig, Franz Josef, Vladimir Sixth}` 62 | 63 | - type: Type of work. May be set to one of the following values or arbitrary text in curly braces: 64 | - `type=bachelor` will label your work as Bachelor's Thesis. 65 | Currently, the term regulations of the University of Stuttgart are in place. 66 | It is assumed that you study a German Bachelor program. 67 | Thus, even if you write in English, the type of your thesis is a "Bachelorarbeit". 68 | In case you study in a different program (such as [INFOTECH]), please fill in the appropriate type of your thesis in curly brackets. 69 | See below. 70 | - `type=master` will label your work as Masters's Thesis 71 | - `type=diplom` will label your work as Diploma Thesis 72 | - `type=study` will label your work as Student Research Project 73 | - `type=projectinf` will label your work as Projekt-INF 74 | - `type=prozessanalyse` will label your work as Prozessanalyse 75 | - Arbitrary strings are also possible: `type={research project}` will label your work as "research project" 76 | 77 | - institute: States for which institute you are doing this work. May be set to one of the following values or arbitrary text in curly braces: 78 | - `institute=iaas` will state Institute of Architecture of Application Systems 79 | - `institute=ipvs` will state Institute for Parallel and Distributed Systems 80 | - `institute=fmi` will state Institute of Formal Methods in Computer Science 81 | - `institute=ims` will state Institute for Natural Language Processing 82 | - `institute=iste` will state Institute of Software Engineering 83 | - `institute=iti` will state Institute of Computer Architecture and Computer Engineering 84 | - `institute=iris` will state Institute of Computer-aided Product Development Systems 85 | - `institute=vis` will state Institute of Visualization and Interactive Systems 86 | - `institute=visus` will state Visualization Research Center (VISUS) 87 | - `institute=sec` will state Institute of Information Security 88 | - `institute=fac` will state Faculty of Computer Science 89 | - Arbitrary strings are possible: `institute={Custom fictional institute}` will state Custom fictional institute 90 | 91 | - course: Type of study. May be set to one of the following values or arbitrary text in curly braces: 92 | - `course=cs` will state that your course of study is Computer Science 93 | - `course=se` will state that your course of study is Software Engineering 94 | - `course=mcl` will state that your course of study is Master Computational Linguistics 95 | - `course=msv` will state that your course of study is Maschinelle Sprachverarbeitung 96 | - `course=bis` will state that your course of study is Business Information Systems 97 | - `course=simtech` will state that your course of study is Simulation Technology 98 | - Arbitrary strings are possible: `course={New Study course}` will state that your course of study is New Study course 99 | 100 | - examiner: Your examiner. 101 | - `examiner={Prof.\ Dr.\ Hans Mustermann}` 102 | 103 | - supervisor: Your supervisor. 104 | - `supervisor={Otto Normalverbraucher, M.Sc.}` 105 | 106 | - startdate: Startdate of your work. 107 | Preferably ISO-8601. See and . 108 | - `startdate={2012-06-01}` 109 | 110 | - enddate: Enddate of your work. 111 | - `enddate={2012-12-01}` 112 | 113 | - crk: CR-Classification codes of your work. May be separated by commas: 114 | - `crk={A.1, A.2}` 115 | 116 | ## Additional Optional Options 117 | 118 | - number: Running number of work. May contain arbitrary text. Should contain the number you got for your work. 119 | - `number=1234` will label your work to have number 1234 120 | - logo: Adds a logo, e.g. of your university, at the top of the coverpage. 121 | - The image's path can not contain any underscores! 122 | - `setPageNumberToOne=true` will set the page after the cover to `1` (default false) 123 | - `setCoverPageNumberToMinusOne=true` will set `-1` as the page number for the cover page (default false) 124 | 125 | ## Known Problems 126 | 127 | Multiline/Commands in option values are currently only supported if you load `kvoptions-patch` **before** the documentclass definition like this: 128 | 129 | \RequirePackage{kvoptions-patch} 130 | \documentclass[twoside]{article} 131 | 132 | ## How to release 133 | 134 | 1. Check if indent is correct: `latexindent -y="indentPreamble:1,defaultIndent:' '" -m -w scientific-thesis-cover.sty` 135 | 1. Adapt `CHANGELOG.md` 136 | 2. Adapt version and date in `scientific-thesis-cover.sty` 137 | 3. Tag the release commit using `git tag` 138 | 4. Push to GitHub 139 | 5. Add CHANGELOG part to GitHub release manually, because [github-release-from-changelog](https://github.com/MoOx/github-release-from-changelog) currently works with `package.json` only. 140 | 6. Publish to CTAN 141 | - Pre-conditions: 142 | - Windows: Patch `C:\MiKTeX\scripts\ctanify\ctanify`: Remove `-y` from `zip` command line arguments `zip -q -r -9 -y -m`. 143 | - Windows: Environment variable `TMP` must not contain backslashes. E.g., `C:/TEMP/WIN` is good, `C:\Users\user\AppData\Local\Temp` is bad. 144 | - Have `pandoc` and `sed` in the path. 145 | - Run `release.bat`. 146 | - Go to , choose "Upload" 147 | - Use `scientific-thesis-cover.tar.gz` as archive. 148 | 7. Adapt `CHANGELOG.md` to contain `## [unreleased]` again. 149 | 150 | ## License 151 | 152 | This work may be distributed and/or modified under the conditions of 153 | the LaTeX Project Public License, version 1.3c of the license. 154 | The latest version of this license is in 155 | and version 1.3c or later is part of all distributions of LaTeX 156 | version 2005/12/01 or later. 157 | 158 | This work has the LPPL maintenance status "maintained". 159 | 160 | The Current Maintainer and author of this work is Oliver Kopp. 161 | 162 | This work consists of the files `scientific-thesis-cover.sty`, `demo.tex`, and `README.md`. 163 | In case files are not listed here, but available at , these additional files also form part of this work. 164 | 165 | ### Contributors (incomplete list) 166 | 167 | Bernd Raichle, Timo Heiber, Steffen Keul, Oliver Kopp, Kai Mindermann, Matthias Papesch, Nils Radtke, Niklas Schnelle, Tim Halach 168 | 169 | [computer science institutes of the University of Stuttgart]: http://www.informatik.uni-stuttgart.de/index.en.html 170 | [INFOTECH]: https://www.uni-stuttgart.de/infotech/ 171 | -------------------------------------------------------------------------------- /scientific-thesis-cover.sty: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \newcommand{\USCCover@Pgkname}{scientific-thesis-cover} 3 | \ProvidesPackage{\USCCover@Pgkname}[2018/06/03 Cover and affirmation for scientific works.] 4 | \typeout{Package: `\USCCover@Pgkname' v4.0.2} 5 | % ------------------------------ 6 | % required packages 7 | % ------------------------------ 8 | % kvoptions for key value options support 9 | \RequirePackage{kvoptions} 10 | \RequirePackage{ifthen} 11 | %\RequirePackage{ifluatex} 12 | 13 | % this package requires utf8 inputenc 14 | \def\USCCover@utf8warning{\PackageWarningNoLine{\USCCover@Pgkname} 15 | {This package requires UTF-8 support.\MessageBreak 16 | If at pdflatex, load `inputenc' or `inputenx' with the `utf8' option}% 17 | } 18 | 19 | \newif\ifinputencloaded 20 | 21 | \@ifpackageloaded{inputenx} 22 | {\def\USCCover@tempa{inputenx}\inputencloadedtrue} 23 | {\@ifpackageloaded{inputenc}{\def\USCCover@tempa{inputenc}\inputencloadedtrue}{\inputencloadedfalse}} 24 | \ifinputencloaded 25 | \@ifpackagewith{\USCCover@tempa}{utf8}{}{\USCCover@utf8warning} 26 | %We also drop utf8x, as we believe that this is obsolete - see http://tex.stackexchange.com/questions/13067/utf8x-vs-utf8-inputenc 27 | \@ifpackagewith{\USCCover@tempa}{utf8x}{\USCCover@utf8warning}{} 28 | \else 29 | \ifluatex 30 | %no warning required 31 | \else 32 | \USCCover@utf8warning 33 | \fi 34 | \fi 35 | 36 | % ------------------------------ 37 | % options 38 | % ------------------------------ 39 | \SetupKeyvalOptions{ 40 | family=MCS, 41 | prefix=MCS@ 42 | } 43 | 44 | % for possible option values see README.md 45 | \DeclareStringOption[title not set]{title} % Title of the work 46 | \DeclareStringOption[author not set]{author} 47 | \DeclareStringOption[bachelor]{type} 48 | \DeclareStringOption[fac]{institute} 49 | \DeclareStringOption[]{number} % running number 50 | \DeclareStringOption[cs]{course} 51 | \DeclareStringOption[examiner not set]{examiner} 52 | \DeclareStringOption[supervisor not set]{supervisor} 53 | \DeclareStringOption[startdate not set]{startdate} 54 | \DeclareStringOption[enddate not set]{enddate} 55 | \DeclareStringOption[]{logo} 56 | \DeclareStringOption[standard]{covertype} % type of the coverpage: standard, ustuttdiss 57 | 58 | \DeclareStringOption[german]{language} 59 | \DeclareBoolOption[false]{setPageNumberToOne} 60 | \DeclareBoolOption[false]{setCoverPageNumberToMinusOne} 61 | 62 | % ------------------------------ 63 | % process options 64 | % ------------------------------ 65 | \ProcessKeyvalOptions* 66 | 67 | % ------------------------------ 68 | % define language specific labels: 69 | % ------------------------------ 70 | % - labels are defined separate for each language 71 | % - if language is not set, German is used 72 | % ------------------------------ 73 | \def\labelsenglish{ 74 | \gdef\@labelExaminer{Examiner}% 75 | %\gdef\@labelprueferin{Examiner}% 76 | \gdef\@labelSupvervisor{Supervisor}% 77 | %\gdef\@labelbetreuerin{Supervisor}% 78 | \gdef\@labelCourse{Course of Study}% 79 | \gdef\@labelStartdate{Commenced}% 80 | \gdef\@labelEnddate{Completed}% 81 | \gdef\@labelUniversity{~\newline University of Stuttgart}% 82 | \gdef\@labelDept{Faculty of Computer Science}% 83 | 84 | %the labels are written in German, because these are the official terms given by the regulations ("Prüfungsordnung") 85 | %For a detailed discussion see https://github.com/latextemplates/uni-stuttgart-computer-science-cover/pull/10 86 | \gdef\@labelTypeStudy{Studienarbeit}% 87 | \gdef\@labelTypeDiplom{Diplomarbeit}% 88 | \gdef\@labelTypeBachelor{Bachelorarbeit}% 89 | \gdef\@labelTypeMaster{Masterarbeit}% 90 | \gdef\@labelTypeProjectINF{Projekt-INF}% 91 | \gdef\@labelTypeFachstudie{Fachstudie}% 92 | \gdef\@labelTypeProzessanalyse{Prozessanalyse}% 93 | 94 | \gdef\@labelCourseCS{Informatik}% 95 | \gdef\@labelCourseSE{Softwaretechnik}% 96 | \gdef\@labelCourseMCL{Computerlinguistik}% 97 | \gdef\@labelCourseTK{Technische Kybernetik}% 98 | \gdef\@labelCourseMSV{Maschinelle Sprachverarbeitung}% 99 | \gdef\@labelCourseBIS{Wirtschaftsinformatik}% 100 | \gdef\@labelCourseSimTech{Simulation Technology}% 101 | \gdef\@labelCourseMedInf{Medieninformatik}% 102 | 103 | % institute names 104 | \gdef\@labeliaas{Institute of Architecture of Application Systems}% 105 | \gdef\@labelipvs{Institute for Parallel and Distributed Systems}% 106 | \gdef\@labelfmi{Institute of Formal Methods in Computer Science}% 107 | \gdef\@labelims{Institute for Natural Language Processing}% 108 | \gdef\@labeliste{Institute of Software Engineering}% 109 | \gdef\@labeliti{Institute of Computer Architecture and Computer Engineering}% 110 | \gdef\@labeliris{Institute of Computer-aided Product Development Systems}% 111 | \gdef\@labelvis{Institute for Visualization and Interactive Systems}% 112 | \gdef\@labelvisus{Visualization Research Center (VISUS)}% 113 | \gdef\@labelsec{Institute of Information Security}% 114 | 115 | \gdef\@labelAffirmation{Declaration}% 116 | \gdef\@AffirmationText{I hereby declare that the work presented in this thesis is entirely my own. 117 | I did not use any other sources and references than the listed ones. 118 | I have marked all direct or indirect statements from other sources contained therein as quotations. 119 | Neither this work nor significant parts of it were part of another examination procedure. 120 | I have not published this work in whole or in part before. 121 | The electronic copy is consistent with all submitted hard copies. 122 | } 123 | \gdef\@labelSignature{\ place, date, signature} 124 | } 125 | 126 | \def\labelsgerman{ 127 | \gdef\@labelExaminer{Prüfer/in}% 128 | \gdef\@labelSupvervisor{Betreuer/in}% 129 | \gdef\@labelCourse{Studiengang}% 130 | \gdef\@labelStartdate{Beginn am}% 131 | \gdef\@labelEnddate{Beendet am}% 132 | \gdef\@labelUniversity{~\newline Universität Stuttgart}% 133 | \gdef\@labelDept{Fakultät Informatik, Elektrotechnik und Informationstechnik}% 134 | 135 | \gdef\@labelTypeStudy{Studienarbeit}% 136 | \gdef\@labelTypeDiplom{Diplomarbeit}% 137 | \gdef\@labelTypeBachelor{Bachelorarbeit}% 138 | \gdef\@labelTypeMaster{Masterarbeit}% 139 | \gdef\@labelTypeProjectINF{Projekt-INF}% 140 | \gdef\@labelTypeFachstudie{Fachstudie}% 141 | \gdef\@labelTypeProzessanalyse{Prozessanalyse}% 142 | 143 | \gdef\@labelCourseCS{Informatik}% 144 | \gdef\@labelCourseSE{Softwaretechnik}% 145 | \gdef\@labelCourseMCL{Computerlinguistik}% 146 | \gdef\@labelCourseTK{Technische Kybernetik}% 147 | \gdef\@labelCourseMSV{Maschinelle Sprachverarbeitung}% 148 | \gdef\@labelCourseBIS{Wirtschaftsinformatik}% 149 | \gdef\@labelCourseSimTech{Simulation Technology}% 150 | \gdef\@labelCourseMedInf{Medieninformatik}% 151 | 152 | % institute names 153 | \gdef\@labeliaas{Institut für Architektur von Anwendungssystemen}% 154 | \gdef\@labelipvs{Institut für Parallele und Verteilte Systeme}% 155 | \gdef\@labelfmi{Institut für Formale Methoden der Informatik}% 156 | \gdef\@labelims{Institut für Maschinelle Sprachverarbeitung}% 157 | \gdef\@labeliste{Institut für Software Engineering}% 158 | \gdef\@labeliti{Institut für Technische Informatik}% 159 | \gdef\@labeliris{Institut für Rechnergestützte Ingenieursysteme}% 160 | \gdef\@labelvis{Institut für Visualisierung und Interaktive Systeme}% 161 | \gdef\@labelvisus{Visualisierungsinstitut der Universität Stuttgart (VISUS)}% 162 | \gdef\@labelsec{Institut für Informationssicherheit}% 163 | 164 | \gdef\@labelAffirmation{Erklärung}% 165 | \gdef\@AffirmationText{% 166 | Ich versichere, diese Arbeit selbstständig verfasst zu haben. 167 | Ich habe keine anderen als die angegebenen Quellen benutzt und alle wörtlich oder sinngemäß aus anderen Werken übernommene Aussagen als solche gekennzeichnet. 168 | Weder diese Arbeit noch wesentliche Teile daraus waren bisher Gegenstand eines anderen Prüfungsverfahrens. 169 | Ich habe diese Arbeit bisher weder teilweise noch vollständig veröffentlicht. 170 | Das elektronische Exemplar stimmt mit allen eingereichten Druck-Exemplaren überein. 171 | } 172 | \gdef\@labelSignature{\ Ort, Datum, Unterschrift} 173 | } 174 | 175 | % set those labels according to the set language 176 | \newcommand{\USCCover@setLanguage}{ 177 | \def\0{english} 178 | \ifx\MCS@language\0 179 | \labelsenglish 180 | \else 181 | \labelsgerman 182 | \fi 183 | } 184 | 185 | % set \@labelType if matched 186 | \newcommand{\USCCover@setType}{ 187 | \gdef\@labelType{\MCS@type} 188 | \def\1{\MCS@type} 189 | % dont remove last two braces / empty else clause 190 | \def\0{diplom}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeDiplom}}{} 191 | \def\0{study}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeStudy}}{} 192 | \def\0{bachelor}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeBachelor}}{} 193 | \def\0{master}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeMaster}}{} 194 | \def\0{fachstudie}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeFachstudie}}{} 195 | \def\0{projectinf}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeProjectINF}}{} 196 | \def\0{prozessanalyse}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelType{\@labelTypeProzessanalyse}}{} 197 | } 198 | 199 | % ------------------------------ 200 | % Institute addresses 201 | % ------------------------------ 202 | 203 | % general university address 204 | \gdef\@labelAddress{\@labelUniversity\\Universitätsstra{\ss}e 38\\D--70569 Stuttgart} 205 | 206 | \newcommand{\USCCover@setInstitute}{ 207 | % use specified text if institute does not match 208 | \gdef\@labelInstitute{\MCS@institute} 209 | 210 | \def\1{\MCS@institute} 211 | % do not remove last two braces / empty else clause 212 | \def\0{ipvs}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelipvs\\\@labelAddress}}{} 213 | \def\0{iaas}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labeliaas\\\@labelAddress}}{} 214 | \def\0{fmi}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelfmi\\\@labelAddress}}{} 215 | \def\0{ims}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelims\\\@labelUniversity\\Pfaffenwaldring 5B\\D--70569 Stuttgart}}{} 216 | \def\0{iste}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labeliste\\\@labelAddress}}{} 217 | \def\0{iti}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labeliti\\\@labelUniversity\\Pfaffenwaldring 47\\D--70569 Stuttgart}}{} 218 | \def\0{iris}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labeliris\\\@labelAddress}}{} 219 | \def\0{vis}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelvis\\\@labelAddress}}{} 220 | \def\0{visus}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelvisus\\\@labelUniversity\\Allmandring 19\\D--70569 Stuttgart}}{} 221 | \def\0{sec}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelsec\\\@labelAddress}}{} 222 | \def\0{fac}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelInstitute{\@labelDept\\\@labelAddress}}{} 223 | } 224 | 225 | % ------------------------------ 226 | % Evaluate course option and set course 227 | % ------------------------------ 228 | \newcommand{\USCCover@setCourse}{ 229 | % use specified text if course does not match 230 | \gdef\@labelCourseValue{\MCS@course} 231 | 232 | \def\1{\MCS@course} 233 | % dont remove last two braces / empty else clause 234 | \def\0{cs}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseCS}}{} 235 | \def\0{se}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseSE}}{} 236 | \def\0{mcl}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseMCL}}{} 237 | \def\0{msv}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseMSV}}{} 238 | \def\0{bis}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseBIS}}{} 239 | \def\0{simtech}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseSimTech}}{} 240 | \def\0{medinf}\ifthenelse{\equal{\0}{\1}}{\gdef\@labelCourseValue{\@labelCourseMedInf}}{} 241 | 242 | } 243 | 244 | % ------------------------------ 245 | % evaluate options by calling those functions that set text accordingly 246 | % ------------------------------ 247 | \USCCover@setLanguage 248 | \USCCover@setType 249 | \USCCover@setInstitute 250 | \USCCover@setCourse 251 | 252 | % ------------------------------ 253 | % helping commands 254 | % ------------------------------ 255 | % - \USCCover@umrandet 256 | % - \USCCover@TBlabel 257 | % - \USCCover@TBlist 258 | % ------------------------------ 259 | \def\USCCover@umrandet{\global\let\@USCCover@umrandet=\fbox} 260 | \let\@USCCover@umrandet\relax 261 | 262 | \newcommand{\USCCover@TBlabel}[1]{\textbf{#1}\hfil} 263 | 264 | \newenvironment{USCCover@TBlist}{% 265 | \list{}{\labelwidth 45mm \leftmargin 70mm % alt: 35/60 mm 266 | \rightmargin 20mm \let\makelabel\USCCover@TBlabel}% 267 | }{\endlist} 268 | 269 | % Only include package if a logo is provided, otherwise it is not needed. 270 | \ifx\MCS@logo\empty 271 | \else 272 | \usepackage{graphicx} 273 | \fi 274 | % ------------------------------ 275 | % usable commands 276 | % ------------------------------ 277 | % - \Titelblatt 278 | % - \Versicherung 279 | % (contain code from old diplomtitel.sty) 280 | % ------------------------------ 281 | \newcommand{\Titelblatt}{% 282 | \cleardoublepage 283 | \ifthenelse{\boolean{MCS@setCoverPageNumberToMinusOne}}{\setcounter{page}{-1}}{} 284 | \begingroup 285 | \newcommand{\USCCover@isTwoColumn}{false} 286 | \if@twocolumn \renewcommand{\USCCover@isTwoColumn}{true} \onecolumn \fi 287 | \sffamily 288 | \pagestyle{empty}% 289 | \thispagestyle{empty}% 290 | %\fontfamily{ppl}\selectfont 291 | % 292 | \@normalsize \@setsize\normalsize{13.6pt}\xipt\@xipt 293 | % 294 | \frenchspacing % besser, da viele Abk. (<- da ist schon eine) 295 | \parskip=0pt\parindent=0pt\null 296 | % 297 | % Damit alles richtig funktioniert, mu"s der Ursprung auf die 298 | % tats"achliche linke obere Ecke des Blattes gelegt werden (ohne den 299 | % bekannten 1in Offset also). 300 | % Ausserdem werden die beiden Seitenr"ander auf 28mm + 4.5mm Falz 301 | % gesetzt, die Seitenh"ohe auf DIN A4-H"ohe. 302 | % 303 | \hsize=154mm %% DIN A4: 210mm - 2*28mm 304 | \columnwidth=\hsize \linewidth=\hsize 305 | % 306 | \dimen0=0pt 307 | \advance\dimen0-\oddsidemargin 308 | \advance\dimen0 2.6mm %% 309 | \advance\dimen0 4.5mm %% 310 | \hbox to 0pt{\kern\dimen0\vbox to\topskip{% 311 | \dimen0=-1in 312 | \advance\dimen0-\topmargin 313 | \advance\dimen0-\headheight 314 | \advance\dimen0-\headsep 315 | \vskip\dimen0\relax 316 | % 317 | 318 | \vskip 20mm\relax %%% 319 | 320 | % Height of the institute vbox 321 | \newcommand{\instituteHeight}{70} 322 | 323 | \ifx\MCS@logo\empty 324 | \else 325 | \vbox to 15mm{ 326 | \begin{center} 327 | \includegraphics[height=14mm]{\MCS@logo} 328 | \end{center} 329 | \vfill} 330 | % Height of institute vbox reduced to accomodate logo 331 | \renewcommand{\instituteHeight}{55} 332 | \fi 333 | 334 | \vbox to \instituteHeight mm{ 335 | \begin{center}% 336 | \@labelInstitute 337 | \end{center} 338 | \vfill}% 339 | 340 | \vskip -4mm\relax 341 | %%%%% ==> 155mm (Titel: 165mm/Autor: 195mm) von oben 342 | %%% Die Box kann max. 100mm breit und 60mmm hoch sein, 343 | %%% au"serdem wird noch ein Rand von mind. 2.5mm gelassen 344 | %%% Even if \centering is not recommended (see l2tabu or nag package), just replacing it with {\centering{...}} doesn't work as \centering doesn't center on the complete page 345 | \centerline{\fboxsep=0pt 346 | \@USCCover@umrandet{\hbox to 100mm{\hfil 347 | \vbox to 60mm{\hsize=95mm\parindent=0pt 348 | \vskip 10mm plus 30mm minus 7.5mm 349 | \begin{center}\@setsize\large{14pt}\xiipt\@xiipt %%\large 350 | \ifx\MCS@number\empty 351 | \@labelType 352 | \else 353 | \@labelType\ Nr.\,\MCS@number 354 | \fi 355 | \end{center}% 356 | \vskip 12.5mm plus 12.5mm minus 10mm 357 | \begin{center}\@setsize\LARGE{22pt}\xviipt\@xviipt %%\LARGE 358 | \textbf{ \MCS@title} 359 | \end{center}% 360 | \vskip 10mm plus 10mm minus 7.5mm 361 | \begin{center}\@setsize\large{14pt}\xiipt\@xiipt %%\large 362 | \MCS@author 363 | \end{center}% 364 | \vskip 17.5mm plus 35mm minus 12.5mm}\hfil}}}% 365 | \vskip 20mm %%%%% 366 | 367 | \vbox to 15mm{% 368 | \begin{USCCover@TBlist}% 369 | \item[\@labelCourse: ]\@labelCourseValue 370 | \end{USCCover@TBlist}% 371 | \vfill}% 372 | \vbox to 45mm{% 373 | \begin{USCCover@TBlist}% 374 | \item[\@labelExaminer:]\MCS@examiner 375 | \item[\@labelSupvervisor:]\MCS@supervisor 376 | \end{USCCover@TBlist}% 377 | \vfill}% 378 | \vbox to 70mm{%%%%% ==> 85 mm von oben 379 | \begin{USCCover@TBlist}% 380 | \item[\@labelStartdate:]\MCS@startdate 381 | \item[\@labelEnddate:]\MCS@enddate 382 | \end{USCCover@TBlist}% 383 | \vfill}% 384 | 385 | \vss}\hss}% 386 | % 387 | \thispagestyle{empty}% 388 | \cleardoublepage % if twoside add a blank page after cover 389 | % set counter to start at 1 after the clear(double)page 390 | \ifthenelse{\boolean{MCS@setPageNumberToOne}}{\setcounter{page}{1}}{} 391 | \newcommand{\USCCover@true}{true} 392 | \ifthenelse{\equal{\USCCover@isTwoColumn}{\USCCover@true}}{\twocolumn}{} 393 | \endgroup 394 | } 395 | \newcommand{\Coverpage}{\Titelblatt} 396 | 397 | \newcommand{\Versicherung}{ 398 | \cleardoublepage 399 | \providecommand{\USCCover@isTwoColumn}{} 400 | \if@twocolumn \renewcommand{\USCCover@isTwoColumn}{true} \onecolumn 401 | \else \renewcommand{\USCCover@isTwoColumn}{false} \fi 402 | \null 403 | \vskip 5cm\relax 404 | \begin{center} 405 | \begin{minipage}[t]{10cm} 406 | \hbox{\textbf{\@labelAffirmation}}% 407 | \vskip 1cm\relax 408 | %\begin{flushleft}% 409 | \@AffirmationText 410 | %\end{flushleft}% 411 | \vskip 4cm\relax 412 | \hrulefill 413 | \vskip .4\baselineskip 414 | \hbox{\@labelSignature} 415 | \end{minipage} 416 | \end{center} 417 | \clearpage 418 | \providecommand{\USCCover@true}{true} 419 | \ifthenelse{\equal{\USCCover@isTwoColumn}{\USCCover@true}}{\twocolumn}{} 420 | } 421 | \newcommand{\Affirmation}{\Versicherung} 422 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The LaTeX Project Public License 2 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 3 | 4 | LPPL Version 1.3c 2008-05-04 5 | 6 | Copyright 1999 2002-2008 LaTeX3 Project 7 | Everyone is allowed to distribute verbatim copies of this 8 | license document, but modification of it is not allowed. 9 | 10 | 11 | PREAMBLE 12 | ======== 13 | 14 | The LaTeX Project Public License (LPPL) is the primary license under 15 | which the LaTeX kernel and the base LaTeX packages are distributed. 16 | 17 | You may use this license for any work of which you hold the copyright 18 | and which you wish to distribute. This license may be particularly 19 | suitable if your work is TeX-related (such as a LaTeX package), but 20 | it is written in such a way that you can use it even if your work is 21 | unrelated to TeX. 22 | 23 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', 24 | below, gives instructions, examples, and recommendations for authors 25 | who are considering distributing their works under this license. 26 | 27 | This license gives conditions under which a work may be distributed 28 | and modified, as well as conditions under which modified versions of 29 | that work may be distributed. 30 | 31 | We, the LaTeX3 Project, believe that the conditions below give you 32 | the freedom to make and distribute modified versions of your work 33 | that conform with whatever technical specifications you wish while 34 | maintaining the availability, integrity, and reliability of 35 | that work. If you do not see how to achieve your goal while 36 | meeting these conditions, then read the document `cfgguide.tex' 37 | and `modguide.tex' in the base LaTeX distribution for suggestions. 38 | 39 | 40 | DEFINITIONS 41 | =========== 42 | 43 | In this license document the following terms are used: 44 | 45 | `Work' 46 | Any work being distributed under this License. 47 | 48 | `Derived Work' 49 | Any work that under any applicable law is derived from the Work. 50 | 51 | `Modification' 52 | Any procedure that produces a Derived Work under any applicable 53 | law -- for example, the production of a file containing an 54 | original file associated with the Work or a significant portion of 55 | such a file, either verbatim or with modifications and/or 56 | translated into another language. 57 | 58 | `Modify' 59 | To apply any procedure that produces a Derived Work under any 60 | applicable law. 61 | 62 | `Distribution' 63 | Making copies of the Work available from one person to another, in 64 | whole or in part. Distribution includes (but is not limited to) 65 | making any electronic components of the Work accessible by 66 | file transfer protocols such as FTP or HTTP or by shared file 67 | systems such as Sun's Network File System (NFS). 68 | 69 | `Compiled Work' 70 | A version of the Work that has been processed into a form where it 71 | is directly usable on a computer system. This processing may 72 | include using installation facilities provided by the Work, 73 | transformations of the Work, copying of components of the Work, or 74 | other activities. Note that modification of any installation 75 | facilities provided by the Work constitutes modification of the Work. 76 | 77 | `Current Maintainer' 78 | A person or persons nominated as such within the Work. If there is 79 | no such explicit nomination then it is the `Copyright Holder' under 80 | any applicable law. 81 | 82 | `Base Interpreter' 83 | A program or process that is normally needed for running or 84 | interpreting a part or the whole of the Work. 85 | 86 | A Base Interpreter may depend on external components but these 87 | are not considered part of the Base Interpreter provided that each 88 | external component clearly identifies itself whenever it is used 89 | interactively. Unless explicitly specified when applying the 90 | license to the Work, the only applicable Base Interpreter is a 91 | `LaTeX-Format' or in the case of files belonging to the 92 | `LaTeX-format' a program implementing the `TeX language'. 93 | 94 | 95 | 96 | CONDITIONS ON DISTRIBUTION AND MODIFICATION 97 | =========================================== 98 | 99 | 1. Activities other than distribution and/or modification of the Work 100 | are not covered by this license; they are outside its scope. In 101 | particular, the act of running the Work is not restricted and no 102 | requirements are made concerning any offers of support for the Work. 103 | 104 | 2. You may distribute a complete, unmodified copy of the Work as you 105 | received it. Distribution of only part of the Work is considered 106 | modification of the Work, and no right to distribute such a Derived 107 | Work may be assumed under the terms of this clause. 108 | 109 | 3. You may distribute a Compiled Work that has been generated from a 110 | complete, unmodified copy of the Work as distributed under Clause 2 111 | above, as long as that Compiled Work is distributed in such a way that 112 | the recipients may install the Compiled Work on their system exactly 113 | as it would have been installed if they generated a Compiled Work 114 | directly from the Work. 115 | 116 | 4. If you are the Current Maintainer of the Work, you may, without 117 | restriction, modify the Work, thus creating a Derived Work. You may 118 | also distribute the Derived Work without restriction, including 119 | Compiled Works generated from the Derived Work. Derived Works 120 | distributed in this manner by the Current Maintainer are considered to 121 | be updated versions of the Work. 122 | 123 | 5. If you are not the Current Maintainer of the Work, you may modify 124 | your copy of the Work, thus creating a Derived Work based on the Work, 125 | and compile this Derived Work, thus creating a Compiled Work based on 126 | the Derived Work. 127 | 128 | 6. If you are not the Current Maintainer of the Work, you may 129 | distribute a Derived Work provided the following conditions are met 130 | for every component of the Work unless that component clearly states 131 | in the copyright notice that it is exempt from that condition. Only 132 | the Current Maintainer is allowed to add such statements of exemption 133 | to a component of the Work. 134 | 135 | a. If a component of this Derived Work can be a direct replacement 136 | for a component of the Work when that component is used with the 137 | Base Interpreter, then, wherever this component of the Work 138 | identifies itself to the user when used interactively with that 139 | Base Interpreter, the replacement component of this Derived Work 140 | clearly and unambiguously identifies itself as a modified version 141 | of this component to the user when used interactively with that 142 | Base Interpreter. 143 | 144 | b. Every component of the Derived Work contains prominent notices 145 | detailing the nature of the changes to that component, or a 146 | prominent reference to another file that is distributed as part 147 | of the Derived Work and that contains a complete and accurate log 148 | of the changes. 149 | 150 | c. No information in the Derived Work implies that any persons, 151 | including (but not limited to) the authors of the original version 152 | of the Work, provide any support, including (but not limited to) 153 | the reporting and handling of errors, to recipients of the 154 | Derived Work unless those persons have stated explicitly that 155 | they do provide such support for the Derived Work. 156 | 157 | d. You distribute at least one of the following with the Derived Work: 158 | 159 | 1. A complete, unmodified copy of the Work; 160 | if your distribution of a modified component is made by 161 | offering access to copy the modified component from a 162 | designated place, then offering equivalent access to copy 163 | the Work from the same or some similar place meets this 164 | condition, even though third parties are not compelled to 165 | copy the Work along with the modified component; 166 | 167 | 2. Information that is sufficient to obtain a complete, 168 | unmodified copy of the Work. 169 | 170 | 7. If you are not the Current Maintainer of the Work, you may 171 | distribute a Compiled Work generated from a Derived Work, as long as 172 | the Derived Work is distributed to all recipients of the Compiled 173 | Work, and as long as the conditions of Clause 6, above, are met with 174 | regard to the Derived Work. 175 | 176 | 8. The conditions above are not intended to prohibit, and hence do not 177 | apply to, the modification, by any method, of any component so that it 178 | becomes identical to an updated version of that component of the Work as 179 | it is distributed by the Current Maintainer under Clause 4, above. 180 | 181 | 9. Distribution of the Work or any Derived Work in an alternative 182 | format, where the Work or that Derived Work (in whole or in part) is 183 | then produced by applying some process to that format, does not relax or 184 | nullify any sections of this license as they pertain to the results of 185 | applying that process. 186 | 187 | 10. a. A Derived Work may be distributed under a different license 188 | provided that license itself honors the conditions listed in 189 | Clause 6 above, in regard to the Work, though it does not have 190 | to honor the rest of the conditions in this license. 191 | 192 | b. If a Derived Work is distributed under a different license, that 193 | Derived Work must provide sufficient documentation as part of 194 | itself to allow each recipient of that Derived Work to honor the 195 | restrictions in Clause 6 above, concerning changes from the Work. 196 | 197 | 11. This license places no restrictions on works that are unrelated to 198 | the Work, nor does this license place any restrictions on aggregating 199 | such works with the Work by any means. 200 | 201 | 12. Nothing in this license is intended to, or may be used to, prevent 202 | complete compliance by all parties with all applicable laws. 203 | 204 | 205 | NO WARRANTY 206 | =========== 207 | 208 | There is no warranty for the Work. Except when otherwise stated in 209 | writing, the Copyright Holder provides the Work `as is', without 210 | warranty of any kind, either expressed or implied, including, but not 211 | limited to, the implied warranties of merchantability and fitness for a 212 | particular purpose. The entire risk as to the quality and performance 213 | of the Work is with you. Should the Work prove defective, you assume 214 | the cost of all necessary servicing, repair, or correction. 215 | 216 | In no event unless required by applicable law or agreed to in writing 217 | will The Copyright Holder, or any author named in the components of the 218 | Work, or any other party who may distribute and/or modify the Work as 219 | permitted above, be liable to you for damages, including any general, 220 | special, incidental or consequential damages arising out of any use of 221 | the Work or out of inability to use the Work (including, but not limited 222 | to, loss of data, data being rendered inaccurate, or losses sustained by 223 | anyone as a result of any failure of the Work to operate with any other 224 | programs), even if the Copyright Holder or said author or said other 225 | party has been advised of the possibility of such damages. 226 | 227 | 228 | MAINTENANCE OF THE WORK 229 | ======================= 230 | 231 | The Work has the status `author-maintained' if the Copyright Holder 232 | explicitly and prominently states near the primary copyright notice in 233 | the Work that the Work can only be maintained by the Copyright Holder 234 | or simply that it is `author-maintained'. 235 | 236 | The Work has the status `maintained' if there is a Current Maintainer 237 | who has indicated in the Work that they are willing to receive error 238 | reports for the Work (for example, by supplying a valid e-mail 239 | address). It is not required for the Current Maintainer to acknowledge 240 | or act upon these error reports. 241 | 242 | The Work changes from status `maintained' to `unmaintained' if there 243 | is no Current Maintainer, or the person stated to be Current 244 | Maintainer of the work cannot be reached through the indicated means 245 | of communication for a period of six months, and there are no other 246 | significant signs of active maintenance. 247 | 248 | You can become the Current Maintainer of the Work by agreement with 249 | any existing Current Maintainer to take over this role. 250 | 251 | If the Work is unmaintained, you can become the Current Maintainer of 252 | the Work through the following steps: 253 | 254 | 1. Make a reasonable attempt to trace the Current Maintainer (and 255 | the Copyright Holder, if the two differ) through the means of 256 | an Internet or similar search. 257 | 258 | 2. If this search is successful, then enquire whether the Work 259 | is still maintained. 260 | 261 | a. If it is being maintained, then ask the Current Maintainer 262 | to update their communication data within one month. 263 | 264 | b. If the search is unsuccessful or no action to resume active 265 | maintenance is taken by the Current Maintainer, then announce 266 | within the pertinent community your intention to take over 267 | maintenance. (If the Work is a LaTeX work, this could be 268 | done, for example, by posting to comp.text.tex.) 269 | 270 | 3a. If the Current Maintainer is reachable and agrees to pass 271 | maintenance of the Work to you, then this takes effect 272 | immediately upon announcement. 273 | 274 | b. If the Current Maintainer is not reachable and the Copyright 275 | Holder agrees that maintenance of the Work be passed to you, 276 | then this takes effect immediately upon announcement. 277 | 278 | 4. If you make an `intention announcement' as described in 2b. above 279 | and after three months your intention is challenged neither by 280 | the Current Maintainer nor by the Copyright Holder nor by other 281 | people, then you may arrange for the Work to be changed so as 282 | to name you as the (new) Current Maintainer. 283 | 284 | 5. If the previously unreachable Current Maintainer becomes 285 | reachable once more within three months of a change completed 286 | under the terms of 3b) or 4), then that Current Maintainer must 287 | become or remain the Current Maintainer upon request provided 288 | they then update their communication data within one month. 289 | 290 | A change in the Current Maintainer does not, of itself, alter the fact 291 | that the Work is distributed under the LPPL license. 292 | 293 | If you become the Current Maintainer of the Work, you should 294 | immediately provide, within the Work, a prominent and unambiguous 295 | statement of your status as Current Maintainer. You should also 296 | announce your new status to the same pertinent community as 297 | in 2b) above. 298 | 299 | 300 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE 301 | ====================================================== 302 | 303 | This section contains important instructions, examples, and 304 | recommendations for authors who are considering distributing their 305 | works under this license. These authors are addressed as `you' in 306 | this section. 307 | 308 | Choosing This License or Another License 309 | ---------------------------------------- 310 | 311 | If for any part of your work you want or need to use *distribution* 312 | conditions that differ significantly from those in this license, then 313 | do not refer to this license anywhere in your work but, instead, 314 | distribute your work under a different license. You may use the text 315 | of this license as a model for your own license, but your license 316 | should not refer to the LPPL or otherwise give the impression that 317 | your work is distributed under the LPPL. 318 | 319 | The document `modguide.tex' in the base LaTeX distribution explains 320 | the motivation behind the conditions of this license. It explains, 321 | for example, why distributing LaTeX under the GNU General Public 322 | License (GPL) was considered inappropriate. Even if your work is 323 | unrelated to LaTeX, the discussion in `modguide.tex' may still be 324 | relevant, and authors intending to distribute their works under any 325 | license are encouraged to read it. 326 | 327 | A Recommendation on Modification Without Distribution 328 | ----------------------------------------------------- 329 | 330 | It is wise never to modify a component of the Work, even for your own 331 | personal use, without also meeting the above conditions for 332 | distributing the modified component. While you might intend that such 333 | modifications will never be distributed, often this will happen by 334 | accident -- you may forget that you have modified that component; or 335 | it may not occur to you when allowing others to access the modified 336 | version that you are thus distributing it and violating the conditions 337 | of this license in ways that could have legal implications and, worse, 338 | cause problems for the community. It is therefore usually in your 339 | best interest to keep your copy of the Work identical with the public 340 | one. Many works provide ways to control the behavior of that work 341 | without altering any of its licensed components. 342 | 343 | How to Use This License 344 | ----------------------- 345 | 346 | To use this license, place in each of the components of your work both 347 | an explicit copyright notice including your name and the year the work 348 | was authored and/or last substantially modified. Include also a 349 | statement that the distribution and/or modification of that 350 | component is constrained by the conditions in this license. 351 | 352 | Here is an example of such a notice and statement: 353 | 354 | %% pig.dtx 355 | %% Copyright 2005 M. Y. Name 356 | % 357 | % This work may be distributed and/or modified under the 358 | % conditions of the LaTeX Project Public License, either version 1.3 359 | % of this license or (at your option) any later version. 360 | % The latest version of this license is in 361 | % http://www.latex-project.org/lppl.txt 362 | % and version 1.3 or later is part of all distributions of LaTeX 363 | % version 2005/12/01 or later. 364 | % 365 | % This work has the LPPL maintenance status `maintained'. 366 | % 367 | % The Current Maintainer of this work is M. Y. Name. 368 | % 369 | % This work consists of the files pig.dtx and pig.ins 370 | % and the derived file pig.sty. 371 | 372 | Given such a notice and statement in a file, the conditions 373 | given in this license document would apply, with the `Work' referring 374 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being 375 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' 376 | referring to any `LaTeX-Format', and both `Copyright Holder' and 377 | `Current Maintainer' referring to the person `M. Y. Name'. 378 | 379 | If you do not want the Maintenance section of LPPL to apply to your 380 | Work, change `maintained' above into `author-maintained'. 381 | However, we recommend that you use `maintained', as the Maintenance 382 | section was added in order to ensure that your Work remains useful to 383 | the community even when you can no longer maintain and support it 384 | yourself. 385 | 386 | Derived Works That Are Not Replacements 387 | --------------------------------------- 388 | 389 | Several clauses of the LPPL specify means to provide reliability and 390 | stability for the user community. They therefore concern themselves 391 | with the case that a Derived Work is intended to be used as a 392 | (compatible or incompatible) replacement of the original Work. If 393 | this is not the case (e.g., if a few lines of code are reused for a 394 | completely different task), then clauses 6b and 6d shall not apply. 395 | 396 | 397 | Important Recommendations 398 | ------------------------- 399 | 400 | Defining What Constitutes the Work 401 | 402 | The LPPL requires that distributions of the Work contain all the 403 | files of the Work. It is therefore important that you provide a 404 | way for the licensee to determine which files constitute the Work. 405 | This could, for example, be achieved by explicitly listing all the 406 | files of the Work near the copyright notice of each file or by 407 | using a line such as: 408 | 409 | % This work consists of all files listed in manifest.txt. 410 | 411 | in that place. In the absence of an unequivocal list it might be 412 | impossible for the licensee to determine what is considered by you 413 | to comprise the Work and, in such a case, the licensee would be 414 | entitled to make reasonable conjectures as to which files comprise 415 | the Work. 416 | --------------------------------------------------------------------------------