%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Copyright © 2022 Maximilian Keßler % % This work may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU General Public License % % Distribution under conditions of the LaTeX Project Public License, % requires either version 1.3 of this license or (at your option) % any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status \`maintained'. % % The Current Maintainer of this work is Maximilian Keßler. % % % Distribution under the GNU General Public License requires either % version 3 or (at your opinion) any later version. % % This class has been generated by PyTeX, available at % https://github.com/kesslermaximilian/PyTeX % and built from source file 'script.pycls'. % It is STRONGLY DISCOURAGED to edit this source file directly, since local % changes will not be versioned by Git and overwritten by the next build. Always % edit the source file and build the class again. % % Build details: % PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8) % Source code version: v2.8.1-9-g4bda829 (commit 4bda829) % % This LaTeX class is free software and is dual-licensed % under the LPPLv1.3c and the GPLv3 licenses. % You may use it freely for your purposes. % The latest version of the class sources can be obtained % via GitLab under % https://gitlab.com/latexci/packages/LatexPackages % The latest version of the built packages can be obtained via GitLab under % https://gitlab.com/latexci/packages/LatexPackagesBuild % For further information see the urls above. % Reportings of bugs, suggestions and improvements are welcome, see the README % at the Git repository for further information. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \ProvidesClass{mkessler-script}[2022/01/30 - Write up lecture notes as script] \RequirePackage{xkeyval} \newif\ifmkessler@script@english\mkessler@script@englishtrue \DeclareOptionX{german}{\mkessler@script@englishfalse} \DeclareOptionX{ngerman}{\mkessler@script@englishfalse} \DeclareOptionX{english}{\mkessler@script@englishtrue} \newif\ifmkessler@script@showversion\mkessler@script@showversiontrue \DeclareOptionX{show version}{\mkessler@script@showversiontrue} \DeclareOptionX{hideversion}{\mkessler@script@showversionfalse} \newif\ifmkessler@script@fancyfoot\mkessler@script@fancyfootfalse \DeclareOptionX{fancyfoot}{\mkessler@script@fancyfoottrue} \newif\ifmkessler@script@gitversion\mkessler@script@gitversionfalse \DeclareOptionX{git}{\mkessler@script@gitversiontrue} \DeclareOptionX*{\ClassWarning{mkessler-script}{Unknown '\CurrentOption'}} \ProcessOptionsX*\relax \RequirePackage{xifthen} %%%%Define command to set metainformation of document %Set the course \def\@course{\ClassError{mkessler-script}{No \noexpand\course given}{See documentation for details}}% \DeclareRobustCommand*{\course}[1]{\gdef\@course{#1}} \def\@lecturer{\ClassError{mkessler-script}{No \noexpand\lecturer given}{See documentation for details}}% \def\@lecturertitle{} \DeclareRobustCommand*{\lecturer}[2][]{ \gdef\@lecturer{#2} \gdef\@lecturertitle{\ifmkessler@script@english Lecturer\else\ifthenelse{\isempty{#1}}{Dozent}{Dozentin}\fi}{} } %Set the assistant \newif\ifmkessler@script@printassistant\mkessler@script@printassistantfalse \def\@assistant{}% \def\@assistantitle{} \DeclareRobustCommand*{\assistant}[2][]{ \mkessler@script@printassistanttrue \gdef\@assistant{#2} \gdef\@assistanttitle{\ifmkessler@script@english Assistant\else\ifthenelse{\isempty{#1}}{Assistent}{Assistentin}\fi} } %%%%Load base class article \LoadClass{article} \ifmkessler@script@showversion \ifmkessler@script@gitversion \RequirePackage[dirty={ (local changes have been made!)}]{gitinfo2} \fi \fi %%%%Title %Define layout of title using course, lecturer, assistant and author, and optionally the current time \RequirePackage{xparse} \RequirePackage{datetime} \renewcommand\@maketitle{% \newpage \null \vskip 2em% \begin{center}% \let \footnote \thanks {\LARGE \@course \par}% \vskip 1.5em% {\large \lineskip .5em% \begin{tabular}[t]{c}% \@lecturertitle \\ {\sc \@lecturer} \\ \end{tabular}\par \ifmkessler@script@printassistant \vskip 1em% \begin{tabular}[t]{c}% \@assistanttitle \\ {\sc \@assistant} \\ \end{tabular}\par \fi \vskip 1em% \begin{tabular}[t]{c}% \ifmkessler@script@english Notes\else Mitschrift\fi \\ {\sc \@author} \\ \end{tabular} \par}% \ifmkessler@script@showversion \vskip 3em% \begin{tabular}[t]{c}% {\small Version} \\ \ifmkessler@script@gitversion git: \gitFirstTagDescribe\\ \ifmkessler@script@english compiled\else kompiliert\fi: \fi\today\,\currenttime \\ \end{tabular}\par \fi \vskip 4em% \end{center}% \par \vskip 1.5em } %%%The following is based on the repository % https://github.com/gillescastel/university-setup % but has been modified for own purposes. The original content is distributed under the following license: %MIT License %Copyright (c) 2019 Gilles Castel %Permission is hereby granted, free of charge, to any person obtaining a copy %of this software and associated documentation files (the "Software"), to deal %in the Software without restriction, including without limitation the rights %to use, copy, modify, merge, publish, distribute, sublicense, and/or sell %copies of the Software, and to permit persons to whom the Software is %furnished to do so, subject to the following conditions: % %The above copyright notice and this permission notice shall be included in all %copies or substantial portions of the Software. % %THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR %IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, %FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE %AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER %LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, %OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE %SOFTWARE. %%%% These are the fancy headers \ifmkessler@script@fancyfoot \RequirePackage{fancyhdr} \pagestyle{fancy} % LE: left even % RO: right odd % CE, CO: center even, center odd \fancyhead[RO,LE]{} % Right odd, Left even \fancyhead[RE,LO]{} % Right even, Left odd \fancyfoot[RO,LE]{\thepage} % Right odd, Left even \fancyfoot[RE,LO]{} % Right even, Left odd \fancyfoot[C]{\leftmark} % Center \makeatother \fi % Fix some stuff % %http://tex.stackexchange.com/questions/76273/multiple-pdfs-with-page-group-included-in-a-single-page-warning \pdfsuppresswarningpagegroup=1 % Fix some spacing % http://tex.stackexchange.com/questions/22119/how-can-i-change-the-spacing-before-theorems-with-amsthm \def\thm@space@setup{% \thm@preskip=\parskip \thm@postskip=0pt } % Don't indent paragraphs, leave some space between them \RequirePackage{parskip} % Hide page number when page is empty \RequirePackage{emptypage}