summaryrefslogtreecommitdiff
path: root/wisealpha.bst
diff options
context:
space:
mode:
authorguest <guest@cba7306a-a4a0-4afd-bcb4-bd19f8a24309>2007-11-30 13:41:25 +0000
committerguest <guest@cba7306a-a4a0-4afd-bcb4-bd19f8a24309>2007-11-30 13:41:25 +0000
commiteacbf5bb4d57af21c731f41251015d3b991ad490 (patch)
tree477f43a79c75b400228a7c492f670a1c4886b5c3 /wisealpha.bst
final version, initial import
git-svn-id: svn+ssh://mecka.net/home/svn/rtcorba-thesis@1 cba7306a-a4a0-4afd-bcb4-bd19f8a24309
Diffstat (limited to 'wisealpha.bst')
-rwxr-xr-xwisealpha.bst1841
1 files changed, 1841 insertions, 0 deletions
diff --git a/wisealpha.bst b/wisealpha.bst
new file mode 100755
index 0000000..a42d4a4
--- /dev/null
+++ b/wisealpha.bst
@@ -0,0 +1,1841 @@
+%%****************************************
+%%* *
+%%* TU Dresden *
+%%* Lehrstuhl für Wirtschaftsinformatik, *
+%%* insbesondere Systementwicklung *
+%%* *
+%%****************************************
+%%
+%% LaTeX-Vorlage fuer Doktor-, Diplom- und Seminararbeiten
+%% Formatierung des Literaturverzeichnisses
+%%
+%% Version: $Revision: 1.8 $
+
+%% ALPHADIN.BST Ausgabe [7,1] vom 23/11/99
+%% (C) Klaus F. Lorenzen, Hamburg email: lorenzen.marxen@t-online.de
+%% ersetzt ALPHADIN.BST Ausgabe [6] von 1997
+%% ersetzt DinAlpha.BST von 1994
+%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%% ALPHADIN.BST wurde entwickelt aus BibTeX standard bibliography style
+%% `alpha'.Mit ALPHADIN.BST werden Literaturverzeichnisse gemaess der deutschen
+%% Zitiernorm DIN 1505 Teil 2 formatiert.
+%% Analog zu den 4 US standard styles wird ein vollstaendiger Satz von
+%% 4 DIN-gerechten bst-style Dateien veroeffentlicht (alphadin.bst,
+%% plaindin.bst, unsrtdin.bst, abbrvdin.bst). Die gueltige Version
+%% ist am schnellsten aus dem WWW ueber folgende URL zu beziehen
+%% http://www.fh-hamburg.de/pers/Lorenzen/bibtex/
+%% Stand: 16/6/99
+%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%% WAS IST ALPHADIN.BST ?
+%% Dieser style produziert "deutsche" Literaturzitate in Literaturverzeichnis-
+%% sen gemaess der deutschen Norm DIN 1505, Teil 2 vom Jan. 1984.
+%% Die Literaturzitate werden alphabetisch nach Verfassern sortiert
+%% und sind durch abgekuerzte Verfasserbuchstaben plus Erscheinungsjahr in
+%% eckigen Klammern gekennzeichnet.
+%% Es gibt Unterschiede zwischen der US- und der deutschen Zitierkonvention,
+%% was die bibliographischen Typen und die verschiedenen Trennzeichen zwischen
+%% den Feldern angeht. Daher ist auch keine 100%ige Abbildung der beiden
+%% Regelwerke aufeinander moeglich. Dies ist aber immer durch eine achtsame
+%% Erfassung beherrschbar! Die vorliegenden DIN-styles versuchen einige
+%% bibliographische Beschraenkungen der Originalstyles zu ueberwinden.
+%% Es laesst sich in fast allen Faellen problemlos ein Original-bib-file
+%% (d.i. die Datenbank, die die bibliographischen Informationen enthaelt)
+%% wahlweise nach US-Norm oder deutscher DIN-Norm verarbeiten.
+%% [Beispiel: Produzieren Sie mit der XAMPL.bib-Datenbank aus dem Original-
+%% paket 2 verschiedene Literaturverzeichnisse.] Zu Gunsten
+%% der Allgemeingueltigkeit von bib-files ist bei den Publikationstypen
+%% (entry-types) und den bibliographischen Kategorien (fields) in Zweifels-
+%% faellen immer die originale US-Bedeutung beibehalten worden.
+%% Bei der Erfassung von Literaturquellen in bib-files
+%% gelten folglich die in der TEX-Literatur veroeffentlichten Regeln.
+%% Kommt es dennoch zu kleineren "Schoenheitsfehlern" im fertig gesetzten
+%% output, so koennen diese so gut wie immer durch eine leicht veraenderte
+%% Erfassung im bib-inputfile beseitigt werden. Last but not least koennen
+%% Sie im output-file < *.bbl > noch letzte Hand zur Korrektur ansetzen.
+%% UMGANG MIT FEHLERMELDUNGEN
+%% Noch nicht alle ueberfluessigen Fehlermeldungen des Original-style sind
+%% ausgemerzt. Die meisten Warnmeldungen beruhen auf
+%% den andersartigen bibliographischen Regeln nach DIN 1505 und dem damit
+%% verbundenen Ermessensspielraum, sind also in Wahrheit keine "Fehler".
+%% Dennoch sollten Sie diese Warnungen beachten, um herauszufinden, ob
+%% evtl. eine unzulaessige Kombination von Publikationstyp (=entry-type) und
+%% "fields" vorgenommen worden ist. Das fuehrt mitunter zu Wasserfallartigen
+%% Fehlermeldungen: meistens duerfen Sie das einfach ignorieren.
+%%
+%% DANKSAGUNG
+%% Hartmut Lueddecke, FH Hamburg habe ich fuer viele Verbesserungsvorschlaege
+%% und stete Unterstuetzung zu danken. Vielen an dieser Stelle ungenannt
+%% bleibenden Anwendern g)lt mein Dank, die in den vergangenen Jahren durch
+%% ihre Aufmerksamkeit dazu beigetragen haben, Fehler auszumerzen und
+%% Verbesserungen vorzunehmen.
+%%
+%% HINWEIS: es gibt eine Kombination von ALPHADIN.BST mit dem NATBIB-Stil
+%% von Patrick W.Daly), womit Literaturverzeichnisse komplett nach
+%% DIN 1505 Teil 2 UND Teil 3 formatiert werden koennen. Naeheres
+%% per URL http://www.fh-hamburg.de/pers/Lorenzen/bibtex/
+%%
+%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%% Eine ausfuehrliches Internet-Tutorial mit Beispielen ist in Vorbereitung.
+%% Fuer den Anfang ist diese Datei schon etwas kommentiert!
+%% Kritik, Vorschlaege usw. bitte an :
+%% FH Hamburg, Klaus F. Lorenzen, Grindelhof 30, 20146 Hamburg
+%% e-mail: lorenzen.marxen@t-online.de
+%% 16/6/99
+%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%% ==> The file btxbst.doc has the original documentation for style 'alpha'.
+%%
+
+ENTRY
+ { address %% Verlagsort
+ author %% persoenlicher Urheber eines Werkes
+ booktitle %% a) Gesamttitel eines mehrbaendigen Werkes
+ chapter %% Kapitel in einem Buch (Monographie)
+ edition %% Auflagevermerk
+ editor %% Persoenl.Herausgeber oder Koerperschaftlicher Herausgeber
+ howpublished %% beliebiger Verlegervermerk: von wem, wo
+ institution %% Institution, die e.Verlagsfreie Veroeffentlichung betreibt
+ isbn %% Standardnr fuer Buecher
+ issn %% - " - : Zeitschriften u. Serien
+ journal %% Titel einer Zeitschrift
+ key %% Zusaetzlich vergebener Sortierschluessel, mitunter notwend.
+ month %% naehere Bestimmung des Erscheinungsjahres (-> macro 's)
+ note %% freies Eingabefeld fuer zusaetzliche Informationen
+ number %% Mehrfachbedeutung in Abhaengigkeit vom Eingabetyp
+ organization %% a) Name der Organisation/des Veranstalters e. Tagung,Konferenz
+ pages %% Umfangsangaben, meist Seitenzahlen
+ publisher %% Verlag
+ school %% Hochschule/Universitaet, die eine Dipl.-Arb./Dissertation veroeff.
+ series %% Titel e.Reihe, in der ein best. Buchtitel erschienen ist
+ title %% Titel einer (namentlich gekennzeichneten) Veroeffentlichung
+ type %% Zusatzfeld z.Kennzeichnung e.besonderen Publikationstyps
+ volume %% a) Zaehlung bei einem mehrbaendigen Werk (-> book)
+ year %% Erscheinungsjahr
+ }
+ {}
+ { label extra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+%% die folg. BOOLE'sche VAR steuern d. Ausg. ": " nach Urheber-Feldern
+%% und ". - " vor ISBN oder Anmerkungen (NOTE)
+
+INTEGERS { colon.after period.dash }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+ #4 'colon.after :=
+ #5 'period.dash :=
+}
+INTEGERS { zahl lang }
+
+STRINGS { h s t u v }
+
+%% neue DIN-Funktion, 16/2/94
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ { write$ }
+ { output.state colon.after =
+ { ": " * write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state period.dash =
+ { ". -- " * write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state mid.sentence =
+ { ", " * write$ }
+ { write$
+ newline$
+ "\newblock " write$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ after.block 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry} %%$$$ nach DIN neu 16/2/94
+{ write$
+ newline$
+}
+
+FUNCTION {set.period.dash} %% Wenn ein ". - " die Satzteile trennen soll.!
+{ output.state before.all =
+ 'skip$
+ { period.dash 'output.state := }
+ if$
+}
+
+%% neu 16/2/94
+%% prueft, ob PAGES, ISBN- oder NOTE-Feld vh. ist und setzt dann ". - " davor.
+
+FUNCTION {set.period.dash.check}
+{ empty$
+ 'skip$
+ 'set.period.dash
+ if$
+}
+
+FUNCTION {set.colon.after} %%$$$ Wenn ein ": " d. Satzteile trennen soll!
+{ output.state before.all =
+ 'skip$
+ { colon.after 'output.state := }
+ if$
+}
+
+%% neu / alt 17/2/94 Wenn ein " " die Satzteile trennen soll.!
+FUNCTION {new.sentence}
+{ output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+}
+
+%% neu 17/2/94 Wenn ein ", " die Satzteile trennen soll.!
+FUNCTION { part.of.sentence }
+{ output.state before.all =
+ 'skip$
+ { mid.sentence 'output.state := }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+STRINGS { fkt }
+
+% AG: Diese Funktion und nur diese Funktion bringt eine kursive
+% Formatierung ein. Sie wird für alle Tittel verwendet.
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+%% neu, setzt Autor/Hrsg. in Kapitaelchen 9/3/94
+FUNCTION { capitalize }
+ { duplicate$ empty$
+ { pop$ "" }
+ { "\textsc{" swap$ * "}" * }
+ if$
+}
+
+%%$$$ DIN-Quellenangabe : spezieller unselbst. Teil ist erschienen "In: "
+%% dem bibliogr. selbst. Werk, z.B. Zeitschrift, Buch
+
+%% 1/4/96
+FUNCTION {article.in.journal}
+{ duplicate$ empty$
+ { pop$ "" }
+ { author missing$
+ { title missing$
+% Empty Stack Bug behoben, wenn Autor und Titel fehlen 27.08.2000
+% { " " * *}%% wenn ein Zs-Heft als ganzes zitiert wird
+ { " " *}%% wenn ein Zs-Heft als ganzes zitiert wird
+ { "{In: }" swap$ ", " * * }
+ if$
+ }
+ { "{In: }" swap$ ", " * * }
+ if$
+ }
+ if$
+}
+
+%% nach Vorschlag von H.Lueddecke, um Adelspraedikate beim Sortieren
+%% nach den(m) Vornamen aufzufuehren. Lo, 2/11/94
+%% AG, 22.08.2000: Vornamen werden ab jetzt abgekuertzt
+FUNCTION {format.names}
+{ 's :=
+ "" 'u :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ s nameptr "{vv~}{ll}" format.name$ 't :=%% das ergibt DIN-Ansetzung
+ %% Lue's Vorschlag s nameptr "{ll}" format.name$ 't :=
+ t capitalize 't :=
+%% dinalpha's Vorschlag: s nameptr "{, ff}" format.name$ 'u :=
+ s nameptr "{, f.}" format.name$ 'u :=
+ %% Lue's Vorschlag s nameptr "{, ff}{ vv}" format.name$ 'u :=
+ u text.length$ 'lang :=
+ #1 'zahl :=
+ "" 'v :=
+ { zahl lang < }
+ { u zahl #1 substring$ "~" =
+ { v "" =
+ { u #1 zahl #1 - substring$ 'v := }
+ 'skip$
+ if$
+ v u zahl #2 substring$ * "." * 'v := }
+ 'skip$
+ if$
+ zahl #1 + 'zahl := }
+ while$
+ v "" =
+ { u 'v := }
+ 'skip$
+ if$
+%% der string fkt enthaelt " (Hrsg.)", wenn Editorfeld nicht leer ist
+ t v * fkt * 't := %% Komma nach Nachnamen wird oben erledigt!
+ %% t enthaelt nun d. formatierten Nnamen, Vnamen
+ nameptr #1 >
+ { namesleft #1 >
+ { "; " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+%% %% n. schindle's hinweis 12/1/96 erweitert
+ t "\textsc{others}" = t "\textsc{others} (Hrsg.)" = or
+%%% { " [u.~a.]" * }%% 13/2/94
+ { "~et~al." * } %% Geschmackssache, waehle eins von beiden
+ { "; " * t * }
+ if$
+ }
+ if$ %% Ende der namesleft-Pruefung
+ }
+ 't
+ %% hierdurch wird bei jed. Schleifendurchgang das sich komplet-
+ %% tierende Zwischen-Namensergebnis wieder auf den sdack gelegt
+
+ if$ %% Ende der nameptr-Pruefung
+
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$ %% Ende von { namesleft #0 > } ganz oben
+ "" 'fkt := %% fkt wird zurueckgesetzt
+}
+
+%%$$$ geaendert 14/2/94
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+%%$$$ geaend. 20/2/94 Anpassung an DIN, wonach Autor + Hrsg. zusammen vorkom-
+%% men duerfen.!!
+FUNCTION {format.editors}
+{ editor empty$
+ { author empty$
+ { "Weder Verfasser noch Hrsg. in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ { author empty$
+ { " (Hrsg.)" 'fkt :=
+ editor format.names
+ }
+ { " (Hrsg.)" 'fkt :=
+ "; " * editor format.names *
+ }
+ if$
+ }
+ if$
+ }
+
+%% Lo, 12/5/99 neue Funktion fuer proceedings, misc usw.
+
+FUNCTION { format.editors.organization }
+{ organization empty$
+ 'skip$
+ { type$ "misc" =
+ { organization }
+ { "; " * organization " (Veranst.)" *}
+ if$
+ }
+ if$
+}
+
+%%$$$ Sonderfall: Herausgeber bei Typ incollection, 21/2/94
+%% 10.04.01 AG: Herausgeberschaft werden fett und mit dem einmaligen
+%% Verweis Hrsg. gesetzt.
+FUNCTION {format.ed.incoll}
+{ editor empty$
+ { "" }
+ { " (Hrsg.)" 'fkt :=
+ editor format.names
+ }
+ if$
+}
+
+% Wenn's einen Titel hat, dann kursiv ausgeben. Die Funktion
+% format.btitle wird dann ueberfluessig.
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title emphasize }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+%% geaendert 24/2/94
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$ %% b. Buechern nur Jahr, ohne Monat ausgeb. im Impressum
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+%%
+%%$$$ neue Fkt., 16/2/94 u. 14/3/94 das sog. Impressum
+FUNCTION {format.address.publisher.year}
+
+ { publisher empty$
+ { address empty$
+ { year empty$
+ { "" }
+ { year }
+ if$
+ }
+ { "Es gibt einen Verlagsort, aber keinen Verlag in " cite$ * warning$
+ address ", " * format.date *
+ }
+ if$ %Ende address empty$ (Zeile 501)
+ }
+ { address empty$
+ { year empty$
+ { "Es gibt nur eine Verlagsangabe aber keine Jahreszahl in " cite$ * warning$
+ publisher
+ }
+ { publisher ", " * format.date * }
+ if$ %Ende year empty$ (Zeile 513)
+ }
+ { year empty$
+ { address ": " * publisher * }
+ { address ": " * publisher * ", " * format.date * }
+ if$ %Ende year empty(Zeile 520)
+ }
+ if$ %Ende address empty$ (Zeile 512)
+ }
+ if$ %Ende address empty$ (Zeile 501)
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #10 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+%% neu 8/3/94 in dieser Funkt. steckt im volume empty-Teil noch ein bug, der
+%% aber ignoriert werden kann; das Ergebnis ist ok.
+FUNCTION {format.btitle.vol}
+{ number empty$
+ { series empty$
+ { volume empty$
+ { title emphasize }
+ { title " (Band" * volume tie.or.space.connect ")" * emphasize }
+ if$
+ }
+ { volume empty$
+ { title emphasize }%% ein Buch, das zusaetzl. SERIES=Reihentitel besitzt
+ %% jetzt kommt d. Fall des mehrbaendigen Werkes mit Gesamttitel=SERIES
+ %% Zaehlung=VOLUME und Bandtitel=TITLE;
+ { series emphasize ". Band" * volume tie.or.space.connect
+ ": " * title * emphasize }
+ if$
+ }
+ if$%% series-test
+ }
+ { title emphasize }%% wenn number ex., dann immer title-Feld
+ if$%% Ende number-test
+}
+
+%%$$$ neu 16/2/94
+%% Serien- / Reihentitel werden im Feld series gespeichert. Weist die
+%% Serie eine Zaehlung der Einzeltitel auf, gibt man entweder nach DIN alles
+%% in das Feld series so ein: ---> TITEL DER SERIE NR. (der Vorlage) <---
+%% z. B. SERIES= { Mensch und Computer 12 }.
+%% [ Die Nummer der Vorlage darf auch durch "; " abgesetzt werden. ]
+%% oder:
+%% man gibt die Zaehlung in das Feld NUMBER ein, z.B. NUMBER = {12}.
+%% Achtung!!
+%% Bei mehrbaendigen Werken steht d. Gesamttitel im Feld SERIES und die
+%% Bandzaehlung im Feld VOLUME; NUMBER darf dann nicht besetzt sein!
+%% Anderenfalls liegt ein Erfassungsfehler vor, da sich Reihe u. mehrbd.
+%% Werk gegenseitig ausschliessen.
+%% AG: Die hier eingefuegten oeffnenden und schliessenden Klammern kommen weg.
+%%
+FUNCTION {format.series.number.din} {
+ volume empty$
+ { number empty$
+ { series empty$
+ { "" }%% Ausstieg mit Nullstring
+ { "" series * "" * } %% d. Seriennr koennte auch gleich hier
+ %% im SERIES-Feld miterfasst werden
+ if$ %%Ende von series empty$
+ }
+ { series empty$
+ { "" number tie.or.space.connect "" *
+ "there's a number but no series in " cite$ * warning$
+ }
+ { "" series * number tie.or.space.connect "" * }
+ if$ %% Ende von Series empty$
+ }
+ if$ %%Ende von number empty$
+ }
+ { series empty$
+ %% Kein Serientitel angegeben -> Nullstring
+ { "" }
+ %% Serientitel vorhanden
+ { type empty$
+ %% kein Typ angegeben, nur VOLUME oder NUMBER erlaubt
+ { number empty$
+ %% laufende Nummer nicht vorhanden -> alles ok
+ { "" series * "" *}
+ %% VOLUME und NUMBER vorhanden -> Fehlermeldung
+ %% nur Ausgabe der Serie
+ { "" series * "" *
+ "VOLUME und NUMBER sind nur für TYPE Proceedings in " cite$ *
+ " gleichzeitig erlaubt." * warning$
+ }
+ if$ %%Ende von number empty$ (Zeile 605)
+ }
+ %% Typ vorhanden
+ { type "proceedings" =
+ %% Type entspricht Proceedings
+ %% -> es sind Werte für VOLUME und NUMBER erlaubt
+ { number empty$
+ %% laufende Nummer ist nicht vorhanden
+ { "" series * "" *}
+ %% laufende Nummer ist vorhanden -> mit ausgeben
+ { "" series * number tie.or.space.connect "" *}
+ if$ %% Ende number empty$ (Zeile 619)
+ }
+ %% Type entspricht nicht Proceedings
+ %% es darf nur im Feld Number oder im Feld VOLUME
+ %% etwas verzeichnet sein
+ { number empty$
+ %% laufende Nummer nicht vorhanden -> alles ok
+ { "" series * "" *}
+ %% VOLUME und NUMBER vorhanden -> Fehlermeldung
+ %% nur Ausgabe der Serie
+ { "" series * "" *
+ "VOLUME und NUMBER sind nur für TYPE Proceedings in " cite$
+ * "gleichzeitig erlaubt." * warning$
+ }
+ if$ %%Ende von number empty$ (Zeile 629)
+ }
+ if$ %%Ende von type "proceedings" = (Zeile 601)
+ }
+ if$ %% Ende von type empty$ (Zeile 603)
+ }
+ if$ %%Ende von series empty$ (Zeile 599)
+ }
+ if$ %% Ende von volume empty (Zeile 582)
+}
+
+%Falls Series angegeben wurde, wird ein Komma auf dem Stack hinterlegt
+FUNCTION {set.comma.after.series} {
+ series empty$
+ 'skip$
+ { part.of.sentence }
+ if$
+}
+
+%% seltener Fall bei MISC: Ausgabe einer Serie; die Nummer der Serie muss
+%% in SERIES miterfasst werden 16/6/99
+
+FUNCTION {format.misc.series}
+{ series empty$
+ { "" }
+ { "(" series * ")" * }
+ if$
+}
+
+%%$$$ 16/2/94
+%% Auflagenvermerke gibt man komplett, einschliesslich Abkuerzungen in
+%% das Feld edition ein: ---> EDITION= { 3., erw. und verb. Aufl. }
+%% oder fremdsprachlich: EDITION= { 2nd edition }
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { edition }
+ if$
+}
+
+%AG: Platzhalter fuer die Formatierung von Buchbaenden
+FUNCTION {format.volume}
+{ volume empty$
+ { "" }
+ { volume }
+ if$
+}
+
+%%$$$ neu, 18/3/94
+FUNCTION { format.isbn.issn }
+{ isbn empty$
+ { issn empty$
+ { "" }
+ { "ISSN" issn n.dashify tie.or.space.connect }
+ if$
+ }
+ { "ISBN" isbn n.dashify tie.or.space.connect }
+ if$
+}
+
+%%$$$ geaendert, 21/2/94 gibt Seitenzahl bei BOOK-Typ und verwandten T. aus
+FUNCTION {format.pages.book}
+{ pages empty$
+ { "" }
+ { "" pages n.dashify tie.or.space.connect " S" *} %% 17/12/95
+ if$
+}
+
+%%$$$ alle anderen Seitenang. zB. Zeitschrft., INBOOK usw. a la Orig., 9/3/94
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { "S." pages n.dashify tie.or.space.connect }
+ if$
+}
+
+%% Angaben v. Jahrgang, Jahr, Heftnr., Seiten bei Artikel-Typ
+%% 14/3/94, 26/2/97
+
+FUNCTION {format.vol.year.num.pages}
+{ volume field.or.null
+ year empty$
+ { "Es gibt einen Jahrgang, aber kein Jahr in " cite$ * warning$ }
+ { "(" year * ")" * tie.or.space.connect }
+ if$
+ month empty$
+ 'skip$
+ { ", " month * * }
+ if$
+ number empty$
+ 'skip$
+ { number tie.or.space.connect }
+ if$
+ pages empty$%% Lo, 26/2/97
+ 'skip$
+ { ", " format.pages * *}%%
+ if$
+}
+
+%% geaendert 21/2/94
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "Kapitel " }
+ { type }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+%%$$$ geaendert 21/2/94
+FUNCTION {format.in.ed.booktitle.din}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { volume empty$
+ { "{In: }" booktitle emphasize * }%% n. Belieben fettes In:
+ { "{In: }" booktitle emphasize * %% - " -
+ " Band" volume tie.or.space.connect *
+ }
+ if$
+ }
+ { volume empty$
+ { "{In: }" format.ed.incoll * ": " * booktitle emphasize * }
+ { "{In: }" format.ed.incoll * ": " * booktitle emphasize *
+ " Band" volume tie.or.space.connect *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%% geaendert 1/3/94
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type
+ }
+ if$
+}
+
+%% geaendert 23/2/94 i.Orig. wird zuerst die number, dann der type getestet
+%% Geaendert (28.06.2000): tie.or.space.connect ersetzt durch einfache
+%% Leerzeichen, da sonst unmittelbar nach der öffnenden Klammer ein Leerzeichen
+%% stand.
+FUNCTION {format.tr.number.din}
+{ type empty$
+ { number empty$
+ { "Forschungsbericht" } %% bei Minimalangaben besser ohne "."!
+ % You can't pop from Literal empty stack
+ { "Forschungsbericht " number * }
+ if$
+ }
+ { number empty$
+ { type } %% bei Minimalangaben besser ohne "."!
+ % You can't pop from Literal empty stack
+ { type " " * number * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "{In: }{\em " journal * "}" * }%%
+ if$
+ }
+ { "{In: }" key * }%%
+ if$
+ "{\cite{" * crossref * "}" * "}" * ", " * format.pages *
+}
+
+%%geaendert 7/3/94 und noch einmal nach Lueddecke, s.o.
+FUNCTION {format.crossref.editor}
+ { editor #1 "{ll}" format.name$ " (Hrsg.)" *
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " [u.\,a.]" * }
+%% { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " [u.\,a.]" }
+%% { " et~al." * }
+ { "; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "{\texttt{siehe}} "
+%% "(siehe "
+ }
+ { ". -- Band" volume tie.or.space.connect
+ " von " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "" * }%% dadurch kommt nach der Bandzaehl. gleich das label 2/6/99
+ if$
+ }
+ { key * }
+ if$
+ }
+ { "" * }%% nach der Bandzaehlung kommt gleich das label; Lo 2/6/99
+%% { format.crossref.editor * }
+ if$
+ "{\cite{" * crossref * "}" * "}" *
+%% "{\cite{" * crossref * "}" * "}" * %%"), " * format.pages *
+}
+
+%% AG: Fuer meine Begriffe soll bei angegebener Referenz nur
+%% ein In: plus Zitierschluessel generiert werden!
+%% Falls zusaetzlich zur Crossref noch ein Buchtitel oder ein Editor
+%% angegeben wurde, wird eine Warnung ausgegeben, dass diese Angaben
+%% nicht exportiert werden.
+%%FUNCTION {format.incoll.inproc.crossref} {
+%% "In: {\cite{" crossref * "}" * "}" * ", " * format.pages *
+%% booktitle empty$
+%% 'skip$
+%% { "Fuer den Eintrag " cite$ * " wurde eine Crossreference und ein " *
+%% "Buchtitel angegeben. Der Buchtitel wird ignoriert." * "(" * booktitle * ")" * warning$
+%% }
+%% if$
+%% editor empty$
+%% 'skip$
+%% { "Fuer den Eintrag " cite$ * " wurde eine Crossreference und ein " *
+%% "Editor angegeben. Der Editor wird ignoriert." * warning$
+%% }
+%% if$
+%%}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "{In: }" booktitle * emphasize }%% fettes In: n. Belieben
+ if$
+ }
+ { "{In: }" }%% 26/5/99
+ if$
+ }
+ { "{In: }" }%% Lo, 10/2/99 es sieht der reine Bezug (Referenz) besser aus!
+ if$
+ "{\cite{" * crossref * "}" * "}" * ", " * format.pages *
+}
+
+%%geaendert
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ set.colon.after
+ format.title "title" output.check
+ crossref missing$
+ { journal article.in.journal output.nonnull % 26/2/97
+ new.sentence
+ format.vol.year.num.pages output
+ }
+ { format.article.crossref output.nonnull }
+ if$
+ note set.period.dash.check
+ note output
+ issn set.period.dash.check
+ format.isbn.issn output
+ fin.entry
+}
+
+%%$$$ geaendert, 20/2/94
+%% Entgegen den TeX-Regeln verlangt die DIN Norm eine Auflagennummer für jedes
+%% Buch. Dies wurde jedoch wieder zurückgenommen. Somit gelten die TeX-Regeln
+%% wieder.
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors format.editors output.nonnull }
+ if$
+ set.colon.after
+ format.title "title" output.check
+ format.series.number.din output
+ set.comma.after.series
+ %AG hier müssen wir noch den Band (volume) einschreiben
+ %Die Formatierung haben wir natürlich von der edition geklaut.
+ volume empty$
+ 'skip$
+ { format.volume output.nonnull
+ part.of.sentence }
+ if$
+ %AG: Nur bei angegebener Edition, setzen wir ein Komma danach ein
+ edition empty$
+ 'skip$
+ { format.edition output.nonnull
+ part.of.sentence }
+ if$
+ format.address.publisher.year "publisher" output.check
+ new.sentence
+
+%% AG: Nach meinem Dafuerhalten sollten ein Buch keine Crossreferenz haben!
+%% crossref missing$
+%% { format.series.number.din output
+%% pages set.period.dash.check%% 19/5/99 wie bei adinat.bst
+%% format.pages.book output
+%% }
+%% { format.book.crossref output.nonnull
+%% pages set.period.dash.check
+%% format.pages.book output
+%% }
+%% if$
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ format.isbn.issn output
+ fin.entry
+}
+
+%% geaendert 23/2/94
+FUNCTION {inbook}
+{ output.bibitem
+%% unselbst. Teile eines Buches werden am Anf. genannt, dann d selbst. Quelle
+ chapter empty$
+ { "Es fehlen die Kapitelangaben in " cite$ * warning$ }
+ { type empty$
+ { "Kap. " output }%% d.i. die Standardvorgabe
+ { type output}%% wenn man keine bes. Typform angeben will, koennte ein kl.
+%% Zwischenraum gewaehlt werden, z.B. " \, "
+ if$
+ }
+ if$
+ chapter tie.or.space.connect " {In: }" * %% n. Belieben fettes In:
+%% -------- jetzt kommt der bibliogr. selbst. Teil
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull}
+ if$
+ set.colon.after
+ format.btitle.vol "title" output.check
+ crossref missing$
+ {
+ format.edition output
+ format.address.publisher.year "publisher" output.check
+ new.sentence
+ format.series.number.din output
+% %% vorher note..
+ part.of.sentence
+%% nach Texregeln sind die Seitenzahlen nicht zwingend
+ format.pages output
+%% format.pages "pages" output.check
+ note set.period.dash.check
+ note output
+ }
+ {
+ format.book.crossref output.nonnull
+ note set.period.dash.check
+ note output
+ }
+ if$
+ isbn set.period.dash.check
+ format.isbn.issn output
+ fin.entry
+}
+
+%% geaenderte Seitenzahlausgabe, wenn crossref-Feld benutzt wird, 27/2/97
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ set.colon.after
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle.din "booktitle" output.check
+ format.edition output
+ format.series.number.din output
+ set.comma.after.series
+ format.address.publisher.year "publisher" output.check
+ new.sentence
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ part.of.sentence
+% %% Nach texregeln sind die Seitenangaben nicht zwingend
+ format.chapter.pages output
+% %% format.chapter.pages "pages" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ }
+ if$
+ fin.entry
+}
+
+%% geaendert 22/2/94, 15/11/96 (Hinweis v. Alin Shindun, Uni Siegen)
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ set.colon.after
+ format.title "title" output.check
+ crossref missing$
+ { format.in.ed.booktitle.din "booktitle" output.check
+ address empty$
+ { organization new.sentence.checka
+ organization output
+ part.of.sentence
+ format.address.publisher.year "year" output.check
+ }
+ { format.address.publisher.year "year" output.check}
+ if$
+ new.sentence
+ series empty$ %%neu nach Hinweis v. Alin Shindun, 15/11/96
+ 'skip$
+ { format.series.number.din output }
+ if$
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ part.of.sentence
+ format.pages output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ }
+ if$
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }%% nach Patashnik, wg US-Kompatibilitaet
+
+%% geaendert, 11/6/99
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ { title empty$
+ 'skip$
+ {format.title "title" output.check }
+ if$
+ }
+ { organization output.nonnull
+ set.colon.after
+ format.title "title" output.check
+ }
+ if$
+ }
+ { format.authors output.nonnull
+ set.colon.after
+ format.title "title" output.check
+ }
+ if$
+%% Nach Texregeln ist die Auflage nicht gefordert
+ format.edition output
+%% format.edition "edition" output.check
+ author empty$
+ { organization empty$
+ { address output
+ part.of.sentence
+ }
+ 'skip$
+ if$
+ }
+ { address ": " * organization * output
+ part.of.sentence
+ }
+ if$
+ format.date output
+ pages set.period.dash.check
+ format.pages.book output
+ note set.period.dash.check
+ note output
+ fin.entry
+}
+
+%% Ausgabe-Standard ist "Diplomarbeit", fuer andere Abschlussarbeiten
+%% bei der Erfassung TYPE="anderer Typ" eingeben.
+%% z.B. TYPE={Dissertation}, TYPE={Diss.}, TYPE={Habil.}, TYPE={Magisterarb.}
+%%
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ set.colon.after
+ format.title "title" output.check
+ address output
+ part.of.sentence
+ school "school" output.check
+ part.of.sentence
+ "Diplomarbeit" format.thesis.type output.nonnull
+ part.of.sentence
+ format.date "year" output.check
+%% pages new.sentence.checka
+ pages set.period.dash.check
+ format.pages.book output
+ note set.period.dash.check
+ note output
+ fin.entry
+}
+
+%% Dissertationen
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ set.colon.after
+ format.title "title" output.check
+ address output
+ part.of.sentence
+ school "school" output.check
+ part.of.sentence
+ "Dissertation" format.thesis.type output.nonnull
+ part.of.sentence
+ format.date "year" output.check
+%% pages new.sentence.checka
+ pages set.period.dash.check
+ format.pages.book output
+ note set.period.dash.check
+ note output
+ fin.entry
+}
+
+%% hiermit werden u.a. Normen erfasst
+FUNCTION {misc}
+{ output.bibitem
+ note empty$
+ { title empty$
+%% Stack isn't empty bug (CK)
+ { "" output}
+%% { "" }
+%% Naechste Zeile verursacht einen Stack isn't empty bug,
+%% falls kein Autor angegeben wurde
+%% {format.authors format.editors output.nonnull
+%% Stack isn't empty bug (AG) mit den Zeilen aus book behoben
+ {author empty$
+ {editor empty$
+ { "" output}
+ {format.editors "author and editor" output.check }
+ if$}
+ { format.authors format.editors output.nonnull }
+ if$
+
+ set.colon.after
+ format.title output
+ howpublished output
+ part.of.sentence
+ format.date output
+ }
+ if$ %%title empty
+ }
+%% Hier wird geprüft, ob die Anmerkung mit 'Norm' beginnt
+ {note duplicate$ #1 #4 substring$ "Norm" =
+ %% Anmerkung beginnt mit 'Norm'
+ {output new.sentence
+ format.date output
+ format.title output
+ }
+ %% Anmerkung beginnt nicht mit 'Norm'
+%% Stack isn't empty bug (CK)
+ {output pop$ ""
+%% {pop$ ""
+ author empty$
+ %% Tag Autor frei
+ { editor empty$
+ %% Tag Herausgeber leer
+ { organization empty$
+ %%Tag Organization frei
+ { 'skip$ }
+ %%Tag Organization belegt
+ { format.editors.organization output.nonnull
+ set.colon.after }
+ if$ %%organization empty
+ }
+ %% Tag Herausgeber belegt
+ { format.editors format.editors.organization output.nonnull
+ set.colon.after }
+ if$ %%editor empty
+ }
+ %% Tag Autor belegt
+ { format.authors format.editors output.nonnull
+ set.colon.after
+ }
+ if$ %%author empty
+ format.title output
+ howpublished output
+ format.date output
+ new.sentence
+ format.misc.series output%% neu 16/6/99
+ note set.period.dash.check
+ note output
+ }
+ if$ %%note duplicate ...
+ }
+ if$ %% note empty
+ fin.entry
+}
+
+%%FUNCTION {booklet} {misc}%% booklet ist nach dt. Vorgehensweise oft ueberfluessig
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ format.title "title" output.check
+ howpublished output
+ address output
+ format.date output
+ note output
+ fin.entry
+}
+
+%% geaendert 21/5/99
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization empty$
+ { "" output}
+ { organization " (Veranst.)" * output }
+ if$
+ }
+ { format.editors format.editors.organization output.nonnull }
+ if$
+ set.colon.after
+ format.title "title" output.check
+ format.series.number.din output.nonnull
+ set.comma.after.series
+ volume empty$
+ { "" output.nonnull }
+ { "{\textnormal{Band}}" volume tie.or.space.connect "volume" output.check }
+ if$
+ format.address.publisher.year "year" output.check
+ new.sentence
+ pages set.period.dash.check
+ format.pages.book output
+ note set.period.dash.check
+ note output
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ fin.entry
+}
+
+%% geaendert 23/2/94 auch fuer Firmenschriften u."a. zu benutzen
+FUNCTION {techreport}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors format.editors output.nonnull }
+ if$
+ set.colon.after
+ format.title "title" output.check
+ institution empty$
+ 'skip$
+ { institution output.nonnull
+ part.of.sentence }
+ if$
+ format.tr.number.din "number" output.check
+ part.of.sentence
+ format.address.publisher.year "year" output.check
+ number new.sentence.checka
+% AG: Jetzt direkt nach dem Titel
+% format.tr.number.din "number" output.check
+ %% new.sentence
+ pages set.period.dash.check
+ format.pages.book output
+%% Nach Texregeln ist die Anmerkung nicht zwingend
+ note output
+%% note "note" output.check
+ isbn set.period.dash.check
+ issn set.period.dash.check
+ format.isbn.issn output
+ fin.entry
+}
+
+FUNCTION {unpublished} {misc}%% author, title, note muessen sein! howpublished
+%% %% entfaellt natuerlich
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Januar"}
+
+MACRO {feb} {"Februar"}
+
+MACRO {mar} {"M{\^^b a}rz"}
+%% nach Bernd Raichle, Febr. 1999
+
+MACRO {apr} {"April"}
+
+MACRO {mai} {"Mai"}
+
+MACRO {may} {"Mai"}
+
+MACRO {jun} {"Juni"}
+
+MACRO {jul} {"Juli"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {okt} {"Oktober"}
+
+MACRO {oct} {"Oktober"}
+
+MACRO {nov} {"November"}
+
+MACRO {dez} {"Dezember"}
+
+MACRO {dec} {"Dezember"}
+
+%% stillgelegte Beispiele fuer den Gebrauch von Kuerzeln (hier Zs-Titel).
+
+%%MACRO {acmcs} {"ACM Computing Surveys"}
+
+%%MACRO {acta} {"Acta Informatica"}
+
+%%MACRO {cacm} {"Communications of the ACM"}
+
+%%MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+%%MACRO {ibmsj} {"IBM Systems Journal"}
+
+%%MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+%%MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+%%MACRO {ieeetcad}
+%% {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+%%MACRO {ipl} {"Information Processing Letters"}
+
+%%MACRO {jacm} {"Journal of the ACM"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+INTEGERS { et.al.char.used }
+
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+
+EXECUTE {initialize.et.al.char.used}
+
+FUNCTION {format.lab.names}
+{
+'s :=
+ s num.names$ 'numnames :=
+ numnames #1 =
+ % Genau ein Autor
+ {s #1 "{ll}" format.name$ #4 text.prefix$}
+ 'skip$
+ if$
+ numnames #2 =
+ %Genau zwei Autoren
+ {s #1 "{ll}" format.name$ #2 text.prefix$ s #2 "{ll}" format.name$ #2
+ text.prefix$ *}
+ 'skip$
+ if$
+ numnames #2 >
+ %Mehr als zwei Autoren
+ {s #1 "{ll}" format.name$ #3 text.prefix$ "$^+$" *}
+ 'skip$
+ if$
+% 's :=
+% s num.names$ 'numnames :=
+% numnames #1 >
+% { numnames #4 >
+% { #3 'namesleft := }
+% { numnames 'namesleft := }
+% if$
+% #1 'nameptr :=
+% ""
+% %% Eingangsbedingung für Whileschleife
+% { namesleft #0 > }
+% { nameptr numnames =
+% { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+% %% { "\," * %% kein besonderes Zeichen fuer "others" i. label
+% { "{\etalchar{+}}" * %% ein plus-Zeichen (+) fuer "others"!
+% #1 'et.al.char.used :=
+% }
+% %% { s nameptr "{v{}}{l{}}" format.name$ * }
+% { s nameptr "{l{}}" format.name$ * }
+% if$
+% }
+% %% { s nameptr "{v{}}{l{}}" format.name$ * }
+% { s nameptr "{l{}}" format.name$ * }
+% if$
+% nameptr #1 + 'nameptr :=
+% namesleft #1 - 'namesleft :=
+% }
+% while$
+% numnames #4 >
+% %% { "\," * %% s. Bemerkung oben
+% { "{\etalchar{+}}" *
+% #1 'et.al.char.used :=
+% }
+% 'skip$
+% if$
+% }
+% %% { s #1 "{v{}}{l{}}" format.name$
+% { s #1 "{l{}}" format.name$
+% duplicate$ text.length$ #2 <
+% { pop$ s #1 "{ll}" format.name$ #4 text.prefix$ } %% vgl. Anmerkung!
+% 'skip$
+% if$
+% }
+% if$
+}
+%% Anmerkung, Lo 14/12/95:
+%% wenn man in der letzten label-Bearbeitung #4 statt #3 setzt, dann werden
+%% auch Umlaute oder á an 3. Stelle im Namen korrekt in das label genommen.
+%% Tip: Aendere diese Zahl nur, wenn in einer Lit.-Liste der Umlautsonderfall
+%% stoerend auffaellt.
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #4 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #4 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #4 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+%% neu 19/5/99 damit eigene labels fuer Konferenzen erzeugt werden koennen,
+%% darf man zusaetzlich auch ein key-Feld eingeben. Das produziert
+%% dann vorrangig das label.
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word organization } %% Lo, 26/1/98
+%% { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #5 text.prefix$ }%% man kann Laenge des key einstellen
+ if$
+ }
+ { key empty$%% wenn key vh., dann macht er das label! Lo,18/5/99
+ { editor format.lab.names }
+ { key #5 text.prefix$ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ type$ "misc" =
+ or
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year field.or.null purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "[u.~a.]" * }
+ %% { "et al" * }% Geschmackssache
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "Der " #4
+ "Die " #4
+ "Das " #4
+ "Ein " #4
+ "Eine " #5
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ chop.word
+ chop.word
+ chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ calc.label
+ sort.label
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ *
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label last.sort.label next.extra }
+
+INTEGERS { longest.label.width last.extra.num }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.sort.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ sort.label 'last.sort.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION {begin.bib}%%lt. Original wiederhergestellt 4/1/96
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+
+%$Log: wisealpha.bst,v $
+%Revision 1.8 2004/03/19 14:39:57 gehlert
+%Volumen bei Büchern berücksichtigen
+%
+%Revision 1.7 2002/12/03 10:03:58 gehlert
+%Ändern der Feinheitden beim Formatieren der BibTeX-Einträge.
+%
+%Revision 1.5 2001/10/22 08:30:05 andreasg
+%no message
+%
+%Revision 1.4 2001/10/22 08:14:43 andreasg
+%* Bisher wurde bei Büchern nach dem Titel ein Komma gesetzt. Bei allen
+% anderen Einträgen erfolgte dagegen ein Punkt. Dieser Fehler wurde behoben
+%* Die fette Formatierung der Herausgeberschaft ist nur bei gleichzeitigem
+% Vorhandensein von Autoren notwendig und stößt oft auf Kritik (Alternative?).
+% Aus dem Grund wurde ein Befehl \empheditors eingeführt, der die Editoren
+% standardmäßig fett formatiert. Ist das nicht erwünscht, so muss man lediglich
+% diesen Befehl entsprechend überschreiben.
+%
+%Revision 1.3 2001/10/22 08:06:45 andreasg
+%* Die Titel in inbook, incollection und inproceedings werden kursiv
+% gesetzt.
+%* Die Herausgeberschaft wird nicht mehr durch Angabe der Zeichenkette
+% "(Hrsg.)" von den Autoren abgesetzt, sondern wird fett hervorgehoben.
+% Dabei steht nach dem letzten Herausgeber wiederum der String "(Hrsg.)"
+% (ebenfalls fett).
+%
+%Revision 1.2 2001/10/22 07:57:24 andreasg
+%no message
+%