From eaa94286acf93a245bd088560ebac0b615bf3072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Tue, 7 Sep 2021 11:36:22 +0200 Subject: [PATCH] move managing of \lecture command into own package --- mkessler-lectures.sty | 81 +++++++++++++++++++++++++++++++++++++++++++ mkessler-script.cls | 58 +++---------------------------- 2 files changed, 85 insertions(+), 54 deletions(-) create mode 100644 mkessler-lectures.sty diff --git a/mkessler-lectures.sty b/mkessler-lectures.sty new file mode 100644 index 0000000..e373bb0 --- /dev/null +++ b/mkessler-lectures.sty @@ -0,0 +1,81 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mkessler-lectures}[2021-09-06 - Package for managing different lectures within a document] + +%%%%%%%%%%%%%%%%%% +% The core of the lecture command this package provides has been taken from the preamble in +% https://github.com/gillescastel/university-setup +% which is licensed under + +%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. +% This package extends the lecture command to make a summary of lectures at the beginning of a document, and has thus modified this command. + +\newif\ifenglish\englishtrue +\DeclareOption{german}{\englishfalse} +\DeclareOption{english}{\englishtrue} +\DeclareOption*{\PackageWarning{mkessler-lectures}{Unknown '\CurrentOption'}} +\ProcessOptions\relax + +%Tocloft package for making a list of lectures +\RequirePackage{tocloft} +%Store name of the summary in a command to use it multiple times +\newcommand\listlecturename{\ifenglish Summary of lectures\else Übersicht der Vorlesungen\fi} +\newlistof{lecture}{lec}{\listlecturename} % Declare new list of lectures +%Settings how to print the summary +\renewcommand{\cftdot}{} +\renewcommand\cftlecturefont{\normalfont\bfseries} +\renewcommand\cftlecturepagefont{\normalfont\bfseries} +\renewcommand\cftlectitlefont{\Large\bfseries} +\renewcommand\cftbeforelectureskip{1em} + +%Command to parse the date +\RequirePackage{xifthen} +\def\testdateparts#1{\dateparts#1\relax} +\def\dateparts#1 #2 #3 #4 #5\relax{ + \marginpar{\small\textsf{\mbox{#1 #2 #3 #5}}} +} + +%Define the main lecture command to start a new lecture +\def\@lectureprefix{\ifenglish Lecture\else Vorlesung\fi} +\def\@lecture{}% +\newcommand{\lecture}[3][]{ + \refstepcounter{lecture} + %Store lecture name in the macro \@lecture + \ifthenelse{\isempty{#3}}{% + \def\@lecture{\@lectureprefix\, \thelecture}% + }{% + \def\@lecture{\@lectureprefix\, \thelecture: #3}% + }% + \marginpar{\small\textsf{\parbox{10em}{\@lectureprefix\, \thelecture \\#2}}} + %Add lecture as an entry to the lectures file + \addcontentsline{lec}{lecture}{\@lectureprefix\,\thelecture\,(#2)} + %If key words are provided, add the key words of the lecture below the entry + \ifthenelse{\isempty{#1}}{}{\addtocontents{lec}{\smallskip\hspace{1.5em}\protect\parbox{\dimexpr\textwidth-\@pnumwidth - 2em}{#1}}} +} + +%Provide a command to show the summary of lectures +\DeclareRobustCommand*{\summaryoflectures}{ + \phantomsection + \addcontentsline{toc}{section}{\listlecturename} + \thispagestyle{plain} + \listoflecture +} diff --git a/mkessler-script.cls b/mkessler-script.cls index 9febbf2..1fcdb59 100644 --- a/mkessler-script.cls +++ b/mkessler-script.cls @@ -132,10 +132,10 @@ \let\svlim\lim\def\lim{\svlim\limits} %Make implies and impliedby shorter -\let\implies\Rightarrow -\let\impliedby\Leftarrow -\let\iff\Leftrightarrow -\let\epsilon\varepsilon +%\let\implies\Rightarrow +%\let\impliedby\Leftarrow +%\let\iff\Leftrightarrow +%\let\epsilon\varepsilon % Fix some spacing % http://tex.stackexchange.com/questions/22119/how-can-i-change-the-spacing-before-theorems-with-amsthm @@ -143,55 +143,6 @@ \thm@preskip=\parskip \thm@postskip=0pt } -%%%%%%%Setup of lectures and their summary - -%Tocloft package for making a list of lectures -\RequirePackage{tocloft} -%Store name of the summary in a command to use it multiple times -\newcommand\listlecturename{\ifenglish Summary of lectures\else Übersicht der Vorlesungen\fi} -\newlistof{lecture}{lec}{\listlecturename} % Declare new list of lectures -%Settings how to print the summary -\renewcommand{\cftdot}{} -\renewcommand\cftlecturefont{\normalfont\bfseries} -\renewcommand\cftlecturepagefont{\normalfont\bfseries} -\renewcommand\cftlectitlefont{\Large\bfseries} -\renewcommand\cftbeforelectureskip{1em} - -%Command to parse the date -\RequirePackage{xifthen} -\def\testdateparts#1{\dateparts#1\relax} -\def\dateparts#1 #2 #3 #4 #5\relax{ - \marginpar{\small\textsf{\mbox{#1 #2 #3 #5}}} -} - -%Define the main lecture command to start a new lecture -\def\@lectureprefix{\ifenglish Lecture\else Vorlesung\fi} -\def\@lecture{}% -\newcommand{\lecture}[3][]{ - \refstepcounter{lecture} - %Store lecture name in the macro \@lecture - \ifthenelse{\isempty{#3}}{% - \def\@lecture{\@lectureprefix\, \thelecture}% - }{% - \def\@lecture{\@lectureprefix\, \thelecture: #3}% - }% - \marginpar{\small\textsf{\parbox{10em}{\@lectureprefix\, \thelecture \\#2}}} - %Add lecture as an entry to the lectures file - \addcontentsline{lec}{lecture}{\@lectureprefix\,\thelecture\,(#2)} - %If key words are provided, add the key words of the lecture below the entry - \ifthenelse{\isempty{#1}}{}{\addtocontents{lec}{\smallskip\hspace{1.5em}\protect\parbox{\dimexpr\textwidth-\@pnumwidth - 2em}{#1}}} -} - - - -%Provide a command to show the summary of lectures -\DeclareRobustCommand*{\summaryoflectures}{ - \phantomsection - \addcontentsline{toc}{section}{\listlecturename} - \thispagestyle{plain} - \listoflecture -} - %%%% These are the fancy headers \RequirePackage{fancyhdr} \pagestyle{fancy} @@ -236,4 +187,3 @@ % Fix some stuff % %http://tex.stackexchange.com/questions/76273/multiple-pdfs-with-page-group-included-in-a-single-page-warning \pdfsuppresswarningpagegroup=1 -