goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 99328
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer chrmo.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Anpassung von ebd./ibidem in biblatex

 

bistro
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 25.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2019, 13:03     Titel: Anpassung von ebd./ibidem in biblatex
  Antworten mit Zitat      
Liebe golatex-Community,

ich habe eine Frage zur Anpassung von ebd./ibidem beim Gebrauch von biblatex und der Option citestyle=authoryear-ibid.

Ich würde gerne ändern, dass „ebd.“ ab dem dritten wiederholten Verweis auf ein Werk kommt. Bei den default-Einstellungen wird ebd. schon bei der zweiten Nennung verwendet. Das biblatex-Paket bietet dafür keine Option an. Hat jemand eine Idee, wie diese Einstellung angepasst werden kann?

Im Minimalbeispiel wird folgende Ausgabe erzeugt:
Autor schreibt ‘Zitat’ (Nachname, 1999, S. 264), und ‘Zitat’ (ebd., S. 23) und ‘Zitat’ (ebd., S. 431).

Ich hätte gerne:
Autor schreibt ‘Zitat’ (Nachname, 1999, S. 264), und ‘Zitat’ (Nachname, 1999, S. 23) und ‘Zitat’ (ebd., S. 431).


Code • Öffne in Overleaf

\documentclass[a4paper, fontsize=11pt]{scrartcl}

\usepackage[ngerman]{babel}          
\usepackage[utf8]{inputenc}      
\usepackage[T1]{fontenc}          
         
\usepackage{blindtext}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Autor1999,
   author = {Vorname Nachname
},
   year = {1999},
   title = {Buchtitel},
   address = {Ort},
   publisher = {{Verlag}}
}
\end{filecontents}

\usepackage[bibstyle=authoryear, citestyle=authoryear-ibid, natbib=true, ibidtracker=context]{biblatex}

\addbibresource{\jobname.bib}


\begin{document}

Autor schreibt `Zitat' \citep[264]{Autor1999}, und  `Zitat' \citep[23]{Autor1999} und `Zitat' \citep[431]{Autor1999}.

\printbibliography  

\end{document}
 


Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2019, 21:24     Titel:
  Antworten mit Zitat      
Crosspost bei TeX.SX: https://tex.stackexchange.com/q/498391/35864

Es gibt noch ein paar Details zu der gewünschten Ausgabe zu klären, bevor ich eine Implementation vorschlagen kann. Es wird keine Lösung sein, bei der einfach nur ein kleiner Parameter geändert wird, da der Standard-ibid-Tracker sich nur an die letzte Quelle erinnert und daher nicht erst beim zweiten Folgezitat anschlagen kann. Prinzipiell kann man den Standardtracker aber nachbauen, indem man sich an die letzten n Zitate erinnert und dann überprüft, ob die gleich sind. So komplex sollte das nicht werden. Lediglich mit Seitenumbrüchen muss man dann unter Umständen aufpassen, da man je nach gewünschter Ausgabe (siehe auch meine Frage bei TeX.SX) mehr Seitenzahlen nachverfolgen muss.

bistro
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 25.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2019, 09:05     Titel:
  Antworten mit Zitat      
