summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:52:29 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:52:29 +0000
commitf8cd4bd6a9d15be83f06d98345f29ead5a61eea3 (patch)
tree2cc7848d26d16aad8bc41e1469eba28a6744a29d /Master/texmf-dist/source
parentebaa1a4b2042072485f5657f507d24c931511b31 (diff)
trunk/Master/texmf-dist/source/latex/dtk
git-svn-id: svn://tug.org/texlive/trunk@233 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/dtk/Makefile102
-rw-r--r--Master/texmf-dist/source/latex/dtk/ReadMe119
-rw-r--r--Master/texmf-dist/source/latex/dtk/beispiel.ltx60
-rw-r--r--Master/texmf-dist/source/latex/dtk/dtk-keys.rsc54
-rw-r--r--Master/texmf-dist/source/latex/dtk/dtk.dtx3922
-rw-r--r--Master/texmf-dist/source/latex/dtk/dtk.ins75
6 files changed, 4332 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/dtk/Makefile b/Master/texmf-dist/source/latex/dtk/Makefile
new file mode 100644
index 00000000000..5c4eef56f6e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/Makefile
@@ -0,0 +1,102 @@
+#******************************************************************************
+#* $Id: Makefile,v 1.5 2002/04/10 20:57:17 gene Exp $
+#******************************************************************************
+#* Author: Gerd Neugebauer
+#*=============================================================================
+
+TEXMF = /usr/local/share/TeX/texmf
+#TEXMF = /Programme/TeX/texmf
+INSTALLDIR = $(TEXMF)/tex/latex/dtk
+
+LATEX = pdflatex
+MAKEINDEX = makeindex
+RM = rm -f
+INSTALL = install
+MKDIR = mkdir -p
+
+FILES = dtk.dtx \
+ dtk.ins \
+ dtk.bst \
+ ReadMe \
+ Makefile \
+ beispiel.tex \
+ beispiel.ltx \
+ beispiel.bib
+
+CLO_FILES = dtk95.clo \
+ dtk96.clo \
+ dtk97.clo \
+ dtk98.clo \
+ dtk99.clo \
+ dtk00.clo \
+ dtk01.clo \
+ dtk02.clo
+GENERATED = dtk.cls \
+ dtk.sty \
+ dtk.ist \
+ ${CLO_FILES} \
+ dtklogos.sty \
+ dtk-pdf.sty
+
+#*===========================================================================
+
+all: dtk.cls dtk.dvi
+
+dtk.cls: dtk.dtx dtk.ins
+ -$(RM) $(GENERATED)
+ $(LATEX) dtk.ins
+
+$(CLO_FILES): dtk.cls
+
+dtk.sty: dtk.cls
+
+dtk.dvi: dtk.glo
+ $(LATEX) dtk.dtx
+dtk.glo: dtk.dtx
+ $(LATEX) dtk.dtx
+ $(MAKEINDEX) -s gind.ist dtk
+ $(MAKEINDEX) -s gglo.ist -o dtk.gls dtk.glo
+
+dtk_doc.dvi:
+ $(LATEX) dtk_doc.tex
+
+beispiel.dvi: beispiel.tex
+ $(LATEX) $<
+ $(LATEX) $<
+
+#*===========================================================================
+
+dtk.tar: $(FILES)
+ tar -cvf $@ $(FILES)
+
+dist: dtk.tar.gz
+
+dtk.tar.gz: $(FILES)
+ tar -cvf - $(FILES) | gzip > $@
+
+dtk.tar.Z: $(FILES)
+ tar -cvf - $(FILES) | compress > $@
+
+dtk.zip: $(FILES)
+ zip $@ $(FILES)
+
+#*===========================================================================
+ci:
+ ci -l $(FILES)
+#*===========================================================================
+
+clean:
+ $(RM) *.aux *.log *.ind *.idx *.glo *.gls *.ilg *.toc
+
+veryclean: clean
+ $(RM) *.dvi
+
+distclean: veryclean
+ $(RM) dtk.cls dtk.sty
+
+#*===========================================================================
+
+install: dtk.cls dtk.sty $(CLO_FILES)
+ -$(MKDIR) $(INSTALLDIR)
+ $(INSTALL) $(GENERATED) $(INSTALLDIR)
+
diff --git a/Master/texmf-dist/source/latex/dtk/ReadMe b/Master/texmf-dist/source/latex/dtk/ReadMe
new file mode 100644
index 00000000000..84e4b3bef63
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/ReadMe
@@ -0,0 +1,119 @@
+
+ dtk: A Document Class and Style for
+ ``Die TeXnische Komoedie''
+
+ written by
+ Gerd Neugebauer
+ gene@gerd-neugebauer.de
+
+
+dtk is a document class and style file which has been written to be
+used for the communications of the German speaking TeX users group
+Dante e.V.: ``Die TeXnische Komoedie''.
+
+For changes from the previous versions see the end of this file.
+
+The distribution consists of the following files (if one is missing
+then complain at the distributor of your version):
+
+dtk.dtx
+ This is the main distribution file. It contains the class and
+ style file. LaTeXing this file produces the English documentation.
+dtk.ins
+ This is the driver file for the extraction procedure. You need
+ the doc utility to unpack it.
+dtk.bst
+ This is the BibTeX style file to be used for ``Die TeXnische
+ Komoedie''.
+Makefile
+ For those who are willing to take the risk:-)
+ReadMe
+ This file.
+beipiel.tex
+ A short description example for dtk (in German).
+beispiel.ltx
+ The driver file for beispiel.tex. Run this file through LaTeX to
+ get the dvi file.
+beispiel.bib
+ The bibliography for beispiel.tex.
+
+
+INSTALLATION
+------------
+
+(0) If you have obtained the unpacked distribution, i.e. you
+ already have cls and clo files, then continue with step (2).
+
+(1) Run TeX or LaTeX on dtk.ins.
+
+ This should produce the files dtk.cls, dtk.sty, dtklogos.sty,
+ dtk.ist, and some dtk*.clo files.
+
+ This might fail due to several reasons. In this case revert to
+ the unpacked files which are also distributed at the same
+ place where you got the sources from.
+
+(2) Move dtk.cls and the dtk*.clo files to a place where LaTeX
+ searches for class files. Move dtk.sty to a place where LaTeX
+ searches for style files.
+
+ The suggested place for the LaTeX files in a TDS conform
+ installation is the directory
+
+ TEXMF/tex/latex/supported/dtk
+
+ where TEXMF is the root of the TDS installation tree.
+
+(3) Run LaTeX on dtk.dtx to produce the documentation. LaTeX2e
+ is required for this step.
+
+ Usually the documentation contains a general part describing
+ the use of the class/style and the description of the
+ implementation details. If you want to omit the implementation
+ description you can create the file dtk.dcf before compiling
+ the documentation. This file should contain the following
+ lines:
+
+ \OnlyDescription
+ \endinput
+
+(4) Run LaTeX, BibTeX, and LaTeX twice again on beispiel.ltx for a
+ short description and a sample in German.
+
+
+CHANGES
+-------
+
+Version 1.8
+ Modifications for 2002:
+ Bibliography typeset raggedright.
+
+Version 1.7
+ Modifications for 2001
+
+Version 1.4
+ Major changes to integrate all enhancements and patches since
+ the previous release.
+ Logos \NTS and \eTeX added.
+ New page dimensions.
+ dtklogos.sty as separate package.
+ dtk-pdf.sty and dtk.ist integrated.
+
+Version 1.3
+ Old layout variants moved to class option files.
+ Logos emTeX and PubliCTeX.
+ \part* acts like \part but appears like \chapter in the toc.
+ \RequiresPackage added to specify the needs of an article.
+
+Version 1.2
+ Logos for TeXXeT and TeXeT added.
+ \bibliographystyle{dtk} forced.
+
+Version 1.1
+ The bst file had a minor problem with pages which has been
+ fixed.
+ Titles are now typeset raggedright. This is only relevant for
+ long titles. Those can be broken manually with \\. For this
+ purpose \\ is ignored in the headline and the table of
+ contents.
+
diff --git a/Master/texmf-dist/source/latex/dtk/beispiel.ltx b/Master/texmf-dist/source/latex/dtk/beispiel.ltx
new file mode 100644
index 00000000000..eab76023281
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/beispiel.ltx
@@ -0,0 +1,60 @@
+%%*****************************************************************************
+%% $Id: beispiel.ltx,v 1.1 2001/10/21 15:17:13 gene Exp $
+%%*****************************************************************************
+%% Author: Gerd Neugebauer
+%%-----------------------------------------------------------------------------
+%%
+%% Dies ist ein Beispieldokument zu einem Artikel für "`Die TeXnische
+%% Kom"odie"'. In dieser Datei befindet sich der Treiber für den
+%% Beitrag. Der Beitrag wird mit
+%%
+%% latex beispiel.ltx
+%%
+%% übersetzt.
+%%
+%%-----------------------------------------------------------------------------
+%%
+%% Die folgende Zeile ist f"ur LaTeX n"otig.
+\documentclass{dtk}
+%%
+%% Packete/Style-Optionen und anderes Material in der Pr"aambel:
+%%
+\usepackage{booktabs}
+%%
+%% Die Vereinszeitschrift wird (meistens) mit dem Input-Encoding
+%% latin1 gesetzt.
+%%
+\usepackage[latin1]{inputenc}
+%%
+%% Das Packet german/ngerman wird automatisch geladen und sollte nicht
+%% explizit angefordert werden.
+%%
+%% Regel: Es sollten so wenig wie m"oglich zus"atzliche Packete
+%% angefordert werden, da diese mit anderen Packeten in Konflikt
+%% geraten k"onnten, die in anderen Artikeln unbedingt
+%% ben"otigt werden.
+%% Regel: Es sollten nicht unn"otig viele Kommandos oder Umgebungen
+%% definiert werden (aus demselben Grund). N"otigenfalls
+%% sollte die Definition im Artikel und nicht in der Pr"aambel
+%% geschehen.
+%% Regel: Bei der Produktion der Zeitschrift wird normalerweise das
+%% Input-Encoding latin1 verwendet, sofern nicht ein Beitrag
+%% unbedingt etwas anderes erforderlich macht.
+%% Es darf kein anderes Input-Encoding verwendet werden.
+%% Die Eingabe sollte nach Möglichkeit sogar reines ASCII sein
+%% -- mit Sonderzeichen nach german.sty.
+%%
+\begin{document}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Nun wird nur noch der eigentliche Beitrag geladen. Alles weitere
+% findet in der Datei beispiel.tex statt.
+%
+\input{beispiel}
+%
+%
+\end{document}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Local Variables:
+% mode: latex
+% TeX-master: nil
+% End:
diff --git a/Master/texmf-dist/source/latex/dtk/dtk-keys.rsc b/Master/texmf-dist/source/latex/dtk/dtk-keys.rsc
new file mode 100644
index 00000000000..ac706b66fe0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/dtk-keys.rsc
@@ -0,0 +1,54 @@
+key.generation=on
+key.format {
+ dtk%2.2d(volume).%1.1d(volume):%s(key)
+# dtk%2.2d(volume).%1.1d(volume)(author){:%-n(author)}{}:%-W(title)
+# dtk%d(number).%2d(year)(author){:%-n(author)}{}:%-W(title)
+# dtk%2d(year).%1.2d(volume)(author){:%-n(author):%-W(title)}{:%-2W(title)}}
+
+tex.define {\"[1]=#1e}
+tex.define {\ss=ss}
+tex.define {\AE=AE}
+tex.define {\OE=OE}
+tex.define {\aa=aa}
+tex.define {\AA=AA}
+tex.define {\o=o}
+tex.define {\O=O}
+tex.define {\l=l}
+tex.define {\L=L}
+tex.define {\TeX=TeX}
+tex.define {\LaTeXTeX=LaTeX}
+tex.define {\LaTeX=LaTeX}
+tex.define {\LaTeXe=LaTeX2e}
+tex.define {\BibTeX=BibTeX}
+tex.define {\AMSTeX=AMSTeX}
+tex.define {\AMS=AMS}
+tex.define {\MF=METAFONT}
+tex.define {\PiCTeX=PiCTeX}
+
+ignored.word{diese}
+ignored.word{zum}
+ignored.word{neue}
+ignored.word{neues}
+ignored.word{einige}
+ignored.word{von}
+ignored.word{zwei}
+ignored.word{drei}
+ignored.word{aus}
+ignored.word{1}
+ignored.word{2}
+ignored.word{3}
+ignored.word{4}
+ignored.word{5}
+ignored.word{6}
+ignored.word{7}
+ignored.word{8}
+ignored.word{9}
+ignored.word{0}
+
+fmt.title.title{-}
+
+print.align.string = 26
+
+pass.comments = on
+quiet = on
+
diff --git a/Master/texmf-dist/source/latex/dtk/dtk.dtx b/Master/texmf-dist/source/latex/dtk/dtk.dtx
new file mode 100644
index 00000000000..29c5b4c08a4
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/dtk.dtx
@@ -0,0 +1,3922 @@
+%<*!ist>
+%%
+%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%^^A $Id: dtk.dtx,v 1.8 2002/04/10 21:03:42 gene Exp gene $
+%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\iffalse
+%% Purpose:
+%% LaTeX Class and Styles for ``Die TeXnische Komoedie''.
+%%
+%% Documentation:
+%% The documentation can be generated from the original file
+%% dtk.dtx with the doc style/package. LaTeX the file dtk.tex to
+%% get the full documentation in DVI format.
+%%
+%%
+%% Author: Gerd Neugebauer
+%% Mainzer Str. 8
+%% 56321 Rhens (Germany)
+%% Mail: gene@gerd-neugebauer.de
+%%
+%% Copyright (C) 1995-1996 Gerd Neugebauer
+%% Copyright (C) 1997-2002 DANTE, Deutschsprachige
+%% Anwendervereinigung TeX e.V.
+%%
+%% dtk.dtx is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY. No author or distributor accepts
+%% responsibility to anyone for the consequences of using it or for
+%% whether it serves any particular purpose or works at all, unless
+%% he says so in writing.
+%%
+%% Everyone is granted permission to copy, modify and redistribute
+%% dtk.dtx, provided this copyright notice is preserved and any
+%% modifications are indicated.
+%%
+%%
+%<*class>
+%% This class is still under development and may be replaced with a
+%% new version which provides enhanced functionality.
+%</class>
+%<*!class>
+%% This package is still under development and may be replaced with
+%% a new version which provides enhanced functionality.
+%</!class>
+%%
+%\fi
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \title{A \LaTeX\ Class and Style for\\``Die \TeX{}nische
+% Kom{\"o}die''\thanks{This file documents \filename\ version
+% \fileversion\ as of \filedate.}}
+% \author{Gerd Neugebauer\\
+% Mainzer Str.\ 8\\
+% 56321 Rhens (Germany)\\
+% Net: \texttt{gene@gerd-neugebauer.de}}
+%
+% \date{{\footnotesize Documentation date: \docdate}}
+%
+% \maketitle
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \changes{0.24}{1996/05/10}{First public release.}
+% \changes{0.25}{1996/05/27}{Towards the new layout}
+% \changes{0.26}{1996/05/27}{Towards the new layout}
+% \changes{0.27}{1996/05/27}{Towards the new layout}
+% \changes{0.28}{1996/05/27}{Towards the new layout}
+% \changes{0.29}{1996/06/21}{Logos improved. ContentsArt slightly modified.}
+% \changes{1.0}{1996/07/18}{The new layout is ready. (DTK 1/96 in print)}
+% \changes{1.1}{1996/09/13}{Fixing a minor problem with long titles.\\
+% double backslash in titles are now ignored in headlines and toc.}
+% \changes{1.3}{1997/02/08}{Ancient layout moved to a class option file.}
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \DoNotIndex{\ ,\",\',\.,\[,\\,\],\^,\`,\~,\(,\),\,,\/,\-,\:,\=,\@,\~,\^}
+% \DoNotIndex{\@M,\@dottedtocline}
+% \DoNotIndex{\@gobble,\@gobbletwo,\@highpenalty,\@ifnextchar,\@ifstar}
+% \DoNotIndex{\@ifundefined,\@namedef,\@plus,\@pnumwidth,\@startsection}
+% \DoNotIndex{\@starttoc}
+% \DoNotIndex{\@tempboxa,\@tempcnta}
+% \DoNotIndex{\@tempdima,\@tempdimb,\@thefnmark,\@undefined}
+% \DoNotIndex{\@ixpt,\@vpt,\@vipt,\@viipt,\@viiipt}
+% \DoNotIndex{\@xpt,\@xipt,\@xiipt,\@xivpt,\@xviipt,\@xxpt,\@xxvpt}
+% \DoNotIndex{\AA,\AE,\AtBeginDocument}
+% \DoNotIndex{\CurrentOption,\DeclareOption,\H,\Huge,\L,\LARGE,\LaTeX,\Large}
+% \DoNotIndex{\LoadClass,\O,\OE,\OptionNotUsed,\PassOptionsToClass}
+% \DoNotIndex{\ProcessOptions,\ProvidesClass,\ProvidesPackage}
+% \DoNotIndex{\RequirePackage,\TeX}
+% \DoNotIndex{\aa,\addcontentsline,\addpenalty,\advance,\addvspace,\ae}
+% \DoNotIndex{\ast,\arabic}
+% \DoNotIndex{\b,\baselineskip,\begin,\begingroup,\bf,\bgroup,\egroup}
+% \DoNotIndex{\bigskip,\box,\bullet}
+% \DoNotIndex{\c,\cal,\catcode,\char,\chardef,\circ,\clearpage,\closein}
+% \DoNotIndex{\closeout,\clubpenalty,\count,\csname}
+% \DoNotIndex{\d,\def,\dimen,\diamond,\divide,\documentclass,\dp}
+% \DoNotIndex{\divide}
+% \DoNotIndex{\else,\em,\empty,\end,\endcsname,\endgroup,\endinput,\endlist}
+% \DoNotIndex{\expandafter,\fbox,\fi,\footskip,\framebox,\frenchspacing}
+% \DoNotIndex{\futurelet,\gdef,\global,\gobble}
+% \DoNotIndex{\hangafter,\hangindent,\hbox,\headheight,\headsep,\hfil}
+% \DoNotIndex{\hfill,\hrule,\hskip,\hspace,\hss,\ht,\huge,\ifcat,\ifcase}
+% \DoNotIndex{\ifeof,\ifdim,\ifnum,\ifx}
+% \DoNotIndex{\ignorespaces,\immediate,\index,\input,\it}
+% \DoNotIndex{\itemindent,\itemsep,\jobname,\kern,\l,\labelsep,\labelwidth}
+% \DoNotIndex{\large,\leavevmode,\leftmark,\leftskip,\let,\list}
+% \DoNotIndex{\llap,\long,\lower}
+% \DoNotIndex{\m@th,\makebox,\magstep,\makeindex,\markboth,\mbox,\medskip}
+% \DoNotIndex{\multiply}
+% \DoNotIndex{\newblock,\newcommand,\newcount,\newenvironment,\newfont}
+% \DoNotIndex{\newif,\newpage,\newread,\newwrite}
+% \DoNotIndex{\nobreak,\noindent,\normalsize,\null,\o,\oe}
+% \DoNotIndex{\openin,\openout,\or,\pagestyle,\par,\paragraph,\parbox}
+% \DoNotIndex{\parfillskip,\parindent,\parsep,\parskip,\partopsep}
+% \DoNotIndex{\penalty,\quad}
+% \DoNotIndex{\raggedbottom,\raise,\relax,\renewcommand,\renewenvironment}
+% \DoNotIndex{\repeat,\rightskip,\rm,\rule}
+% \DoNotIndex{\sbox,\sc,\scriptsize,\section,\selectfont,\setcounter}
+% \DoNotIndex{\settowidth,\sf,\sfcode,\sl}
+% \DoNotIndex{\sloppy,\small,\space,\ss,\string,\symbol}
+% \DoNotIndex{\t,\tenex,\textstyle,\the,\thepage,\thispagestyle,\time,\tiny}
+% \DoNotIndex{\topmargin,\topsep,\tt,\typeout}
+% \DoNotIndex{\u,\unitlength,\usecounter,\v,\varepsilon,\vbox}
+% \DoNotIndex{\vfill,\vsize,\vskip,\vspace,\vss}
+% \DoNotIndex{\wd,\widowpenalty,\write,\xdef,\z@}
+%
+%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \CheckSum{2615}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%</!ist>
+%
+% \begin{abstract}
+%
+% dtk.dtx provides a class and style file for typesetting ``Die
+% \TeX\-nische Ko\-m\"o\-die''---the communications of the German
+% \TeX{} Users Group DANTE e.V. This means that this class can be
+% used by article writers to typeset a single article as well as to
+% produce the complete journal.
+%
+% The class and style file is written in a way that it can be used
+% both with \LaTeX\,2.09 and \LaTeXe. Thus it can be used by all
+% persons which are familiar with any flavor of \LaTeX.
+%
+% The features of \LaTeXe\ are provided in the \LaTeX\,2.09 mode only
+% to a certain extend. Thus it might not be possible to typeset an
+% article prepared for \LaTeXe\ with \LaTeX\,2.09.
+%
+% On the other side it is possible to process an article prepared
+% for \LaTeX\,2.09 with \LaTeXe{} (in native mode). This is justified
+% since \LaTeXe{} is the standard nowadays and \LaTeX\,2.09 should
+% cease to exists in the next decade.
+% \end{abstract}
+%
+% \newpage
+% \tableofcontents
+% \newpage
+%
+% \section{The History}
+%
+% This documentclass/style is a complete reimplementation of a
+% predecesor style. This predecessor style was a modification of
+% the tugboat.sty which has been carried out mainly by Gabriele
+% Kruljac. Some improvements have been made in this style by
+% Joachim Schrod and Luzia Dietsche.
+%
+% In 1995 the it appeared necessary to have a document class for the
+% production of ``Die \TeX nische Kom\"odie''. Up to this time the
+% communications of the German speaking \TeX{} users group had been
+% typeset with \LaTeX\,2.09 which was already outdated at this
+% time. In addition ideas for an improved layout had been collected
+% which should be incorporated into the new class.
+%
+% Thus Gerd Neugebauer started to derive a new class by modifying
+% options and macros of the standard document class \texttt{article}.
+%
+% At this time it was not unususal for many installations not to
+% provide the current \LaTeXe{} but still to have \LaTeX\,2.09
+% only. Thus one design decision was to have a document style as
+% well as a document class. The requirement was met by providing a
+% set of definitions which emulate some of the new features of
+% \LaTeX{} under the old releases.
+%
+% The coding was done by Gerd Neugebauer but many influences of
+% others have found their way into the code. Even so nearly no code
+% has been taken from the predecessor style the layout has been
+% copied in the first release of dtk.dtx (1.0).
+%
+% Into the next releases (1.1 to 1.3) many changes for the new
+% layout have been incorporated. Many suggestions of the editorial
+% board of ``Die \TeX nische Kom\"odie'' had been integrated.
+% Especially the following persons contributed during this process:
+% Luzia Dietsche, Bernd Raichle, Volker RW Schaa, Rainer Sch\"opf,
+% and Andreas Dafferner.
+%
+% Over the years several additions and corrections have made it
+% into some additional packages which have been used for the
+% production of ``Die \TeX nische Kom\"odie''. Especially in 1999
+% the fonts have been changed from Computer Modern to EC. In 2000
+% the text area has been changed. Finally all changes have been
+% integrated into dtk.dtx. The contributions for this release came
+% from Bernd Raichle, Peter Willardt, Rolf Niepraschk, and Werner
+% Lemberg.
+%
+% The 2002 edition of dtk.dtx includes some minor changes to
+% support the use besides the production of ``Die \TeX nische
+% Kom\"odie''. In addition the major change is that the
+% bibliography is typeset in ragged right.
+%
+%
+% \section{The User Interface}
+%
+% The user interface can be divided into two parts. The first part
+% concerns the normal user who is writing a single article. The
+% second part concerns the user who composes a complete journal.
+%
+%
+% \subsection{The User Interface for Article Writers}
+%
+% The user interface for ordinary users is mainly the interface as
+% it is provided by the documentclass article. In addition to the
+% normal commands the following macros and environments are defined:
+%
+% \DescribeMacro{\address}
+% This macro is used to put the address of an author into the list of
+% authors. It should be given before the \verb|\maketitle| command. The
+% first argument is the first name of an author. The second argument is the
+% last name of the author. The third argument is it's address. Several
+% lines in the address are separated by \verb|\\|. Missing arguments should
+% be filled with \verb|\null|.
+%
+% Several invocations of \verb|address| are possible. E.g. if the article
+% has been written by several authors. The address and the author can be
+% omitted completely --- e.g. for anonoymous letters to the editor. But
+% this should not be the normal case.
+%
+% \DescribeEnv{abstract}
+% Each article should have be started with a short paragraph describing
+% what this article is about. This paragraph is called abstract. The
+% environment \verb|abstract| is meant for marking a paragraph as
+% abstract.
+%
+%
+%
+% The following restrictions should be taken into account:
+%
+% The sectioning commands are mapped to their star variants. This
+% means that the commands like \verb|\section| are not numbered. It
+% should not be tried to to put references to those commands.
+%
+% The following logos are provided by this class and separately by
+% the package \verb|dtklogos| if not defined somewhere else. You
+% are strongly encouraged to use those macros to typeset the logos
+% instead of making your own.
+% \smallskip
+%
+% \begin{tabular}{ll}
+% \texttt{\char'134AmSTeX} &\AmSTeX \\
+% \texttt{\char'134AmS} &\AmS \\
+% \texttt{\char'134BibTeX} &\BibTeX \\
+% \texttt{\char'134dante} &\dante \\
+% \texttt{\char'134Dante} &\Dante \\
+% \texttt{\char'134DTK} &\DTK \\
+% \texttt{\char'134eTeX} &\eTeX \\
+% \texttt{\char'134eV} &\eV \\
+% \texttt{\char'134emTeX} &\emTeX \\
+% \texttt{\char'134LAmSTeX} &\LAmSTeX \\
+% \texttt{\char'134LaTeXTeX} &\LaTeXTeX \\
+% \texttt{\char'134LaTeXe} &\LaTeXe \\
+% \texttt{\char'134LaTeX} &\LaTeX \\
+% \texttt{\char'134LyX} &\LyX \\
+% \texttt{\char'134METAFONT} &\MF \\
+% \texttt{\char'134METAPOST} &\MP \\
+% \texttt{\char'134MF} &\MF \\
+% \texttt{\char'134MP} &\MP \\
+% \texttt{\char'134MakeIndex}&\MakeIndex \\
+% \texttt{\char'134NFSS} &\NFSS \\
+% \texttt{\char'134NTS} &\NTS \\
+% \texttt{\char'134PS} &\PS \\
+% \texttt{\char'134PiCTeX} &\PiCTeX \\
+% \texttt{\char'134PubliCTeX}&\PubliCTeX \\
+% \texttt{\char'134TUG} &\TUG \\
+% \texttt{\char'134TeXXeT} &\TeXXeT \\
+% \texttt{\char'134TeXeT} &\TeXeT \\
+% \texttt{\char'134WinEdt} &\WinEdt \\
+% \texttt{\char'134WinEdtKK} &\WinEdtKK
+% \end{tabular}
+%
+% \DescribeMacro{\footnote}
+% Footnotes are typeset in a special way. As a consequence of the
+% inplementation \TeX{} is not allowed to split footnotes across
+% several pages. Thus you have to keep your footnotes short. It is
+% bad style to pack the main body of text into footnotes (except
+% for critical editions).
+%
+% \subsection{Logical Markup}
+%
+% One of the advantages of \LaTeX\ is the possiblity to use logical
+% markup. For this purpose several markup macros are provided.
+% Unfortunately the macros provided are not sufficient in several
+% situations. Thus this class provides some additional markup
+% macros to come closer to the ideal situation.
+%
+% \DescribeMacro{\File}
+% This macro is intended to be used for typesetting file names.
+%
+% \DescribeMacro{\Package}
+% This macro is intended to be used for typesetting package names.
+%
+% \DescribeMacro{\Program}
+% This macro is intended to be used for typesetting program names.
+%
+% \DescribeMacro{\Command}
+% This macro is intended to be used for typesetting command names.
+% For instance command names are relevant when talking about Unix
+% commands.
+%
+% \DescribeMacro{\Macro}
+% This macro is intended to be used for typesetting macro names.
+%
+% \DescribeMacro{\Environment}
+% This macro is intended to be used for typesetting environment names.
+%
+% \DescribeMacro{\Email}
+% This macro is intended to be used for typesetting email addresses.
+%
+% \DescribeMacro{\Acronym}
+% This macro is intended to be used for typesetting acronyms. It is
+% highly recommended to use this macro sparsingly
+%
+%
+% \subsection{The Interface for the Production of the Whole Journal}
+%
+% The first thing one needs to know is that a complete journal
+% starts with a title page. This title page contains the volume,
+% the number and the date of publication. Since part of this
+% information is used later it is stored in macros.
+%
+% \DescribeMacro{\DieTeXnischeKomoedie}
+% The macro \verb|\DieTeXnischeKomoedie| is provided for this purpose. It
+% takes three arguments. The first argument is the number. The second
+% argument is the annual set and the third argument is the publication
+% date.
+%
+% \DescribeMacro{\CoverArt}
+% The macro \verb|\DieTeXnischeKomoedie| calls the macro \verb|\CoverArt|
+% to typeset the cover page. \verb|\CoverArt| gets the same three arguments
+% as the calling macro \verb|\DieTeXnischeKomoedie|. This macro is
+% responsible to fill the first page adequately. This maro might be
+% redefined to alter the layout of the journal.
+%
+% \DescribeMacro{\Label}
+% The macro \verb|\label| has been redefined to be local for each
+% article. Thus it turned out to be necessary to allow assigning of
+% labels which are not restricted by this ``module system''. The
+% macro \verb|\Label| sets such a global label.
+%
+% \DescribeMacro{\Ref}
+% The macro \verb|\ref| has been redefined to be local for each
+% article. The macro \verb|\Ref| references a global label set with
+% \verb|Label|.
+%
+% \DescribeMacro{\Pageref}
+% The macro \verb|\pageref| has been redefined to be local for each
+% article. The macro \verb|\Pageref| references a global label set with
+% \verb|Label|.
+%
+% \DescribeMacro{\NeedPackage}
+% Usually the article for the complete journal are stored in
+% different files. If an article requires a package it has to be
+% loaded in the preamble of the document. The macro
+% \verb|\NeedPackage| provides a means to specify the required
+% packages in the article files. Unfortunately \LaTeX{} does not
+% provide a way to load missing packages in the document iyself
+% thus the only reasonable action for this macros is to issue a
+% warning message if a needed package is not found. Nevertheless
+% this helps finding potential problems.
+%
+%
+%
+%
+% \vfill\noindent\hrulefill%^^A---------------------------------------------
+%
+% \emph{To be completed}
+%
+% \noindent\hrulefill\vfill\null%^^A----------------------------------------
+%
+%
+% \subsection{The Interface for the Production of PDF Reprints}
+%
+% A reprint of an article can be produced in PDF format. To
+% accomplish this the package \texttt{dtk-pdf} is provided. This
+% package makes provisions to produce an appropriate header and
+% typeset the address information at the end.
+%
+% To use the package you can use a driver file with the following
+% structure:
+%
+% \begin{quote}
+% \verb|\documentclass{dtk}|\\
+% \texttt{\textit{preamble for article}}\\
+% \verb|\usepackage{dtk-pdf}|\\
+% \verb|\renewcommand\Volume{|\texttt{\textit{volume}}\verb|}|\\
+% \verb|\renewcommand\Pages{|\texttt{\textit{pages}}\verb|}|\\
+% \verb|\begin{document}|\\
+% \verb|\input{|\texttt{\textit{tex\_file}}\verb|}|\\
+% \verb|\Address|\\
+% \verb|\end{document}|
+% \end{quote}
+%
+% Here \texttt{\textit{preamble for article}} should be replaced by
+% the document preamble required for the production of the article.
+% \texttt{\textit{volume}} is the volume of ``Die \TeX nische
+% Kom\"odie'' in which the article has been published originally.
+% \texttt{\textit{pages}} is the range of pages on which is has
+% been published. Finally the article itself is included. This
+% assumes that the article---without preamble---is contained in a
+% file by its own.
+%
+%
+%
+%
+%
+% \section{Notes on the Production of the Journal}
+%
+% Several problems have to be solved for the production os the
+% whole journal. This section collects some of them and shows which
+% roads have been taken.
+%
+% \subsection{References}
+% References are done in \LaTeX\ with \verb|\label| and
+% \verb|\ref|. Since several articles are collected in the
+% complete journal it may happen that the same label is used in
+% different articles. To avoid name clashes the definitions of
+% \verb|\label| and \verb|\ref| have been modified to prepend a
+% unique prefix.
+%
+% To enable you to make references across articles the original
+% definitions of \verb|\label| and \verb|\ref| have been saved in
+% \verb|\Label| and \verb|\Ref| respectively.
+%
+%
+% \subsection{List of Authors}
+% The list of authors is collected for the whole journal. This list
+% is sorted alphabetically. To automate this process the names are
+% written to the index file and makeindex is used to perform the
+% sorting. Thus it is necessary for the complete journal to be run
+% through \LaTeX, makeindex, and \LaTeX\ again.
+%
+%
+% \subsection{Bibliography}
+% The bibliography is prepared with \BibTeX. Since several articles
+% are compiled we assume that the single articles are processed
+% separately before. During this processing \BibTeX\ can be used to
+% generate the appropriate bbl file.
+% Things are arranged to include the bbl file for the article in
+% question.
+%
+% One problem is not solved. This is the uniqueness of the \BibTeX\
+% labels. Here manual invention is required.
+%
+%
+% \StopEventually{}
+% \newpage
+% \if@undefined\environment
+% \newenvironment{environment}[1]{}{}
+% \fi
+%
+%
+% \section{The Version Information}
+%
+% The following lines define the version information for the class
+% and the pdf package file.
+%
+% \begin{macrocode}
+%<*class|pdf|logos>
+\def\DTKrcs$#1: #2 #3${#2}
+\def\filename{dtk.dtx}
+\xdef\fileversion{\DTKrcs$Revision: 1.8 $}
+\xdef\filedate{\DTKrcs$Date: 2002/04/10 21:03:42 $}
+\let\docversion=\fileversion
+\let\docdate=\filedate
+%</class|pdf|logos>
+% \end{macrocode}
+%
+%
+% \section{The Documentation Driver}
+%
+% The documentation driver changes dtk.dtx into a self-extracting
+% documentation. Thus it is possible to run \LaTeX{} on dtk.dtx to
+% produce the documentation.
+%
+% The documentation can be adapted in a file named dtk.dcf
+% (documentation configuration). This file can contain instructions
+% for \verb|docstrip|. Especially useful might be the instruction
+%
+% \verb|\OnlyDescription|
+%
+% which supresses the generation of the implementation description.
+%
+% \changes{1.3}{1997/01/27}{The documentation driver has been
+% integrated.}
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{dtklogos}
+% \end{macrocode}
+%
+% Modify the behaviour of \verb|ltxdoc|. Those settings can be
+% overwritten with local settings afterwards.
+%
+% \begin{macrocode}
+\RecordChanges
+\EnableCrossrefs
+\CodelineIndex
+\setcounter{IndexColumns}2
+\setlength{\parskip}{.5ex}
+\setlength{\parindent}{0pt}
+% \end{macrocode}
+%
+% Local configurations can be made in \verb|dtk.dcf|.
+%
+% \begin{macrocode}
+\InputIfFileExists{dtk.dcf}{}{}
+% \end{macrocode}
+%
+% Define some logos.
+%
+% \begin{macrocode}
+\begin{document}
+% \end{macrocode}
+%
+% Ready to read the dtx file.
+%
+% \begin{macrocode}
+\DeleteShortVerb{|}
+\DocInput{dtk.dtx}
+% \end{macrocode}
+%
+% We want to see the change log.
+%
+% \begin{macrocode}
+\newpage
+\PrintChanges
+% \end{macrocode}
+%
+% An index is highly desirable.
+%
+% \begin{macrocode}
+\newpage
+\PrintIndex
+% \end{macrocode}
+%
+% That's it.
+%
+% \begin{macrocode}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+%
+% \section{The Implementation}
+%
+%
+% The implementation is mainly based on existing styles/classes. This file
+% contains only adaptions required to provide the logical markup
+% and the definitions to get the special layout of ``Die \TeX
+% nische Kom\"odie''.
+%
+%
+% \subsection{Basic Definitions}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+%
+% Now we need a boolean to see if we are in the author version or
+% in the full version. The author version has several commands
+% disabled. The full version is turned on by giving the option
+% \verb|full| to the documentclass/style command.
+%
+% \begin{macrocode}
+\newif\ifDTK@Author@
+\DTK@Author@true
+% \end{macrocode}
+%
+% The boolean \verb|DTK@german@| is used to determine if the german
+% package should be loaded automatically. Usually it is turned on.
+% Under certain circumstances it might be necessary to load other
+% packages before the german package. Thus this variable can be set
+% via a package option.
+%
+% \begin{macrocode}
+\newif\ifDTK@german@
+\DTK@german@true
+% \end{macrocode}
+%
+%
+% \subsection{Compatibility Definitions}
+%
+% Since we want to use this style with \LaTeX\,2.09 and \LaTeXe{} we have
+% to define a common interface. For this purpose we use a subset of
+% the style writers interface already defined for \LaTeXe{} style
+% writers. Since some macros are not defined in \LaTeX\,2.09 we
+% implement them --- at least to the degree needed here.
+%
+% Starting with release 1.4 the backward compatibility may not work
+% any longer. It will be eliminated in a future release.
+%
+% \begin{macrocode}
+\ifx\documentclass\@undefined
+% \end{macrocode}
+%
+% \begin{macro}{\RequirePackage}
+% The macro \verb|RequirePackage| simply tries to load the appropriate
+% style file. The category code of \verb|@| is changed temporarily.
+% The old value is is saved in \verb|\DTK@cat| and restored at the end.
+%
+% Optional arguments are not supported, yet.
+%
+% \begin{macrocode}
+ \newcommand\RequirePackage[1]{
+ \chardef\DTK@cat=\the\catcode`\@
+ \catcode`\@=11
+ \input{#1.sty}%
+ \catcode`\@=\DTK@cat}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LoadClass}
+% The concept of class and package files has not been so different in
+% \LaTeX\,2.09. Thus the same that has been said for \verb|\RequirePackage|
+% holds also for the macro \verb|\LoadClass|. Thus we just make it a
+% synonym.
+%
+% \begin{macrocode}
+ \let\LoadClass=\RequirePackage
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\InputIfFileExists}
+% Now things get a little bit more complicated. To implement the
+% macro \verb|\InputIfFileExists| we try to open the file. If this
+% fails we assume that the file does not exist. The appropriate
+% action is performed in both cases.
+%
+% \begin{macrocode}
+ \newcommand\InputIfFileExists[3]{%
+ \openin\DTK@file #1
+ \ifeof\DTK@file\closein\DTK@file #3%
+ \else\closein\DTK@file #2\input{#1}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareOption}
+% The options in \LaTeX\,2.09 are defined as special named
+% macros. This is emulated here. The star variant is simply mapped
+% to do nothing.
+% \begin{macrocode}
+ \newcommand\DeclareOption{\@ifstar{\@gobble}{\DTK@DeclareOption}}
+ \newcommand\DTK@DeclareOption[2]{\@namedef{ds@#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ProcessOptions}
+% In \LaTeX\,2.09 the options are processed automatically. Thus
+% this macro is simply a noop.
+% \begin{macrocode}
+ \let\ProcessOptions=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\OptionNotUsed}
+% This feature is not present in \LaTeX\,2.09. Thus the argument is
+% silently absorbed and the macro is simply a noop.
+% \begin{macrocode}
+ \let\OptionNotUsed=\gobble
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ProvidesClass}
+% This declaration is used to type out the version information.
+% \begin{macrocode}
+ \def\ProvidesClass#1[#2]{\typeout{Document Style #1 #2}}
+% \end{macrocode}
+% \end{macro}
+%
+% Just for fun we define some font switching commands. In fact the
+% behaviour in \LaTeXe{} is more complex. But I think these
+% definitions are enough to avoid errors.
+% \begin{macrocode}
+ \newcommand\emph[1]{{\em #1}\/}
+ \newcommand\textbf[1]{{\bf #1}}
+ \newcommand\textrm[1]{{\rm #1}}
+ \newcommand\textsc[1]{{\sc #1}}
+ \newcommand\textsf[1]{{\sf #1}}
+ \newcommand\textsl[1]{{\sl #1\/}}
+ \newcommand\textit[1]{{\it #1\/}}
+ \newcommand\texttt[1]{{\tt #1}}
+
+ \@ifundefined{fontshape}{\let\fontshape=\@gobble}{}
+ \@ifundefined{selectfont}{\let\selectfont=\relax}{}
+
+ \newcommand\providescommand[2]{\ifx#1\@undefined\newcommand#1{#2}\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% We need a new handle to read files. This handle will be used to
+% implement \verb|\InputIfFileExists|. Since \verb|\newread| is
+% declared \verb|\outer| we have to allocate the new handle here. It is
+% just used in the \LaTeX\,2.09 mode.
+%
+% \begin{macrocode}
+\newread\DTK@file
+% \end{macrocode}
+%
+% Now we can continue without considering the \LaTeX{} dialect any
+% more. Any changes we make from now on are exclusivly based on the
+% interface defined above.
+%
+% This is all we had to do to implement the compatibility mode. It might
+% turn out that more features are desirable. Those extensions are left to
+% future versions of this class, eh sorry, style.
+%
+%
+%
+% \subsection{Initializations}
+%
+%
+% Now we can start to define the class. The version date is taken
+% from the macro \verb|\filedate|. This macro is defined at the
+% beginning of this file. The value is changed by the version
+% control system RCS.
+% \changes{1.4}{2000/08/21}{File version added to class identifier.}
+% \begin{macrocode}
+\ProvidesClass{dtk}[\filedate\space\fileversion\space gene]
+% \end{macrocode}
+%
+% The options to switch to other point sizes are disabled. Nobody
+% is supposed to use this class with another than the single design
+% size.
+% \begin{macrocode}
+\DeclareOption{10pt}{\OptionNotUsed}
+\DeclareOption{11pt}{\OptionNotUsed}
+\DeclareOption{12pt}{\OptionNotUsed}
+% \end{macrocode}
+%
+% The options to switch the oneside and twoside settings are
+% disabled. Nobody is supposed to use this class with another than
+% the single design size.
+% \begin{macrocode}
+\DeclareOption{twoside}{\OptionNotUsed}
+\DeclareOption{oneside}{\OptionNotUsed}
+% \end{macrocode}
+%
+% We define an internal style option ``full''. This loads
+% the multicolumn package from the Mainz distribution. It is only
+% needed to produce the full journal. Additionally several macros
+% are only defined in the full version. This makes sure that authors can
+% not play with too much internal macros.
+% \begin{macrocode}
+\DeclareOption{full}{\DTK@Author@false}
+% \end{macrocode}
+%
+% The package option \verb|omitgerman| can be used to omit the
+% loading of the package \verb|german.sty|. This migth be necessary
+% if packages are required which have to be loaded before
+% \verb|german|.
+% \begin{macrocode}
+\DeclareOption{omitgerman}{\DTK@german@false}
+% \end{macrocode}
+%
+% In 1996 the layout of ``Die TeXnische Kom\"odie'' has been
+% changed. The option \verb|ancient| can be used to switch back to
+% the old layout.
+% \begin{macrocode}
+\DeclareOption{ancient}{\def\DTK@layout{95}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{95}{\def\DTK@layout{95}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{96}{\def\DTK@layout{96}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{97}{\def\DTK@layout{97}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{98}{\def\DTK@layout{98}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{99}{\def\DTK@layout{99}}
+% \end{macrocode}
+% \changes{1.4}{2000/08/12}{Option for 2000 added.}
+% \begin{macrocode}
+\DeclareOption{00}{\def\DTK@layout{00}}
+% \end{macrocode}
+% \changes{1.5}{2001/04/23}{Option for 2001 added.}
+% \begin{macrocode}
+\DeclareOption{01}{\def\DTK@layout{01}}
+% \end{macrocode}
+% \changes{1.7}{2001/10/04}{Option for 2002 added.}
+% \begin{macrocode}
+\DeclareOption{02}{\def\DTK@layout{02}}
+% \end{macrocode}
+%
+% The remaining options are handed down to the base class \verb|book|.
+% This works for \LaTeXe{} and is a noop for \LaTeX\,2.09.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
+% \end{macrocode}
+%
+% Now we can process all options. Again this works for \LaTeXe{}
+% and is a noop for \LaTeX\,2.09 since the options are
+% automatically processed there.
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+% \subsection{Loading the Used Packages/Styles}
+%
+% This class is a variation of the \verb|book| class. Thus
+% we load the base class. This loading is done with the macro from
+% the interface definition or the built-in \LaTeXe{} primitive.
+% \begin{macrocode}
+\LoadClass{book}
+% \end{macrocode}
+%
+% The T1 font encoding is used.
+% \changes{1.4}{2000/08/12}{T1 font encoding enabled.}
+%
+% \begin{macrocode}
+\RequirePackage[T1]{fontenc}
+%</class>
+% \end{macrocode}
+%
+% For old issues of the journal the OT1 font encoding is used
+% instead.
+%
+% \begin{macrocode}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight>
+\RequirePackage[OT1]{fontenc}
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight>
+%<*class>
+% \end{macrocode}
+%
+% The package ``\texttt{ngerman}'' is used since this class is
+% intended to be used by german users mainly. As one result the
+% language is set to german as default. On the other side some
+% parameters are modified to get a layout according to german
+% habits. E.g. fench spacing is activated.
+%
+% There are some known problems when (n)german.sty is used. Therefore
+% it might turn out necessary to load (n)german.sty after other
+% packages have been loaded. For this purpose the option
+% |omitgerman| can be used. To ensure proper operation of dtk it is
+% necesary to call the macro \verb|\DTKgerman| after the style
+% (n)german has been loaded.
+%
+% \changes{1.7}{2001/11/03}{The package ngerman is used to support
+% the current orthography.}
+% \begin{macrocode}
+\ifDTK@german@
+\RequirePackage{ngerman}
+\selectlanguage{ngerman}
+\else
+\typeout{*** Warning: Loading of (n)german has been omitted. You have to
+ load it manually.}
+\typeout{*** Don't forget to use the macro \string\DTKgerman\space
+ afterwards.}
+\fi
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\ifDTK@german@
+\RequirePackage{german}
+\selectlanguage{german}
+\fi
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+% \end{macrocode}
+%
+% The package ``\texttt{multicol}'' is used in the full version. Thus
+% we only load it if the option \verb|full| has been given.
+% \changes{1.4}{2000/08/06}{Packages graphicx and color are required.}
+% \begin{macrocode}
+\ifDTK@Author@\else
+ \RequirePackage{multicol}
+ \RequirePackage{graphicx,color}
+\fi
+\RequirePackage{dtklogos}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\NeedPackage}
+% \changes{1.3}{1997/01/29}{Macro added.}
+% This macro can be used to declare in a single article which
+% packages are required. At this places it is too late to load
+% them if they are not loaded already. In stead a fat message is
+% presented which warns the user of potential problems.
+%
+% This macro takes a single argument which is the name of
+% \emph{one} package. Multiple packages and versions are not
+% supported (yet).
+%
+% This macro is copied and modified from an \LaTeX2\ (june 1996)
+% internal. It seems as \LaTeXe\ defines a control sequences for
+% each package which is loaded. This mechanism is exploited.
+%
+% Since older versions of \LaTeX\ do not support this mechanism
+% warning are reported even so everything is ok.
+% \begin{macrocode}
+\newcommand\NeedPackage[1]{%
+ \expandafter\ifx\csname ver@#1.sty\endcsname\relax
+ \typeout{***}%
+ \typeout{***}%
+ \typeout{*** The required package `#1' seems not to be loaded.}%
+ \typeout{*** I try to stumble along as good as I can.}%
+ \typeout{*** Expect some undefined macros or other errors.}%
+ \typeout{***}%
+ \typeout{***}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Layout Parameters}
+%
+% The layout can be influenced by a large number of
+% parameters. Thus the design decisions have been made transparent
+% (to a certain degree at least). These options are not meant to be
+% changed except when a new layout is being designed and implemented.
+%
+%
+% The size of the paper is A5. Thus the paper dimensions are defined
+% appropriately.
+% \begin{macrocode}
+\paperwidth = 148.5mm
+\paperheight = 210mm
+% \end{macrocode}
+% \changes{1.4}{2000/08/06}{New page dimensions for 1/2000.}
+% The height is set to 471\,pt; the width is 342pt.
+% \begin{macrocode}
+\textheight = 471pt
+\textwidth = 333pt
+%</class>
+% \end{macrocode}
+% The height is set to 484\,pt = 170.10654\,mm; the
+% width is 342\,pt = 120.19925\,mm. This is slightly larger than in the
+% predecessor style.
+% \begin{macrocode}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\textheight = 484pt
+\textwidth = 342pt
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+%<*class>
+% \end{macrocode}
+%
+% The page is flushed left. A left margin of one inch is the default
+% on any properly installed printer. Any adjustment of the
+% printable area on the page is left to the output driver.
+% \begin{macrocode}
+\oddsidemargin = 0pt
+\evensidemargin = \oddsidemargin
+\topmargin = 0pt
+% \end{macrocode}
+%
+% The head line needs some space. In fact this depends on some
+% configurable macros. Nevertheless we take the old values and
+% leave it to a user to change those values if required.
+% \begin{macrocode}
+\headheight = 17pt
+\headsep = 17pt
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\headheight = 14pt
+\headsep = 12pt
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+%
+% The foot line needs some space. The same remarks given above
+% apply here too.
+% \begin{macrocode}
+\footskip = 24pt
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\footskip = 21pt
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+%
+% Paragraphs are not indented but separated by additional lead
+% only. This lead may expand a little bit but it may not
+% shrink. (Since the whole journal is typeset with raggedbottom it
+% is not clear to me if this makes sense at all)
+% \begin{macrocode}
+\parskip = 0.5\baselineskip \advance\parskip by 0pt plus 2pt
+\parindent = 0pt
+% \end{macrocode}
+%
+% To reduce the probability that a float requires a complete page
+% we increase the allowed fraction which can be occupied by floats
+% at the top and the bottom of the page. Additionally we reduce the
+% fraction required for text.
+% \begin{macrocode}
+\renewcommand\topfraction{.9}
+\renewcommand\bottomfraction{.9}
+\renewcommand\textfraction{.1}
+% \end{macrocode}
+%
+%
+% \changes{1.4}{2000/08/21}{columnsep reduced to 5pt}
+% \begin{macrocode}
+\columnsep = 5pt
+%</class>
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\columnsep = 10pt
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+%<*class>
+% \end{macrocode}
+%
+% \changes{1.5}{2001/04/24}{emergencystretch set to 1.5em.}
+% \begin{macrocode}
+\emergencystretch = 1.5em
+%</class>
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine|twothousand>
+\emergencystretch = 0pt
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine|twothousand>
+%<*class>
+% \end{macrocode}
+%
+% As promised before we disable vertical adjustment of pages. This
+% seems to be a good strategy to avoid ragged apearance by too much
+% space between paragraphs.
+% \begin{macrocode}
+\raggedbottom
+% \end{macrocode}
+%
+% To avoid a bad layout we adjust some parameters. Thus we try to
+% avoid widows and clubs.
+% \begin{macrocode}
+\clubpenalty = 10000
+\widowpenalty = 10000
+% \end{macrocode}
+%
+% \begin{macro}{\DTKgerman}
+% We will change some of the captions names used within \LaTeX{}. To avoid
+% that the package ``\texttt{german}'' undoes our efforts we anchor the
+% changes in the \verb|\captionsgerman| macro. To do so we have to save the
+% old meaning in an internal name.
+% \changes{1.5}{2001/04/24}{Method for ngerman added}
+% \begin{macrocode}
+\newcommand\DTKgerman{
+ \let\DTK@captionsgerman=\captionsgerman
+ \let\captionsgerman=\DTK@captionsgerman
+ \@ifundefined{l@ngerman}{}{\selectlanguage{ngerman}}%
+}
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\renewcommand\DTKgerman{
+ \let\DTK@captionsgerman=\captionsgerman
+ \let\captionsgerman=\DTK@captionsgerman
+ \selectlanguage{german}%
+}
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTK@captionsgerman}
+%
+% Now we can redefine the captions command. First of all we use the
+% old definition. Thus we avoid duplicating the whole definition
+% and maybe getting in trouble with some future version.
+% \begin{macrocode}
+\newcommand\DTK@captionsgerman{
+ \DTK@captionsgerman
+% \end{macrocode}
+%
+% \begin{macro}{\refname}
+% Just in case that an article contains a list of references we
+% define the title for this section.
+% Well, in fact we assume that the \LaTeX{} used is not too
+% ancient. Otherwise this will not work properly.
+% \begin{macrocode}
+ \gdef\refname{Literatur}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bibname}
+% Ok. And now the same trick for the title of the bibliography.
+% \begin{macrocode}
+ \gdef\bibname{Literatur}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\contentsname}
+% The headline for the table of contents is defined appropriately.
+% \verb|\volume| contains the number of the current volume. This
+% number is set by the macro producing the front page.
+% \begin{macrocode}
+ \gdef\contentsname{Inhalt Heft \volume}%
+% \end{macrocode}
+% \end{macro}
+%
+% Now we are done. We just have to make sure that the new values
+% are activated by calling the new captions macros.
+%
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% If the option german has been loaded automatically then we have
+% to modify the captions at once. Otherwise the user is responsible
+% to call \verb|\DTKgerman| after the package german has been loaded.
+% \begin{macrocode}
+\ifDTK@german@
+ \DTKgerman
+\fi
+%</class>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\ifDTK@german@
+ \DTKgerman
+\fi
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+%<*class>
+% \end{macrocode}
+%
+% \begin{macro}{\addressname}
+% The heading for the list of authors is defined in this macro.
+% \begin{macrocode}
+\newcommand\addressname{Autoren/Organisatoren}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\journalname}
+% The name of the journal is stored in this macro. This should make
+% it easier to use this class for other purposes than typesetting
+% ``Die \TeX nische Kom\"odie''. It is not the primary intention to
+% support this but some attempts have been made to use this class
+% for other publications.
+% \changes{1.4}{2000/08/12}{Macro introduced.}
+% \begin{macrocode}
+\newcommand\journalname{Die \TeX nische Kom{\"o}die}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\volume}
+% The number of the current volume is stored in this macro. The
+% value is automatically set with the macro
+% \verb|\DieTeXnischeKomoedie|. Since this macro is usually only
+% used in the full version we provide a reasonable default.
+% \changes{1.4}{2000/08/12}{Current date and time added.}
+% \begin{macrocode}
+\newcommand\volume{?/?? --- Entwurf \today\
+ \begingroup
+ \count1=\time\divide\count1 60
+ \count2=\count1 \multiply\count2 -60 \advance\count2\time
+ \the\count1:\ifnum\count2<10 0\fi\the\count2
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footmark}
+% This macro contains the text of the running foot.
+% \begin{macrocode}
+\newcommand\footmark{\journalname\ \volume}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ChapterFont}
+% This macro contains the font changing command issued before
+% typesetting a chapter title.
+% \begin{macrocode}
+\newcommand\ChapterFont{\Large\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\ChapterFont{\Large\bf}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SectionFont}
+% This macro contains the font changing command issued before
+% typesetting the section heading.
+% \begin{macrocode}
+\newcommand\SectionFont{\large\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\SectionFont{\normalsize\bf}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SubsectionFont}
+% This macro contains the font changing command issued before
+% typesetting the subsection heading.
+% \begin{macrocode}
+\newcommand\SubsectionFont{\normalsize\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\SubsectionFont{\normalsize\it}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SubsubsectionFont}
+% This macro contains the font changing command issued before
+% typesetting the subsubsection heading and below.
+% \begin{macrocode}
+\newcommand\SubsubsectionFont{\normalsize\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\SubsubsectionFont{\normalsize\it}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AuthorFont}
+% This macro contains the font changing command issued before
+% typeseting the author of an article.
+% \begin{macrocode}
+\newcommand\AuthorFont{\large\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\AuthorFont{\normalsize\rm}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TitleFont}
+% This macro contains the font changing command issued before
+% typeseting the title of an article.
+% \begin{macrocode}
+\newcommand\TitleFont{\Large\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\TitleFont{\large\bf}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HeadFont}
+% This macro contains the font changing command issued before
+% typeseting the running head line.
+% \begin{macrocode}
+\newcommand\HeadFont{\sf\fontshape{sl}\selectfont}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\HeadFont{\sl}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FootFont}
+% This macro contains the font changing command issued before
+% typeseting the running foot line.
+% \begin{macrocode}
+\newcommand\FootFont{\footnotesize\sf\fontshape{sl}\selectfont}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\FootFont{\footnotesize\sl}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PagenoFont}
+% This macro contains the font changing command issued before
+% typeseting the page number.
+% \begin{macrocode}
+\newcommand\PagenoFont{\sf}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\PagenoFont{\rm}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NewpageThreshold}
+% The macro \verb|\NewpageThreshold| is used to determine how much
+% space is needed on a page to start a new article. If less space
+% is left then the next article is started on the next page.
+% \begin{macrocode}
+\newcommand\NewpageThreshold{100pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HeadRuleDepth}
+% This macro contains the depth of the line between the running
+% head and the main body of text.
+% \begin{macrocode}
+\newcommand\HeadRuleDepth{0pt}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\HeadRuleDepth{0.1pt}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FootRuleDepth}
+% This macro contains the depth of the line between the running
+% foot and the main body of text.
+% \begin{macrocode}
+\newcommand\FootRuleDepth{0pt}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\FootRuleDepth{0.1pt}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ContentsParSkip}
+% This macro contains the \verb|parskip| used for the table of
+% contents.
+% \begin{macrocode}
+\newcommand\ContentsParSkip{1pt}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Size Changing Commands and Mathematics}
+%
+% The size changing commands \verb|\small| and \verb|\footnotesize|
+% redefine also \verb|\@listi|. This effect has to be undone.
+%
+%
+% \begin{macro}{\DTK@math}
+% This macro modifies the relavant parameters for typesetting
+% mathematics.
+% \begin{macrocode}
+\newcommand\DTK@math{%
+ \abovedisplayskip = 4pt plus 2pt minus 1pt
+ \belowdisplayskip = \abovedisplayskip
+ \abovedisplayshortskip = 2pt plus 2pt
+ \belowdisplayshortskip = \abovedisplayshortskip
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@normalsize}
+% This is an internal size changing command. We save the old
+% definition in \verb|\DTK@@normalsize| and redefine it. After the
+% old definition is used some sizes are changed to a smaller value.
+% \begin{macrocode}
+\let\DTK@@normalsize=\@normalsize
+\def\@normalsize{%
+ \DTK@@normalsize
+ \DTK@math
+ \let\@listi=\@listI}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\normalsize}
+% This is a size changing command. We save the old
+% definition in the macro \verb|\DTK@normalsize| and redefine
+% it. After the old definition is used some sizes are changed to a
+% smaller value.
+% \begin{macrocode}
+\let\DTK@normalsize=\normalsize
+\renewcommand\normalsize{%
+ \DTK@normalsize
+ \DTK@math
+ \let\@listi=\@listI}
+\normalsize
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\small}
+% This is a size changing command. We save the old
+% definition in \verb|\DTK@small| and redefine it. After the
+% old definition is used some sizes are changed to a smaller value.
+% \begin{macrocode}
+\let\DTK@small=\small
+\renewcommand\small{%
+ \DTK@small
+ \DTK@math
+ \let\@listi=\@listI}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footnotesize}
+% This is a size changing command. We save the old
+% definition in the macro \verb|\DTK@footnotesize| and redefine
+% it. After the old definition is used some sizes are changed to a
+% smaller value.
+% \begin{macrocode}
+\let\DTK@footnotesize=\footnotesize
+\renewcommand\footnotesize{%
+ \DTK@footnotesize
+ \DTK@math
+ \let\@listi=\@listI}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Path}
+% \changes{1.3}{1997/01/28}{Macro added.}
+% This macro can be used to typeset paths to network sources like
+% ftp directories or URLs as well as email addresses. The argument
+% is typeset in a teletype font. Underscores and tildes are treated
+% as ordinary characters. Linebreaking is enabled after certain
+% special characters without inserting a hyphen.
+%
+% Unfortunately this macro is fragile.
+% \begin{macrocode}
+\begingroup
+\gdef\Path@SepI{/""}
+\gdef\Path@SepII{\symbol{92}""}
+\gdef\Path@SepIII{:""}
+\catcode`\/=13
+\catcode`\:=13
+\catcode`\^=0
+^catcode`\\=13
+^gdef^Path{^begingroup
+ ^catcode`^/=13
+ ^catcode`^\=13
+ ^catcode`^:=13
+ ^catcode`^~=12
+ ^catcode`^$=12 %$
+ ^catcode`^_=12
+ ^catcode`^#=12
+ ^let/=^Path@SepI
+ ^let\=^Path@SepII
+ ^let:=^Path@SepIII
+ ^@Path}
+^gdef^@Path#1{^texttt{#1}^endgroup}
+^endgroup
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Logical Markup}
+%
+% One of the advantages of \LaTeX\ is the possiblity to use logical
+% markup. For this purpose several markup macros are provided.
+% Unfortunately the macros provided are not sufficient in several
+% situations. Thus this class provides some additional markup
+% macros to come closer to the ideal situation.
+%
+% \begin{macro}{\File}
+% This macro is intended to be used for typesetting file names.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\File[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Package}
+% This macro is intended to be used for typesetting package names.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Package[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Program}
+% This macro is intended to be used for typesetting program names.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Program[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Command}
+% This macro is intended to be used for typesetting command names.
+% For instance command names are relevant when talking about Unix
+% commands.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Command[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Macro}
+% This macro is intended to be used for typesetting macro names.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Macro[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Environment}
+% This macro is intended to be used for typesetting environment names.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Environment[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Email}
+% This macro is intended to be used for typesetting email addresses.
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Email[1]{\texttt{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Acronym}
+% This macro is intended to be used for typesetting acronyms. It is
+% highly recommended to use this macro sparsingly
+% \changes{1.7}{2001/11/04}{macro added.}
+% \begin{macrocode}
+\providecommand\Acronym[1]{\textsc{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{List Making Environments}
+%
+% The list making environments \verb|description|, \verb|itemize|,
+% and \verb|enumerate| are adapted to use less vertical space. This
+% is mainly done by resetting \verb|\parsep|, \verb|\itemsep|, and
+% \verb|\topsep|.
+%
+% The environments \verb|itemize| and \verb|enumerate| use the
+% macros \verb|@listi|, \verb|@listii|, etc. Thus it is sufficient
+% to redefine those macros.
+%
+% \begin{macrocode}
+\def\@listI{%
+ \leftmargin = \leftmargini
+ \parsep = \parskip
+ \topsep = 0pt plus 2pt
+ \itemsep = 0pt plus 2pt}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\@listi=\@listI
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@listii{%
+ \leftmargin = \leftmarginii
+ \labelwidth = \leftmarginii
+ \advance \labelwidth by-\labelsep
+ \parsep = \parskip
+ \topsep = 0pt plus 2pt
+ \itemsep = 0pt plus 2pt}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@listiii{%
+ \leftmargin = \leftmarginiii
+ \labelwidth = \leftmarginiii
+ \advance \labelwidth by-\labelsep
+ \partopsep = 1pt plus 0pt minus 1pt
+ \parsep = \parskip
+ \topsep = 0pt plus 2pt
+ \itemsep = 0pt plus 2pt}
+% \end{macrocode}
+% We activate the defaults.
+% \begin{macrocode}
+\@listi
+% \end{macrocode}
+%
+% For some reason \verb|@listi| is redefined in \verb|small| and
+% \verb|\footnotesize|. Thus we have to take care to undo the
+% changes made there. For this purpose we save the old definitions
+% and restore the intended meaning of \verb|\@listi| after calling
+% the old macro.
+%
+%
+% \begin{macrocode}
+\renewcommand\labelitemi{$\m@th\circ$}
+\renewcommand\labelitemii{$\m@th\triangleright$}
+\renewcommand\labelitemiii{$\m@th\diamond$}
+\setlength\leftmargini{1.5em}
+\setlength\leftmarginii{1.4em}
+\setlength\leftmarginiii{1.3em}
+\setlength\leftmarginiv{1.2em}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\labelitemi{$\m@th\bullet$}
+\renewcommand\labelitemii{\bf --}
+\renewcommand\labelitemiii{$\m@th\ast$}
+\setlength\leftmargini{2.5em}
+\setlength\leftmarginii{2.2em}
+\setlength\leftmarginiii{1.87em}
+\setlength\leftmarginiv{1.7em}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+%
+% \begin{environment}{description}
+% To get things smaller we completely redefine the description
+% environment. Nevertheless we make use of the old label formatting
+% macro.
+% \begin{macrocode}
+\renewenvironment{description}{%
+ \begin{list}{}{%
+ \labelwidth = 0pt
+ \itemindent = -\leftmargin
+ \parsep = \parskip
+ \topsep = 0pt plus 2pt
+ \itemsep = 0pt plus 2pt
+ \let\makelabel=\descriptionlabel}%
+ }{\end{list}}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{descriptionlabel}
+%
+% \begin{macrocode}
+\renewcommand\descriptionlabel[1]{%
+ \hspace\labelsep{\normalsize\it #1}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\descriptionlabel[1]{\hspace\labelsep \bf #1}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{quotation}
+% Since the whole journal does not use parindent we make the
+% quotation environment the same as the quote environment.
+% \begin{macrocode}
+\renewenvironment{quotation}{%
+ \list{}{\rightmargin\leftmargin}%
+ \item\relax
+}{\endlist}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewenvironment{quotation}{%
+ \list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin\parsep \z@ plus\p@}%
+ \item\relax
+}{\endlist}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{roll}
+% We add a new type of list making environment. The \verb|roll|
+% does not indent per default but just typesets the argument of the
+% \verb|\item| macro in boldface. It has one optional argument
+% which can be used to specify the amount of indentation desired.
+%
+% \begin{macrocode}
+\newenvironment{roll}%
+ {\@ifnextchar[{\r@ll}{\r@ll[0pt]}}%
+ {\end{list}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\r@ll[#1]{\begin{list}{}{%
+ \labelwidth = #1
+ \leftmargin = \labelwidth
+ \itemsep = .3ex
+ \let\makelabel=\rolllabel}%
+ }
+% \end{macrocode}
+% \end{environment}
+%
+% Typeset the label of a \verb|roll| environment.
+% \begin{macrocode}
+\newcommand\rolllabel[1]{\hspace\labelsep \textbf{#1}\hfill}
+% \end{macrocode}
+%
+%
+% \begin{environment}{example}
+% We provide an environment for typesetting example code.
+% It is typeset in a smaller font with an indentation left and right.
+% \begin{macrocode}
+\newenvironment{example}{\begin{quote}\small}{\end{quote}}
+% \end{macrocode}
+% \end{environment}
+%
+%
+%
+%
+%
+% \begin{macrocode}
+\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
+ ext@#1\endcsname}{#1}{\protect\numberline{\csname
+ the#1\endcsname}{\ignorespaces #2}}\begingroup
+ \@parboxrestore
+ \small
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+% \end{macrocode}
+%
+%
+% \subsection{Sectioning Commands}
+%
+%
+% The counter \verb|secnumdepth| determines which sectional units
+% are decorated with a number. Since we don't want sections and
+% everything below to be numbered we set this counter to 0.
+% \begin{macrocode}
+\setcounter{secnumdepth}{0}
+% \end{macrocode}
+%
+% All but the first article are separated by additional vertical
+% space from the preceding text. Thus we define a new boolean
+% variable to determine which article is the first one in a chapter.
+% \begin{macrocode}
+\newif\ifFirstArticle
+\FirstArticletrue
+% \end{macrocode}
+%
+% \begin{macro}{\part}
+% This definition is used in the author version, where \verb|\part|
+% should not be used. An error message is issued instead.
+% \begin{macrocode}
+\ifDTK@Author@
+ \renewcommand\part{%
+ \typeout{*** Parts can not be used in single articles.}}
+\else
+% \end{macrocode}
+%
+% A part is aligned to the next full page. A special page style is
+% used on a first page of a part. The macro \verb|\part| has one
+% ordinary argument which constitutes the main title of the part.
+% This argument can be preceeded by an optional argument---enclosed
+% in brackets. This first optional argument is used as the running
+% head. If it is missing the main title is used instead.
+%
+% The main argument can be followed by another optional argument.
+% This second optional argument is the subtitle of the part.
+% If none is given then the empty default is used instead.
+% The second optional argument is an enhancement compared to the
+% original definition of parts in \LaTeX.
+%
+% \begin{macrocode}
+ \renewcommand\part{%
+ \clearpage
+ \thispagestyle{part}%
+ \FirstArticletrue
+ \Advance@Label@Prefix
+ \@ifstar{\part@star{chapter}}{\part@star{part}}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\part@star}
+% If the next character is a \verb|[| then the part macro has an
+% optional argument.
+% \begin{macrocode}
+\newcommand\part@star[1]{%
+ \@ifnextchar[{\part@optional{#1}}{\part@normal{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\part@optional}
+% This macro treats the case that the part macro has an optional
+% argument. This optional argument is used in the running head and
+% the table of contents.
+% \begin{macrocode}
+\def\part@optional#1[#2]#3{%
+ \markboth{#2}{#2}%
+ \addcontentsline{toc}{#1}{#2}%
+ \@ifnextchar[{\part@subtitle{#3}}{\part@nosubtitle{#3}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\part@normal}
+% This macro treats the case that the part has no optional
+% argument. In this case the title itself is used in the head and
+% in the table of contents.
+% \begin{macrocode}
+\newcommand\part@normal[2]{%
+ \markboth{#2}{#2}%
+ \addcontentsline{toc}{#1}{#2}%
+ \@ifnextchar[{\part@subtitle{#2}}{\part@nosubtitle{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\part@subtitle}
+% This macro treats the case that the part has an optional
+% argument for a subtitle.
+% \begin{macrocode}
+\def\part@subtitle#1[#2]{\TopArt{#1}{\\#2}\bigskip\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\part@nosubtitle}
+% This macro treats the case that the part has no optional
+% argument for a subtitle.
+% \begin{macrocode}
+\newcommand\part@nosubtitle[1]{\TopArt{#1}{}\bigskip\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TopArt}
+% This macro is used to generate the layout of the beginning of a
+% part. It takes two arguments. The first argument is the title of
+% the part and the second argument is its subtitle. If the subtitle
+% is not empty then it is started by \verb|\\|.
+% \begin{macrocode}
+\newcommand\TopArtRule{2pt}
+\newcommand\TopArt[2]{%
+ \begin{minipage}{\textwidth}\parskip=0pt\parindent=0pt
+ \null\vspace{18pt}\par\raggedright\large\sf
+ {\huge\sf #1}\\[-.5ex]\rule{\textwidth}{\TopArtRule}%
+ \vspace{2pt} #2
+ \end{minipage}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\TopArt[2]{%
+ \begingroup
+ \unitlength = 1pt
+ \@tempcnta = \textwidth
+ \divide\@tempcnta by \unitlength
+ \framebox(\@tempcnta,38){\parbox{.95\textwidth}{%
+ \begin{center}{\large\bf #1}#2 \end{center}}}
+ \endgroup}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chapter}
+% In the author version of this class no chapters are allowed. They
+% are activated when the option \verb|full| is given to the
+% class/style. Otherwise an error message is printed.
+% \begin{macrocode}
+\ifDTK@Author@
+ \renewcommand\chapter{%
+ \typeout{*** Chapters can not be used in single articles.}}
+\else
+% \end{macrocode}
+%
+% The appearance of a chapter is the same as the appearance of a
+% section. Additionally a line is added to the table of contents
+% and the headline is set appropriately.
+%
+% Since we want to deal with optional arguments and star variants
+% things are becoming a little bit more complicated. I don't know
+% if it is worth the effort. Maybe nobody will ever use this
+% feature anyhow.
+% \begin{macrocode}
+ \renewcommand\chapter{%
+ \@ifnextchar*{\chapter@star}{%
+ \@ifnextchar[{\chapter@optional}{\chapter@normal}}}
+\fi
+% \end{macrocode}
+% Ignore any number of stars. Well this may be to harsh but I think
+% this is enough.
+% \begin{macrocode}
+\def\chapter@star*{\chapter}
+% \end{macrocode}
+% Provide a default for the optional argument.
+% \begin{macrocode}
+\def\chapter@normal#1{\chapter@optional[#1]{#1}}
+% \end{macrocode}
+% Now do the whole job.
+% \begin{macrocode}
+\def\chapter@optional[#1]{%
+ \typeout{#1}%
+ \Advance@Label@Prefix
+ \addcontentsline{toc}{chapter}{#1}%
+ \markboth{#1}{#1}%
+ \FirstArticletrue
+ \@startsection{chapter}{0}{\z@}{-1ex plus-1ex minus
+ -.2ex}{.5ex plus.2ex}{\ChapterFont}*%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\section}
+% The section is redefined to use less vertical space than the
+% original definition.
+%
+% \begin{macrocode}
+\renewcommand\section{\@startsection{section}{1}{\z@}{%
+ -2ex plus-1ex minus-.2ex}{.5ex plus.2ex}{\SectionFont}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\section{\@startsection{section}{1}{\z@}{%
+ -1ex plus-1ex minus-.2ex}{.5ex plus.2ex}{\SectionFont}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subsection}
+% The subsection is redefined to use less vertical space than the
+% original definition.
+%
+% \begin{macrocode}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}{%
+ -2ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsectionFont}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}{%
+ -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsectionFont}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subsubsection}
+% The subsubsection is redefined to use less vertical space than
+% the original definition.
+%
+% \begin{macrocode}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{%
+ -2ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsubsectionFont}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{%
+ -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsubsectionFont}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\paragraph}
+% The paragraph is redefined to use less vertical space than the
+% original definition.
+%
+% \begin{macrocode}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{%
+ 0ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{%
+ 1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subparagraph}
+% The subparagraph is redefined to use less vertical space than the
+% original definition.
+%
+% \begin{macrocode}
+\renewcommand\subparagraph{\@startsection{subparagraph}{4}%
+ {\parindent}{0ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\subparagraph{\@startsection{subparagraph}{4}%
+ {\parindent}{1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{The Article Layout}
+%
+%
+% \begin{macro}{\keywords}
+% The macro \verb|keywords| is intended for the user to specify
+% keywords for the article. It is not used for the article itself
+% but for the reprint and the \BibTeX\ file of all articles.
+% \begin{macrocode}
+\newcommand\keywords[1]{\def\DTK@keywords{#1}}
+\def\DTK@keywords{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% The title of an article is typeset together with the author
+% information. If it is the first article in this chapter then
+% additional vertical space is added.
+%
+% The title is added to the table of contents and the headline is
+% adjusted appropriately.
+%
+% The macro \verb|\NewpageThreshold| is used to determine how much
+% space is needed aon a page to start a new article. If less space
+% is left then the next article is started on the next page.
+%
+% Now we can start to typeset the head of an article and perform
+% all tasks required in this situation.
+%
+% \begin{macrocode}
+\renewcommand\maketitle{%
+% \end{macrocode}
+%
+% If we are not in a complete journal then we use a different page style
+% for the first page. Thus it is possible to use this class to typeset
+% preprints and get a better layout of the first page.
+% \begin{macrocode}
+ \ifDTK@Author@ \thispagestyle{part}\fi
+% \end{macrocode}
+%
+% Now we have to ensure that there is enough space left on this page to
+% start a new article. If there isn't enough space we start the article on
+% the next page.
+% \changes{1.5}{2001/04/25}{Bugfix: constant replaced by macro.}
+% \begin{macrocode}
+ \ifdim\DTKtitle@skip>0pt\vspace{\DTKtitle@skip}\fi
+ \begingroup
+ \dimen0=\vsize
+ \advance\dimen0 by -\pagetotal
+ \ifdim\dimen0<\NewpageThreshold
+ \newpage
+ \global\FirstArticletrue
+ \fi
+ \endgroup
+% \end{macrocode}
+%
+% The namespace for labels has to be switched. This is done by
+% calling the macro \verb|\Advance@Label@Prefix|.
+% \begin{macrocode}
+ \Advance@Label@Prefix
+% \end{macrocode}
+%
+% We encapsulate the title and author information in a minipage to avoid a
+% pagebreak in beween (maybe not necessary). Then we draw a line to
+% separate the article from the previous one. The line is required if the
+% boolean variable \verb|FirstArticle| is true. This variable is set
+% afterwards.
+% \begin{macrocode}
+ \begingroup
+ \begin{minipage}{\textwidth}
+ \ifFirstArticle
+ \global\FirstArticlefalse
+ \vskip 3pt
+ \else
+ \DTKtitle@sep
+ \fi
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+ \setcounter{footnote}0
+% \end{macrocode}
+%
+% Now we insert the title and the author. The title is also put into the
+% table of contents. The running head is adjusted.
+% \begin{macrocode}
+ \@flushglue=0pt plus .3\textwidth\relax
+ \raggedright
+ \TitleFont
+ \spaceskip=\fontdimen2\font\relax
+ \xspaceskip=\fontdimen7\font\relax
+ \@title
+ \ifx\@author\@empty\else
+ \bigskip\par
+ \AuthorFont\@author
+ \fi
+ \end{minipage}%
+ \@thanks
+ \let\thanks\@gobble
+ \addcontentsline{toc}{chapter}{\@title}%
+ \markboth{\@title}{\@title}%
+ \endgroup
+% \end{macrocode}
+%
+% Finally we rest certain values and insert some space to the beginning of
+% the article.
+% \begin{macrocode}
+ \let\@title=\@empty
+ \let\@author=\@empty
+ \let\@thanks=\@empty
+ \setcounter{figure}0
+ \setcounter{table}0
+ \setcounter{equation}0
+% \setcounter{footnote}0
+ \medskip\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTKtitle@skip}
+%
+% \begin{macrocode}
+\newcommand\DTKtitle@skip{12pt}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\DTKtitle@skip{0pt}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTKtitle@sep}
+%
+% \begin{macrocode}
+\newcommand\DTKtitle@sep{\vspace{32pt plus 8pt minus 16pt}}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\DTKtitle@sep{\rule{\textwidth}{.4pt}%
+ \vskip 14pt plus 8pt minus 12pt}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% Several authors are separated by \verb|\and|. Here is a first
+% approximation to deal with this case.
+%
+% \begin{macrocode}
+\renewcommand\and{, }
+% \end{macrocode}
+%
+% We provide default values for the author, the title and the
+% footnote of the title. All of them are empty.
+% \begin{macrocode}
+\let\@title=\@empty
+\let\@author=\@empty
+\let\@thanks=\@empty
+% \end{macrocode}
+%
+% \begin{environment}{abstract}
+% The abstract is typeset in a smaller font indented left and right.
+% The use of the quote environment ensures that the abstract can be
+% broken at the end of the line.
+%
+% \begin{macrocode}
+\newenvironment{abstract}{%
+ \begin{quote}\small
+ }{%
+ \end{quote}\medskip\par}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsection{Numbering}
+%
+% The numbering is done on a global basis. No chapter numbers are
+% prepended. Especially since none are used at all. This is just
+% like in the article class.
+%
+% \begin{macrocode}
+\renewcommand\thefigure{\arabic{figure}}
+\renewcommand\thetable{\arabic{table}}
+\renewcommand\theequation{\arabic{equation}}
+% \end{macrocode}
+%
+%
+% \subsection{Labels}
+%
+% Labels have to be used on an per article basis for this purpose
+% we use a macro to hold the prefix for the labels. This prefix is
+% prepended whenever something is done with the labels.
+%
+% The prefix is constructed from a numeric counter. This counter is% allocated and initialized. Maybe I could live without this
+% counter but this way the labels look nicer (if you ever see them).
+% \begin{macrocode}
+\newcount\DTL@label
+\DTL@label=0
+% \end{macrocode}
+%
+% \begin{macro}{\Advance@Label@Prefix}
+% This macro is expanded whenever a new module is entered. It has
+% to take care that a new and unique prefix string for the labels
+% is generated and stored in the macro \verb|\Label@Prefix|.
+% \begin{macrocode}
+\newcommand\Advance@Label@Prefix{%
+ \advance\DTL@label 1
+ \xdef\Label@Prefix{module \the\DTL@label:}}
+% \end{macrocode}
+% \end{macro}
+%
+% The label prefix has to be initalized. The easiest way to perform
+% this task is touse the macro defined above.
+% \begin{macrocode}
+\Advance@Label@Prefix
+% \end{macrocode}
+%
+% Sometimes it is desirable to use labels in the old
+% sense. I.e. without the module system. For this purpose we keep
+% the old definitions of the macros \verb|\ref|, \verb|\label|, and
+% \verb|\pageref| under the new names \verb|\Ref|, \verb|\Label|, and
+% \verb|\Pageref| respectivly.
+% \begin{macrocode}
+\let\Ref=\ref
+\let\Label=\label
+\let\Pageref=\pageref
+% \end{macrocode}
+%
+% \begin{macro}{\ref}
+% The module prefix is prepended before the original \verb|\ref|
+% macros is used.
+% \begin{macrocode}
+\renewcommand\ref[1]{\Ref{\Label@Prefix:#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\label}
+% The module prefix is prepended before the original \verb|\label|
+% macros is used.
+% \begin{macrocode}
+\renewcommand\label[1]{\Label{\Label@Prefix:#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pageref}
+% The module prefix is prepended before the original \verb|\pageref|
+% macros is used.
+% \begin{macrocode}
+\renewcommand\pageref[1]{\Pageref{\Label@Prefix:#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Bibliography}
+%
+% \begin{macro}{\thebibliography}
+% Instead of using a \verb|\chapter*| to start a bibliography we
+% use a \verb|\section*|. Thus the bibliography should not appear
+% in the table of contents.
+% \changes{1.8}{2002/04/01}{typeset raggedright.}
+% \begin{macrocode}
+\renewcommand\thebibliography[1]{%
+ \section*{\refname}%
+ \list{[\arabic{enumi}]}{%
+ \settowidth\labelwidth{[#1]}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax\DTK@bibliography@rightskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTK@bibliography@rightskip}
+%
+% \changes{1.8}{2002/04/01}{macro added.}
+% \begin{macrocode}
+\newcommand\DTK@bibliography@rightskip{\rightskip=0pt plus 2em}
+%</class>
+%<*two>
+\newcommand\DTK@bibliography@rightskip{}
+%</two>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTK@bibliography}
+% This macro is used to overwrite the macro \verb|\bibliography|
+% when the complete journal is typeset.
+% \begin{macrocode}
+\newcommand\DTK@bibliography[1]{
+ \InputIfFileExists{#1.bbl}{}{\typeout{--- File #1.bbl not found.}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{1.3}{1997/01/28}{Forcing the bibstyle.}
+% We switch to the default bib style.
+%
+% \begin{macrocode}
+\bibliographystyle{dtk}
+% \end{macrocode}
+%
+%
+% \subsection{Footnotes}
+%
+% This is just my personal taste. I have incorporated my
+% fnblock.sty. This style option arranges things in a way that
+% footnotes do not go beneath the footnotemarks. In addition they
+% can be indented at the right side.
+%
+% Both indentation at both sides can be configured with the
+% following two macros:
+% \begin{macrocode}
+\newcommand\DTK@fnrightmargin{0em}
+\newcommand\DTK@fnleftmargin{1em}
+% \end{macrocode}
+%
+% \begin{macro}{\@makefntext}
+% And now we make the footnote to behave as desired.
+% \changes{1.4}{2000/08/06}{Don't let footnote line and footnote
+% text be broken across pages. Fix problem with footnotemarks.}
+% \begin{macrocode}
+\long\def\@makefntext#1{%
+ \@nobreaktrue
+ \begin{list}{}{%
+ \rightmargin=0pt%
+ \parsep=0.333\baselineskip plus 2pt
+ \leftmargin=\DTK@fnleftmargin}
+ \item\mbox{}%
+ \llap{\@textsuperscript{\normalfont\@thefnmark}\kern1pt}%
+ #1%
+ \end{list}}
+%</class>
+%<*ninetyfive>
+\long\def\@makefntext#1{\parindent 1em\noindent
+ \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@textsuperscript}
+% Define \verb|\@textsuperscript| for older LaTeX(2e) versions.
+% The macros has been copied from ``latex.ltx'' <1999/12/01>.
+% \changes{1.4}{2000/08/12}{Macro introduced to fix problems with
+% footnotes in minipages.}
+% \begin{macrocode}
+\@ifundefined{@textsuperscript}{%
+ \def\@textsuperscript#1{%
+ {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
+}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footnoterule}
+% The rule separating main text and footnotes is defined.
+% \begin{macrocode}
+\renewcommand\footnoterule{%
+ \kern-3\p@
+ \hrule\@width0.333\columnwidth
+ \kern2.6\p@}
+%</class>
+%<*ninetyfive>
+\renewcommand\footnoterule{\kern-3\p@
+ \hrule width .4\columnwidth
+ \kern 2.6\p@}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Defining Page Styles}
+%
+% \subsubsection{The Page Style ``plain''}
+%
+% The page style plain provides a head line and a foot line. The
+% page number is printed in the outer corner of the head line. The
+% inner part of the head line contains the title of the current
+% article.
+%
+% The foot line contains the name and number of the current journal
+% flushed towards the inner border of the page.
+%
+% The head line and the footline are separated by a bar from the
+% main body of text.
+%
+% \begin{macrocode}
+\renewcommand\ps@plain{%
+ \let\@mkboth=\@gobbletwo
+ \let\chaptermark=\@gobble
+ \let\sectionmark=\@gobble
+ \let\subsectionmark=\@gobble
+ \def\@oddhead{\vbox{\hbox to \textwidth{%
+ \let\\=\relax
+ \HeadFont \rightmark \hfil\PagenoFont\thepage}\kern 3pt
+ \ifdim\HeadRuleDepth>0pt \hrule depth\HeadRuleDepth\fi}}%
+ \def\@evenhead{\vbox{\hbox to \textwidth{%
+ \let\\=\relax
+ \PagenoFont \thepage\hfil\HeadFont \leftmark}\kern 3pt
+ \ifdim\HeadRuleDepth>0pt \hrule depth\HeadRuleDepth\fi}}%
+ \def\@oddfoot{\vbox{%
+ \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
+ \kern 5pt \hbox to \textwidth{\FootFont \footmark\hfil\null}}}%
+ \def\@evenfoot{\vbox{%
+ \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
+ \kern 5pt \hbox to \textwidth{\null\hfil\FootFont \footmark}}}}
+% \end{macrocode}
+%
+%
+% \subsubsection{The Page Style ``headings''}
+%
+% The page style headings is an alias to the page style plain.
+% \changes{1.4}{2000/09/05}{definition for pagestyle headings added.}
+% \begin{macrocode}
+\let\ps@headings\ps@plain
+% \end{macrocode}
+%
+% \subsubsection{The Page Style ``part''}
+%
+% The page style \verb|part| contains the same foot as the page style
+% \verb|plain|. The head line is empty.
+%
+% This style is used when a new part is started. It can be
+% configured by redefining the macros \verb|FootRuleDepth|,
+% \verb|\FootFont|, and \verb|\PagenoFont|.
+%
+% \begin{macrocode}
+\newcommand\ps@part{%
+ \let\@mkboth=\@gobbletwo
+ \let\chaptermark=\@gobble
+ \let\sectionmark=\@gobble
+ \let\subsectionmark=\@gobble
+ \let\@oddhead=\@empty
+ \let\@evenhead=\@empty
+ \def\@oddfoot{\vbox{%
+ \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
+ \kern 5pt \hbox to \textwidth{\FootFont \footmark\hfil\null}}}%
+ \def\@evenfoot{\vbox{%
+ \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
+ \kern 5pt \hbox to \textwidth{\null\hfil\FootFont \footmark}}}}
+% \end{macrocode}
+%
+% The default page style is plain. This has been set by the book
+% style before. If we want our changes to take effect we have to
+% reinitialize the page style.
+%
+% \begin{macrocode}
+\pagestyle{plain}
+% \end{macrocode}
+%
+%
+%
+% \subsection{The Layout of the Titlepage}
+%
+% \begin{macro}{\DieTeXnischeKomoedie}
+% This macro produces the title page. It has three arguments. The
+% first argument is the number of the volume. This value is also
+% stored in the macro \verb|\volume| for later use. The second
+% argument is the number of the year and the third argument is the
+% date when this volume is released. The date is given as month and
+% year.
+%
+% The appearance of the cover page is determined by the macro
+% \verb|\CoverArt|. This can be redefined to get a different cover
+% page.
+% \begin{macrocode}
+\ifDTK@Author@\else
+ \newcommand\DieTeXnischeKomoedie[3]{%
+ \thispagestyle{empty}%
+ \gdef\volume{#1}%
+ \gdef\DTKedition{#2}%
+ \gdef\DTKdate{#3}%
+ \global\let\bibliography=\DTK@bibliography
+ \global\let\bibliographystyle=\@gobble
+ \CoverArt{#1}{#2}{#3}%
+ \newpage}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt}
+%
+% This macro implements the layout of the cover page of
+% DTK. It can be redefined to get a different layout.
+%
+% \changes{1.4}{2000/08/06}{Special effects via the packages
+% graphicx and color instead of PostScript specials.}
+% \changes{1.7}{2001/11/02}{Correction of the size of the number on
+% the title page for volumes after 1999.}
+% \begin{macrocode}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\newfont\CoverTitleFont{cmr17 scaled \magstep 5}
+\newfont\CoverNumberFont{cmr17 scaled 3583}
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\newcommand\CoverArt[3]{%
+ \ifx\CoverTitleFont\@undefined
+ \newfont\CoverTitleFont{ecrm1700 scaled \magstep 5}
+ \fi
+ \ifx\CoverNumberFont\@undefined
+ \newfont\CoverNumberFont{ecrm1700 scaled 2986}
+ \fi
+ \vspace*{-34pt}\hfill
+ \setbox\@tempboxa=\hbox to \textheight{\null\hfill\CoverTitleFont
+ \journalname\hfill\null}%
+ \@tempdimb=\ht\@tempboxa
+ \advance\@tempdimb by\dp\@tempboxa
+ \hbox to\@tempdimb{%
+ \vbox to\wd\@tempboxa{%
+ \vskip\wd\@tempboxa
+ \vss\rotatebox{90}{\box\@tempboxa}}\hss} \
+ \rule{\CoverArt@barwidth}{\textheight}
+ \begin{minipage}[b]{.7\textwidth}\raggedright
+ \rule{1em}{0pt}%
+ \dimen2=\textwidth\advance\dimen2-1em
+ \parbox{\dimen2}{\CoverArt@font
+ DANTE\\
+ Deutschsprachige\\
+ Anwendervereinigung
+ \TeX\ \eV}\\[1ex]
+ \dimen3=\textwidth\advance\dimen3-\CoverArt@gap
+ \hfill\rule{\dimen3}{\CoverArt@linewidth}%
+ \\[-\baselineskip]\null\hspace{1em}%
+ {\CoverArt@small\cover@sub{#1}{#2}{#3}}%
+ \\[-\baselineskip]\rule{0pt}{.617647\textheight}%
+ \CoverNumberFont
+ \null\hfill
+ \makebox(0,0)[br]{%
+ \textcolor{CoverArt@grey}{%
+ \CoverArt@strip@no #1;\hspace{1pt}%
+ }}%
+ \end{minipage}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{cover@sub}
+% Internal macro for typesetting the volume information on the
+% cover--front and back matter.
+% \changes{1.7}{2001/31/12}{Extracted to allow configuration for
+% "`Die \TeX nichen Kontakte"'}
+% \begin{macrocode}
+\newcommand\cover@sub[3]{%
+ #2. Jahrgang\quad Heft #1\quad #3%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{CoverArt@grey}
+% Define the color for the number on the cover.
+% \changes{1.4}{2000/08/06}{Color definition via color.sty}
+% \begin{macrocode}
+\ifDTK@Author@\else
+ \definecolor{CoverArt@grey}{gray}{.8}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@strip@no}
+% Extract the relevant part from the number of the issue.
+% \changes{1.7}{2001/11/02}{Correction of the macro to deal with
+% four digit numbers instead of striipng two digits. This is used
+% since the year 2000.}
+% \begin{macrocode}
+\def\CoverArt@strip@no#1/#2;{#1\raisebox{0.35ex}{\CoverTitleFont/}#2}
+%<*ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+\def\CoverArt@strip@no#1/#2#3#4#5;{%
+ #1\raisebox{0.35ex}{\CoverTitleFont/}#4#5}
+%</ninetyfive|ninetysix|ninetyseven|ninetyeight|ninetynine>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@linewidth}
+%
+% This macro determines the thickness of the horizontal rule
+% separating the publisher from the edition information.
+% \begin{macrocode}
+\newcommand\CoverArt@linewidth{0pt}%{1.2pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@barwidth}
+%
+% \begin{macrocode}
+\newcommand\CoverArt@barwidth{2.41pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@font}
+%
+% \begin{macrocode}
+\newcommand\CoverArt@font{\Large\raggedleft}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@small}
+%
+% \begin{macrocode}
+\newcommand\CoverArt@small{\footnotesize}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoverArt@gap}
+%
+% \begin{macrocode}
+\newcommand\CoverArt@gap{2em}
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\renewcommand\CoverArt[3]{
+ \ifx\CoverTitleFont\@undefined
+ \newfont\CoverTitleFont{cmr17 scaled \magstep 5}%
+ \fi
+ \begin{center}
+ {\LARGE DANTE\\[14pt]
+ \Large Deutschsprachige Anwendervereinigung \TeX\ \eV}%
+ \\\rule{\textwidth}{2pt}\par\vfill
+ \CoverTitleFont Die
+ \\[22pt] \TeX nische
+ \\[22pt] Kom{\"o}die
+ \par\vfill\rule{\textwidth}{2pt}\\[4pt]\large
+ Heft #1\hfill #2.\ Jahrgang\hfill #3
+ \normalsize
+ \end{center}\vspace*{28.5pt}}
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{List of Addresses}
+%
+% Addresses can be given anywhere throughout the whole
+% document. The address together with the page where it has been
+% given is stored in the index.
+%
+% The list of addresses is handled by the index mechanism of
+% \LaTeX. I (safely) assume that nobody has the desire to make an
+% index for a journal.
+%
+% \begin{macro}{\address}
+% The address macro takes three arguments. The first argument is the
+% first name the second is the last name and the third is the
+% address where several lines can be included which are separated
+% by \verb|\\|.
+%
+% The macro can be e.g. as follows:\\
+% \verb|\address{Gerd}{Neugebauer}%|\\
+% \verb| {Mainzer Str. 8\\56321 Rhens}|
+%
+%
+% The address is given to \verb|\index| to be stored in the .idx
+% file. This file is sorted and reformatted to produce the sorted
+% list of addresses.
+%
+% The problem was to get the correct (German) ordering. For this
+% purpose the \TeX{} macros which are (normally) part of a name
+% have to be expanded properly. Unfortunately plain expansion may
+% leave braces which confuse makeindex. To get rid of these braces
+% we have to scan the tokens and transfer those tokens that are not
+% braces.
+%
+% We use one big assumption. We assume that a name does not contain
+% a dollar sign. Well, it is rather unusual that mathematics is
+% part of a name.
+%
+% The better solution would be a future version of makeindex which
+% is able to cope with those problems (wait and pray:-)
+% \changes{1.5}{2001/06/05}{Some magic for doublequote}
+% \begin{macrocode}
+\chardef\DTK@cat=\the\catcode`\"
+\catcode`\"=13
+\newcommand\address[3]{%
+ \begingroup
+ \def\"##1{\@ifundefined{detex@@##1}{##1}%
+ {\csname detex@@##1\endcsname}}%
+ \ifcat a\noexpand"\else\let"=\"\fi
+ \def\ss{ss}%
+ \let\'=\relax
+ \let\`=\relax
+ \let\^=\relax
+ \let\.=\relax
+ \let\==\relax
+ \let\d=\relax
+ \let\b=\relax
+ \let\c=\relax
+ \let\v=\relax
+ \let\H=\relax
+ \let\t=\relax
+ \let\u=\relax
+ \let\~=\relax
+ \def\o{o}%
+ \def\O{O}%
+ \def\aa{aa}%
+ \def\AA{Aa}%
+ \def\l{l}%
+ \def\L{L}%
+ \def\ae{ae}%
+ \def\AE{Ae}%
+ \def\oe{oe}%
+ \def\OE{Oe}%
+ \def\TeX{TeX}%
+ \def\LaTeX{LaTeX}%
+ \def\LaTeXe{LaTeX2e}%
+ \let\null=\relax
+ \xdef\@ddress{#2, #1}%
+ \endgroup
+ \begingroup
+ \def\\{\string\\}%
+ \ifcat a\noexpand"\else\def\"{\string"}\fi
+ \def"{\string"}%
+ \def\null{}%
+ \expandafter\@strip\@ddress$%$
+ \index{\STRIP@*#1 #2!#3}%
+ \endgroup
+}
+\catcode`\"=\DTK@cat
+% \end{macrocode}
+% \end{macro}
+% For the removing of \TeX\ macros in addresses we need some
+% definitions to perform the mapping.
+% \begin{macrocode}
+\let\strip@grp={
+\let\strip@end=$%$
+\def\@strip{\def\STRIP@{}\strip@I}
+\def\strip@I{\let\strip@next=\strip@I
+ \futurelet\strip@CHAR\strip@II}
+\def\strip@II#1{%
+ \ifx\strip@CHAR\strip@end
+ \let\strip@next=\relax
+ \else\ifx\strip@CHAR\strip@grp
+ \strip@I #1$%$
+ \let\strip@next=\strip@I
+ \else\ifcat\strip@CHAR A
+ \xdef\STRIP@{\STRIP@#1}%
+ \else\ifcat\strip@CHAR.
+ \xdef\STRIP@{\STRIP@#1}%
+ \else\ifcat\strip@CHAR\space
+ \xdef\STRIP@{\STRIP@ #1}%
+ \fi\fi\fi\fi\fi
+ \strip@next}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\detex@@a{ae}
+\def\detex@@o{oe}
+\def\detex@@u{ue}
+\def\detex@@A{Ae}
+\def\detex@@O{Oe}
+\def\detex@@U{Ue}
+\def\detex@@s{ss}
+% \end{macrocode}
+%
+% \begin{environment}{theaddresses}
+% The addresses are collected in an environment Addresses. This
+% environment is used to customize the layout of this list.
+% \changes{1.5}{2001/04/08}{raggedright added.}
+% \changes{1.7}{2001/11/03}{boxing of address items and raggedbottom added.}
+% \begin{macrocode}
+\ifDTK@Author@\else
+\newenvironment{theaddresses}{%
+ \chapter{\addressname}\Label{addresses}
+ \begingroup
+ \columnsep=10pt
+ \addresssize
+ \def\addressitem##1##2##3{%
+ \par
+ \parbox{\columnwidth}{
+ \textbf{##1}\hfill[\ignorespaces ##3]%
+ \\ ##2}}
+ \begin{multicols}{2}%
+ \raggedbottom
+ \raggedright
+}{%
+ \end{multicols}%
+ \endgroup
+ }
+\fi
+\newcommand\addresssize{\footnotesize\parskip=6pt plus 2pt minus 3pt}
+% \end{macrocode}
+%
+% For older issues another definition has been used.
+% \begin{macrocode}
+%</class>
+%<*ninetyfive|ninetysix>
+\let\addresssize\relax
+%</ninetyfive|ninetysix>
+%<*class>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\listofaddresses}
+% This macro reads the index file which is assumed to contain the
+% properly formatted list of authors. If this file does not exist
+% then a warning is printed.
+%
+% \begin{macrocode}
+\ifDTK@Author@
+ \newcommand\listofaddresses{%
+ \typeout{*** listofaddresses not supported in articles.}}
+\else
+ \newcommand\listofaddresses{%
+ \InputIfFileExists{\jobname.ind}{}{%
+ \typeout{No file \jobname.ind.}%
+ \typeout{Use the following command to create it:\space\space
+ makeindex -s dtk.ist \jobname}%
+ \typeout{\space}}%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{The Table of Contents}
+%
+% \begin{macro}{\tableofcontents}
+% The table of contents should appear as a page of it's own. It
+% should have an appropriate headline if it is long
+% enough. Otherwise the first page has no headline and no page
+% number.
+%
+% \begin{macro}{\tableofcontents}
+% This macro produces the table of contents. It is not availlable
+% for single articles
+% \begin{macrocode}
+\ifDTK@Author@
+ \renewcommand\tableofcontents{%
+ \typeout{*** tabelofcontents not supported in articles.}}
+\else
+ \renewcommand\tableofcontents{%
+ \clearpage
+ \thispagestyle{empty}%
+ \markboth{\contentsname}{\contentsname}%
+ \ContentsArt
+ \begingroup
+ \parskip=\ContentsParSkip
+ \let\\=\relax
+ \TOC@configure
+ \@starttoc{toc}
+ \endgroup
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TOC@configure}
+% This macro can be used to redefine properties of the table of
+% contents.
+% \begin{macrocode}
+\let\TOC@configure\relax
+%</class>
+%<*ninetyseven|ninetyeight|ninetynine>
+\def\TOC@configure{\renewcommand{\bfdefault}{bdx}}
+%</ninetyseven|ninetyeight|ninetynine>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ContentsArt}
+% This macro is used to typeset the head of the table of contents.
+% \begin{macrocode}
+\newcommand\ContentsArt{%
+ \vspace*{-\headheight}\vspace*{-\headsep}\vspace*{-2pt}
+ \begin{minipage}{\textwidth}
+ \Huge \journalname\\[2pt]%
+ \rule{\textwidth}{2pt}\\[2pt]%
+ \null\hfill
+ \CoverArt@small
+ \cover@sub{\volume}{\DTKedition}{\DTKdate}
+ \end{minipage}\vspace{16pt minus 8pt}\par
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</class>
+%<*ninetyfive>
+\ifDTK@Author@\else
+ \renewcommand\ContentsArt{\part@nosubtitle{\contentsname}}
+\fi
+%</ninetyfive>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\DeclareFontShape{T1}{cmr}{bdx}{n}
+ {<5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88> ecrb10
+ }{}
+\DeclareFontShape{OT1}{cmr}{bdx}{n}
+ {<5><6><7><8><9><10><10.95><12>
+ <14.4><17.28><20.74><24.88> cmbdx10
+ }{}
+% \end{macrocode}
+%
+% The lines contained in the table of contents are determined by
+% the counter \verb|tocdepth|. The counter defines a level above
+% which the lines are suppressed in the table of contents.
+%
+% We are only interested in chapters and parts. Chapters have level
+% 0 and parts have level -1. Thus we set \verb|tocdepth| to 0.
+% \begin{macrocode}
+\setcounter{tocdepth}{0}
+% \end{macrocode}
+% The layout of the lines in the table of contents is determined by
+% the macros \verb|\l@|{\em type}. Some of them are redefined next.
+%
+% \begin{macro}{\l@part}
+% This macro determines the layout of the line in the table of
+% contents for parts. It simply imitates the layout of chapters
+% without additional space.
+% \changes{1.4}{2000/08/12}{Definition modified.}
+%
+% \begin{macrocode}
+\renewcommand\l@part[2]{%
+ \addpenalty{-\@highpenalty}%
+ \addvspace{0.5em plus 0pt}% space above part line
+ \@tempdima 1.5em
+ \begingroup
+ \bf
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\par
+ \penalty\@highpenalty
+ \endgroup
+ \addvspace{0.2em}%
+}
+% \end{macrocode}
+%
+% For older issues another definition has been used.
+% \begin{macrocode}
+%</class>
+%<*ninetyfive|ninetysix>
+\renewcommand\l@part[2]{%
+ \addpenalty{-\@highpenalty}%
+ \addvspace{0.5em plus 0pt}% space above part line
+ \@tempdima 1.5em
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup}
+%</ninetyfive|ninetysix>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@chapter}
+% This macro determines the layout of the line in the table of
+% contents for chapters. It simply imitates the layout of
+% sections.
+% \changes{1.4}{2000/08/12}{Definition modified.}
+%
+% \begin{macrocode}
+\renewcommand\l@chapter[2]{%
+ \begingroup
+ \vskip \z@ \@plus.2\p@
+ \@afterindenttrue
+ \interlinepenalty\@M
+ \@tempdima 1.5em\relax % number width
+ \@tempdimb 2.5em\relax % indent
+ \advance\leftskip \@tempdimb
+ \advance\rightskip \@tempdimb
+% \advance\leftskip \@tempdima
+ \noindent\hskip -\leftskip
+% \hbox to\@tempdimb{\hbox to\@tempdima{\hss #2}\hss}%
+ \hbox to\@tempdimb{#2\hss}%
+ #1\par
+ \endgroup}
+% \end{macrocode}
+%
+% For older issues another definition has been used.
+% \begin{macrocode}
+%</class>
+%<*ninetyfive|ninetysix>
+\renewcommand\l@chapter{\@dottedtocline{0}{1.5em}{2.3em}}
+%</ninetyfive|ninetysix>
+%<*class>
+% \end{macrocode}
+% \end{macro}
+%
+% For backward compatibility modes we have defined class options.
+% If an old layout is requested via a class option then we have to
+% load now the appropriate class option file.
+% \begin{macrocode}
+\@ifundefined{DTK@layout}{}{\input dtk\DTK@layout.clo}
+% \end{macrocode}
+%
+% Now the class is complete.
+% \begin{macrocode}
+%</class>
+%<*logos>
+% \end{macrocode}
+%
+%
+% \section{The Package dtklogos}
+%
+% This section contains some useful abbreviations. They are mainly
+% some kind of logos.
+% \changes{1.4}{2000/08/27}{Logos moved to a separate package.}
+% \begin{macrocode}
+\ProvidesPackage{dtklogos}[\filedate\space\fileversion\space gene]
+% \end{macrocode}
+%
+% First we have to determine which kind of \LaTeX{} is running. We use
+% the existence of the macro \verb|\documentclass| to see if we have a
+% \LaTeXe. This macro should not be defined in \LaTeX\,2.09.
+% \begin{macrocode}
+\newif\ifOldLaTeX
+\@ifundefined{documentclass}{\OldLaTeXtrue}{\OldLaTeXfalse}
+% \end{macrocode}
+% The following hack is from Bernd Raichle.
+%
+% For \LaTeX\,2.09 (with or without NFSS) we need something like
+% the \verb|\smaller| from the obsolete ``smaller.sty'' to emulate
+% SmallCaps for (nearly) all types of fonts. For SmallCaps it is
+% required to reduce further than for \verb|\smaller|. Thus we make
+% a new definition for \verb|\logo@smaller| which is oriented at
+% the ``math sizes'' (here: \verb|\scriptfont<fam>|) which is
+% defined in \LaTeXe.
+%
+% \begin{macrocode}
+\ifOldLaTeX
+\expandafter\ifx\csname selectfont\endcsname\relax
+% \end{macrocode}
+%
+% For OFSS a hack is needed to switch back to Family/Series/Shape.
+% For this purpose we ``abuse'' the ``math group/fam'' which is
+% changed similar to the macros from the file ``lfonts.tex''.
+% \begin{macrocode}
+ \newcommand{\logo@sm@ller}{\relax
+ \expandafter\logo@sm@ll@r\expandafter{\the\fam}}
+ \newcommand{\logo@sm@ll@r}[1]{%
+ % \ifx\@currsize\tiny \tiny\fi
+ \ifx\@currsize\scriptsize \tiny\fi
+ \ifx\@currsize\footnotesize \tiny\fi
+ \ifx\@currsize\small \scriptsize\fi
+ \ifx\@currsize\normalsize \scriptsize\fi
+ \ifx\@currsize\large \footnotesize\fi
+ \ifx\@currsize\Large \normalsize\fi
+ \ifx\@currsize\LARGE \large\fi
+ \ifx\@currsize\huge \Large\fi
+ \ifx\@currsize\Huge \huge\fi
+ \ifcase#1\relax\rm\or\mit\or\cal\or\tenex % not sure about the tenex
+ \or\it\or\sl\or\bf\or\tt\or\sf\or\sc\or\ly\fi}
+\else
+% \end{macrocode}
+%
+% With NFSS (for \LaTeX\,2.09) we can change the size indepenently
+% from the other font properties. Thus things are easier.
+% \begin{macrocode}
+ \newcommand{\logo@sm@ller}{%
+ \relax\@nomath\logo@smaller
+ \ifx\f@size\@vpt \else
+ \ifx\f@size\@vipt \fontsize\@vpt{6pt}\fi
+ \ifx\f@size\@viipt \fontsize\@vpt{6pt}\fi
+ \ifx\f@size\@viiipt \fontsize\@vipt{7pt}\fi
+ \ifx\f@size\@ixpt \fontsize\@vipt{7pt}\fi
+ \ifx\f@size\@xpt \fontsize\@viipt{8pt}\fi
+ \ifx\f@size\@xipt \fontsize\@viiipt{9.5pt}\fi
+ \ifx\f@size\@xiipt \fontsize\@viiipt{9.5pt}\fi
+ \ifx\f@size\@xivpt \fontsize\@xpt{12pt}\fi
+ \ifx\f@size\@xviipt \fontsize\@xiipt{14pt}\fi
+ \ifx\f@size\@xxpt \fontsize\@xivpt{18pt}\fi
+ \ifx\f@size\@xxvpt \fontsize\@xxpt{25pt}\fi
+ \selectfont
+ \fi}
+% \end{macrocode}
+%
+% The first versions of NFSS have used the macro name \verb|\size|
+% instead of \verb|\fontsize|.
+% \begin{macrocode}
+ \@ifundefined{fontsize}{\let\fontsize=\size}{}
+\fi
+\newcommand{\logo@smaller}{\protect\logo@sm@ller}
+\fi
+% \end{macrocode}
+%
+% \subsection{Macros from texnames.sty}
+%
+% The following macros are taken from the file {\tt texnames.sty}
+% version \verb|1.09| from \verb|<16 March 1993>| by Nelson
+% H.\,F.~Beebe. I have simply included the definitions here to avoid
+% additional files to be distributed with dtk.dtx. The original
+% documentation has been wrapped into the doc format. And here it goes:
+%
+% In the following, we first give the ``official'' definition,
+% then follow it with spelling variants. Alternate definitions
+% are discarded in favor of the official one. Each family is
+% separated by a line like the following one.
+%
+% \begin{macro}{\TeX}
+% Only change from plain.tex is the \verb|\spacefactor| assignment
+% (suggested by Phil Taylor), so that \TeX\ at the end of a
+% sentence isn't treated as an abbreviation.
+%
+% \begin{macrocode}
+\renewcommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX%
+ \spacefactor1000 }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AmS}
+% From the AMS tex/ams/amslatex/fontsel/nfssinst.tex file:
+% \begin{macrocode}
+\providecommand\AmS{%
+ \(\cal A\)\kern-.1667em\lower.5ex\hbox
+ {\(\cal M\)}\kern-.125em{\(\cal S\)}}
+\providecommand\AMS{\AmS}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AmSLaTeX}
+% \begin{macrocode}
+\providecommand\AmSLaTeX{\AmS-\LaTeX}
+\providecommand\AMSLaTeX{\AmSLaTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AmSTeX}
+% Mike Spivak's amstex/amstex.tex 1.1d [26-Aug-1988] has\\
+% \verb|\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox|\\
+% \verb| {\textfontii M}\kern-.125em{\textfontii S}-\TeX}|\\
+% and 2.1 [05-Apr-1991] has an equivalent definition.
+% AmSTeX's \verb|\textfontii| is exactly the same as \verb|\cal|, which
+% all \TeX variants understand.
+%
+% \begin{macrocode}
+\providecommand\AmSTeX{%
+ $\cal A$\kern-.1667em\lower.5ex\hbox{$\cal M$}%
+ \kern-.125em$\cal S$-\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AMSTEX}
+% Leslie Lamport's latex/tmanual.tex [10-Jul-1984] (an early
+% draft of the book) defines it in uppercase with the standard
+% definition.
+% \begin{macrocode}
+\providecommand\AMSTEX{\AmSTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AMSTEX}
+% Barbara Beeton's latex/deproc.sty [24-Apr-1986] and inputs/tugbot.sty
+% [11-Jan-1988] uses this spelling, but the definition\\
+% \verb|\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex \hbox{$\cal|\\
+% \verb|M$}\kern-.2em\cal S$-\TeX}|
+% \begin{macrocode}
+\providecommand\AMSTeX{\AmSTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BibTeX}
+% The definitions of \verb|\BibTeX| and \verb|\SLiTeX| in Leslie Lamport's
+% latex/local.tex lower the E by 0.7ex, while \TeX in plain.tex lowers
+% it by 0.5ex. Oren Patashnik's bibtex/btxdoc.tex and bibtex/btxhak.tex
+% [08-Feb-1988] and bibtex/bibtex.web 0.99c [xx-Feb-1988] use this same
+% name and definition, but Oren said using \TeX here is ok. (Curiously,
+% \LaTeX itself does not define macros for any \TeX ware except \LaTeX and
+% \TeX!)
+%
+% \begin{macrocode}
+\ifOldLaTeX
+ \newcommand{\BibTeX}{\protect\pBibTeX}
+ \newcommand{\pBibTeX}{B\kern-.05em%
+ \hbox{\logo@smaller I\kern-.025emB}\kern-.08em%
+ \-\TeX}
+\else
+ \DeclareRobustCommand{\BibTeX}{B\kern-.05em%
+% \end{macrocode}
+%
+% The following hack comes from the definition of the macro \LaTeX\
+% cf.~file ``ltlogos.dtx'' from the \LaTeXe\ distribution. der
+% \begin{macrocode}
+ \hbox{$\m@th$% %% force math size calculations
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ I\kern-.025emB}%
+ \kern-.08em%
+ \-\TeX}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BIBTeX}
+% Leslie Lamport uses this spelling in latex.tex, but not as a
+% macro. We include it for consistency with AMSTeX.
+%
+% \begin{macrocode}
+\providecommand\BIBTeX{\BibTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BIBTEX}
+% Leslie Lamport's latex/slides.tex [05-Jun-1984],
+% latex/tmanual.tex [10-Jul-1984] (an early draft of the book),
+% and latex/lerrata.tex [23-Jul-1985] have this spelling, but the
+% definition \verb|BIB\kern-.1em\TeX|.
+%
+% \begin{macrocode}
+\providecommand\BIBTEX{\BibTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LAMSTeX}
+% From tugboat.com 1.08 [24-Oct-1990].
+%
+% \begin{macrocode}
+\providecommand\LAMSTeX{%
+ L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}%
+ \kern-.2em\lower.376ex\hbox{\the\textfont2 M}%
+ \kern-.125em {\the\textfont2 S}-\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LamSTeX}
+% This is just a variant of the macro above.
+%
+% \begin{macrocode}
+\providecommand\LamSTeX{\LAMSTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LAmSTeX}
+% This variant seems likely to appear:
+%
+% \begin{macrocode}
+\providecommand\LAmSTeX{\LAMSTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaTeX}
+% The definition from latex.tex (\LaTeX{} VERSION 2.09 $<$14 January
+% 1991$>$) and bibtex.web 0.99c [xx-Feb-1988] lowers the E slightly
+% more than \TeX, but consistency seems more desirable. See
+% comments at \BibTeX. Different definitions are given by
+% latex/deproc.sty [24-Apr-1986], amstex/man.sty [15-Dec-1986]
+% inputs/tugbot.sty [11-Jan-1988], and latex/tugboat.com 1.08
+% [24-Oct-1990].
+%
+% \begin{macrocode}
+\providecommand\LaTeX{%
+ L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LATEX}
+% latex/slides.tex [05-Jun-1984] and latex/lerrata.tex [23-Jul-1985]
+% have this spelling, but different definitions
+%
+% \begin{macrocode}
+\providecommand\LATEX{\LaTeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaTeXTeX}
+% This logo is invented in \verb|dtk.cls| to denote either \TeX{} or
+% \LaTeX.
+%
+% \begin{macrocode}
+\ifOldLaTeX
+ \newcommand\LaTeXTeX{(\kern-.15emL\kern-.36em\raise.3ex\hbox{\sc
+ a}\kern-.3em)\kern-.15em\TeX}%
+\else
+ \DeclareRobustCommand{\LaTeXTeX}{(\kern-.15emL\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht0{\hbox{$\m@th$%
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }\kern-.2em)%
+ \kern-.15em%
+ \TeX}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MF}
+% Don Knuth's mf.web 2.7 [xx-Sep-1990] and Barbara Beeton's
+% latex/deproc.sty [24-Apr-1986] use an equivalent of this definition.
+% The font is variously named \verb|\logo|, \verb|\manfnt|, and
+% \verb|\mf|. plain.tex
+% preloads \verb|\manfnt|. manfnt has the letters A, E, F, M, N, O, T in
+% various sizes plus extra symbols for Don Knuth's books Computers and
+% Typesetting, and Concrete Mathematics, while logo10 has only those
+% letters in one size. AmSTeX uses \verb|\logo| in amsppt.sty and
+% imappt.sty, so we should avoid it, and tugboat.com uses
+% \verb|\mf| for \verb|{\smc Metafont}|. We therefore use
+% \verb|\manfnt| here, defining it if necessary. QUESTION: should
+% we use manfnt, or logo10?
+%
+% \begin{macrocode}
+\ifOldLaTeX
+ \ifx\manfnt\@undefined
+ \font\manfnt=logo10
+ \fi
+ \ifx\manfntsl\@undefined
+ \font\manfntsl=logosl10
+ \fi
+ \newcommand\MF{\begingroup
+ \ifdim\fontdimen1\font>0pt \let\manfnt=\manfntsl \fi
+ {\manfnt META}\-{\manfnt FONT}\endgroup\spacefactor1000 }%
+ \newcommand\MP{\begingroup
+ \ifdim\fontdimen1\font>0pt \let\manfnt=\manfntsl \fi
+ {\manfnt META}\-{\manfnt POST}\endgroup\spacefactor1000 }%
+\else
+% \end{macrocode}
+%
+% The following improved definitions are taken from mflogo by Ulrik
+% Vieth.
+%
+% \begin{macrocode}
+ \DeclareFontFamily{U}{logo}{}
+ \DeclareFontShape{U}{logo}{m}{n}{
+ <8> <9> gen * logo
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logo10
+ }{}
+ \DeclareFontShape{U}{logo}{m}{it}{
+ <8> <9> gen * logosl
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logosl10
+ }{}
+ \DeclareFontShape{U}{logo}{m}{sl}{
+ <-> ssub * logo/m/it
+ }{}
+ \DeclareFontShape{U}{logo}{sbc}{n}{
+ <8> <9> sub * logo/m/n
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logobf10
+ }{}
+ \DeclareFontShape{U}{logo}{b}{n}{
+ <8> <9> sub * logo/m/n
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logod10
+ }{}
+ \DeclareFontShape{U}{logo}{bx}{n}{
+ <-> ssub * logo/b/n
+ }{}
+ \DeclareRobustCommand\logofamily{%
+ \not@math@alphabet\logofamily\relax
+ \fontencoding{U}\fontfamily{logo}\selectfont}
+ \DeclareTextFontCommand{\textlogo}{\logofamily}
+% \end{macrocode}
+%
+% \changes{1.4}{2000/08/06}{Hyphenation of meta-font and meta-post only.}
+%
+% \begin{macrocode}
+ \newcommand\MF{\mbox{\textlogo{META}}\-\mbox{\textlogo{FONT}}\@}
+ \newcommand\MP{\mbox{\textlogo{META}}\-\mbox{\textlogo{POST}}\@}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\METAFONT}
+% I cannot find any ``official'' uses of this alternate, but it
+% seems likely that people will use it.
+%
+% \begin{macrocode}
+\providecommand\METAFONT{\MF}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\METAPOST}
+% In analogy to \verb|METAFONT|.
+%
+% \begin{macrocode}
+\providecommand\METAPOST{\MP}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SLITEX}
+% Leslie Lamport's latex/slides.tex [05-Jun-1984]. His
+% latex/lerrata.tex [23-Jul-1985] and latex/tmanual.tex
+% [10-Jul-1984] (an early draft of the book) define it as
+% SLI\TeX! The \LaTeX\ User's Guide and Reference Manual (1986)
+% appears to use small caps, and possibly kerning, for Sli.
+% I need to ask Leslie to suggest a preferred definition.
+%
+% \begin{macrocode}
+\providecommand\SLITEX{%
+ S\kern-.065em L\kern-.18em\raise.32ex\hbox{i}%
+ \kern-.03em\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SLiTeX}
+% latex/local.tex (sample Local Guide) [27-Oct-1988] uses
+% this name, but defines it as\\
+% \verb|{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern|\\
+% \verb| -.1667em\lower.7ex\hbox{E}\kern-.125emX}|\\
+% with an extra-low E, and kerned Sli in small caps. Is this
+% what the \LaTeX\ User's Guide and Reference Manual (1986) used?
+%
+% \begin{macrocode}
+\providecommand\SLiTeX{\SLITEX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SliTeX}
+% latex/slitex.tex [08-Jun-1988] uses SliTeX in typeouts,
+% but not as a macro -- what a way to confuse the user.
+%
+% \begin{macrocode}
+\providecommand\SliTeX{\SLITEX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SLITeX}
+% I cannot find a use of this one, but it seems a likely
+% candidate anyway, and is consistent with AMSTeX and BIBTeX.
+%
+% \begin{macrocode}
+\providecommand\SLITeX{\SLITEX}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Additional Macros}
+%
+% Some additional logos showed up during the years they are
+% collected in this section.
+%
+% \begin{macro}{\NTS}
+% This one comes from a communication with Bernd Raichle.
+%
+% \begin{macrocode}
+\providecommand\NTS{\mbox{\mathsurround=0pt
+ \(\cal N\mkern -4mu\lower .5ex\hbox{$\cal T$}\mkern -2mu S\)}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MakeIndex}
+% This one comes from a communication with Bernd Raichle based on
+% makeindex.tex -- released 17 February 1987 by Leslie Lamport.
+% \begin{macrocode}
+\providecommand\MakeIndex{\textit{Make\-Index}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\emTeX}
+%
+% \changes{1.3}{1997/02/03}{logo added.}
+% \begin{macrocode}
+\providecommand\emTeX{{em\TeX}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PublicTeX}
+%
+% \changes{1.3}{1997/02/03}{logo added.}
+% \begin{macrocode}
+\providecommand\PubliCTeX{PubliC\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TeXXeT}
+% This one comes from the sources of web2c.
+% \changes{1.2}{1996/12/15}{logo added.}
+% \begin{macrocode}
+\providecommand\TeXXeT{%
+ \TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TeXeT}
+% This one comes from the sources of web2c.
+% \changes{1.2}{1996/12/15}{logo added.}
+% \begin{macrocode}
+\providecommand\TeXeT{%
+ \TeX-X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\WinEdt}
+% This one comes from Volker RW Schaa.
+% \changes{1.7}{2001/11/02}{logos added.}
+% \begin{macrocode}
+\providecommand\WinEdt{\mbox{\textsf{WinEdt}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\WinEdtKK}
+% This one comes from Volker RW Schaa.
+% \changes{1.7}{2001/11/02}{logos added.}
+% \begin{macrocode}
+\providecommand\WinEdtKK{\mbox{\textsf{WinEdt2k}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LyX}
+% This one comes from an article by Laura E. Jackson and Herbert Vo\ss.
+% \changes{1.7}{2001/11/02}{logo added.}
+% \begin{macrocode}
+\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Additional Macros for Acronyms}
+%
+% The following macros are maily form the predecessor style
+% file. Some new ones have been added.
+%
+% \begin{macro}{\eV}
+% The abbreviation for e.V\kern-.18em.\ is defined in
+% this macro. The kerning of the letters is corrected manually.
+%
+% \begin{macrocode}
+ \providecommand\eV{e.V\kern-.18em\@ifnextchar.{}{.}}
+% \end{macrocode}
+% Disclaimer: I have not invented this macro. It has been defined
+% this way in the predecessor style.
+% \begin{macrocode}
+%</logos>
+%<*ninetyfive>
+ \renewcommand\eV{e.\kern-.18emV\kern-.18em\@ifnextchar.{}{.}}
+%</ninetyfive>
+%<*logos>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dante}
+% The ``official logo'' for DANTE e.V\kern-.18em.\ is defined.
+% \begin{macrocode}
+\providecommand\dante{DANTE \eV}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Dante}
+% The long name of DANTE.
+% \begin{macrocode}
+\providecommand\Dante{DANTE,
+ Deutschsprachige Anwendervereinigung \TeX~\eV}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DTK}
+% The long name of this booklet, eh journal.
+% \begin{macrocode}
+\providecommand\DTK{Die \TeX\-ni\-sche Ko\-m{\"o}\-die}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaTeXe}
+% If \verb|\LaTeXe| is not defined then define it. Since this macro
+% is so essential we just want to be sure that it exists.
+% \begin{macrocode}
+\providecommand\LaTeXe{%
+ \LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\PS}
+% We define the logo for Post\-Script.
+% \begin{macrocode}
+\providecommand\PS{Post\-Script}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PiC}
+% For some reason this is not defined in texnames.sty. Since it has
+% been in the predecessor of this style it is also defined here.
+% \begin{macrocode}
+\providecommand\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PiCTeX}
+% Now the previous macro is combined with \TeX.
+% \begin{macrocode}
+\providecommand\PiCTeX{\PiC\kern-.11em\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TUG}
+% The \TeX{} Users Group.
+% \begin{macrocode}
+\providecommand\TUG{\TeX{} Users Group}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TUGboat}
+% The communications of the \TeX{} Users Group.
+% \begin{macrocode}
+\providecommand\TUGboat{\textsl{TUGboat}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TUB}
+% The communications of the \TeX{} Users Group.
+% \begin{macrocode}
+\let\TUB\TUGboat
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TTN}
+% The communications of the \TeX{} Users Group
+% \begin{macrocode}
+\providecommand\TTN{\textsl{\TeX{} and TUG NEWS}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\NFSS}
+% The New Font Selection Scheme.
+% \begin{macrocode}
+\providecommand\NFSS{\textsf{NFSS}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NTS}
+% I don't know where this one comes from.
+% \changes{1.4}{2000/08/06}{NTS logo added.}
+% \begin{macrocode}
+\providecommand\NTS{\leavevmode
+ \hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}\kern-0.2emS$}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\eTeX}
+% I don't know where this one comes from.
+% \changes{1.4}{2000/08/06}{eTeX logo added.}
+% \begin{macrocode}
+\providecommand\eTeX{{\leavevmode\hbox{$\varepsilon$}-\TeX}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</logos>
+% \end{macrocode}
+%
+%
+% \section{The Package dtk-pdf for PDF Reprints}
+% \changes{1.4}{2000/08/12}{Packet dtk-pdf integrated.}
+%
+% The following section contains the package which is used to
+% produce the PDF files for the WWW.
+%
+% \begin{macrocode}
+%<*pdf>
+% \end{macrocode}
+%
+% A lot of packages are required to get things right.
+%
+% \begin{macrocode}
+\ProvidesPackage{dtk-pdf}[\filedate\space\fileversion\space gene]
+% \end{macrocode}
+%
+% A lot of packages are required to get things right.
+%
+% \begin{macrocode}
+\RequirePackage{ae,multicol,graphicx,color}
+\RequirePackage[bookmarks=false]{hyperref}
+% \end{macrocode}
+%
+% Configure the \verb|hyperref| package appropriately.
+%
+% \begin{macrocode}
+\hypersetup{a5paper,colorlinks,urlcolor=blue}
+% \end{macrocode}
+%
+% Slightly adjust the page on the paper.
+%
+% \begin{macrocode}
+\oddsidemargin=-10mm
+\evensidemargin=-10mm
+\topmargin=-15mm
+% \end{macrocode}
+%
+% \begin{macro}{\Volume}
+% This macro contains the number of the volume in which the current
+% article has been published.
+% \begin{macrocode}
+\newcommand\Volume{?/??}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Pages}
+% This macro contains the numbers of the pages on which the
+% curtrent article has been published originally.
+% \begin{macrocode}
+\newcommand\Pages{???}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\volume}
+% This macro is redefined to show appropriate information.
+% \begin{macrocode}
+\renewcommand\volume{\Volume\ -- Nachdruck}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\titlemark}
+% This macro is used in some old articles. Nowadays it simply has
+% to eat up one following argument.
+% \begin{macrocode}
+\let\titlemark\@gobble
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macrocode}
+\newcount\AdNo \AdNo=0
+% \end{macrocode}
+%
+% \begin{macro}{\Address}
+% This macro is used to typeset all adresses.
+% \begin{macrocode}
+\newcommand\Address{\bigskip\par\advance\AdNo1
+ \begin{multicols}2 \count255=0\relax
+ \loop\csname Address\the\count255\endcsname\advance\count255 1
+ \ifnum\count255<\AdNo \repeat
+ \end{multicols}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macrocode}
+\renewcommand\address[3]{%
+ \expandafter\gdef\csname Address\the\AdNo\endcsname
+ {\par\parbox{.45\textwidth}{\footnotesize\raggedright
+ #1 #2 \\#3}}\advance\AdNo1\relax}
+% \end{macrocode}
+%
+% Store the address of DANTE as first address in the list.
+%
+% \begin{macrocode}
+\address{\href{http://www.dante.de/}{\Dante}}{}{%
+ \href{http://www.dante.de/}{Postfach 10\,18\,40\\
+ 69008 Heidelberg\\
+ \texttt{dante@dante.de}}}
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
+\providecommand\DTK@keywords{}
+% \end{macrocode}
+%
+% \begin{macro}{\m@ketitle}
+% Save the meaning of \verb|\maketitle| to extend it.
+% \begin{macrocode}
+\let\m@ketitle=\maketitle
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% The macro is redefined to typeset the head of the single article.
+% Th information for the author and the title are stored in the PDF
+% information fields aswell. This may lead to problems if they
+% contain certain macros.
+% \changes{1.5}{2001/10/21}{Mapping of certain macros}
+% \begin{macrocode}
+\renewcommand\maketitle{%
+ \thispagestyle{empty}%
+ \newlength{\lx}\settowidth{\lx}{\Large\DTK}%
+ \advance\lx3em\quad
+ \href{http://www.dante.de/dante/DTK}{%
+ \rotatebox{90}{\hspace*{1.5em}\Large\DTK}}
+ \rule{.9pt}{\lx}\quad
+ %
+ \begin{minipage}[b]{.75\textwidth}\parskip=1ex
+ {\raggedleft\large
+ \href{http://www.dante.de/}{DANTE\\
+ Deutschsprachige\\
+ Anwendervereinigung \TeX\ e.V.}\medskip\par
+ }
+ \ifx\@author\empty\else\@author: \fi\emph{\@title}, \DTK\
+ \Volume, S.\ \Pages.\medskip
+
+ \scriptsize Reproduktion oder Nutzung dieses Beitrags durch
+ konventionelle, elektronische oder beliebige andere Verfahren ist
+ nur im nicht-kommerziellen Rahmen gestattet. Verwendungen in
+ gr"o"serem Umfang bitte zur Information bei \dante{} melden. F\"ur
+ kommerzielle Nutzung ist die Zustimmung der Autoren einzuholen.
+
+ \DTK\ ist die Mitgliedszeitschrift von \Dante. Einzelne Hefte
+ k\"onnen von Mitgliedern bei der Gesch\"aftsstelle von \Dante\
+ erworben werden. Mitglieder erhalten \DTK\ im Rahmen ihrer
+ Mitgliedschaft.
+ \end{minipage}
+
+ \begingroup
+ \def\LaTeX{LaTeX}%
+ \def\BibTeX{BibTeX}%
+ \def\TeX{TeX}%
+ \def\LyX{LyX}%
+ \hypersetup{%
+ pdftitle=\@title,
+ pdfauthor=\@author,
+ pdfkeywords={\DTK@keywords},
+ pdfsubject={\volume},
+ pdfstartview={FitBH}
+ }%
+ \endgroup
+ \m@ketitle
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcentigrade}
+% This macro is defined for backward compatibility.
+% \begin{macrocode}
+\def\textcentigrade{\textcelsius}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \verb|\guillemotleft|/\verb|\guillemotright| from the polish
+% version of the ``computer modern''.
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \DeclareFontEncoding{OT4}{}{}%
+ \DeclareFontEncoding{TS1}{}{}%
+ \DeclareFontSubstitution{OT4}{cmr}{m}{n}%
+ \DeclareTextCommand{\guillemotleft}{\encodingdefault}{%
+ {\fontencoding{OT4}\fontfamily{cmr}\selectfont\char174}}%
+ \DeclareTextCommand{\guillemotright}{\encodingdefault}{%
+ {\fontencoding{OT4}\fontfamily{cmr}\selectfont\char175}}%
+ \DeclareTextCommand{\guilsinglleft}{\encodingdefault}{%
+ {\fontencoding{T1}\fontfamily{cmr}\selectfont\char14}}%
+ \DeclareTextCommand{\guilsinglright}{\encodingdefault}{%
+ {\fontencoding{T1}\fontfamily{cmr}\selectfont\char15}}%
+ \DeclareTextCommand{\textperthousand}{\encodingdefault}{%
+ {\fontencoding{TS1}\fontfamily{cmr}\selectfont\char135}}%
+}
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
+\newif\ifmaintitle
+% \end{macrocode}
+%
+% Old versions of \LaTeX\ used to define \verb|\footheight|. Some
+% articles try to redefine this length. Nowadays it is simply
+% ignored.
+% \begin{macrocode}
+\newlength\footheight
+% \end{macrocode}
+%
+% Now the packet is complete.
+%
+% \begin{macrocode}
+%</pdf>
+% \end{macrocode}
+%
+%
+% \section{The Index Style}
+% \changes{1.4}{2000/08/27}{Index file integrated into the dtx file.}
+%
+% The index style is used to sort the authors of the journal for
+% the list of all authors. Makeindex is used for this purpose. Here
+% we have to define the appropriate configuration file.
+%
+% \begin{macrocode}
+%<*ist>
+actual '*'
+preamble "\\begin{theaddresses}"
+postamble "\n\\end{theaddresses}\n"
+item_0 "\n \\addressitem{"
+item_2 "}{"
+item_x1 "}{"
+item_x2 "}{"
+delim_0 "}{"
+delim_1 "}{"
+delim_2 "}{"
+delim_t "}"
+group_skip ""
+quote '$'
+%</ist>
+% \end{macrocode}
+%
+% That's all.
+%
+% \Finale
+%
+\endinput
+%
+% Local Variables:
+% mode: latex
+% TeX-master: t
+% End:
diff --git a/Master/texmf-dist/source/latex/dtk/dtk.ins b/Master/texmf-dist/source/latex/dtk/dtk.ins
new file mode 100644
index 00000000000..d768eaf5ab9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/dtk/dtk.ins
@@ -0,0 +1,75 @@
+%%------------------------------------------------------------------
+%% Driver file to extract the dtx style and class files.
+%%
+%% Copyright (C) 1995-1996 Gerd Neugebauer
+%% Copyright (C) 1997-2001 DANTE,
+%% Deutschsprachige Anwendervereinigung TeX e.V.
+%%
+%% dtk.ins is distributed in the hope that it will be useful, but
+%% WITHOUT ANY WARRANTY. No author or distributor accepts
+%% responsibility to anyone for the consequences of using it or for
+%% whether it serves any particular purpose or works at all, unless
+%% he says so in writing.
+%%
+%% Everyone is granted permission to copy, modify and redistribute
+%% dtk.ins, provided this copyright notice is preserved and any
+%% modifications are indicated.
+%%
+%%------------------------------------------------------------------
+%%
+%% Run this file through TeX or LaTeX to extract the files.
+%% You need the docstrip package as distributed with LaTeX2e.
+%% It is also available as seperate package from any CTAN site.
+%%
+%%------------------------------------------------------------------
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% $Id: dtk.ins,v 1.5 2002/04/10 20:57:17 gene Exp $
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input docstrip.tex
+\keepsilent
+\askonceonly
+
+\generate{\file{dtk.sty}{\from{dtk.dtx}{class}}
+ \file{dtk.cls}{\from{dtk.dtx}{class}}
+ \file{dtk95.clo}{\from{dtk.dtx}{ninetyfive}}
+ \file{dtk96.clo}{\from{dtk.dtx}{ninetysix}}
+ \file{dtk97.clo}{\from{dtk.dtx}{ninetyseven}}
+ \file{dtk98.clo}{\from{dtk.dtx}{ninetyeight}}
+ \file{dtk99.clo}{\from{dtk.dtx}{ninetynine}}
+ \file{dtk00.clo}{\from{dtk.dtx}{twothousand}}
+ \file{dtk01.clo}{\from{dtk.dtx}{one}}
+ \file{dtk02.clo}{\from{dtk.dtx}{two}}
+ \file{dtklogos.sty}{\from{dtk.dtx}{logos}}
+ \file{dtk-pdf.sty}{\from{dtk.dtx}{pdf}}
+ }
+\nopreamble\nopostamble
+\generate{\file{dtk.ist}{\from{dtk.dtx}{ist}}
+ }
+
+\Msg{****************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by (La)TeX:}
+\Msg{*}
+\Msg{* \space\space dtk.cls dtk.sty}
+\Msg{* \space\space dtk95.clo dtk96.clo dtk97.clo dtk98.clo dtk99.clo}
+\Msg{* \space\space dtk00.clo dtk01.clo dtk02.clo}
+\Msg{* \space\space dtklogos.sty dtk-pdf.sty}
+\Msg{*}
+\Msg{* and the following file into a directory searched by makeindex:}
+\Msg{*}
+\Msg{* \space\space dtk.ist}
+\Msg{*}
+\Msg{* Additionally copy the following file to a directory searched}
+\Msg{* by BibTeX:}
+\Msg{*}
+\Msg{* \space\space dtk.bst}
+\Msg{*}
+\Msg{* To produce the documentation run dtk.tex through LaTeX,}
+\Msg{* makeindex, and LaTeX twice again.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{****************************************************************}
+
+\endbatchfile
+\endinput