Seite 1 von 1

jedem entry sein bibstyle

Verfasst: Di 13. Mär 2012, 17:38
von eiko
Hallo Leute,

nachdem ich mich den ganz Tag nach einer Lösung bemüht habe, steh ich jetzt aufm Schlauch. Mein Problem ist eigentlich folgendes. Die Uni wünscht sich unterschiedlich bibstyles für unterschiedlich entries, d.h. ein Artikel soll so im LitVZ auftauchen:

Heinz, P. (2012): Es macht mich fertig. J Physiol, 48(2), 56-102

ein Buch aber:

Heinz, P.: Ich schreib jetzt ein Buch, 2. Auflage, Mein Verlag, Stadt 2012

und ein Dissertation

Heinz, P.: Ich werd Doktor, med. Dissertation, Uni Stadt 2012

Ist es überhaupt möglich unterschiedlichen Entry einer bib unterschiedliche Bibstyle zuzuweisen? Hab es mit Bibtex + natbib probiert oder auch mit Biblatex. Beides führt mich nicht weiter.

Danke für eure Hilfe
E

weiter gekommen

Verfasst: Di 13. Mär 2012, 23:28
von eiko
Hab mit Hilfe von makebst mir ne Vorlage gezaubert, die wo ich dann die entry formatierungen mühevoll umgeschrieben habe, zumindest fast. Mit fehlt noch etwas Arbeitserleichterung. Wie bekomme ich es hin, dass nur bei einem Entry (Article) Klammern um die Jahreszahl gesetzt werden??
FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  crossref missing$
    {
      journal
      remove.dots
      "journal" bibinfo.check
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.issn output
  format.doi output
  format.url output
  format.note output
  format.eprint output
  fin.entry
}
Wenn ich format.date ändere wie unten dann habe ich überall Klammern um die Jahreszahl, aber ich möchte nur im Bereich Article klammern
FUNCTION {format.date}
{ year "year" bibinfo.check duplicate$ empty$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  " (" swap$ * ")" *
}
Jemand ne Idee?
:D

Re: jedem entry sein bibstyle

Verfasst: Mi 14. Mär 2012, 03:49
von fitzz
eiko hat geschrieben: Artikel soll so im LitVZ auftauchen:

Heinz, P. (2012): Es macht mich fertig. J Physiol, 48(2), 56-102

ein Buch aber:

Heinz, P.: Ich schreib jetzt ein Buch, 2. Auflage, Mein Verlag, Stadt 2012

und ein Dissertation

Heinz, P.: Ich werd Doktor, med. Dissertation, Uni Stadt 2012

Ist es überhaupt möglich unterschiedlichen Entry einer bib unterschiedliche Bibstyle zuzuweisen? Hab es mit Bibtex + natbib probiert oder auch mit Biblatex. Beides führt mich nicht weiter.

Danke für eure Hilfe
das sieht mir nach DIN 1505-2 aus dafür gibt es schon entsprechende Styles für Bib-Tex, nennen sich bibnat oder natbib such mal danach.

Langsam zweifel ich an der Intelligenz der Profs., warum können Sie nicht sowas sagen? (Grüße von K.-T. z. Guttenberg, abkupfern können Sie alle.)

Grüße
Gerald

leider kein DIN Zitierweise

Verfasst: Mi 14. Mär 2012, 14:26
von eiko
Leider sind die Vorgaben der Med. Fakultät in Göttingen nicht nach DIN. Wozu auch? Das würde es ja allen zu einfach machen.
Ich habe jetzt versucht die bst datei anzupassen, komm nicht weiter. Kennt sich jemand aus mit programmieren in der bst datei?
Also ich verwende natbib plus den von mir erzeugten style.

Vorgehen soweit. Anpassen des stil: überalle ohne klammern.
FUNCTION {format.date}
{ year "year" bibinfo.check duplicate$ empty$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
}
Soweit so gut, alle anderen Entry hab ich genau nach meinen Vorgaben, außerhalt das ich keine Klammer um die Jahreszahl habe wg der allgemeinen Vorgabe oben
FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  crossref missing$
    {
      journal
      remove.dots
      "journal" bibinfo.check
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.issn output
  format.doi output
  format.url output
  format.note output
  format.eprint output
  fin.entry
}

Nun dachte ich: Gut schreibe eine neue FUNCTION{format.date2} mit Klammern zusätzlich zur alten format.date und binde diese in die Formatierung von ARTICLE ein:
neue Funktion
FUNCTION {format.date2}
{ year "year" bibinfo.check duplicate$ empty$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  " (" swap$ * ")" *
}
einbinden der neuen bei article; zum Vergleich alte vorschrift bei booklet.
FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  [b]format.date2 "year" output.check [/b]
  date.block
  format.title "title" output.check
  crossref missing$
    {
      journal
      remove.dots
      "journal" bibinfo.check
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.issn output
  format.doi output
  format.url output
  format.note output
  format.eprint output
  fin.entry
}
FUNCTION {booklet}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  howpublished "howpublished" bibinfo.check output
  address "address" bibinfo.check output
  format.isbn output
  format.doi output
  format.url output
  format.note output
  format.eprint output
  fin.entry
}
Jede Format-Version für sich funktioniert auch, allerdings nicht beide auf einen Schlag. Dann kann ich in Texmaker nicht mehr Bibtexen.

Hat jemand eine Idee welchen Denkfehler ich begehe oder wie ich das gewünschte Ergebnis erzielen kann?? Ich wäre euch sehr dankbar.

Bestens
Eiko[/b]

gelöst.

Verfasst: Mi 14. Mär 2012, 15:30
von eiko
Durch studieren anderer einträge in der Datei bin ich auf die Lösung gekommen. Hab generell alles klammern lassen
FUNCTION {format.date2}
{ year "year" bibinfo.check duplicate$ empty$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  " (" swap$ * ")" *
} 
was zur richtigen Ausgabe bei Artikel führt (hier waren ja klammer gewünscht), dafür habe ich bei den anderen Einträgen, die Klammern entfernt durch die Änderung des Quellcodes von
  format.date "year" output.check 
zu
year "year" output.check
Eigentlich nicht so schwer, wenn man weiß wie der richtige Befehl ist. Damn, das hat mich 1,5Tage gekostet.
peace
Eiko

close