PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Literaturverzeichnis anpassen der alphadin.bst



Gauss79
04-08-2010, 09:57
Hallo Forum,

ich habe ein kleines Problem mit der Alphadin.bst. Ich benutze Word und das Plugin Bibtex4Word, soweit ist auch alles gut und nach meinen Vorstellungen, nur wird beim Generieren der Literaturliste das Zeichen für mehrere Autoren (+) leider hochgestellt.

Also im Fließtext ist alle ok. So soll es aussehen und so sieht es auch aus. [BTP+08]

In dem Literaturverzeichnis soll es so [BTP+08] aussehen, es sieht aber leider so [BTP(^+)08] also ein hochgestelltes + Zeichen.

Leider werde ich aus dem Quelltext nicht so ganz schlau.

Also in dem Bereich wird das Zeichen für et al definiert:



FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}

EXECUTE {initialize.et.al.char.used}

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$
}


und ich glaube in dem Bereich wird die Literaturliste erstellt, so ganz sicher bin ich mir aber nicht.




FUNCTION {begin.bib}
{ et.al.char.used
{ "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
'skip$
if$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
newline$
"% this bibliography is generated by alphadin.bst [8.2] from 2005-12-21"
write$ newline$
newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\expandafter\ifx\csname urlstyle\endcsname\relax"
write$ newline$
" \providecommand{\doi}[1]{doi: #1}\else"
write$ newline$
" \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
}
Wer kann mir sagen, wie ich in der Literaturliste das + Zeichen als etalchar normal bekomme? Ich habe keine Lust meine Literaturliste später manuell zu editieren.

Für eure Hilfe bin ich jetzt schon dankbar. Unsere LateX Experten wissen leider nicht weiter.

Vielen Dank und Grüße,
Dustin

Legion
04-08-2010, 10:51
FUNCTION {begin.bib}
{ et.al.char.used
{ "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
'skip$
if$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
newline$
"% this bibliography is generated by alphadin.bst [8.2] from 2005-12-21"
write$ newline$
newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\expandafter\ifx\csname urlstyle\endcsname\relax"
write$ newline$
" \providecommand{\doi}[1]{doi: #1}\else"
write$ newline$
" \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
}


Vielleicht reicht es schon, die markierte Zeile zu ändern, indem du entweder das Hochzeichen "^" entfernst oder die ganze Zeile auskommentierst. Das ist jetzt schnell aus der Hüfte geschossen und ungetestet (viel zu tun heute im Labor ;) )

voss
04-08-2010, 11:03
In dem Literaturverzeichnis soll es so [BTP+08] aussehen, es sieht aber leider so [BTP(^+)08] also ein hochgestelltes + Zeichen.


FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}

EXECUTE {initialize.et.al.char.used}

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"!




{ "+" * %% ein plus-Zeichen (+) fuer "others"!

also {\etalchar{+}} ersetzen durch +

Herbert

Gauss79
04-08-2010, 11:03
Danke für die schnelle Hilfe, aber das entfernen des ^ Zeichens habe ich bereits ausprobiert, es hat keinen Effekt.

Das Ausklammern ist gerade ebenfalls ins Leere verlaufe, ebenso das löschen dieser Zeile.

Gauss79
04-08-2010, 11:10
Vielen Dank Herbert - Du hast den richtigen Hinweis gegeben, es war dann allerdings in dem Codefragment:



numnames #4 >
{ "\," * %% s. Bemerkung oben
{ "+" *
#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$
}




Vielen herzlichen Dank!