ebd. in multicite

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


Phantomias2019
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 27. Jun 2019, 23:41

ebd. in multicite

Beitrag von Phantomias2019 »

Hallo alle zusammen,

Ich muss für meine Abschlussarbeit leider versch. Vorgaben umsetzen und stehe
nun vor einem Problem für das ich bisher keine Lösung finden konnte. In
einzelnen Zitaten funktioniert der Zitierstil 'authoryear-ibid' super, mit
eigenen Anpassungen, sodass korrekt 'ebd.' und 'a.a.O.' gesetzt wird. Nun
benötige ich das Gleiche auch für Multi-Zitate bei Verwendung der `\*cites`
Befehle, wie ihr im angehängten MWE sehen könnt funktioniert dies aber leider
nicht. Mehrere Quellen innerhalb eines `\autocite` gehen leider nicht auf Grund
der versch. Seitenangaben.

Über Hilfen aber auch generelle Verbesserungsvorschläge würde ich mich sehr
freuen. Danke im Voraus!
\begin{filecontents*}{20190627ibidmulticite.bib}
@Book{Bsp1,
  author = {Muster, Max},
  title = {goLaTeX Wiki-Beispiel},
  journal = {LaTeX Journal},
  year = {2010},
  pages = {1--3},
  timestamp = {2010.03.21},
  url = {http://www.golatex.de/wiki/index.php?title=Minimalbeispiel}
} 
@INBOOK{Bsp2,
   author = {Gustav Gans},
   title = {Mein Beispielbuch},
   subtitle = {Komplett hier},
   pages = {13--40},
   year = {2019},
   booktitle = {Mein ganzes Buch},
   bookauthor = {Duck, Donald and Klever, Klaas},
   edition = {3},
   location = {Entenhausen},
   publisher = {Phantomias-Verlag}
}
\end{filecontents*}
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[
   bibstyle=authoryear,
   citestyle=authoryear-ibid,
   loccittracker=constrict,
   maxcitenames=3
]{biblatex}
% Angabe der Datei welche unsere Quellen enthält
\bibliography{20190627ibidmulticite.bib}
% Trenne alle Autoren mit '/' voneinander in Zitaten
\renewcommand{\multinamedelim}{\addslash}
% Kein 'und' sondern ebenfalls '/' vor dem letzten Autor
\renewcommand{\finalnamedelim}{\addslash}
% Statt u.a. (und anderen) hätten wir gerne die lateinische Variante
\DefineBibliographyStrings{ngerman}{%
   andothers = {{et\,al\adddot}}, 
}
% Statt ebd. wird meistens 'ibid' (latein) verwendet, wird hier neu definiert
\DefineBibliographyStrings{ngerman}{ibidem = {ebd\adddot}}
% Sorgt dafür, dass bei vorheriger gleicher Quelle (Autor + Seite) 'ebd.' gesetzt wird
\renewbibmacro*{cite:ibid}{%
   \ifloccit{%
   \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
   \global\booltrue{cbx:loccit}}%
   {\printtext[bibhyperref]{\bibstring{opcit}}}}
% Entfernt "S." vor Seitenverweisen bei Zitaten
\DeclareFieldFormat{pages}{#1}
\DefineBibliographyStrings{ngerman}{%
      page = {{}{}},
      pages = {{}{}},
}
% Hochgestellte Edition eines Werkes mit vorausgehendem Punkt
\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}{}
  {\printtext{%
    \iffieldnum{edition} {\adddot\space
      \printfield[superedition]{edition}%
      \global\clearfield{edition}} {\adddot\space}%
      \iflabeldateisdate{\printdateextra}
      {\printlabeldateextra}
    }
  }
}
% Setzen von Optionen innerhalb des Literaturverzeichnisses
\AtBeginBibliography{%
  % Autoren mit '; ' voneinander trennen
  \renewcommand*{\multinamedelim}{;\space}%
  \renewcommand*{\finalnamedelim}{;\space}%
  % Bei allen Autoren Format 'Nachname, Vorname'
}
% Normale/nicht-kursive Titel
\DeclareFieldFormat[inbook]{title}{#1}
\DeclareFieldFormat[inbook]{booktitle}{#1}
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[incollection]{booktitle}{#1} 
\DeclareFieldFormat[book]{title}{#1}
% Immer Nachname,Vorname
\DeclareNameAlias{author}{family-given}
\begin{document}
Zitat eins\autocite[80\psq]{Bsp1} Identische Quelle, erwartet ``(ebd.)''
\autocite[80\psq]{Bsp1} Andere Seiten, erwartet ``(a.a.O., 80
ff.)''\autocite[80\psqq]{Bsp1}

Zitat zwei\autocite[80\psq]{Bsp2}

Multizitat eins, erwartet: ``(ebd.; Muster 2010, 79)'' \autocites[80\psq]{Bsp2}[79]{Bsp1}
\end{document}

Gast

Beitrag von Gast »

Die "strict"-Formen der Tracker unterdrücken ibid/loccit etc. in Fällen, in denen es uneindeutig sein könnte. Dazu zählt biblatex auch Multizitate. Wenn Du also von constrict zu context wechselst, geht es hoffentlich wie gewünscht.

Ich habe zur Übersichtlichkeit die Kommentare aus dem Code entfernt, außerdem habe ich die Einrückung etwas geändert, damit ich schneller sehen konnte, was Sache ist. Schließlich habe ich den Code etwas modernisiert und an einigen Stellen ein paar elegantere Methoden genutzt (\DeclareDelimAlias statt \renewcommand und \AtBeginBibliography). Daher benötigt der unten gezeigte Code eine recht aktuelle Version von biblatex (ich habs nicht nachgesehen, aber die Version von Overleaf könnte knapp zu alt sein).

Lade ruhig csuqotes und nutze die Anführungszeichen von dort.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[
  style         = authoryear-ibid,
  loccittracker = context,
  ibidtracker   = context,
  maxcitenames  = 3,
]{biblatex}

\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{multinamedelim}{\addslash}
\DeclareDelimFormat[bib]{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}

\DefineBibliographyStrings{german}{%
  ibidem    = {ebd\adddot},
  andothers = {et\,al\adddot},
}

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

\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}

\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext{%
       \iffieldnum{edition}
         {\adddot\space
          \printfield[superedition]{edition}%
          \global\clearfield{edition}}
         {\adddot\space}%
       \iflabeldateisdate
         {\printdateextra}
         {\printlabeldateextra}}}}


\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{booktitle}{#1}

\addbibresource{biblatex-examples.bib}

\begin{document}
Zitat eins \autocite[80\psq]{sigfridsson}
Identische Quelle, erwartet \enquote{(ebd.)}: \autocite[80\psq]{sigfridsson}
Andere Seiten, erwartet \enquote{(a.a.O., 80 ff.)}: \autocite[80\psqq]{sigfridsson}

Zitat zwei \autocite[80\psq]{worman}
Multizitat eins, erwartet: \enquote{(ebd.; Muster 2010, 79)}: \autocites[80\psq]{worman}[79]{sigfridsson}

\printbibliography
\end{document}

Phantomias2019
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 27. Jun 2019, 23:41

Beitrag von Phantomias2019 »

Das war es, vielen vielen Dank!

Antworten