From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- usergrps/dante/dtk/README.md | 5 + usergrps/dante/dtk/doc/beispiel.bib | 34 ++ usergrps/dante/dtk/doc/beispiel.pdf | Bin 0 -> 81289 bytes usergrps/dante/dtk/doc/beispiel.tex | 120 ++++++ usergrps/dante/dtk/doc/dtk-extern-test.tex | 228 +++++++++++ usergrps/dante/dtk/dtk-author.clo | 35 ++ usergrps/dante/dtk/dtk-extern.sty | 231 +++++++++++ usergrps/dante/dtk/dtk-full.clo | 553 ++++++++++++++++++++++++++ usergrps/dante/dtk/dtk-logos.sty | 150 +++++++ usergrps/dante/dtk/dtk-new-engines.clo | 54 +++ usergrps/dante/dtk/dtk-old-engines.clo | 43 +++ usergrps/dante/dtk/dtk-ruecken.tex | 19 + usergrps/dante/dtk/dtk-url.sty | 183 +++++++++ usergrps/dante/dtk/dtk.bbx | 248 ++++++++++++ usergrps/dante/dtk/dtk.cbx | 21 + usergrps/dante/dtk/dtk.cls | 601 +++++++++++++++++++++++++++++ usergrps/dante/dtk/dtk.nolig | 20 + usergrps/dante/dtk/dtk.xdy | 49 +++ usergrps/dante/dtk/dtk0.tex | 9 + 19 files changed, 2603 insertions(+) create mode 100644 usergrps/dante/dtk/README.md create mode 100644 usergrps/dante/dtk/doc/beispiel.bib create mode 100644 usergrps/dante/dtk/doc/beispiel.pdf create mode 100644 usergrps/dante/dtk/doc/beispiel.tex create mode 100644 usergrps/dante/dtk/doc/dtk-extern-test.tex create mode 100644 usergrps/dante/dtk/dtk-author.clo create mode 100644 usergrps/dante/dtk/dtk-extern.sty create mode 100644 usergrps/dante/dtk/dtk-full.clo create mode 100644 usergrps/dante/dtk/dtk-logos.sty create mode 100644 usergrps/dante/dtk/dtk-new-engines.clo create mode 100644 usergrps/dante/dtk/dtk-old-engines.clo create mode 100644 usergrps/dante/dtk/dtk-ruecken.tex create mode 100644 usergrps/dante/dtk/dtk-url.sty create mode 100644 usergrps/dante/dtk/dtk.bbx create mode 100644 usergrps/dante/dtk/dtk.cbx create mode 100644 usergrps/dante/dtk/dtk.cls create mode 100644 usergrps/dante/dtk/dtk.nolig create mode 100644 usergrps/dante/dtk/dtk.xdy create mode 100644 usergrps/dante/dtk/dtk0.tex (limited to 'usergrps/dante/dtk') 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 and Herbert Voss 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 Binary files /dev/null and b/usergrps/dante/dtk/doc/beispiel.pdf 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}[]{} +... +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<>% + }% + 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: % + }% + }% + \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 -- cgit v1.2.3