PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BiBTeX: gezielt einzelne Abkürzungen ändern



signorpiccolo
22-05-2007, 18:45
Hallo liebe LaTeX-Gemeinde,

Einleitung:
Wahrscheinlich verdrehen einige Erfahrene bei meiner Frage die Augen, aber ich habe trotz intensiver Suche keine zufriedenstellende Antwort gefunden. Los geht's:

Bedingungen:
Ich erstelle mit JabRef meine Literaturdatenbank, nutze in MiKTeX den Stil alphadin für die Erstellung des Literaturverzeichnisses und kompiliere das ganze im TeXnicCenter.

Problem:
Läuft auch alles prima (mal abgesehen davon, dass die Abkürzungen für die zitierte Literatur absolut hässlich sind, aber gut), ABER: bei einem Artikel, dessen Autoren Kühn und Ziegler heißen, lässt BiBTeX sich die "fantastische" Abkürzung [KZ05] einfallen. Die will ich in meiner Diplomarbeit aber nicht stehen haben und würde deshalb nur diese eine Abkürzung gerne gezielt ändern.

Mein bisheriges Wissen:
Im Forum habe ich gefunden, dass man in der .bib-Datei den \key selber setzen kann, der aber nur ausgewertet wird, wenn kein Autor angegeben ist. Bei mir gibt es aber Autoren. Außerdem dürfte eine eventuelle manuelle Änderung in der .bib-Datei beim nächsten Bearbeiten mit BibTeX wieder überschrieben werden, oder? Mir ist nicht klar, wann das passiert.

Fragen:
1. Kann ich gezielt BiBTeX-Abkürzungen ändern?
2. Kann ich das irgendwie in JabRef machen?
3. Wenn nein: in welcher Datei an welcher Stelle muss ich das stattdessen tun?
4. Der wievielte Arbeitsschritt ist das, angefangen beim Abspeichern der Bibliotheks-Datei in JabRef bis zum Kompilieren im TeXnicCenter, bzw. welche Arbeitsschritte müssen folgen, damit meine Änderung im LitVZ auftaucht?
5. Wird meine Änderung wieder von einem zukünftigen Arbeitsschritt überschrieben? Wenn ja, von welchem?

Fragen über Fragen. Ich hoffe Ihr könnt mir weiterhelfen. Dafür vielen Dank im Voraus!

signorpiccolo

Salnic
22-05-2007, 19:11
Hi signorpiccolo,

die automatische Generierung der Zitierschlüssel ist wirklich ein Problem. Ich glaube nicht, dass es eine _einfache_ Lösung dafür gibt. Es gibt mehrere Möglichkeiten, wie man das Problem beheben, aber nicht wirklich lösen kann.

1. Du manipulierst händisch die von Bibtex erzeugte *.bbl-Datei. Das ist relativ einfach, aber nicht von Dauer. Jeder Aufruf von Bibtex zerstört Deine Arbeit wieder, weil Bibtex diese Datei neu anlegt. Bibtex muss immer dann aufgerufen werden, wenn sich das Lit-Verzeichnis ändert. Also immer dann, wenn eine neue Lit in Deiner Arbeit erscheint oder wieder aus der Arbeit gestrichen wird. Wenn nur eine Quelle zum x-ten mal zitiert wird, ändert sich ja nichts am Litverzeichnis (es sei denn, Du lässt dort mit backref die Seitenzahlen des Auftretens der Zitierung im Text erscheinen). Zu Not kann mich sich auch ein Makro oder ein Programm schreiben, dass diese Ersetzung automatisch nach jedem Bibtex-Lauf macht. --- Aber so richtig schön ist das alles nicht, nur die einfachste und schnellste Lösung.

