%           +-----------------------------------------------+                %
\message{   | BIBLIOGRAPHY FOR ARTS -- 1.1 -- <15 FEB 1996> |                }
%           |                 Timo Baumann                  |                %
%           | Die zugeh"orige Dokumentation ist GBIBARTS.TEX|                %
%           | Dieses Style-File f"ur  * LaTeX *   soll eine |  GRUND-        %
%           | Literatur-Liste erstellen helfen.             |  EIN-          %
%           |                                               |  STELLUNGEN    %
%           | GBIBARTS.TEX soll mit LaTeX (deutscher Trenn- |  F"UR DIE      %
%           | satz) bearbeitet werden.                      |  SCHRIFTEN:    %
%           | Dabei entsteht ein File GBIBARTS.BAR. Dieses  |                %
%           | wird wie dokumentiert wieder eingelesen.      |  \schrift      %
%           | Zum BIBARTS.PAKET geh"ort eine Batch-Datei    |  ZEILE 78      %
%           | GBIBARTS.BAT. Zur Bearbeitung unter Dos soll  |                %
%           |               GBIBARTS GBIBARTS               |  \barschrift   %
%           | zweimal eingegeben werden, um GBIBARTS.TEX zu |  ZEILE 86      %
%           | bearbeiten. F"ur andere Betrieb-Systeme gilt: |                %
%           | 1. GBIBARTS.TEX LaTeX-bearbeiten;             |  \indschrift   %
%           | 2. GBIBARTS.BAR auf GBIBARTS.PHY sortieren;   |  Zeile 303     %
%           | 3. Aus GBIBARTS.BAR auch mit MakeIndex einen  |                %
%           | Index erzeugen;  4. Nochmals LaTeX-bearbeiten.|                %
%           +-----------------------------------------------+                %



%          CopyLeft: a) Verantwortung  -  b) Benutzung  -  c) Distribuntion

%                       a) Keinerlei Haftung ! 
%                       b) Keine Funktions-Garantie !
%                               Der Anwender erkennt die Punkte a) - c) an.
%                       c) (g)bibarts.sty und (g)bibarts.tex d"urfen 
%                               nur weitergegeben werden, wenn
%                                  1. daf"ur keine Kosten erhoben werden, 
%                                        die "uber diejenigen f"ur ihren
%                                        Transfer hinausgehen !
%                                  2. vorgenommene "Anderungen 
%                                        kommentiert sind !
                                   


%          Referenzen   (Wenn man schon mal was zum Zitieren schreibt ...):

%                       Knuth, Donald E.: The TeXbook, Reading [Mass.] 1994
%                       Kopka, Helmut:    LaTeX - Eine Einf"uhrung, Bonn 1992
%                       Lamport, Laslie:  emtex\texinput\latex.tex
%                       Schwarz, Norbert: Einf"uhrung in TeX, Bonn 1991


%          Ausgabe von Sonderzeichen ins BAR-File:

