texlive[44026] Master: uhhassignment (24apr17)

commits+karl at tug.org commits+karl at tug.org
Mon Apr 24 23:27:23 CEST 2017


Revision: 44026
          http://tug.org/svn/texlive?view=revision&revision=44026
Author:   karl
Date:     2017-04-24 23:27:23 +0200 (Mon, 24 Apr 2017)
Log Message:
-----------
uhhassignment (24apr17)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/uhhassignment/
    trunk/Master/texmf-dist/doc/latex/uhhassignment/README.md
    trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf
    trunk/Master/texmf-dist/source/latex/uhhassignment/
    trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.dtx
    trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.ins
    trunk/Master/texmf-dist/tex/latex/uhhassignment/
    trunk/Master/texmf-dist/tex/latex/uhhassignment/uhhassignment.cls
    trunk/Master/tlpkg/tlpsrc/uhhassignment.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/uhhassignment/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/uhhassignment/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/uhhassignment/README.md	2017-04-24 21:27:23 UTC (rev 44026)
@@ -0,0 +1,18 @@
+The uhhassignment document class
+================================
+
+This document class was created for typesetting solutions to homework assignments at the university of Hamburg (Universität Hamburg). For a full documentation of the provided features see the uhhassignment.pdf documentation.
+
+
+
+%% Copyright (C) 2017 by Kim Wittenburg
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, 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.


Property changes on: trunk/Master/texmf-dist/doc/latex/uhhassignment/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf	2017-04-24 21:26:31 UTC (rev 44025)
+++ trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf	2017-04-24 21:27:23 UTC (rev 44026)

