PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : biblatex: annotation



KlausImMai
17-07-2009, 16:39
Hallo,

mit


usepackage[style=reading,abstract=false,hyperref]{biblatex}

ist es möglich, Annotationen


@Book{averroes/bland,
keywords = {primary},
hyphenation = {american},
author = {Averroes},
editor = {Bland, Kalman P.},
translator = {Bland, Kalman P.},
indextitle = {Epistle on the Possibility of Conjunction, The},
title = {The Epistle on the Possibility of Conjunction with the Active Intellect by Ibn
Rushd with the Commentary of Moses Narboni},
shorttitle = {Possibility of Conjunction},
series = {Moreshet: Studies in Jewish History, Literature and Thought},
number = {7},
publisher = {Jewish Theological Seminary of America},
location = {New York},
year = {1982},
annotation = {A \texttt{book} entry with a \texttt{series} and a \texttt{number}. Note the
concatenation of the \texttt{editor} and \texttt{translator} fields as well as
the \texttt{indextitle} field}
}

zu verwenden.

Ich würde gerne Annotationen mit einem anderen Stil verwenden. Zum Beispiel mit "numeric", der am ehesten "plain" von bibtex entspricht.

Wie kann ich annotation auch in numeric anzeigen lassen?

Ich habe ein wenig in numeric.bbx herum gepfuscht, aber es wird nichts angezeigt:


% $Id: numeric.bbx,v 0.8e 2009/07/04 15:02:31 lehman beta $

\ProvidesFile{numeric.bbx}
[\abx@bbxid $Id: numeric.bbx,v 0.8e 2009/07/04 15:02:31 lehman beta $]

\RequireBibliographyStyle{standard}

\providebool{bbx:subentry}
\newbool{bbx:annotation}

\newbibmacro*{entrytail}{%
\newunit\newblock
\begingroup
\def\newblockpunct{\item}%
\ifbool{bbx:annotation}
{\usebibmacro{annotation}%
\newunit\newblock}
{}%
\endgroup}

