PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "and" wird nicht zu "und" beim zitieren



aui
30-04-2007, 20:53
Hallo Leute,

ich habe folgendes Problem. Wenn ich folgendes laufen lasse, und im Text die entsprechende Stelle zitiere erscheint zwischen zwei Autoren and statt und:

\documentclass[ngerman]{report}
\usepackage[ngerman]{babel}
\usepackage[round, sort]{natbib}

\begin{document}
\citet{Mourad:1998}
\bibliographystyle{plainnat}
\bibliography{Literatur}
\end{document}


in Literatur.bib steht dann beispielsweise folgendes:
@ARTICLE{Mourad:1998,
AUTHOR = {Mourad, M. and Anous, M. R.},
TITLE = {Estimates of Genetic and Phenotypic Parameters of some Growth Traits in Common African and Alpine
Crossbreed Goats},
JOURNAL = {Small Ruminant Research},
YEAR = {1998},
volume = {27},
pages = {197-202},
keywords = {heritability, genetic correlation, common african goat, alpine goat, crossbreeding},
}

So jetzt steht im Literaturverzeichnis "Mourad, M. and Anous, M. R." und auch im Zitat oben, alles andere ist genau so, wie es sein soll. Ein anderer Zitierstil entspricht leider nicht den Vorgaben. Ja ja, die Vorlieben. Egal, ich habe jetzt ein wenig in plainnat.bst rumgepfuscht und in der folgenden Funktion das rote verändert:

FUNCTION {format.full.names}
{'s :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}" format.name$ 't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
%% { " and " * t * } %original version
{ " und " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

So danach erscheint im Literaturverzeichnis ein ordentliches "und", nicht jedoch bei meinem Zitat im Text. Soweit ich jetzt rausgefunden habe, liegt das wohl in folgender Funktion am rot markierten:

FUNCTION {output.bibitem}
{ newline$
"\bibitem[" write$
label write$
")" make.full.names duplicate$ short.list =
{ pop$ }
{ * }
if$
"]{" * write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}

Ich kann jetzt schon, nachdem alles schön gelaufen ist, im meinem report.bbl per Hand die verbliebenen and´s zu und´s machen, sind ja nur fünf, aber hat jemand eine Idee, wie ich ihn dazu bringen kann, das freiwillig zu machen. Vor allem ist das weniger fehleranfällig.

Danke schon mal und wie gesagt, wenn niemand eine Idee hat, werde ich zum Schluss einfach den bbl-file ändern.

Aui

Salnic
30-04-2007, 21:03
Hi Aui,

guck Dir mal FUNCTION {format.lab.names} und auch FUNCTION {format.names} an!

Salnic

aui
02-05-2007, 14:21
Hallo Salnic,

das mit FUNCTION {format.lab.names} war der richtige Tipp, habe vergessen hinzuschreiben, dass ich in FUNCTION {format.names} schon and zu und gemacht habe.

Danke nochmal dafür

Aui

PS.: Hat jemand eine Ahnung, warum das Paket babel das nicht ändert? Und wo kann ich eine Anleitung oder Beschreibung zu den Functionen und so weiter bekommen? Ist bestimmt einfacher damit auf die Suche zu gehen als alles mit try-and-error zu ergründen :)