PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zitierstil, bst-Datei [EVER90a, S. 13-19]



Andreas_§
26-03-2008, 16:35
Guten Tag,

ich bin für eine Studienarbeit auf der Suche nach dem passendem Zitierstil in Latex. Die vorgegebenen Regel schreiben folgende Syntax der Zitate im Fließtext vor:

[{Autor mit vier Großbuchstaben abgekürzt}{2-stellige Jahreszahl}{kleiner Buchstabe für Nennungen aus einem Jahr},S.{Zahl}-{Zahl}]

also beispielsweise: [EVER90a, S. 13-19] (siehe auch Anhang)
Da ich dazu noch keinen passenden Stil zu gefunden habe, wollte ich jetzt alphadin für meine Bedürfnisse anzupassen. (Falls jetzt nicht jemand den passenden Stil parat hat *hoff*.) Dazu habe ich mich ein wenig mit der alphadin.bst beschäftigt und bin zu dem Schluss gekommen das die Funktion FUNCTION {format.lab.names} den Key erzeugen müsste. Da ich mich noch nicht so richtig mit der Postfix-Notation zurecht gefunden habe, habe ich die Funktionsweise dieser Funktion noch nicht so ganz nachvollziehen können. Eigentlich müsste man nur an der entsprechenden Stelle die pop$ Funktion anwenden, oder? Also ich hatte da die folgende Zeile im Visier:

{ pop$ s #1 "{ll}" format.name$ #4 text.prefix$ }

Ich würd mich freuen wenn mir da jemand ein wenig helfen könnte,

Gruß
Andreas






FUNCTION {format.lab.names}
{ 's :=
s num.names$ 'numnames :=
numnames #1 >
{ numnames #4 >
{ #3 'namesleft := }
{ numnames 'namesleft := }
if$
#1 'nameptr :=
""
{ namesleft #0 > }
{ nameptr numnames =
{ s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
%% { "\," * %% kein besonderes Zeichen fuer "others" i. label
{ "{\etalchar{+}}" * %% ein plus-Zeichen (+) fuer "others"!
#1 'et.al.char.used :=
}
{ s nameptr "{l{}}" format.name$ * }
if$
}
{ s nameptr "{l{}}" format.name$ * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
numnames #4 >
%% { "\," * %% s. Bemerkung oben
{ "{\etalchar{+}}" *
#1 'et.al.char.used :=
}
'skip$
if$
}
{ s #1 "{l{}}" format.name$
duplicate$ text.length$ #2 <
{ pop$ s #1 "{ll}" format.name$ #4 text.prefix$ } %% vgl. Anmerkung!

'skip$
if$
}
if$
}