PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verwendung von empty$



Taplitou
01-01-2008, 14:53
Hallo, liebe Leute,

da die Zitierweise, in der ich zitieren muss, verlangt, dass man deutsche Herausgeberwerke mit "Hrsg" und englische mit "Eds", hab' ich mir überlegt in meinen Einträgen für deutsche Werke ein zusätzliches Feld language mit zugeben in dem die Sprache steht. Wenn das Feld nicht vorhanden ist, möchte ich gern, dass die englische Variante verwendet wird.

Jetzt hab' ich das .bst file wie folgt angepasst:



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%
%
% "(Ed.)" postfix
% editor must not be empty
%
FUNCTION {editor.postfix}
{ editor num.names$ #1 >
{
language empty$
{
{ "(\BEDS)" }
}
{
language "DE" =
{ "(\BHRSG)" }
{ "(\BEDS)" }
if$
}
if$
}
{
language empty$
{
{ "(\BED)" }
}
{
language "DE" =
{ "(\BHRSG)" }
{ "(\BED)" }
if$
}
if$
}
if$
}



Wenn language angegeben ist, funktioniert das ganze auch, aber wenn das Feld fehlt, gibt's eine Fehlermeldung die mir nicht richtig weiterhilft:

`'47' is a function literal, not a string, for entry Galambos1992
while executing---line 3181 of file apadgp.bst
"DE" is a string literal, `language' is a missing field
---they aren't the same literal types of entry Galambos1992

Irgendwie hab' ich die Vermutung, dass ich die empty$-Funktion nicht ganz richtig verwende...

Kann mir jemand einen Hinweis geben?

Thanx,
Micha.

rais
01-01-2008, 20:53
Frohes Neues,
versuch es einmal ohne die teilweise doppelte Klammerung, also etwa so:


FUNCTION {editor.postfix}
{ editor num.names$ #1 >
{ language empty$
{ "(\BEDS)" }
{ language "DE" =
{ "(\BHRSG)" }
{ "(\BEDS)" }
if$
}
if$
}
{ language empty$
{ "(\BED)" }
{ language "DE" =
{ "(\BHRSG)" }
{ "(\BED)" }
if$
}
if$
}
if$
}

und denk dran, language unter ENTRY (ziemlich zu Anfang) zu ergänzen.
MfG,

Taplitou
01-01-2008, 21:39
Wow, ich bin platt!! So klappts!!!! :) Vielen Dank und ebenfalls ein frohes neues Jahr!