2. Du veränderst die *.bst-Datei. Die Bst-Datei ist im Prinzip die Datei, in der drin steht, wie die Literatur-Datenbank formatiert wird. Sie ist in einer relativ eigenartigen Sprache geschrieben, in die man sich erst mal einarbeiten muss: btxFAQ.pdf, btxdoc.pdf und btxhak.pdf kann ich empfehlen zu lesen.

3. Du suchst Dir einen Zitierstil, dessen *.bst-Datei die Angabe von Zitierschlüsseln erlaubt. Ich bin leider überfragt, ich kenne keinen, weil ich entweder mit Zahlen oder mit Autor-Jahr zitiere. Ich persönlich finde diese kryptischen Zitierschlüssel nicht sehr schön. Aber das ist Geschmackssache.


2. Kann ich das irgendwie in JabRef machen?
Ja und Nein.

JabRef verwaltet ja nur die Datenbank. Hier kannst Du schön Deine *.bib-Datei ändern. Und wenn Du eine passende *.bst-Datei gefunden hast, kannst Du mit JabRef dort z.B. key="Lala93" eingeben.

soviel erst mal von mir

Salnic

PS: welchen Zitierstil benutzt Du denn aktuell (\bibliographystyle{xxx})

signorpiccolo
22-05-2007, 19:46
Hi Salnic,

danke für die prompte Antwort.

zu 1.
Ok, hab ich ausprobiert. Dann muss man aber, wie Du schreibst, beim Kompilieren verhindern, dass BibTeX ausgeführt wird. Und das geht im TeXnicCenter mit "Projekt -> Eigenschaften -> [ ] verwendet BibTeX" (deaktivieren), wenn ich das richtig verstehe. Dann erst Kompilieren. Toll! Das funktioniert, ist aber für Perfektionisten natürlich keine Dauerlösung, wie Du ja schon gesagt hast.

zu 2.
Uahhh, ich hab's befürchtet. Da frag' ich Dich doch lieber

zu 3.
welchen Stil Du empfehlen könntest?

Ich persönlich finde diese kryptischen Zitierschlüssel nicht sehr schön.
Ich nämlich auch nicht.

zu PS.
Ich verwende bisher alphadin, das sich nach der DIN 1505 richtet, und wenn man schon mit LaTeX schreibt, dann kann man sich auch gleich an DIN-Normen halten, dachte ich. Kein Wunder, dass bei einer DIN die Abkürzung KZ nicht verboten ist. Sorry für diese polemische Bemerkung.

signorpiccolo

Salnic
22-05-2007, 21:06
Hi signorpiccolo,

habe die alphadin.bst ein wenig modifiziert und als myalphadin.bst(.txt) angehängt. Wenn Du jetzt einen Eintrag wie Kühn und Ziegler hast, kanns Du ein mylabel-Feld zufügen und Bibtex wird jetzt dieses Label für die Ausgabe benutzen.

!!! Es wird definitiv nicht geprüft, ob dieser Zitierschlüssel schon vergeben ist. Darum musst Du Dich kümmern. Wäre nämlich ziemlich blöd, wenn irgend ein automatisch vergebener Zitierschlüssel genauso lautet. Auch kann ich mir nicht vorstellen, ob das Sortieren funktioniert. Wohl eher nicht. Wird überhaupt sortiert. Werde mir mal morgen dazu was überlegen.



@ARTICLE{Kuehn2005,
author = {Heins Kühn and Tom Ziegler},
title = {Kreuzzüge},
journal = {Kleine Zeitschrift},
year = {2005},
volume = {1},
pages = {1235--1237},
number = {5},
mylabel = {K+Z05},
}

Salnic

countbela666
23-05-2007, 08:09
Hallo,

unabhängig von Salnics funktionierender Variante hier der Link zu einer weiteren Änderung der alphadin.bst, die Zitierschlüssel aus mehreren Autoren von AB05 generell zu AaBb05 abändert. Vielleicht ist auch das eine Variante für dich.

http://www.mrunix.de/forums/showthread.php?t=49181

Grüße
Marcel