Seite 1 von 1

Komma vor (Hrsg.)

Verfasst: So 6. Jan 2013, 02:49
von maritn
Hallo,

Ich schreibe gerade an meiner Bachelor-Arbeit, daher wäre ich für Hilfe sehr dankbar.

Ich verwende Biblatex mit dem Stil authoryear-icomp. Da ich gerne Hrsg. in Klammern setzen möchte, habe ich mir den deutschen String entsprechend definiert. Mein Eintrag im Literaturverzeichnis sieht nun folgendermaßen aus:

Deutsche UNESCO-Kommission, (Hrsg.) (2007). Open Access – Chancen und Herausforderungen: Ein Handbuch.

Mein Problem ist: Wie kriege ich das Komma vor (Hrsg.) weg? Ich habe schon ewig herumgesucht und nichts herausgefunden.

Hier ist mein komplettes Minimalbeispiel:
\documentclass[]{scrreprt} 

\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel}

\usepackage[style=authoryear-icomp]{biblatex}

\DefineBibliographyStrings{ngerman}{ 
	editor        = {(Hrsg.)}, 
	editors      = {(Hrsg.)}
} 

\bibliography{test} 

\begin{document}

Lorem ipsum.

\nocite{*}
\printbibliography

\end{document} 
Die .bib-Datei dazu sieht foldendermaßen aus:
@booklet{UNESCO2007,
	Editor = {{Deutsche UNESCO-Kommission}},
	Title = {Open Access -- Chancen und Herausforderungen: Ein Handbuch},
	Year = 2007}
Schon mal vielen Dank :)

Verfasst: So 6. Jan 2013, 12:33
von u_fischer
Füge das hier in dein Dokument ein:
\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     %\setunit{\addcomma\space}%ersetzen durch:
     \setunit{\space}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}
    {}}

Verfasst: So 6. Jan 2013, 12:38
von maritn
Danke für die schnelle Antwort :)

Das ist schon mal besser als vorher. Leider ist jetzt die Jahreszahl nach (Hrsg.) weg:

Deutsche UNESCO-Kommission (Hrsg.) Open Access – Chancen und Herausforderungen: Ein Handbuch.

Wo kann ich denn Dokumentation für diese Art von Code finden? Ich bin da gestern nicht recht weitergekommen (war aber auch schon spät).

Verfasst: So 6. Jan 2013, 12:55
von u_fischer
maritn hat geschrieben:Danke für die schnelle Antwort :)

Das ist schon mal besser als vorher. Leider ist jetzt die Jahreszahl nach (Hrsg.) weg:
Mist, ich hatte übersehen, dass authoryear.bst die Standarddefinition überschreibt. Du musst wahrscheinlich diesen Befehl ändern (ungetestet, ich habe jetzt keine Zeit):
\newbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
	\setunit{\addcomma\space}%<--- da 
	\usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}
Wo kann ich denn Dokumentation für diese Art von Code finden?
Du musst dich durch die biblatex.def und die bbx-Dateien hangeln.
Es ist nicht sehr schwer, aber manchmal etwas unübersichtlich.

Verfasst: So 6. Jan 2013, 13:26
von maritn
Danke für den Hinweis. Leider compiliert das bei mir so nicht. Nach dem Mittagessen werde ich mich mal damit beschäftigen, vielleicht werde ich ja dann schlau daraus.

Verfasst: So 6. Jan 2013, 13:54
von u_fischer
maritn hat geschrieben:Danke für den Hinweis. Leider compiliert das bei mir so nicht. Nach dem Mittagessen werde ich mich mal damit beschäftigen, vielleicht werde ich ja dann schlau daraus.
Das Mittagessen hatte mich daran gehindert, darauf hinzuweisen, dass dort Befehl mit @ auftauchen, du musst also @ zu einem Buchstaben machen:
\makeatletter %mache (make) @ (at) zu Buchstabe (letter)
\renewbibmacro*{bbx:editor}[1]{% 
   \ifboolexpr{ 
     test \ifuseeditor 
     and 
     not test {\ifnameundef{editor}} 
   } 
     {\usebibmacro{bbx:dashcheck} 
        {\bibnamedash} 
        {\printnames{editor}% 
    \setunit{\space}%<--- da 
    \usebibmacro{bbx:savehash}}% 
      \usebibmacro{#1}% 
      \clearname{editor}% 
      \setunit{\addspace}}% 
     {\global\undef\bbx@lasthash 
      \usebibmacro{labeltitle}% 
      \setunit*{\addspace}}% 
   \usebibmacro{date+extrayear}}
\makeatother   %@ zu nicht-Buchstaben

Verfasst: So 6. Jan 2013, 16:05
von maritn
Wundervoll. Jetzt funktioniert's :) Vielen Dank!