footcite nach type selektieren & Abstand zw. footnotemar

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


Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

footcite nach type selektieren & Abstand zw. footnotemar

Beitrag von Crys »

Ich habe zwei Fragen bzw. Probleme beim zitieren in der Fußnote:
  • 1.) Ich möchte bei bestimmten Quellen (@online) immer den Titel mit in die Fußnote aufnehmen (wie es schon mit \xfootenote im Beispiel funktioniert), dass aber automatisch unterschieden wird, was für Quelle es ist. Ich habe aktuell schon alles mit \footenote drin.
  • 2.) Wie kann man den Abstand zwischen den \footnotemark vergrößern? Die 1 und 2 wirken wie eine 12.
    Ich finde nichts dazu, wie man das besser machen könnte?
\documentclass[twoside=false,parskip=half-]{scrbook}

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

\usepackage{csquotes}
\usepackage[
   backend=biber,
   style=authoryear,
]{biblatex}
%\addbibresource{literatur.bib}
\addbibresource{biblatex-examples.bib}

% Neues cite-Kommando oder altes \footcite-Kommando überschreiben
\DeclareCiteCommand{\xfootcite}[\mkbibfootnote] 
  {\usebibmacro{prenote}}                                 
  {\usebibmacro{citeindex}%
   \setunit{\addnbspace}
   \printnames{labelname}%
   \setunit{\labelnamepunct}
  \printfield[citetitle]{title}%
   \newunit
   \printfield{year}
}
  {\addsemicolon\space}
  {\usebibmacro{postnote}}

\begin{document}

%%% Inhalt %%%
\blindtext
\xfootcite[Vgl.][(online)]{itzhaki}
\xfootcite[Vgl.][]{markey}

\blindtext
\xfootcite[Vgl.][S.66f]{piccato}
\footcite[Vgl.][(online)]{wassenberg}

\blindtext
\footcite[Vgl.][]{wilde}
\footcite[Vgl.][S.66f]{worman}


%%% Literatur Verzeichnis %%%
%\nocite{*}
\printbibheading[
	%heading=subbibintoc,
	%title=Blub
]
\printbibliography[
	type=book, 
	title={Bücher}, 
	heading=subbibliography
]
\printbibliography[
	type=online, 
	title={Internet}, 
	heading=subbibliography
]

\end{document}

Gast

Beitrag von Gast »

Zu Deinem ersten Problem würde ich einfach nur das cite redefinieren, um den Titel auch für @online-Quellen zu erzeugen, wenn der Autor vorhanden ist
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \ifentrytype{online}% <------- this is new
          {\setunit{\nametitledelim}%
           \usebibmacro{cite:label}}
          {}%<----- up to (and including) here
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}}
Für Dein zweites Problem würde ich Dir raten, direkt aufeinander folgende Fußnoten zu vermeiden und sie in einen \footcites-Befehl zu stopfen:
\footcites[Vgl.][]{wilde}[Vgl.][66\psq]{worman}
MWE
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{csquotes}
\usepackage[
   backend=biber,
   style=authoryear,
]{biblatex}
%\addbibresource{literatur.bib}
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \ifentrytype{online}
          {\setunit{\nametitledelim}%
           \usebibmacro{cite:label}}
          {}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}}

\begin{document}

%%% Inhalt %%%
Lorem ipsum
\footcite[Vgl.][(online)]{itzhaki}
\footcite[Vgl.][]{markey}

dolor
\footcite[Vgl.][66\psq]{piccato}
\footcite[Vgl.][(online)]{wassenberg}

sit amet.
\footcites[Vgl.][]{wilde}[Vgl.][66\psq]{worman}


%%% Literatur Verzeichnis %%%
%\nocite{*}
\printbibheading[
   %heading=subbibintoc,
   %title=Blub
]
\printbibliography[
   type=book,
   title={Bücher},
   heading=subbibliography
]
\printbibliography[
   type=online,
   title={Internet},
   heading=subbibliography
]

\end{document}

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Vielen Dank, für deine schnelle Hilfe!

Ich wusste gar nicht, dass es den Befehl \footcites gibt, ist mir nie aufgefallen.

Und muss gestehen, dass ich nicht genau verstehe, wie \renewbibmacro funktioniert, bzw. habe ich mich damit noch nicht richtig beschäftigt.

Ich hätte gerne noch am Ende in der Fußzeile bei @online Typen ein (online) stehen, so als ob man direkt \footcite[(online)]{itzhaki} eintippt. Kannst du mir da noch bitte helfen? :?

Gast

Beitrag von Gast »

biblatex hat seine eigenen Befehle, um die Makros zu ändern, unter Anderem eben \renewbibmacro. Wenn Du Lust hast, kannst Du Dir die Dokumentation ja mal zu Gemüte führen ([d]biblatex[/d]), ist aber ein harter Brocken.

Nun zu Deiner Anfrage:
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \ifentrytype{online}
          {\setunit{\nametitledelim}%
           \usebibmacro{cite:label}}
          {}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}
    \ifentrytype{online}  
      {\printtext[parens]{online}}
      {}}
Sollte es wohl tun.

Oder
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \ifentrytype{online}
          {\setunit{\nametitledelim}%
           \usebibmacro{cite:label}}
          {}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}
    \ifentrytype{online}  
      {\setunit{\addcomma\space}
        \printtext[parens]{online}}
      {}}

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Danke, ich habe mir schon das Buch "Bibliographien mit Latex" gekauft. Werde mich damit ganz sicher mehr beschäftigen (müssen). :)

Dein Code funktioniert sehr gut. Mir ist gerade aber noch etwas aufgefallen, wenn ich kein Datum in den Quellen angegeben habe (und gerade bei den Online-Quellen kann man nicht immer das Datum angeben) erscheint ein unschönes "o.D.". Wie kann man einstellen, dass wenn ein Datum gegeben ist, dieses ausgegeben wird und falls nicht, dass (in der Fußnote) einfach kein Datum steht? :?
Ich habe etwas mit \DeclareLabeldate probiert, aber weiß nicht man genau ob es das richtige ist.

Gast

Beitrag von Gast »

Das sollte eigentlich genau das Richtige sein:
\DeclareLabeldate{%
  \field{date}
  \field{eventdate}
  \field{origdate}
  \field{urldate}
}

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Wenn ich das so eintrage, dann werden alle Kurzverweise ohne Datum in der Quelle auch ohne Autor dargestellt. Ich verstehe nicht wieso?

Ich bekomme gerade kein MWE in einer Datei hin. Ich habe aus der biblatex-examples.bib einfach bei zwei Quellen deb date Eintrag entfernt.

Gast

Beitrag von Gast »

Nun ja, da hast Du das Problem, wenn Du bei nicht-Internet-Quellen das Jahr entfernst, dass dann nur noch der Name da stehen würde.

Wenn Dir das egal ist (weil die einzigen Quellen ohne Jahr vom Typ @online sind), dann kannst Du das cite-Makro so verändern
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \ifentrytype{online}
          {\setunit{\nametitledelim}%
           \usebibmacro{cite:label}}
          {}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}}
Das hebelt den Prüfmechanismus für das Jahr aus.

Antworten