PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datumsformat bei vancouver.bst



4052
15-02-2010, 23:33
Hallo zusammen

Schreibe gerade meine Dissertation. Ich benutze dafür MiKTeX 2.7 und TeXnicCenter.
Für das Literaturverzeichnis verwende ich das Paket 'natbib' und den Stil 'vancouver.bst'. Eigentlich passt auch alles perfekt, ausser bei der Ausgabe des Literaturverzeichnisses enthält die Datumsangabe das Jahr und den Monat.

Dosluoglu H, Luna P, Herrera L. Kompartimentresektion oder erweiterte lokale Excision von Weichteilsarkomen? Der Chirurg. 1993 Jul;64(7):509-516.

Ich möchte jedoch nur das Jahr ausgeben.

Dosluoglu H, Luna P, Herrera L. Kompartimentresektion oder erweiterte lokale Excision von Weichteilsarkomen? Der Chirurg. 1993;64(7):509-516.

Das müsste doch irgendwie in der *.bst-Datei zu ändern sein? Aber irgendwie steh ich auf dem Schlauch. :rolleyes:

Hier noch der Abschnitt aus vancouver.bst der mich relevant dünkt:

FUNCTION {format.journal.date}
{
month "month" bibinfo.check
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{
swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
" " * swap$
}
if$
*
remove.dots
}
if$
duplicate$ empty$
'skip$
{
before.all 'output.state :=
after.sentence 'output.state :=
}
if$
}

FUNCTION {format.date}
{
no.blank.or.punct
";"
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{ swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
swap$
" " * swap$
}
if$
*
}
if$
}


Ansonsten wäre der Stil vancouver.bst perfekt! Ich habe mich deshalb auch noch nicht wirklich über Alternativen (biblatex etc) schlau gemacht. Kennt jemand vielleicht bereits einen biblatex-Stil der meinen Anforderungen entspricht?

Vielen Dank für Eure Hilfe.

lockstep
16-02-2010, 06:55
Der biblatex-Stil authortitle sollte deine Anforderungen generell erfüllen; notwendige Detailanpassungen sind mit nicht allzu tiefschürfendem LaTeX-Wissen (Funktionsweise von \renewcommand etc.) zu erfüllen. biblatex liegt seit einigen Tagen in der Version 0.9 vor, ich empfehle dir den Umstieg ausdrücklich.

Natürlich - wenn vancouver.bst bis auf eine Kleinigkeit für dich perfekt ist, hoffe ich auch, dass dein Wunsch von einem bibtex-Programmierguru erfüllt wird. Davon gibt es aber weniger als LaTeX-Kundige. :)

lockstep

edico
16-02-2010, 07:50
Du sagst nicht, wie du es machst.
Bei mir geht es so:


@ARTICLE{dlh_1993,
title = {Kompartimentresektion oder erweiterte lokale Excision von Weichteilsarkomen?},
author = {H. Dosluoglu and P. Luna and L Herrera},
journal = {Der Chirurg},
volume = {64\,(7)},
year = {1993},
pages = {509-516},
}


mit
vancouver.bst %% Copyleft 2004 Folkert van der Beek
natbib.sty 2007/02/05 8.0 (PWD)

edico

4052
16-02-2010, 08:28
Du sagst nicht, wie du es machst.
Ähm ja, ging vergessen, sorry. ;)

vancouver.bst %% Copyleft 2004 Folkert van der Beek
natbib.sty 8.31a from 2009/11/07

Ich verwalte meine *.bib-Datei mit JabRef 2.5. Die Einträge sind jeweils relativ ausführlich, wie z.B. dieser hier:

@ARTICLE{Dosluoglu1993,
author = {H. Dosluoglu and P. Luna and L. Herrera},
title = {Kompartimentresektion oder erweiterte lokale Excision von Weichteilsarkomen?},
journal = {Der Chirurg},
year = {1993},
volume = {64},
pages = {509--516},
number = {7},
month = {Jul},
institution = {Department of Surgery, Medical Center of Delaware, Wilmington.},
keywords = {Amputation; Arm, surgery; Chemotherapy, Adjuvant; Combined Modality
Therapy; Humans; Leg, surgery; Neoplasm Staging; Radiotherapy Dosage;
Sarcoma, drug therapy/pathology/radiotherapy/surgery; Soft Tissue
Neoplasms, drug therapy/pathology/radiotherapy/surgery},
language = {ger},
medline-pst = {ppublish},
pmid = {8375200},
timestamp = {11.02.2010}
}

Ich kann natürlich den Monat einfach via JabRef in der bib löschen. Der Monat erscheint dann auch nicht in der Ausgabe des Literaturverzeichnisses, aber ich finde diese Lösung ziemlich unschön, resp. habe mir erhofft dass ich die Abfrage so ändern kann, dass dies nicht nötig wäre.

