PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Paket Babelbib - Sortierung und und Buchklasse



KinA.
12-03-2012, 14:39
Hi,

es geht darum für meinen Professor eine Literaturliste von allen seinen Werken zu erstellen. Ich benutze dazu JabRef in Verbindung mit Babelbib, da er sowohl auf Englisch als auch auf Deutsch publiziert hat.

Nun stehe ich vor 2 Problemen (das noch folgende Minimalbeispiel ist so konstruiert, dass genau diese 2 Probleme auftreten)

1.) Die Literaturliste wird für meine Zwecke falsch sortiert. Zuerst kommen aller Publikationen, die er alleine geschrieben hat und dann kommen alle, wo er Mitautor ist. Es wird also nach Autor - Jahr sortiert. Gewollt ist eine Sortierung nur nach dem Jahr, sodass alle Publikationen in chronologischer Reihenfolge auftauchen, egal wieviele Autoren beteiligt waren. Hier sollte also eigentlich book2 VOR book kommen.

2.)
Beim Compelieren des Minimalbeispiels kommt es zu folgender "warnings".
Warning-- can't use both author and editor fields in book
Warning-- can't use both author and editor fields in book
Ist das eine Eigenart von Babelbib? Google sagt, das dies mit den Styles zusammenhängt, nur leider bin ich an Babelbib gebunden. Kann man das irgendwie beheben oder mit einem Zusatzpaket beheben? Warum ist das überhaupt so? Wenn ich gute Arguemente hätte (habe ich nicht), könnte ich vielleicht meinen Prof davon überzeugen nur eines davon anzugeben.
(Bemerkung: Das Problem besteht auch bei @INBOOK, bei @INCOLLECTION jedoch nicht. Leider gibts wirklich Bücher in der Liste :( )

Hier ein Minimalbeispiel (mit allen verfügbaren Styles in Kommentarform - sind nur 4 und hat sich schon dequalifiziert: Link zur Doku vgl. Chapter 4 (http://www.tug.org/texlive/Contents/live/texmf-dist/doc/latex/babelbib/babelbib.pdf))

\documentclass[a4paper,11pt]{article}

\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{babelbib}
\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@Book{book,
author = {Autor},
editor= {Editor and Editor2},
title = {Titel},
publisher = {Verlag},
language ={ngerman},
year = {2222},
}
@Book{book2,
author = {Autor and Autor2},
editor= {Editor and Editor2},
title = {Titel},
publisher = {Verlag},
language ={ngerman},
year = {1000},
}
\end{filecontents}

\begin{document}
\cite{book} \cite{book2}

\bibliographystyle{babplain}
%\bibliographystyle{babunsrt}
%\bibliographystyle{bababbrv}

\bibliography{literatur}
\end{document}

Ich würde mich wirklich freuen, wenn jemand Rat weiß.
Wenn ich mich irgendwo unklar ausgedrückt haben sollte, fragt bitte nach.

Vielen dank schonmal,
KinA.

Festus
12-03-2012, 15:07
Zu 1:

Die Sortierreihenfolge ist in babelbib, bzw. im benutzten Zitierstil festgelegt, und müsste manuell geändert werden, was schwierig ist. BibLaTeX unterstützt auch verschiedene Sprachen, und hier wäre das über die Option "sorting=ynt" gar kein Problem. Vielleicht solltest du den Umstieg erwägen.

Zu 2:

Die meisten Stile interessiert es nicht, ob Bücher einen Editor haben---der würde nur benutzt werden wenn das Autoren-Feld leer wäre. Bei Aufsatzbänden ist es üblich den Editor anzugeben, bei Büchern meist nicht.

Wenn es dir aber nur darum geht, dass manche Titel deutsch und manche english sind, und die richtigen Trennschemata benutzt werden sollen, brauchts du aber eigentlich auch kein babelbib. Da reicht dann \usepackage[english, german]{babel} in der Präambel, und dann \foreignlanguage{english}{Title of article or alike} im Titel-Feld in JabRef.

KinA.
12-03-2012, 15:25
Danke für die Antwort - werde dann wohl auch umsteigen, wenn das so einfach funktioniert.
Dann kann er auch seinen geliebten chicago-style bekommen.

Kann ich auch als fremde Sprache \foreignlanguage{german}{titel} benutzen?
85% der Publikationen sind auf Englisch.

Edit: Ich lese grad in der Docu, dass biblatex auch ein Language Feld unterstützt - oder hast du damit schlechte Erfahrungen gemacht?

Festus
12-03-2012, 16:14
\foreignlanguage an sich musst du immer für die Sprachen benutzen, die in babel nicht als Hauptsprache (die letzte in den Optionen) angegeben wird. Wenn also die meisten Einträge englisch sind würde ich \usepackage[german, english]{babel} benutzen, und dann eben deutsche Titel als foreignlanguage definieren, da hast du schon richtig gedacht.

Ja, in BibLaTeX gibt es das language-Feld und es gibt absolut keinen Grund das nicht zu benutzen. Mein Vorschlag war eher für den Fall gedacht, dass du bei BibTeX bleibst.

Übrigens unterstützt BibTeX aber auch den Chicago-Style (mit Zusatzpaket). Und babelbib ist wie gesagt nur dazu da, generische Begriffe wie "und/and", "Hrsg./Ed.", "S./pp" und so weiter in der jeweiligen Hauptsprache zu setzen. Ansonsten kannst du mit jedem Bib-Style Lit.-Einträge in allen Sprachen nutzen, nur steht da dann z.B. "Müller and Meier, p. 36" statt "Müller und Meier, S. 36", oder so. Wobei ich wenige Uni-Mitarbeiter kenne, die ihre Publikationslisten nicht eh auf englisch setzen...

KinA.
12-03-2012, 16:37
Gibt es denn eine Möglichkeit die generische Begriffe mit biblatex mitzunehmen?
Die Doku sagt nichts.

Wie heißt das Zusatzpaket für Chicago?

Festus
12-03-2012, 17:25
Die Pakete für BibTeX heißen chicago und chicago-annote (eins von beiden reicht, das zweite würde den Inhalt des Annote Feldes mit ausgeben). Damit wärst du aber wieder bei den englischen Begriffen, and, pp., Ed. usw.

Wenn du wirklich deutsche Wörter dafür brauchst, weil dein Prof. z.B. tatsächlich eine deutsche Literaturliste haben will, gibt es nur babelbib, custom-bib, BibLaTeX oder die Din/natdin Stiele als Optionen:

In custom-bib gibt es mehrsprachige Unterstützung, u.a. auch für dt., bei der Generierung eines eigenen Zitierstils. Da kannst du dann als Sort-Order auch Jahr-Autor vorgeben. Du musst custom-bib installiert haben. Dann rufst du auf der Kommandozeile im entsprechenden Ordner "latex makebst" auf und wählst im zweiten Schritt als language definition file german.mbs. Danach wirst du durch einen Fragenkatalog geführt, an dessen Ende ein bst-file steht, das deinen Wünschen entspricht und als \bibliographystyle einfach eingebunden werden kann.

Unter BibLaTeX stehen dir mit den Befehlen \multinamedelim und \finalnamedelim Möglichkeiten zur Verfügung direkt die Trennzeichen zw. den Autoren zu kontrollieren. Ähnliche Befehle gibt es für die anderen Begriffe. Durch die Sprachunterstützung musst du da aber nur eingreifen, wenn dir die Standard-Werte nicht gefallen.

Alle DIN-kompatiblen Stilesind sowieso deutsch. Hier könntest du die jeweiligen unsrt-Stile benutzen. Dann ist es nicht mehr so komfortabel, weil du nicht mehr alle Werke über \nocite{*} einbinden kannst. Du kannst dann aber die Werke über \nocite{Key}-Befehle in der Reihenfolge ausgeben lassen, in der du/der Prof. sie gerne hätten---kann natürlich Arbeit machen, wenn's viele Einträge sind!

KinA.
12-03-2012, 19:39
Danke für deine Hilfe, leider komme ich aber nach wie vor nicht ans Ziel :(. Optimal wäre wirklich in BabelBib irgendwie die
Sortierung ändern zu können. In der Doku (http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/babelbib/babelbib.pdf) habe ich auf Seite 133 ganz viel schönen Code entdeckt, der irgendwas mit der Sortierung zu tuen hat. Leider weiß ich nicht, was ich damit machen soll und was das überhaupt ist.

Gibt es irgendwo ein Tutorial was den Umgang mit diesem Code erklärt?

Festus
13-03-2012, 09:56
Also ich kann dir da jedenfalls auch nicht weiterhelfen, ich ändere selbst ungern solche Codes, und dann nur in Kleinigkeiten.

Was für die DIN Stile gilt sollte natürlich auch in babelbib gehen. Nimm dir einen der unsrt Stile (hier wohl babunsrt) als bibliographystyle, und binde alle Literatureinträge in der Reihenfolge, wie sie erscheinen sollen, als \nocite{Key} ein. Das macht Arbeit, ich weiß, aber wenn du bei babelbib bleiben willst wäre das die einzige Möglichkeit bei der ich dir weiterhelfen kann.