Seite 1 von 2

neue biber Version, plötzlich Komma bei Zitierung

Verfasst: Do 17. Mär 2016, 11:27
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

Verfasst: Do 17. Mär 2016, 11:34
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

Verfasst: Do 17. Mär 2016, 11:53
von Eddie144
OK, danke für die Info

Verfasst: Do 17. Mär 2016, 12:00
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.

Verfasst: Do 17. Mär 2016, 13:04
von Eddie144
Danke, dass es so einfach geht, hätt ich nicht gedacht :D :D

Verfasst: Mi 8. Jun 2016, 13:57
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 :(

Verfasst: Mi 8. Jun 2016, 16:45
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.

Verfasst: Fr 22. Jul 2016, 15:46
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.

Altlasten beseitigen

Verfasst: Fr 22. Jul 2016, 16:30
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.

Verfasst: Fr 22. Jul 2016, 16:37
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.