PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bibtex .BST-File bearbeiten



Fite
31-10-2015, 00:14
Hallo zusammen,

in meinem Literaturverzeichnis muss ich noch einen Doppelpunkt nach der "Address" einfügen.
Es muss also Frankfurt: Fischer. heißen. Ich habe allerdings keine Ahnung, wo ich dies in meinem .bst-file ändern kann.
Hat da jemand eine Idee? Das .bst-file habe ich in einer .zip-Datei angehängt.

Viele Grüße
Fite



\documentclass{article}

\usepackage[authoryear]{natbib}
\bibliographystyle{mydcugerman}

\begin{document}
\cite{Adler}
\bibliography{Lit}
\end{document}


Lit.bib entry


@BOOK{Adler,
AUTHOR="Adler, Alfred and Metzger, Wolfgang (Hg.)",
YEAR="$^{12}$2006",
TITLE="Praxis und Theorie der Individualpsychologie",
ADDRESS="Fischer",
PUBLISHER="Frankfurt"
}

pi-c
06-11-2015, 00:03
Hallo, Fite!


Hallo zusammen,

in meinem Literaturverzeichnis muss ich noch einen Doppelpunkt nach der "Address" einfügen.
Es muss also Frankfurt: Fischer. heißen. Ich habe allerdings keine Ahnung, wo ich dies in meinem .bst-file ändern kann.
Hat da jemand eine Idee? Das .bst-file habe ich in einer .zip-Datei angehängt.
Ich habe mich mal der Herausforderung gestellt und bin sogar zu einem Ergebnis gekommen -- allerdings weiß ich nicht genau, wieso es gerade so funktioniert. :-)


Lit.bib entry


ADDRESS="Fischer",
PUBLISHER="Frankfurt"
Das ist doch Blödsinn -- die Adresse ist "Frankfurt" und Publisher ist "Fischer"!

In der bst-Datei habe ich folgende Funktion definiert:


FUNCTION {publisher+address.output}
{ address empty$
{ publisher output }
{ publisher empty$
{ skip$ }
{ ": " * publisher * address pop$ }
if$
}
if$
}


Dann muss nur noch diese Funktion aufgerufen werden. Bei dieser Gelegenheit ändern wir auch noch gleich die Reihenfolge, in der Publisher und Address ausgegeben werden -- dann kannst Du zumindest bei @BOOK schon die beiden Felder korrekt verwenden.


FUNCTION {book}
{ output.bibitem
list.label.output
" " list.year * "" * output.nonnull
new.block
author empty$
{ editor "author and editor" item.check }
{ crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
title.field field.used =
{ skip$ }
{ format.btitle "title" output.check }
if$
crossref missing$
{ format.bvolume output
format.number.series output
format.edition output
% ***** Hier ändert sich etwas! *****
% publisher "publisher" output.check
address output
publisher+address.output
% ***** Das war schon alles! *****
}
{ format.book.crossref output.nonnull
format.edition output
}
if$
new.block
note output
write.urldate % line added by jhe & kho
fin.entry
write.url
}


Analog verfährst Du bei bei den anderen Funktionen, die Address/Publisher ausgeben (inbook, incollection, inproceedings und proceedings). Ich hoffe, dass ich jetzt keine neuen Fehler eingebaut habe; möglicherweise geht es auch eleganter -- ich habe hier nur rumgespielt! :-)

Schönen Abend noch

Andreas