Seite 1 von 1

Anpassung von alpha.bst | Key mit 4 Ziffern

Verfasst: Di 23. Apr 2013, 17:49
von alexk
Hallo zusammen!

ich stelle gerade meine meine Bachelorthesis fertig und muss den BibTex-Stil meines Institutes erfüllen. Der ist der alpha.bst ziemlich ähnlich. Daher habe ich mich entschlossen den alpha.bst-Stil anzupassen. (Ich weiß, dass dies nicht die schönste Lösung ist! :wink:)

Bei den Keys komme ich leider nicht weiter. Es sollen durchgehend 4 Ziffern verwendet werden und bei mehr als 4 Autoren nur die Anfangsbuchstaben der ersten 4 Autoren.

Durch Trial&Error habe ich rausgefunden, dass die FUNCTION {format.lab.names} angepasst werden muss. Soweit habe ich es hinbekommen:

Bild

Bei 2 oder 3 Autoren ist es noch falsch. Es sollte so sein wie auf dem roten Pfeil geschrieben. Ich habe keine Idee wie ich das hinkriegen soll! Wäre echt super, wenn mir da jemand helfen könnte!

Bisherige Anpassungen in der FUNCTION {format.lab.names}:
FUNCTION {format.lab.names}
{ 's :=
  s num.names$ 'numnames :=
  numnames #1 >
    { numnames #4 >
	{ #4 'namesleft := } %vorher: { #3 'namesleft := } 
	{ numnames 'namesleft := }
      if$
      #1 'nameptr :=
      ""
	{ namesleft #0 > }
	{ nameptr numnames =
	    { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
		{ "{\etalchar{+}}" *
		  #1 'et.al.char.used :=
		}
		{ s nameptr "{v{}}{l{}}" format.name$ * }
	      if$
	    }
	    { s nameptr "{v{}}{l{}}" format.name$ * }
	  if$
	  nameptr #1 + 'nameptr :=
	  namesleft #1 - 'namesleft :=
	}
      while$
      numnames #4 >
	{ "" * % vorher: { "{\etalchar{+}}" *
	  #1 'et.al.char.used :=
	}
	'skip$
      if$
    }
    { s #1 "{v{}}{l{}}" format.name$
      duplicate$ text.length$ #2 <
	{ pop$ s #1 "{ll}" format.name$ #4 text.prefix$ } % vorher: { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
	'skip$
      if$
    }
  if$
}
Danke!

Gruß,
Alex