Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BibTeX: DIN-Norm-Nummer als Label in Alphadin?

791 views
Skip to first unread message

Andrea Blomenhofer

unread,
Nov 4, 2008, 4:06:48 PM11/4/08
to
(Frage wurde per email gestellt und beantwortet - vielleicht hilft es
ja noch anderen BibTeX-Benutzern)

Frage:
Ich suche eine Möglichkeit, trotz Alphadin die
Erstellung des "Zitiercodes" für einzelne Literaturtypen
(Entry Types) zu ändern. Konkret möchte ich Normen und
Patente mit ihrer Nummer zitieren.

Ein Beispiel:
@misc{DIN66252,
Key = {DIN},
Month = {April},
Note = {Deutsches Institut f{\"u}r Normung, Beuth-Vertr.-Nr.:
1234},
Number = {DIN 66252-3},
Title = {Farbmessung und Farbmanagement},
Type = {Norm},
Year = {1996}}

Auf diese Norm wird im Text bislang so verwiesen: [DIN96]
Kann man dies abändern in [DIN66252]?

----


Mögliche Lösung:

Dafür müssen die Label für Normen/Patente anders erzeugt werden als
für alle anderen Typen.

Eine mögliche Lösung besteht darin, neue Typen für "norm" und "patent"
anzulegen, die prinzipiell so formatiert werden wie "misc" (also wie
bisher), nur wird als Label der komplette key verwendet, kein Kürzel
+Jahr.

Dazu sind folgende drei Schritte nötig:
1) die Zeilen
FUNCTION {norm} {misc}
FUNCTION {patent} {misc}

nach FUNCTION{misc} einfügen

2)
FUNCTION {norm.label} %%fuer Normen und Patente
{ key empty$
{ 'author.key.label}
{ key #20 text.prefix$ }
if$
}

vor die Funktion calc.label setzen

3) Funktion calc.label durch folgende neue Version ersetzen:
FUNCTION {calc.label}
{ type$ "book" =
type$ "booklet" =
type$ "inbook" =
or or
'author.editor.key.label
{ type$ "proceedings" =
'editor.key.organization.label
{ type$ "manual" =
'author.key.organization.label
{
type$ "norm" =
'norm.label
'author.key.label
if$ }
if$
}
if$
}
if$
type$ "patent" =
type$ "norm" =
or %%keine Jahreszahl anhaengen
{ duplicate$
"" *
'label :=
"" *
}
{ duplicate$
year field.or.null purify$ #-1 #2 substring$
*
'label :=
year field.or.null purify$ #-1 #4 substring$
*
}
if$
sortify 'sort.label :=
}

Diese Lösung sollte auch für die anderen DIN-Stile aus dem Paket
din1505 funktionieren (allerdings nicht getestet).

Nachteile dieser Lösung:
Im bib-File muss der Typ geändert werden (aus @misc wird @norm oder
@patent);
und im key-Feld muss man das Label selbst eintragen (das wird von
Funktion norm.label nur kopiert). Es ist zu erwarten, dass die bib-
Datei mit anderen Stilen Warnmeldungen produziert, die die
Eintragstypen "norm" und "patent" nicht kennen (die Einträge werden
dann als misc-Typen behandelt).

Beispiel für Anpassung im bib-File:

@norm{DIN66252,
Key = {DIN66252},
Month = {April},
Note = {Deutsches Institut f{\"u}r Normung, Beuth-Vertr.-Nr.:
1234},
Number = {DIN 66252-3},
Title = {Farbmessung und Farbmanagement},
Type = {Norm},
Year = {1996}}


Nach dem Vorbild von FUNCTION{misc} in alphadin.bst oder natdin.bst
könnte man auch noch eine elegantere Lösung stricken, die nur das type-
Feld abfragt und keinen eigenen Eintragstypen verwendet.


henri...@googlemail.com

unread,
Feb 25, 2016, 3:29:56 AM2/25/16
to
Hallo Andrea,

Vielen Dank für deine Hilfe!

Grüße Henrik

tim.krueg...@gmail.com

unread,
Aug 11, 2017, 4:43:58 AM8/11/17
to
Wo füge ich denn oben aufgeführten Code ein?
0 new messages