Bitte entschuldigt das Crossposting (ich bin schon etwas länger bemüht, eine Lösung zu finden). Mit Blick auf ein anderes Problem (https://tex.stackexchange.com/quest.....e-citations-from-biblatex) erscheint mir eine Lösung möglich, bei der ich den Code für das ibidem-Makro kopiere und um eine weitere ifthenelse-Anweisung ergänze, oder? ... Die Bedingung \ifciteibid müsste nur dann auf true gesetzt werden, wenn der entsprechende Wert ein drittes Mal vorkommt.

... ich kenne mich allerdings in der Architektur des biblatex-Pakets nicht aus und verstehe auch die Syntax der renewbibmacro-Anweisungen größtenteils nicht (off topic: ich bin für Hinweise dankbar, wo das dokumentiert ist).

Ist das eine Hilfestellung?
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2019, 09:37     Titel:
  Antworten mit Zitat      
Gegen Crossposts an sich habe ich nichts einzuwenden, aber es sollte zum guten Ton gehören, auf beiden Seiten selbst darauf aufmerksam zu machen und Links zu setzen. Zum einen, damit Arbeit von Helfern nicht unnötig gedoppelt wird, und zum anderen, damit zukünftige Besucher mit ähnlichen Problemen von beiden Fragen profitieren können, insbesondere, wenn das Thema auf einer der beiden Seiten einschläft.

Ja, so in etwa wird das gehen. Das Problem ist dabei nicht so sehr die Änderung des cite-Makros, das Problem ist der zusätzliche Test, den wir ergänzen müssen. Den gibt es nämlich noch nicht. Wir müssten einen ibid-Tracker mit einem besseren Gedächtnis (die zwei vorherigen Werke) implementieren und dann den pagetracker richtig einsetzen (es ist etwas komplex, den Tracker einfach auf jeder Seite zurückzusetzen, denn LaTeX weiß nicht immer genau Bescheid, auf welcher Seite wir gerade sind: https://texfaq.org/FAQ-wrongpn, daher arbeitet biblatex an der Stelle etwas anders, was das gewünschte Ergebnis etwas schwieriger macht). Das ist alles also nicht ganz so simpel, dass man nur an einem Parameter schrauben müsste.

Dokumentiert ist biblatex in der biblatex-Dokumentation. Da wird an einigen Stellen aber schon etwas Wissen über BibTeX und normales LaTeX vorausgesetzt. Außerdem ist die Dokumentation schon jetzt sehr lang, dass oft keine langen Abhandlungen zu einzelnen Themen zu finden sind. Die Dokumentation ist auch mehr eine Referenz als eine Bauanleitung für einen eigenen Stil oder ein Tutorial. Am besten lernt man biblatex zur Zeit wohl, indem man sich guten Code ansieht, ihn nachvollzieht und versteht und dann selbst was baut und damit herumspielt.

Die generelle Funktionsweise von \newbibmacro ist ähnlich zu \newcommand.

bistro
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 25.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2019, 12:26     Titel:
  Antworten mit Zitat      
Bitte entschuldigt das Crossposting, ohne darauf aufmerksam zu machen!

Orientiert an den bisherigen Lösungen für ähnliche Probleme, kann ich mir folgende Lösung in Pseudocode für einen ibid-tracker vorstellen (Ich verstehe die TeX-macro-Syntax und leider nicht, mir sind die @-Verwendung und \if<variable>-Anweisungen usw. syntaktisch ein Rätsel, ich verstehe den scope von Funktionen nicht & weiß auch nicht genau, wie man Funktionen überhaupt definiert usw. daher nur Pseudocode; ich weiß auch nicht genau, wie die Macros beim Rendern eingebunden werden usw., vielleicht funktioniert das auch gar nicht, bitte entschuldigt):

Code • Öffne in Overleaf

Variables:
cbx@lasthash: hash value of the last citation (null in the first run?)
cbx@ibidcounter: counts the number of citations in a series
fullhash: hash value of the current citation

\makeatletter
\newcounter{cbx@ibidcounter} %counts the number of citations in a series
\providecommand*{\mkibid}[1]{#1}

\newbibmacro*{cite:ibid}{%
  \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}}

\renewbibmacro*{cite}{%
   
   if (cbx@lasthash empty) { %for the first run after reset (new chapter, page break etc.)
      cbx@lasthash = fullhash % set last citation hash = current citation hash
      \setcounter{cbx@ibidcounter}{-1} % initialize counter
   }

   if (cbx@lasthash equals fullhash) {
      \addtocounter{cbx@ibidcounter
}{1} % increase counter (maybe a limit is necessary to avoid overflow?)
   } else {
      \setcounter{cbx@ibidcounter
}{0} % reset counter
   }
   
   if (\ifnumgreater \value{cbx@ibidcounter} {1}) { % if cbx@ibidcounter is greater than a certain value (greater than 1 means: the third citation)
      \usebibmacro{cite:ibid} % use ibid
   } else {
      cbx@lasthash = fullhash % set last citation hash = current citation hash
   
      <code of cite-macro>
   
   }

}
\makeatother
 



Um den counter reset bei page breaks usw. zu machen, müsste

Code • Öffne in Overleaf

\setcounter{cbx@ibidcounter}{0}
 


an den jeweiligen Stellen ergänzt werden; das Reset ist mir aber nicht so wichtig, es wäre auch ok, wenn das erste Zitat auf einer neuen Seite mit "ibid." beginnt
Private Nachricht senden Benutzer-Profile anzeigen

Report404
Forum-Newbie
Forum-Newbie

Beiträge: 1
Anmeldedatum: 05.07.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2019, 14:06     Titel:
  Antworten mit Zitat      
Mahlzeit,
ich bin Latex-Frischling und neu im Forum und mich interessiert die Frage von OP auch sehr.
Ich habe leider nur einen etwas hässlichen Workaround, mit dem ich das og Problem momentan "per Hand" löse. Ich zitiere in Fußnoten mit dem Biblatexstile authortitle-dw.

Code • Öffne in Overleaf
% Bibliografie
   \usepackage[style=authortitle-dw,
            firstfull=false,
            autocite=footnote
]{biblatex}

blabla erste fußnote \footfullcite{quelle}
blabla zweite fußnote\footnote{\citeauthor{quelle}: \citetitle{quelle}}
blabla dritte fußnote \footcite[Vgl. ][S.123]{quelle}
 


Leider bekomme ich den Code nicht in Overleaf online ans Laufen, auf dem Rechner funktioniert er aber, wenn man biber vorher durchlaufen lässt. Ist natürlich alles andere als optimal, funktioniert aber zumindest in Verbindung mit authortitle-dw sehr zuverlässig.
Eventuell hilft einem auch der Befehl \citereset. Der setzt den Zähler wieder zurück.

Code • Öffne in Overleaf


\documentclass[a4paper, fontsize=11pt]{scrartcl}

\usepackage[ngerman]{babel}          
\usepackage[utf8]{inputenc}      
\usepackage[T1]{fontenc}          
         
\usepackage{blindtext}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Autor1999,
   author = {Vorname Nachname
},
   year = {1999},
   title = {Buchtitel},
   address = {Ort},
   publisher = {{Verlag}}
}
\end{filecontents}

\usepackage[bibstyle=authoryear, citestyle=authoryear-ibid, natbib=true, ibidtracker=context]{biblatex}

\addbibresource{\jobname.bib}


\begin{document}

Autor schreibt `Zitat' \citep[264]{Autor1999}, \\
und  `Zitat' \citereset \citep[23]{Autor1999} \\ %Hier wird der Zähler zurückgesetzt!!!
und `Zitat' \citep[431]{Autor1999}.

\printbibliography  

\end{document}
 


Ich lese weiterhin gespannt mit.

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de