\def\@sIcHerUnG{%
\def\LaTeX{\string\LaTeX}%
\def"{\string"}%        %% Alternative 1: %% \def"{\string"\}  | NICHT F"UR
\def\"{\string\"}%      %% Alternative 2: %% \def\"{\string"}  | LaTeX2e !
\def~{\string~}%
\def\~{\string\~}%
\def\'{\string\'}%
\def\`{\string\`}%
\def\^{\string\^}%
\def\AA{\string\AA}%
\def\aa{\string\aa}%
\def\ae{\string\ae}%
\def\AE{\string\AE}%
\def\b{\string\b{}}%
\def\c{\string\c{}}%
\def\P{\string\P}%
\def\S{\string\S}%
\def\copyright{\string\copyright}%
\def\pounds{\string\pounds}%
\def\={\string\=}%
\def\.{\string\.}%
\def\ss{\string\ss}%
}


%          Die Schrift, in der die im Befehl stehenden
%                 Angaben in der Fu"snote ausgedruckt werden: 

\def\schrift{\sf}


     
     %     Die Schrift, in der das mit \printvli aufgerufene
     %               Literatur-Verzeichnis und das mit \printvqu
     %               aufgerufene Quellen-Verzeichnis ausgedruckt wird:

\def\barschrift{\small}




%          Nur Ausdruck an Ort und Stelle:

\def\printonlyvli#1{{\schrift #1}}
\def\printonlyvqu#1{{\schrift #1}}



%          Nur schreiben ins Auswurffile:

\def\addtovli{\@vli}
\def\addtovqu{\@vqu}



%          Schreiben an Ort und Stelle und ins Auswurffile:

\def\vli#1{\@vli{#1}{\schrift #1}}
\def\vqu#1{\@vqu{#1}{\schrift #1}}




%          Index ins Auswurffile absetzten:

\def\bib#1{\@bib{#1}}


%          Auswurffile:  (Diese Konstruktion hat latex.tex als Vorbild.)

\def\@preamblecmds{\do\makebar}

\def\makebar{\if@filesw\newwrite\@barfile%
\immediate\openout\@barfile=\jobname.bar%
\def\@bib{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrbbar}%
\def\@vqu{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrqbar}%
\def\@vli{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrlbar}%
\typeout{Volltiteldatei \jobname.bar vorbereitet. }\fi}

\def\@wrqbar#1{%
\ifnum\thepage<10\def\X{\string\X}\else%
\ifnum\thepage<100\def\X{\string\Y}\else%
\def\X{\string\Z}\fi\fi%
\def\F{\string\F}\def\E{\string\E}%
\stepcounter{arts}%
\iffootnote%
\edef\@tempa{\write\@barfile{\string%
\quellentry{#1\X{\thepage}}{\F{\thefootnote}}}}%            %[]
\else%
\edef\@tempa{\write\@barfile{\string%
\quellentry{#1\X{\thepage}}{\E{\thearts}}}}%                        %[]
\fi%
\expandafter\endgroup\@tempa%
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}

\def\@wrlbar#1{%
\ifnum\thepage<10\def\X{\string\X}\else%
\ifnum\thepage<100\def\X{\string\Y}\else%
\def\X{\string\Z}\fi\fi%
\def\F{\string\F}\def\E{\string\E}%
\stepcounter{arts}%
\iffootnote%
\edef\@tempa{\write\@barfile{\string%
\literentry{#1\X{\thepage}}{\F{\thefootnote}}}}%            %[]
\else%
\edef\@tempa{\write\@barfile{\string%
\literentry{#1\X{\thepage}}{\E{\thearts}}}}%                        %[]
\fi%
\expandafter\endgroup\@tempa%
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}

\def\@wrbbar#1{%
\ifnum\thepage<10\def\X{\string|X}\else%
\ifnum\thepage<100\def\X{\string|Y}\else%
\def\X{\string|Z}\fi\fi%
\ifnum\thepage<10\def\x{\string|x{\thepage}}\else%
\ifnum\thepage<100\def\x{\string|y{\thepage}}\else%
\def\x{\string|z{\thepage}}\fi\fi%
\stepcounter{arts}%
\iffootnote%
\edef\@tempa{\write\@barfile{\string%
\indexentry{#1\X{\thepage}}{\thefootnote}}}%          %[]
\else%
\edef\@tempa{\write\@barfile{\string%
\indexentry{#1\x}{\thearts}}}%                               %[]
\fi%
\expandafter\endgroup\@tempa%
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}

            \def\x{}\def\y{}\def\z{}
            \def\X{}\def\Y{}\def\Z{}
            \def\F{}\def\E{}
            \def\G{}\def\I{}


%          Ausdruck des erzeugten Files (.phy und .ind):
                
\newif\ifquelle
\newif\ifliteratur
\newif\ifindex

     


\def\indexentry#1#2{\ifindex\item{#1}{#2}\fi}
\def\literentry#1#2{\ifliteratur\item{#1}{#2}\fi}
\def\quellentry#1#2{\ifquelle\item{#1}{#2}\fi}
                                          


\def\info{{\item Das File {\tt\jobname.tex} mu\ss\ ein weiteres Mal
                 \LaTeX--bearbeitet werden, um hier etwas sehen
                 zu k\"onnen. {\tt\jobname.bar} sollte zuvor
                 alphabetisch auf\\ {\tt \jobname.phy} sortiert werden.}}

\def\verw{ $\gg$ }
\def\LITbox#1{\verw{#1}}
\def\LITfBOX#1{$^{#1}$}

\def\printnumvqu{{\section{Quellenverzeichnis}
                \quelletrue\literaturfalse\indexfalse
                \barschrift
                  \def\X{\LITbox}\def\Y{\LITbox}\def\Z{\LITbox}
                  \def\x{\LITbox}\def\y{\LITbox}\def\z{\LITbox}
                                 \def\E{\NeIn}\def\F{\LITfBOX}
                                  \def\G{\NeIn}\def\I{\NeIn}
                \message{|> VQU }
                \begin{description}
                  \itemsep-.1ex
                  \@input{\jobname.phy}
                  \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info}
                \end{description}\message{<|}
              }}


\def\printnumvli{{\section{Literaturverzeichnis}
                \literaturtrue\quellefalse\indexfalse
                \barschrift
                  \def\X{\LITbox}\def\Y{\LITbox}\def\Z{\LITbox}
                  \def\x{\LITbox}\def\y{\LITbox}\def\z{\LITbox}
                                 \def\E{\NeIn}\def\F{\LITfBOX}
                                  \def\G{\NeIn}\def\I{\NeIn}
                \message{|> VLI }
                \begin{description}
                  \itemsep-.1ex
                  \@input{\jobname.phy}
                  \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info}
                \end{description}\message{<|}
              }}

\def\NeIn#1{}

\def\printvqu{{\section{Quellenverzeichnis}
                \literaturfalse\quelletrue\indexfalse
                \barschrift
                  \def\X{\NeIn}\def\Y{\NeIn}\def\Z{\NeIn}
                  \def\x{\NeIn}\def\y{\NeIn}\def\z{\NeIn}
                                  \def\E{\NeIn}\def\F{\NeIn}
                                  \def\G{\NeIn}\def\I{\NeIn}
                \message{|> VQU }
                \begin{description}
                  \itemsep-.1ex
                  \@input{\jobname.phy}
                  \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info}
                \end{description}\message{<|}
              }}


\def\printvli{{\section{Literaturverzeichnis}
                \literaturtrue\quellefalse\indexfalse
                \barschrift
                  \def\X{\NeIn}\def\Y{\NeIn}\def\Z{\NeIn}
                  \def\x{\NeIn}\def\y{\NeIn}\def\z{\NeIn}
                                  \def\E{\NeIn}\def\F{\NeIn}
                                  \def\G{\NeIn}\def\I{\NeIn}
                \message{|> VLI }
                \begin{description}
                  \itemsep-.1ex
                  \@input{\jobname.phy}
                  \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info}
                \end{description}\message{<|}
              }}


\def\BiBbox#1{, {#1}, }

\def\printbib{{\section{indexentries}
                \indextrue\literaturfalse\quellefalse
                \footnotesize
                    \catcode`\|=0
                  \def\X{\BiBbox}\def\Y{\BiBbox}\def\Z{\BiBbox}
                  \def\x{\BiBbox}\def\y{\BiBbox}\def\z{\BiBbox}
                  \def\E{\iNDExKAP}\def\F{\iNDExKAP}
                  \def\G{\iNDExPAR}\def\I{\iNDExPAR}
                \message{|> BIB }
                \begin{description}
                  \itemsep-.3ex
                  \@input{\jobname.phy}
                  \def\@noitemerr{\@warning{Leeres \jobname.phy-File}\info}
                \end{description}
                   \message{<|}
              }}


