aui
30-04-2007, 21: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
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