Vgl. in Fussnote einfügen, falscher Ort

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


neeSch

Vgl. in Fussnote einfügen, falscher Ort

Beitrag von neeSch »

Hallo

Ich habe gemerkt, dass ich bei meinen Quellen jeweils ein Vgl. angeben muss, wenn es sich nicht um ein Zitat handelt.
Wenn ich dies allerdings einfüge, erscheint es am Ende der Fussnote.

Was muss ich ändern, damit es so aussieht:

Vgl. Autor...



Vielen Dank schon mal im Voraus
\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][Vgl.]{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}

Beinschuss
Forum-Meister
Forum-Meister
Beiträge: 809
Registriert: Di 2. Okt 2012, 21:42
Wohnort: NRW

Beitrag von Beinschuss »

First citation.\autocite[Vgl.][17]{sigfridsson}
sollte das gewünschte liefern. Wobei dabei die Nachteile des Zusammenfassens von Zitaten hier besonders deutlich werden: Das klappt nur beim ersten Zitat (so wie der Stil jetzt programmiert ist), wirkt sich aber auch auf das zweite Auftreten aus, selbst wenn das ein direktes Zitat sein sollte.

neeSch

Beitrag von neeSch »

Hallo Beinschuss

Vielen Dank für die rasche Hilfe.
First citation.\autocite[Vgl.][17]{sigfridsson}
Ja, das würde funktionieren. Allerdings handelt es sich bei mir um eine Internetquelle und dann habe ich keine Seitenzahl. Wenn die Seitenzahl fehlt (siehe unten), dann funktioniert es nicht mehr...

Habe es nun auch versucht, ob es funktionieren würde, wenn ich anstatt \autocite bei einem Zitat immer \cite nehmen würde, aber es funktioniert leider nicht. Es wird dann nicht zwei mal aufgelistet.

Bei mir sollte das Zitat zusätzlich zu den anderen Fussnoten, die zusammengenommen werden müssen, aufgelistet werden.
Also wenn ich z.B. Buch A und dann nochmals Buch A verwende, sollte nur einmal die Fussnote mit Buch A ausgegeben werden, doch wenn zusätzlich noch ein Zitat mit Buch A verwendet wird, muss eine Fussnote mit Vgl. Buch A und eine mit Buch A, aber ohne Vgl. vorhanden sein...

Hat jemand eine Idee, wie ich das hinbekommen könnte?

\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[Vgl.]{sigfridsson}
First citation.\autocite[19]{herrmann}
"`Some recurrent citations on same page."'\cite{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}

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

neeSch hat geschrieben:Wenn die Seitenzahl fehlt (siehe unten), dann funktioniert es nicht mehr...
Nimmt man nur eine Klammer, wird diese automatisch für das zweite optionale Argument genutzt. Möchtest du explizit nur vor dem Zitat etwas hinzufügen, musst du die zweite Klammer leer lassen.

Ergo:
\autocite[Vgl.][]{sigfridsson}
sollte also das liefern, was du möchtest.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Wenn Du keine Seitenzahl hast, dann darfst Du die Klammer nicht weglassen, Du musst sie leer lassen.
First citation.\autocite[Vgl.][]{sigfridsson}
Dieser Zitierstil ist doch totaler Schwachsinn. Ulrike und ich haben schon in http://golatex.de/fussnoten-anzeigen-lassen-t19790.html und http://golatex.de/mehrere-fussnoten-mit ... 19826.html auf die Probleme dieses Stils hingewiesen. Wenn ein Werk häufiger zitiert wird, ist es für den Leser überhaupt nicht mehr möglich, schnell vernünftig zu erkennen, welche Fundstelle zu welcher Fußnote gehört. Versuch doch mal mit den verantwortlichen in Kontakt zu treten, das Ganze ist ja nicht nur für die Leserin eine Zumutung, sondern auch für diejenige, die die Arbeit schreibt.

Hier aber trotzdem ein Lösungsversuch.#
Es gibt nunmehr zwei Befehle \hypercite und \hypercitevgl. Ersterer ist für Direktzitate ohne 'Vgl.', letzterer fügt 'Vgl.' sogar automatisch hinzu. Die Befehle funktionieren nach demselben Prinzip aber unabhängig voneinander, so kannst Du alle 'Vgl.'-Seiten mit \hypercitevgl zusammentragen und alle nicht-'Vgl.'-Seiten mit \hypercite. Es ist für \hypercitevgl dann nicht mehr nötig, dass 'vgl.' manuell dazuzuschreiben.
\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
\newbibmacro{cite:init}[1]{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}@#1}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{\value{instcount}}}

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

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

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

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

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

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

\DeclareCiteCommand{\hypercitevgl}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:init}{vgl}%
   \usebibmacro{postnote:save}{vgl}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage{vgl}}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}@vgl}}}
     {\mkbibfootnote{%
        \printtext{Vgl.}\setunit{\addspace}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}{vgl}%
        \usebibmacro{special:postnote}{vgl}}}}
  {}
  {}