\def\indschrift{\sf}

\def\iNDExBOX#1#2{{{\indschrift #1}}}
\def\IndeXbox#1#2{{{\indschrift #1}}\raisebox{1ex}{{\scriptsize #2}}}
\def\iNDExKAP#1{{\parbox{4.5em}{\it \chaptername \hfill{#1}}}}
\def\iNDExPAR#1{{\parbox{2.9em}{\it \partname \hfill{#1}}}}


\def\printind{{%    \theindex -UMGEBUNG HAT  \indexname  ALS "UBERSCHRIFT
                    \barschrift
                  \def\x{\iNDExBOX}\def\X{\IndeXbox}
                  \def\y{\iNDExBOX}\def\Y{\IndeXbox}
                  \def\z{\iNDExBOX}\def\Z{\IndeXbox}
                  \def\E{\iNDExKAP}\def\F{\iNDExKAP}
                  \def\G{\iNDExPAR}\def\I{\iNDExPAR}
                 \begin{sloppy}    \@input{\jobname.ind}    \end{sloppy}
               }}

           
           
%          LOGO:

\def\bibarts{{\rm B\kern -.05em\lower .5ex\hbox{i}\kern -.1em\lower -.28ex\hbox{\it b}\kern -.17em\lower .5ex\hbox{A}\kern -.2em\lower -.5ex\hbox{r}\kern -.175em\lower .2ex\hbox{t}\kern -.13em\lower -.3ex\hbox{s}}}




