summaryrefslogtreecommitdiff
path: root/usergrps/dante/dtk
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /usergrps/dante/dtk
Initial commit
Diffstat (limited to 'usergrps/dante/dtk')
-rw-r--r--usergrps/dante/dtk/README.md5
-rw-r--r--usergrps/dante/dtk/doc/beispiel.bib34
-rw-r--r--usergrps/dante/dtk/doc/beispiel.pdfbin0 -> 81289 bytes
-rw-r--r--usergrps/dante/dtk/doc/beispiel.tex120
-rw-r--r--usergrps/dante/dtk/doc/dtk-extern-test.tex228
-rw-r--r--usergrps/dante/dtk/dtk-author.clo35
-rw-r--r--usergrps/dante/dtk/dtk-extern.sty231
-rw-r--r--usergrps/dante/dtk/dtk-full.clo553
-rw-r--r--usergrps/dante/dtk/dtk-logos.sty150
-rw-r--r--usergrps/dante/dtk/dtk-new-engines.clo54
-rw-r--r--usergrps/dante/dtk/dtk-old-engines.clo43
-rw-r--r--usergrps/dante/dtk/dtk-ruecken.tex19
-rw-r--r--usergrps/dante/dtk/dtk-url.sty183
-rw-r--r--usergrps/dante/dtk/dtk.bbx248
-rw-r--r--usergrps/dante/dtk/dtk.cbx21
-rw-r--r--usergrps/dante/dtk/dtk.cls601
-rw-r--r--usergrps/dante/dtk/dtk.nolig20
-rw-r--r--usergrps/dante/dtk/dtk.xdy49
-rw-r--r--usergrps/dante/dtk/dtk0.tex9
19 files changed, 2603 insertions, 0 deletions
diff --git a/usergrps/dante/dtk/README.md b/usergrps/dante/dtk/README.md
new file mode 100644
index 0000000000..61c46abddc
--- /dev/null
+++ b/usergrps/dante/dtk/README.md
@@ -0,0 +1,5 @@
+# dtk
+
+LaTeX class for the journal »Die TeXnische Komödie« (new implementation).
+
+Rolf Niepraschk <Rolf.Niepraschk@gmx.de> and Herbert Voss <Herbert@dante.de>
diff --git a/usergrps/dante/dtk/doc/beispiel.bib b/usergrps/dante/dtk/doc/beispiel.bib
new file mode 100644
index 0000000000..93e0b67ea9
--- /dev/null
+++ b/usergrps/dante/dtk/doc/beispiel.bib
@@ -0,0 +1,34 @@
+@Book{voss:2012,
+ author = {Herbert Voß},
+ title = {PSTricks -- Grafik für {\TeX} und {\LaTeX}},
+ edition = {6},
+ publisher = {DANTE -- Lehmanns Media},
+ date = {2012},
+ address = {Heidelberg/""Berlin}
+}
+
+@ctan{pakin:2008,
+ Title = {The Comprehensive {\LaTeX} Symbol list},
+ Author = {Pakin, Scott},
+ Organization = {CTAN},
+ url = {/info/symbols/comprehensive/symbol-a4.pdf},
+ date = {2008},
+}
+
+@ctan{europecv,
+ author = {Nicola Vitacolonna},
+ sorttitle={europecv},
+ title = {\texttt{europecv}: an unofficial class for European curricula},
+ ctanurl = {macros/latex/contrib/europecv/},
+ date = {2006-04-24},
+ urldate = {2016-03-07},
+}
+
+@online{ep1,
+ author = {Bundesinstitut für Berufsbildung},
+ sortname ={Bundesinstitut},
+ title = {\texttt{europass} Deutschland},
+ sorttitle={europass},
+ url = {http://www.europass-info.de},
+ urldate = {2016-03-07}
+}
diff --git a/usergrps/dante/dtk/doc/beispiel.pdf b/usergrps/dante/dtk/doc/beispiel.pdf
new file mode 100644
index 0000000000..af7a74e821
--- /dev/null
+++ b/usergrps/dante/dtk/doc/beispiel.pdf
Binary files differ
diff --git a/usergrps/dante/dtk/doc/beispiel.tex b/usergrps/dante/dtk/doc/beispiel.tex
new file mode 100644
index 0000000000..8d45c42c75
--- /dev/null
+++ b/usergrps/dante/dtk/doc/beispiel.tex
@@ -0,0 +1,120 @@
+\documentclass[ngerman]{dtk}
+\ifluatex\else
+ \usepackage[utf8]{inputenc}
+ %\usepackage[latin9]{inputenc}
+\fi
+
+\addbibresource{beispiel.bib}
+
+\let\File\texttt
+\let\Package\texttt
+
+\begin{document}
+\title{Die \texttt{dtk}-Klasse, Version \DTKversion -- \DTKversiondate}
+\Author{Mustermann}{Max}%
+ {Dorfstraße~1\\
+ 14129 Berlin\\
+ \Email{Max.Mustermann@xyz.de}}
+\Author{Peter}{Silie}%
+ {Hauptstr.~2\\
+ 10245~Berlin\\
+ \Email{Peter.Silie@abc.de}}
+\maketitle
+
+\section{Makros}
+
+\begin{verbatim}
+\DeclareUrlCommand\File{\urlstyle{tt}}
+\providecommand\Package[1]{\texttt{#1}}
+\providecommand\Program[1]{\texttt{#1}}
+\providecommand\Command[1]{\texttt{#1}}
+\providecommand\Macro[1]{\texttt{\#1}}
+\providecommand\Environment[1]{\texttt{#1}}
+\let\Email\url
+\end{verbatim}
+
+Die Dateien \File{*.clo} beinhalten die Klassenoptionen und
+werden nur fortgeschrieben, wenn etwas Neues einzufügen ist. Das Paket
+\Package{dtk} sollte nur um wichtige Pakete ergänzt werden, die für den Inhalt
+des Manuskripts wichtig sind. Das Programm \Program{lualatex} sollte bevorzugt
+zum Übersetzen eingesetzt werden. Macros wie \Macro{texttt} müssen nicht mit
+dem Backslash angegeben werden, der wird automatisch gesetzt. Es folgen
+Beispiele mit Listings in nummerierter und in nichtnummerierter Art:
+
+\begin{lstlisting}[style=number]
+\begin{itemize}
+\item ...
+\end{itemize}
+\end{lstlisting}
+
+\begin{lstlisting}[style=noNumber]
+\begin{description}
+\item ...
+\end{description}
+\end{lstlisting}
+
+\textsf{Ubuntu} wird in serifenloser Schrift gesetzt.
+Weitere Informationen für Autoren findet man im DTK-Wiki:
+\url{http://projekte.dante.de/DanteFAQ/WebHome}.
+
+
+\section{Listen}
+\begin{itemize}
+\item Bei \Environment{itemize} werden
+die Elemente durch Punkte und andere Symbole gekennzeichnet.
+\item Listen kann man auch verschachteln:
+ \begin{itemize}
+ \item Die maximale Schachtelungstiefe ist~4.~\cite{voss:2012}
+ \item
+ Bezeichnung und Ein\-rückung der Elemente
+ wechseln automatisch.
+ \end{itemize}
+\item usw.
+\end{itemize}
+
+\begin{enumerate}
+\item Bei \Environment{enumerate} werden
+die Elemente mit Ziffern oder Buchstaben numeriert.
+\item Die Numerierung erfolgt automatisch.~\cite{pakin:2008}
+\item Listen kann man auch
+verschachteln:
+ \begin{enumerate}
+ \item Die maximale Schachtelungstiefe
+ ist~4.
+ \item Bezeichnung und Ein\-rückung der Elemente
+ wechseln automatisch.
+ \end{enumerate}
+\item usw.
+\end{enumerate}
+
+\begin{description}
+\item[Gelse:]
+ ein kleines Tier, das
+ östlich des Semmering Touristen verjagt.
+\item[Gemse:]
+ ein großes Tier, das
+ westlich des Semmering von Touristen verjagt wird.
+\item[G"urteltier:]
+ ein mittelgroßes Tier, das
+ hier nur wegen der Länge seines Namens vorkommt.
+\end{description}
+
+\section{Bibliografie}
+Die folgende Bibliografie hat nur einen
+Demonstrationscharakter.
+
+\begin{lstlisting}[style=number]
+\printbibliography
+\end{lstlisting}
+
+\nocite{*}
+\printbibliography
+
+
+\section{Quelltext}
+Zm Schluss folgt der Quelltext dieses Beispieldokumentes:
+\lstinputlisting[style=number,language={[AlLaTeX]{TeX}}]{\jobname.tex}
+
+
+\end{document}
+
diff --git a/usergrps/dante/dtk/doc/dtk-extern-test.tex b/usergrps/dante/dtk/doc/dtk-extern-test.tex
new file mode 100644
index 0000000000..d3834b616f
--- /dev/null
+++ b/usergrps/dante/dtk/doc/dtk-extern-test.tex
@@ -0,0 +1,228 @@
+\documentclass[ngerman]{dtk}
+\ifluatex\else
+ \usepackage[utf8]{inputenc}
+\fi
+
+\usepackage{dtk-extern}
+\makeatletter
+\edef\dtkFileversion{\@nameuse{ver@dtk-extern}}
+\makeatother
+\begin{document}
+\title[Externe Dokumente erzeugen]{\dtkFileversion~-- Externe Dokumente aus \LaTeX\ heraus definieren und das Ergebnis einbinden, }
+\Author{Herbert}{Voß}{\Email{herbert@dante.de}}
+\maketitle
+
+\section{Syntax}
+
+\begin{verbatim}
+\usepackage{dtk-extern}
+\end{verbatim}
+
+Das Paket wird standardmäßig bei Verwendung der Klasse \texttt{dtk} geladen.
+Externe \LaTeX-, \ConTeXt-, \ldots\ Dokumente lassen sich mit der folgenden
+Umgebung erzeugen:
+
+
+
+\begin{verbatim}
+\begin{externalDocument}[<optionale Argumente>]{<externer Dateiname ohne .tex>}
+...
+Quellcode
+...
+\end{externalDocument}
+\end{verbatim}
+
+Das Hauptdocument \emph{muss} mit der Option \texttt{-shell-escape} aufgerufen werden.
+
+
+\section{Beispiele}
+
+\begin{minipage}{.3\linewidth}
+\begin{externalDocument}[grfOptions={width=0.5\linewidth},compiler=pdflatex,force,cleanup]{Roemer1}
+\documentclass{standalone}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{libertine}
+\usepackage[linguistics]{forest}
+\forestapplylibrarydefaults{linguistics, edges}
+\begin{document}
+\begin{forest}
+[VP
+ [DP]
+ [V’
+ [V]
+ [DP]
+ ]
+]
+\end{forest}
+\end{document}
+\end{externalDocument}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+\begin{lstlisting}
+\begin{forest}
+[VP
+ [DP]
+ [V’
+ [V]
+ [DP]
+ ]
+]
+\end{forest}
+\end{lstlisting}
+\end{minipage} \quad oder \quad
+\begin{minipage}{.2\linewidth}
+\begin{lstlisting}
+\Forest*{
+[VP
+ [DP]
+ [V’
+ [V]
+ [DP]
+ ]
+]
+}
+\end{lstlisting}
+\end{minipage}
+
+
+\begin{minipage}{0.35\textwidth}
+\begin{externalDocument}[grfOptions={width=\linewidth},compiler=xelatex,
+ crop,cleanup,force]{Senger3}
+\documentclass{article}
+\usepackage{tikz}
+\usepackage[hks,pantone,xcolor]{xespotcolor}
+\pagestyle{empty}
+\begin{document}
+\SetPageColorSpace{HKS}
+\definecolor{HYellow}{spotcolor}{HKS05N,0.5}
+\definecolor{HRed}{spotcolor}{HKS14N,0.5}
+\definecolor{HBlue}{spotcolor}{HKS38N,0.5}
+\begin{tikzpicture}[scale=0.7,fill opacity=0.7]
+ \fill[HYellow] ( 90:1.2) circle (2);
+ \fill[HRed] (210:1.2) circle (2);
+ \fill[HBlue] (330:1.2) circle (2);
+ \node at ( 90:2) {Typography};
+\node at ( 210:2) {Design};
+\node at ( 330:2) {Coding};
+\node {\LaTeX};
+\end{tikzpicture}
+\end{document}
+\end{externalDocument}
+\end{minipage}
+\hfill
+\begin{minipage}{0.64\textwidth}
+\begin{lstlisting}
+\SetPageColorSpace{HKS}
+\definecolor{HYellow}{spotcolor}{HKS05N,0.5}
+\definecolor{HRed}{spotcolor}{HKS14N,0.5}
+\definecolor{HBlue}{spotcolor}{HKS38N,0.5}
+\begin{tikzpicture}[scale=0.7,fill opacity=0.7]
+\fill[HYellow]( 90:1.2) circle (2);
+\fill[HRed] (210:1.2) circle (2);
+\fill[HBlue] (330:1.2) circle (2);
+\node at ( 90:2) {Typography};
+\node at ( 210:2) {Design};
+\node at ( 330:2) {Coding};
+\node {\LaTeX};
+\end{tikzpicture}
+\end{lstlisting}
+\end{minipage}
+
+
+\section{Optionale Argumente}
+
+
+\begin{verbatim}
+ showFilename=false,% show filename in the margin
+ code=false,% show Source Code
+ crop=false,% erzeugte PDF "croppen"
+ compiler=pdflatex,% zu verwendener Compiler
+ grfOptions={},% Optionen der einzubindenden Grafik
+ lstOptions={},% Optionen für das Listing
+ includegraphic=true,% Grafik einbinden oder User überlassen
+ runs=1,% Anzahl Compiler-Durchläufe
+ runsequence={},% Im Moment nicht aktiv
+ biber=false,% Biber laufen lassen?
+ force=false,% Compiler, auch wenn PDF existiert?
+ frame=false,% keinen Rahmen um Abbildung
+ float=false,% nicht als Gleitumgebung
+ caption=,% keine Caption
+ label=,% kein Label
+ pages=1,% welche Seiten auszugeben sind
+ docType=latex,% LaTeX example Code
+\end{verbatim}
+
+\begin{externalDocument}[
+ grfOptions={width=0.48\linewidth},
+ pages={1,3},
+ frame,compiler=pdflatex,
+ showFilename,
+% crop,
+ force,runs=2,code,docType=latex,
+ frame,
+ lstOptions={columns=fixed}]{Schubert-A}
+%StartVisiblePreamble
+\documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook}
+\DeclareNewSectionCommand[
+ style=section,
+ level=4,
+ beforeskip=-3.25ex plus -1ex minus -.2ex,
+ afterskip=1.5ex plus .2ex,
+ font=\normalsize,
+ indent=0pt,
+ counterwithin=subsubsection
+]{subsubsubsection}
+\RedeclareSectionCommand[
+ level=5,
+ toclevel=5,
+ tocindent=13em,
+ tocnumwidth=5.9em,
+ counterwithin=subsubsubsection
+]{paragraph}
+\RedeclareSectionCommand[
+ level=6,
+ toclevel=6,
+ tocindent=15em,
+ tocnumwidth=6.8em
+]{subparagraph}
+\setcounter{secnumdepth}{\subsubsubsectionnumdepth}
+\setcounter{tocdepth}{\subsubsubsectiontocdepth}
+%StopVisiblePreamble
+\usepackage[ngerman]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{libertine}
+\usepackage{blindtext}
+\begin{document}
+\tableofcontents
+\chapter{Einführung}
+\section{Ein Abschnitt}
+\subsection{Ein Unterabschnitt}
+\subsubsection{Ein Unter-Unterabschnitt}
+\subsubsubsection{Ein Unter-Unter-Unterabschnitt}
+\paragraph{Der normale Paragraph}
+\blindtext
+\subparagraph{Der normale Unterparagraph}
+\blindtext
+\blinddocument
+\end{document}
+\end{externalDocument}
+
+
+\section{Ausgabe des Quellcodes}
+Die Ausgabe des Quellcodes erzeugt im Allgemeinen partiell. Die beiden Marker
+
+\begin{verbatim}
+[...]
+%StartVisiblePreamble
+[... auszugebene Präambelteil]
+%StopVisiblePreamble
+[...]
+\end{verbatim}
+
+begrenzen den Teil der ausgegeben werden soll. Aus dem Textkörper wird alles
+zwischen \verb|\begin{document}| und \verb|\end{document}| ausgegeben.
+
+\end{document}
+
+
diff --git a/usergrps/dante/dtk/dtk-author.clo b/usergrps/dante/dtk/dtk-author.clo
new file mode 100644
index 0000000000..f2c896d216
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-author.clo
@@ -0,0 +1,35 @@
+%% This is file `dtk-full.clo',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\ProvidesFile{dtk-author.clo}%
+ [2016/02/15 v0.1b dtk class options for author mode (RN)]
+
+\newcommand*\keywords[1]{}
+\newcommand*\AutorenListe{}
+\let\maketitle=\DTK@maketitle
+%\let\tableofcontents=\relax
+
+\let\DTK@@Author=\DTK@Author@article
+
+% Falls \bibliography{...} in traditioneller Weise nach \begin{document}.
+% (2xLaTeX-Lauf + biber + 1xLaTeX-Lauf)
+\AfterEndPreamble{%
+ \renewcommand*\bibliography[1]{%
+ \immediate\write\@mainaux{\string\bibliography{#1}}%
+ \printbibliography[heading=dtk]
+ }%
+}%
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk-extern.sty b/usergrps/dante/dtk/dtk-extern.sty
new file mode 100644
index 0000000000..f9f63c0df7
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-extern.sty
@@ -0,0 +1,231 @@
+%% This is file `dtk-extern.sty',
+%%
+%% LaTeX package for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2016-19
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\ProvidesFile{dtk-extern}%
+ [2019/08/09 v0.13: dtk package for running external documents (HV)]
+
+\RequirePackage{shellesc,filecontents,xkeyval,graphicx,marginnote,fancyvrb}
+
+\newcounter{dtk@extern@runs}
+\newlength\dtk@extern@mpwidth \setlength\dtk@extern@mpwidth{\z@}
+
+\define@key{dtk}{compiler}[pdflatex]{\def\dtk@extern@compiler{#1}}
+\define@key{dtk}{runsequence}[]{\def\dtk@extern@runsequence{#1}}
+\define@key{dtk}{runs}[1]{\setcounter{dtk@extern@runs}{#1}}
+\define@key{dtk}{grfOptions}[]{\def\dtk@extern@grfOptions{#1}}
+\define@key{dtk}{lstOptions}[]{\def\dtk@extern@lstOptions{#1}}
+\define@key{dtk}{docType}[latex]{\def\dtk@extern@docType{#1}}
+\define@key{dtk}{caption}[]{\def\dtk@extern@caption{#1}}
+\define@key{dtk}{label}[]{\def\dtk@extern@label{#1}}
+\define@key{dtk}{pages}[1]{\def\dtk@extern@pages{#1}}
+\define@key{dtk}{mpwidth}[0pt]{\setlength\dtk@extern@mpwidth{#1}}
+\define@boolkey{dtk}[dtk@extern@]{usefancyvrb}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{showFilename}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{code}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{force}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{crop}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{biber}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{xindex}[true]{}
+\define@key{dtk}{xindexOptions}[]{\def\dtk@extern@xindexOptions{#1}}
+\define@boolkey{dtk}[dtk@extern@]{includegraphic}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{inline}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{frame}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{float}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{cleanup}[true]{}
+\define@boolkey{dtk}[dtk@extern@]{copyToExampleDir}[true]{}
+\define@key{dtk}{align}[\centering]{\def\dtk@extern@align{#1}}
+\define@key{dtk}{ExamplesDir}[Examples]{\def\dtk@extern@ExamplesDir{#1}}
+
+\def\ResetKeys{%
+ \setkeys{dtk}{
+ showFilename=false,% Dateinamen im Rand angeben
+ code=false,% show Code
+ crop=false,% erzeugte PDF "croppen"
+ compiler=pdflatex,% zu verwendener Compiler
+ grfOptions={},% Optionen der einzubindenden Grafik
+ lstOptions={},% Optionen für das Listing
+ includegraphic=true,% Grafik einbinden oder User überlassen
+ inline=false,% Grafik nicht in derselben Zeile
+ runs=1,% Anzahl Compiler-Durchläufe
+ runsequence={},% Im Moment nicht aktiv
+ biber=false,% Biber laufen lassen?
+ xindex=false,% xindex laufen lassen?
+ xindexOptions={},% options for xindex
+ force=false,% Compiler, auch wenn PDF existiert?
+ frame=false,% keinen Rahmen um Abbildung
+ float=false,% nicht als Gleitumgebung
+ caption=,% keine Caption
+ label=,% kein Label
+ pages=1,% welche Seiten auszugeben sind
+ docType=latex,% LaTeX example Code
+ cleanup=false,% Hilfsdateien nicht löschen
+ copyToExampleDir,% Kopie nach ExamplesDir
+ ExamplesDir=Examples,% Unterverzeichnis für Beispiele
+ align=\centering,% Ausgabe zentrieren
+ mpwidth=0pt,% no minipage
+ usefancyvrb=false,% use VerbatimInput instead of listings
+ }
+}
+\ResetKeys
+
+{\catcode`\%=12
+ \gdef\perCent{%}
+ \gdef\DoubleperCent{%%}
+}
+
+\newcounter{dtk@example@counter}
+
+\newcommand\extern@ExampleType[5]{%
+ \ifdtk@extern@usefancyvrb
+ \@namedef{#1@initText}{\gdef\FancyVerbStartString{#2}\gdef\FancyVerbStopString{#3}}% text
+ \@namedef{#1@initPreamble}{\gdef\FancyVerbStartString{#4}\gdef\FancyVerbStopString{#5}}% code
+ \else
+ \@namedef{#1@initText}{linerange=#2-#3,includerangemarker=false}% text
+ \@namedef{#1@initPreamble}{linerange=#4-#5,includerangemarker=false}% code
+ \fi
+}
+
+\extern@ExampleType{latex}% #1
+ {\string\begin\string{document\string}}% #2
+ {\string\end\string{document\string}}% #3
+ {\perCent StartVisiblePreamble}% #4
+ {\perCent StopVisiblePreamble}% #5
+
+\extern@ExampleType{context}
+ {\string\starttext}
+ {\string\stoptext}
+ {\perCent StartVisiblePreamble}
+ {\perCent StopVisiblePreamble}
+
+%%
+%% [#1]: Optionen #2: Dateiname
+%%
+\newenvironment{ErstelleGrafik}[2][]{%
+ \xdef\dtkExternDateiname{#2-\arabic{dtk@example@counter}}%
+ \typeout{Externer Dateiname: \dtkExternDateiname}%
+ \global\setkeys{dtk}{#1}% \begin
+ \expandafter\IfFileExists\expandafter{\dtkExternDateiname.pdf}{}{\setkeys{dtk}{force}}%
+ \begingroup
+ \@nameuse{filecontents*}{\dtkExternDateiname.tex}
+ }
+ {\@nameuse{endfilecontents*}% \end
+ \ifdtk@extern@copyToExampleDir
+ \ShellEscape{cp\space\dtkExternDateiname.tex \dtk@extern@ExamplesDir/}%
+ \fi
+ \global\stepcounter{dtk@example@counter}%
+ \endgroup
+ \ifdtk@extern@force
+ \loop\ifnum\thedtk@extern@runs>0
+ \typeout{Run: \thedtk@extern@runs\space \dtk@extern@compiler\space\dtkExternDateiname}%
+ \ShellEscape{\dtk@extern@compiler\space\dtkExternDateiname}%
+ \addtocounter{dtk@extern@runs}{-1}%
+ \repeat
+ \fi
+ \ifdtk@extern@code
+ \ifdim\dtk@extern@mpwidth>\z@ \minipage[t]{\dtk@extern@mpwidth}\vspace{0pt}\fi
+ \expandafter\edef\expandafter\dtk@lst@options@preamble\expandafter{%
+ \@nameuse{\dtk@extern@docType @initPreamble},
+ \dtk@extern@lstOptions,
+ backgroundcolor=\noexpand\color{black!12}}%
+ \ifdtk@extern@usefancyvrb
+ \expandafter\VerbatimInput\expandafter[\dtk@lst@options@preamble]{\dtkExternDateiname}%
+ \else
+ \expandafter\lstinputlisting\expandafter[\dtk@lst@options@preamble]{\dtkExternDateiname}%
+ \fi
+ \ifdtk@extern@showFilename
+ \marginnote{\rotatebox{90}{\dtkExternDateiname}}%[-15mm]%
+ \fi
+%
+ \expandafter\edef\expandafter\dtk@lst@options@text\expandafter{%
+ \@nameuse{\dtk@extern@docType @initText},
+ \dtk@extern@lstOptions,
+ backgroundcolor=\noexpand\color{black!8}}%
+% \typeout{\dtk@lst@options@text}
+ \ifdtk@extern@usefancyvrb
+ \expandafter\VerbatimInput\expandafter[\dtk@lst@options@text]{\dtkExternDateiname}%
+ \else
+ \expandafter\lstinputlisting\expandafter[\dtk@lst@options@text]{\dtkExternDateiname}%
+ \fi
+ \ifdim\dtk@extern@mpwidth > \z@\relax \endminipage\fi
+ \fi
+ \expandafter\IfFileExists\expandafter{\dtkExternDateiname.pdf}%
+ {\ifdtk@extern@force
+ \ifdtk@extern@biber
+ \ShellEscape{biber \dtkExternDateiname}% NAch biber nochmal latex
+ \ShellEscape{\dtk@extern@compiler\space\dtkExternDateiname}%
+ \fi
+ \ifdtk@extern@xindex
+ \ShellEscape{xindex \dtk@extern@xindexOptions\space \dtkExternDateiname.idx}% NAch xindex nochmal latex
+ \ShellEscape{\dtk@extern@compiler\space\dtkExternDateiname}%
+ \fi
+ \ifdtk@extern@crop
+ \ShellEscape{pdfcrop \dtkExternDateiname}%
+ \ShellEscape{mv \dtkExternDateiname-crop.pdf \dtkExternDateiname.pdf}%
+ \fi
+ \fi
+ }{}
+ \ifdtk@extern@code\else
+ \ifdtk@extern@showFilename
+ \marginnote{\rotatebox{90}{\dtkExternDateiname}}%
+ \fi
+ \fi
+%
+ \ifdtk@extern@includegraphic
+ \ifdtk@extern@float
+ \begin{figure}[!htb]
+ \else
+ \ifdim\dtk@extern@mpwidth>\z@
+ \hfill\minipage[t]{\dimexpr\linewidth-\dtk@extern@mpwidth-1em\relax}\vspace{0pt}
+ \else
+ \ifdtk@extern@inline\else\par\fi\begingroup
+ \fi
+ \fi
+ \dtk@extern@align
+ \ifdtk@extern@frame
+ \expandafter\@for\expandafter\next\expandafter:\expandafter=\dtk@extern@pages\do{%
+ \fbox{\expandafter\includegraphics\expandafter[\dtk@extern@grfOptions,page=\next]{\dtkExternDateiname}}%
+ \hspace{5pt}}\hspace*{-5pt}
+% \fbox{\expandafter\includegraphics\expandafter[\dtk@extern@grfOptions]{\dtkExternDateiname}}%
+ \else
+ \expandafter\@for\expandafter\next\expandafter:\expandafter=\dtk@extern@pages\do{%
+ \expandafter\includegraphics\expandafter[\dtk@extern@grfOptions,page=\next]{\dtkExternDateiname}%
+ \hspace{5pt}}\hspace*{-5pt}
+% \expandafter\includegraphics\expandafter[\dtk@extern@grfOptions]{\dtkExternDateiname}%
+ \fi
+ \ifx\dtk@extern@caption\@empty\else\caption{\dtk@extern@caption}\fi
+ \ifx\dtk@extern@label\@empty\else\label{\dtk@extern@label}\fi
+ \ifdtk@extern@float
+ \end{figure}
+ \else
+ \ifdim\dtk@extern@mpwidth>\z@
+ \endminipage
+ \else
+ \par\endgroup
+ \fi
+ \fi
+ \fi
+ \ifdtk@extern@cleanup
+ \ShellEscape{rm \dtkExternDateiname.log}%
+ \ShellEscape{rm \dtkExternDateiname.aux}%
+ \ShellEscape{rm \dtkExternDateiname.toc}%
+% \ShellEscape{rm \dtkExternDateiname.log}%
+ \fi
+ \global\ResetKeys}
+\stepcounter{dtk@example@counter}%
+%
+\let\externalDocument\ErstelleGrafik
+\let\endexternalDocument\endErstelleGrafik
+%%
+\endinput
diff --git a/usergrps/dante/dtk/dtk-full.clo b/usergrps/dante/dtk/dtk-full.clo
new file mode 100644
index 0000000000..86e74bf3f1
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-full.clo
@@ -0,0 +1,553 @@
+%% This is file `dtk-full.clo',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\ProvidesFile{dtk-full.clo}%
+ [2019/04/22 v0.1m dtk class options for full mode (RN)]
+
+\@ifclasslater{scrbook}{2015/09/29}{}{%
+ \ClassError{dtk2}{%
+ Die geladene Version der Dokumentenklasse `scrbook' \MessageBreak
+ (\KOMAScriptVersion) ist zu alt. \MessageBreak
+ Gefordert ist die Version 2015/09/29 oder jünger. \MessageBreak
+ Abbruch}{}%
+}
+
+\RequirePackage{xcolor,multicol,graphicx,tabularx}
+\edef\pdfcreationdate{\pdfcreationdate}
+% weil datetime2 inkompatible zu LuaTeX 0.95/luatex85,
+% standardmäßig ungünstige Defionition in luatex85
+\RequirePackage[showzone=false]{datetime2}
+
+\newcommand*\AutorenListenName{Autoren/Organisatoren} % auch »Stichwortverzeichnis«?
+\newcommand*\DTK@fancyJournalname{%
+ \color{DTK@fancy}Die \color{black}\TeX\color{DTK@fancy}nische Kom\"odie}
+\newcommand*\DTK@keywords{}
+\newcommand*\keywords[1]{\gdef\DTK@keywords{#1}}
+
+\newcommand*\DTKissueTOmonth[1]{\numexpr#1*3-1\relax}
+
+\ifnum\DTKissue=\z@
+ \def\DTKmonth{0}%
+ \def\DTKmonthName{?????}%
+\else
+ \ifnum\DTKmonth=\z@
+ \edef\DTKmonth{\DTKissueTOmonth{\DTKissue}}%
+ \fi
+ \edef\DTKmonthName{\DTMgermanmonthname{\DTKmonth}}%
+\fi
+\edef\DTKdate{\DTKissue/\DTKyear}%
+\edef\DTKvolume{\the\numexpr\DTKyear-1989+1\relax}%
+\edef\DTKfullIssue{\DTKvolume. Jahrgang\quad
+ Heft \DTKissue/\DTKyear\quad \DTKmonthName\ \DTKyear}%
+\ifDTK@korr@
+ \edef\DTKcorrVersion{\noexpand\normalfont
+ \noexpand\fcolorbox{black}{DTK@marker}{Korrekturversion: \DTMnow}}%
+ \overfullrule=5pt %
+\fi
+
+\@ifundefined{@LN}{\let\@LN=\@gobbletwo}{}%
+% Wegen .aux-Datei von vorherigem lineno-Lauf
+
+\newcommand*\DTK@backside{%
+ \begingroup
+ \chardef\backside15 %
+ \ch@ck7\backside\write
+ \immediate\openout\backside dtk-ruecken.dat\relax
+ \let\protect=\noexpand
+ \immediate\write\backside{\journalname\space\DTKdate}%
+ \immediate\closeout\backside\relax%
+ \endgroup
+}
+
+\newcommand*\DTK@embedded@begindocumenthook{}
+\newcommand*\AtEmbeddedBeginDocument{%
+ \g@addto@macro\DTK@embedded@begindocumenthook}
+\newcommand*\DTK@embedded@enddocumenthook{}
+\newcommand*\AtEmbeddedEndDocument{%
+ \g@addto@macro\DTK@embedded@enddocumenthook}
+\newcommand*\DTK@local@inputname{}
+\newcommand*\DTK@eat@version[1][]{\ignorespaces}
+\newcommand*\DTK@usepackage[2][]{%
+ \@ifnextchar[%]
+ {\DTK@@usepackage{#1}{#2}}%
+ {\DTK@@usepackage{#1}{#2}[]}%
+}%
+\newcommand*\DTK@RequirePackage[2][]{%
+ \@ifnextchar[%]
+ {\DTK@@RequirePackage{#1}{#2}}%
+ {\DTK@@RequirePackage{#1}{#2}[]}%
+}%
+\newcommand*\DTK@@usepackage{}
+\newcommand*\DTK@@RequirePackage{}
+\newcommand*\DTK@documentclass[2][]{%
+ \DTK@eat@version
+}
+
+\newcounter{artcounter}
+
+\ifDTKrecord
+ % Testlauf zum Aufsammeln von Paket- und bib-Dateinamen
+ \@ifdefinable\user@usepackages{%
+ \newwrite\user@usepackages
+ \immediate\openout\user@usepackages dtk-userpackages.tex\relax
+ \immediate\write\user@usepackages{%
+ \@percentchar\space *** \DTMnow\space ***}%
+ \AtEndDocument{\immediate\closeout\user@usepackages\relax}%
+ }
+ \@ifdefinable\user@requirepackages{%
+ \newwrite\user@requirepackages
+ \immediate\openout\user@requirepackages dtk-requirepackages.tex\relax
+ \immediate\write\user@requirepackages{%
+ \@percentchar\space *** \DTMnow\space ***}%
+ \AtEndDocument{\immediate\closeout\user@requirepackages\relax}%
+ }
+ \@ifdefinable\user@bibs{%
+ \newwrite\user@bibs
+ \immediate\openout\user@bibs dtk-userbibs.tex\relax
+ \immediate\write\user@bibs{%
+ \@percentchar\space *** \DTMnow\space ***}%
+ \AtEndDocument{\immediate\closeout\user@bibs\relax}%
+ }
+ \renewcommand*\printbibliography[1][]{}%
+ \newcommand*\DTK@addbibresource[2][]{%
+ \@ifundefined{BIBS:\the\c@artcounter}{%
+ \def\DTK@tempa{}%
+ \expandafter\let\csname BIBS:\the\c@artcounter\endcsname\@empty
+ }{\def\DTK@tempa{,}}%
+ % Collect all bib filenames as comma list for \newrefsection
+ \expandafter\g@addto@macro\csname BIBS:\the\c@artcounter
+ \expandafter\endcsname\expandafter{\DTK@tempa #2}%
+ \immediate\write\user@bibs{%
+ \string\addbibresource\ifx\relax#1\relax\else[#1]\fi{#2}%
+ \@percentchar\space \DTK@local@inputname
+ }%
+ }%
+ \def\DTK@@usepackage#1#2[#3]{%
+ \edef\@tempb{\zap@space#2 \@empty}%
+ \@for\@tempa:=\@tempb\do{%
+ \let\DTK@tempa=\@empty
+ \ifstr{\@tempa}{inputenc}{\let\DTK@tempa=\@percentchar}{%
+ \ifstr{\@tempa}{fontenc}{\let\DTK@tempa=\@percentchar}{}}%
+ \immediate\write\user@usepackages{%
+ \DTK@tempa\string\usepackage\ifx\relax#1\relax\else[#1]\fi{\@tempa}%
+ \ifx\relax#3\relax\else[#3]\fi\@percentchar\space \DTK@local@inputname
+ }%
+ }%
+ \ignorespaces
+ }%
+ \def\DTK@@RequirePackage#1#2[#3]{%
+ \edef\@tempb{\zap@space#2 \@empty}%
+ \@for\@tempa:=\@tempb\do{%
+ \immediate\write\user@requirepackages{%
+ \string\RequirePackage\ifx\relax#1\relax\else[#1]\fi{\@tempa}%
+ \ifx\relax#3\relax\else[#3]\fi\@percentchar\space \DTK@local@inputname
+ }%
+ }%
+ \ignorespaces
+ }%
+ \let\DTK@@Author=\DTK@Author
+ \newcommand*\AutorenListe{}%
+ \let\tableofcontents=\relax
+ \renewcommand\maketitle[1][]{}%
+\else
+ \AtEndOfClass{%
+ \InputIfFileExists{dtk-userpackages.tex}{%
+ \typeout{*************************************^^J%
+ * File `dtk-userpackages.tex' used.^^J%
+ *************************************}%
+ }{}%
+ \InputIfFileExists{dtk-userbibs.tex}{%
+ \typeout{*************************************^^J%
+ * File `dtk-userbibs.tex' used.^^J%
+ *************************************}%
+ }{}%
+ \shorthandon{"}%
+ }%
+ \AtBeginDocument{\DTK@backside}%
+ \def\DTK@@usepackage#1#2[#3]{}%
+ \def\DTK@@RequirePackage#1#2[#3]{}%
+ \newcommand*\DTK@addbibresource[2][]{}%
+ \newcommand*\ORIG@printbibliography{}
+ \let\ORIG@printbibliography=\printbibliography
+ \renewcommand*\printbibliography[1][]{\ORIG@printbibliography[heading=dtk]%
+ \global\let\bbx@lasthash=\relax
+ }
+ \RequirePackage[split,protected]{splitidx} \makeindex
+ \newindex[\AutorenListenName]{autoren}%
+ \newcommand*\AutorenListe{%
+ \clearpage
+ \begingroup
+ %\language\langwohyphens
+ \renewenvironment{theindex}{\theAutoren}{\endtheAutoren}%
+ \printindex[autoren]%
+ \endgroup
+ }%
+ \RequirePackage{trimspaces}
+ \newcommand\DTK@Author@list[3]{% TODO: Auch "!" und "|" maskieren?
+ \begingroup
+ \setbox\DTK@tempbox\hbox{\trim@spaces{#3}}%
+ \def\Email##1{\escape@atsign##1\relax}% herausziehen?!
+ \def\escape@atsign##1@##2\relax{%
+ \noexpand\Email\string{##1\string"@##2\string}%
+ }%
+ \makeatletter
+ \ifdim\wd\DTK@tempbox>\z@
+ \scantokens{\protected@edef\x{%
+ \noexpand\sindex[autoren]{#2#1@#1 #2!#3}}\@empty}%
+ \x
+ \else
+ \ifDTK@korr@
+ \sindex[autoren]{#2#1@#1 #2!\textcolor{red}{\huge???}}%
+ \else
+ \sindex[autoren]{#2#1@#1 #2!\relax}%
+ \fi
+ \fi
+ \endgroup
+ }%
+ \newcommand*\DTK@Update@Author@index[3]{%
+ % Paket "everyhook"?
+ % Erst zu Beginn des nächsten Absatzes (hmode) Index-Befehle ausführen
+ \g@addto@macro\DTK@Author@list@content{\DTK@Author@list{#1}{#2}{#3}}%
+ \everypar=\expandafter{\the\everypar\DTK@Author@list@exec}%
+ }
+ % Sternversion: keine Ausgabe der Autoren, nur Index ergänzen
+ \let\DTK@Author=\DTK@Update@Author@index
+ % Normale Version
+ \newcommand\DTK@@Author[3]{%
+ \DTK@Author@article{#1}{#2}{#3}% Ausgabe der Autoren wie im Autor-Modus
+ \DTK@Update@Author@index{#1}{#2}{#3}%
+ }
+ \renewcommand\maketitle[1][]{%
+ \thispagestyle{dtk-title}%
+ \global\let\maketitle=\DTK@maketitle
+ \null\newpage
+ }%
+\fi
+
+%%% Laden eines Einzeldokuments
+\newcommand*\DTKinput[1]{%
+ \setcounter{dtk@example@counter}{1}%
+ \stepcounter{artcounter}%
+ \begingroup
+ \filename@parse{#1}%
+ \edef\jobname{\filename@base}%
+ \@ifundefined{filename@ext}%
+ {\IfFileExists{\jobname.tex}%
+ {\edef\DTK@local@inputname{\jobname.tex}}{}}%
+ {\edef\DTK@local@inputname{#1}}%
+ \let\AtBeginDocument=\AtEmbeddedBeginDocument
+ \let\AtEndDocument=\AtEmbeddedEndDocument
+ \let\DTK@embedded@begindocumenthook=\@empty
+ \let\DTK@embedded@enddocumenthook=\@empty
+ \let\pagestyle=\@gobble
+ \let\thispagestyle=\@gobble
+ \let\listfiles=\relax
+ \let\nofiles=\relax
+ \let\documentclass=\DTK@documentclass
+ \let\usepackage=\DTK@usepackage
+ \let\RequirePackage=\DTK@RequirePackage
+ \let\addbibresource=\DTK@addbibresource
+ \c@footnote=\z@
+ \c@lstlisting=\z@
+ \c@figure=\z@
+ \c@table=\z@
+ \c@equation=\z@
+ \renewenvironment{document}{%
+ \ifDTKrecord
+ % Write the definition of the complete bib filename list
+ \@ifundefined{BIBS:\the\c@artcounter}{}{%
+ \immediate\write\user@bibs{%
+ \string\@namedef{BIBS:\the\c@artcounter}%
+ {\csname BIBS:\the\c@artcounter\endcsname}%
+ \@percentchar\space \DTK@local@inputname
+ }%
+ }%
+ \endgroup\expandafter\endinput
+ \fi
+ \DTK@embedded@begindocumenthook\ignorespaces
+ }{%
+ \DTK@embedded@enddocumenthook\endinput
+ }%
+ \@ifundefined{BIBS:\the\c@artcounter}{%
+ \input{\DTK@local@inputname}%
+ }{%
+ \expandafter\newrefsection\expandafter
+ [\csname BIBS:\the\c@artcounter\endcsname]%
+ \input{\DTK@local@inputname}%
+ \endrefsection
+ }%
+ \endgroup
+}
+
+\let\indexspace=\relax
+\renewcommand*\idx@heading{%
+ \chapter{\indexname}%
+ \ifx\index@preamble\relax
+ \else\index@preamble\let\index@preamble=\relax\fi
+}%
+\def\DTK@scan@item#1\subitem#2\relax#3\@nil{%
+ \def\DTK@tempa{#1}\def\DTK@tempb{#2}\def\DTK@tempc{#3}%
+}
+\newenvironment{theAutoren}{%
+ \columnseprule=\z@ \columnsep=10\p@
+ \begin{multicols}{2}[\idx@heading]%
+ \makeatletter
+ \parindent\z@
+ \setlength{\parskip}{\z@ \@plus .3\p@}%
+ \setlength{\parfillskip}{\z@ \@plus 1fil}%
+ \raggedright
+ \def\item##1\@nil{\DTK@scan@item##1\@nil
+ \par\parbox{\columnwidth}{%
+ \textbf{\DTK@tempa}\hfill[\DTK@tempc]\par\DTK@tempb
+ }%
+ \par\bigskip
+ }%
+}{%
+ \end{multicols}%
+}
+
+\newcommand*\DTK@toc@head{%
+ \raisebox{0mm}[0pt][0pt]{%
+ \parbox[t]{\textwidth}{%
+ \normalfont\nointerlineskip
+ \begingroup
+ \Huge\raggedright
+ \DTK@fancyJournalname \\
+ \endgroup
+ \addvspace{\dimexpr5mm-\baselineskip}%
+ \rule{\textwidth}{2pt}\\[0.5mm]%
+ \begingroup
+ \footnotesize\raggedleft
+ \DTKfullIssue \\
+ \endgroup
+ }%
+ }%
+}
+
+\RequirePackage{picture}
+
+\DeclareNewLayer[page,background,mode=picture,contents={%
+ \put(24mm,0.5\dimexpr\layerheight\relax){%
+ \makebox(0,0)[c]{\rotatebox[origin=c]{90}{%
+ \resizebox{14cm}{!}{\Huge\DTK@fancyJournalname}}}%
+ \put(8mm,0){\makebox(0,0)[c]{\rule{0.85mm}{\textheight}}}%
+ }%
+ \put(52mm,145mm){%
+ \parbox[t]{78mm}{%
+ \raggedleft
+ \Huge\dantelogo \\
+ \Large Deutschsprachige \\
+ Anwendervereinigung \TeX\ \eV \\
+ \addvspace{4mm}%
+ \begingroup
+ \raggedright\footnotesize
+ \DTKfullIssue \\
+ \endgroup
+ \addvspace{40mm}%
+ \makebox(0,0)[r]{\Large\DTKcorrVersion}
+ }%
+ }%
+ \put(86mm,27mm){%
+ \begingroup
+ \color[gray]{.8}\resizebox{47mm}{!}{\Huge\DTKdate}%
+ \endgroup
+ }%
+}]{dtk-title-content}
+\DeclareNewPageStyleByLayers{dtk-title}{dtk-title-content}
+
+\ifDTK@korr@% === Positionsnummern am linken Rand ===
+ \newcommand*\formatPosNumber[1]{%
+ \fbox{\ifnum\arabic{page}<10 0\fi\arabic{page}-\ifnum#1<10 0\fi\@arabic{#1}}%
+ }
+ \newcommand\makePosNumbers[2]{%
+ \fboxsep=.2em %
+ \settoheight\DTK@tempdimc{\formatPosNumber{9}}%
+ \settowidth\DTK@tempdime{\formatPosNumber{9}}%
+ \DTK@tempdimc=1.5\DTK@tempdimc
+ \DTK@tempdimd=0pt %
+ \DTK@tempdimb=#2 %
+ %%%\settowidth\DTK@tempdima{\formatPosNumber{9}}%
+ \@tempcnta=0 %
+ \@whiledim \dimexpr\DTK@tempdimd+.5\DTK@tempdimc < \textheight\do{%
+ \advance\@tempcnta 1 %
+ \DTK@tempdimb=\dimexpr\DTK@tempdimb-\DTK@tempdimc
+ \DTK@tempdimd=\dimexpr\DTK@tempdimd+\DTK@tempdimc
+ \put(\ifodd\c@page #1\else\dimexpr#1+\textwidth+1.5\DTK@tempdime\fi,%
+ \DTK@tempdimb){\formatPosNumber{\@tempcnta}}%
+ }%
+ }
+ \DeclareNewLayer[textarea,background,mode=picture,contents={%
+ \begingroup
+ \ttfamily\scriptsize\itshape
+ \settowidth\DTK@tempdimc{\formatPosNumber{99}}%
+ \DTK@tempdima=\dimexpr-.5\textwidth-\DTK@tempdimc-.1em %
+ \putC{%
+ \makePosNumbers{\DTK@tempdima}{.5\textheight}%
+ }%
+ \endgroup
+ }]{dtk-line-positions}
+ \AddLayersToPageStyle{scrheadings}{dtk-line-positions}
+ \AddLayersToPageStyle{plain.scrheadings}{dtk-line-positions}
+\fi
+
+\deftriplepagestyle{dtk-toc}%
+ {}{\DTK@toc@head}{}%
+ {}{\hfill\normalsize\DTKcorrVersion\hfill\null}{}
+
+\AtEndOfClass{%
+ \renewcommand*\l@part[2]{%
+ \begingroup
+ \addpenalty{-\@highpenalty}%
+ \usekomafont{partentry}%
+ \addvspace{0.5em plus 0pt}% space above part line
+ \@tempdima=1.5em %
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\par
+ \penalty\@highpenalty
+ \endgroup
+ \addvspace{0.2em}%
+ }
+ \renewcommand*\l@chapter[2]{% TODO: Abstände richtig? "LaTeXifizieren?
+ \begingroup
+ \usekomafont{chapterentry}%
+ \vskip \z@ \@plus.2\p@
+ \@afterindenttrue
+ \interlinepenalty\@M
+ \@tempdimb 2.5em\relax % indent
+ \advance\leftskip \@tempdimb
+ \advance\rightskip \@tempdimb
+ \noindent\hskip -\leftskip
+ \settowidth\@tempdima{\the\c@page}%
+ \hbox to\@tempdimb{\usekomafont{chapterentrypagenumber}%
+ \makebox[\@tempdima][r]{#2}\hss}%
+ #1\par
+ \endgroup
+ }
+}
+
+\setkomafont{chapterentry}{\normalfont\small}
+\setkomafont{chapterentrypagenumber}{\usekomafont{chapterentry}}
+\setkomafont{partentry}{\usekomafont{chapterentry}\bfseries}
+
+\deftocheading{toc}{%
+ \clearpage
+ \thispagestyle{dtk-toc}%
+ \vspace*{16pt}%
+ \let\\=\relax
+ \raggedright
+}
+
+\newcommand*\Part{%
+% [#1]=toc, {#2}=Überschrift, [#3]=Präambel, *=nur Strich
+ \clearpage
+ %\DTK@thispagestyle{plain.scrheadings}%
+ \@ifstar{\global\@tempswatrue\DTK@Part}{\global\@tempswafalse\DTK@Part}%
+}
+
+\newcommand\DTK@Part[2][]{%
+ \protected@xdef\DTK@tempa{\ifx\relax#1\relax
+ \noexpand\part{#2}\else\noexpand\part[#1]{#2}\fi}%
+ \DTK@@Part
+}
+
+\newcommand\DTK@@Part[1][]{%
+ \let\DTK@tempb=\partheadendvskip
+ \DTK@tempdime=10pt %
+ \if@tempswa% Strich
+ \setpartpreamble{%
+ \noindent\raisebox{\height}[\height]{\rule{\textwidth}{2pt}}%
+ }%
+ \advance\DTK@tempdime 3mm %
+ \fi
+ \ifx\relax#1\relax
+ \else% Präambel
+ \setbox0=\vbox{%
+ \noindent\raisebox{\height}[\height]{\rule{\textwidth}{2pt}}\par
+ \usekomafont{section} #1\par}%
+ \settoheight{\DTK@tempdima}{\usebox0}%
+ \settodepth{\DTK@tempdimb}{\usebox0}%
+ \advance\DTK@tempdima\DTK@tempdimb
+ \setpartpreamble{%
+ \box0
+ }%
+ \advance\DTK@tempdime \DTK@tempdima %
+ \fi
+ \def\partheadendvskip{\vskip \DTK@tempdime\par}%
+ \DTK@tempa
+ \let\partheadendvskip=\DTK@tempb
+ \vskip -5mm %
+ \leavevmode
+}
+
+\def\partheadstartvskip{% 12.0pt plus 1.0fil
+ \null\vskip-\baselineskip
+}
+
+\def\partheadendvskip{}
+\let\partheademptypage=\relax% ???
+\let\raggedpart\raggedright
+\def\partpagestyle{plain.scrheadings}
+
+% TODO: sinnhaftigkeit überprüfen; bessere Stammtisch-Umgebung?
+\newenvironment{roll}%
+ {\@ifnextchar[{\r@ll}{\r@ll[0pt]}}%
+ {\end{list}}
+\def\r@ll[#1]{\begin{list}{}{%
+ \labelwidth = #1
+ \leftmargin = \labelwidth
+ \itemsep = .3ex
+ \let\makelabel=\rolllabel}%
+ }
+\newcommand\rolllabel[1]{\hspace\labelsep \textbf{#1}\hfill}
+
+\providecommand*\InfoTeX{???}
+
+\newcommand*\MitarbeiterListe{}
+\newcommand*\ErzeugeMitarbeiterListe{%
+ \begingroup
+ \@temptokena{\begin{tabular}[t]{@{}lll@{}}}%
+ \IfFileExists{dtk-mitarbeiter.tex}{%
+ \openin\@inputcheck dtk-mitarbeiter.tex\relax
+ \endlinechar=\m@ne
+ \@tempcnta=\@ne
+ \loop%
+ \read\@inputcheck to \DTK@tempa
+ \ifx\DTK@tempa\@empty\else
+ \ifnum\@tempcnta=3\relax
+ \@tempcnta=\@ne \def\DTK@tempc{\\}%
+ \else
+ \advance\@tempcnta\@ne \def\DTK@tempc{&}%
+ \fi
+ \protected@edef\DTK@tempb{\the\@temptokena\DTK@tempa\DTK@tempc}%
+ \@temptokena\expandafter{\DTK@tempb}%
+ \fi
+ \ifeof\@inputcheck\else
+ \repeat
+ \closein\@inputcheck
+ }{%
+ \@temptokena\expandafter{\the\@temptokena ??? & ??? & ???}%
+ }
+ \@temptokena\expandafter{\the\@temptokena \end{tabular}}%
+ \xdef\MitarbeiterListe{\the\@temptokena}%
+ \endgroup
+}
+
+\ErzeugeMitarbeiterListe \let\ErzeugeMitarbeiterListe=\relax
+
+\newcommand*\DTKschriftenListe{%
+ \DTKrmFontName, \DTKsfFontName, \DTKttFontName\ und \DTKmathFontName}
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk-logos.sty b/usergrps/dante/dtk/dtk-logos.sty
new file mode 100644
index 0000000000..dd22a06822
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-logos.sty
@@ -0,0 +1,150 @@
+%% Paket fuer Logos
+%%
+%% This is file `dtk-logos.sty',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2019
+%% Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%
+%
+% -------------------------------------
+\ProvidesPackage{dtk-logos}[2019/06/05 v. 1.07 Dante Edition: Logos (hv)]
+%
+\newif\if@dtk@newengine \@dtk@newenginetrue
+\RequirePackage{ifluatex,ifxetex}
+%
+\ifluatex\else\ifxetex\else\@dtk@newenginefalse\fi\fi
+%
+\RequirePackage{fetamont}
+\RequirePackage{hologo,dantelogo,xspace}
+\if@dtk@newengine
+ \RequirePackage{unicode-math}
+ \setmathfont{LatinModernMath-Regular}
+ \setmathfont[version=XITS]{XITSMath-Regular.otf}
+\fi
+%
+\def\HoLogo@La#1{%
+ L%
+ \ifx\f@family\sfdefault\kern-.15em\else\kern-.23em\fi
+ \begingroup
+ \setbox\ltx@zero\hbox{T}%
+ \vbox to\ht\ltx@zero{%
+ \hbox{%
+ \ltx@ifundefined{check@mathfonts}{%
+ \csname sevenrm\endcsname
+ }{%
+ \check@mathfonts
+ \fontsize\sf@size{0pt}%
+ \math@fontsfalse\selectfont
+ }%
+ A%
+ }%
+ \vss
+ }%
+ \endgroup
+}
+\def\LaTeXTeX{\hologo{(La)TeX}}
+\def\AmSLaTeX{\mbox{\textsf{AMS}-\hologo{LaTeX}}}
+\def\AmSTeX{\mbox{\textsf{AMS}-\hologo{TeX}}}
+\def\biber{\hologo{biber}}
+\def\Biber{\Hologo{biber}}
+\def\BibTeX{{\hologoLogoSetup{BibTeX}{variant=sc}\hologo{BibTeX}}}
+\def\BibTeXacht{{\hologoLogoSetup{BibTeX8}{variant=sc}\hologo{BibTeX8}}}
+\def\BibTeX8{{\hologoLogoSetup{BibTeX8}{variant=sc}\hologo{BibTeX8}}}
+\def\ConTeXt{\hologo{ConTeXt}}
+\let\context\ConTeXt
+\def\emTeX{\hologo{emTeX}}
+\def\eTeX{\hologo{eTeX}}
+\def\ExTeX{\hologo{ExTeX}}
+\def\HanTheThanh{\hologo{HanTheThanh}}
+\def\iniTeX{\hologo{iniTeX}}
+\def\KOMAScript{\hologo{KOMAScript}}
+\def\LaTeX{\hologo{LaTeX}}
+\def\LaTeXe{\hologo{LaTeX2e}}
+\def\LaTeXIII{\hologo{LaTeX3}}
+\def\LaTeXML{\hologo{LaTeXML}}
+\def\LuaLaTeX{\hologo{LuaLaTeX}}
+\let\lualatex\LuaLaTeX
+\def\LuaTeX{\hologo{LuaTeX}}
+\let\luatex\LuaTeX
+\def\LyX{\hologo{LyX}}
+\def\METAFONT{\hologo{METAFONT}}
+\let\MF\METAFONT
+\def\MetaFun{\textffm{METAFUN}}
+\def\METAPOST{\hologo{METAPOST}}
+\def\MetaPost{\hologo{MetaPost}}
+\let\MP\METAPOST
+\def\MiKTeX{\hologo{MiKTeX}}
+\def\NTS{\hologo{NTS}}
+\def\OzMF{\hologo{OzMF}}
+\def\OzMP{\hologo{OzMP}}
+\def\OzTeX{\hologo{OzTeX}}
+\def\OzTtH{\hologo{OzTtH}}
+\def\PCTeX{\hologo{PCTeX}}
+\def\pdfTeX{\hologo{pdfTeX}}
+\let\pdftex\pdfTeX
+\def\pdfLaTeX{\hologo{pdfLaTeX}}
+\let\pdflatex\pdfLaTeX
+\def\PiC{\hologo{PiC}}
+\def\PiCTeX{\hologo{PiCTeX}}
+\def\plainTeX{\hologo{plainTeX}}
+\def\PostScript{PostScript}
+\let\PS\PostScript
+\def\SageTeX{\hologo{SageTeX}}
+\def\SLiTeX{\hologo{SLiTeX}}
+\def\teTeX{\hologo{teTeX}}
+\def\TeXivht{\hologo{TeX4ht}}
+\def\TTH{\hologo{TTH}}
+\def\virTeX{\hologo{virTeX}}
+\def\VTeX{\hologo{VTeX}}
+\def\XeLaTeX{\hologo{XeLaTeX}}
+\def\XeTeX{\hologo{XeTeX}}
+%%
+\def\AmS{{\ifluatex\mathversion{XITS}\fi%
+ $\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em$\mathcal{S}$}}% $
+%
+\newcommand\BibTool{\textsc{Bib\hskip-.1em
+ T\hskip-.15emo\hskip-.05emo\hskip-.05eml}\xspace}
+\providecommand\tikz{\textsf{Ti\textit{k}Z}}
+\def\ALEPH{\ensuremath{\aleph}}
+\let\TikZ\tikz
+
+\providecommand\eV{e.V\kern-0.18em\@ifnextchar.{}{.}\kern0.18em}
+\providecommand\dante{\mbox{DANTE~\eV}}
+\providecommand\Dante{DANTE,
+ Deutschsprachige Anwendervereinigung \TeX~\eV}
+\providecommand\DTK{Die \TeX\-ni\-sche Ko\-m{\"o}\-die}
+\providecommand\PS{Post\-Script}
+\providecommand\TUG{\TeX{} Users Group}
+\providecommand\TUGboat{\textsl{TUGboat}}
+\let\DANTE\dantelogo
+\def\pgf/tikz{\textsf{pgf/Ti\textit{k}Z}}
+\def\TeXLive{\TeX{}Live\xspace}
+
+\def\BibLaTeX{Bib\hologo{LaTeX}}
+\let\biblatex\BibLaTeX
+\def\CTAN{\texttt{CTAN}\xspace}
+
+\def\PSTricks{\textsf{PSTricks}\xspace}
+\let\pstricks\PSTricks
+
+\if@dtk@newengine
+ \newfontfamily\dtk@LinWikipedia{Linux Libertine O}%
+ \def\WikipediA{{\dtk@LinWikipedia\char"E02F\textsc{ikipediA}}} % hexadezimal
+\else
+ \def\WikipediA{WikipediA}%
+\fi
+\let\wikipedia\WikipediA
+%
+\def\macOS{\textsf{macOS}\xspace}
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk-new-engines.clo b/usergrps/dante/dtk/dtk-new-engines.clo
new file mode 100644
index 0000000000..97836a98d4
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-new-engines.clo
@@ -0,0 +1,54 @@
+%% This is file `dtk-new-engines.clo',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\ProvidesFile{dtk-new-engines.clo}%
+ [2016/05/17 v0.1f dtk class options for LuaTeX and XeTeX (RN)]
+
+\typeout{NEW-ENGINE}
+
+\RequirePackage{fontspec}
+\RequirePackage{unicode-math}
+
+\ifluatex
+ \RequirePackage[ngerman,noftligs]{selnolig}
+ \InputIfFileExists{dtk.nolig}{%
+ \typeout{*************************************^^J%
+ * File `dtk.nolig' used.^^J%
+ *************************************}%
+ }{}
+\fi
+
+\RequirePackage{newunicodechar}
+\newunicodechar{^^^^202f}{\,}% 'NARROW NO-BREAK SPACE'
+\newunicodechar{^^^^2009}{\,\hspace{0pt}}% 'THIN SPACE'
+\newunicodechar{^^^^00ad}{\-}% 'SOFT HYPHEN'
+\newunicodechar{^^^^20ac}{\DTK@euro}% 'EURO SIGN'
+
+\InputIfFileExists{dtk-fonts.cfg}{%
+ \typeout{*************************************^^J%
+ * File `dtk-fonts.cfg' used.^^J%
+ *************************************}%
+}{%
+ \RequirePackage{libertinus-otf}%
+ \def\DTKrmFontName{Libertinus Serif}%
+ \def\DTKsfFontName{Libertinus Sans Serif}%
+% \setmathfont{XITSMath}[Scale=0.9,math-style=TeX,bold-style=TeX]%
+ \def\DTKmathFontName{Libertinus Math}%
+ \setmonofont{AnonymousPro}[Scale=MatchLowercase,FakeStretch=0.87,
+ RawFeature=-tlig]%
+ \def\DTKttFontName{Anonymous Pro}%
+}
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk-old-engines.clo b/usergrps/dante/dtk/dtk-old-engines.clo
new file mode 100644
index 0000000000..83780fb7bd
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-old-engines.clo
@@ -0,0 +1,43 @@
+
+%% This is file `dtk-old-engines.clo',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\ProvidesFile{dtk-old-engines.clo}%
+ [2016/05/11 v0.1e dtk class options for pdfTeX/TeX+dvips (RN)]
+
+\typeout{OLD-ENGINE}
+
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{textcomp}
+\DeclareUnicodeCharacter{20AC}{\DTK@euro}
+
+\InputIfFileExists{dtk-fonts.cfg}{%
+ \typeout{*************************************^^J%
+ * File `dtk-fonts.cfg' used.^^J%
+ *************************************}%
+}{%
+ \RequirePackage[lining=true]{libertine}%
+ \def\DTKrmFontName{Linux Libertine}%
+ \def\DTKsfFontName{Linux Biolinum}%
+ \RequirePackage[scale=0.833,ttdefault=true]{AnonymousPro}%
+ \def\DTKttFontName{Anonymous Pro}%
+ %\RequirePackage[scaled=0.83]{DejaVuSansMono}%
+ %\def\DTKttFontName{DejaVu Mono}%
+ %
+ \def\DTKmathFontName{Computer Modern Math}% ???
+}
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk-ruecken.tex b/usergrps/dante/dtk/dtk-ruecken.tex
new file mode 100644
index 0000000000..edb8acc6d5
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-ruecken.tex
@@ -0,0 +1,19 @@
+\documentclass[11pt,a4paper]{article}
+\usepackage[T1]{fontenc}
+\usepackage{libertine}
+\oddsidemargin=-1in %
+\unitlength=1mm %
+\pagestyle{empty}
+\begin{document}
+\begin{picture}(210,4)
+\put(5,2){%
+ \makebox(100,0)[l]{%
+ \tiny \input{dtk-ruecken.dat}%
+ }%
+}
+\put(0,0){\line(-1,0){5}}
+\put(0,0){\line(0,-1){5}}
+\put(0,4){\line(-1,0){5}}
+\put(0,4){\line(0,1){5}}
+\end{picture}
+\end{document}
diff --git a/usergrps/dante/dtk/dtk-url.sty b/usergrps/dante/dtk/dtk-url.sty
new file mode 100644
index 0000000000..9ccccaee3b
--- /dev/null
+++ b/usergrps/dante/dtk/dtk-url.sty
@@ -0,0 +1,183 @@
+%% This is file `dtk-url.sty',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{dtk-url}[2019/07/29 v1.3 Urls for DTK (HO,hv)]
+%% 1.1, 1.2, 1.3 hv
+
+\RequirePackage{url}[2006/04/12]
+
+% Konfiguration:
+\newcommand*{\DTK@UrlSetup}{\urlstyle{tt}}
+\newcommand*{\DTK@UrlCtanSetup}{}
+\newcommand*{\DTK@UrlEmailSetup}{}
+\newcommand*{\DTK@UrlCtanPrefix}{CTAN:}
+\newcommand*{\DTK@UrlCtanServerPrefix}{https://mirror.ctan.org/}
+\newcommand*{\DTK@UrlFile}{\jobname.urls}
+
+% Schalter \ifDTK@Url@ legt fest, wann die URLs aktiv sein sollen
+\newif\ifDTK@Url@
+\ifDTK@korr@\DTK@Url@true\fi
+
+% Markup-Befehle:
+\DeclareRobustCommand*{\url}{\DTK@Url}
+\DeclareRobustCommand*{\ctanurl}{\DTK@CtanUrl}
+\DeclareRobustCommand*{\Email}{\DTK@Email}
+\let\URL\url
+\let\CTANurl\ctanurl
+
+\DeclareUrlCommand\DTK@Url{%
+ \DTK@UrlSetup
+ \def\UrlLeft{}%
+ \def\UrlRight{}%
+ \def\DTK@UrlType{url}%
+}
+\DeclareUrlCommand\DTK@CtanUrl{%
+ \DTK@UrlSetup
+ \DTK@UrlCtanSetup
+ \let\UrlLeft\DTK@UrlCtanPrefix
+ \def\UrlRight{}%
+ \let\DTK@UrlLinkPrefix\DTK@UrlCtanServerPrefix
+ \def\DTK@UrlType{ctanurl}%
+}
+\DeclareUrlCommand\DTK@Email{%
+ \DTK@UrlSetup
+ \DTK@UrlEmailSetup
+ \def\UrlLeft{}%
+ \def\UrlRight{}%
+ \def\DTK@UrlLinkPrefix{mailto:}%
+ \def\DTK@UrlType{email}%
+}
+\def\DTK@UrlType{unknown}
+
+% Implementierung
+
+\RequirePackage{pdfescape}
+
+% Currently only pdfTeX/LuaTeX in PDF mode are supported
+\RequirePackage{ifpdf}
+\ifpdf
+\else
+ % Other engines then pdfTeX and LuaTeX in PDF mode
+ % are not supported
+ \DTK@Url@false
+\fi
+
+% Ensure that the needed primitives are enabled in LuaTeX
+%% No more needed, we use the new macros hv 2016-04-23
+%\RequirePackage{ifluatex}
+%\ifluatex
+% \directlua{tex.enableprimitives('',{'pdfstartlink','pdfendlink'})}%
+%\fi
+
+\let\DTK@UrlLinkPrefix\@empty
+\ifDTK@Url@
+ \def\Url@HyperHook#1{%
+ \begingroup
+ \DTK@UrlPercent
+ \edef\#{\string##}%
+ \edef\DTK@Temp{\DTK@UrlLinkPrefix\Url@String\@empty}%
+ \@onelevel@sanitize\DTK@Temp
+ \edef\DTK@UrlRaw{\Url@String\@empty}%
+ \@onelevel@sanitize\DTK@UrlRaw
+ \edef\x{\endgroup
+ \noexpand\EdefEscapeString\noexpand\DTK@Temp{\DTK@Temp}%
+ \def\noexpand\DTK@Raw{\DTK@UrlRaw}%
+ }%
+ \x
+ \DTK@UrlWrite{\DTK@UrlType}{\DTK@Raw}%
+ \pdfstartlink attr{%
+ /H/I%
+ /C[1 0 0]% red
+ /Border[1 0 0]%
+ /BS<</S/U/W 1>>%
+ }%
+ user{%
+ /Subtype/Link
+ /A<<%
+ /Type/Action%
+ /S/URI%
+ /URI(\DTK@Temp)%
+ >>%
+ }%
+ #1%
+ \pdfendlink
+ }%
+
+ % Implement writing of file \DTK@UrlFile
+ \if@filesw
+ \RequirePackage{atveryend}%
+ \RequirePackage{embedfile}%
+ \newwrite\DTK@UrlHandle
+ \openout\DTK@UrlHandle=\DTK@UrlFile\relax
+ \begingroup
+ \count@\time
+ \divide\count@ by 60 %
+ \count2=-\count@
+ \multiply\count2 by 60 %
+ \advance\count2 \time
+ \edef\x{\endgroup
+ \write\DTK@UrlHandle{%
+ \@percentchar\space
+ \the\year-\two@digits\month-\two@digits\day
+ \space\two@digits\count@:\two@digits{\count2 }, %
+ format: <page> <type> <data>%
+ }%
+ }%
+ \x
+ \def\DTK@UrlWrite#1#2{%
+ \protected@write\DTK@UrlHandle{}{%
+ \thepage\space#1 #2%
+ }%
+ }%
+ \let\DTK@embedfilefinish\embedfilefinish
+ \let\embedfilefinish\relax
+ \AfterLastShipout{%
+ \immediate\closeout\DTK@UrlHandle
+ \IfFileExists{\DTK@UrlFile}{%
+ \embedfile[%
+ mimetype=text/plain,%
+ stringmethod=escape,%
+ desc={%
+ List of URLs found in %
+ \@backslashchar url and \@backslashchar ctanurl%
+ },%
+ ]{\DTK@UrlFile}%
+ \DTK@embedfilefinish
+ }{}
+ }%
+ \else
+ \let\DTK@UrlWrite\@gobbletwo
+ \fi
+\fi
+
+\begingroup
+ \lccode`\~=`\%
+\lowercase{\endgroup
+ \def\DTK@UrlPercent{\let~\DTK@UrlPercentCR}%
+}
+\begingroup
+ \lccode`\0=`\^^M
+\lowercase{\endgroup
+ \def\DTK@UrlPercentCR#1{%
+ \ifx0#1\@empty
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\@percentchar#1}%
+ }%
+}
+\endinput
diff --git a/usergrps/dante/dtk/dtk.bbx b/usergrps/dante/dtk/dtk.bbx
new file mode 100644
index 0000000000..381b7ab123
--- /dev/null
+++ b/usergrps/dante/dtk/dtk.bbx
@@ -0,0 +1,248 @@
+%% ---------------------------------------------------------------
+%% biblatex-dtk --- A set of biblatex implementations of
+%% dtk bibliography styles for DANTE's journal
+%% "Die TeXnische Komödie"
+%% Maintained by Herbert Voß
+%% (C) herbert@dante.de
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ---------------------------------------------------------------
+%%
+\ProvidesFile{dtk.bbx}[2018/07/11 v0.12 biblatex bibliography style for DTK]
+
+% Load the standard style to avoid copy-pasting unnecessary material
+\RequireBibliographyStyle{chem-angew}
+%\RequireBibliographyStyle{numeric}
+%\RequireBibliographyStyle{authoryear}
+
+\DeclareBibliographyOption{dashed}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{pagetracker}%
+ \newbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
+ {\newbibmacro*{bbx:savehash}{}}}
+
+\ExecuteBibliographyOptions
+ {
+ doi = true ,
+ eprint = true ,
+ giveninits = false,
+ isbn = true ,
+ maxnames = 3 ,
+ minnames = 1 ,
+% maxcitenames= 2 ,
+% pageranges = true ,
+ url = true,
+ articletitle = true,
+ chaptertitle = true,
+% biblabel = parens,
+ sorting = nyvt,
+ dashed = true,
+ datezeros = false,
+}
+
+
+\newbool{bbx@inset}
+\providebibmacro*{date+extrayear}{}
+
+
+\DeclareFieldFormat{date}{#1}
+\DeclareFieldFormat{booktitle}{#1\isdot}
+\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}\isdot}
+\DeclareFieldFormat{removecomma}{\mkbibnocomma{#1}}
+\DeclareFieldFormat{title}{#1\isdot}
+\DeclareFieldFormat[ctan]{url}{\url{CTAN: #1}}
+
+\newbibmacro*{ctanurl+urldate}{%
+ \printfield{url}
+ \iffieldundef{urlyear}
+ {}
+ {\setunit*{\addspace}%
+ \usebibmacro{urldate}}}
+
+\DeclareListFormat{language}{}{}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\printnames{author}\setunit{\addcolon\space}%
+ \iffieldundef{authortype}
+ {}
+ {\setunit{\addcolon\space}%
+ \usebibmacro{authorstrg}}}
+ {}}
+
+\renewbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addcomma\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\renewcommand*\labelnamepunct{\addcolon\addspace}
+
+\DeclareNameFormat{default}{%
+ \nameparts{#1}%
+ \usebibmacro{name:given-family}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
+% \usebibmacro{name:given-family}\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}
+ \usebibmacro{name:andothers}}
+
+\newbibmacro*{bbx:dashcheck}[2]{%
+ \ifboolexpr{%
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}
+ and
+ not test \iffirstonpage
+ and
+ (
+ not bool {bbx@inset}
+ or
+ test {\iffieldequalstr{entrysetcount}{1}}
+ )%
+ }{#1}{#2}}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\usebibmacro{bbx:savehash}%
+ \printnames{author}%
+ \iffieldundef{authortype}
+ {\setunit{\addspace}}
+ {\setunit{\addcomma\space}}}%
+ \iffieldundef{authortype}
+ {}
+ {\usebibmacro{authorstrg}%
+ \setunit{\addspace}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\addspace}}%
+ \usebibmacro{date+extrayear}}
+
+\renewcommand*\bibnamedash{\textemdash\hspace{1em}}%
+% \ifdimless{\leftmargin}{0.75em}
+% {\mbox{\textemdash\space}}
+% {\makebox[\leftmargin][l]{%
+% \ifdimless{\leftmargin}{1.25em}
+% {\textendash}
+% {\textemdash}}}}
+
+
+
+\DeclareBibliographyDriver{ctan}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct} %\newblock
+ \usebibmacro{title}%
+% \newunit
+% \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit %\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit %\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit %\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit %\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit %\newblock
+ \usebibmacro{ctanurl+urldate}%
+ \newunit %\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+%
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}%
+}
+
+
+
+
+
+%\setlength\labelnumberwidth{1.5em}
+%\setlength\biblabelsep{1em}
+\defbibenvironment{dtk@bib}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{prefixnumber}%
+ \printfield{labelnumber}}}
+ {\setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}%
+ \RaggedRight}
+ {\endlist}
+ {\item}
+
+%%
+%%
+\endinput
diff --git a/usergrps/dante/dtk/dtk.cbx b/usergrps/dante/dtk/dtk.cbx
new file mode 100644
index 0000000000..a1d0e32a16
--- /dev/null
+++ b/usergrps/dante/dtk/dtk.cbx
@@ -0,0 +1,21 @@
+%% ---------------------------------------------------------------
+%% biblatex-dtk --- A set of biblatex implementations of
+%% dtk bibliography styles for DANTE journal
+%% "Die TeXnische Komödie"
+%% Maintained by Herbert Voß
+%% (C) herbert@dante.de
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ---------------------------------------------------------------
+%%
+
+\ProvidesFile{dtk.cbx}[\abx@cbxid]
+
+%%[2015/09/21 v0.02 biblatex citation style]
+
+%\RequireCitationStyle{chem-angew}
+\RequireCitationStyle{numeric}
+%\RequireCitationStyle{authoryear}
+
+
+\endinput \ No newline at end of file
diff --git a/usergrps/dante/dtk/dtk.cls b/usergrps/dante/dtk/dtk.cls
new file mode 100644
index 0000000000..899bef376b
--- /dev/null
+++ b/usergrps/dante/dtk/dtk.cls
@@ -0,0 +1,601 @@
+%% This is file `dtk.cls',
+%%
+%% LaTeX Class for ``Die TeXnische Komoedie''.
+%%
+%% Copyright (C) 2015-
+%% Rolf Niepraschk, Herbert Voss
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\listfiles
+
+\InputIfFileExists{dtk-requirepackages.tex}{%
+ \typeout{*************************************^^J%
+ * File `dtk-requirepackages.tex' used.^^J%
+ *************************************}%
+}{}%
+
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\RequirePackage{hyphsubst}% Trennregeln austauschen
+\HyphSubstIfExists{ngerman-x-latest}{%
+ \HyphSubstLet{ngerman}{ngerman-x-latest}}{}
+\HyphSubstIfExists{german-x-latest}{%
+ \HyphSubstLet{german}{german-x-latest}}{}
+
+\def\DTKversion{2.08b}
+\def\DTKversiondate{2019/08/09}
+\ProvidesClass{dtk}[\DTKversiondate v\DTKversion dtk documentclass (RN)]
+
+\RequirePackage{ifxetex,ifluatex,ifpdf,ifvtex,luatex85}
+\newcommand*\DTK@engine{}
+
+\ifluatex
+ \def\DTK@engine{4}% LuaTeX
+\else
+ \ifxetex
+ \def\DTK@engine{3}% XeTeX
+ \else
+ \ifpdf
+ \def\DTK@engine{2}% pdfTeX
+ \else
+ \ifvtex
+ \def\DTK@engine{1}% VTeX
+ \else
+ \def\DTK@engine{0}% TeX+dvips
+ \fi
+ \fi
+ \fi
+\fi
+
+\RequirePackage{xkeyval}
+
+\newif\ifDTK@Author@ \DTK@Author@true
+\newif\ifDTKcolor \DTKcolorfalse % "@" ?
+\newif\ifDTK@korr@ \DTK@korr@false
+
+\newlength\DTK@tempdima
+\newlength\DTK@tempdimb
+\newlength\DTK@tempdimc
+\newlength\DTK@tempdimd
+\newlength\DTK@tempdime
+
+\newlength\Linewidth
+\AtBeginDocument{\Linewidth=\dimexpr\linewidth-2\fboxsep-2\fboxrule}
+
+\newcommand*\journalname{Die \protect\TeX{}nische Kom\"odie}
+
+\newcommand*\DTKyear{} \edef\DTKyear{\the\year}
+\newcommand*\DTKmonth{0}
+\newcommand*\DTKissue{0}
+\newcommand*\DTKvolume{??}
+\newcommand*\DTKdate{?/??}
+\newcommand*\DTKcorrVersion{\mbox{}}
+\newcommand*\DTKfullIssue{\mbox{}}
+\newcommand*\DTKissn{1434-5897}
+
+\DeclareOptionX{Ausgabe}{\def\DTKissue{#1}}
+\DeclareOptionX{Jahr}{\def\DTKyear{#1}}
+\DeclareOptionX{Monat}{\def\DTKmonth{#1}}
+\DeclareOptionX{korr}[true]{\csname DTK@korr@#1\endcsname}
+\DeclareOptionX{full}[true]{\csname @tempswa#1\endcsname
+ \if@tempswa\DTK@Author@false\else\DTK@Author@true\fi}
+\DeclareOptionX{color}[true]{\csname DTKcolor#1\endcsname}
+\DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+
+\DeclareOptionX*{\OptionNotUsed}
+\ProcessOptionsX\relax
+
+\PassOptionsToPackage{paper=a5,pagesize}{typearea}
+
+\newdimen\DTK@tempdima
+\newdimen\DTK@tempdimb
+\newdimen\DTK@tempdimc
+
+\newcommand*\DTK@tempa{}
+\newcommand*\DTK@tempb{}
+\newcommand*\DTK@tempc{}
+
+\newsavebox\DTK@tempbox
+
+\PassOptionsToPackage{hyphens}{url}
+\RequirePackage{dtk-url}
+
+\LoadClass[%
+,twoside
+,fontsize=10pt
+,captions=oneline
+,parskip=full-
+,headings=small
+,open=any
+,pagesize
+]{scrbook}
+
+\RequirePackage{scrhack}% Andere Pakete KOMA-Script-freundlich machen
+
+\RequirePackage{dtk-extern}
+
+% http://www.komascript.de/release3.18
+\ifstr{\KOMAScriptVersion}{2015/07/02 v3.18 KOMA-Script}{%
+ \ifx\par@update\default@par@update\else
+ \AtBeginDocument{\par@updaterelative}%
+ \fi
+}{}
+
+\AtEndOfClass{%
+ \InputIfFileExists{dtk.cfg}{}{}%
+}
+
+% *** Konstanten ***
+
+\ifDTK@Author@\else\setcounter{errorcontextlines}{100}\fi
+
+\textheight = 485pt %
+\textwidth = 333pt %
+\oddsidemargin = -35.89157pt %
+\evensidemargin = -17.70235pt %
+\marginparwidth = 1cm %
+\marginparsep = 7pt %
+\topmargin = -55.66684pt %
+\headheight = 17pt %
+\headsep = 17pt %
+\footskip = 24pt %
+\parskip = 0.3\baselineskip
+\advance\parskip by 0pt plus 2pt %
+\parindent = 0pt %
+\columnsep = 5pt %
+
+\emergencystretch = 1.5em %
+\clubpenalty = 10000 %
+\widowpenalty = 10000 %
+\raggedbottom
+
+\setcounter{secnumdepth}{\numexpr\partnumdepth-1\relax}
+\setcounter{tocdepth}{\chapternumdepth}
+
+\@fptop=\z@
+\renewcommand\topfraction{.9}
+\renewcommand\bottomfraction{.9}
+\renewcommand\textfraction{.1}
+
+\RequirePackage[english,main=ngerman]{babel}
+
+\defineshorthand{"|}{%
+ \ClassError{dtk2}{%
+ Shorthand `\string"|' wird nicht unterstützt! Entferne `\string"|'%
+ }{}%
+}
+
+\newcommand*\DTK@FontNameMissing{%
+ \ClassError{dtk2}{%
+ Eines der Makros `\string\DTKrmFontName', `\string\DTKsfFontName',
+ \MessageBreak
+ `\string\DTKttFontName' oder `\string\DTKmathFontName'
+ \MessageBreak
+ ist nicht korrekt definiert%
+ }{}%
+}
+\newcommand*\DTKrmFontName{} \let\DTKrmFontName=\DTK@FontNameMissing
+\newcommand*\DTKsfFontName{} \let\DTKsfFontName=\DTK@FontNameMissing
+\newcommand*\DTKttFontName{} \let\DTKttFontName=\DTK@FontNameMissing
+\newcommand*\DTKmathFontName{} \let\DTKmathFontName=\DTK@FontNameMissing
+
+\ifnum\DTK@engine < 3 %
+ \input{dtk-old-engines.clo}% pdfTeX oder TeX+dvips oder VTeX
+\else
+ \input{dtk-new-engines.clo}% LuaTeX oder XeTeX
+\fi
+
+\@ifpackagelater{csquotes}{2018/02/11}{}{%
+ \def\@inpenc@undefined{}
+}
+\RequirePackage[autostyle=true,german=guillemets,maxlevel=3]{csquotes}%
+\MakeAutoQuote{»}{«}
+\defineshorthand{"`}{\openautoquote}%
+\defineshorthand{"'}{\closeautoquote}%
+
+\iftrue
+ \newcommand*\EURO@scale@to@rm[2]{%
+ \begingroup
+ \fontsize{10}{0}\usefont{\encodingdefault}{\rmdefault}{m}{n}%
+ #1%
+ \xdef\eurosym@@Scale{%
+ \strip@pt
+ \dimexpr 1pt * \@tempdima / \dimexpr#2pt\relax }%
+ \ClassInfo{dtk}{The eurosym family is scaled by \eurosym@@Scale}%
+ \endgroup
+ }
+ \EURO@scale@to@rm{\setbox0\hbox{C}\@tempdima=\ht0}{6.92}% matchuppercase
+ % Extrakt aus "eurosym.sty"
+ \DeclareFontFamily{U}{DTK@eurosym}{}
+ \DeclareFontShape{U}{DTK@eurosym}{m}{n}{ <-> s*[\eurosym@@Scale] feymr10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{m}{sc}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/m/n }{}
+ \DeclareFontShape{U}{DTK@eurosym}{m}{sl}{ <-> s*[\eurosym@@Scale] feymo10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{m}{it}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/m/sl }{}
+ \DeclareFontShape{U}{DTK@eurosym}{m}{ol}{ <-> s*[\eurosym@@Scale] feyml10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{bx}{n}{ <-> s*[\eurosym@@Scale] feybr10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{bx}{sc}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/n }{}
+ \DeclareFontShape{U}{DTK@eurosym}{bx}{sl}{ <-> s*[\eurosym@@Scale] feybo10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{bx}{it}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/sl }{}
+ \DeclareFontShape{U}{DTK@eurosym}{bx}{ol}{ <-> s*[\eurosym@@Scale] feybl10 }{}
+ \DeclareFontShape{U}{DTK@eurosym}{b}{n}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/n }{}
+ \DeclareFontShape{U}{DTK@eurosym}{b}{sl}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/sl }{}
+ \DeclareFontShape{U}{DTK@eurosym}{b}{it}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/sl }{}
+ \DeclareFontShape{U}{DTK@eurosym}{b}{sc}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/n }{}
+ \DeclareFontShape{U}{DTK@eurosym}{b}{ol}{ <-> s*[\eurosym@@Scale] ssub*DTK@eurosym/bx/ol }{}
+ \DeclareRobustCommand\DTK@euro{{\fontencoding{U}\fontfamily{DTK@eurosym}\selectfont{}e}}
+\else
+ % Sobald das Paket Skalierung unterstützt
+ \RequirePackage[right,scaled]{eurosym}
+%%%\DeclareRobustCommand\DTK@euro{\scalebox{0.9}{\officialeuro}}
+\fi
+
+\let\texteuro=\DTK@euro
+
+\ifxetex\else
+\RequirePackage[%
+,protrusion=true
+,expansion=true
+,verbose=true
+,final=true
+,letterspace=100
+,babel=true
+]{microtype}
+% TODO: Spezielle Angaben zu den Schriften?
+\fi
+
+\RequirePackage[%
+,style=dtk
+,language=auto
+,sorting=nyt
+,sortlocale=auto
+,backend=biber
+]{biblatex}
+
+\let\ORIGprintbibliography\printbibliography
+\g@addto@macro\bibsetup{\RaggedRight}
+
+%\RequirePackage{etex} % ???
+\RequirePackage{ragged2e,dtk-logos}
+
+\renewcommand\title[2][]{%
+ \gdef\@title{#2}%
+ \ifx\relax#1\relax\gdef\@@title{#2}\else\gdef\@@title{#1}\fi%
+}
+
+\let\DTK@thispagestyle=\thispagestyle
+
+\newcommand*\DTK@Author@list@content{}
+\newcommand\DTK@Author@list@exec{%
+ \DTK@Author@list@content
+ \global\let\DTK@Author@list@content=\@empty
+}
+\newcommand\DTK@maketitle[1][]{%
+ \begingroup
+ \dimen0=\textheight
+ \advance\dimen0 by -\pagetotal
+ \ifdim\dimen0<.2\textheight
+ \newpage
+ \fi
+ \endgroup
+ \def\and{\end{tabular}, \begin{tabular}[t]{@{}c@{}}}%
+ \leavevmode% erzwingt \everypar (speziell: \DTK@Author@list@exec)
+ \vspace*{-8mm}%
+ \addchap[\@@title]{\@title}%
+ \begingroup
+ \usekomafont{author}\lineskip 0.75em %
+ \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}\par\medskip
+ \endgroup
+ \@thanks
+ \global\let\@thanks=\@empty
+ \global\let\@title=\@empty
+ \global\let\@author=\@empty
+ \global\let\@thanks=\@empty
+ \global\let\and\relax
+ \global\let\DTK@license=\@empty
+}
+
+\renewcaptionname{ngerman}{\bibname}{Literatur und Software}
+\defbibheading{dtk}{\section{\bibname}}
+
+\RequirePackage[automark,draft=false]{scrlayer-scrpage}
+\pagestyle{scrheadings}
+\clearpairofpagestyles
+% https://komascript.de/node/2177
+\ihead{\ifstr{\righttopmark}{\rightbotmark}{\leftmark}{}}
+\ohead{\ifstr{\righttopmark}{\rightbotmark}{\pagemark}{}}
+\ofoot*{\normalsize\DTKcorrVersion}
+\ifoot*{\journalname~~\DTKdate}
+\automark[chapter]{chapter}
+
+\newcommand*\DTK@license{}
+\newcommand*\license[1]{%
+ \gdef\DTK@license{#1}%
+}
+\iffalse
+\RedeclareSectionCommand[%
+ ,style=part
+ %,indent=\z@
+ ,beforeskip=40mm
+ ,afterskip=60mm %
+ ,pagestyle=plain.scrheadings
+ %,innerskip=\z@
+]{part}
+\fi
+
+\RedeclareSectionCommand[%
+ ,style=section
+ ,indent=\z@
+ ,beforeskip=-2\baselineskip \@plus -.2\baselineskip \@minus -.2\baselineskip
+ ,afterskip=.4\baselineskip \@plus .04\baselineskip \@minus .04\baselineskip
+]{chapter}
+
+\RedeclareSectionCommand[%
+ ,beforeskip=-2.4ex \@plus -1ex \@minus -.2ex % Betrag ist von Bedeutung!
+ ,afterskip=0.8ex \@plus .1ex \@minus .1ex %
+]{section}
+
+\RedeclareSectionCommand[%
+ ,afterskip=0.8ex \@plus .1ex %
+]{subsection}
+
+\RequirePackage{xcolor}
+
+\ifDTKcolor
+ \colorlet{DTK@marker}{red!30}
+ \definecolor{DTK@fancy}{rgb}{.72,.525,.044}
+\else
+ \colorlet{DTK@marker}{black!20}
+ \colorlet{DTK@fancy}{black!60}
+\fi
+
+\colorlet{DTKlstBackground}{black!5}
+\colorlet{DTKlstKeys}{black}
+%\colorlet{DTKlstIdentifiers}{black}
+\colorlet{DTKlstComments}{black}
+\colorlet{DTKlstStrings}{black}
+\colorlet{DTKlstNumbers}{black}
+\newcommand*\DTKlstKeywordfont{\bfseries}
+
+\RequirePackage[final]{listings}
+\RequirePackage{lstautogobble}
+
+\@ifundefined{ifDTKrecord}{\newif\ifDTKrecord \DTKrecordfalse}{}
+
+\newcommand*\address[3]{%
+ \ClassError{dtk2}{%
+ Das Makro \string\address\space existiert nicht mehr!\MessageBreak
+ Nimm stattdessen \string\Author%
+ \string{Vorn.\string}\string{Nachn.\string}\string{Adr.\string}}{}%
+}%
+\def\author#1{%
+ \ClassError{dtk2}{%
+ Das Makro \string\author\space existiert nicht mehr!\MessageBreak
+ Nimm stattdessen \string\Author%
+ \string{Vorn.\string}\string{Nachn.\string}\string{Adr.\string}}{}%
+}%
+
+% Sternform: Autor-Eintrag im Verzeichnis, aber nicht im Artikel
+\newcommand*\Author{% #1=Vorname, #2=Nachname, #3=Adresse
+ \@ifstar\DTK@Author\DTK@@Author
+}
+
+\newcommand\DTK@Author[3]{}%
+
+\newcommand\DTK@Author@article[3]{%
+ \begingroup
+ \ifx\@author\@empty\let\x=\@empty\else\def\x{\and}\fi
+ \expandafter\g@addto@macro\expandafter\@author\expandafter{\x #1 #2}%
+ \endgroup
+}%
+
+\let\@author=\@empty
+
+\ifDTK@Author@
+ \input{dtk-author.clo}
+\else
+ \input{dtk-full.clo}
+\fi
+
+\AfterEndPreamble{% "etoolbox"
+ \def\bibliography#1{%
+ \ClassError{dtk2}{%
+ Das Makro `\string\bibliography' wird nicht unterstützt!\MessageBreak
+ Verwende stattdessen `\string\addbibresource\string{#1.bib\string}'
+ \MessageBreak
+ und `\string\printbibliography' (siehe biblatex-Dokumentation)
+ }{}%
+ }%
+}
+
+%%%\ifDTKrecord \expandafter \endinput \fi % lohnt es?
+
+\addtokomafont{caption}{%\RaggedRight
+ \small}
+\setkomafont{captionlabel}{\sffamily}
+\setcapindent{0pt}
+%\setcapwidth[c]{\textwidth}
+\renewcaptionname{ngerman}{\figurename}{Abb.}
+\renewcaptionname{ngerman}{\tablename}{Tab.}
+\def\thefigure{\@arabic\c@figure}
+\def\thetable{\@arabic\c@table}
+\def\theequation{\@arabic\c@equation}
+\def\thelstlisting{\@arabic\c@lstlisting}
+
+\setkomafont{disposition}{\normalfont\sffamily}
+\setkomafont{part}{\usekomafont{disposition}\huge}
+\setkomafont{chapter}{\usekomafont{disposition}\Large}
+\setkomafont{section}{\usekomafont{disposition}\large}
+\setkomafont{pagenumber}{\normalfont\sffamily}
+\setkomafont{pagehead}{\sffamily\slshape}% \itshape?
+\setkomafont{pagefoot}{\footnotesize\sffamily\slshape}% \itshape?
+\setkomafont{author}{\usekomafont{section}}
+
+\RequirePackage{marginnote}
+\renewcommand*{\marginfont}{\normalfont\itshape\small}
+\renewcommand*{\sectionlinesformat}[4]{%
+ % reagiert auf \addchap in \maketitle (wegen "style=section")
+ \@hangfrom{%
+ \ifx\DTK@license\@empty\else
+ \marginnote{\rotatebox{90}{\makebox[.5em][r]{%
+ Lizenz:~\DTK@license
+ }}}%
+ \fi
+ \hskip #2#3%
+ }{#4}%
+}
+
+%\addtokomafont{footnote}{\RaggedRight}
+\deffootnote[1.2em]{1.2em}{1.2em}{\textsuperscript{\thefootnotemark}\,}
+\newcommand*\DTK@footnote{}
+\let\DTK@footnote=\footnote
+\newcommand*\DTK@@footnote[2][]{%
+ \edef\DTK@tempa{\ifx\relax#1\relax\else[#1]\fi}%
+ \expandafter\DTK@footnote\DTK@tempa{\RaggedRight #2}%
+}
+\def\footnote{%
+ \@ifstar\DTK@@footnote\DTK@footnote
+}
+%\setfootnoterule{.15\textwidth}
+
+\RequirePackage{enumitem}
+\setlist{leftmargin=*,nosep}
+\setlist[1]{labelindent=1em}
+\iffalse
+\setlist[itemize,1]{label=\raisebox{-.1ex}{\Large\textbullet}}
+\setlist[itemize,2]{label=\raisebox{-.1ex}{\Large$\m@th\circ$}}
+\setlist[itemize,3]{label=\raisebox{-.7ex}{\large\textasteriskcentered}}
+\setlist[itemize,4]{label=\raisebox{.4ex}{\tiny$\m@th\triangleright$}}
+\fi
+
+% Listings
+\newcommand*\DTKlstfont{\small\ttfamily}
+
+\let\lstlisting=\relax
+\let\lstlisting@=\relax
+% Correct wrong vertical spaces
+\lstnewenvironment{lstlisting}[2][]{%
+ %%%%\leavevmode%
+ \lst@TestEOLChar{#2}%
+ \lstset{#1}%
+ \csname\@lst @SetFirstNumber\endcsname
+}{\csname\@lst @SaveFirstNumber\endcsname}
+
+% siehe ggf.: https://github.com/jez/latex-solarized
+
+\lstdefinestyle{DTKlstSimple0}{%
+,basicstyle=\DTKlstfont
+,numbers=none
+,backgroundcolor={}
+,tabsize=2
+,frame=none
+}
+
+\lstdefinestyle{DTKlstVerbatim}{
+,style=DTKlstSimple0
+,aboveskip=\smallskipamount
+,belowskip=0pt plus .25pt minus .25pt %
+}
+
+\lstdefinestyle{DTKlstSimple1}{%
+,style=DTKlstSimple0
+,identifierstyle=\DTKlstfont
+,stringstyle=\DTKlstfont
+,commentstyle=\DTKlstfont
+,basewidth=0.55em
+,keepspaces
+,autogobble=false
+,backgroundcolor=\color{DTKlstBackground}
+,numbers=none
+,frame=single
+,framesep=\fboxsep
+,aboveskip=\medskipamount
+,belowskip=1pt plus .5pt minus .5pt %
+,xleftmargin=\fboxsep
+,xrightmargin=\fboxsep
+}
+
+\newcommand*\DTK@lst@colorbox[2]{%
+ \fboxsep=.3em %
+ \settowidth\DTK@tempdima{#2}\settoheight\DTK@tempdimb{#2}%
+ \makebox[\DTK@tempdima][c]{\colorbox{#1}{%
+ \raisebox{0pt}[\DTK@tempdimb][\z@]{#2}}}%
+}
+
+\lstdefinestyle{DTKlstBase}{%
+,style=DTKlstSimple1
+%,identifierstyle=\color{DTKlstIdentifiers}
+,keywordstyle=\DTKlstKeywordfont
+,stringstyle=\itshape\color{DTKlstStrings}
+,commentstyle=\itshape\color{DTKlstComments}
+,columns=fullflexible
+%,extendedchars=true
+,showspaces=false
+,showstringspaces=false
+,breaklines=true
+,breakindent=0.5em
+,breakautoindent=true
+,breakatwhitespace=false % ???
+,captionpos=t
+,emphstyle=\DTK@lst@colorbox{DTKlstBackground!70!-DTKlstBackground}%
+%,prebreak=
+,postbreak=\mbox{$\hookrightarrow$}
+,autogobble=true
+}
+
+\lstdefinestyle{number}{% TODO: Evtl. doch besser Zeilennummern ganz ausrücken?
+,style=DTKlstBase
+,numbers=left
+,numberstyle=\tiny\ttfamily
+,numbersep=1.3em
+,xleftmargin=1.5em
+}
+
+\lstdefinestyle{noNumber}{%
+,style=DTKlstBase
+,numbers=none
+,xleftmargin=\fboxsep % ???
+}
+
+\lstset{style=noNumber}
+
+% noHilit, latex ???
+
+\let\verbatim=\relax
+\lstnewenvironment{verbatim}
+{\lstset{style=DTKlstVerbatim,language={}}}{}
+
+\newlength\fullwidth
+\setlength\fullwidth{\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}
+\newenvironment{Figure}[2][\fullwidth]
+ {\figure[htb!]\setlength\columnsep{1.5em}%
+ \captionbeside{#2}[o][#1][0pt]*}%
+ {\endcaptionbeside\endfigure}
+\newenvironment{Table}[2][\fullwidth]
+ {\table[htb!]\setlength\columnsep{1.5em}%
+ \begincaptionbeside{#2}[o][#1][0pt]*}%
+ {\endcaptionbeside\endtable}
+
+\newenvironment{abstract}
+ {\quote\small}{\endquote\medskip\par}
+
+\providecommand*\Macro[1]{\texttt{\textbackslash#1}}
+\providecommand*\Code[1]{\texttt{#1}}
+\let\Command\texttt
+\let\Environment\texttt
+\def\biblatex{\texttt{biblatex}\xspace}
+\def\tex4ht{\hologo{TeX4ht}}
+\let\Paket\texttt
+\let\Package\texttt
+\let\Programm\texttt
+\let\Program\texttt
+\let\Env\texttt
+\let\Class\texttt
+
+\endinput
+
diff --git a/usergrps/dante/dtk/dtk.nolig b/usergrps/dante/dtk/dtk.nolig
new file mode 100644
index 0000000000..d038473d78
--- /dev/null
+++ b/usergrps/dante/dtk/dtk.nolig
@@ -0,0 +1,20 @@
+\ProvidesFile{dtk.nolig}[2015/10/06 v0.1b nolig definitions (RN)]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Definitionen von Ausnahmen zur Ligaturbehandlung des Paketes "selnolig"
+%%
+%% Beispiel:
+%%
+%% \nolig{Auflaufform}{Auf|lauf|form}
+%%
+%% (siehe Dokumentation zu "selnolig")
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nolig{Herbstt[aruöe]}{Herbst|t}
+\nolig{Mitt[iruä]}{Mit|t}
+\nolig{Textt[eiru]}{Text|t}
+\nolig{Hauptt[eiru]}{Haupt|t}
+
+\endinput
diff --git a/usergrps/dante/dtk/dtk.xdy b/usergrps/dante/dtk/dtk.xdy
new file mode 100644
index 0000000000..17546da71e
--- /dev/null
+++ b/usergrps/dante/dtk/dtk.xdy
@@ -0,0 +1,49 @@
+;; ---------------------------------------------------------------
+;; dtk.xdy --- A set of biblatex implementations of
+;; dtk index style for DANTE journal
+;; "Die TeXnische Komödie"
+;; Maintained by Rolf Niepraschk
+;; (C) Rolf.Niepraschk@gmx.de
+;; Released under the LaTeX Project Public License v1.3c or later
+;; See http://www.latex-project.org/lppl.txt
+;; ---------------------------------------------------------------
+
+;; 2015/07/16 v0.1d, Rolf Niepraschk
+
+(require "lang/general/utf8-lang.xdy")
+(require "lang/general/utf8.xdy")
+;;(require "lang/german/din5007-utf8-lang.xdy")
+;;(require "lang/german/din5007-utf8.xdy")
+(require "numeric-sort.xdy")
+(require "latex.xdy")
+
+;;(require "latex-loc-fmts.xdy")
+(define-attributes ("default" "textbf" "textit" "hyperpage" "highlightPage" "foo" "gobble"))
+(markup-locref :open "\textbf{" :close "}" :attr "textbf")
+(markup-locref :open "\textit{" :close "}" :attr "textit")
+(markup-locref :open "\hyperpage{" :close "}" :attr "hyperpage")
+;;(markup-locref :open "\highlightPage{" :close "}" :attr "highlightPage")
+(markup-locref :open "\highlightPage{\hyperpage{" :close "}}" :attr "highlightPage")
+(markup-locref :open "\foo{" :close "}" :attr "foo")
+(markup-locref :open "\csname @gobble\endcsname{" :close "}" :attr "gobble")
+
+(require "makeindex.xdy")
+;;(require "latin-lettergroups.xdy")
+(require "page-ranges.xdy")
+(require "word-order.xdy")
+
+;;(require "ff-ranges.xdy")
+(define-location-class "arabic-page-numbers"
+ ("arabic-numbers") :min-range-length 2)
+;;(markup-range :sep "\kern .1em\relax \textit{f}" :length 1 :ignore-end)
+;;(markup-range :sep "\kern .1em\relax \textit{ff}" :length 2 :ignore-end)
+(markup-range :sep "--")
+
+;;page-ranges.xdy
+
+(markup-indexentry :open "~n \item " :depth 0)
+(markup-indexentry :open " \subitem " :depth 1)
+
+(markup-locclass-list :open "\relax" :close "\@nil")
+(markup-locref-list :sep ",")
+
diff --git a/usergrps/dante/dtk/dtk0.tex b/usergrps/dante/dtk/dtk0.tex
new file mode 100644
index 0000000000..c3e21190e3
--- /dev/null
+++ b/usergrps/dante/dtk/dtk0.tex
@@ -0,0 +1,9 @@
+% Erzeugt Datei `userpackages.tex' mit usepackage- und
+% addbibresource-Anweisungen aus den Einzeldokumenten.
+
+\makeatletter\def\shipout{\deadcycles\z@\setbox\@tempboxa=}\makeatother
+\newif\ifDTKrecord \DTKrecordtrue
+\nofiles
+\input{dtk.tex}
+
+\endinput