Chronologisch zitierte Fußnoten mit Literaturverzeichnis

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


BsMayhem22
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 14. Apr 2018, 00:42

Chronologisch zitierte Fußnoten mit Literaturverzeichnis

Beitrag von BsMayhem22 »

Hallo zusammen,

ich hoffe ich kann hier ein wenig Hilfe für mein Problem/ Wunsch finden. Ich bin derzeit dabei meine Masterarbeit mit Latex zu schreiben und bin auf ein kleines Problem gestoßen, zu dem ich einfach, trotz stundenlanger Suche, keine Lösung finde.

Es geht darum, dass ich sowohl mit Fußnoten zitieren möchte, diese dann aber auch am Ende im Literaturverzeichnis stehen. Mit meinen Recherchen bin ich darauf gekommen, dass dies irgendwie mit Biblatex und biber zu realisieren scheint. Bis zu diesem Punkt bin ich dann auch gekommen, dass ich einzelne Quellen sowohl am Ende im Verzeichnis als auch als Fußnote bekomme. Nur werden diese nicht ganz richtig durchnummeriert. So kann ich z.B. nicht mehere Quellen an der gleichen Stelle angeben, daraufhin wird lediglich mit einer Nummer verwiesen und alle benutzten Quellen stehen in einer Fußnote, die lediglich mit Kommas getrennt werden. Auf der anderen Seite kann ich die gleiche Quelle nicht mehrmals pro Seite angeben, da so die Fußnote mit dem gleichen Verweis mehrmals mit unterschiedlichen Zahlen ausgegeben wird und die Nummerierung im Endverzeichnis nicht mehr stimmt. Ich habe es sowohl mit \footnote, \footcite, \cite und \footfullcite ausprobiert, aber ich bin noch nicht zum gewünschten Ergebnis gekommen.

Hier mein Minimalbsp:
\documentclass [11pt,ngerman,oneside]{article}                              %Dokumentenerzeugung

\usepackage[a4paper,left=3.5cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}  %Seitenmaß Din-A-4 mit Randangabe
\usepackage{babel}                                                          %Deutsches Latex
\usepackage{float}                                                          %Abbildungen im Fließtext
\usepackage[T1]{fontenc}                                                    %Westeuropäischer Zeichensatz
\usepackage[utf8]{inputenc}                                                 %Deutsche Umlaute im Text
\usepackage[onehalfspacing]{setspace}                                       %Zeilenabstand - 1.5 Zeilig


\usepackage[%
backend=biber,
bibstyle=chem-angew
]{biblatex}
\addbibresource{bediaBibliographie.bib}
\renewcommand{\thefootnote}{[\arabic{footnote}]}

\begin{filecontents*}{bediaBibliographie.bib}
@ARTICLE{1,
  author = {Max Muster},
  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}
} 

@ARTICLE{2,
  author = {Max Manni},
  title = {Tex Live Beispiel},
  journal = {LaTeX Science},
  year = {1999},
  pages = {1-3},
  timestamp = {2010.03.21},
  url = {http://www.golatex.de/wiki/index.php?title=Minimalbeispiel_zweites}
} 
\end{filecontents*}
                                         
\begin{document}
\section{Einleitung} 
\noindent
Das hier ist ein Testsatz.\footfullcite{1} Und ein Zweiter.\footfullcite{2} Zuletzt noch ein Dritter.\footfullcite{1}
Zum Schluss noch ein Satz mit mehreren Quellen.\footfullcite{1,2}

\newpage
\printbibliography
\newpage

\end{document}
Ich hoffe es kann mich jemand über meine Fehler erleuchten
:roll:

Gast

Beitrag von Gast »

Ich bin mir nicht ganz sicher, ob ich Dich richtig verstanden habe. Was Du zu möchten scheinst ist eine Art "Mini-Literaturverzeichnis" der auf dieser Seite genutzten Quellen in den Fußnoten. Dabei soll jede Quelle nur einmal vorkommen, außerdem sollen die Quellen so sortiert sein wie im vollständigen Verzeichnis am Ende.

Es gibt keinen Stil, der das von sich aus kann, das erfordert einiges an Gefrickel: https://tex.stackexchange.com/q/20637/35864 https://tex.stackexchange.com/q/35673/35864 https://tex.stackexchange.com/q/20787/35864 https://tex.stackexchange.com/q/20754/35864
https://tex.stackexchange.com/q/342485/35864

Gast

Beitrag von Gast »

Man könnte basierend auf Audreys Antwort in https://tex.stackexchange.com/a/71566/35864 zum Beispiel
\documentclass{article}
\usepackage[style=numeric-comp,sorting=none,citetracker,pagetracker=page]{biblatex}
\usepackage[colorlinks]{hyperref}

\makeatletter
% See https://tex.stackexchange.com/a/71566/35864
\let\cbx@savelist\@empty
\newcounter{cbx@tempcntc}
\newcounter{cbx@tempcntd}
\setcounter{cbx@tempcntd}{0}

\AtDataInput{%
  \csnumgdef{cbx@instcount@\thefield{entrykey}}{-1}}

% user-level citation command
\DeclareCiteCommand{\sfcite}[\cbx@superscript]
  {\usebibmacro{cite:init}%
   \let\multicitedelim\supercitedelim
   \iffieldundef{prenote}{}{\BibliographyWarning{Ignoring prenote argument}}%
   \iffieldundef{postnote}{}{\BibliographyWarning{Ignoring postnote argument}}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:super:foot}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}}

