von Daniel86 » Sa 20. Mär 2010, 22:21
Hallo zusammen,
dank diesem Forum konnte ich die format.lab.names Funktion schon in der alphadin bearbeiten und als alphadin_custom abspeichern:
Hier die geänderte Funktion:
http://pastebin.com/6TXPr8FR
Diese bewirkt folgendes:
Müller 2006 -> Müll06
Müller, Mayer 2006 -> MüMa06
bei drei Autoren soll jetzt folgendes passieren:
Müller, Mayer, Hubert: Mül+06
momentan werden aber MüMaHu angezeigt. Ich will nur die ersten 3 Buchstaben des ersten Autors, sobald 3 oder mehr Autoren beteiligt waren.
Könnte mir jemand sagen, was ich ändern muss?
Hier nochmal der Code:
1.FUNCTION {format.lab.names}
2.{ 's :=
3. s num.names$ 'numnames :=
4. numnames #1 >
5. { numnames #4 >
6. { #3 'namesleft := }
7. { numnames 'namesleft := }
8. if$
9. #1 'nameptr :=
10. ""
11. { namesleft #0 > }
12. { nameptr numnames =
13. { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
14.%% { "\," * %% kein besonderes Zeichen fuer "others" i. label
15. { "{\etalchar{+}}" * %% ein plus-Zeichen (+) fuer "others"!
16. #1 'et.al.char.used :=
17. }
18.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19.%% { s nameptr "{l{}}" format.name$ * }
20. { s nameptr "{ll}" format.name$ #2 text.prefix$ * }
21.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22. if$
23. }
24.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25.%% { s nameptr "{l{}}" format.name$ * }
26. { s nameptr "{ll}" format.name$ #2 text.prefix$ * }
27.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28. if$
29. nameptr #1 + 'nameptr :=
30. namesleft #1 - 'namesleft :=
31. }
32. while$
33. numnames #4 >
34.%% { "\," * %% s. Bemerkung oben
35. { "{\etalchar{+}}" *
36. #1 'et.al.char.used :=
37. }
38. 'skip$
39. if$
40. }
41. { s #1 "{l{}}" format.name$
42. duplicate$ text.length$ #2 <
43.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44.%% { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } %% vgl. Anmerkung!
45. { pop$ s #1 "{ll}" format.name$ #4 text.prefix$ } %% vgl. Anmerkung!
46.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47. 'skip$
48. if$
49. }
50. if$
51.}
Hallo zusammen,
dank diesem Forum konnte ich die format.lab.names Funktion schon in der alphadin bearbeiten und als alphadin_custom abspeichern:
Hier die geänderte Funktion: http://pastebin.com/6TXPr8FR
Diese bewirkt folgendes:
Müller 2006 -> Müll06
Müller, Mayer 2006 -> MüMa06
bei drei Autoren soll jetzt folgendes passieren:
[b]Müller, Mayer, Hubert: Mül+06[/b]
momentan werden aber MüMaHu angezeigt. Ich will nur die ersten 3 Buchstaben des ersten Autors, sobald 3 oder mehr Autoren beteiligt waren.
Könnte mir jemand sagen, was ich ändern muss?
Hier nochmal der Code:
[code]1.FUNCTION {format.lab.names}
2.{ 's :=
3. s num.names$ 'numnames :=
4. numnames #1 >
5. { numnames #4 >
6. { #3 'namesleft := }
7. { numnames 'namesleft := }
8. if$
9. #1 'nameptr :=
10. ""
11. { namesleft #0 > }
12. { nameptr numnames =
13. { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
14.%% { "\," * %% kein besonderes Zeichen fuer "others" i. label
15. { "{\etalchar{+}}" * %% ein plus-Zeichen (+) fuer "others"!
16. #1 'et.al.char.used :=
17. }
18.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19.%% { s nameptr "{l{}}" format.name$ * }
20. { s nameptr "{ll}" format.name$ #2 text.prefix$ * }
21.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22. if$
23. }
24.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25.%% { s nameptr "{l{}}" format.name$ * }
26. { s nameptr "{ll}" format.name$ #2 text.prefix$ * }
27.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28. if$
29. nameptr #1 + 'nameptr :=
30. namesleft #1 - 'namesleft :=
31. }
32. while$
33. numnames #4 >
34.%% { "\," * %% s. Bemerkung oben
35. { "{\etalchar{+}}" *
36. #1 'et.al.char.used :=
37. }
38. 'skip$
39. if$
40. }
41. { s #1 "{l{}}" format.name$
42. duplicate$ text.length$ #2 <
43.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44.%% { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } %% vgl. Anmerkung!
45. { pop$ s #1 "{ll}" format.name$ #4 text.prefix$ } %% vgl. Anmerkung!
46.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47. 'skip$
48. if$
49. }
50. if$
51.}[/code]