PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Darstellungsproblem mit biblatex unter beamer



Bilbo
26-01-2010, 21:53
Hallo,

dank Marco's Hilfe habe ich mir damals den authoryear Stil mit biblatex angepasst. Soweit funktionierte auch alles. Jetzt will ich dieselben Anpassungen mit beamer verwenden und plötzlich taucht ein Problem auf. Normalerweise müsste nach den Autoren bzw. et al. das Erscheinungsjahr erscheinen. Irgendwie funktioniert der Code (rot markiert) dafür aber nicht mehr. Auch war keine Nummerierung (labels) vorhanden. Mit KOMA und ngerman funktionierte das alles noch.



\documentclass{beamer}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{filecontents}
\begin{filecontents}{references.bib}
@ARTICLE{mustermann2003,
author = "Mustermann, Max AND Knecht, Markus AND Schmidt, Max AND Mueller, Arnold",
title = "Physikalische und mathematische Probleme",
journal = "Journal of Physics",
year = "2003",
number = "4",
pages = "45--67",
}
\end{filecontents}
\usepackage[babel]{csquotes}
\usepackage[%
authoryear,%
citestyle=authoryear,%
bibencoding=utf8,%
bibtex8=true,%
sorting=nyt,%
sortcites=true,%
maxnames=2,%
babel=other,%
block=space,%
backref=false,%
natbib=true,%
hyperref=true,%
]{biblatex}
\bibliography{references}

% 'et al.' kursiv darstellen
\renewbibmacro*{name:andothers}{%
\ifthenelse{\value{listcount}=\value{liststop}\AND
\ifmorenames}
{\ifnum\value{liststop}>1 \finalandcomma\fi
\andothersdelim\printtext[emph]{\bibstring{andothers}}}%
{}}
\DefineBibliographyStrings{german}{%
andothers={et al.},
}
\DeclareCiteCommand{\cite}[\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}

% Vornamen der Autoren abgekürzt und nach Nachnamen darstellen
\DeclareNameFormat{author}{%
\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}%
\usebibmacro{name:andothers}}

% Titel ohne Anführungszeichen darstellen
\DeclareFieldFormat[article]{citetitle}{#1\midsentence}
\DeclareFieldFormat[article]{title}{#1\midsentence}

% 'year' ohne runde Klammern darstellen
\renewbibmacro*{year+labelyear}{%
\iffieldundef{year}{}
{\printfield{year}%
\printfield{labelyear}}}

% bibstyle für 'article'
\DeclareBibliographyDriver{article}{%
\usebibmacro{author/editor}%
\newunit
\usebibmacro{title}%
\newunit
\usebibmacro{journal}%
\setunit*{\addspace}%
\printtext{\textbf{\printfield{volume}}}%
\iffieldundef{number}{\addcomma\space}{\printtext[parens]{\printfield{number}}}%
\setunit*{\addcomma\space}%
\printfield{pages}%
\usebibmacro{finentry}}

\renewcommand*{\nameyeardelim}{,~}

\usetheme{default}

\begin{document}

\title{Vortrag mit Beamer}
\author{Max Mustermann}
\date{\today}

\begin{frame}[plain]
\titlepage
\end{frame}

\begin{frame}[plain]
Hallo \cite{mustermann2003}
\end{frame}

\begin{frame}
\frametitle{References}
\printbibliography[maxnames=2]\nocite{*}
\end{frame}

\end{document}


Gruß,
Bilbo

lockstep
26-01-2010, 22:10
Wenn ich in deinem Beispiel diese Zeile ausbessere, klappt alles wie gewünscht:



\usepackage[%
bibstyle=authoryear,% <--
citestyle=authoryear,%


Ein Flüchtigkeitsfehler. :)

lockstep

Bilbo
26-01-2010, 22:15
Oh Mann :D Habe ich total übersehen :rolleyes: Danke.

lockstep
26-01-2010, 22:21
Kleiner Zusatztipp: Dieser Code definiert year+labelyear nur um, wenn es existiert - auf diese Weise vermeidet man Fehlermeldungen, wenn man gerade einen anderen Grundstil (z.B. authortitle) benutzt.



\ifcsundef{abx@macro@\detokenize{year+labelyear}}{ %
}{%
\renewbibmacro*{year+labelyear}{%
\iffieldundef{year}{%
}{%
% \addperiod\addspace% Punkt zwischen Autor und Jahreszahl
\printfield{year}%
\printfield{labelyear}%
}%
}%
}


lockstep

Bilbo
26-01-2010, 22:26
Danke für den Tipp :)