Komma fehlt in Literaturverzeichnis Thema ist als GELÖST markiert

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


neeSch

Komma fehlt in Literaturverzeichnis

Beitrag von neeSch »

Moin

Ich habe mit JabRef 4.0 bzw. mit Biblatex ein Literaturverzeichnis erstellt. Allerdings fehlt bei den Einträgen (egal welcher Typ) ein Komma nach dem ersten Autor:
z.B. Hans Mustermann Rolf Beispielmann, Lea Muster.
\documentclass[10pt,a4paper,ngerman]{report}
\usepackage[backend=biber, natbib=true, style=authortitle, citetracker=true]{biblatex}  
\addbibresource{biblatex-examples.bib}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage{hyperref}

\begin{document}
blabla\footcite{doody}
blabla\footcite{herrmann}
\printbibliography[heading=bibnumbered]
\end{document}
Allerdings weiss ich jetzt nicht genau, welche Quelle bei biblatex-examples.bib von zwei bis drei Autoren geschrieben wurde..

Weshalb fehlt das Komma bzw. wie kann ich eines einfügen und so das Problem beheben?

Gast

Beitrag von Gast »

companion hat drei Autoren. Aber
\documentclass[10pt,a4paper,ngerman]{report}
\usepackage[backend=biber, natbib=true, style=authortitle, citetracker=true]{biblatex}  
\addbibresource{biblatex-examples.bib}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}

\begin{document}
blabla\footcite{companion}
\printbibliography[heading=bibnumbered]
\end{document}
hat bei mir ein Komma nach dem ersten Autor. Im Online-Editor ist das auch der Fall - probier es mit dem Link über dem Beispiel aus.

Hast Du noch anderen Code in Deinem Dokument? Welche biblatex-Version hast Du?

neeSch

Beitrag von neeSch »

Ich verwende Biber 2.7.

Das ist mein eigentlicher Code:
\documentclass[10pt,a4paper,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}

\usepackage{csquotes} 

\usepackage{scrextend} 

\usepackage[backend=biber, natbib=true, style=authortitle, citetracker=true]{biblatex} 

\DeclareFieldFormat{urldate}{\mkbibparens{#1}} 
\addbibresource{biblatex-examples.bib} 

\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}}
\DeclareAutoCiteCommand{hyper}{\hypercite}{\hypercites} 
\ExecuteBibliographyOptions{autocite=hyper}



\begin{document}
blabla\autocite{companion}
blablabla\autocite{companion}
\printbibliography[heading=bibnumbered]
\end{document}
Allerdings scheint es im Overleaf nicht zu funktionieren. Weiss nicht, was ich vergessen oder falsch gemacht habe.

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

Beitrag von u_fischer »

hypercite (ohne s) ist nicht definiert:

! Package biblatex Error: Command '\hypercite' undefined.

neeSch

Beitrag von neeSch »

Vielen Dank für die Rückmeldung!

In meinem grossen Dokument funktioniert es... Hat das damit zu tun, dass Overleaf nicht die gleiche Version von Biber hat?

Oder was müsste ich ändern, damit das Komma im Literaturverzeichnis vorhanden ist? Auch mit \hypercite? Oder muss ich den Befehl anders definieren? :cry:

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

Beitrag von u_fischer »

neeSch hat geschrieben: In meinem grossen Dokument funktioniert es... Hat das damit zu tun, dass Overleaf nicht die gleiche Version von Biber hat?
Nein, es hat damit zu tun, dass dein großes Dokument etwas tut (nämlich hypercite definieren), was das kleine nicht tut.

neeSch

Beitrag von neeSch »

was das kleine nicht tut.
Wieso denn nicht? Habe doch die gleichen Befehle im Beispiel wie auch im grossen Dokument? :?

Ist das ein Problem für das Inhaltsverzeichnis, sodass Kommas fehlen? Oder was mache ich diesbezüglich falsch?

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

Beitrag von u_fischer »

neeSch hat geschrieben:
was das kleine nicht tut.
Wieso denn nicht? Habe doch die gleichen Befehle im Beispiel wie auch im grossen Dokument? :?
Dann ersetze doch einfach mal die komplette Präambel des großen Dokuments mit der Präambel hier. Wenn deine Behauptung stimmt, sollte sich nichts ändern und es immer noch problemlos kompilieren. (Mache aber besser vorher eine Sicherung).

Gast

Beitrag von Gast »

Bist Du das http://golatex.de/mehrere-fussnoten-mit ... 19826.html http://golatex.de/fussnoten-anzeigen-lassen-t19790.html

Du wirst feststellen, dass die Minimalbeispiel in den Antworten dort etwas länger ausgefallen sind. In Deinem Beispiel von oben kannst Du leicht feststellen, dass einige Befehle nicht definiert sind, wenn Du den von Dir geposteten Code in eine Datei steckst und diese versuchst zu kompilieren (oder wenn Du auf 'Öffne in Overleaf' über dem Code klickst). Du zeigst also nicht, alles
was nötig ist, um das Problem zu reproduzieren.