\DeclareBibliographyOption{subentry}[true]{%
\setbool{bbx:subentry}{#1}}

\DeclareBibliographyOption{annotation}[true]{%
\csuse{bool#1}{bbx:annotation}}
\DeclareNameAlias{author}{default}
\DeclareNameAlias{editor}{default}

\DeclareFieldFormat{annotation}{\bibstring[\textbf]{annotation}\textbf{:} #1}
\DeclareFieldFormat{bibentrysetcount}{\mkbibparens {\mknumalph{#1}}}
\DeclareFieldFormat{labelnumberwidth}{\mkbibbracke ts{#1}}
\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets {#1}}
\renewcommand*{\thebibitem}{\item}
\renewcommand*{\thelositem}{\item}

\ExecuteBibliographyOptions{labelnumber,annotation }
\renewenvironment*{thebibliography}
{\list
{\printfield[labelnumberwidth]{labelnumber}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}

\renewenvironment*{theshorthands}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{\hss##1}}}
{\endlist}


\DeclareBibliographyDriver{set}{%
\ifbool{bbx:subentry}
{\entryset{%
\printfield[bibentrysetcount]{entrysetcount}%
\setunit*{\addnbspace}}{}}
{\entryset{}{}}
\finentry}

\endinput


Hat jemand eine Idee, wie ich das Problem lösen kann?

Vielleicht gibt es schon einen ähnlichen Stil, den ich irgendwo downloaden kann.

Oder muss ich numeric.bbx ändern? Wenn ja, wie? Und reicht das oder gibt es da noch ein anderes File, das man ändern muss?

Viele Grüße,

Klaus

mechanicus
17-07-2009, 21:08
Hallo,

ich denke eher du musst dir beim Stil numeric aus der Datei standard.bbx die DeclareBibliographyDriver schnappen und die annotations hinzufügen. Bisher sind diese nämlich nicht aufgeführt, wie du am Beispiel von book siehst:

\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+year}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\printfield{isbn}%
\newunit\newblock
\printfield{doi}%
\newunit\newblock
\usebibmacro{eprint}
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\printfield{addendum}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}


Gruß
Marco

KlausImMai
18-07-2009, 09:44
Ja, das ist es. Herzlichen Dank, Marco!

Ich habe die Änderungen in numeric rückgängig gemacht und folgende Änderung in standard.bbx vorgenommen (siehe Fettdruck):



\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+year}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\printfield{isbn}%
\newunit\newblock
\printfield{doi}%
\newunit\newblock
\usebibmacro{eprint}
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\printfield{addendum}%
\newunit\newblock
\usebibmacro{annotation}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}
}

Nun habe ich es in der gewünschten Weise.

Für alle, die es ebenfalls brauchen: Bitte beachten, dass ich die Änderung nur an book vorgenommen habe. Für andere Textsorten müsste man die Änderungen ebenfalls vornehmen, wenn man das wünscht.

mechanicus
18-07-2009, 09:48
Hallo,

eigentlich ist das nicht in Ordnung. Man sollte nie die Quelldatei ändern. Schreibe diese Änderung bitte in dein Latex-Dokument direkt rein.

Sonst musst du jedem deine standard.bbx-Datei geben.

Gruß
Marco

lockstep
18-07-2009, 11:32
Man sollte nie die Quelldatei ändern. Schreibe diese Änderung bitte in dein Latex-Dokument direkt rein.

Absolute Zustimmung, was die Quelldatei betrifft. biblatex bietet jedoch die Möglichkeit, Änderungen in die (standardmäßig "leere") Datei biblatex.cfg einzutragen - auf diese Weise muss man nicht die Präambel jedes eigenen Dokuments erweitern.

mechanicus
18-07-2009, 11:51
nderungen in die (standardmäßig "leere") Datei biblatex.cfg einzutragen

Hallo,

ich gehe davon aus, dass biblatex also die Datei automatisch lädt oder muss ich das separat angeben?

Gruß
Marco

lockstep
18-07-2009, 15:13
Keine separate Angabe notwendig - biblatex lädt die Konfigurationsdatei automatisch.

KlausImMai
18-07-2009, 18:52
eigentlich ist das nicht in Ordnung. Man sollte nie die Quelldatei ändern. Schreibe diese Änderung bitte in dein Latex-Dokument direkt rein.

Ja, da bin ich vollkommen einverstanden. Mir hat das schon ein wenig Sorgen gemacht. Wenn ich update, geht alles verloren.

Aber wie schreibe ich das hinein? In die Präambel ... einfach das ganze Ding "\DeclareBibliographyDriver{book}... "?

Oder besser in biblatex.cfg? Auch einfach das ganze Ding hinein tun?

lockstep
19-07-2009, 12:00
Egal ob Präambel oder biblatex.cfg: Das ganze "DeclareBibliographyDriver"-Ding hineintun, auch wenn man nur eine Zeile geändert, ergänzt oder gestrichen hat.

Nachteil von biblatex.cfg: Auch diese Datei muss momentan gesichert werden, da sie bei einem Update überschrieben wird (das wird vermutlich besser, wenn biblatex automatisch als Teil von MiKTeX, TeXLive etc. installiert wird). Vorteil (wie schon oben erwähnt): Alle eigenen Dokumente nutzen die in biblatex.cfg eingetragenen Änderungen.

mechanicus
19-07-2009, 12:25
@lockstep:

Hallo,

hast du mal probiert, die biblatex.cfg in den Projektordner zu legen. Dann dürfte sie wohl bei einem Update nicht berücksichtigt werden. Die Frage ist nur, ob biblatex diese Datei dann auch verwendet.

Gruß
Marco

KlausImMai
19-07-2009, 14:04
Ich habe ein File erstellt myBiblatexChanges.sty und es in den Ordner mit meinem Projekt getan. Die Funktion DeclareBibliographyDriver habe ich in dieses File getan. Alle sonstigen Änderungen habe ich rückgängig gemacht.

Nun binde ich das File so ein:
\usepackage[...]{biblatex}
\usepackage{myBiblatexChanges}

Auf diese Weise kann ich pro Projekt andere Einstellungen vornehmen - oder wiederverwenden durch einfaches Kopieren.

Außerdem habe ich jetzt nicht mehr weit zu gehen, um ein wenig herum zu experimentieren. Alles mache ich in myBiblatexChanges.sty.

Ich vermute, dass diese Änderungen sowieso nur temporär sind, weil es ja noch einige Änderungen in biblatex geben wird.