Ebd.“, „Ders./Dies.“ sowie „A.a.O.“ in der Fußnote Thema ist als GELÖST markiert

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


Gast

Beitrag von Gast »

und auch nur da. Bei Langzitaten soll weiterhin S. stehen

Gast

Beitrag von Gast »

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

\usepackage[style=authortitle-ibid, backend=biber,
  ibidtracker=constrict, idemtracker=constrict,
  loccittracker=constrict]{biblatex}

\makeatletter
\def\blx@loccit@stricttracker#1{%
  \global\csundef{blx@lastnote@#1@\abx@field@entrykey}%
  \blx@ifcitesingle
    {\blx@imc@iffieldundef{postnote}
       {\@firstoftwo}
       {\expandafter\blx@imc@ifpages
        \expandafter{\abx@field@postnote}}
       {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote
        \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1}
          {}
          {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}}
       {}}
    {}}

\def\blx@loccit@numcheck#1{%
  \blx@imc@iffieldundef{postnote}
    {\ifcsundef{blx@lastnote@#1@\abx@field@entrykey}}
    {\expandafter\blx@imc@ifpages
     \expandafter{\abx@field@postnote}
       {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}}
       {\@secondoftwo}}}
\makeatother

\DeclareNameAlias{labelname}{sortname}

\DeclareDelimFormat{nametitledelim}{\addcolon\space}

\newtoggle{cbx:droppageprefix}

\renewbibmacro*{cite:ibid}{%
  \ifloccit
    {\printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
     \global\booltrue{cbx:loccit}}
    {\printtext[bibhyperref]{\bibstring[\mkibid]{loccit}}%
     \global\toggletrue{cbx:droppageprefix}}}

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \global\togglefalse{cbx:droppageprefix}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage}
          {\bibstring[\mkibid]{idem\thefield{gender}}}
          {\printnames{labelname}}
        \setunit*{\printdelim{nametitledelim}}%
        \usebibmacro{cite:title}}}%
    {\usebibmacro{cite:shorthand}}}

\DeclareFieldFormat{postnote}{%
  \iftoggle{cbx:droppageprefix}
    {\mknormrange{#1}}
    {\mkpageprefix[pagination][\mknormrange]{#1}}}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem\autocite[372]{nussbaum}
ipsum\autocite[372]{nussbaum}
dolor\autocite[373]{nussbaum}
sit\autocite[34]{knuth:ct:a}
amet\autocite[35]{knuth:ct:b}
consectur\autocite[22]{knuth:ct:a}
velit\autocite[45]{knuth:ct:b}
dolor\autocite[373]{nussbaum}

\clearpage
Dolor\autocite[373]{nussbaum}

\clearpage
Lorem\autocite{sigfridsson}
ipsum\autocite{sigfridsson}

\printbibliography
\end{document}

Gast

Beitrag von Gast »

das scheint leider nicht zu klappen, da werden wir Fehler angezeigt.
Undefined control sequence.

Gast

Beitrag von Gast »

Mit dem gezeigten Beispiel wird bei mir kein Fehler angezeigt. Möglicherweise verwendest du eine veraltete biblatex-Version. Ohne die genaue Fehlermeldung als Code-Zitat aus der log-Datei (dann erkennt man nämlich an der Formatierung der Fehlermeldung, was nicht definiert ist), ist das aber nicht zu erkennen. Am besten schaust du gleich in der log-Datei nach, welche Version von biblatex geladen wird. Aktuell ist Version 3.13. Bei TeX Live ist noch 3.12 aktuell, das geht aber auch.

BTW: Bei einem Update von biblatex braucht man meist auch ein Update von biber.

Gast

Beitrag von Gast »

hm, weißt du wie ich mit TexStudio am Mac das neueste Update von Biblatex bekomme? Finde im Internet nichts hilfreiches dazu

Gast

Beitrag von Gast »

Leider steht in der Fehlermeldung nicht, welcher Befehl denn undefiniert ist. In der Logdatei steht das natürlich, wenn Dein Editor Dir das nicht anzeigt, dann ist das recht ungünstig und vielleicht ein Grund über einen Editorwechsel nachzudenken. Da aber in dem Code eigentlich nur das
\DeclareFieldFormat{postnote}{%
  \iftoggle{cbx:droppageprefix}
    {\mknormrange{#1}}
    {\mkpageprefix[pagination][\mknormrange]{#1}}}
im Vergleich zur vorherigen Version neu ist (neben einem kleinen Bugfix), tippe ich auf \mknormrange. Der Befehl ist in Version 3.11 neu. Wenn der also das Problem ist, dann probier mal stattdessen
\DeclareFieldFormat{postnote}{%
  \iftoggle{cbx:droppageprefix}
    {#1}
    {\mkpageprefix[pagination]{#1}}}
Ansonsten ist ein Update natürlich immer eine gute Idee. TeXStudio kann dabei aber wahrscheinlich nicht ganz so viel weiterhelfen. Denn das ist nur der Editor. Wichtig für biblatex und Co. ist aber Dein TeX-System/Deine TeX-Distribution (wahrscheinlich MacTeX oder TeX live). Wenn \mknormrange nicht bekannt ist, dann hast Du nicht die aktuelle Version TeX live/MacTeX 2019. Da man von älteren Versionen nicht auf neue aktualisieren kann, ist es am einfachsten, einfach die 2019-Version zu installieren. Die kann auch mit anderen Versionen koexistieren und bei MacTeX gibt es (hab ich mir sagen lassen) sogar eine GUI mit der man ganz leicht zwischen den verschiedenen installierten Versionen wechseln kann. Siehe auch https://tex.stackexchange.com/q/55437/35864 und https://tex.stackexchange.com/q/107017/35864

Gast

Beitrag von Gast »

ja der zweite Code geht, vielen Dank.

Werde mich bei Gelegenheit reinfuchsen wie ich BibLATEX aktualisiert bekomme.


Aber an der Stelle riesiges Danke für die Mühe.

Gast

Beitrag von Gast »

Hab jetzt mal alles über MacTeX alles geupdatet, wenn ich jetzt die Datei öffne, werden mir unzählige Fehler angezeigt
LaTeX Warning: Citation 'CiteKey' on page X undefined on input line Y.
Eine Ahnung woran das liegt?

Gast

Beitrag von Gast »

Hab jetzt mal alles über MacTeX alles geupdatet, wenn ich jetzt die Datei öffne, werden mir unzählige Fehler angezeigt
LaTeX Warning: Citation 'CiteKey' on page X undefined on input line Y.
Eine Ahnung woran das liegt?

Gast

Beitrag von Gast »

Lösch mal alle temporären Dateien (insbesondere .aux, .bbl, .bcf, ...) und kompilier mit der vollständigen Sequenz LaTeX-Biber-LaTeX-LaTeX neu.

Wenn es dann immer noch nicht geht, zeig bitte die .blg-Datei.

Antworten