\makeatother


\begin{document}
First citation.\hypercitevgl[8]{sigfridsson}
First citation.\hypercite[19]{herrmann}
"`Some recurrent citations on same page."'\hypercite[15]{sigfridsson}
Third  citation.\hypercitevgl{sigfridsson}
"`Some recurrent citations on same page."'\hypercite[17]{sigfridsson}
Third  citation.\hypercitevgl[9]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\hypercite[270]{sigfridsson}
Recurrent on different pages.\hypercite[90]{herrmann}
New citation on same page.\hypercite[28]{doody}
Some recurrent citations on same page.\hypercite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}
Wenn Du das so direkt in Dein Dokument einfügst, musst Du unter Umständen zuerst die temporären Dateien löschen (.aux, ...), da es sonst beim ersten Kompilationslauf, bei dem noch die alten Definitionen in der .aux-Datei wohnen, Probleme gibt.

neeSch

Beitrag von neeSch »

Vielen Dank für eure Lösungen.
Ich MUSS es leider so machen... :(

Nun habe ich noch eine Frage. Ich würde mehrere Fussnoten gerne mit einem Komma trennen. Allerdings funktioniert es beim Beispiel von Gast nicht mehr, da der Befehl ja umdefiniert wurde..

Leider habe ich noch nicht ganz rausgefunden, wie es mit dem \hypercitevgl bzw. dem \hypercite Befehl geht.

So meine ich es mit den Kommas:
\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}

\cleardoublepage
\printbibliography
\end{document}
Und diese Version würde ich nun gerne übernehmen (von Gast, da dann das Vgl. automatisch hinzugefügt würde), wenn man auch mehrere Quellen bzw. Fussnoten mit einem Komme trennen könnte:

\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
\newbibmacro{cite:init}[1]{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}@#1}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{\value{instcount}}}

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

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

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

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

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

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

\DeclareCiteCommand{\hypercitevgl}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:init}{vgl}%
   \usebibmacro{postnote:save}{vgl}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage{vgl}}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}@vgl}}}
     {\mkbibfootnote{%
        \printtext{Vgl.}\setunit{\addspace}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}{vgl}%
        \usebibmacro{special:postnote}{vgl}}}}
  {}
  {}
\makeatother


\begin{document}
First citation.\hypercitevgl[8]{sigfridsson}
First citation.\hypercite[19]{herrmann}
"`Some recurrent citations on same page."'\hypercite[15]{sigfridsson}
Third  citation.\hypercitevgl{sigfridsson}
"`Some recurrent citations on same page."'\hypercite[17]{sigfridsson}
Third  citation.\hypercitevgl[9]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\hypercite[270]{sigfridsson}
Recurrent on different pages.\hypercite[90]{herrmann}
New citation on same page.\hypercite[28]{doody}
Some recurrent citations on same page.\hypercite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}

Gast

Beitrag von Gast »

Die Idee mit funktioniert auch hier
\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}
\DeclareAutoCiteCommand{hypervgl}{\hypercitevgl}{\hypercitevgls}
\ExecuteBibliographyOptions{autocite=hyper}

\makeatletter
\newbibmacro{cite:init}[1]{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}@#1}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{\value{instcount}}}

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

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

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

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

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

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

\DeclareCiteCommand{\hypercitevgl}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:init}{vgl}%
   \usebibmacro{postnote:save}{vgl}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage{vgl}}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}@vgl}}}
     {\mkbibfootnote{%
        \printtext{Vgl.}\setunit{\addspace}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}{vgl}%
        \usebibmacro{special:postnote}{vgl}}}}
  {}
  {}

\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}} 
\DeclareMultiCiteCommand{\hypercitevgls}{\hypercitevgl}{\mkbibsuperscript{\supercitedelim}} 
\makeatother


\begin{document}
First citation.\hypercitevgl[8]{sigfridsson}
First citation.\hypercite[19]{herrmann}
"`Some recurrent citations on same page."'\hypercite[15]{sigfridsson}
Third  citation.\hypercitevgl{sigfridsson}
"`Some recurrent citations on same page."'\hypercite[17]{sigfridsson}
Third  citation.\hypercitevgl[9]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\hypercitevgls[270]{sigfridsson}[91]{herrmann}
Recurrent on different pages.\hypercite[90]{herrmann}
New citation on same page.\hypercite[28]{doody}
Some recurrent citations on same page.\hypercite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}
Da es nun zwei Befehle gibt, benutze ich im Beispiel \autocite nicht mehr, je nach dem, was häufiger ist - mit "Vgl." oder ohne -, kannst Du aber \autocite entweder als \hypercite oder \hypercitevgl definieren. Hier ist es \hypercite, wenn Du die Zeile \ExecuteBibliographyOptions{autocite=hyper} zu \ExecuteBibliographyOptions{autocite=hypervgl} änderst, bekommst Du \hypercitevgl.

neeSch

Beitrag von neeSch »