%          Verweise:

\def\bibref#1{{\schrift #1 (wie Anm.~\ref{#1}, S.~\pageref{#1})}}
\def\xbibref#1#2{{\schrift #1 (wie Anm.~\ref{#2}, S.~\pageref{#2})}}

\def\bibmark#1{{\schrift im folgenden #1}\label{#1}}
\def\xbibmark#1#2{{\schrift im folgenden #1}\label{#2}}



%          BIBINDEX   \def\@footnotetext STAMMT AUS latex.tex
%                     MIT AUSNAHME VON
%                         \footnotetrue  UND  \footnotefalse
%                     EVTL. SOLLTE DIESE STRUKTUR ERSETZT WERDEN,
%                     WENN SIE IN EINER ANDEREN LaTeX-VERSION
%                     ANDERS IST.

\newif\iffootnote

\long\def\@footnotetext#1{\footnotetrue\insert\footins{\reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
   \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
    {\rule{\z@}{\footnotesep}\ignorespaces
      #1\strut}}\footnotefalse}





%%%%%%%%%%%%% REPORT und BOOK:

\def\makereportbar{\if@filesw\newwrite\@barfile%
\immediate\openout\@barfile=\jobname.bar%
\def\@bib{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrbbbar}%
\def\@vqu{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrqbar}%
\def\@vli{\@bsphack\begingroup%
\def\protect####1{\string####1\space}%
\@sIcHerUnG%
\@sanitize\@wrlbar}%
\typeout{Volltiteldatei \jobname.bar vorbereitet. }\fi}


\def\@wrbbbar#1{%
\def\Roman{\arabic}
%\ifnum\thepart=0\def\G{\string!\string\G{0}}\fi%       %% Auskommentierung am Zeilenanfang kann weggenommen werden %%
%%
\ifnum\thepart>0\ifnum\thepart<10\def\G{\string!\string\G{\thepart}}\fi\fi%
\ifnum\thepart>9\ifnum\thepart<100\def\G{\string!\string\I{\thepart}}\fi\fi%
%\ifnum\thechapter=0\def\E{\string!\string\E{0}}\fi%       %% Auskommentierung am Zeilenanfang kann weggenommen werden %%
%%                                                        %% Dann w"urde "Kapitel 0" im Index stehen.
\ifnum\thechapter>0\ifnum\thechapter<10\def\E{\string!\string\E{\thechapter}}\fi\fi%
\ifnum\thechapter>9\ifnum\thechapter<100\def\E{\string!\string\F{\thechapter}}\fi\fi%
\ifnum\thepage<10\def\X{\string|X}\else%
\ifnum\thepage<100\def\X{\string|Y}\else%
\def\X{\string|Z}\fi\fi%
\ifnum\thepage<10\def\x{\string|x{\thepage}}\else%
\ifnum\thepage<100\def\x{\string|y{\thepage}}\else%
\def\x{\string|z{\thepage}}\fi\fi%
\stepcounter{arts}%
\iffootnote%
\edef\@tempa{\write\@barfile{\string%
\indexentry{#1\G\E\X{\thepage}}{\thefootnote}}}%          %[]
\else%
\edef\@tempa{\write\@barfile{\string%
\indexentry{#1\G\E\x}{\thearts}}}%                               %[]
\fi%
\expandafter\endgroup\@tempa%
\if@nobreak \ifvmode\nobreak\fi\fi\@esphack}

\newcounter{arts}
\setcounter{arts}{5000}  % Es wird von weniger als 5000 Eintr"agen
                         % ins File.BAR ausgegangen. Dieser Z"ahler
                         % sorgt f"ur die Reihenfolge der \bib-Eintr"age, 
                         % die nicht in Fussnoten stehen.

\endinput
