%\iffalse
%<+package|driver>\def\filename{makendx}
%<+package|driver>\def\fileversion{1.0}
%<+package|driver>\def\filedate{1996/05/16}
%<+package|driver>\def\docdate{1995/05/16}
%\fi
% \CheckSum{165}
%
% \iffalse    This is a META-COMMENT
%
% Copyright (C) 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
%
% This file is to be used with the LaTeX2e system.
% ------------------------------------------------
%
% This macro is free software; you can redistribute it and/or modify it
% under the terms of the GNU General Public License as published by the
% Free Software Foundation; either version 1, or (at your option) any
% later version.
%
% The macros and the documentation are distributed in the hope that they
% will be useful, but WITHOUT ANY WARRANTY; without even the implied
% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
% the GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
% There are undoubtably bugs in the macros or the documentation. Should
% you make improvements, bug fixes, etc., however, I ask you to send 
% improvements back to me for incorporation into the macro for the 
% rest of us. 
%
% Updates are available via anonymous ftp to host `perform.ww.tu-berlin.de'.
%
%                                ___      
%   wenzel matiaske  |           / /_/-Berlin
%                    |  mail:   Technical University Berlin
%                    |          Dept. of Economics, WW6
%                    |          Uhlandstr. 4-5, D-10623 Berlin
%                    |  phone:  +49 30 314-22574
%                    |  email:  mati1831@perform.ww.tu-berlin.de
%
%  \fi
%
% \MakeShortVerb{\|}
%
%    \ifsolodoc
%      \title{Namensverzeichnis}
%      \author{Wenzel Matiaske\thanks{%
%        TU-Berlin, FB 14, WW 6, Uhlandstr. 4--5, 10623~Berlin, 
%        Tel.~030-314\,225\,74, email: mati1831@perform.ww.tu-berlin.de.}}
%      \date{\docdate}
%      \maketitle
%      \selectlanguage{\english}
%      \def\localin{\par}
%      \begin{small}
%      \begin{center}{\bf Abstract}\end{center}
%      \MakePercentComment \input{localndx} \MakePercentIgnore
%      \end{small}
%      \selectlanguage{\german}
%      \section{Namensverzeichnisse}
%    \else 
%      \section{Namensverzeichnisse}
%    \fi
%
%    Das Paket \texttt{makendx} erleichtert die Erstellung eines
%    Namensverzeichnisses. Die Verwendung des Paketes verlangt die
%    Aufnahme folgender Befehle: 
%
%    \begin{itemize}
%    \item \DescribeMacro{\makenameindex} Der Befehl
%    |\makenameindex| ist in die Preamble des Dokumentes aufzunehmen. 
%    \item \DescribeMacro{\printnameindex} Der Befehl
%    |\printnameindex| ist an der Stelle zu spezifizieren, an der das
%    Namensverzeichnis erscheinen soll. Vor diesem Befehl sollte man
%    die Bezeichnung des Namensverzeichnisses durch die Definition 
%    |\renewcommand{\indexname}{|\emph{name}|}| festlegen.
%    \end{itemize}
%
%    Ferner werden zwei Befehle zur Verf\"ugung gestellt, die die
%    Eintr\"age in das Verzeichnis
%    \"ubernehmen. \DescribeMacro{\nameindex} Der Befehl
%    |\nameindex{|\emph{name}|}| dient in Analogie zum |\index|-Befehl
%    der Spezifikation eines Eintrages in das Namensverzeichnis.
%    \DescribeMacro{\name} In der Regel soll der Name auch im
%    laufenden Text erscheinen. In diesen F\"allen ist der Befehl
%    |\name{|\emph{name}|}| n\"utzlich. Der spezifizierte Namenseintrag
%    erscheint im Text und im Namensverzeichnis. Wird ein vom Text
%    abweichender Namenseintrag gew\"unscht, kann dieser optional
%    spezifiziert werden, beispielsweise: 
%    |\name[Knuth, Donald E.]{Knuth}|. 
%    Im laufenden Text erscheint der Name \emph{Knuth},
%    im Namensverzeichnis der Eintrag "`Knuth, Donald E."'.
%    Soll der Verzeichniseintrag unterbleiben, ist die Sternform des
%    Kommandos zu w\"ahlen; |\name*{|\emph{name}|}| erzeugt nur den
%    Namen im laufenden Text.
%
%    \DescribeMacro{\namefont} Die Schriftart, in welcher der Name im
%    laufenden Text gesetzt  wird, kann mittels des Kommandos 
%    |\namefont{|\emph{schriftart}|}|
%    ver\"andert werden, beispielsweise: 
%    |\namefont{\bfseries}|. Voreingestellt ist die Hervorhebung von
%    Namen durch kursiven Satz.
%    
%    In Anschlu\ss{} an die Formatierung des Dokumentes durch \LaTeX{}
%    erfolgt die Bearbeitung durch \emph{MakeIndex}. Das Programm
%    ist folgenderma\ss{}en aufzurufen: 
%
%    \begin{verbatim}
%     makeindex -s nameind.ist  -o myfile.nin myfile.ndx     
%    \end{verbatim}
%
%    Bei einer weiteren Formatierung durch \LaTeX{} wird das
%    Namensverzeichnis eingelesen.
%
% 
% \StopEventually{}
%
% \ifsolodoc \section{Implementation} \else
%    \subsection{Implementation} \fi
%
%    \begin{macrocode}
%<*package>
%    \end{macrocode}
%
%    Das Makro beginnt mit der Terminalausgabe.
%
%    \begin{macrocode}
\ProvidesPackage{makendx}
                [\filedate\space\fileversion\space% 
                  LaTeX2e package (wm)]