% save instcount, save key and last inline instcount if seen first on page
\newbibmacro*{cite:super:foot}{%
  \xdef\cbx@key{\thefield{entrykey}}%
  \ifsamepage{\value{instcount}}{\csuse{cbx@instcount@\cbx@key}}
    {}
    {\listxadd{\cbx@savelist}{\cbx@key}%
     \ifnumequal{\value{cbx@tempcntd}}{0}%
       {\defcounter{cbx@tempcntc}{\value{instcount}}%
        \loop\ifnum\value{cbx@tempcntc}>0
          \ifsamepage{\value{instcount}}{\value{cbx@tempcntc}}
            {\ifcsundef{blx@fnpage@\the\value{cbx@tempcntc}}
               {\setcounter{cbx@tempcntd}{\value{cbx@tempcntc}}}
               {}%
             \stepcounter{cbx@tempcntc}}
            {\setcounter{cbx@tempcntc}{0}}%
        \repeat}
       {}}%
  \csnumgdef{cbx@instcount@\cbx@key}{\value{instcount}}}

\newrobustcmd*{\cbx@superscript}[1]{%
  \mkbibsuperscript{\mkbibbrackets{#1}}%
  \cbx@footnote}

% defer citation footnotes to last inline reference instance on page
\newrobustcmd*{\cbx@footnote}{%
  \ifboolexpr{ not test {\ifdefempty{\cbx@savelist}}
               and test {\ifnumequal{\value{instcount}}{\value{cbx@tempcntd}}} }
    {\setlength{\footnotelabelnumberwidth}{0pt}%
     \cbx@sortlist@init%
     \let\do\cbx@measure@do
     \dolistloop{\cbx@savelist}%
     \footnotemargin \footnotelabelnumberwidth\relax
     \advance\footnotemargin by 0.5\bibitemsep\relax
     \let\do\cbx@do
     \dolistloop{\cbx@sortlist}%
     \global\let\cbx@savelist\@empty
     \setcounter{cbx@tempcntd}{0}}
    {}}

\newlength{\footnotelabelnumberwidth}
\newdimen\footnotemargin
\footnotemargin 2em\relax
\newcommand*\hangfootparskip{0.5\baselineskip}
\newcommand*\hangfootparindent{0em}%

% adapted from footmisc.sty
\long\def\@makehangfntext#1{%
  \bgroup
  \setbox\@tempboxa\hbox{%
    \ifdim\footnotemargin>0pt
      \hb@xt@\footnotemargin{\@makefnmark\hss}%
    \else
      \@makefnmark
    \fi
  }%
  \leftmargin\wd\@tempboxa
  \rightmargin\z@
  \linewidth \columnwidth
  \advance \linewidth -\leftmargin
  \parshape \@ne \leftmargin \linewidth
  \footnotesize
  \@setpar{{\@@par}}%
  \leavevmode
  \llap{\box\@tempboxa}%
  \parskip\hangfootparskip\relax
  \parindent\hangfootparindent\relax
  #1%
  \par\egroup
}
    
\def\cbx@fnsetup@cite{%
  \def\@makefnmark{\hbox{\normalfont\@thefnmark}}%
  \def\@thefnmark{%
    \printtext[labelnumberwidth]{%
      \printfield{labelprefix}%
      \printfield{labelnumber}}}}

\def\cbx@measure@do#1{%
  \begingroup
    \blx@resetdata
    \blx@getdata@cite{#1}%
    \blx@setoptions@type\abx@field@entrytype
    \blx@setoptions@entry
    \blx@execute
    \cbx@fnsetup@cite
    \blx@setlabwidth{\footnotelabelnumberwidth}{\@makefnmark}%
  \endgroup}

% print footnotes in 'sorting' order
\def\cbx@do#1{%
  \ifinlist{#1}{\cbx@savelist}
    {\begingroup
     \blx@resetdata
     \blx@getdata@cite{#1}%
     \blx@setoptions@type\abx@field@entrytype
     \blx@setoptions@entry
     \blx@execute
     \blx@beglang
     \let\@makefntext\@makehangfntext
     \cbx@fnsetup@cite
     \appto\@thefnmark{\blx@initunit}%
     \ifhyperref
       {\H@@footnotetext{\blx@driver\abx@field@entrytype}}
       {\@footnotetext{\blx@driver\abx@field@entrytype}}%
     \blx@endlang
     \endgroup}
    {}}

% access internal list of sorted entry keys
\def\cbx@sortlist@init{%
  \global\letcs{\cbx@sortlist}
    {blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}
\let\cbx@sortlist\@empty
\makeatother

\addbibresource{biblatex-examples.bib}

\begin{document}
\null\vfill\noindent
New citation.\sfcite{companion,geer}
New and recurrent citations.\sfcite{kant:ku,companion,sigfridsson}
Vanilla footnote with citation.\footnote{according to \cite{sigfridsson}}
\clearpage
\null\vfill\noindent
New citation.\sfcite{ctan}
Recurrent citations from previous and current pages.\sfcite{companion,ctan,worman}
Recurrent citations from previous and current pages.\sfcite{companion,ctan,worman,sigfridsson}
\clearpage
Hallo
\clearpage
Hallo\sfcite{companion}
\clearpage
Hallo
\clearpage
Hallo\sfcite{companion}
\clearpage
Hallo\cite{companion}
\clearpage
Hallo
\clearpage
\printbibliography
\end{document}
probieren. Getestet ist das mit biblatex 3.11, mit älteren Versionen wird es wahrscheinlich nicht funktionieren, da hier auf einige sehr interne Makros aufgebaut wird.

BsMayhem22
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 14. Apr 2018, 00:42

Beitrag von BsMayhem22 »

Das funktioniert perfekt und löst mein Problem komplett, vielen Dank! Ich hatte schon häufiger etwas von Audrey gesehen, konnte damit aber nie etwas zum Laufen bringen. Ich muss mich noch etwas tiefer in Latex einlesen :roll:

Vielen Dank nochmal. :D

Gast

Beitrag von Gast »

Ja, Audrey hat echt sehr viel Ahnung von biblatex. Es ist wirklich schade für biblatex, dass sie in letzter Zeit nicht mehr an dem Paket mitentwickelt hat und auch auf TeX.SX nicht mehr aktiv ist.

Wenn Du die komplizierteren ihrer Antworten beim ersten Versuch nicht zum Fliegen bekommst, solltest Du sie nicht als "geht nicht" wegsetzten, sondern ein bisschen herumstochern, ob sich eventuell ein paar Interna verändert haben. Manche dieser Antworten nutzen nicht dokumentierte und daher häufiger von Veränderungen betroffene interne Makros, um die komplexen Vorgaben zu erfüllen. Manchmal kann man eine nicht funktionierende Antwort wiederbeleben, wenn man ein bisschen Glück hat und die richtigen Dinge anpasst.

Ich war so frei, den Status auf "beantwortet" zu setzen.

Antworten