Property changes on: trunk/Master/texmf-dist/doc/latex/uhhassignment/uhhassignment.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.dtx	2017-04-24 21:27:23 UTC (rev 44026)
@@ -0,0 +1,749 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2017 by Kim Wittenburg
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, 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.
+%
+% \fi
+
+
+% \iffalse
+%<driver>\ProvidesFile{uhhassignment.dtx}
+%
+%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<class>\ProvidesClass{uhhassignment}[2017/04/22 v1.0 The UHH-Assignment Class]
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+
+\usepackage{idxlayout}
+\usepackage{hypdoc}
+\usepackage{enumitem}
+
+\usepackage{lmodern}
+
+\CodelineIndex
+\EnableCrossrefs
+\RecordChanges
+\begin{document}
+    \DocInput{uhhassignment.dtx}
+\end{document}
+%</driver>
+% \fi
+
+
+% \CheckSum{409}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+
+
+% \changes{v1.0}{2017/04/12}{Initial version}
+%
+% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ ,\relax}
+% \DoNotIndex{\@ne,\newif,\fi,\gdef,\let,\newcommand,\renewcommand,\ifdefempty,
+%             \ifstrempty,\RequirePackage}
+% \DoNotIndex{\LoadClassWithOptions,\ClassWarning,\DeclareOption,
+%             \ExecuteOptions,\ProcessOptions}
+% \DoNotIndex{\advance,\begingroup,\catcode,\closein,\begin}
+% \DoNotIndex{\end,\closeout,\day,\def,\edef,\else,\empty,\endgroup}
+% \DoNotIndex{\newcounter,\arabic,\setcounter,\stepcounter}
+% \DoNotIndex{\baselineskip,\headheight,\hfill,\par,\parskip,\setlength,\vspace,
+%             \widthof}
+% \DoNotIndex{\bfseries,\Huge,\footnotesize,\LARGE,\Large,\large,\normalfont,
+%             \raggedright,\raggedleft,\RedeclareSectionCommands,\scriptsize,
+%             \setkomafont,\sffamily,\textbf,\textnormal,\textsc,\ttfamily,
+%             \usekomafont}
+% \DoNotIndex{\ifoot,\ihead,\cfoot,\clearpairofpagestyles,\newpagestyle,\color,
+%             \colorbox,\marginpar,\ofoot,\ohead,\pagestyle,\thispagestyle}
+% \DoNotIndex{\pagemark,\pageref}
+% \DoNotIndex{\protect,\space}
+
+% \title{The \textsf{uhhassignment} document class}
+% \author{Kim Wittenburg \\ \texttt{5wittenb at informatik.uni-hamburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+%   The \textsf{uhhassignment} document class is a document class designed to be
+%   used for assignments in university (or school). The class predominantly
+%   implements a custom layout for titles but also featues some helpful new
+%   commands. The class was originally designed to be used at the university of
+%   Hamburg.
+% \end{abstract}
+%
+% \addcontentsline{toc}{section}{Change History}
+% \PrintChanges
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \subsection{Class Options}
+%
+% Currently the \textsf{uhhassignment} class supports three (or rather six)
+% options:
+%
+% \index{unnumberedsheets}
+% By default the \textsf{uhhassignment} class expects the assignment sheets to
+% be numbered and issues a warning if the |\sheetno| is missing. However if you
+% do not want to specify a sheet number you can use the
+% \texttt{unnumberedsheets} class option to suppress the warning. The package
+% option also removes any text indicating the sheet number from the output.
+%
+% \index{numberedsheets}
+% The opposite option \texttt{numberedsheets} is used by default.
+%
+% \index{repeatauthor}
+% You can specify the \texttt{repeatauthor} class option to display a short
+% version of the |\author| on each page in the footer (including the first
+% page). The short version of the author is specified with the |\author| command
+% as an optional first parameter. By default the normal |\author| is used as
+% short author as well. By default the short author will not be displayed at
+% all.
+%
+% \index{shorttitle}\index{longtitle}
+% You can pass \texttt{shorttitle} class option to display the short university
+% name and short course name in the title. You could also explicitly pass
+% \texttt{longtitle} which is the default.
+%
+% \index{shortheader}\index{longheader}
+% Similarly you cann pass \texttt{shortheader} or \texttt{longheader} to display
+% the short or regular university and course name in the header on each
+% subsequent page.
+%
+% \subsection{The Title}
+%
+% The main feature of the \textsf{uhhassignment} class is the custom title
+% layout. The layout implements some new fields like the name of the university
+% (or school), the name of the teacher or the number of the exercise sheet. The
+% full list of supported fields is listed below. The actual title layout may be
+% different depending on which of the following fields are actually specified.
+%
+% \begingroup
+% \setlist[description]{
+%     font={\normalfont}
+% }
+%
+% \begin{description}
+%   \item[|\textbackslash university|\oarg{short uni}\marg{uni}]
+%                                                   \DescribeMacro{\university}
+%           Lets you specify the name of the university (or school). The default
+%           value is \texttt{Universität Hamburg}.
+%   \item[|\textbackslash course|\oarg{short course} \marg{course}]
+%                                                       \DescribeMacro{\course}
+%           Lets you specify the name of the course of the assignment. The
+%           course is sometimes referred to as a \emph{module}.
+%   \item[|\textbackslash teacher|\marg{teacher}] \DescribeMacro{\teacher}
+%           Lets you specify the name of the teacher or teachers of the course.
+%           If you want to specify multiple teachers it is recommended that you
+%           separate them with the |\\| command.
+%   \item[|\textbackslash group|\marg{group number}] \DescribeMacro{\group}
+%           The exercises for many university courses are divided into multiple
+%           exercise groups. Using this command you can specify the number of
+%           your group.
+%   \item[|\textbackslash sheetno|\marg{sheet number}] \DescribeMacro{\sheetno}
+%           Lets you specify the current exercise sheet. If no |\title| is
+%           provided the sheet number is used as title of the document.
+% \end{description}
+% \endgroup
+%
+% In addition to the above new commands you can also specify a |\title|, |\date|
+% and one or more |\author|s.
+%
+% \DescribeMacro{\id}
+% Sometimes you have to provide your student ID with your solutions to an
+% exercise sheet. The \textsf{uhhassignment} class provides the |\id|\marg{id}
+% command for this case. This command should be used when specifying the authors
+% with the |\author| command. It might look like this:
+% |\author{John Doe\id{1234567}}|
+%
+% \subsection{Tasks and Subtasks}
+%
+% The \textsf{uhhassignment} class is based on \textsf{srcarctl} from the KOMA
+% packages so its main sectioning level are sections (not chapters). Sections
+% and subsections however do not always accurately reflect the semantics of
+% solutions to an assignment.  Instead the \textsf{uhhassignment} class provides
+% the following commands:
+%
+% \smallskip
+%
+% \DescribeMacro{\task}|\task|\oarg{task number}\marg{task name}\\
+% The |\task| command replaces the |\section| command. It incrementally numbers
+% the tasks (starting at 1). If you want to skip a task you can use the optional
+% \meta{task number} argument to set the task number to a specific value.
+% Subsequent tasks are then incrementally numbered.
+%
+% \smallskip
+%
+% \DescribeMacro{\subtask}|\subtask|\oarg{task number}\marg{task name}\\
+% \DescribeMacro{\subsubtask}|\subsubtask|\oarg{task number}\marg{task name}\\
+% The |\subtask| and |\subsubtask| replace |\subsection| and |\subsubsection|
+% respectively. They work analogous to |\task|.
+%
+% \smallskip
+%
+% The standard sectioning commands are not modified by the
+% \textsf{uhhassignment} class so it is still possible to use them. In fact the
+% |\task| commands do create sections and subsections internally. You should
+% however be careful in using |\section|s yourself because it may be difficult
+% to distinguish |\task|s from |\section|s.
+%
+% \subsection{Todos}
+%
+% The \textsf{uhhassignment} class offers rudimentary support for todo notes.
+% Currently todo support is very limited and may not work in some cases.
+%
+% \smallskip
+%
+% \DescribeMacro{\todo}|\todo|\oarg{todo text}\\
+% The |\todo| command does two things:
+% \begin{enumerate}
+%   \item It puts a todo marker in the text where the |\todo| command is
+%       specified. The todo marker is defined by the |\todomark| command.
+%       \DescribeMacro{\todomark}
+%   \item It puts a todo note at the page margin so that you can easily spot
+%       open todos in the PDF. The text of the todo note can be customized using
+%       the \meta{todo text} optional argument.
+% \end{enumerate}
+%
+% \StopEventually{
+%   \addcontentsline{toc}{section}{Index}
+%   \PrintIndex
+% }
+%
+% \section{Implementation}
+%
+% In addition to the options provided by \textsf{scrartcl} the
+% \textsf{uhhassignment} class supports the following options.
+%    \begin{macrocode}
+\newif\ifuhhassignment at numberedsheets
+\DeclareOption{unnumberedsheets}{
+    \uhhassignment at numberedsheetsfalse
+}
+
+\DeclareOption{numberedsheets}{
+    \uhhassignment at numberedsheetstrue
+}
+
+\newif\ifuhhassignment at repeatauthor
+\uhhassignment at repeatauthorfalse
+\DeclareOption{repeatauthor}{
+    \uhhassignment at repeatauthortrue
+}
+
+\newif\ifuhhassignment at shorttitle
+\DeclareOption{shorttitle}{
+    \uhhassignment at shorttitletrue
+}
+
+\DeclareOption{longtitle}{
+    \uhhassignment at shorttitlefalse
+}
+
+\newif\ifuhhassignment at shortheader
+\DeclareOption{shortheader}{
+    \uhhassignment at shortheadertrue
+}
+
+\DeclareOption{longheader}{
+    \uhhassignment at shortheaderfalse
+}
+
+\ExecuteOptions{longtitle,longheader,numberedsheets}
+
+\ProcessOptions\relax
+%    \end{macrocode}
+%
+% The \textsf{uhhassignment} class is based on \textsf{scrartcl}.
+%    \begin{macrocode}
+\LoadClassWithOptions{scrartcl}
+%    \end{macrocode}
+
+% \iffalse %%%%%%%%%%%%%%%%%%%
+%%%%%%%% Dependencies %%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+% \subsection{Dependencies}
+%
+%    \begin{macrocode}
+\RequirePackage[utf8]{inputenc} % UTF-8 Encoding
+\RequirePackage{cmap} % Special Characters
+\RequirePackage[T1]{fontenc} % Font Encoding
+\RequirePackage[ngerman]{babel} % German Language
+\RequirePackage{etoolbox} % Programming
+\RequirePackage{calc} % Calculations
+
+\RequirePackage[a4paper,
+                left=25mm,
+                right=25mm,
+                top=20mm,
+                bottom=50mm]{geometry} % Page Margins
+
+\RequirePackage[headsepline]{scrlayer-scrpage} % Header and Footer
+\RequirePackage{lastpage} % Page Numbers
+
+\RequirePackage{amsmath} % Maths
+\RequirePackage{amssymb} % Maths
+\RequirePackage{amsthm} % Beweise
+\RequirePackage{enumitem} % Customizable Enumerations
+
+\RequirePackage{xcolor} % Colors
+\RequirePackage{framed} % Colored Boxes
+\RequirePackage[colorlinks,linkcolor=black]{hyperref} % References
+\RequirePackage{lmodern} % Better Font
+%    \end{macrocode}
+
+% \iffalse %%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% Constants %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+% \subsection{Constants}
+
+% The following constants are used throughout the template. They can be
+% overridden for customizations.
+%    \begin{macrocode}
+\def\uhhassignment at sheetid{Aufgabenblatt}
+\def\uhhassignment at groupid{Übungsgruppe}
+%    \end{macrocode}
+
+% \iffalse %%%%%%%%%%%%%%%%%%%
+%%%%%%% Custom Commands %%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+% \subsection{Definitions}
+%
+% \subsubsection{Title Elements}
+%
+% \begin{macro}{\university}
+% The |\university| command stores the name of the university for later use.
+% \begin{macrocode}
+\newcommand{\university}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortuniversity{#2}
+    }{
+        \gdef\@shortuniversity{#1}
+    }
+    \gdef\@university{#2}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\course}
+% The |\course| command stores the name of the course for later use.
+%    \begin{macrocode}
+\newcommand{\course}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortcourse{#2}
+    }{
+        \gdef\@shortcourse{#1}
+    }
+    \gdef\@course{#2}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\teacher}
+% The |\teacher| command stores the name of the teacher for later use.
+%    \begin{macrocode}
+\newcommand{\teacher}[1]{
+    \gdef\@teacher{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\group}
+% The |\group| command stores the name of the group for later use.
+%    \begin{macrocode}
+\newcommand{\group}[1]{
+    \gdef\@group{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\sheetno}
+% The |\sheetno| command stores the assignment sheet number for later use.
+%    \begin{macrocode}
+\newcommand{\sheetno}[1]{
+    \gdef\@sheetno{#1}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\id}
+% The |\id| macro prints the id of an author. The default implementation puts
+% the id on a new line in parentheses.
+%    \begin{macrocode}
+\newcommand{\id}[1]{\\\ttfamily\footnotesize(#1)}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\author}
+% The |\author| command is overridden by this class to support a short author
+% that may be printed at the bottom of each page.
+%    \begin{macrocode}
+\renewcommand{\author}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortauthor{#2}
+    }{
+        \gdef\@shortauthor{#1}
+    }
+    \gdef\@author{#2}
+}
+%    \end{macrocode}
+% \end{macro}
+
+% The default values for most fields are empty. The default university is the
+% university of Hamburg.
+%    \begin{macrocode}
+\university[Uni Hamburg]{Universität Hamburg}
+\def\@course{
+    \ClassWarning{uhhassignment}{No \protect\course\space given}
+}
+\let\@shortcourse\@course
+\group{}
+\def\@teacher{
+    \ClassWarning{uhhassignment}{No \protect\teacher\space given}
+}
+\let\@shortteacher\@teacher
+\def\@sheetno{
+    \ClassWarning{uhhassignment}{No \protect\sheetno\space given}
+}
+\def\@shortauthor{
+    \ClassWarning{uhhassignment}{No short \protect\author\space given}
+}
+\title{}
+
+%    \end{macrocode}
+
+% \subsubsection{Todos}
+
+% \begin{macro}{\todomark}
+% The |\todomark| is placed in the text when the |\todo| command is used. The
+% default implementation draws a purple box with the text "Todo" inside.
+%    \begin{macrocode}
+\newcommand{\todomark}{%
+    \colorbox{purple}{%
+        \textnormal\ttfamily\bfseries\color{white}%
+        TODO%
+    }%
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\todo}
+% The |\todo| macro places the |\todomark| and puts a todo text in a marginpar.
+%    \begin{macrocode}
+\newcommand{\todo}[1][]{%
+    \ifstrempty{#1}{%
+        \def\todotext{Todo}%
+    }{%
+        \def\todotext{Todo: #1}%
+    }%
+    \todomark%
+    {%
+        \marginpar{%
+            \raggedright\normalfont\sffamily\scriptsize\todotext%
+        }%
+    }%
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \subsubsection{Tasks}
+
+% The task mechanism of the \textsf{uhhassignment} class implements its own
+% numbering mechanism. This is neccessary because the task numbers do not
+% necessarily correlate with section numbers.
+%    \begin{macrocode}
+\setcounter{secnumdepth}{0}
+%    \end{macrocode}
+
+% \begin{macro}{\task}
+% The |\task| command is basically just a wrapper around a section with a
+% semi-customizable section title.
+%    \begin{macrocode}
+\newcounter{task}
+\newcommand{\task}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{task}%
+    }{%
+        \setcounter{task}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \section{Aufgabe \arabic{task}}%
+    }{%
+        \section{Aufgabe \arabic{task}: #2}%
+    }%
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\subtask}
+% The equivalent of |\subsection| for the \textsf{uhhassignment} class.
+% |\subtask| essentially wraps |\subsection| with a semi-customizable title.
+%    \begin{macrocode}
+\newcounter{subtask}[task]
+\newcommand{\subtask}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{subtask}%
+    }{%
+        \setcounter{subtask}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \subsection{Teilaufgabe \arabic{task}.\arabic{subtask}}%
+    }{%
+        \subsection{\arabic{task}.\arabic{subtask}. #2}%
+    }%
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\subsubtask}
+% The equivalent of |\subsubsection| for the \textsf{uhhassignment} class.
+% |\subsubtask| essentially wraps |\subsection| with a semi-customizable title.
+% It probably is not neccessary to use this very often.
+%    \begin{macrocode}
+\newcounter{subsubtask}[subtask]
+\newcommand{\subsubtask}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{subsubtask}%
+    }{%
+        \setcounter{subsubtask}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \subsection{\arabic{task}.\arabic{subtask}.\arabic{subsubtask}}
+    }{%
+        \subsubsection{\arabic{task}.\arabic{subtask}.\arabic{subsubtask}. #2}%
+    }%
+}
+%    \end{macrocode}
+% \end{macro}
+
+% \iffalse %%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Page Setup %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+% \subsection{Page Setup}
+
+% The \textsf{uhhassignment} class defines its own header and footer using
+% \textsf{scrlayer-scrpage}. The default setup shows the course, sheet number,
+% university and date on every page.
+%    \begin{macrocode}
+\setlength{\headheight}{50pt}
+\pagestyle{scrheadings}
+\clearpairofpagestyles
+
+% Header
+\ifuhhassignment at shortheader
+    \ifuhhassignment at numberedsheets
+        \ihead{\textbf{\@shortcourse}\\\uhhassignment at sheetid{} \@sheetno}
+    \else
+        \ihead{\textbf{\@shortcourse}}
+    \fi
+    \ohead{\textbf{\@shortuniversity}\\\@date}
+\else
+    \ifuhhassignment at numberedsheets
+        \ihead{\textbf{\@course}\\\uhhassignment at sheetid{} \@sheetno}
+    \else
+        \ihead{\textbf{\@course}}
+    \fi
+    \ohead{\textbf{\@university}\\\@date}
+\fi
+
+% Footer
+\setkomafont{pagefoot}{\textnormal}
+\ifuhhassignment at repeatauthor
+    \ifoot[\@shortauthor]{\@shortauthor}
+    \ofoot[Seite \pagemark{} von \pageref{LastPage}]{Seite \pagemark{} von \pageref{LastPage}}
+\else
+    \cfoot[Seite \pagemark{} von \pageref{LastPage}]{Seite \pagemark{} von \pageref{LastPage}}
+\fi
+
+\newpagestyle{firstpage}[]{%
+    \ihead{}
+    \cfoot{\pagemark{}}
+}
+%    \end{macrocode}
+
+% \iffalse %%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%% Layout %%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+% \subsection{Layout}
+
+% The \textsf{uhhassignment} class overrides some font settings and adjusts the
+% paragraph spacing to create a more distinct layout.
+%
+%    \begin{macrocode}
+\setlength{\parskip}{5pt}
+
+\setkomafont{section}{\normalfont\bfseries\LARGE}
+\setkomafont{subsection}{\normalfont\bfseries\Large}
+\setkomafont{subsubsection}{\normalfont\bfseries\large}
+\RedeclareSectionCommands[afterskip=.25\baselineskip]{section}
+\RedeclareSectionCommands[
+    beforeskip=0.5\baselineskip,
+    afterskip=.125\baselineskip]{subsection}
+%    \end{macrocode}
+
+% \begin{macro}{\maketitle}
+% The \textsf{uhhassignment} class completely redefines the |\maketitle| macro.
+% This implementation actually defines the layout of the final title depending
+% on which information was specified by the user (group number, a title, \dots).
+%
+% We differentiate two \emph{states} of the title. If the user does not specify
+% a title and does not specify a group the title will be rearranged to not
+% display too much empty space. This is implemented via the |\ifextended|
+% definition.
+%    \begin{macrocode}
+\renewcommand*{\maketitle}{%
+    \thispagestyle{plain}%
+
+    \newif\ifextended
+    \extendedtrue
+
+    \ifuhhassignment at shorttitle
+        \let\university\@shortuniversity
+        \let\course\@shortcourse
+    \else
+        \let\university\@university
+        \let\course\@course
+    \fi
+%    \end{macrocode}
+
+% First we define the different layout parts. The title has six \emph{slots}
+% each of which can hold a piece of text:
+% \begin{description}
+%   \item[Top Left] On the top left the course name ist printed in a bold
+%                   font.
+%   \item[Top Right] On the top right the name of the university is printed
+%                    in a bold font.
+%   \item[Meta Left] Below the course name a piece of information is
+%                    printed. The contents of this slot depend on the
+%                    specified information and can be either the group
+%                    number or the teacher.
+%   \item[Meta Right] Similar to meta left but below the university name.
+%                     This slot typically holds the teacher or the date.
+%   \item[Title Left] Above the actual title there is a row of secondary
+%                     titles. On the left of this row the sheet number is
+%                     printed.
+%   \item[Title Right] Similarly to title left this slot may contain the
+%                      date.
+% \end{description}
+% Below the header the actual document title and the author(s) are printed.
+% If no |\title| is specified the sheet number becomes the title (|\title|
+% however remains empfy).
+%    \begin{macrocode}
+    \ifdefempty{\@title}{%
+        \ifdefempty{\@group}{%
+            \def\metaleft{\@teacher}%
+            \def\metaright{\@date}%
+            \def\titleright{}%
+            \extendedfalse
+        }{%
+            \def\metaleft{\uhhassignment at sheetid{} \@group}%
+            \def\metaright{\@teacher}%
+            \def\titleright{\@date}%
+        }%
+        \def\titleleft{}%
+        \ifuhhassignment at numberedsheets
+            \def\title{\uhhassignment at sheetid{} \@sheetno}%
+        \else
+            % Title remains user-specified
+        \fi
+    }{%
+        \ifdefempty{\@group}{%
+            \def\metaleft{}%
+            \def\metaright{\@teacher}%
+        }{%
+            \def\metaleft{\uhhassignment at groupid{} \@group}%
+            \def\metaright{\@teacher}%
+        }%
+        \ifuhhassignment at numberedsheets
+            \def\titleleft{\uhhassignment at sheetid{} \@sheetno}%
+        \else
+            \def\titleleft{}
+        \fi
+        \def\titleright{\@date}%
+        \def\title{\@title}%
+    }%
+%    \end{macrocode}
+
+% The following code prints the title with the information specified above.
+% Depending on the value of |\ifextended| the title will be longer or
+% shorter.
+%
+% Each field (heading, secondary title, title, author) is put in a separate
+% group to avoid interference.
+%    \begin{macrocode}
+
+    \begingroup% Heading Group
+        \usekomafont{pageheadfoot}%
+        \usekomafont{pagehead}%
+        \setlength{\parskip}{0pt}%
+
+        \textbf{\course} \hfill \textbf{\university}\par%
+
+        \begin{minipage}[t]{\widthof{\metaleft}}%
+            \metaleft%
+        \end{minipage}%
+        \hfill%
+        \begin{minipage}[t]{\widthof{\metaright}}%
+            \raggedleft%
+            \metaright%
+        \end{minipage}%
+    \endgroup%
+
+    \ifextended%
+        \vspace{\baselineskip}%
+    \fi%
+
+    \begingroup% Secondary Title Groupt
+        \Large\bfseries\titleleft\hfill\titleright%
+    \endgroup%
+
+    \begingroup% Title Group
+        \begin{center}%
+            \Huge\textsc{\title}%
+        \end{center}%
+    \endgroup%
+
+    \begingroup% Author Group
+        \setlength{\baselineskip}{2.75\baselineskip}%
+        \vspace{-\baselineskip}%
+        \begin{center}%
+            \begin{tabular}[t]{c}%
+                \@author%
+            \end{tabular}%
+        \end{center}%
+    \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}
+% \Finale
+
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/uhhassignment/uhhassignment.ins	2017-04-24 21:27:23 UTC (rev 44026)
@@ -0,0 +1,52 @@
+%%
+%% Copyright (C) 2017 by Kim Wittenburg
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, 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.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/uhhassignment}
+
+\preamble
+
+Copyright (C) 2017 by Kim Wittenburg
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, 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.
+\endpreamble
+
+\generate{\file{uhhassignment.cls}{\from{uhhassignment.dtx}{class}}}
+
+\obeyspaces
+\Msg{****************************************************}
+\Msg{*                                                  *}
+\Msg{* To finish the installation you have to move the  *}
+\Msg{* following file into a directory searched by TeX: *}
+\Msg{*                                                  *}
+\Msg{*      uhhassignment.cls                           *}
+\Msg{*                                                  *}
+\Msg{* To produce the documentation run the file        *}
+\Msg{* uhhassignment.dtx through LaTeX.                 *}
+\Msg{*                                                  *}
+\Msg{* Happy TeXing!                                    *}
+\Msg{*                                                  *}
+\Msg{****************************************************}
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/uhhassignment/uhhassignment.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/uhhassignment/uhhassignment.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/uhhassignment/uhhassignment.cls	2017-04-24 21:27:23 UTC (rev 44026)
@@ -0,0 +1,374 @@
+%%
+%% This is file `uhhassignment.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uhhassignment.dtx  (with options: `class')
+%% 
+%% Copyright (C) 2017 by Kim Wittenburg
+%% 
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, 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.
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesClass{uhhassignment}[2017/04/22 v1.0 The UHH-Assignment Class]
+
+
+
+\newif\ifuhhassignment at numberedsheets
+\DeclareOption{unnumberedsheets}{
+    \uhhassignment at numberedsheetsfalse
+}
+
+\DeclareOption{numberedsheets}{
+    \uhhassignment at numberedsheetstrue
+}
+
+\newif\ifuhhassignment at repeatauthor
+\uhhassignment at repeatauthorfalse
+\DeclareOption{repeatauthor}{
+    \uhhassignment at repeatauthortrue
+}
+
+\newif\ifuhhassignment at shorttitle
+\DeclareOption{shorttitle}{
+    \uhhassignment at shorttitletrue
+}
+
+\DeclareOption{longtitle}{
+    \uhhassignment at shorttitlefalse
+}
+
+\newif\ifuhhassignment at shortheader
+\DeclareOption{shortheader}{
+    \uhhassignment at shortheadertrue
+}
+
+\DeclareOption{longheader}{
+    \uhhassignment at shortheaderfalse
+}
+
+\ExecuteOptions{longtitle,longheader,numberedsheets}
+
+\ProcessOptions\relax
+\LoadClassWithOptions{scrartcl}
+
+%%%%%%%% Dependencies %%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+\RequirePackage[utf8]{inputenc} % UTF-8 Encoding
+\RequirePackage{cmap} % Special Characters
+\RequirePackage[T1]{fontenc} % Font Encoding
+\RequirePackage[ngerman]{babel} % German Language
+\RequirePackage{etoolbox} % Programming
+\RequirePackage{calc} % Calculations
+
+\RequirePackage[a4paper,
+                left=25mm,
+                right=25mm,
+                top=20mm,
+                bottom=50mm]{geometry} % Page Margins
+
+\RequirePackage[headsepline]{scrlayer-scrpage} % Header and Footer
+\RequirePackage{lastpage} % Page Numbers
+
+\RequirePackage{amsmath} % Maths
+\RequirePackage{amssymb} % Maths
+\RequirePackage{amsthm} % Beweise
+\RequirePackage{enumitem} % Customizable Enumerations
+
+\RequirePackage{xcolor} % Colors
+\RequirePackage{framed} % Colored Boxes
+\RequirePackage[colorlinks,linkcolor=black]{hyperref} % References
+\RequirePackage{lmodern} % Better Font
+
+%%%%%%%%%% Constants %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+
+\def\uhhassignment at sheetid{Aufgabenblatt}
+\def\uhhassignment at groupid{Übungsgruppe}
+
+%%%%%%% Custom Commands %%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+\newcommand{\university}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortuniversity{#2}
+    }{
+        \gdef\@shortuniversity{#1}
+    }
+    \gdef\@university{#2}
+}
+
+\newcommand{\course}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortcourse{#2}
+    }{
+        \gdef\@shortcourse{#1}
+    }
+    \gdef\@course{#2}
+}
+
+\newcommand{\teacher}[1]{
+    \gdef\@teacher{#1}
+}
+
+\newcommand{\group}[1]{
+    \gdef\@group{#1}
+}
+
+\newcommand{\sheetno}[1]{
+    \gdef\@sheetno{#1}
+}
+
+\newcommand{\id}[1]{\\\ttfamily\footnotesize(#1)}
+
+\renewcommand{\author}[2][]{
+    \ifstrempty{#1}{
+        \gdef\@shortauthor{#2}
+    }{
+        \gdef\@shortauthor{#1}
+    }
+    \gdef\@author{#2}
+}
+
+\university[Uni Hamburg]{Universität Hamburg}
+\def\@course{
+    \ClassWarning{uhhassignment}{No \protect\course\space given}
+}
+\let\@shortcourse\@course
+\group{}
+\def\@teacher{
+    \ClassWarning{uhhassignment}{No \protect\teacher\space given}
+}
+\let\@shortteacher\@teacher
+\def\@sheetno{
+    \ClassWarning{uhhassignment}{No \protect\sheetno\space given}
+}
+\def\@shortauthor{
+    \ClassWarning{uhhassignment}{No short \protect\author\space given}
+}
+\title{}
+
+
+
+\newcommand{\todomark}{%
+    \colorbox{purple}{%
+        \textnormal\ttfamily\bfseries\color{white}%
+        TODO%
+    }%
+}
+
+\newcommand{\todo}[1][]{%
+    \ifstrempty{#1}{%
+        \def\todotext{Todo}%
+    }{%
+        \def\todotext{Todo: #1}%
+    }%
+    \todomark%
+    {%
+        \marginpar{%
+            \raggedright\normalfont\sffamily\scriptsize\todotext%
+        }%
+    }%
+}
+
+
+\setcounter{secnumdepth}{0}
+
+\newcounter{task}
+\newcommand{\task}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{task}%
+    }{%
+        \setcounter{task}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \section{Aufgabe \arabic{task}}%
+    }{%
+        \section{Aufgabe \arabic{task}: #2}%
+    }%
+}
+
+\newcounter{subtask}[task]
+\newcommand{\subtask}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{subtask}%
+    }{%
+        \setcounter{subtask}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \subsection{Teilaufgabe \arabic{task}.\arabic{subtask}}%
+    }{%
+        \subsection{\arabic{task}.\arabic{subtask}. #2}%
+    }%
+}
+
+\newcounter{subsubtask}[subtask]
+\newcommand{\subsubtask}[2][]{%
+    \ifstrempty{#1}{%
+        \stepcounter{subsubtask}%
+    }{%
+        \setcounter{subsubtask}{#1}%
+    }%
+    \ifstrempty{#2}{%
+        \subsection{\arabic{task}.\arabic{subtask}.\arabic{subsubtask}}
+    }{%
+        \subsubsection{\arabic{task}.\arabic{subtask}.\arabic{subsubtask}. #2}%
+    }%
+}
+
+%%%%%%%%% Page Setup %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+
+\setlength{\headheight}{50pt}
+\pagestyle{scrheadings}
+\clearpairofpagestyles
+
+\ifuhhassignment at shortheader
+    \ifuhhassignment at numberedsheets
+        \ihead{\textbf{\@shortcourse}\\\uhhassignment at sheetid{} \@sheetno}
+    \else
+        \ihead{\textbf{\@shortcourse}}
+    \fi
+    \ohead{\textbf{\@shortuniversity}\\\@date}
+\else
+    \ifuhhassignment at numberedsheets
+        \ihead{\textbf{\@course}\\\uhhassignment at sheetid{} \@sheetno}
+    \else
+        \ihead{\textbf{\@course}}
+    \fi
+    \ohead{\textbf{\@university}\\\@date}
+\fi
+
+\setkomafont{pagefoot}{\textnormal}
+\ifuhhassignment at repeatauthor
+    \ifoot[\@shortauthor]{\@shortauthor}
+    \ofoot[Seite \pagemark{} von \pageref{LastPage}]{Seite \pagemark{} von \pageref{LastPage}}
+\else
+    \cfoot[Seite \pagemark{} von \pageref{LastPage}]{Seite \pagemark{} von \pageref{LastPage}}
+\fi
+
+\newpagestyle{firstpage}[]{%
+    \ihead{}
+    \cfoot{\pagemark{}}
+}
+
+%%%%%%%%%%% Layout %%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\fi
+
+
+\setlength{\parskip}{5pt}
+
+\setkomafont{section}{\normalfont\bfseries\LARGE}
+\setkomafont{subsection}{\normalfont\bfseries\Large}
+\setkomafont{subsubsection}{\normalfont\bfseries\large}
+\RedeclareSectionCommands[afterskip=.25\baselineskip]{section}
+\RedeclareSectionCommands[
+    beforeskip=0.5\baselineskip,
+    afterskip=.125\baselineskip]{subsection}
+
+\renewcommand*{\maketitle}{%
+    \thispagestyle{plain}%
+
+    \newif\ifextended
+    \extendedtrue
+
+    \ifuhhassignment at shorttitle
+        \let\university\@shortuniversity
+        \let\course\@shortcourse
+    \else
+        \let\university\@university
+        \let\course\@course
+    \fi
+
+    \ifdefempty{\@title}{%
+        \ifdefempty{\@group}{%
+            \def\metaleft{\@teacher}%
+            \def\metaright{\@date}%
+            \def\titleright{}%
+            \extendedfalse
+        }{%
+            \def\metaleft{\uhhassignment at sheetid{} \@group}%
+            \def\metaright{\@teacher}%
+            \def\titleright{\@date}%
+        }%
+        \def\titleleft{}%
+        \ifuhhassignment at numberedsheets
+            \def\title{\uhhassignment at sheetid{} \@sheetno}%
+        \else
+            % Title remains user-specified
+        \fi
+    }{%
+        \ifdefempty{\@group}{%
+            \def\metaleft{}%
+            \def\metaright{\@teacher}%
+        }{%
+            \def\metaleft{\uhhassignment at groupid{} \@group}%
+            \def\metaright{\@teacher}%
+        }%
+        \ifuhhassignment at numberedsheets
+            \def\titleleft{\uhhassignment at sheetid{} \@sheetno}%
+        \else
+            \def\titleleft{}
+        \fi
+        \def\titleright{\@date}%
+        \def\title{\@title}%
+    }%
+
+
+    \begingroup% Heading Group
+        \usekomafont{pageheadfoot}%
+        \usekomafont{pagehead}%
+        \setlength{\parskip}{0pt}%
+
+        \textbf{\course} \hfill \textbf{\university}\par%
+
+        \begin{minipage}[t]{\widthof{\metaleft}}%
+            \metaleft%
+        \end{minipage}%
+        \hfill%
+        \begin{minipage}[t]{\widthof{\metaright}}%
+            \raggedleft%
+            \metaright%
+        \end{minipage}%
+    \endgroup%
+
+    \ifextended%
+        \vspace{\baselineskip}%
+    \fi%
+
+    \begingroup% Secondary Title Groupt
+        \Large\bfseries\titleleft\hfill\titleright%
+    \endgroup%
+
+    \begingroup% Title Group
+        \begin{center}%
+            \Huge\textsc{\title}%
+        \end{center}%
+    \endgroup%
+
+    \begingroup% Author Group
+        \setlength{\baselineskip}{2.75\baselineskip}%
+        \vspace{-\baselineskip}%
+        \begin{center}%
+            \begin{tabular}[t]{c}%
+                \@author%
+            \end{tabular}%
+        \end{center}%
+    \endgroup%
+}
+
+\endinput
+%%
+%% End of file `uhhassignment.cls'.


Property changes on: trunk/Master/texmf-dist/tex/latex/uhhassignment/uhhassignment.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-04-24 21:26:31 UTC (rev 44025)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-04-24 21:27:23 UTC (rev 44026)
@@ -630,7 +630,7 @@
   uaclasses uafthesis uantwerpendocs uassign
     ucharcat ucharclasses ucbthesis ucdavisthesis ucs
     ucthesis udesoftec uebungsblatt uestcthesis
-    uhrzeit uiucredborder uiucthesis
+    uhhassignment uhrzeit uiucredborder uiucthesis
     ukrhyph ulem ulqda ulthese
     umbclegislation umich-thesis uml umlaute umoline
     umthesis umtypewriter

Modified: trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2017-04-24 21:26:31 UTC (rev 44025)
+++ trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2017-04-24 21:27:23 UTC (rev 44026)
@@ -153,6 +153,7 @@
 depend ucdavisthesis
 depend ucthesis
 depend uestcthesis
+depend uhhassignment
 depend uiucredborder
 depend uiucthesis
 depend ulthese

Added: trunk/Master/tlpkg/tlpsrc/uhhassignment.tlpsrc
===================================================================


More information about the tex-live-commits mailing list