PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LaTeX/BibteX :: trotz Vorgabe wird der Key ersetzt



kleinix
13-08-2009, 00:51
Hallo!

Ich verwende JabRef, um meine Literatur-Angaben zu erfassen und erstelle auch dort jeweils einen (sinnvollen) Bibtex-Key.
In der .bib-Datei sieht das auch alles ganz toll aus. Kompiliere ich aber mein Projekt (ich verwende alphadin.bst als Style), werden auch die Keys neuberechnet mit unschönen Ergebnissen. :(

Beispiel
In der .bib-Datei steht folgendes:


@BOOKLET{Genesis2009,
title = {vierteljährliche Produktionserhebung im Verarbeitenden Gewerbe},
author = {{Statistische Bundesamt}},
lastchecked = {03.08.09},
address = {Wiesbaden},
year = {2009},
url = {https://www-genesis.destatis.de/genesis/online/}
}

Der Bibtex-Key soll also "Genesis2009" lauten.

Nach dem Kompilieren steht in der .bbl-Datei dann aber....


\bibitem[{Stat}09]{Genesis2009}
\textsc{{Statistische Bundesamt}}:
\newblock \emph{Produktionswert, -menge, -gewicht und Unternehmen der
vierteljährlichen Produktionserhebung im Verarbeitenden Gewerbe}.
\newblock \url{https://www-genesis.destatis.de/genesis/online/}, Zugriff:
03.08.09

... folglich steht dann hinterher im PDF der Verweis "[Stat09]". Nur finde ich, dass "Genesis2009" viel besser, viel sprechender ist, als dieses verstümmelte "Stat09". Und das ist ja nur EIN Beispiel.

Im Style alphadin.bst habe ich ab Zeile 1870 glaub ich auch das Problem gefunden. Ich lese da was von "format.lab.names"- und "calc.label"-Funktionen, habe aber keine Ahnung was da wirklich passiert.

Hat jemand ´ne Ahnung wo und was man im Style ändern muss, dass der "gelieferte" Bibtex-Key übernommen wird, statt neu zu berechnen lassen.

Ich wäre seeehr dankbar!

bobmalaria
13-08-2009, 01:30
hi,

versuche mal den style 'abstract'

hakaze
13-08-2009, 10:06
Du kannst auch versuchen ein Label mit dem Feld "key" zu setzen:

@BOOKLET{Genesis2009,
key = {Genesis2009},
title = {vierteljährliche Produktionserhebung im Verarbeitenden Gewerbe},
author = {{Statistische Bundesamt}},
lastchecked = {03.08.09},
address = {Wiesbaden},
year = {2009},
url = {https://www-genesis.destatis.de/genesis/online/}
}
Ich hab die Beschreibung mal hier (http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node7.html#SECTION00032000000000000000) geklaut:

key
Used for alphabetizing, cross referencing, and creating a label when the ``author'' information (described in Section 4) is missing. This field should not be confused with the key that appears in the \cite command and at the beginning of the database entry.

kleinix
13-08-2009, 17:09
Oh, danke erstmal für die schnellen Antworten.

@hakaze:
Die Idee mit dem "key = {Genesis2009}" hatte ich auch schon – leider ohne Wirkung. Nun habe ich aber auch die Begründung dafür: In der Beschreibung, die Du gefunden hast, stets ja:

... This field should not be confused with the key that appears in the \cite command and at the beginning of the database entry.

Aber bobmalarias Tipp mit dem style 'abstract' werde ich mal testen – hoffe erst halbwegs DIN-konform.

Hat jemand noch andere Ideen?

Kathrin_B
13-08-2009, 23:22
Ich weiß nicht, ob das auch für BibteX zutrifft, aber in Biblatex gibt es noch das Feld Label. Probier mal aus, ob du dort die Zitation reinschreiben kannst (label = {Genesis2009}).

kleinix
13-08-2009, 23:29
Jipii! Ich habe die Lösung.

Darauf gebracht hat mich der von bobmalaria vorgeschlagene Style 'abstract'. In der PDF-Ausgabe erzeugt dieser Style eine für mich unakzeptables Literaturverzeichnis (so wie durch alphadin sollte es schon sein), aber im Text sind die Lit.-Verweise genauso wie gewünscht (s.o.).

Also habe ich alphadin.bst und abstract.bst miteinander verglichen und siehe da, Problem gelöst. Knackpunkt ist die Funktion 'output.bibitem'. Die steht in alphadin.bst in Zeile 289 ff.


FUNCTION {output.bibitem}
{ newline$
"\bibitem[" write$
cite$ write$ % steht 'cite$' vor 'write$' wird der gelieferte Bibtex-Key verwendet
% label write$ % steht 'label' vor 'write$' wird der Bibtex-Key neu erzeugt
"]{" write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}


Vielen Dank für die Hinweise!
Frohes Schaffen!