PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anpassung von [ABC01] in der alphadin.bsp



sailor79
24-03-2011, 00:03
Hallo zusammen,
als blutiger Anfänger verzweifel ich an der Anpassung der alphadin.bsp an die hochschulinteren Richtlinienen für meine Diplomarbeit.
In der alphadin.bsp wird immer für das Kürzel entweder die ersten drei Buchstaben, oder bei mehreren Autoren die Initialen benutzt, daraus kann dann auch schonmal [RS10] werden.

Ich brauche aber folgendes Format:
a) Es sollen immer nur die ersten 3 Buchstaben vom 1. Autor genommen werden.
b) Ein Bindestrich eingefügt werden, [ABC-99]
c) et.al soll schon ab drei Autoren kommen

Weiß jemand, wie folgender Codeausschnitt angepasst werden muss:
Code:

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$ #3 text.prefix$ } %% vgl. Anmerkung!
'skip$
if$
}
if$
}


Für Eure Unterstützung wäre ich sehr dankbar, nachdem ich schon 2 Tage durch das Problem ergebnislos verloren habe...

Gruß
sailor

Sepp99
24-03-2011, 14:02
multipost http://www.golatex.de/anpassung-von-abc01-in-der-alphadin-bsp-t6478.html

Sepp.-

sailor79
24-03-2011, 14:15
multipost http://www.golatex.de/anpassung-von-abc01-in-der-alphadin-bsp-t6478.html

Sepp.-

Ist gelöscht, sorry!
Konnte bis gestern Nacht nicht Posten in diesem Forum, da man wohl freigeschaltet werden muss. Ist keine Entschuldigung, aber einer Erklärung.

rstuby
24-03-2011, 14:27
In diesem Forum sind crossposts noch nicht mal grundsätzlich verboten, man sollte aber immer den Link angeben.
Leider kann ich dir zu deiner eigentlichen Frage nicht helfen.
Nur meine Erfahrung mit der Lektüre dieses Forums sagt mir, dass es mit Biblatex vielleicht einfacher wäre :-)

sailor79
24-03-2011, 14:36
Vieleicht findet sich ja noch eine fachkundige Person, welche die Styledatei anzupassen vermag ;-)
Ich wäre ja schon froh, wenn der Bindestrich reinkommt.

sailor79
22-04-2011, 08:00
gelöste Teile in alphadin.bst:
a) in Zeile 1866 aus
numnames #1 > folgendes machen:

numnames #100 >c)in Zeile 149 bis 151 aus

FUNCTION { ua.etal } { " u.\,a." } %% evtl. auch in eckigen Klammern " [u.\,a.]"

%%FUNCTION { ua.etal } { " et~al." }folgendes machen:

%%FUNCTION { ua.etal } { " u.\,a." } %% evtl. auch in eckigen Klammern " [u.\,a.]"

FUNCTION { ua.etal } { " et~al." }sowie das "+"Zeichen in Kürzel [ABC+99] entfernen, indem man die Zeile 1877 auskommentiert:

%% { "{\etalchar{+}}" * %% ein plus-Zeichen (+) fuer "others"!!!!Dringende noch offene Fragen:!!!
b) Bindestrich einfügen, also [Abc-99], gelöst siehe Post 14.5.11

d) Abc in großen Lettern, also [ABC-99], gelöst siehe Post 14.5.11


e) Author-Nachnamen nicht in Kapitälchen schreiben
Teillösung:
das Wort "capitalize" in den Zeilen 511,383,482,484 entfernen, hat jedoch die nicht gewollte Konsequenz, dass bei mehreren Authoren aus et al. > others wird. Komme da leider nicht weiter

Kann mir jemand in Teilproblemen weiterhelfen?



____MINIMALBEISPIEL___________
TEX:

\documentclass[a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}

\begin{document}

Testtext\cite{Haeberlein2005}
Text.\cite{Limper1989}

\bibliographystyle{alphadin_mw}
\bibliography{beispiel}

\end{document}Beispiel.bib:

@ELECTRONIC{Haeberlein2005,
author = {Prof. Dr. M. Haeberlein},
month = {Juni},
year = {2005},
title = {HTML-Vorlesungsskript

Kautschuktechnologie},
howpublished = {Frankfurt: Internet: 2011-04-18},
organization = {FH Frankfurt},
url = {(http://www.mhaeberl.de/KAT/22Walzwerke.htm)},
timestamp = {2011.04.18}
}

@BOOK{Limper1989,
title = {Technologie der Kautschukverarbeitung},
publisher = {Carl Hanser Verlag},
year = {1989},
author = {Andreas Limper and Peter Barth and others},
address = {München},
timestamp = {2011.04.06}
}modifizierte alphadin.bst (siehe Anhang alphadin_mw.bst.txt, bitte umbenennen in aplphadin_mw.bst)

sailor79
22-04-2011, 10:56
^^Minimalbeispiel hinzugefügt

sailor79
14-05-2011, 11:14
Herzlichen Dank an Marcel für diese Lösungen!
Lösung zu a) und b)

Aber zu deinem Problem. Ändere einfach die Funktion format.lab.names (Zeile 1863 der alphadin.bst) folgendermaßen ab:
Code:


FUNCTION {format.lab.names}
{ 's :=
s num.names$ 'numnames :=
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% numnames #1 >
numnames #0 <
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{ 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$ #3 text.prefix$ } %% vgl. Anmerkung!
{ pop$ s #1 "{ll}" format.name$ #3 text.prefix$ "-" * } %% vgl. Anmerkung!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'skip$
if$
}
if$
}

Die erste Änderung sorgt dafür, dass Quellen mit mehreren Autoren wie solche mit einem Autor behandelt werden. Änderung 2 fügt den Bindestrich zwischen Autorenkürzel und Jahreszahl ein.

Viele Grüße,
Marcel


Lösung für Großbuchstaben, Punkt d)

Großbuchstaben für den Literaturverzeichniseintrag erhältst du durch die folgenden Änderungen an der alphadin.bst (zusätzlich zu den bereits vorgenommenen):
Code:


FUNCTION {uppercase}
{ duplicate$ empty$
{ pop$ "" }
{ "\MakeUppercase{" swap$ * "}" * }
if$
}

FUNCTION {format.lab.names}
{ 's :=
s num.names$ 'numnames :=
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% numnames #1 >
numnames #0 <
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{ 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$ #3 text.prefix$ } %% vgl. Anmerkung!
{ pop$ s #1 "{ll}" format.name$ #3 text.prefix$ uppercase "-" * } %% vgl. Anmerkung!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'skip$
if$
}
if$
}