neue biber Version, plötzlich Komma bei Zitierung

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

neue biber Version, plötzlich Komma bei Zitierung

Beitrag von Eddie144 »

Hallo zusammen,

ich habe gestern mein MikTex komplett aktualisiert (Admin und User Mode). Ich benutze Biblatex mit biber und natbib-"Imitation". Seit dem aktualisieren (u.a. mit neuer biber Version) habe ich bei den Zitierungen mit \citet jetzt ein Komma zwischen Autor und Jahr. Das war vorher definitiv nicht da. Wie bekomme ich das wieder weg?

Mit
\renewcommand{\nameyeardelim}{\addspace}
verschwinden die Kommas auch bei den \citep-Befehlen, was ich aber nicht möchte.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[citecolor=blue,urlcolor=blue,colorlinks=true]{hyperref}
\usepackage[style=authoryear-comp,sorting=nyt,clearlang=false,backend=biber, natbib=true,hyperref=true,useprefix=true,maxcitenames=2,maxbibnames=10,labeldate=true,mincitenames=1,firstinits=true
]{biblatex}

\addbibresource{biblatex-examples.bib} 

\begin{document}
\citet{yoon}
\citep{yoon}
\printbibliography
\end{document}
Im Forum-Editor sieht übrigens alles aus wie es soll, d.h. \citet ohne Komma, \citep mit Komma. Ich habe Biber-Version 2.4 und Biblatex Version 3.3

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4283
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Warte ein paar Tage. Das wurde bereits diskutiert und mit der nächsten Version gibt es entweder eine Lösung, oder ein geeignetes Interface.

https://github.com/plk/biblatex/issues/373

Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

Beitrag von Eddie144 »

OK, danke für die Info

Gast

Beitrag von Gast »

Wenn Du nicht so lange warten kannst, bis Version 3.4 rauskommt (das kann unter Umständen noch etwas dauern), dann kannst Du solange
\makeatletter
\renewbibmacro*{textcite}{%
  \iffieldequals{namehash}{\cbx@lasthash}
    {\iffieldundef{shorthand}
       {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
                    \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
          {\setunit{\addcomma}%
           \usebibmacro{cite:extrayear}}
          {\setunit{\compcitedelim}%
           \usebibmacro{cite:labelyear+extrayear}%
           \savefield{labelyear}{\cbx@lastyear}}}
       {\setunit{\compcitedelim}%
        \usebibmacro{cite:shorthand}%
        \global\undef\cbx@lastyear}}
    {\ifnameundef{labelname}
       {\iffieldundef{shorthand}
          {\usebibmacro{cite:label}%
           \setunit{%
             \global\booltrue{cbx:parens}%
             \addspace\bibopenparen}%
           \ifnumequal{\value{citecount}}{1}
             {\usebibmacro{prenote}}
             {}%
           \usebibmacro{cite:labelyear+extrayear}}
          {\usebibmacro{cite:shorthand}}}
       {\printnames{labelname}%
        \setunit{%
          \global\booltrue{cbx:parens}%
          \addspace\bibopenparen}%
        \ifnumequal{\value{citecount}}{1}
          {\usebibmacro{prenote}}
          {}%
        \iffieldundef{shorthand}
          {\iffieldundef{labelyear}
             {\usebibmacro{cite:label}}
             {\usebibmacro{cite:labelyear+extrayear}}%
           \savefield{labelyear}{\cbx@lastyear}}
          {\usebibmacro{cite:shorthand}%
           \global\undef\cbx@lastyear}}%
     \stepcounter{textcitecount}%
     \savefield{namehash}{\cbx@lasthash}}%
  \setunit{%
    \ifbool{cbx:parens}
      {\bibcloseparen\global\boolfalse{cbx:parens}}
      {}%
    \textcitedelim}}
\makeatother
nutzen, so wird für authoryear-comp (der Code ist stilabhängig und für authoryear-comp besonders hässlich) das Verhalten von Version 3.2 wiederhergestellt. Nach einem erfolgreichen Update auf die kommende Version kann diese Übergangslösung dann entfernt werden.

Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

Beitrag von Eddie144 »

Danke, dass es so einfach geht, hätt ich nicht gedacht :D :D

Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

Beitrag von Eddie144 »

kleiner Nachtrag: Habe es jetzt mit TexLive 2016 versucht, biblatex ist laut logfile auf Version 3.4

Das Problem wurde aber nicht behoben, die Kommas sind nach wie vor vorhanden :(

Gast

Beitrag von Gast »

Ja und nein. Das Problem ist für die meisten Stile behoben, die comp-Stile haben immer noch ein Problem, das lässt sich mit
\DeclareDelimFormat[cbx@textcite]{nameyeardelim}{\addspace}
\DeclareDelimFormat[cbx@textcite]{nonameyeardelim}{\addspace}
aber schnell und komfortabel lösen. Das Problem ist bekannt und ist in der Entwicklungsversion 3.5 behoben (diesmal hoffentlich wirklich). Siehe auch TeX.SX: Unwanted comma between author and year using citet command.

Urs

Beitrag von Urs »

Wenn ich
\usepackage[style=authoryear, natbib=true, hyperref=true, maxbibnames=50, maxcitenames=3, backrefstyle=three+, backend=biber]{biblatex}

\DeclareDelimFormat[cbx@textcite]{nameyeardelim}{\addspace}
\DeclareDelimFormat[cbx@textcite]{nonameyeardelim}{\addspace}


verwende, erhalte ich die Fehlermeldung:
Undefined control sequence. \DeclareDelimFormat

Bin um jeden Tipp dankbar.

Stamm-

Altlasten beseitigen

Beitrag von Stamm- »

Das liegt vielleicht an einer veralteten Version von biblatex (aktuell ist 3.4). Eine entsprechende Aktualisierung über den Paket-Manager deiner TeX-Distribution sollte da helfen. Sein TeX-System aktuell zu halten schadet generell nicht.

Gast

Beitrag von Gast »

Wahrscheinlich hast Du noch Version 3.3 von biblatex, da musst Du den Code von etwas weiter oben verwenden. Das neue System mit \DeclareDelimFormat gibt es da noch nicht. Die bessere Alternative ist aber natürlich ein Update auf Version 3.4, wo Du nur die zwei Zeilen brauchst.

Antworten