%    \end{macrocode}
%    
%    Erweiterung des |\nofiles|-Kommandos.
%    \begin{macrocode}
\def\nofiles{\@fileswfalse
  \typeout{No auxiliary output files.^^J}%
  \long\def\protected@write##1##2##3{}%
  \let\makeindex\relax
  \let\makeglossary\relax
  \let\makenameindex\relax}
%    \end{macrocode}
%
% \begin{macro}{\makenameindex}
%    Defintion einer Ausgabedatei.
%    
%    \begin{macrocode}
  \def\makenameindex{%
    \newwrite\@nameindexfile
    \immediate\openout\@nameindexfile=\jobname.ndx
    \def\nameindex{\@bsphack\begingroup
      \@sanitize
      \@wrnameindex}\typeout
    {Writing nameindex file \jobname.ndx }%
    }
  \def\@wrnameindex#1{%
    \protected@write\@nameindexfile{}%
    {\string\nameindexentry{#1}{\thepage}}%
    \endgroup
    \@esphack
    }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\nameindex}
%    In Analogie zum |\index|-Kommando wird der Befehlt |\nameindex|
%    definiert. 
%
%    \begin{macrocode}
\def\nameindex{\@bsphack\begingroup\@sanitize\@index}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\namefont}
%    Befehl zur Einstellung der Schriftart, in der die Namen im
%    laufenden Text erscheinen.
%
%    \begin{macrocode}
\providecommand{\namefont}[1]{\def\name@font{#1}}   
\def\name@font{}              \namefont{\slshape}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\name}
%    Der Befehl setzt den \"ubergebenen Namen im laufenden Text und
%    erzeugt einen Indexeintrag. Die Sternform unterdr\"uckt den Eintrag
%    ins Namensverzeichnis.
%
%    \begin{macrocode}
\def\name{\@ifstar{\@sname[]}{\@ifnextchar [
  {\@tempswatrue\@name}{\@tempswafalse\@name[]}}}
\def\@name[#1]#2{{\name@font #2}%
  \if@tempswa%
     \nameindex{#1}%
  \else%
     \namenindex{#2}%
  \fi}
\def\@sname[#1]#2{\emph{#2}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\printnameindex}
%    Das Kommando liest die mittels |makeindex| erzeugte Datei ein. 
%
%    \begin{macrocode}
%\newcommand{\printglossary}{\@input@{\jobname.gls}}
%\let\theglossary\theindex
\newcommand{\printnameindex}{\@input@{\jobname.nin}}
\let\thenameindex\theindex
%    \end{macrocode}
% \end{macro}
%
%     Erweiterung des Inhaltsverzeichnisses.
%    \begin{macrocode}
\long\def\addtocontents#1#2{%
  \protected@write\@auxout
      {\let\label\@gobble    \let\index\@gobble% 
       \let\glossary\@gobble \let\makenameindex\@gobble}%
      {\string\@writefile{#1}{#2}}%
}
%    \end{macrocode}
%
%    \begin{macrocode}
%</package>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*ist>
%    \end{macrocode}
%    \begin{macrocode}
%% MakeIndex style file makendx.ist
%% 1995/10/29  Wenzel Matiaske
%%
%% keyword for nameindex entry
keyword   "\\nameindexentry"           
%% Begin nameindex entries
preamble  "\n \\begin{thenameindex}\n" 
%% End   nameindex entries
postamble "\n \\end{thenameindex}\n"      
%    \end{macrocode}
%    \begin{macrocode}
%</ist>
%    \end{macrocode}
%    \section{Treiber-Datei}
%
%    Der letzte Abschnitt enth\"alt die Treiberdatei zur Erstellung der
%    Dokumentation.
%    \begin{macrocode}
%<*driver>
\typeout{*********************************************}
\typeout{* Documentation for LaTeX package `makendx' *}
\typeout{*********************************************}

\documentclass[11pt]{ltxdoc}
\usepackage{german}

\makeatletter
\newif\ifsolodoc
 \@ifundefined{solo}{\solodoctrue}{\solodocfalse}
\IndexPrologue{\section*{Index}%
               \markboth{Index}{Index}%
               Die kursiv gesetzten Seitenzahlen
               verweisen auf Beschreibungen der Makros,
               unterstrichene Programmzeilennummern
               auf deren Definitionen.}
\GlossaryPrologue{\section*{Neuerungen}%
                 \markboth{Neuerungen}{Neuerungen}}
\def\saved@macroname{Neuerung}
\renewenvironment{theglossary}{%
    \glossary@prologue%
    \GlossaryParms \let\item\@idxitem \ignorespaces}%
   {}
\makeatother
\setcounter{StandardModuleDepth}{1}
%   \OnlyDescription
%   \CodelineIndex
\CodelineNumbered 
\RecordChanges
\setlength{\parindent}{0pt}
\begin{document}
\DocInput{makendx.dtx} \newpage \PrintChanges % \newpage \PrintIndex
\end{document}
\endinput
%</driver>
%    \end{macrocode}
%% \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         \~}
%%
% \Finale
% \endinput
# Local Variables:
# mode: latex
# End:
