Versionsübersicht für dinat


A short note for english speaking people

This page is the version history of the BibTeX style dinat.bst, which produce bibliographies following the german norm DIN 1505. Because this norm is only usefull for text in german, all extra documentation like these pages is in german, too. Nonetheless the styles themselves have comments and output in english. If you like to get this pages in english, too, please write me, I'll do my very best.

mailto: Helge Baumann

Einleitung

Hier werden (hoffentlich) alle Änderungen und ihr Sinn aufgeführt, die zum Erreichen der aktuellen Version des BibTeX-Stils dinat.bst durchgeführt wurden. Ich hoffe, dass damit das Verständnis des Stils im Speziellen und von BibTeX im Allgemeinen vertieft wird.


Zu den letzten Änderungen


Der Anfang

Einen neuen Stil zu schreiben kam mir zwar auch kurzzeitig in den Sinn, aber nach einigen halbherzigen Versuchen habe ich es aufgegeben (hey, ich sollte eigentlich meine Diplomarbeit schreiben!) und mich lieber auf die Modifikation eines existierenden Stils beschränkt. Als Ausgangspunkt habe ich den Stil natdin von Lorenzen genommen, der die grundlegende DIN-Konformität schon eingebaut hat, allerdings ziemlich fehlerhaft (und chaotisch) ist. Als Gradmesser für den Erfolg habe ich anfangs die Datei xampl.bib verwendet, die mit BibTeX mitgeliefert wird. Sie bietet zwar nicht unbedingt DIN-konforme Einträge, deckt aber alle Standardfälle ab.

Nachdem die Entscheidung gefallen war, einen "neuen" Stil zu produzieren, ging es an die Einarbeitung in BibTeX im Allgemeinen und natdin im Besonderen. Irgendwann verstand ich so ungefähr, wie BibTeX mit Hilfe der bst-Dateien aus den Einträgen der Datenbank eine TeX-Quelle erzeugt und fühlte mich gewappnet, dem Problem entgegenzutreten.


Von NATDIN zu DINAT

Zuallererst musste ich natdin erstmal zum Laufen bekommen, bei mir produzierte das Ding haufenweise Fehlermeldungen und Warnungen. Fehler sind schlimmer als Warnungen, also musste ich mich zuerst um diese kümmern.

Grundlegende Fehler

Ab hier ließ sich der Stil ohne Fehler einlesen, produzierte aber noch 48 Fehler mit xampl.bib, ein bischen viel für meinen Geschmack!

Detail-Arbeit

Nun wurden einige Änderungen durchgeführt, die die Ausgabe nicht grundlegend ändern, aber für das Verständnis des Stils gut waren. Das meiste war eigentlich einfaches Aufräumen, nur ein paar Sachen sind mir im Vorbeigehen zusätzlich aufgefallen, und so habe ich sie gleich mit geändert:

Bis hier waren alle Maßnahmen im Prinzip semantik-erhaltend, haben damit also an der Anzahl der Fehler nichts geändert! Dies sollte nun anders werden ...

You can't pop an empty literal stack ...-Fehler

Das entfernte die Fehlermeldungen, die durch das Sortieren hervorgerufen wurden. Es blieben noch 12 Fehlermeldungen.

Das behebt den empty literal stack bei whole-jounal, es bleiben noch 11 the literal stack isn't empty ...-Fehler.

Kommentare

Ab hier war das Verständnis des Stils allerdings schon relativ groß, so dass vorher ein paar weitere Dinge in Angriff genommen werden konnten:

the literal stack isn't empty ...-Fehler

Eine naheliegende Maßname war das Einfügen von stack$ am Ende von out.bibitem.end (ehemals fin.entry), aber das hätte nur die Symptome kuriert, nicht deren Ursache. Also ging es einzeln ans Eingemachte: Es waren alle Stellen zu suchen und zu finden, in denen irgendwas auf den Stack gelegt wurde, das hinterher nicht verarbeitet wurde. Dazu half die Umbenennung: alles mit push musste etwas (genauer gesagt, exakt ein Item) auf den Stack legen, alles mit format dagegen sollte den obersten Stack-Eintrag manipulieren, musste ihn also dazu abheben und hinterher wieder drauftun oder/und musste etwas daranhängen. Gefunden habe ich dann nur den einen Eintrag:

Damit (wenn ich nichts vergessen habe) waren alle Fehlermeldungen verschwunden, und die Hauptarbeit war getan:

DINAT war geboren!


Neue Funktionen

Nun ging es daran, neue Funktionen einzubauen bzw. die existierenden Formatierungen zu modifizieren:


URL

Neuere Stile enthalten das Feld URL, also muß das auch hier rein (außerdem brauche ich es selbst!).


Von DINAT zu DINNAT

Nachdem der DINAT-Stil so weit gediehen war, kam ich durch Beiträge in der Newsgruppe de.comp.text.tex auf die Idee, den Stil so zu modifizieren, dass er die ganzen NATBIB-Möglichkeiten bietet, also z.B. auch \citeyear und die *-Formen.

Leider gingen dabei die Marken vor den Einträgen im Literaturverzeichnis flöten, so dass ein zweiter Stil nötig wurde, der allerdings nicht mehr so richtig DIN-konform genannt werden kann. Da er aber quasi die Langform von DINAT ist, wurde er DINNAT genannt. Falls ich das jemals hinbekomme, die Marken zu erzeugen, wird DINNAT aber wieder eingestellt!

Ab jetzt müssen alle Änderungen parallel in beiden Stilen durchgeführt werden, falls nicht anders vermerkt.

