Anpassung von alpha.bst | Key mit 4 Ziffern

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Anpassung von alpha.bst | Key mit 4 Ziffern

Anpassung von alpha.bst | Key mit 4 Ziffern

von alexk » Di 23. Apr 2013, 17:49

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

Nach oben