Fussnoten anzeigen lassen

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Gast

Beitrag von Gast »

Vielen Dank für die Vorlage!

Könnte man sonst bei der ersten Quelle der Seite die Seitenzahlen in [] angeben und dann einfach alle Seiten dort hinzufügen (manuell)?? Also z.B.:

Hallo^1 Blablabla^2 Tschüss^1

Und dann schreibt man hinter Hallo als Befehl [S.12,45], angenommen, Hallo würde von der Seite 12 und Tschüss von der Seite 45 stammen... Sozusagen würde man die erste Fussnote mit allen Seiten der Quellen, welche auf dieser Seite verwendet werden, schreiben.

Gast

Beitrag von Gast »

Das geht natürlich. Die Idee von biblatex und LaTeX ist zwar, dass Du nicht darüber nachdenken musst, welche Zitate mit welchen Seitenangaben auf derselben Seite landen, aber wenn es unbedingt so aussehen muss, fällt mir im Moment auch nichts Besseres ein.

Gast

Beitrag von Gast »

Die Idee von biblatex und LaTeX ist zwar, dass Du nicht darüber nachdenken musst, welche Zitate mit welchen Seitenangaben auf derselben Seite landen
Bis jetzt konnte ich das Problem leider nicht lösen, weshalb ich es zumindest im Moment anders probieren muss. Falls mir aber später noch jemand helfen kann, würde es mich natürlich sehr freuen! :wink:

Vielen Dank nochmals für deine Hilfe! :D

Nun wollte ich die Seitenzahl mit [] einfügen, allerdings erscheint die Zahl im Text und nicht in der Fussnote. Was mache ich falsch?
\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}
\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}}}

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

\begin{document}
First citation.\autocite{sigfridsson}[S.11]
First citation.\autocite{herrmann}
Some recurrent citations on same page.\autocite{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\autocite{sigfridsson}
Recurrent on different pages.\autocite{herrmann}
New citation on same page.\autocite{doody}
Some recurrent citations on same page.\autocite{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}

Gast

Beitrag von Gast »

Das optionale Argument für die Seitenzahl gehört vor die geschweiften Klammern. Außerdem kann man sich normalerweise das 'S.' sparen, biblatex kann das selbst.

Ich habe noch ein bisschen herumprobiert und die folgende Lösung zusammengebastelt, die die Seitenzahlen sammeln können sollte. Du gibst bei jedem Zitat wie gewohnt die Seitenzahl an, die Zahlen werden gesammelt und pro Seite dem ersten Zitat dieser Quelle zugeschlagen.

Ich weiß nicht genau, wie stabil das in Spezialfällen ist, aber im Beispiel tut es, was es soll.
\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}
\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}}}}
  {}
  {}
\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.\autocite[270]{sigfridsson}
Recurrent on different pages.\autocite[90]{herrmann}
New citation on same page.\autocite[28]{doody}
Some recurrent citations on same page.\autocite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}

Gast

Beitrag von Gast »

Hallo

Vielen Dank für deine grossartige Hilfe!! :D :D
Bis jetzt funktioniert es wunderbar! :wink:
Ich weiß nicht genau, wie stabil das in Spezialfällen ist, aber im Beispiel tut es, was es soll.
Solange du unter Spezialfällen nicht eine lange Arbeit meinst, sollte es bei mir hoffentlich funktionieren...

Nochmals vielen Dank!

Gast

Beitrag von Gast »

Solange du unter Spezialfällen nicht eine lange Arbeit meinst, sollte es bei mir hoffentlich funktionieren...
Nein, das nicht, aber in langen Arbeiten ist die Chance auf einen unglücklichen Zufall natürlich höher. Du solltest Dir also alle Zitate vor dem Drucken nochmal genau ansehen und sie überprüfen.

Problematisch kann es werden, wenn Seitenzahlen zweimal vergeben werden, also wenn Du irgendwo \setcounter{page} schreibst.

Es kann auch passieren, dass Zitate an Seitengrenzen Probleme verursachen, entweder indem sie zwischen zwei Seiten hin und her springen oder indem sie einen der Tests überlisten, die überprüfen sollen, ob zwei Quellen auf derselben Seite sind.

Eine Entwicklerin von biblatex hat mich außerdem darauf aufmerksam gemacht, dass mein \iflastciteonsamepage, das ich aus einer ihrer Antworten extrahiert habe (https://tex.stackexchange.com/a/275524/35864), eventuell auch problematisch ist. Ich kann also nicht garantieren, dass es in der Definition nicht systemische Fehler gibt, die ich übersehen habe. Bis jetzt hat der Befehl immer funktioniert wie gewünscht, aber so exzessiv habe ich ihn auch noch nicht gebraucht.

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

Beitrag von u_fischer »

Wenn ich sowas sehe, wünsche ich mir zu wissen, wer solche Vorgaben macht, damit ich mal einen bösen Brief schreiben kann. Da kann man ja die Seitenzahlen gleich weglassen, oder ein paar zufällige Zahlen hinschreiben. Es interessiert den Autor ja sowieso nicht, ob der Leser die Quelle korrekt identifiziert oder nicht.

Antworten