Der Code aus der neusten Antwort funktioniert übrigens ach für den companion wunderbar. Es muss also an etwas liegen, dass wir nicht sehen können.
\documentclass[12pt,a4paper,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage{scrextend}

\usepackage[backend=biber, natbib=true, style=authortitle, citetracker=true]{biblatex}

\DeclareFieldFormat{urldate}{\mkbibparens{#1}}
\addbibresource{biblatex-examples.bib}

%\usepackage{hyperref}
\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}}
\DeclareAutoCiteCommand{hyper}{\hypercite}{\hypercites}
\ExecuteBibliographyOptions{autocite=hyper}

\makeatletter
\AtEveryCitekey{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}{\value{instcount}}}

\def\iflastciteonsamepage{%
  \ifsamepage
    {\number\csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}}
    {\number\csuse{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}}}}

\newbibmacro*{footcite:save}{%
  \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
  \label{cbx@\the\value{instcount}}}

\newcommand*{\cbx@postnotestorage}[3]{%
  \ifcsundef{cbx@postnote@#1@#2}
    {\csgdef{cbx@postnote@#1@#2}{#3}}
    {\csgappto{cbx@postnote@#1@#2}{, #3}}}

\newbibmacro*{postnote:save}{%
  \iffieldundef{postnote}
    {}
    {\blx@auxwrite\@mainaux{}{\string\cbx@postnotestorage{\thefield{entrykey}}{\thepage}{\thefield{postnote}}}}}

\newbibmacro*{special:postnote}{%
  \ifcsundef{cbx@postnote@\thefield{entrykey}@\thepage}
    {}
    {\edef\cbx@tempq{\csuse{cbx@postnote@\thefield{entrykey}@\thepage}}%
     \restorefield{postnote}{\cbx@tempq}%
     \setunit{\postnotedelim}%
     \printfield{postnote}}}

\DeclareCiteCommand{\hypercite}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{postnote:save}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}
     {\mkbibfootnote{%
        \usebibmacro{prenote}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}%
        \usebibmacro{special:postnote}}}}
  {\mkbibsuperscript{\supercitedelim}}
  {}
\makeatother


\begin{document}
First citation.\autocite[17]{sigfridsson}
First citation.\autocite[19]{herrmann}
Some recurrent citations on same page.\autocite[156]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\autocites[18]{sigfridsson}[20]{worman}
Recurrent on different pages.\autocite[90]{herrmann}
New citation on same page.\autocite[28]{doody}
Some recurrent citations on same page.\autocite[280]{sigfridsson,worman}

Some recurrent citations on same page.\autocite[111]{companion}
Some recurrent citations on same page.\autocite[114]{companion}

\cleardoublepage
\printbibliography
\end{document}

neeSch

Beitrag von neeSch »

Ja, das war ich. Dachte, ich gebe mir einen Namen, da mehrere Gast heissen.. :oops:

Mit companion:
\documentclass[12pt,a4paper,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage{scrextend}

\usepackage[backend=biber, natbib=true, style=authortitle, citetracker=true]{biblatex}

\DeclareFieldFormat{urldate}{\mkbibparens{#1}}
\addbibresource{biblatex-examples.bib}

%\usepackage{hyperref}
\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}}
\DeclareAutoCiteCommand{hyper}{\hypercite}{\hypercites}
\ExecuteBibliographyOptions{autocite=hyper}

\makeatletter
\AtEveryCitekey{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}{\value{instcount}}}

\def\iflastciteonsamepage{%
  \ifsamepage
    {\number\csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}}}
    {\number\csuse{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}}}}

\newbibmacro*{footcite:save}{%
  \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
  \label{cbx@\the\value{instcount}}}

\newcommand*{\cbx@postnotestorage}[3]{%
  \ifcsundef{cbx@postnote@#1@#2}
    {\csgdef{cbx@postnote@#1@#2}{#3}}
    {\csgappto{cbx@postnote@#1@#2}{, #3}}}

\newbibmacro*{postnote:save}{%
  \iffieldundef{postnote}
    {}
    {\blx@auxwrite\@mainaux{}{\string\cbx@postnotestorage{\thefield{entrykey}}{\thepage}{\thefield{postnote}}}}}

\newbibmacro*{special:postnote}{%
  \ifcsundef{cbx@postnote@\thefield{entrykey}@\thepage}
    {}
    {\edef\cbx@tempq{\csuse{cbx@postnote@\thefield{entrykey}@\thepage}}%
     \restorefield{postnote}{\cbx@tempq}%
     \setunit{\postnotedelim}%
     \printfield{postnote}}}

\DeclareCiteCommand{\hypercite}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{postnote:save}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}
     {\mkbibfootnote{%
        \usebibmacro{prenote}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}%
        \usebibmacro{special:postnote}}}}
  {\mkbibsuperscript{\supercitedelim}}
  {}
\makeatother


\begin{document}
First citation.\autocite[17]{sigfridsson}
First citation.\autocite[19]{herrmann}
Some recurrent citations on same page.\autocite[156]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\autocites[18]{companion}[20]{worman}
Recurrent on different pages.\autocite[90]{companion}
New citation on same page.\autocite[28]{doody}
Some recurrent citations on same page.\autocite[280]{companion,worman}

\cleardoublepage
\printbibliography
\end{document}
Ich werde euch ein grösseres Minimalbeispiel zusammenstellen und hoffe, dass ich die richtigen Befehle einfüge, welche problematisch sind...

Antworten