edico
16-02-2010, 09:12
Wenn du den Monat nicht haben willst, musst du ihn einfach 'LEER' lassen:
month = {},

edico

4052
16-02-2010, 09:25
Wenn du den Monat nicht haben willst, musst du ihn einfach 'LEER' lassen:
month = {},


Ja, zu dieser Lösung bin ich auch gekommen. Trotzdem finde ich diese Lösung nicht optimal. Ich würde lieber die vancouver.bst so ändern, damit das Datum richtig erscheint. Scheint aber nicht ganz einfach zu sein.

Trotzdem Danke für Deine Hilfe!

edico
16-02-2010, 11:05
Die Lösung ist sogar sehr optimal, das Ändern des style files an sich weniger.

@ARTICLE{citation_key,
required_fields [, optional_fields] }
Required fields: author, title, journal, year
Optional fields: volume, number, pages, month, note, key

Optionale Parameter sind halt 'optional' - wenn man sie nicht haben will, lässt man sie weg.

Das Datum wird dann so gesetzt, wie du es in post#1 gefordert hast. Wo ist das(dein) Problem?

edico

4052
16-02-2010, 15:10
Die Lösung ist sogar sehr optimal, das Ändern des style files an sich weniger.
...
Das Datum wird dann so gesetzt, wie du es in post#1 gefordert hast. Wo ist das(dein) Problem?

Ich habe halt insgeheim gehofft, dass ich nicht meine 200 Einträge in der Bibliothek verändern muss, sondern eine kleine Änderung der *.bst-Datei reichen würde.
Aber du hast mich überzeugt, ist wohl der einfachste Weg.

tral
16-02-2010, 19:10
Hallo,

also ich finde die Lösung mit dem Löschend der month-Felder auch sehr unschön. Zum einen wird so Information weggeworfen, die man eventuell noch einmal braucht, z.B. wenn man sich entscheidet, den Monat doch wieder anzeigen zu wollen. Zum anderen finde ich es generell ziemlich schlecht, gewolltes Aussehen des Literaturverzeichnisses durch Manipulieren der Datenbank zu erreichen. Ich plädiere hier für eine strikte Trennung zwischen Daten (bib-Datei) und Programm bzw. Formatierung (bst- und syt-Dateien)!!!

Christian.

PS. Ich schau mir gleich mal vancouver.bst an. Die gewünschte Änderung kommt mir nicht all zu schwierig vor...

Legion
16-02-2010, 19:28
das dachte ich auch ^^ aber ich kann meine Referenz nicht erzeugen mit dem Stil.

aber ein Ansatzpunkt wäre für mich das rot markierte mal auszukommentieren (ohne das jetzt getestet zu haben):

FUNCTION {format.journal.date}
{
month "month" bibinfo.check
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{
swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
" " * swap$
}
if$
*
remove.dots
}
if$
duplicate$ empty$
'skip$
{
before.all 'output.state :=
after.sentence 'output.state :=
}
if$
}

tral
16-02-2010, 19:35
Hallo,

ändere einfach in vancouver.bst in der FUNCTION {article} folgende Zeile:



format.journal.date "year" output.check


in:



format.date "year" output.check


Erklärung: Für Journal wird eine spezielle Funktion zur Formatierung des Datums benutzt (format.journal.date). Diese produziert "Jahr_Monat". Durch die Änderung wird eine andere Funktion format.date ausgewählt, die nur "Jahr" ausgibt...

Christian.

voss
16-02-2010, 19:37
FUNCTION {format.journal.date}
{
month "month" bibinfo.check
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{
swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
" " * swap$
}
if$
*
remove.dots
}
if$
duplicate$ empty$
'skip$
{
before.all 'output.state :=
after.sentence 'output.state :=
}
if$
}

FUNCTION {format.date}
{
no.blank.or.punct
";"
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{ swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
swap$
" " * swap$
}
if$
*
}
if$
}


Ansonsten wäre der Stil vancouver.bst perfekt! Ich habe mich deshalb auch noch nicht wirklich über Alternativen (biblatex etc) schlau gemacht. Kennt jemand vielleicht bereits einen biblatex-Stil der meinen Anforderungen entspricht?


Kopiere den Stil nach vancouver2.bst und ersetze obige Funktion durch

FUNCTION {format.journal.date}{
year "year" bibinfo.check
}


Herbert

4052
16-02-2010, 22:42
Kopiere den Stil nach vancouver2.bst und ersetze obige Funktion durch

FUNCTION {format.journal.date}{
year "year" bibinfo.check
}


Herbert

S-E-N-S-A-T-I-O-N-E-L-L!

Funktioniert auf Anhieb! Tausend Dank!

Herzlichen Dank natürlich auch an alle anderen, die sich die Mühe gemacht haben einem Newbie wie mir auf die Sprünge zu helfen!