diff --git a/bericht/alphadin.bst b/bericht/alphadin.bst index 8496cac..0698026 100644 --- a/bericht/alphadin.bst +++ b/bericht/alphadin.bst @@ -1,104 +1,127 @@ -%% 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 Ausgabe [8.2] 2006-01-02 +%% +%% ersetzt ABBRVDIN.BST Ausgabe [8.1b4] 15/12/2004 +%% wichtigste Aenderung gegenueber Version [8.1b4]: +%% die Standardergaenzung "Online-Ressource" bei Internetquellen +%% ist ersatzlos gestrichen worden (wegen ueberfluessiger Redundanz). +%% +% +%% K.F.Lorenzen (Copyright 1994-2006) email: lorenzen.marxen@t-online.de %% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -%% 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 +%% ALPHADIN.BST wurde entwickelt aus Oren Patashnik's BibTeX standard +%% bibliography style `alpha'. Eine vorgegebene Literaturdatenbank laesst sich +%% somit beliebig nach Us- oder deutscher DIN 1505-Zitierkonvention +%% verarbeiten. +%% Analog zu den 4 US standard styles werden 4 DIN-gerechte 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.haw-hamburg.de/pers/Lorenzen/bibtex/ +%% Stand: 2006-01-02 %% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %% 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 +%% Die Literaturzitate werden alphabetisch nach Verfassern sortiert. +%% Die Zitiermarken im Text und die Ordnungsmarken im Literaturverzeichnis +%% bestehen aus abgekuerzten Verfasserbuchstaben plus Erscheinungsjahr in +%% eckigen Klammern. Die vorliegenden DIN-styles gehen ueber einige bibliogra- +%% phischen Beschraenkungen der Originalstyles hinaus. +% +%% Es werden nun auch Elektronische Online / Offline Ressourcen wie Internet- +%% quellen, CD-ROM usw. verarbeitet. Dazu kommen besondere Publikationsformen +%% wie Patente, Normen, Karten, Fernsehaufzeichnungen, Gesetzesstellen, Spiele. +% +%% Zur Gewaehrleistung der Allgemeingueltigkeit von bib-files gelten in den +%% DIN-styles die in der Tex-Literatur veroeffentlichten originalen +%% Definitionen und Regeln fuer die Publikationstypen (entry-types) und die +%% bibliographischen Felder (fields). +%% Treten kleinere "Schoenheitsfehler" im fertig gesetzten output auf, +%% lassen sich diese so gut wie immer durch eine veraenderte +%% Erfassung im bib-inputfile beseitigen. Oren Patashnik empfiehlt, die +%% Definition der Felder weit auszulegen. 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. +%% WARN- UND FEHLERMELDUNGEN +%% Ursache von Warnmeldungen sind meistens ausgelassene Felder oder +%% Erfassungs-"Fehler". Letztere haengen teilweise mit den gegenueber US- +%% Gepflogenheiten andersartigen bibliographischen Regeln nach DIN 1505 +%% zusammen. Sie sind also in Wahrheit keine "Fehler" und duerfen fast immer +%% ignoriert werden. Dennoch pruefen Sie diese Warnungen, um herauszufinden, +%% ob Publikationstyp (=entry-type) und "fields" eventuell unzulaessig +%% kombiniert worden sind. +%% Echte Fehler ("errors") treten nur noch in Verbindung mit falscher +%% Erfassung auf (nach meinen Tests!). Pruefen Sie die Syntax, den entry-type +%% und die fields. +%% Zu guter letzt: Qualitaetsmasstab ist einzig der DIN-konforme output! %% %% 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. +%% Hartmut Lueddecke, HAW Hamburg, hat viele Verbesserungsvorschlaege +%% in die frueheren Versionen eingebracht. Ihm danke ich herzlich. +%% Patrick W. Daly, dem Entwickler des Natbib-Stils, verdanke ich viele +%% Anregungen und den steten Ansporn, die DIN-Stile zu verbessern. +%% Viele an dieser Stelle ungenannt bleibende Anwender haben mich in +%% den vergangenen Jahren auf Fehler oder Verbesserungsmoeglichkeiten +%% aufmerksam gemacht und so diesen Stil mitentwickelt. Ihnen gilt mein +%% besonderer Dank. Ihr Feedback ist immer willkommen und eine Ermunterung. %% -%% 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/ +%% Klaus F. Lorenzen %% -%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -%% 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'. -%% +%% +%% +%% HINWEIS: Neben den vier bibliographischen DIN 1505 Standard-Stilen +%% nach den Original-styles von Oren Patashnik +%% gibt es noch vier DIN 1505 Adaptionen der NATBIB-style +%% Emulationen von Patrick W.Daly. Die Fuelle der darin +%% implementierten Zitierweisen geht weit ueber die urspruenglichen +%% Standardstyles hinaus. +%% Naeheres unter URL http://www.haw-hamburg.de/pers/Lorenzen/bibtex/ +%% +%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% version 0.99c for BibTeX versions 0.99c or later, LaTeX2e version +%% 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 +%% alphadin.bst +%% This restriction helps ensure that all standard styles are identical. +%% +%% +%% +%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% NEUE FELDER +%% Zur Erfassung der neuen digitalen Online-Medien z.B. Internetquellen, E-journals, E-books, +%% E-mail u.a. gibt es die zusaetzlichen Felder: doi, url, urn, lastchecked +%% Internetquellen werden vorzugsweise mit dem BOOKLET-Typ erfasst. +%% Normen, Patente, Schutzrechte sind mit dem MISC-Typ zu erfassen. ENTRY - { address %% Verlagsort - author %% persoenlicher Urheber eines Werkes - booktitle %% a) Gesamttitel eines mehrbaendigen Werkes + { address %% Verlagsort (immer!) + author %% persoenlicher Urheber eines Werkes oder am Zustandekommen + %% beteiligte Personen(=Mitarbeiter, Uebersetzer, Redakteur u.a.) + booktitle %% a) Gesamttitel eines mehrbaendigen Werkes % %% b) Titel des Sammelwerks, das einzelne selbstaendige -% %% Beitraege mit eigenem Titel enthaelt (->incollection) +% %% Beitraege mit eigenem Titel enthaelt ->incollection chapter %% Kapitel in einem Buch (Monographie) - edition %% Auflagevermerk + doi %%% Digital Object Identifier ->article + edition %% a) Auflagevermerk +% %% b) bei selbst. elektron. Quellen == Version ->booklet editor %% Persoenl.Herausgeber oder Koerperschaftlicher Herausgeber - howpublished %% beliebiger Verlegervermerk: von wem, wo - institution %% Institution, die e.Verlagsfreie Veroeffentlichung betreibt + howpublished %% beliebiger Verlegervermerk: veroeffentlicht "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 + lastchecked %% neues Feld fuer das Datum des Online-Abrufs +% %% einer Internetquelle (n. GRAY ) + month %% naehere Bestimmung des Erscheinungsjahres -> macro 's + note %% freies Eingabefeld fuer zusaetzliche Informationen z. Quelle + number %% Versch. Bedeutungen in Abhaengigkeit vom Eingabetyp: +% %% a) Bandnummer einer gezaehlten Reihe (series) +% %% b) Heftnummer einer Zeitschrift ->article +% %% c) Nummer eines Forschungsberichts ->techreport + organization %% a) Name der Organisation/des Organisators e. Tagung,Konferenz % %% b) Name einer Firma/Gesellschaft, die ein ->manual herausgab pages %% Umfangsangaben, meist Seitenzahlen publisher %% Verlag @@ -106,20 +129,63 @@ ENTRY 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 + url %% neues Feld URL ( Uniform Resource Locator ): +% %% Serveradresse einer Internetquelle + urn %% neues Feld URN ( Uniform Resource Name ): +% %% Persistent Identifier einer Internetquelle + volume %% a) Zaehlung bei einem mehrbaendigen Werk ->book/->proceedings +% %% b) Jahrgang einer Zeitschrift ->article year %% Erscheinungsjahr } {} - { label extra.label sort.label } + { label extra.label sort.label short.list } + +%%%---------------------------------------------------------------------------- +% Einige Standardvorgaben, die vom Benutzer veraendert werden koennen. +%%%---------------------------------------------------------------------------- + +% Abkuerzung ("... und andere") bei Mehrverfasserquellen: + +FUNCTION { ua.etal } { " u.\,a." } %% evtl. auch in eckigen Klammern " [u.\,a.]" + +%% oder lateinisch: FUNCTION { ua.etal } { " et~al." } + +FUNCTION { und } { " u. " } + +%% oder ausgeschrieben: FUNCTION { und } { " und " } +% +% Einige elektronische Medien erhalten nach DIN 1505 eine "Ergaenzende Angabe" +% zusaetzlich zum materiellen Typ, z.B. CD ROM oder DVD u.a.: + +FUNCTION { eress } { "Elektronische Ressource" } + +%%%----------------------------------------------------------------------------------- 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 } +INTEGERS { after.firstblock } + +INTEGERS { zahl lang } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { ptr collation collrest } + +INTEGERS { len } + +INTEGERS { et.al.char.used } + +INTEGERS { longest.label.width last.extra.num } +%------------------------- +STRINGS { longest.label last.sort.label next.extra } + +STRINGS { h s t u v w } + +STRINGS { fkt } +%------------------------- + FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := @@ -127,12 +193,8 @@ FUNCTION {init.state.consts} #3 'after.block := #4 'colon.after := #5 'period.dash := + #6 'after.firstblock := } -INTEGERS { zahl lang } - -STRINGS { h s t u v } - -%% neue DIN-Funktion, 16/2/94 FUNCTION {output.nonnull} { 's := @@ -142,7 +204,7 @@ FUNCTION {output.nonnull} "\newblock " write$ } { output.state before.all = - { write$ } + { write$ } { output.state colon.after = { ": " * write$ newline$ @@ -155,22 +217,33 @@ FUNCTION {output.nonnull} } { output.state mid.sentence = { ", " * write$ } - { write$ - newline$ - "\newblock " write$ + { output.state after.sentence = + { " " * write$ } + { output.state after.firstblock = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { write$ + newline$ + "\newblock " write$ + } + if$ + } + if$ } if$ } - if$ + if$ } - if$ - } + if$ + } if$ - after.block 'output.state := - } - if$ - s -} + after.block 'output.state := + } + if$ + s + } FUNCTION {output} { duplicate$ empty$ @@ -187,64 +260,13 @@ FUNCTION {output.check} 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.! +FUNCTION {new.block} { output.state before.all = 'skip$ - { period.dash 'output.state := } + { after.block '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 } @@ -263,6 +285,61 @@ FUNCTION {or} if$ } + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$% + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ write$ + newline$ +} + +FUNCTION {set.period.dash} %% Wenn ein ". - " die Satzteile trennen soll.! +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +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$ +} + +%% Wenn ein " " die Satzteile trennen soll.! +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +%% Wenn ein ", " die Satzteile trennen soll.! +FUNCTION { part.of.sentence } +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + FUNCTION {new.sentence.checka} { empty$ 'skip$ @@ -277,10 +354,6 @@ FUNCTION {field.or.null} if$ } -INTEGERS { nameptr namesleft numnames } - -STRINGS { fkt } - FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } @@ -288,7 +361,6 @@ FUNCTION {emphasize} if$ } -%% neu, setzt Autor/Hrsg. in Kapitaelchen 9/3/94 FUNCTION { capitalize } { duplicate$ empty$ { pop$ "" } @@ -296,27 +368,9 @@ FUNCTION { capitalize } 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 +%% Adelspraedikate beim Sortieren nach den(m) Vornamen auffuehren +%% Abweichend v. DIN !!! FUNCTION {format.names} { 's := "" 'u := @@ -325,21 +379,21 @@ FUNCTION {format.names} numnames 'namesleft := { namesleft #0 > } { - s nameptr "{vv~}{ll}" format.name$ 't :=%% das ergibt DIN-Ansetzung - %% Lue's Vorschlag s nameptr "{ll}" format.name$ 't := + 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 := + s nameptr "{ jj}" format.name$ 'w := + s nameptr "{, ff}{ vv}{ jj}" format.name$ 'u := + u text.length$ 'lang := #1 'zahl := "" 'v := { zahl lang < } - { u zahl #1 substring$ "~" = + { u zahl #1 substring$ "~" = { v "" = { u #1 zahl #1 - substring$ 'v := } 'skip$ if$ - v u zahl #2 substring$ * "." * 'v := } + v u zahl #2 substring$ * "." * w * 'v := + } 'skip$ if$ zahl #1 + 'zahl := } @@ -348,9 +402,7 @@ FUNCTION {format.names} { 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 + t v * fkt * 't := nameptr #1 > { namesleft #1 > { " ; " * t * } @@ -358,20 +410,15 @@ FUNCTION {format.names} { " " * } '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 * } + { ua.etal * } + { " ; " * 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 + 't + if$ %% Ende der nameptr-Pruefung nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := @@ -380,8 +427,6 @@ FUNCTION {format.names} "" 'fkt := %% fkt wird zurueckgesetzt } -%%$$$ geaendert 14/2/94 - FUNCTION {format.authors} { author empty$ { "" } @@ -389,50 +434,104 @@ FUNCTION {format.authors} 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$ + { "empty author and editor in " cite$ * warning$ "" } + 'skip$ if$ - } - { author empty$ - { " (Hrsg.)" 'fkt := - editor format.names + } + { author empty$ + { " (Hrsg.)" 'fkt := + editor format.names } - { " (Hrsg.)" 'fkt := + { " (Hrsg.)" 'fkt := " ; " * editor format.names * } if$ - } - if$ - } + } + if$ + } + +%% 2005-11-11 +FUNCTION { format.authors.organization } +{ type$ "misc" = + { organization empty$ + { author empty$ + { "" } + { author format.names " (Erfinder)" * } + if$ + } + { author empty$ + { organization } + { author format.names " (Erfinder); " * + organization * " (Anmelder)" * + } + if$ + } + if$ + } + { type$ "manual" = + { organization empty$ + { author empty$ + { "" } + { author format.names } + if$ + } + { author empty$ + { organization capitalize " (Hrsg.)" * } + { author format.names " ; " * + organization capitalize * " (Hrsg.)" * + } + if$ + } + if$ + } + 'skip$ + if$ + } + if$ +} -%% Lo, 12/5/99 neue Funktion fuer proceedings, misc usw. FUNCTION { format.editors.organization } { organization empty$ 'skip$ { type$ "misc" = { organization } - { " ; " * organization " (Veranst.)" *} + { * " ; " * organization " (Veranst.)" *} if$ } if$ } -%%$$$ Sonderfall: Herausgeber bei Typ incollection, 21/2/94 +FUNCTION { format.tr.institution } +{ institution empty$ + 'skip$ + { institution capitalize } + if$ +} + FUNCTION {format.ed.incoll} { editor empty$ { "" } - { " (Hrsg.)" 'fkt := - editor format.names + { " (Hrsg.)" 'fkt := + editor format.names + format.editors.organization } if$ -} +} + +FUNCTION {article.in.journal} +{ duplicate$ empty$ + { pop$ "" } + { author missing$ title missing$ and + { emphasize } + { emphasize "{In: }" swap$ * } + if$ + } + if$ +} FUNCTION {format.title} { title empty$ @@ -441,70 +540,244 @@ FUNCTION {format.title} if$ } +FUNCTION {format.number} +{ number empty$ + { "" } + { number " " * } %% Text so wie er im Feld number steht plus " " + if$ +} + + +FUNCTION {format.digital.type} +{ type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { "" } + { type } %% Typ einer digitalen Ressource in Form einer + %% "Ergaenzenden Angabe", so wie er dasteht; + %% Alternativ kann dieser Text auch in NOTE erfasst werden. + if$ + } + 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 := - } + { 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 +%% 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$ +} + FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { type$ "book" = + type$ "inbook" = + OR + 'skip$ + { month " " * swap$ * } if$ - } - { month empty$ %% b. Buechern nur Jahr, ohne Monat ausgeb. im Impressum - 'year - { month " " * year * } + } + if$ +} + + +FUNCTION {format.edition.or.date} +{ edition empty$ year empty$ and + { "" } + { edition empty$ + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { " gesendet: " "-- " type * swap$ * + format.date * + } + { "\,Version:\," + format.date * + } + if$ + } + { "\,Version:\," + format.date * + } + if$ + } + { year empty$ + { "\,Version:\," edition * } + { "\,Version:\," edition * ", " * + format.date * + } + if$ + } if$ } if$ } -%% -%%$$$ neue Fkt., 16/2/94 u. 14/3/94 das sog. Impressum +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\url{http://dx.doi.org/" doi * "}" * + %% { new.block "\url{http://dx.medra.org/" doi * "}" * + } + if$ +} + +FUNCTION {format.url} +{ urn missing$ + { doi missing$ + { url empty$ + { "" } + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { type$ "incollection" = + { "" } + { "\,Absenderadresse: \url{" url * "}" * } + if$ + } + { "\url{" url * "}" * }%% evtl. "URL" oder "<...>" + if$ + } + { "\url{" url * "}" * } %% evtl. "URL" oder "<...>" + if$ + } + if$ + } + { format.doi } + if$ + } + { "\url{http://nbn-resolving.de/urn/resolver.pl?urn=" urn * "}" * + } + if$ +} + +FUNCTION {format.maillist.url} + { url empty$ + { "" } + { type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { "\url{" url * "}" * } + { "" } + if$ + } + if$ + } + if$ + } + + +FUNCTION {format.version.url} +{ url empty$ doi empty$ urn empty$ and and + { type$ "techreport" = + { format.edition } + { "" } + if$ + } + { format.edition.or.date output format.url } + if$ +} + +FUNCTION {format.edition.or.version} +{ url empty$ doi empty$ urn empty$ and and + { format.edition } + { format.edition.or.date } + if$ +} + +FUNCTION {format.online.lastcheck} +{ lastchecked empty$ + { url empty$ doi empty$ urn empty$ and and + { skip$ } + { "" output } + if$ + } + { url empty$ doi empty$ urn empty$ and and + { "there's a lastchecked date but no url, urn or doi in " + cite$ * warning$ + } + { part.of.sentence + lastchecked "Abruf: " swap$ * output + } + if$ + } + if$ +} + + +FUNCTION {format.maillist.lastcheck} + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { format.online.lastcheck } + 'skip$ + if$ + } + 'skip$ + if$ + } + FUNCTION {format.address.publisher.year} { publisher empty$ { address empty$ - { year empty$ + { year empty$ { "" } - { year } + { year } if$ } - { "Es gibt einen Verlagsort, aber keinen Verlag in " cite$ * warning$ - address ", " * format.date * + { "there's an address but no publisher in " cite$ * warning$ + address ", " * format.date * } if$ } { address empty$ { year empty$ - { "Es gibt nur eine Verlagsangabe in " cite$ * warning$ - publisher - } - { publisher ", " * format.date * } + { "neither address nor publication date in " cite$ * warning$ + publisher + } + { publisher ", " * format.date * } if$ } { year empty$ @@ -513,15 +786,133 @@ FUNCTION {format.address.publisher.year} if$ } if$ + } + if$ +} + +FUNCTION {format.address.publisher.year.alt} +{ publisher empty$ + { address empty$ + { year empty$ + { "" } + { url empty$ + { year } + { "" } + if$ + } + if$ + } + { "there's an address but no publisher in " cite$ * warning$ + address ", " * format.date * + } + if$ } + { url empty$%%%% wenn es URL gibt wird nur die service-provider Adresse +%%% ausgegeben, die im publisher-Feld steht + { address empty$ + { year empty$ + { "neither address nor publication date in " cite$ * warning$ + publisher + } + { publisher ", " * format.date * } + if$ + } + { year empty$ + { address " : " * publisher * } + { address " : " * publisher * ", " * format.date * } + if$ + } + if$ + } + { publisher } + if$ + } + if$ +} + +FUNCTION {format.howpublished} +{ url missing$ urn missing$ doi missing$ AND AND + { howpublished empty$ + { address empty$ + { type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + { "(gesendet: " new.sentence + format.date * ")" * + } + { "" } + if$ + } + if$ + format.date * + } + { address ", " * format.date * } + if$ + } + { address empty$ + { howpublished ", " * format.date * } + { address " : " * howpublished * ", " * format.date * } + if$ + } + if$ + } + { howpublished empty$ + { "" } + { howpublished } + if$ + } if$ } +FUNCTION {format.lastchecked.or.type}%% nur in misc-Funktion +{ lastchecked empty$ + { url empty$ doi empty$ urn empty$ and and + { type empty$ + { skip$ } + { type set.period.dash.check + type output + } + if$ + } + { type empty$ + { skip$ } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { skip$ } + { type set.period.dash.check + type output } + if$ + } + if$ + } + if$ + } + { url empty$ doi empty$ urn empty$ and and + { "there's a lastchecked date but no url, urn or doi in " + cite$ * warning$ + } + { type empty$ + { "there's a URL and a lastchecked date but no type in " + cite$ * warning$ + } + { type set.period.dash.check + type output + part.of.sentence + lastchecked "Abruf: " swap$ * output + } + if$ + } + if$ + } + if$ +} + + FUNCTION {format.btitle} { title emphasize } - FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } @@ -530,15 +921,6 @@ FUNCTION {tie.or.space.connect} 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$ @@ -550,9 +932,9 @@ FUNCTION {format.btitle.vol} { 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 * "}}" * } + %% Zaehlung=VOLUME und Bandtitel=TITLE; + { series emphasize ". Bd." * volume tie.or.space.connect + ": " * "{\emph{" * title * "}}" * } if$ } if$%% series-test @@ -561,32 +943,18 @@ FUNCTION {format.btitle.vol} 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 * ")" * } %% d. Seriennr koennte auch gleich hier + %% im SERIES-Feld miterfasst werden + if$ + } + { series empty$ + { "(" number * ")" * + "there's a number but no series in " cite$ * warning$ } { "(" series * number tie.or.space.connect ")" * } if$ @@ -596,7 +964,8 @@ FUNCTION {format.series.number.din} { series empty$ { "" } { type$ "proceedings" = %% Sonderfall, es darf VOLUME und NUMBER ex. ! - { number empty$ + type$ "inproceedings" = OR + { number empty$ { "(" series * ")" * } { "(" series * number tie.or.space.connect ")" * } if$ @@ -604,14 +973,26 @@ FUNCTION {format.series.number.din} { "" }%% 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 + 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$ + if$ } -%% seltener Fall bei MISC: Ausgabe einer Serie; die Nummer der Serie muss -%% in SERIES miterfasst werden 16/6/99 +FUNCTION {format.tr.series.or.number} +{ number empty$ + { series empty$ + { "" } + { "(" series * ")" * } + if$ + } + { series empty$ + { "(" number * ")" * } + { "(" series * number tie.or.space.connect ")" * } + if$ + } + if$ + } FUNCTION {format.misc.series} { series empty$ @@ -620,20 +1001,17 @@ FUNCTION {format.misc.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 } +FUNCTION { format.doi.urn } +{ urn empty$ + { doi empty$ + { "" } + { "DOI" doi n.dashify tie.or.space.connect } + if$ + } + { "URN" urn n.dashify tie.or.space.connect } if$ } -%%$$$ neu, 18/3/94 FUNCTION { format.isbn.issn } { isbn empty$ { issn empty$ @@ -645,88 +1023,138 @@ FUNCTION { format.isbn.issn } 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 } + { url empty$ + { "S." pages n.dashify tie.or.space.connect } + { pages } + if$ + } if$ } -%% Angaben v. Jahrgang, Jahr, Heftnr., Seiten bei Artikel-Typ -%% 14/3/94, 26/2/97 +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { note empty$ isbn empty$ AND + { "" pages n.dashify tie.or.space.connect " S" * + add.period$ } + { "" pages n.dashify tie.or.space.connect " S" * } + if$ + } + if$ +} + +FUNCTION {format.pages.bkcollation} +{ pages empty$ + { "" } + { "" pages n.dashify tie.or.space.connect } + if$ +} + +FUNCTION {format.bkpages.collat.check} +{ 's := + #1 'ptr := + s text.length$ 'collation := + collation #1 = + { format.pages.book } + { + collation 'collrest := + { collrest #0 > } + { s ptr #2 substring$ 't := + t "S." = + { format.pages.bkcollation + #0 'collrest := } + { ptr #1 + 'ptr := + collrest #1 - 'collrest := + #1 collrest = + { format.pages.book } + { skip$ } + if$ + } + if$ + } + while$ + } + if$ +} FUNCTION {format.vol.year.num.pages} { volume field.or.null year empty$ - { "Es gibt einen Jahrgang, aber kein Jahr in " cite$ * warning$ } + { "there's no year in " cite$ * warning$ } { " (" year * ")" * * } if$ month empty$ - 'skip$ - { ", " month * * } + 'skip$ + { ", " month * * } if$ number empty$ - 'skip$ - { ", Nr. " number * * } - if$ - pages empty$%% Lo, 26/2/97 'skip$ - { ", " format.pages * *}%% + { ", Nr. " number * * } 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$ - + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ "" } + { title missing$ + { ", " pages format.bkpages.collat.check * *} + { ", " format.pages * *} + if$ + } + if$ + } + if$ } -%% geaendert 21/2/94 +FUNCTION {format.chapter.inbook} +{ duplicate$ empty$ + { pop$ "empty chapter in " cite$ * warning$ } + { type empty$ + { "\emph{Kapitel\/} " swap$ tie.or.space.connect } + { type " " * swap$ * }%% wenn keine bes. Abschnittsform gen. werden soll, + %% koennte e. kl. Zwischenraum gewaehlt werden, z.B. " \, " + if$ + } + if$ + } + FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ - { "Kapitel " } - { type } + { "Kapitel " } + { url empty$ + { type } + { "Kapitel " } + if$ + } if$ chapter tie.or.space.connect pages empty$ - 'skip$ - { ", " * format.pages * } + '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 * + { volume empty$ + { "{In: }" booktitle emphasize * } + { "{In: }" booktitle emphasize * + " Bd." volume tie.or.space.connect * } if$ } - { volume empty$ + { volume empty$ { "{In: }" format.ed.incoll * ": " * booktitle emphasize * } - { "{In: }" format.ed.incoll * ": " * booktitle emphasize * - " Bd." volume tie.or.space.connect * + { "{In: }" format.ed.incoll * ": " * booktitle emphasize * + " Bd." volume tie.or.space.connect * } if$ } @@ -735,257 +1163,277 @@ FUNCTION {format.in.ed.booktitle.din} if$ } -%% geaendert 1/3/94 -FUNCTION {format.thesis.type} +FUNCTION {format.thesis.tr.type} { type empty$ 'skip$ - { pop$ - type - } - if$ + { 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 * "\/}" * }%% + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "{In: }{\emph " journal * "}" * } if$ } - { "{In: }" key * }%% + { "{In: }" key * } if$ - "{\cite{" * crossref * "}" * "}" * ", " * format.pages * -%% " (siehe \cite{" * crossref * "}" * "), " * format.pages * + "\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." * } + { pop$ ua.etal * }%% --->u. a. { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " [u.~a.]" } -%% { " et~al." * } - { " ; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * } - if$ - } + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { ua.etal } + { " ; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * } + if$ + } if$ } if$ } +FUNCTION {format.inbk.vol.title} +{ volume empty$ + { " In: " } + { title empty$ + { " In: Bd." volume tie.or.space.connect + " von " * + } + { "In: Bd." volume tie.or.space.connect ": " * title emphasize * + " (" * year * ") in " * + } + 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 " * +{ type$ "inbook" = + { format.inbk.vol.title } + { volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + " " + } + { ". -- Bd." volume tie.or.space.connect + " von " * + } + if$ } 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 * } + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * } + if$ + } + { key * } if$ } - { "" * }%% nach der Bandzaehlung kommt gleich das label; Lo 2/6/99 -%% { format.crossref.editor * } + { "" * } if$ - "{\cite{" * crossref * "}" * "}" * -%% "{\cite{" * crossref * "}" * "}" * %%"), " * format.pages * + "\cite{" * crossref * "}" * } 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 * } + 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 * "}" * }%% + if$ + } + { "{In: }" } if$ - } -%% { "{In: }{\em " booktitle * "\/}" * }%% - { "{In: }" }%% Lo, 10/2/99 es sieht der reine Bezug (Referenz) besser aus! + } + { "{In: }" } 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 * "}" * ")" * + "\cite{" * crossref * "}" * %% ", " * format.pages * 5.12.2005 } -%%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 + { journal article.in.journal output.nonnull + new.sentence format.vol.year.num.pages output + format.url output } { format.article.crossref output.nonnull } if$ - note set.period.dash.check - note output + format.online.lastcheck + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note 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 } + { 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.edition output 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 + { format.series.number.din output } + { format.book.crossref output.nonnull } + if$ + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output } if$ - note set.period.dash.check - note output + format.doi output + format.url output + new.block isbn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note output fin.entry } -%% geaendert 23/2/94 -FUNCTION {inbook} +FUNCTION {booklet} { 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 - } + { format.authors format.editors 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 + format.btitle "title" output.check + format.edition.or.version output + format.url output + format.online.lastcheck + format.howpublished output + series new.sentence.checka + format.series.number.din output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output } if$ - isbn set.period.dash.check + type set.period.dash.check + format.digital.type output + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output + note set.period.dash.check + note output format.isbn.issn output fin.entry } -%% geaenderte Seitenzahlausgabe, wenn crossref-Feld benutzt wird, 27/2/97 + +FUNCTION {inbook} +{ output.bibitem + chapter format.chapter.inbook output.nonnull + crossref missing$ + { author empty$ + { format.editors "\,{In:\,}" swap$ * "author and editor" output.check } + { format.authors "\,{In:\,}" swap$ * output.nonnull } + if$ + author empty$ editor empty$ AND + { before.all 'output.state := } + { set.colon.after } + if$ + format.btitle.vol "title" output.check + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number.din output + isbn set.period.dash.check + format.isbn.issn output + } + { format.book.crossref output.nonnull } + if$ + part.of.sentence + format.pages output + note set.period.dash.check + note output + fin.entry +} + FUNCTION {incollection} { output.bibitem format.authors "author" output.check set.colon.after format.title "title" output.check + format.version.url output + type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + 'skip$ + { format.online.lastcheck } + if$ + } + { format.online.lastcheck } + if$ crossref missing$ { format.in.ed.booktitle.din "booktitle" output.check format.edition output format.address.publisher.year "publisher" output.check + format.maillist.url output + format.maillist.lastcheck 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 + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output } - if$ - fin.entry + { format.incoll.inproc.crossref output.nonnull } + if$ + part.of.sentence + format.chapter.pages "pages" output.check + note set.period.dash.check + note output + fin.entry } -%% geaendert 22/2/94, 15/11/96 (Hinweis v. Alin Shindun, Uni Siegen) + FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check @@ -994,101 +1442,112 @@ FUNCTION {inproceedings} crossref missing$ { format.in.ed.booktitle.din "booktitle" output.check address empty$ - { organization new.sentence.checka - organization output + { organization new.sentence.checka + organization output part.of.sentence format.address.publisher.year output - } - { format.address.publisher.year "publisher" output.check } + } + { format.address.publisher.year "publisher" output.check } if$ new.sentence - series empty$ %%neu nach Hinweis v. Alin Shindun, 15/11/96 + series empty$ '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 - } + { format.incoll.inproc.crossref output.nonnull } 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 + part.of.sentence + format.pages "pages" output.check 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 {conference} { inproceedings }%% nach Patashnik, wg US-Kompatibilitaet + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + { title empty$ + 'skip$ + {format.btitle "title" output.check } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + format.authors.organization output.nonnull + set.colon.after + format.btitle "title" output.check + format.edition "edition" output.check + author empty$ organization empty$ AND + { address "address" output.check + part.of.sentence + } + { organization empty$ + { address "address" output.check + part.of.sentence + } + { address ": " * organization * output + part.of.sentence + } + if$ + } + if$ + format.date output + number empty$ + 'skip$ + { "(" number * ") " * output } + if$ + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ + format.doi output + format.url output + format.online.lastcheck + note set.period.dash.check + note output + fin.entry +} + +%% Standard ist "Diplomarbeit", anderes mit TYPE="anderer Typ" erfassen! +%% z.B. TYPE={Hausarbeit}, 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 + part.of.sentence school "school" output.check part.of.sentence - "Diplomarbeit" format.thesis.type output.nonnull + "Diplomarbeit" format.thesis.tr.type output.nonnull part.of.sentence format.date "year" output.check -%% pages new.sentence.checka - pages set.period.dash.check - format.pages.book output + format.url output + format.online.lastcheck +%% format.digital.resource.type + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output +%% pages set.period.dash.check +%% format.pages.book output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ note set.period.dash.check note output fin.entry @@ -1100,75 +1559,174 @@ FUNCTION {phdthesis} %% {mastersthesis}% ist identisch bis auf Standardwert, s. set.colon.after format.btitle "title" output.check address output - part.of.sentence + part.of.sentence school "school" output.check part.of.sentence - "Diss." format.thesis.type output.nonnull % koennte auch `Dissertation' sein + "Diss." format.thesis.tr.type output.nonnull % koennte auch `Dissertation' sein part.of.sentence format.date "year" output.check - pages set.period.dash.check - format.pages.book output + format.url output + format.online.lastcheck +%% format.digital.resource.type + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ +%% pages set.period.dash.check +%% format.pages.book output note set.period.dash.check note output fin.entry } -%% hiermit werden u.a. Normen erfasst + +%% Normen, Vornormen, Schutzrechte (Patente) werden hiermit erfasst; +%% (z.Zt. auch noch Internetressourcen) +%% das type-Feld uebernimmt eine wichtige Steuerfunktion: 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 + type missing$ not + { type duplicate$ #1 #4 substring$ "Norm" = + type #1 #4 substring$ "Vorn" = OR + { " " * + format.number * output new.sentence - format.misc.series output%% neu 16/6/99 + format.date output + title empty$ + { skip$ } + { add.period$ new.sentence } + if$ + format.btitle "title" output.check note set.period.dash.check note output } + { duplicate$ #1 #6 substring$ "Schutz" = + { " " * format.number * output + new.sentence + "(" * format.date ")" * output + add.period$ new.sentence + format.authors.organization add.period$ output + note output + } + %% wenn irgendein anderer Typ eingetragen ist + { pop$ pop$ "" + title empty$ + { note empty$ + { url empty$ + { "there's no relevant field in " cite$ warning$ + pop$ "" + } + { format.url output }%%% + if$ + } + { note " " * output.nonnull } + if$ + } + { 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.nonnull + url empty$ + { format.edition output + format.howpublished output} + { format.howpublished output + format.edition.or.date output + format.url output + } + if$ + format.online.lastcheck +%% format.lastchecked.or.type + new.sentence + format.misc.series output +%% note set.period.dash.check + note output + } + if$ + } if$ + } + if$ } - if$ - fin.entry + %% wenn es keinen type gibt + { title empty$ + { note empty$ + { url empty$ + { "there's no relevant field in " cite$ warning$ + pop$ "" + } + { format.url output }%%% das waere e. reine URL + if$ + } + { note " " * output.nonnull + %% format.url format.date output + } + if$ + } + { 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.nonnull + url empty$ + { format.edition output + format.howpublished output} + { format.howpublished output + format.url output + format.edition.or.date output + format.online.lastcheck +%% format.lastchecked.or.type + } + if$ + new.sentence + format.misc.series output + 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$ - { "" } + { "empty organization and editor in " cite$ * warning$ } { organization " (Veranst.)" * output } if$ } @@ -1177,59 +1735,78 @@ FUNCTION {proceedings} set.colon.after format.btitle "title" output.check volume empty$ - { "" output.nonnull } + { skip$ } { "{\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 + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note 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.editors "author and editor" output.check + format.tr.institution output.nonnull } { 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 } + { author empty$ editor empty$ AND + 'skip$ + { institution new.sentence.checka + "/ " institution * output.nonnull + } + if$ + } if$ + format.version.url output + format.online.lastcheck 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 + format.tr.series.or.number "number" output.check + "Forschungsbericht" format.thesis.tr.type set.period.dash.check + "Forschungsbericht" format.thesis.tr.type output +%% format.digital.resource.type + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note "note" output.check fin.entry } -FUNCTION {unpublished} {misc}%% author, title, note muessen sein! howpublished -%% %% entfaellt natuerlich +FUNCTION {unpublished} {misc}%% AUTHOR, TITLE, NOTE muessen sein! +%% andere Felder sind optional + FUNCTION {default.type} { misc } + MACRO {jan} {"Januar"} MACRO {feb} {"Februar"} MACRO {mar} {"M{\^^b a}rz"} -%% nach Bernd Raichle, Febr. 1999 MACRO {apr} {"April"} @@ -1255,29 +1832,12 @@ MACRO {dez} {"Dezember"} MACRO {dec} {"Dezember"} -%% stillgelegte Beispiele fuer den Gebrauch von Kuerzeln (hier Zs-Titel). +%%$$$ 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} @@ -1285,8 +1845,6 @@ FUNCTION {sortify} "l" change.case$ } -INTEGERS { len } - FUNCTION {chop.word} { 's := 'len := @@ -1296,8 +1854,6 @@ FUNCTION {chop.word} if$ } -INTEGERS { et.al.char.used } - FUNCTION {initialize.et.al.char.used} { #0 'et.al.char.used := } @@ -1309,57 +1865,49 @@ FUNCTION {format.lab.names} s num.names$ 'numnames := numnames #1 > { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } + { #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 := - } + { 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 "{l{}}" format.name$ * } + if$ + } + { 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$ + { "{\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$ + { 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 á 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$ } + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } if$ } { author format.lab.names } @@ -1369,12 +1917,12 @@ FUNCTION {author.key.label} FUNCTION {author.editor.key.label} { author empty$ { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } if$ } { author format.lab.names } @@ -1384,30 +1932,27 @@ FUNCTION {author.editor.key.label} 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$ } + { 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 + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word organization } + 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 @@ -1420,16 +1965,17 @@ FUNCTION {editor.key.organization.label} FUNCTION {calc.label} { type$ "book" = + type$ "booklet" = type$ "inbook" = - or + or or 'author.editor.key.label { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } if$ } if$ @@ -1450,19 +1996,13 @@ FUNCTION {sort.format.names} numnames 'namesleft := { namesleft #0 > } { nameptr #1 > - { " " * } - 'skip$ + { " " * } + '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 * } + { ua.etal * } + { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := @@ -1478,7 +2018,7 @@ FUNCTION {sort.format.title} "Die " #4 "Das " #4 "Ein " #4 - "Eine " #5 + "Eine " #5 "The " #4 t chop.word chop.word chop.word @@ -1494,10 +2034,10 @@ FUNCTION {sort.format.title} FUNCTION {author.sort} { author empty$ { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } if$ } { author sort.format.names } @@ -1507,14 +2047,14 @@ FUNCTION {author.sort} 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 } + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } if$ } { author sort.format.names } @@ -1524,14 +2064,14 @@ FUNCTION {author.editor.sort} 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 } + { 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 } @@ -1541,14 +2081,14 @@ FUNCTION {author.organization.sort} 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 } + { 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 } @@ -1561,16 +2101,17 @@ FUNCTION {presort} " " * type$ "book" = + type$ "booklet" = type$ "inbook" = - or + or or 'author.editor.sort { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } if$ } if$ @@ -1592,10 +2133,6 @@ 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 := @@ -1637,7 +2174,7 @@ ITERATE {forward.pass} REVERSE {reverse.pass} -FUNCTION {begin.bib}%%lt. Original wiederhergestellt 4/1/96 +FUNCTION {begin.bib} { et.al.char.used { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } 'skip$ @@ -1647,6 +2184,18 @@ FUNCTION {begin.bib}%%lt. Original wiederhergestellt 4/1/96 { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + newline$ + "% this bibliography is generated by alphadin.bst [8.2] from 2005-12-21" + write$ newline$ + newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ } EXECUTE {begin.bib} @@ -1660,6 +2209,4 @@ FUNCTION {end.bib} "\end{thebibliography}" write$ newline$ } -EXECUTE {end.bib} - -%% Ende von ALPHADIN.BST KFL, 23/11/99 +EXECUTE {end.bib} \ No newline at end of file diff --git a/bericht/hardware.tex b/bericht/hardware.tex index c7ddad3..c3c51d1 100644 --- a/bericht/hardware.tex +++ b/bericht/hardware.tex @@ -58,4 +58,4 @@ Als Switch wird ein \href{http://www.dlink.com/de/de/support/product/dgs-1216t-s \label{fig:Vernetzung} \end{figure} -\pagebreak +\pagebreak diff --git a/bericht/plaindin.bst b/bericht/plaindin.bst index e8c199e..592f15b 100644 --- a/bericht/plaindin.bst +++ b/bericht/plaindin.bst @@ -1,100 +1,118 @@ -%% PLAINDIN.BST Ausgabe [8] vom 10/10/00 -%% (C) Klaus F. Lorenzen, Hamburg email: lorenzen.marxen@t-online.de -%% ersetzt PLAINDIN.BST Ausgabe [7] 19/6/99 -%% ersetzt DINPLAIN.BST von 28/3/94 +%% PLAINDIN.BST Ausgabe [8.2] 2006-01-02 +%% mit doi-, urn-, url-Funktionen fuer Internetressourcen +%% ersetzt PLAINDIN.BST Ausgabe [8.1b3] 22.2.2005 +%% +%% +%% K.F.Lorenzen (Copyright 1994-2006) email: lorenzen.marxen@t-online.de %% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -%% PLAINDIN.BST wurde entwickelt aus BibTeX standard bibliography style -%% `plain'.Mit PLAINDIN.BST werden Literaturverzeichnisse gemaess der deutschen +%% PLAINDIN.BST wurde entwickelt aus Oren Patashnik's BibTeX standard +%% bibliography style `plain'. Dadurch ist es moeglich, eine vorgegebene +%% Literaturdatenbank ohne Aenderungen beliebig nach Us- oder deutscher +%% Zitierkonvention zu verarbeiten. +%% Mit PLAINDIN.BST werden Literaturverzeichnisse gemaess der deutschen %% Zitiernorm DIN 1505 Teil 2 formatiert. -%% Analog zu den 4 US standard styles wird ein vollstaendiger Satz von +%% 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: 10/10/00 +%% http://www.haw-hamburg.de/pers/Lorenzen/bibtex/ +%% Stand: 2006-01-02 %% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %% WAS IST PLAINDIN.BST ? %% Dieser style produziert Literaturzitate in Literaturverzeichnissen %% gemaess der deutschen Norm DIN 1505, Teil 2 vom Jan. 1984. %% Die Literaturzitate werden alphabetisch nach Verfassern sortiert -%% und fortlaufend in eckigen Klammern gezaehlt. -%% 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 zu beherrschen! 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 (ja, mit endlichen Ausnahmen) 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 +%% und fortlaufend in eckigen Klammern gezaehlt. Die vorliegenden DIN-styles +%% gehen ueber die bibliographischen Beschraenkungen der Originalstyles hinaus. +% +%% Es werden nun auch Elektronische Online / Offline Ressourcen wie Internet- +%% quellen, CD-ROM usw. verarbeitet. Dazu kommen besondere Publikationsformen +%% wie Patente, Normen, Karten, Fernsehaufzeichnungen, Gesetzesstellen, Spiele. +% +%% Zur Gewaehrleistung der Allgemeingueltigkeit von bib-files gelten in den +%% DIN-styles die in der Tex-Literatur veroeffentlichten originalen +%% Definitionen und Regeln fuer die Publikationstypen (entry-types) und die +%% bibliographischen Felder (fields). +%% Treten kleinere "Schoenheitsfehler" im fertig gesetzten output auf, +%% lassen sich diese so gut wie immer durch eine veraenderte +%% Erfassung im bib-inputfile beseitigen. Oren Patashnik empfiehlt, die +%% Definition der Felder weit auszulegen. 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 heraus zu finden, 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. +%% WARN- UND FEHLERMELDUNGEN +%% Ursache von Warnmeldungen sind meistens fehlende Felder oder +%% Erfassungs-"Fehler". Letztere haengen teilweise mit den gegenueber US- +%% Gepflogenheiten andersartigen bibliographischen Regeln nach DIN 1505 +%% zusammen. Sie sind also in Wahrheit keine "Fehler" und duerfen fast immer +%% ignoriert werden. Dennoch pruefen Sie diese Warnungen, um heraus zu finden, +%% ob Publikationstyp (=entry-type) und "fields" eventuell unzulaessig +%% kombiniert worden sind. +%% Echte Fehler ("errors") treten nur noch in Verbindung mit falscher +%% Erfassung auf (nach meinen Tests!). Pruefen Sie die Syntax, den entry-type +%% und die fields. +%% Zu guter letzt: Qualitaetsmasstab ist einzig der DIN-konforme output! %% %% 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. +%% Hartmut Lueddecke, HAW Hamburg, hat viele Verbesserungsvorschlaege +%% in die frueheren Versionen eingebracht. Ihm danke ich herzlich. +%% Patrick W. Daly, dem Entwickler des Natbib-Stils, verdanke ich viele +%% Anregungen und den steten Ansporn, die DIN-Stile zu verbessern. +%% Viele an dieser Stelle ungenannt bleibende Anwender haben mich in +%% den vergangenen Jahren auf Fehler oder Verbesserungsmoeglichkeiten +%% aufmerksam gemacht und so diesen Stil mitentwickelt. Ihnen gilt mein +%% besonderer Dank. Ihr Feedback ist immer willkommen und eine Ermunterung. +%% +%% Klaus F. Lorenzen +%% +%% +%% +%% HINWEIS: Neben den vier bibliographischen DIN 1505 Standard-Stilen +%% nach den Original-styles von Oren Patashnik +%% gibt es zusaetzlich vier DIN 1505 Modifikationen der style +%% Emulationen des NATBIB-Pakets von Patrick W.Daly. +%% In den NATBIB-Modifikationen werden jetzt alle von P.W. Daly +%% implementierten Zitierweisen des Autor-Jahr-Stils unterstuetzt. +%% Damit erhaelt der Anwender eine weit ueber die urspruenglichen +%% Standardstyles hinausreichende Flexibilitaet beim Zitieren. +%% Naeheres unter URL http://www.haw-hamburg.de/pers/Lorenzen/bibtex/ %% -%% 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'. -%% KFL, 15/1/96 +% 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 +% 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'. %% - +%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% +%% NEUE FELDER +%% Zur Erfassung der neuen digitalen Online-Medien z.B. Internetquellen, E-journals, E-books, +%% E-mail u.a. gibt es die zusaetzlichen Felder: doi, url, urn, lastchecked +%% Internetquellen werden vorzugsweise mit dem BOOKLET-Typ erfasst. +%% Normen, Patente, Schutzrechte sind mit dem MISC-Typ zu erfassen. +% +% ENTRY { address %% Verlagsort author %% persoenlicher Urheber eines Werkes - booktitle %% a) Gesamttitel eines mehrbaendigen 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 + doi %%% Digital Object Identifier + edition %% Auflagevermerk; bei selbst. elektron. Dok. == Version editor %% Persoenl.Herausgeber oder Koerperschaftlicher Herausgeber - howpublished %% beliebiger Verlegervermerk: von wem, wo + 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. + lastchecked %% Online Abruf einer Internetquelle ( GRAY ); 22.1.2004 month %% naehere Bestimmung des Erscheinungsjahres (-> macro 's) note %% freies Eingabefeld fuer zusaetzliche Informationen number %% Mehrfachbedeutung in Abhaengigkeit vom Eingabetyp @@ -106,6 +124,8 @@ ENTRY series %% Titel e.Reihe, in der ein best. Buchtitel erschienen ist title %% Titel einer (namentlich gekennzeichneten) Veroeffentlichung type %% Zusatzfeld z.Kennzeichnung e.besonderen Publikationstyps + url %%% Internet-Adresse URL ( Uniform Resource Locator ) + urn %% Persistent Identifier URN ( Uniform Resource Name ) volume %% a) Zaehlung bei einem mehrbaendigen Werk (-> book) % %% b) Jahrgang einer Zeitschrift (-> article year %% Erscheinungsjahr @@ -113,13 +133,58 @@ ENTRY {} { label extra.label sort.label } +%% Variablen-Vereinbarungen + 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 } +INTEGERS { after.firstblock } + +%% fuer die Namensbehandlung + +INTEGERS { zahl lang } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { ptr collation collrest } + +%% fuer die Sortierung bei der label-Produktion +INTEGERS { len } + +INTEGERS { number.label longest.label.width } +%%---------------------------------------------------------------------- + +STRINGS { h s t u v w } + +%% bei der Behandlung der Namen-Funktionsbezeichnung (Hrsg., Redakt., usw) +STRINGS { fkt } + +%% fuer die label-Produktion +STRINGS { longest.label } + +%%%---------------------------------------------------------------------------- +% Einige Standardvorgaben, die vom Benutzer veraendert werden koennen. +%%%---------------------------------------------------------------------------- + +% Abkuerzung ("... und andere") bei Mehrverfasserquellen: + +FUNCTION { ua.etal } { " u.\,a." } %% evtl. auch in eckigen Klammern " [u.\,a.]" + +%% oder lateinisch: FUNCTION { ua.etal } { " et~al." } + +FUNCTION { und } { " u. " } + +%% oder ausgeschrieben: FUNCTION { und } { " und " } +% +% Einige elektronische Medien erhalten nach DIN 1505 eine "Ergaenzende Angabe" +% zusaetzlich zum materiellen Typ, z.B. CD ROM oder DVD u.a.: + +FUNCTION { eress } { "Elektronische Ressource" } + +%%%----------------------------------------------------------------------------------- + + FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := @@ -127,12 +192,8 @@ FUNCTION {init.state.consts} #3 'after.block := #4 'colon.after := #5 'period.dash := + #6 'after.firstblock := } -INTEGERS { zahl lang } - -STRINGS { h s t u v } - -%% neue DIN-Funktion, 16/2/94 FUNCTION {output.nonnull} { 's := @@ -142,7 +203,7 @@ FUNCTION {output.nonnull} "\newblock " write$ } { output.state before.all = - { write$ } + { write$ } { output.state colon.after = { ": " * write$ newline$ @@ -155,22 +216,33 @@ FUNCTION {output.nonnull} } { output.state mid.sentence = { ", " * write$ } - { write$ - newline$ - "\newblock " write$ + { output.state after.sentence = + { " " * write$ } + { output.state after.firstblock = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { write$ + newline$ + "\newblock " write$ + } + if$ + } + if$ } if$ } - if$ + if$ } - if$ - } + if$ + } if$ - after.block 'output.state := - } - if$ - s -} + after.block 'output.state := + } + if$ + s + } FUNCTION {output} { duplicate$ empty$ @@ -187,64 +259,13 @@ FUNCTION {output.check} 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.! +FUNCTION {new.block} { output.state before.all = 'skip$ - { period.dash 'output.state := } + { after.block '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 } @@ -263,6 +284,61 @@ FUNCTION {or} if$ } + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$% + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ write$ + newline$ +} + +FUNCTION {set.period.dash} %% Wenn ein ". - " die Satzteile trennen soll.! +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +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$ +} + +%% Wenn ein " " die Satzteile trennen soll.! +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +%% Wenn ein ", " die Satzteile trennen soll.! +FUNCTION { part.of.sentence } +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + FUNCTION {new.sentence.checka} { empty$ 'skip$ @@ -277,10 +353,6 @@ FUNCTION {field.or.null} if$ } -INTEGERS { nameptr namesleft numnames } - -STRINGS { fkt } - FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } @@ -288,7 +360,6 @@ FUNCTION {emphasize} if$ } -%% neu, setzt Autor/Hrsg. in Kapitaelchen 9/3/94 FUNCTION { capitalize } { duplicate$ empty$ { pop$ "" } @@ -296,27 +367,75 @@ FUNCTION { capitalize } 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$ " " * * } + { author missing$ title missing$ and + { emphasize } + { 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.doi} +{ doi empty$ + { "" } + { new.block "\url{http://dx.doi.org/" doi * "}" * + %% { new.block "\url{http://dx.medra.org/" doi * "}" * + } + if$ +} + +FUNCTION {format.url} +{ urn missing$ + { doi missing$ + { url empty$ + { "" } + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { type$ "incollection" = + { "" } + { "\,Absenderadresse: \url{" url * "}" * } + if$ + } + { "\url{" url * "}" * }%% evtl. "URL" oder "<...>" + if$ + } + { "\url{" url * "}" * } %% evtl. "URL" oder "<...>" + if$ + } + if$ + } + { format.doi } + if$ + } + { "\url{http://nbn-resolving.de/urn/resolver.pl?urn=" urn * "}" * + } + if$ +} + +FUNCTION {format.maillist.url} + { url empty$ + { "" } + { type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { "\url{" url * "}" * } + { "" } + if$ + } + if$ + } + if$ + } + +%% Adelspraedikate beim Sortieren nach den(m) Vornamen auffuehren +%% Abweichend v. DIN !!! FUNCTION {format.names} { 's := "" 'u := @@ -325,21 +444,21 @@ FUNCTION {format.names} numnames 'namesleft := { namesleft #0 > } { - %vorher, Lue s nameptr "{vv~}{ll}" format.name$ 't := s nameptr "{ll}" format.name$ 't := t capitalize 't := - %vorher,Lue s nameptr "{, ff}" format.name$ 'u := - s nameptr "{, ff}{ vv}" format.name$ 'u := - u text.length$ 'lang := + s nameptr "{ jj}" format.name$ 'w := + s nameptr "{, ff}{ vv}{ jj}" format.name$ 'u := + u text.length$ 'lang := #1 'zahl := "" 'v := { zahl lang < } - { u zahl #1 substring$ "~" = + { u zahl #1 substring$ "~" = { v "" = { u #1 zahl #1 - substring$ 'v := } 'skip$ if$ - v u zahl #2 substring$ * "." * 'v := } + v u zahl #2 substring$ * "." * w * 'v := + } 'skip$ if$ zahl #1 + 'zahl := } @@ -348,9 +467,7 @@ FUNCTION {format.names} { 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 + t v * fkt * 't := nameptr #1 > { namesleft #1 > { " ; " * t * } @@ -358,20 +475,15 @@ FUNCTION {format.names} { " " * } '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 * } + { ua.etal * } + { " ; " * 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 + 't + if$ %% Ende der nameptr-Pruefung nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := @@ -380,8 +492,6 @@ FUNCTION {format.names} "" 'fkt := %% fkt wird zurueckgesetzt } -%%$$$ geaendert 14/2/94 - FUNCTION {format.authors} { author empty$ { "" } @@ -389,50 +499,88 @@ FUNCTION {format.authors} 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$ + { "empty author and editor in " cite$ * warning$ "" } + 'skip$ if$ - } - { author empty$ - { " (Hrsg.)" 'fkt := - editor format.names + } + { author empty$ + { " (Hrsg.)" 'fkt := + editor format.names } - { " (Hrsg.)" 'fkt := + { " (Hrsg.)" 'fkt := " ; " * editor format.names * } if$ - } - if$ - } + } + if$ + } + +FUNCTION { format.authors.organization } +{ type$ "misc" = + { organization empty$ + { author empty$ + { "" } + { author format.names " (Erfinder)" * } + if$ + } + { author empty$ + { organization } + { author format.names " (Erfinder); " * + organization * " (Anmelder)" * + } + if$ + } + if$ + } + { type$ "manual" = + { organization empty$ + { format.authors } + { author empty$ + { organization capitalize " (Hrsg.)" * } + { author format.names } + if$ + } + if$ + } + 'skip$ + if$ + } + if$ +} + -%% Lo, 12/5/99 neue Funktion fuer proceedings, misc usw. FUNCTION { format.editors.organization } { organization empty$ 'skip$ { type$ "misc" = { organization } - { " ; " * organization " (Veranst.)" *} + { * " ; " * organization " (Veranst.)" *} if$ } if$ } -%%$$$ Sonderfall: Herausgeber bei Typ incollection, 21/2/94 +FUNCTION { format.tr.institution } +{ institution empty$ + 'skip$ + { institution capitalize } + if$ +} + FUNCTION {format.ed.incoll} { editor empty$ { "" } - { " (Hrsg.)" 'fkt := - editor format.names + { " (Hrsg.)" 'fkt := + editor format.names + format.editors.organization } if$ -} +} + FUNCTION {format.title} { title empty$ @@ -441,70 +589,152 @@ FUNCTION {format.title} if$ } +FUNCTION {format.number} +{ number empty$ + { "" } + { number " " * } %% Text so wie er im Feld number steht plus " " + if$ +} + +FUNCTION {format.digital.type}%% nur in booklet +{ type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { "" } + { type } %% Typ einer digitalen Ressource in Form einer + %% "Ergaenzenden Angabe", so wie er dasteht; + %% Alternativ kann dieser Text auch in NOTE erfasst werden. + if$ + } + 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 := - } + { 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 +%% 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$ +} + FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { type$ "book" = + type$ "inbook" = + OR + 'skip$ + { month " " * swap$ * } if$ - } - { month empty$ %% b. Buechern nur Jahr, ohne Monat ausgeb. im Impressum - 'year - { month " " * year * } + } + if$ +} + +FUNCTION {format.edition.or.date} +{ edition empty$ year empty$ and + { "" } + { edition empty$ + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { " gesendet: " "-- " type * swap$ * + format.date * + } + { "\,Version:\," + format.date * + } + if$ + } + { "\,Version:\," + format.date * + } + if$ + } + { year empty$ + { "\,Version:\," edition * } + { "\,Version:\," edition * ", " * + format.date * + } + if$ + } if$ } if$ } -%% -%%$$$ neue Fkt., 16/2/94 u. 14/3/94 das sog. Impressum +FUNCTION {format.version.url} +{ url empty$ doi empty$ urn empty$ and and + { type$ "techreport" = + { format.edition } + { "" } + if$ + } + { format.edition.or.date output format.url } + if$ +} + +FUNCTION {format.edition.or.version} +{ url empty$ doi empty$ urn empty$ and and + { format.edition } + { format.edition.or.date } + if$ +} + FUNCTION {format.address.publisher.year} { publisher empty$ { address empty$ - { year empty$ + { year empty$ { "" } - { year } + { year } if$ } - { "Es gibt einen Verlagsort, aber keinen Verlag in " cite$ * warning$ - address ", " * format.date * + { "there's an address but no publisher in " cite$ * warning$ + address ", " * format.date * } if$ } { address empty$ { year empty$ - { "Es gibt nur eine Verlagsangabe in " cite$ * warning$ - publisher - } - { publisher ", " * format.date * } + { "neither address nor publication date in " cite$ * warning$ + publisher + } + { publisher ", " * format.date * } if$ } { year empty$ @@ -513,15 +743,133 @@ FUNCTION {format.address.publisher.year} if$ } if$ + } + if$ +} + +FUNCTION {format.address.publisher.year.alt} +{ publisher empty$ + { address empty$ + { year empty$ + { "" } + { url empty$ + { year } + { "" } + if$ + } + if$ + } + { "there's an address but no publisher in " cite$ * warning$ + address ", " * format.date * + } + if$ } + { url empty$%%%% wenn es URL gibt wird nur die service-provider Adresse +%%% ausgegeben, die im publisher-Feld steht + { address empty$ + { year empty$ + { "neither address nor publication date in " cite$ * warning$ + publisher + } + { publisher ", " * format.date * } + if$ + } + { year empty$ + { address " : " * publisher * } + { address " : " * publisher * ", " * format.date * } + if$ + } + if$ + } + { publisher } + if$ + } + if$ +} + +FUNCTION {format.howpublished} +{ url missing$ urn missing$ doi missing$ AND AND + { howpublished empty$ + { address empty$ + { type empty$ + { "" } + { type #-1 #4 substring$ "mail" = + { "(gesendet: " new.sentence + format.date * ")" * + } + { "" } + if$ + } + if$ + format.date * + } + { address ", " * format.date * } + if$ + } + { address empty$ + { howpublished ", " * format.date * } + { address " : " * howpublished * ", " * format.date * } + if$ + } + if$ + } + { howpublished empty$ + { "" } + { howpublished } + if$ + } if$ } +FUNCTION {format.lastchecked.or.type}%% nur in misc-Funktion +{ lastchecked empty$ + { url empty$ doi empty$ urn empty$ and and + { type empty$ + { skip$ } + { type set.period.dash.check + type output + } + if$ + } + { type empty$ + { skip$ } + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { skip$ } + { type set.period.dash.check + type output } + if$ + } + if$ + } + if$ + } + { url empty$ doi empty$ urn empty$ and and + { "there's a lastchecked date but no url, urn or doi in " + cite$ * warning$ + } + { type empty$ + { "there's a URL and a lastchecked date but no type in " + cite$ * warning$ + } + { type set.period.dash.check + type output + part.of.sentence + lastchecked "Abruf: " swap$ * output + } + if$ + } + if$ + } + if$ +} + + FUNCTION {format.btitle} { title emphasize } - FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } @@ -530,15 +878,6 @@ FUNCTION {tie.or.space.connect} 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$ @@ -550,9 +889,9 @@ FUNCTION {format.btitle.vol} { 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 * "}}" * } + %% Zaehlung=VOLUME und Bandtitel=TITLE; + { series emphasize ". Bd." * volume tie.or.space.connect + ": " * "{\emph{" * title * "}}" * } if$ } if$%% series-test @@ -561,32 +900,18 @@ FUNCTION {format.btitle.vol} 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 * ")" * } %% d. Seriennr koennte auch gleich hier + %% im SERIES-Feld miterfasst werden + if$ + } + { series empty$ + { "(" number * ")" * + "there's a number but no series in " cite$ * warning$ } { "(" series * number tie.or.space.connect ")" * } if$ @@ -596,7 +921,8 @@ FUNCTION {format.series.number.din} { series empty$ { "" } { type$ "proceedings" = %% Sonderfall, es darf VOLUME und NUMBER ex. ! - { number empty$ + type$ "inproceedings" = OR + { number empty$ { "(" series * ")" * } { "(" series * number tie.or.space.connect ")" * } if$ @@ -604,14 +930,26 @@ FUNCTION {format.series.number.din} { "" }%% 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 + 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$ + if$ } -%% seltener Fall bei MISC: Ausgabe einer Serie; die Nummer der Serie muss -%% in SERIES miterfasst werden 16/6/99 +FUNCTION {format.tr.series.or.number} +{ number empty$ + { series empty$ + { "" } + { "(" series * ")" * } + if$ + } + { series empty$ + { "(" number * ")" * } + { "(" series * number tie.or.space.connect ")" * } + if$ + } + if$ + } FUNCTION {format.misc.series} { series empty$ @@ -620,20 +958,17 @@ FUNCTION {format.misc.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 } +FUNCTION { format.doi.urn } +{ urn empty$ + { doi empty$ + { "" } + { "DOI" doi n.dashify tie.or.space.connect } + if$ + } + { "URN" urn n.dashify tie.or.space.connect } if$ } -%%$$$ neu, 18/3/94 FUNCTION { format.isbn.issn } { isbn empty$ { issn empty$ @@ -645,88 +980,138 @@ FUNCTION { format.isbn.issn } 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 } + { url empty$ + { "S." pages n.dashify tie.or.space.connect } + { pages } + if$ + } if$ } -%% Angaben v. Jahrgang, Jahr, Heftnr., Seiten bei Artikel-Typ -%% 14/3/94, 26/2/97 +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { note empty$ isbn empty$ AND + { "" pages n.dashify tie.or.space.connect " S" * + add.period$ } + { "" pages n.dashify tie.or.space.connect " S" * } + if$ + } + if$ +} + +FUNCTION {format.pages.bkcollation} +{ pages empty$ + { "" } + { "" pages n.dashify tie.or.space.connect } + if$ +} + +FUNCTION {format.bkpages.collat.check} +{ 's := + #1 'ptr := + s text.length$ 'collation := + collation #1 = + { format.pages.book } + { + collation 'collrest := + { collrest #0 > } + { s ptr #2 substring$ 't := + t "S." = + { format.pages.bkcollation + #0 'collrest := } + { ptr #1 + 'ptr := + collrest #1 - 'collrest := + #1 collrest = + { format.pages.book } + { skip$ } + if$ + } + if$ + } + while$ + } + if$ +} FUNCTION {format.vol.year.num.pages} { volume field.or.null year empty$ - { "Es gibt einen Jahrgang, aber kein Jahr in " cite$ * warning$ } + { "there's no year in " cite$ * warning$ } { " (" year * ")" * * } if$ month empty$ - 'skip$ - { ", " month * * } + 'skip$ + { ", " month * * } if$ number empty$ - 'skip$ - { ", Nr. " number * * } - if$ - pages empty$%% Lo, 26/2/97 'skip$ - { ", " format.pages * *}%% + { ", Nr. " number * * } 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$ - + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ "" } + { title missing$ + { ", " pages format.bkpages.collat.check * *} + { ", " format.pages * *} + if$ + } + if$ + } + if$ } -%% geaendert 21/2/94 +FUNCTION {format.chapter.inbook} +{ duplicate$ empty$ + { pop$ "empty chapter in " cite$ * warning$ } + { type empty$ + { "\emph{Kapitel\/} " swap$ tie.or.space.connect } + { type " " * swap$ * }%% wenn keine bes. Abschnittsform gen. werden soll, + %% koennte e. kl. Zwischenraum gewaehlt werden, z.B. " \, " + if$ + } + if$ + } + FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ - { "Kapitel " } - { type } + { "Kapitel " } + { url empty$ + { type } + { "Kapitel " } + if$ + } if$ chapter tie.or.space.connect pages empty$ - 'skip$ - { ", " * format.pages * } + '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 * + { volume empty$ + { "{In: }" booktitle emphasize * } + { "{In: }" booktitle emphasize * + " Bd." volume tie.or.space.connect * } if$ } - { volume empty$ + { volume empty$ { "{In: }" format.ed.incoll * ": " * booktitle emphasize * } - { "{In: }" format.ed.incoll * ": " * booktitle emphasize * - " Bd." volume tie.or.space.connect * + { "{In: }" format.ed.incoll * ": " * booktitle emphasize * + " Bd." volume tie.or.space.connect * } if$ } @@ -735,257 +1120,312 @@ FUNCTION {format.in.ed.booktitle.din} if$ } -%% geaendert 1/3/94 -FUNCTION {format.thesis.type} +FUNCTION {format.thesis.tr.type} { type empty$ 'skip$ - { pop$ - type - } - if$ + { 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.online.lastcheck} +{ lastchecked empty$ + { url empty$ doi empty$ urn empty$ and and + { skip$ } + { "" output } + if$ + } + { url empty$ doi empty$ urn empty$ and and + { "there's a lastchecked date but no url, urn or doi in " + cite$ * warning$ + } + { part.of.sentence + lastchecked "Abruf: " swap$ * output + } + if$ + } + if$ } +FUNCTION {format.maillist.lastcheck} + { type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + { format.online.lastcheck } + 'skip$ + if$ + } + 'skip$ + if$ + } + + FUNCTION {format.article.crossref} { key empty$ { journal empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * - warning$ - "" - } - { "{In: }{\em " journal * "\/}" * }%% + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "{In: }{\emph " journal * "}" * } if$ } - { "{In: }" key * }%% + { "{In: }" key * } if$ - "{\cite{" * crossref * "}" * "}" * ", " * format.pages * -%% " (siehe \cite{" * crossref * "}" * "), " * format.pages * + "\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." * } + { pop$ ua.etal * }%% --->u. a. { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " [u.~a.]" } -%% { " et~al." * } - { " ; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * } - if$ - } + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { ua.etal } + { " ; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * } + if$ + } if$ } if$ } +FUNCTION {format.inbk.vol.title} +{ volume empty$ + { " In: " } + { title empty$ + { " In: Bd." volume tie.or.space.connect + " von " * + } + { "In: Bd." volume tie.or.space.connect ": " * title emphasize * + " (" * year * ") in " * + } + 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 " * +{ type$ "inbook" = + { format.inbk.vol.title } + { volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + " " + } + { ". -- Bd." volume tie.or.space.connect + " von " * + } + if$ } 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 * } + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * } + if$ + } + { key * } if$ } - { "" * }%% nach der Bandzaehlung kommt gleich das label; Lo 2/6/99 -%% { format.crossref.editor * } + { "" * } if$ - "{\cite{" * crossref * "}" * "}" * -%% "{\cite{" * crossref * "}" * "}" * %%"), " * format.pages * + "\cite{" * crossref * "}" * } 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 * } + 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 * "}" * }%% + if$ + } + { "{In: }" } if$ - } -%% { "{In: }{\em " booktitle * "\/}" * }%% - { "{In: }" }%% Lo, 10/2/99 es sieht der reine Bezug (Referenz) besser aus! + } + { "{In: }" } 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 * "}" * ")" * + "\cite{" * crossref * "}" * %% ", " * format.pages * 5.12.2005 } -%%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 + { journal article.in.journal output.nonnull + new.sentence format.vol.year.num.pages output + format.url output } { format.article.crossref output.nonnull } if$ - note set.period.dash.check - note output + format.online.lastcheck + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note 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 } + { 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.edition output 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 + { format.series.number.din output } + { format.book.crossref output.nonnull } + if$ + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output } if$ - note set.period.dash.check - note output + format.doi output + format.url output + new.block isbn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note output fin.entry } -%% geaendert 23/2/94 -FUNCTION {inbook} +FUNCTION {booklet} { 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:" - %% diese Plazierung und der 2. * stammt v. N. Zacharias, Oldenburg, Juli 2000 - } - if$ - -%% -------- jetzt kommt der bibliogr. selbst. Teil author empty$ { format.editors "author and editor" output.check } - { format.authors output.nonnull - } + { format.authors format.editors 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 - 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 + format.btitle "title" output.check + format.edition.or.version output + format.url output + format.online.lastcheck + format.howpublished output + series new.sentence.checka + format.series.number.din output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output } if$ - isbn set.period.dash.check + type set.period.dash.check + format.digital.type output + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output + note set.period.dash.check + note output format.isbn.issn output fin.entry } -%% geaenderte Seitenzahlausgabe, wenn crossref-Feld benutzt wird, 27/2/97 + +FUNCTION {inbook} +{ output.bibitem + chapter format.chapter.inbook output.nonnull + crossref missing$ + { author empty$ + { format.editors "\,{In:\,}" swap$ * "author and editor" output.check } + { format.authors "\,{In:\,}" swap$ * output.nonnull } + if$ + author empty$ editor empty$ AND + { before.all 'output.state := } + { set.colon.after } + if$ + format.btitle.vol "title" output.check + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number.din output + isbn set.period.dash.check + format.isbn.issn output + } + { format.book.crossref output.nonnull } + if$ + part.of.sentence + format.pages output + note set.period.dash.check + note output + fin.entry +} + FUNCTION {incollection} { output.bibitem format.authors "author" output.check set.colon.after format.title "title" output.check + format.version.url output + type empty$ NOT + { type #-1 #4 substring$ "mail" = + type #1 #4 substring$ "Mail" = + OR + 'skip$ + { format.online.lastcheck } + if$ + } + { format.online.lastcheck } + if$ crossref missing$ { format.in.ed.booktitle.din "booktitle" output.check format.edition output format.address.publisher.year "publisher" output.check + format.maillist.url output + format.maillist.lastcheck 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 + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output } - if$ - fin.entry + { format.incoll.inproc.crossref output.nonnull } + if$ + part.of.sentence + format.chapter.pages "pages" output.check + note set.period.dash.check + note output + fin.entry } -%% geaendert 22/2/94, 15/11/96 (Hinweis v. Alin Shindun, Uni Siegen) + FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check @@ -994,101 +1434,112 @@ FUNCTION {inproceedings} crossref missing$ { format.in.ed.booktitle.din "booktitle" output.check address empty$ - { organization new.sentence.checka - organization output + { organization new.sentence.checka + organization output part.of.sentence format.address.publisher.year output - } - { format.address.publisher.year "publisher" output.check } + } + { format.address.publisher.year "publisher" output.check } if$ new.sentence - series empty$ %%neu nach Hinweis v. Alin Shindun, 15/11/96 + series empty$ '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 - } + { format.incoll.inproc.crossref output.nonnull } 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 + part.of.sentence + format.pages "pages" output.check note set.period.dash.check note output fin.entry } -%% MASTERSTHESIS 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 {conference} { inproceedings }%% nach Patashnik, wg US-Kompatibilitaet + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + { title empty$ + 'skip$ + {format.btitle "title" output.check } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + format.authors.organization output.nonnull + set.colon.after + format.btitle "title" output.check + format.edition "edition" output.check + author empty$ organization empty$ AND + { address "address" output.check + part.of.sentence + } + { organization empty$ + { address "address" output.check + part.of.sentence + } + { address ": " * organization * output + part.of.sentence + } + if$ + } + if$ + format.date output + number empty$ + 'skip$ + { "(" number * ") " * output } + if$ + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ + format.doi output + format.url output + format.online.lastcheck + note set.period.dash.check + note output + fin.entry +} + +%% Standard ist "Diplomarbeit", anderes mit TYPE="anderer Typ" erfassen! +%% z.B. TYPE={Hausarbeit}, 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 + part.of.sentence school "school" output.check part.of.sentence - "Diplomarbeit" format.thesis.type output.nonnull + "Diplomarbeit" format.thesis.tr.type output.nonnull part.of.sentence format.date "year" output.check -%% pages new.sentence.checka - pages set.period.dash.check - format.pages.book output + format.url output + format.online.lastcheck +%% format.digital.resource.type + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output +%% pages set.period.dash.check +%% format.pages.book output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ note set.period.dash.check note output fin.entry @@ -1100,76 +1551,172 @@ FUNCTION {phdthesis} %% {mastersthesis}% ist identisch bis auf Standardwert, s. set.colon.after format.btitle "title" output.check address output - part.of.sentence + part.of.sentence school "school" output.check part.of.sentence - "Diss." format.thesis.type output.nonnull % koennte auch `Dissertation' sein + "Diss." format.thesis.tr.type output.nonnull % koennte auch `Dissertation' sein part.of.sentence format.date "year" output.check - pages set.period.dash.check - format.pages.book output + format.url output + format.online.lastcheck +%% format.digital.resource.type + doi set.period.dash.check + urn set.period.dash.check + format.doi.urn output + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ +%% pages set.period.dash.check +%% format.pages.book output note set.period.dash.check note output fin.entry } -%% hiermit werden u.a. Normen erfasst +%% Normen, Vornormen, Schutzrechte (Patente) werden hiermit erfasst; +%% (z.Zt. auch noch Internetressourcen) +%% das type-Feld uebernimmt eine wichtige Steuerfunktion: 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 + type missing$ not + { type duplicate$ #1 #4 substring$ "Norm" = + type #1 #4 substring$ "Vorn" = OR + { " " * + format.number * output new.sentence - format.misc.series output%% neu 16/6/99 + format.date output + title empty$ + { skip$ } + { add.period$ new.sentence } + if$ + format.btitle "title" output.check note set.period.dash.check note output } + { duplicate$ #1 #6 substring$ "Schutz" = + { " " * format.number * output + new.sentence + "(" * format.date ")" * output + add.period$ new.sentence + format.authors.organization add.period$ output + note output + } + %% wenn irgendein anderer Typ eingetragen ist + { pop$ pop$ "" + title empty$ + { note empty$ + { url empty$ + { "there's no relevant field in " cite$ warning$ + pop$ "" + } + { format.url output }%%% + if$ + } + { note " " * output.nonnull } + if$ + } + { 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.nonnull + url empty$ + { format.edition output + format.howpublished output} + { format.howpublished output + format.edition.or.date output + format.url output + } + if$ + format.online.lastcheck + new.sentence + format.misc.series output +%% note set.period.dash.check + note output + } + if$ + } if$ + } + if$ } - if$ - fin.entry + %% wenn es keinen type gibt + { title empty$ + { note empty$ + { url empty$ + { "there's no relevant field in " cite$ warning$ + pop$ "" + } + { format.url output }%%% das waere e. reine URL + if$ + } + { note " " * output.nonnull + %% format.url format.date output + } + if$ + } + { 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.nonnull + url empty$ + { format.edition output + format.howpublished output} + { format.howpublished output + format.url output + format.edition.or.date output + format.online.lastcheck + } + if$ + new.sentence + format.misc.series output + 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$ - { "" } + { "empty organization and editor in " cite$ * warning$ } { organization " (Veranst.)" * output } if$ } @@ -1178,60 +1725,79 @@ FUNCTION {proceedings} set.colon.after format.btitle "title" output.check volume empty$ - { "" output.nonnull } + { skip$ } { "{\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 + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note 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.editors "author and editor" output.check + format.tr.institution output.nonnull } { 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 } + { author empty$ editor empty$ AND + 'skip$ + { institution new.sentence.checka + "/ " institution * output.nonnull + } + if$ + } if$ + format.version.url output + format.online.lastcheck 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 + format.tr.series.or.number "number" output.check + "Forschungsbericht" format.thesis.tr.type set.period.dash.check + "Forschungsbericht" format.thesis.tr.type output +%% format.digital.resource.type + pages empty$ + { skip$ } + { pages set.period.dash.check + pages format.bkpages.collat.check output + } + if$ isbn set.period.dash.check issn set.period.dash.check format.isbn.issn output + note set.period.dash.check + note "note" output.check fin.entry } -FUNCTION {unpublished} {misc}%% author, title, note muessen sein! howpublished -%% %% entfaellt natuerlich +FUNCTION {unpublished} {misc}%% AUTHOR, TITLE, NOTE muessen sein! +%% andere Felder sind optional + FUNCTION {default.type} { misc } + MACRO {jan} {"Januar"} MACRO {feb} {"Februar"} MACRO {mar} {"M{\^^b a}rz"} -%% nach Bernd Raichle, Febr. 1999 MACRO {apr} {"April"} @@ -1257,31 +1823,12 @@ MACRO {dez} {"Dezember"} MACRO {dec} {"Dezember"} - - -%%$$$ stillgelegte Beispiele fr den Gebrauch von Krzeln (hier Zs-Titel). +%%$$$ 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} @@ -1289,8 +1836,6 @@ FUNCTION {sortify} "l" change.case$ } -INTEGERS { len } - FUNCTION {chop.word} { 's := 'len := @@ -1308,18 +1853,13 @@ FUNCTION {sort.format.names} numnames 'namesleft := { namesleft #0 > } { nameptr #1 > - { " " * } - 'skip$ + { " " * } + '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 - { "et al" * } - { t sortify * } + { ua.etal * } + { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := @@ -1335,7 +1875,7 @@ FUNCTION {sort.format.title} "Die " #4 "Das " #4 "Ein " #4 - "Eine " #5 + "Eine " #5 "The " #4 t chop.word chop.word chop.word @@ -1351,10 +1891,10 @@ FUNCTION {sort.format.title} FUNCTION {author.sort} { author empty$ { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } if$ } { author sort.format.names } @@ -1364,14 +1904,14 @@ FUNCTION {author.sort} 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 } + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } if$ } { author sort.format.names } @@ -1381,14 +1921,14 @@ FUNCTION {author.editor.sort} 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 } + { 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 } @@ -1398,14 +1938,14 @@ FUNCTION {author.organization.sort} 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 } + { 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 } @@ -1418,12 +1958,12 @@ FUNCTION {presort} or 'author.editor.sort { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } if$ } if$ @@ -1444,10 +1984,6 @@ ITERATE {presort} SORT -STRINGS { longest.label } - -INTEGERS { number.label longest.label.width } - FUNCTION {initialize.longest.label}%% nicht identisch mit der Fkt.im ALPHA-Stil { "" 'longest.label := #1 'number.label := @@ -1466,7 +2002,7 @@ FUNCTION {longest.label.pass} } EXECUTE { initialize.longest.label } - + ITERATE { longest.label.pass } FUNCTION {begin.bib} @@ -1475,6 +2011,17 @@ FUNCTION {begin.bib} { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + newline$ + "% this bibliography is generated by plaindin.bst [8.2] from 2005-12-21" + write$ newline$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ } EXECUTE {begin.bib} @@ -1489,5 +2036,3 @@ FUNCTION {end.bib} } EXECUTE {end.bib} - -%% Ende von PLAINDIN.BST KFL, 10/10/00 \ No newline at end of file diff --git a/bericht/sources.bib b/bericht/sources.bib index 58c2503..8f8c5bf 100644 --- a/bericht/sources.bib +++ b/bericht/sources.bib @@ -1,26 +1,32 @@ -@online{chefenterprise, +@misc{chefenterprise, author = {chef}, title = {{Enterprise-class features and support }}, - howpublished = - "\url{http://www.getchef.com/enterprise-chef/#features-and-support}", + url = "http://www.getchef.com/enterprise-chef/#features-and-support", year = {2014}, note = "[Online; 06.03.2014]" } -@online{chefrun, - author = {chef} +@misc{chefrun, + author = {chefrun} title = {{About the chef-client Run}} - howpublished = - "\url{http://docs.opscode.com/essentials_nodes_chef_run.html}", + url = "http://docs.opscode.com/essentials_nodes_chef_run.html", year = {2014} note = "[Online, 20.03.2014]" } -@online{chefhistory, +@misc{chefhistory, author = {chef} title = {{History of Chef: What's in a Name? }} - howpublished = - "\url{http://www.youtube.com/watch?v=Ia2ItmjRsw8&feature=plcp}", + url = "http://www.youtube.com/watch?v=Ia2ItmjRsw8&feature=plcp", year = {2014} note = "[Online, 24.03.2014]" } + +@misc{puppetlanguage, + author = {puppetlabs} + title = {Docs: Language: Basics} + url = "http://docs.puppetlabs.com/puppet/latest/reference/lang_summary.html#compilation-and-catalogs", + year = {2011} + note = "[Online, 29.03.2014]" +} +