Vielen Dank!
Das klappt schon wunderbar. Mithilfe von
\ExecuteBibliographyOptions{autocite=hypervgl}
muss ich sogar nur wenige Fussnoten ändern. Vielen Dank! :)

Eine kleine Frage habe ich allerdings nochmals:
Bis jetzt konnte ich \autocites{xx,bb} (siehe Citation with three footnotes.) schreiben und die Zahlen wurden mit Komma getrennt. Nun funktioniert es "nur", wenn ich \autocites{xx}{bb} (siehe Citation with two footnotes.) schreibe.
\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}
\DeclareAutoCiteCommand{hypervgl}{\hypercitevgl}{\hypercitevgls}
\ExecuteBibliographyOptions{autocite=hypervgl}

\makeatletter
\newbibmacro{cite:init}[1]{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}@#1}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{\value{instcount}}}

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

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

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

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

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

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

\DeclareCiteCommand{\hypercitevgl}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:init}{vgl}%
   \usebibmacro{postnote:save}{vgl}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage{vgl}}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}@vgl}}}
     {\mkbibfootnote{%
        \printtext{Vgl.}\setunit{\addspace}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}{vgl}%
        \usebibmacro{special:postnote}{vgl}}}}
  {}
  {}

\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}} 
\DeclareMultiCiteCommand{\hypercitevgls}{\hypercitevgl}{\mkbibsuperscript{\supercitedelim}} 
\makeatother


\begin{document}
First citation.\hypercitevgl[8]{sigfridsson}
Citation with two footnotes.\autocites{herrmann}{sigfridsson}
Citation with three footnotes.\autocites{herrmann,sigfridsson,doody}
First citation.\hypercite[19]{herrmann}
"`Some recurrent citations on same page."'\hypercite[15]{sigfridsson}
Third  citation.\hypercitevgl{sigfridsson}
"`Some recurrent citations on same page."'\hypercite[17]{sigfridsson}
Third  citation.\hypercitevgl[9]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\hypercitevgls[270]{sigfridsson}[91]{herrmann}
Recurrent on different pages.\hypercites{herrmann}{sigfridsson}
New citation on same page.\hypercite[28]{doody}
Some recurrent citations on same page.\hypercite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}
Was muss ich da noch ändern?

Wäre schön, wenn es klappen würde, denn sonst müsste ich alle "Mehrfach-Fussnoten" suchen. Aber es wäre auch nicht so schlimm...

Gast

Beitrag von Gast »

\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}
\DeclareAutoCiteCommand{hypervgl}{\hypercitevgl}{\hypercitevgls}
\ExecuteBibliographyOptions{autocite=hypervgl}

\makeatletter
\newbibmacro{cite:init}[1]{%
  \ifcsundef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}
    {\csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{0}}
    {}%
  \csnumgdef{cbx@instcount@last@\the\c@refsection @\thefield{entrykey}@#1}{%
    \csuse{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}}%
  \csnumgdef{cbx@instcount@curr@\the\c@refsection @\thefield{entrykey}@#1}{\value{instcount}}}

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

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

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

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

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

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

\DeclareCiteCommand{\hypercitevgl}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:init}{vgl}%
   \usebibmacro{postnote:save}{vgl}%
   \ifboolexpr{test {\ifciteseen} and test {\iflastciteonsamepage{vgl}}}
     {\footref{cbx@\csuse{cbx@f@\thefield{entrykey}@vgl}}}
     {\mkbibfootnote{%
        \printtext{Vgl.}\setunit{\addspace}%
        \usebibmacro{cite}%
        \usebibmacro{footcite:save}{vgl}%
        \usebibmacro{special:postnote}{vgl}}}}
  {\mkbibsuperscript{\supercitedelim}}
  {}

\DeclareMultiCiteCommand{\hypercites}{\hypercite}{\mkbibsuperscript{\supercitedelim}}
\DeclareMultiCiteCommand{\hypercitevgls}{\hypercitevgl}{\mkbibsuperscript{\supercitedelim}}
\makeatother


\begin{document}
First citation.\hypercitevgl[8]{sigfridsson}
Citation with two footnotes.\autocites{herrmann}{sigfridsson}
Citation with three footnotes.\autocites{herrmann,sigfridsson,doody}
First citation.\hypercite[19]{herrmann}
"`Some recurrent citations on same page."'\hypercite[15]{sigfridsson}
Third  citation.\hypercitevgl{sigfridsson}
"`Some recurrent citations on same page."'\hypercite[17]{sigfridsson}
Third  citation.\hypercitevgl[9]{sigfridsson}

\cleardoublepage
Recurrent citation on different page.\hypercitevgls[270]{sigfridsson}[91]{herrmann}
Recurrent on different pages.\hypercites{herrmann}{sigfridsson}
New citation on same page.\hypercite[28]{doody}
Some recurrent citations on same page.\hypercite[280]{sigfridsson}

\cleardoublepage
\printbibliography
\end{document}

neeSch

Beitrag von neeSch »

Herzlichen Dank!! :)
Nun klappt es wie gewünscht. :wink:

Antworten