Seite 1 von 1

Biblatex: Punkt nach Autor

Verfasst: Mi 16. Feb 2011, 20:40
von Rob3
Hallo,

ich nutze Biblatex mit authoryear Stil und möchte gern nach dem Namen des letzten Autors einen Punkt haben, also etwa:

Gans, Gustav. 2011. Gute Gänsebraten. Gustavstadt: Gans & Co.

Ich dachte ich füge den gewünschten Punkt einfach im author Makro mit Hilfe von renewbibmacro ein. Dabei sind zwei Probleme aufgetreten.

Zunächst habe ich einfach das author Makro aus der authoryear.bbx in meine Präambel kopiert und wollte es dann nach meinen Wünschen verändern. Doch selbst ohne Veränderung funktioniert es nicht, Fehlermeldung "Argument of @secondofto has an extra }". Komisch, dabei sollte sich doch an sich gar nichts geändert haben!? (s. Minimalbeispiel unten).

Um dieses Problem zu umgehen hab ich dann die authoryear.bbx kopiert und dort meine Veränderungen vorgenommen. An geeigneter Stelle im author Makro habe ich {\setunit{\addcolon\space}} eingefügt. Es gibt einige Stellen wo ich es einfügen konnte um (fast) das gewünscht Ergebnis zu erreichen. Fast heißt, dass dann jeweils vor dem neuen Punkt ein Zeilenumbruch war. Woran kann das liegen?

Ich bin nun noch aus einem weiteren Grund verwirrt. Um unten stehendes Minimalbeispiel zu bauen brauchte ich ein neues Paket und im Zuge dessen fiel mir auf, dass meine alte MikTex Version nicht mehr unterstützt wird. Mit der neuen 2.7 scheint sich aber die Paketverwaltung geändert zu haben, jedenfalls finde ich nicht mehr das Verzeichnis wo all die bbx Bibliographiestile gespeichert werden und ich meine neue authoryear-mod.bbx ablegen könnte. Hat sich hier etwas an der Paketverwaltung geändert oder bin ich nur zu dumm das Verzeichnis zu finden?

Bin für jedwede Hilfe dankbar!

Rob
\documentclass[12pt]{article}

\usepackage[bibstyle=authoryear, citestyle=authoryear-comp]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@BOOK{schneider07,
  title = {Postcolonial English: Varieties around the world},
  publisher = {CUP},
  year = {2007},
  author = {Schneider, Edgar},
  address = {Cambridge, etc.},
  owner = {Robert},
  timestamp = {2010.04.04}
}
\end{filecontents} 

\renewbibmacro*{author}{%
  \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}}
    {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND
                 \NOT\iffirstonpage\AND
		 \(\NOT\boolean{bbx@inset}\OR
		   \iffieldequalstr{entrysetcount}{1}\)}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
	\iffieldundef{authortype}
	  {\setunit{\addspace}}
	  {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
	\setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}

\bibliography{literatur.bib}

\usepackage[english,american]{babel}
\usepackage{csquotes}

\begin{document}


\textcite{schneider07}

\printbibliography


\end{document}

Re: Biblatex: Punkt nach Autor

Verfasst: Do 17. Feb 2011, 10:47
von domwass
Rob3 hat geschrieben:Zunächst habe ich einfach das author Makro aus der authoryear.bbx in meine Präambel kopiert und wollte es dann nach meinen Wünschen verändern. Doch selbst ohne Veränderung funktioniert es nicht, Fehlermeldung "Argument of @secondofto has an extra }". Komisch, dabei sollte sich doch an sich gar nichts geändert haben!? (s. Minimalbeispiel unten).
Das liegt daran, dass ein @ in einem der Befehle vorkommt. Wenn du
\makeatletter davor und \makeatother danach schreibst, müsste es gehen.
Ich bin nun noch aus einem weiteren Grund verwirrt. Um unten stehendes Minimalbeispiel zu bauen brauchte ich ein neues Paket und im Zuge dessen fiel mir auf, dass meine alte MikTex Version nicht mehr unterstützt wird. Mit der neuen 2.7 scheint sich aber die Paketverwaltung geändert zu haben, jedenfalls finde ich nicht mehr das Verzeichnis wo all die bbx Bibliographiestile gespeichert werden und ich meine neue authoryear-mod.bbx ablegen könnte. Hat sich hier etwas an der Paketverwaltung geändert oder bin ich nur zu dumm das Verzeichnis zu finden?
Du meinst sicher 2.9, oder? Ab Version 2.8 gibt es eine Unterscheidung
zwischen globalen und User-Einstellungen. Schau mal in die MiKTeX-
Settings unter Roots, dort sollten die Verzeichnisse aufgelistet sein, in
denen MiKTeX sucht.

Gruß,
Dominik.-

Verfasst: Do 17. Feb 2011, 16:45
von Rob3
Hallo,
Das liegt daran, dass ein @ in einem der Befehle vorkommt. Wenn du
\makeatletter davor und \makeatother danach schreibst, müsste es gehen.
Aha, das bedeuten also diese beiden Befehle :) Genau das war das Problem, vielen Dank, jetzt geht es. Komischerweise tritt nun auch nicht das Problem mit dem Zeilenumbruch auf sondern es wird wie gewünscht ein Punkt nach dem Namen eingefügt.
Du meinst sicher 2.9, oder?
Ja.
Schau mal in die MiKTeX-
Settings unter Roots, dort sollten die Verzeichnisse aufgelistet sein, in
denen MiKTeX sucht.
Mhh, das Verzeichnis sehe ich schon, da gibt es zwar allerlei Pakete aber nicht biblatex. Ich habe das jetzt mal manuell reinkopiert.

Viele Grüße
Rob

Verfasst: Do 17. Feb 2011, 17:17
von domwass
Rob3 hat geschrieben:Mhh, das Verzeichnis sehe ich schon, da gibt es zwar allerlei Pakete aber nicht biblatex.
Hast du das denn über den Paketmanager installiert?

Gruß,
Dominik.-

Verfasst: Do 17. Feb 2011, 19:52
von Rob3
Ich habe nichts gemacht. Entweder hat MikTex es bei der Installation geladen oder beim ersten Durchlauf nachinstalliert (vermute ich).

Verfasst: Do 17. Feb 2011, 21:19
von domwass
Dann schau mal bei Options -> Roots und setz den Haken bei »Show MiKTeX
maintained root directories«. In einem der root directories müsste sich
biblatex befinden.

Gruß,
Dominik.-

Verfasst: Di 22. Feb 2011, 18:33
von Rob3
Die Verzeichnisse habe ich gefunden, doch da war nix... Komisch. Aber jetzt hab ich es ja selbst reinkopiert.