Damit werden aber schon die zusätzlichen cite-Versionen ermöglicht, es fehlt allerdings noch die lange Autorenliste.


Erste Veröffentlichung am 10.4.2000

Nachdem ich soweit gekommen war, war es an der Zeit, DINAT mit der großen bösen Welt in Kontakt kommen zu lassen: Eine erste Ankündigung erfolgte in der Newsgruppe de.comp.text.tex. Das Ergebnis war nicht überwältigend, aber größer als gedacht, und vor allem positiv! Ein echter Ansporn, weiter zu arbeiten.


Version 1.1 vom 18.4.2000

Wie üblich finden sich direkt nach Veröffentlichung der ersten Version sofort ein paar kleine Fehler, die eine Überarbeitung notwendig machen:

Und natürlich auch ein paar richtige Änderungen (welche erste Verison ist schon korrekt?):

Ab jetzt sind auch diese Webseiten verfügbar, ich hoffe, damit werden viele Fragen im Vorfeld beantwortet. Irgendwann demnächst wird diese Seite auch umziehen, auf jeden Fall steht die Adresse dann im Vorspann der Dateien.


Version 1.2 vom 25.4.2000

Nachdem diese Stile und damit auch diese Webseiten (auf Anregungen von mailto: Rolf Niepraschk) die Aufnahme in die heiligen Hallen des CTAN im Pfad biblio/bibtex/contrib/german/dinat/ gefunden haben, gibt es auch noch ein paar Änderungen:


Version 2.0 vom 2.5.2000

Wenn das so weitergeht, komme ich doch noch in einen wöchentlichen Update-Rhythmus :-)

Ab jetzt gibt es zu den Änderungen auf dieser Seite auch die Namen und Mail-Adressen der Leute, die diese angeregt haben, als Dank und Ansporn sozusagen.

Diese Lösung sollte auch mit der Formatierung per natbib.cfg zurechtkommen.
Falls die natbib-Option numbers oder die \bibpunct-Variante n gewählt wurde, wird auch nur ein entsprechendes numerisches Label erzeugt.

Die letzte Änderung rechtfertigt den Sprung auf Version 2.0, da nun mit einem Stil alle Zitiermöglichkeiten und Label erreicht werden können.

Diese Änderung führt darüberhinaus zur Zusammenführung der beiden Stile, so dass nur noch ein Stil, nämlich der eigentlich geplante dinat.bst, übrigbleibt.


Version 2.1 vom 9.5.2000

Und weiter geht es im immerwährenden Kreislauf der Änderungen, selbst an meinem Geburtstag (aber schließlich erfolgte die erste Veröffentlichung auch am Geburtstag meiner Frau):


Version 2.2 vom 12.07.2000

Nachdem die Diplomarbeit abgegeben war, war wieder Zeit für die Arbeit an dinat, dachte ich. Aber dann kam die neue Wohnung, der Umzug, das Einrichten, der neue Job usw. Aber nun ist es geschafft, eine neue Version ist fertig, wenn auch nicht so neu wie erhofft:

Vor allem für das letztere erbitte ich Meldungen, ob es geholfen hat!


Version 2.3 vom 03.10.2000

Nun ist der erste Stress mit neuer Wohnung, neuem Job etc. weg, viele viele Vorschläge für dinat sind eingegegangen, und jetzt habe ich auch Zeit für eine neue Version gefunden. Diese bringt noch nicht die angekündigten großen Änderungen, sondern wie die vorigen vor allem Detailverbesserungen, wenn auch einige lange geforderte:

Und die Dokumentation ist immer noch nicht fertig.


Version 2.4 vom 05.11.2000

Diese Version ist eine Olaf-Meltzer-Dank-Ausgabe, da er die meisten Änderungen zu dieser Version beigetragen hat. Ich hatte eigentlich nur ein wenig zu tun mit dem Zusammentragen und Veröffentlichen. Dachte ich jedenfalls, bis ich mich an die Namens-Formatierung machte ... Aber trotzdem, er hat es verdient, da er nicht nur Fragen stellt, sondern auch selbst gute Lösungen liefert!

Zum Stand der Dokumentation siehe oben. Aber inzwischen habe ich sehr viele Beispiel-Einträge sammeln können!


Version 2.5 vom 15.11.2000

Und direkt nach der letzten Version nun schon wieder eine neue. Es haben sich einfach ein paar Dinge ergeben, die mir sinnvoll erschienen und eine echte Verbesserung darstellen. Außerdem habe ich gerade etwas Zeit.

Ein Problem bleibt die Sortierung von Einträgen mit gleichem ersten (A), aber verschiedenem zweiten Autor (B bzw. C) sowie mindestens einem weiteren Autoren (D) und unterschiedlicher Jahreszahl (1994 bzw. 1999). Das Label wird dann aus erstem Autor und Jahr gebildet (A u.a. 1994 bzw. A u.a. 1999) und entsprechend sortiert. Wird aber das Label nicht angezeigt, z.B. bei numerischer Zitierung, dann wird das Werk A, B und D 1999 trotzdem hinter A, C und D 1994 einsortiert, was zu Verwirrung führen kann. Dies ist aber nicht befriedigend zu lösen, da zur Sortierzeit nicht zwischen den beiden Zitierungsarten unterschieden werden kann. Da laut DIN nach dem Label sortiert wird, behalte ich dieses bei, da ja die numerische Zitierung nicht DIN entspricht.


mailto: Helge Baumann, 2000-11-15