%\iffalse %% Time-stamp: "dtk.dtx 2006-08-11 18:18:53 CET Mittwoch RN/HjG/hv" %<*!ist> %% %%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%^^A $Id: dtk.dtx,v 1.9b 2006/08/11 21:03:42 hv Exp hv $ %%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 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-2006 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> %% This package is still under development and may be replaced with %% a new version which provides enhanced functionality. % %% %\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.} % \changes{1.9-pre}{2005/02/04}{Merge changes due to RN made to % generated files back into DTX (HjG).} % \changes{1.9-pre}{2005/02/04}{M-x delete-trailing-whitespace (HjG).} % \changes{1.9-pre}{2005/03/23}{File userpackages.tex now generated (RN/HjG).} % \changes{1.9a}{2005/10/29}{added flushleft environment (RN/hv).} % \changes{1.9b}{2006/08/11}{added macro CTANurl (hv).} % \changes{1.10}{2007/08/28}{new dtx file created (hv).} %^^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{2624} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% \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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % \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{\CTANurl} % Use this macro instead of \verb+\url+ for references to the \CTAN. % It uses the \verb+\href+ and \verb+\nolinkurl+ from the package \Package{hyperref}. % An example for a reference is \verb+\CTANurl{graphics/pstricks/}+: \CTANurl{graphics/pstricks/} % % \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 itself % 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.10 $} \xdef\filedate{\DTKrcs$Date: 2007/08/28 18:17:42 $} \let\docversion=\fileversion \let\docdate=\filedate % % \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} % % \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} % % ??? % % \begin{macrocode} \newif\ifDTK@Draft@ \newif\ifDTK@lineno@ \DTK@lineno@false % \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} % % ??? % % \begin{macrocode} % RN 2005-01-15, siehe `bibtopic.sty'. \newcommand\DTK@isnum[1]{% \if!\ifnum9<1#1!\else_\fi \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } % RN 2005-01-31 \newcommand*\DTK@@thelinenumber{\thepage-\arabic{linenumber}} %%%% % \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} % RN 2005-01-16 \DeclareOption{draft}{% \DTK@Draft@true \DTK@lineno@true \PassOptionsToPackage{pagewise}{lineno}% \PassOptionsToClass{\CurrentOption}{book}% } % RN 2005-01-30 \DeclareOption{linenumbers}{\DTK@lineno@true} \DeclareOption{nolinenumbers}{\DTK@lineno@false} \DeclareOption{pagewise}{% \PassOptionsToPackage{\CurrentOption}{lineno}} \DeclareOption{running}{% \PassOptionsToPackage{\CurrentOption}{lineno}} % RN 2005-01-31 % RN/HjG 2005-02-11 % Ein grauenvoller Hack! \DeclareOption{ln-long}{\def\DTK@@thelinenumber{% %\def\Hugo{% \ifoddNumberedPage% eigtl. Even!!! \ifodd\c@page \@tempswatrue %C \else \@tempswafalse %D \fi \else \ifodd\c@page \@tempswafalse %A \else \@tempswatrue %B \fi \fi %}\Hugo %\@tempcnta=\c@page %\if@tempswa \advance\@tempcnta\@ne \fi \if@tempswa \advance\c@page\@ne \fi %\edef\thepage{\the\@tempcnta}% \thepage-\arabic{linenumber}}} \DeclareOption{ln-short}{\def\DTK@@thelinenumber{% \arabic{linenumber}}} % \end{macrocode} % ??? Now done better! % \begin{macrocode} \iffalse% RN 2005-01-15 \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} % ??? This is the way \dots! % \begin{macrocode} \else \DeclareOption*{% \DTK@isnum{\CurrentOption}% {\edef\DTK@layout{\CurrentOption}}% {\PassOptionsToClass{\CurrentOption}{book}}% } \fi % \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} % % ??? % % \begin{macrocode} % RN 2005-01-30 \ifDTK@lineno@ \RequirePackage{lineno}\linenumbers \RequirePackage{color}% \linenumbersep=.8ex \def\linenumberfont{\normalfont\scriptsize\sffamily\bfseries}% \definecolor{DTK@lineno@color}{cmyk}{0.26,0,0.76,0}% SpringGreen \def\thelinenumber{% \begingroup \fboxsep=.3ex\fcolorbox{black}{DTK@lineno@color}{% \DTK@@thelinenumber}% \endgroup}% \fi %%%%%%%%%% % \end{macrocode} % % The T1 font encoding is used. % \changes{1.4}{2000/08/12}{T1 font encoding enabled.} % % \begin{macrocode} \RequirePackage[T1]{fontenc} % \end{macrocode} % % ??? % % \begin{macrocode} % RN 2005-01-15 \IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} \RequirePackage[full]{textcomp} % RN/HjG 2005-03-23 \ifDTK@Author@\else \RequirePackage[utf8]{inputenc} \fi \usepackage[hyphens]{url} \usepackage[newcommands,newparameters]{ragged2e} \@ifundefined{flushleft} {\let\flushleft\FlushLeft\let\endflushleft\endFlushLeft}{} % \usepackage{filecontents} % % \end{macrocode} % % For old issues of the journal the OT1 font encoding is used % instead. % % \begin{macrocode} %<*1995|1996|1997|1998> \RequirePackage[OT1]{fontenc} % %<*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 %<*1995|1996|1997|1998|1999> \ifDTK@german@ \RequirePackage{german} \selectlanguage{german} \fi % % \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} % RN 2005-01-22 % Mindestens `multicol' wird auch im Autormodus gebraucht, falls dort % ein Index erstellt wird. Vermutlich "graphicx,color" ("xcolor"?) auch % so allemeing\"ultig, dass es vorgezogen werden sollte! \RequirePackage{multicol} \ifDTK@Author@\else % \RequirePackage{multicol} \RequirePackage{graphicx,color} % RN 2005-01-22 \errorcontextlines=100\relax \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 % % \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} %<*1995|1996|1997|1998|1999> \textheight = 484pt \textwidth = 342pt % %<*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\oddsidemargin -35.89157pt \evensidemargin -17.70235pt \topmargin -55.66684pt %\topmargin = 0pt% RN 2005-01-16 % \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} % %<*1995> \headheight = 14pt \headsep = 12pt % %<*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} % %<*1995> \footskip = 21pt % %<*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 % %<*1995|1996|1997|1998|1999> \columnsep = 10pt % %<*class> % \end{macrocode} % % \changes{1.5}{2001/04/24}{emergencystretch set to 1.5em.} % \begin{macrocode} \emergencystretch = 1.5em % %<*1995|1996|1997|1998|1999|2000> \emergencystretch = 0pt % %<*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{macrocode} % RN 2005-01-16 ??? \marginparwidth=1cm %\marginparsep=\z@ \@ifdefinable\DTK@orig@marginpar{\let\DTK@orig@marginpar\marginpar} \renewcommand*\marginpar{% \ClassWarning{dtk}{Command `\string\marginpar' not expected}% \DTK@orig@marginpar} % % \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}}% } % % \end{macrocode} % % \begin{macrocode} %<*1995|1996|1997|1998|1999> \renewcommand\DTKgerman{ \let\DTK@captionsgerman=\captionsgerman \let\captionsgerman=\DTK@captionsgerman \selectlanguage{german}% } % %<*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 % % \end{macrocode} % % \begin{macrocode} %<*1995|1996|1997|1998|1999> \ifDTK@german@ \DTKgerman \fi % %<*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{?/??} \newcommand\volume{\Volume\ --- Entwurf \today\ \begingroup \count1=\time\divide\count1 60 \count2=\count1 \multiply\count2 -60 \advance\count2\time \ifnum\count1<10 0\fi\the\count1:\ifnum\count2<10 0\fi\the\count2 \endgroup } % \end{macrocode} % \end{macro} % ??? % \begin{macrocode} % RN 2005-01-17 \newcommand*\DTK@corr@version{} \ifDTK@Author@\else \newcommand*\DTK@today{}% \begingroup \count@\time \divide\count@ 60\relax \count2=-\count@ \multiply\count2 60\relax \advance\count2 \time %% \loggingall %% Wuduh! \xdef\DTK@today{% \the\year-\two@digits{\the\month}-\two@digits{\the\day}% %!!! \the %\protect~% Warum geht das nicht? \noexpand\noexpand~% %% Wuduh! 2 \noexpand noetig? Weil \number\the 2mal zuschlaegt? %% Ohne \the langt 1 \noexpand! \two@digits{\the\count@}:\two@digits{\the\count2}}% %%\show\DTK@today \endgroup \ifDTK@Draft@ \def\DTK@corr@version{\fbox{Korrekturversion:~\DTK@today}}% \AtEndOfClass{% \let\ps@empty=\ps@plain \let\ps@part=\ps@plain}% \else \let\@LN\@gobbletwo% Wegen .aux-Datei von vorherigem lineno-Lauf \let\@LN@col\@gobble \fi \fi % \end{macrocode} % % \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} % %<*1995> \renewcommand\ChapterFont{\Large\bf} % %<*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} % %<*1995> \renewcommand\SectionFont{\normalsize\bf} % %<*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} % %<*1995> \renewcommand\SubsectionFont{\normalsize\it} % %<*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} % %<*1995> \renewcommand\SubsubsectionFont{\normalsize\it} % %<*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} % %<*1995> \renewcommand\AuthorFont{\normalsize\rm} % %<*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} % %<*1995> \renewcommand\TitleFont{\large\bf} % %<*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} % %<*1995> \renewcommand\HeadFont{\sl} % %<*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} % %<*1995> \renewcommand\FootFont{\footnotesize\sl} % %<*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} % %<*1995> \renewcommand\PagenoFont{\rm} % %<*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} % %<*1995> \renewcommand\HeadRuleDepth{0.1pt} % %<*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} % %<*1995> \renewcommand\FootRuleDepth{0.1pt} % %<*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}{\CTANurl} %% hv 2006-08-11 % Use this macro instead of \verb+\url+ for references to the \CTAN. % It uses the \verb+\href+ and \verb+\nolinkurl+ from the package \Package{hyperref} % or alternative the \Package{url} and an empty \Command{href}, if hyprref isn't loaded. % An example for a reference is \verb+\CTANurl{graphics/pstricks/}+: \CTANurl{graphics/pstricks/} \providecommand*{\nolinkurl}{\url} \providecommand*{\href}[1]{} \newcommand*{\CTANurl}[1]{% \href{ftp://ftp.ctan.org/tex-archive/#1}{\nolinkurl{CTAN:#1}}% } % \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} % %<*1995> \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} % %<*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} % %<*1995> \renewcommand\descriptionlabel[1]{\hspace\labelsep \bf #1} % %<*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} % %<*1995> \renewenvironment{quotation}{% \list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep \z@ plus\p@}% \item\relax }{\endlist} % %<*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} % %<*1995> \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} % %<*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} % %<*1995> \renewcommand\section{\@startsection{section}{1}{\z@}{% -1ex plus-1ex minus-.2ex}{.5ex plus.2ex}{\SectionFont}} % %<*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} % %<*1995> \renewcommand\subsection{\@startsection{subsection}{2}{\z@}{% -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsectionFont}} % %<*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} % %<*1995> \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{% -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsubsectionFont}} % %<*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} % %<*1995> \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{% 1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}} % %<*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} % %<*1995> \renewcommand\subparagraph{\@startsection{subparagraph}{4}% {\parindent}{1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}} % %<*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} % %<*1995> \renewcommand\DTKtitle@skip{0pt} % %<*class> % \end{macrocode} % \end{macro} % % \begin{macro}{\DTKtitle@sep} % % \begin{macrocode} \newcommand\DTKtitle@sep{\vspace{32pt plus 8pt minus 16pt}} % \end{macrocode} % \begin{macrocode} % %<*1995> \renewcommand\DTKtitle@sep{\rule{\textwidth}{.4pt}% \vskip 14pt plus 8pt minus 12pt} % %<*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} % %<*2002> \newcommand\DTK@bibliography@rightskip{} % %<*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}} % %<*1995> \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} % %<*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@} % %<*1995> \renewcommand\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} % %<*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}}% \iffalse% RN 2005-01-17 \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}}}% \else \def\@oddfoot{\vbox{% \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi \kern 5pt \hbox to \textwidth{% \FootFont \footmark\hfil\DTK@corr@version\null}}}% \def\@evenfoot{\vbox{% \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi \kern 5pt \hbox to \textwidth{% \null\FootFont\DTK@corr@version\hfil \footmark}}}% \fi } % \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 \iffalse% RN 2005-01-17 \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}}}% \else \def\@oddfoot{\vbox{% \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi \kern 5pt \hbox to \textwidth{% \FootFont \footmark\hfil\DTK@corr@version\null}}}% \def\@evenfoot{\vbox{% \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi \kern 5pt \hbox to \textwidth{% \null\FootFont \DTK@corr@version\hfil\footmark}}}% \fi } % \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@ \AtEndOfClass{%\show\DTK@jobname \InputIfFileExists{\DTK@jobname.inf}{% \renewcommand\volume{\Volume}}{}}% \else \newcommand\DieTeXnischeKomoedie[3]{% \thispagestyle{empty}% \gdef\Volume{#1}% \xdef\volume{\Volume}%??? \gdef\DTKedition{#2}% \gdef\DTKdate{#3}% \immediate\openout\@unused \jobname.inf\relax \immediate\write\@unused{% \string\gdef\string\Volume{#1}^^J% \string\gdef\string\DTKedition{#2}^^J% \string\gdef\string\DTKdate{#3}% }% \immediate\closeout\@unused \iffalse% RN 2005-02-20; unnoetig, da localer \jobname usw. \global\let\bibliography=\DTK@bibliography \global\let\bibliographystyle=\@gobble \fi \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} %<*1995|1996|1997|1998|1999> \newfont\CoverTitleFont{cmr17 scaled \magstep 5} \newfont\CoverNumberFont{cmr17 scaled 3583} % \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 striping two digits. This is used % since the year 2000.} % \begin{macrocode} \def\CoverArt@strip@no#1/#2;{#1\raisebox{0.35ex}{\CoverTitleFont/}#2} %<*1995|1996|1997|1998|1999> \def\CoverArt@strip@no#1/#2#3#4#5;{% #1\raisebox{0.35ex}{\CoverTitleFont/}#4#5} % % \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} % \end{macro} % % % \subsubsection{Redefinitions} % % \begin{macrocode} % %<*1995> \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}} % % \end{macrocode} % % \subsection{Special code for 2007 layout} % % \changes{1.9-pre}{2005/01/15}{Class option for 2005 added. (RN)} % By now, the material is inserted all in one huge chunk. % Some parts of this material probably should be moved to other places % in the DTX file, where they belong.\\ % \mbox{(HjG 2005-02-04)} % \begin{macrocode} %<*2007|2008> \ProvidesFile{dtk07.clo} [2007/08/28 v0.1 dtk class option (hv)] \renewcommand\CoverArt[3]{% \ifx\CoverTitleFont\@undefined %\newfont\CoverTitleFont{ecrm1700 scaled \magstep 5} %\newfont\CoverTitleFont{lmr12 scaled 2938} \DeclareFixedFont\CoverTitleFont{\encodingdefault}{\rmdefault}{m}{n}{41.26}% \fi \ifx\CoverNumberFont\@undefined %\newfont\CoverNumberFont{ecrm1700 scaled 2986} \DeclareFixedFont\CoverNumberFont{\encodingdefault}{\rmdefault}{m}{n}{51.66}% \fi \vspace*{-34pt}\hfill \setbox\@tempboxa=\hbox to \textheight{\null\hfill\CoverTitleFont Die \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 {\Huge\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}% }}% Warum verwendet `\CoverArt@strip@no' \CoverTitleFont? RN \end{minipage}% } \PassOptionsToPackage{ngerman}{babel} \RequirePackage{babel} \declare@shorthand{ngerman}{"`}{\frqq}% \declare@shorthand{ngerman}{"'}{\flqq}% %\def@dqmacro{`}{\frqq}{\frqq} %\def@dqmacro{'}{\flqq}{\flqq} % \RequirePackage{showexpl} \lstset{language=[LaTeX]TeX} \providecommand\lstverb{% \leavevmode\bgroup % \def\lst@boxpos{b}% \lsthk@PreSet\lstset{flexiblecolumns,basicstyle=\mdseries\ttfamily\normalsize,backgroundcolor={}, breaklines=false,keywordstyle=\mdseries\ttfamily\normalsize}% \lsthk@TextStyle \@ifnextchar\bgroup{\afterassignment\lst@InlineG \let\@let@token}% \lstinline@} \providecommand*{\ctanurl}[1]{% \href{ftp://ftp.ctan.org/tex-archive/#1}{\nolinkurl{CTAN:#1}}% } % %\endinput % % \end{macrocode} % % % \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} %<*class> \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$%$ \iffalse% RN 2005-01-15 \index{\STRIP@*#1 #2!#3}% \else \glossary{\STRIP@*#1 #2!#3}% \fi \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} % %<*1995|1996> \let\addresssize\relax % %<*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.}} \let\makeaddresses\relax% RN 2005-01-15 \else \iffalse% RN 2005-01-15 \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}}% } \else \newcommand\listofaddresses{% \InputIfFileExists{\jobname.gls}{}{% \typeout{No file \jobname.gls.}% \typeout{Use the following command to create it:^^J% \@spaces makeindex -s dtk.ist -o \jobname.gls \jobname.glo}% \typeout{\space}}% } \let\makeaddresses\makeglossary \fi \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 % %<*1997|1998|1999> \def\TOC@configure{\renewcommand{\bfdefault}{bdx}} % %<*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} % %<*1995> \ifDTK@Author@\else \renewcommand\ContentsArt{\part@nosubtitle{\contentsname}} \fi % %<*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} % %<*1995|1996> \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} % %<*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} % %<*1995|1996> \renewcommand\l@chapter{\@dottedtocline{0}{1.5em}{2.3em}} % %<*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} \iffalse% RN 2005-01-15 \@ifundefined{DTK@layout}{}{\input dtk\DTK@layout.clo} \else \@ifundefined{DTK@layout}{}{\input{dtk\DTK@layout.clo}} \fi % \end{macrocode} % ??? New stuff !!! % \begin{macrocode} % RN 2005-01-15 \IfFileExists{eurosans.sty} % Reicht eigentlich nicht; die Fonts selbst müssen auch % vorhanden sein... {% \RequirePackage{eurosans} % ==> http://home.vr-web.de/was/x/latexeuro.pdf % ==> ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe % (unzip eurofont.exe...) % RN 2005-02-12 %%%\AtBeginDocument{\let\texteuro\euro} \AtBeginDocument{% \DeclareTextCommandDefault{\texteuro}{\euro}}% ??? } {% % Das kann jeder. \let\DTK@texteuro\texteuro \AtBeginDocument{% \renewcommand*\texteuro{\textsf{\DTK@texteuro}}} } % From: `graphics.cfg' % Send papersize information to the output driver \begingroup \chardef\x=0 % % check pdfTeX \@ifundefined{pdfoutput}{}{% \ifcase\pdfoutput \else \chardef\x=1 % \fi }% % check VTeX \@ifundefined{OpMode}{}{% \chardef\x=2 % }% \expandafter\endgroup \ifcase\x % default case \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% \or % pdfTeX is running in pdf mode \pdfpagewidth\paperwidth\pdfpageheight\paperheight \else % VTeX is running \mediawidth\paperwidth\mediaheight\paperheight \fi % RN 2005-01-15 % Solange die lmodern-Schreibmaschinenschrift fehlerhaft ist % (nicht "monospaced"), nehmen wird das EC-Äquivalent. RN \AtBeginDocument{% \begingroup% vielleicht noch intelligenter... \ttfamily \@tempdima\fontdimen3\font \advance\@tempdima\fontdimen4\font \ifdim\@tempdima>\z@ \edef\@tempa{\ttdefault}\gdef\ttdefault{cmtt}% \ClassWarning{dtk}{% Font `\@tempa' is bad, changed to '\ttdefault'}% \fi \endgroup } % RN 2005-01-22 \RequirePackage{makeidx} % RN 2005-01-22 % Muss evtl. noch verbessert werden? \renewenvironment{theindex} {\begin{multicols}{2}[\section{\indexname}\vspace{-.5\baselineskip}]% \parskip\z@ \@plus .3\p@\relax \columnseprule \z@ \columnsep=10pt \raggedbottom\raggedright \let\item\@idxitem} {\end{multicols}} \renewcommand\@idxitem{\par\hangindent 40\p@} \renewcommand\subitem{\@idxitem \hspace*{20\p@}} \renewcommand\subsubitem{\@idxitem \hspace*{30\p@}} %\renewcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} \renewcommand\indexspace{\par \vskip 6\p@ \@plus2\p@ \@minus1\p@\relax} % 2005-02-11 \newcommand*\DTK@embedded@documentclasshook{} \newcommand*\AtEmbeddedDocumentclass{% \g@addto@macro\DTK@embedded@documentclasshook} \AtEmbeddedDocumentclass{% %%% \filename@parse{\protect#1}\edef\DTK@local@jobname{\filename@base}%??? % \filename@parse{\DTK@local@jobname}% % \edef\DTK@local@jobname{\filename@base}% \edef\jobname{\DTK@local@jobname}% } %\show\DTK@embedded@documentclasshook \newcommand*\DTK@embedded@begindocumenthook{} \newcommand*\AtEmbeddedBeginDocument{% \g@addto@macro\DTK@embedded@begindocumenthook} \AtEmbeddedBeginDocument{} \newcommand*\DTK@embedded@enddocumenthook{} \newcommand*\AtEmbeddedEndDocument{% \g@addto@macro\DTK@embedded@enddocumenthook} \AtEmbeddedEndDocument{\endinput} % RN 2005-01-22 \newcommand*\DTK@jobname{} \ifDTK@Author@ \edef\DTK@jobname{komoedie} \else \edef\DTK@jobname{\jobname} \fi \newcommand*\DTK@local@jobname{} \newcommand*\DTK@local@inputname{} %%%\newcommand*\DTK@PSforPDF{} \newcommand*\DTK@eat@version[1][]{\ignorespaces} % Wie `\input', lädt aber auch komplette Dokumente. RN \newcommand*\DTK@usepackage{} \newcommand*\DTKinput[1]{% \begingroup % RN/HjG 2005-03-23 \filename@parse{#1}% \edef\DTK@local@jobname{\filename@base}% \@ifundefined{filename@ext}% {\IfFileExists{\DTK@local@jobname.ltx}% {\edef\DTK@local@inputname{\DTK@local@jobname.ltx}}% {\edef\DTK@local@inputname{\DTK@local@jobname.tex}}% }% {\edef\DTK@local@inputname{#1}}% \renewcommand*\documentclass[2][]{% %%\edef\jobname{\DTK@local@jobname}% %%%\let\DTK@PSforPDF\PSforPDF %\renewcommand\PSforPDF[2][]{}% %%%\let\PSforPDF\@gobble \DTK@embedded@documentclasshook \DTK@eat@version}% \renewcommand*\usepackage[2][]{% \@ifnextchar[%] {\DTK@usepackage{##1}{##2}}% {\DTK@usepackage{##1}{##2}[]}% }% \def\DTK@usepackage##1##2[##3]{% \edef\@tempb{\zap@space##2 \@empty}% \@for\@tempa:=\@tempb\do{\def\@tempb{inputenc}% \ifx\@tempa\@tempb \edef\@tempa{##1}% \ifx\@tempa\@empty\else\inputencoding{##1}\fi \else \ifx\@tempa\@empty\else\NeedPackage{\@tempa}% \RecordPackage{##1}\@tempa{##3}\DTK@local@inputname \fi \fi}}% \let\pagestyle\@gobble \let\thispagestyle\@gobble \let\nocite\@gobble \let\listfiles\relax \let\nofiles\relax \renewcommand*\AtBeginDocument[1]{% \typeout{\string\AtBeginDocument\space ignored!}} \renewcommand*\AtEndDocument[1]{% \typeout{\string\AtEndDocument\space ignored!}} \renewenvironment*{document}% %%%{\let\PSforPDF\DTK@PSforPDF}% %%%{\endinput}% {\DTK@embedded@begindocumenthook}% {\DTK@embedded@enddocumenthook}% % RN 2005-02-19, now moved! % \filename@parse{#1}% % \@ifundefined{filename@ext}% % {\InputIfFileExists{#1.ltx}{}{\input{#1}}}{\input{#1}}% \input{\DTK@local@inputname}% % end \endgroup } %%%\RequirePackage[final]{ps4pdf} \@ifdefinable\User@Packages{\newwrite\User@Packages} \AtBeginDocument{% %%%\edef\DTK@jobname{\jobname}% %%%\edef\PfP@container{\DTK@jobname-pics.pdf}% \ifDTK@Author@\else \listfiles \InputIfFileExists{userpackages.tex}% {\typeout{*************************************^^J% * File `userpackages.tex' used.^^J% *************************************}% \newcommand*\RecordPackage[4]{}% % warum gibt es kein \@gobblethree? ist jetzt egal! }% {% \immediate\openout\User@Packages userpackages.tex\relax \begingroup \catcode`\~=\active \let~=\space \immediate\write\User@Packages{% \@percentchar\space userpackages.tex^^J% \@percentchar\space generated by `\jobname'^^J% \@percentchar\space \DTK@today}% \endgroup \AtEndDocument{% \immediate\closeout\User@Packages\relax}% \newcommand*\RecordPackage[4]{% \immediate\write\User@Packages{% \string\usepackage[##1]{##2}[##3] % \@percentchar\space From file: ##4}}% }% \fi % RN 2005-03-21 \@ifpackageloaded{lineno}{% \ifDTK@Draft@\else \nolinenumbers \fi }{} } % RN 2005-01-22 \def\indexname{Stichwortverzeichnis}% Besser woanders? % RN 2005-01-23 \def\printindex{% \InputIfFileExists{\DTK@jobname.ind}{}{% \typeout{No file \DTK@jobname.ind.}% \typeout{Use the following command to create it:^^J% \@spaces makeindex -s dtk-idx.ist -o \DTK@jobname.ind \DTK@jobname.idx}% \typeout{\space}}% } % RN 2005-01-22 \@fptop\z@ % \end{macrocode} % % Now the class is complete. % \begin{macrocode} % %<*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|) 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}{\XeTeX} % The new TeX\ program % \begin{macrocode} \providecommand{\XeTeX}{X\kern-.1em\lower.5ex\hbox{\reflectbox{E}}\kern-.15em\TeX} % \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