mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-24 10:40:48 +00:00
1666 lines
42 KiB
Plaintext
1666 lines
42 KiB
Plaintext
|
%% ALPHADIN.BST Ausgabe [8] 10/10/00
|
|||
|
%% (C) Klaus F. Lorenzen, Hamburg email: lorenzen.marxen@t-online.de
|
|||
|
%% ersetzt ALPHADIN.BST Ausgabe [7,1] vom 23/11/99
|
|||
|
%% 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 gilt 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
|
|||
|
%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
% version 0.99c for BibTeX versions 0.99c or later, LaTeX2e
|
|||
|
% Copyright (C) 1985, all rights reserved.
|
|||
|
% Copying of this file is authorized only if either
|
|||
|
% (1) you make absolutely no changes to your copy, including name, or
|
|||
|
% (2) if you do make changes, you name it something other than
|
|||
|
% bstdin.doc, plaindin.bst, unsrtdin.bst, alphadin.bst, and abbrvdin.bst.
|
|||
|
% This restriction helps ensure that all standard styles are identical.
|
|||
|
%% ==> 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
|
|||
|
% %% b) Titel des Sammelwerks, das einzelne selbstaendige
|
|||
|
% %% Beitraege mit eigenem Titel enthaelt (->incollection)
|
|||
|
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
|
|||
|
% %% b) Name einer Firma/Gesellschaft, die ein ->manual herausgab
|
|||
|
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)
|
|||
|
% %% b) Jahrgang einer Zeitschrift (-> article
|
|||
|
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 }
|
|||
|
|
|||
|
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$
|
|||
|
{ emphasize " " * * }%% wenn ein Zs-Heft als ganzes zitiert wird
|
|||
|
{ emphasize "{In: }" swap$ " " * * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ emphasize "{In: }" swap$ " " * * }
|
|||
|
if$
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
|
|||
|
%% nach Vorschlag von H.Lueddecke, um Adelspraedikate beim Sortieren
|
|||
|
%% nach den(m) Vornamen aufzufuehren. Lo, 2/11/94
|
|||
|
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 :=
|
|||
|
s nameptr "{, ff}" 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 stack 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
|
|||
|
FUNCTION {format.ed.incoll}
|
|||
|
{ editor empty$
|
|||
|
{ "" }
|
|||
|
{ " (Hrsg.)" 'fkt :=
|
|||
|
editor format.names
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
|
|||
|
FUNCTION {format.title}
|
|||
|
{ title empty$
|
|||
|
{ "" }
|
|||
|
{ title } %% Text so wie er dasteht im Feld title
|
|||
|
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$
|
|||
|
}
|
|||
|
{ address empty$
|
|||
|
{ year empty$
|
|||
|
{ "Es gibt nur eine Verlagsangabe in " cite$ * warning$
|
|||
|
publisher
|
|||
|
}
|
|||
|
{ publisher ", " * format.date * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ year empty$
|
|||
|
{ address " : " * publisher * }
|
|||
|
{ address " : " * publisher * ", " * format.date * }
|
|||
|
if$
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
|
|||
|
FUNCTION {format.btitle}
|
|||
|
{ title emphasize
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
FUNCTION {tie.or.space.connect}
|
|||
|
{ duplicate$ text.length$ #3 <
|
|||
|
{ "~" }
|
|||
|
{ " " }
|
|||
|
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 emphasize ". Bd." * volume tie.or.space.connect }
|
|||
|
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 ". Bd." * volume tie.or.space.connect
|
|||
|
": " * "{\emph{" * title * "}}" * }
|
|||
|
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.
|
|||
|
|
|||
|
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$
|
|||
|
}
|
|||
|
{ series empty$
|
|||
|
{ "(" number tie.or.space.connect ")" *
|
|||
|
"there's a number but no series in " cite$ * warning$
|
|||
|
}
|
|||
|
{ "(" series * number tie.or.space.connect ")" * }
|
|||
|
if$
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
{ series empty$
|
|||
|
{ "" }
|
|||
|
{ type$ "proceedings" = %% Sonderfall, es darf VOLUME und NUMBER ex. !
|
|||
|
{ number empty$
|
|||
|
{ "(" series * ")" * }
|
|||
|
{ "(" series * number tie.or.space.connect ")" * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ "" }%% Ausstieg mit Nullstring, s. Kommentar
|
|||
|
if$
|
|||
|
}%% bei gezaehlten Reihen MUSS die Reihennr. im Feld NUMBER stehen!
|
|||
|
if$ %% wenn also d. Feld VOLUME nicht leer ist, dann liegt ausser bei
|
|||
|
%% Typ PROCEEDINGS falsche
|
|||
|
} %% Erfassung vor und es erfolgt d. Ausstieg mit d. Nullstring!
|
|||
|
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$
|
|||
|
}
|
|||
|
|
|||
|
%%$$$ 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 * ")" * * }
|
|||
|
if$
|
|||
|
month empty$
|
|||
|
'skip$
|
|||
|
{ ", " month * * }
|
|||
|
if$
|
|||
|
number empty$
|
|||
|
'skip$
|
|||
|
{ ", Nr. " number * * }
|
|||
|
if$
|
|||
|
pages empty$%% Lo, 26/2/97
|
|||
|
'skip$
|
|||
|
{ ", " format.pages * *}%%
|
|||
|
if$
|
|||
|
|
|||
|
%% pages empty$%% das war die Fass. Nov. 96, die auch ging
|
|||
|
%% 'skip$
|
|||
|
%% { duplicate$ empty$
|
|||
|
%% { pop$ format.pages }%% da pages leer, wird nur "" auf stack gelegt
|
|||
|
%% { ", " format.pages * *}
|
|||
|
%% if$
|
|||
|
%% }
|
|||
|
%% 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 * %% - " -
|
|||
|
" Bd." volume tie.or.space.connect *
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
{ volume empty$
|
|||
|
{ "{In: }" format.ed.incoll * ": " * booktitle emphasize * }
|
|||
|
{ "{In: }" format.ed.incoll * ": " * booktitle emphasize *
|
|||
|
" Bd." 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
|
|||
|
FUNCTION {format.tr.number.din}
|
|||
|
{ type empty$
|
|||
|
{ number empty$
|
|||
|
{ " -- Forschungsbericht" } %% bei Minimalangaben besser ohne "."!
|
|||
|
{ "(" number tie.or.space.connect "). -- Forschungsbericht" * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ number empty$
|
|||
|
{ " -- " type * } %% bei Minimalangaben besser ohne "."!
|
|||
|
{ "(" number tie.or.space.connect "). -- " * type * }
|
|||
|
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 *
|
|||
|
%% " (siehe \cite{" * crossref * "}" * "), " * format.pages *
|
|||
|
}
|
|||
|
|
|||
|
%%geaendert 7/3/94 und noch einmal nach Lueddecke, s.o.
|
|||
|
FUNCTION {format.crossref.editor}
|
|||
|
%vorher,Lue { editor #1 "{vv~}{ll}" format.name$ " (Hrsg.)" *
|
|||
|
{ 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 "
|
|||
|
}
|
|||
|
{ ". -- Bd." 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
|
|||
|
%% { "{\emph{" * series * "}} {\texttt{siehe}}" * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ key * }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ "" * }%% nach der Bandzaehlung kommt gleich das label; Lo 2/6/99
|
|||
|
%% { format.crossref.editor * }
|
|||
|
if$
|
|||
|
"{\cite{" * crossref * "}" * "}" *
|
|||
|
%% "{\cite{" * crossref * "}" * "}" * %%"), " * format.pages *
|
|||
|
}
|
|||
|
|
|||
|
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: }{\emph " booktitle * "}" * }%% fettes In: n. Belieben
|
|||
|
if$
|
|||
|
}
|
|||
|
{ "{In: }" }%% 26/5/99
|
|||
|
%% { "{In: }" key * }
|
|||
|
if$
|
|||
|
}
|
|||
|
%% { "{In: }{\em " booktitle * "\/}" * }%%
|
|||
|
{ "{In: }" }%% Lo, 10/2/99 es sieht der reine Bezug (Referenz) besser aus!
|
|||
|
if$
|
|||
|
%% " (siehe \cite{" * crossref * "}" * "), " * format.pages *
|
|||
|
"{\cite{" * crossref * "}" * "}" * ", " * format.pages *%% das fette label, Lo 23/2/99
|
|||
|
%% alte Vers. bis 27/2/97 " (siehe \cite{" * crossref * "}" * ")" *
|
|||
|
}
|
|||
|
|
|||
|
%%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
|
|||
|
FUNCTION {book}
|
|||
|
{ output.bibitem
|
|||
|
author empty$
|
|||
|
{ format.editors "author and editor" output.check }
|
|||
|
{ format.authors format.editors output.nonnull }
|
|||
|
if$
|
|||
|
set.colon.after
|
|||
|
crossref missing$
|
|||
|
{ format.btitle.vol "title" output.check }
|
|||
|
{ format.btitle "title" output.check }
|
|||
|
if$
|
|||
|
format.edition "edition" output.check
|
|||
|
format.address.publisher.year "publisher" output.check
|
|||
|
new.sentence
|
|||
|
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. " }%% d.i. die Standardvorgabe
|
|||
|
{ type }%% wenn man keine bes. Typform angeben will, koennte ein kl.
|
|||
|
%% Zwischenraum gewaehlt werden, z.B. " \, "
|
|||
|
if$
|
|||
|
chapter tie.or.space.connect " {In: }" * * %% n. Belieben fettes In:
|
|||
|
}
|
|||
|
if$
|
|||
|
|
|||
|
%% -------- 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
|
|||
|
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.address.publisher.year "publisher" output.check
|
|||
|
new.sentence
|
|||
|
format.series.number.din output
|
|||
|
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.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 output
|
|||
|
}
|
|||
|
{ format.address.publisher.year "publisher" 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.btitle "title" output.check }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ organization output.nonnull
|
|||
|
set.colon.after
|
|||
|
format.btitle "title" output.check
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
{ format.authors output.nonnull
|
|||
|
set.colon.after
|
|||
|
format.btitle "title" output.check
|
|||
|
}
|
|||
|
if$
|
|||
|
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
|
|||
|
}
|
|||
|
|
|||
|
%% MASTERSTHESIS ersetzt zugleich PHDTHESIS !! KFL, 17/2/94
|
|||
|
%% 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.btitle "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
|
|||
|
}
|
|||
|
|
|||
|
FUNCTION {phdthesis} %% {mastersthesis}% ist identisch bis auf Standardwert, s.o.
|
|||
|
{ output.bibitem
|
|||
|
format.authors "author" output.check
|
|||
|
set.colon.after
|
|||
|
format.btitle "title" output.check
|
|||
|
address output
|
|||
|
part.of.sentence
|
|||
|
school "school" output.check
|
|||
|
part.of.sentence
|
|||
|
"Diss." format.thesis.type output.nonnull % koennte auch `Dissertation' sein
|
|||
|
part.of.sentence
|
|||
|
format.date "year" output.check
|
|||
|
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$
|
|||
|
{ "" }
|
|||
|
{ format.authors format.editors output.nonnull
|
|||
|
format.btitle output
|
|||
|
howpublished output
|
|||
|
format.date output
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
{ note duplicate$ #1 #4 substring$ "Norm" =
|
|||
|
{ output new.sentence
|
|||
|
format.date output
|
|||
|
format.title output
|
|||
|
}
|
|||
|
{ pop$ ""
|
|||
|
author empty$
|
|||
|
{ editor empty$
|
|||
|
{ organization empty$
|
|||
|
{ 'skip$ }
|
|||
|
{ format.editors.organization output.nonnull
|
|||
|
set.colon.after }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ format.editors format.editors.organization output.nonnull
|
|||
|
set.colon.after }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ format.authors format.editors output.nonnull
|
|||
|
set.colon.after }
|
|||
|
if$
|
|||
|
format.btitle output
|
|||
|
howpublished output
|
|||
|
format.date output
|
|||
|
new.sentence
|
|||
|
format.misc.series output%% neu 16/6/99
|
|||
|
note set.period.dash.check
|
|||
|
note output
|
|||
|
}
|
|||
|
if$
|
|||
|
}
|
|||
|
if$
|
|||
|
fin.entry
|
|||
|
}
|
|||
|
|
|||
|
FUNCTION {booklet} {misc}%% booklet ist nach dt. Vorgehensweise oft ueberfluessig
|
|||
|
|
|||
|
%% geaendert 21/5/99
|
|||
|
FUNCTION {proceedings}
|
|||
|
{ output.bibitem
|
|||
|
editor empty$
|
|||
|
{ organization empty$
|
|||
|
{ "" }
|
|||
|
{ organization " (Veranst.)" * output }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ format.editors format.editors.organization output.nonnull }
|
|||
|
if$
|
|||
|
set.colon.after
|
|||
|
format.btitle "title" output.check
|
|||
|
volume empty$
|
|||
|
{ "" output.nonnull }
|
|||
|
{ "{\textnormal{Bd.}}" volume tie.or.space.connect emphasize "volume" output.check }
|
|||
|
if$
|
|||
|
format.address.publisher.year "publisher" output.check
|
|||
|
new.sentence
|
|||
|
format.series.number.din output.nonnull
|
|||
|
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 new.sentence.checka
|
|||
|
institution empty$
|
|||
|
'skip$
|
|||
|
{ " / " institution * output.nonnull }
|
|||
|
if$
|
|||
|
format.address.publisher.year output
|
|||
|
number new.sentence.checka
|
|||
|
format.tr.number.din "number" output.check
|
|||
|
%% new.sentence
|
|||
|
pages set.period.dash.check
|
|||
|
format.pages.book 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 >
|
|||
|
{ numnames #4 >
|
|||
|
{ #3 'namesleft := }
|
|||
|
{ numnames 'namesleft := }
|
|||
|
if$
|
|||
|
#1 'nameptr :=
|
|||
|
""
|
|||
|
{ 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$ #3 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 <20> 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 #3 text.prefix$ }
|
|||
|
if$
|
|||
|
}
|
|||
|
{ author format.lab.names }
|
|||
|
if$
|
|||
|
}
|
|||
|
|
|||
|
FUNCTION {author.editor.key.label}
|
|||
|
{ author empty$
|
|||
|
{ editor empty$
|
|||
|
{ key empty$
|
|||
|
{ cite$ #1 #3 substring$ }
|
|||
|
{ key #3 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 #3 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" =
|
|||
|
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 "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
|
|||
|
%
|
|||
|
% Zeile geaendert, damit die Namenszusaetze wie von, de usw nach deutscher
|
|||
|
% Norm richtig einsortiert werden. 27.10.94 Lueddecke
|
|||
|
%
|
|||
|
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}
|
|||
|
|
|||
|
%% Ende von ALPHADIN.BST KFL, 23/11/99
|