Mit \footcite auch URL angeben (style=authoryear)

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


InNe

Mit \footcite auch URL angeben (style=authoryear)

Beitrag von InNe »

Ein liebes Hallo an alle,

ich schreibe derzeit meine Bachelorthesis mit LaTex.. zum ersten Mal benutze ich LaTex. Es klappt auch alles soweit ganz gut.
Ich benutze authoryear als Style.

Allerdings verzweifele ich nun schon seit Langem an zwei Dingen:
Ich möchte gerne, dass mit \footcite ebenfalls die URL einer Internetquelle (@misc oder @online) angegeben wird.

Derzeit wird folgendes ausgegeben:
Vgl. Autor/Editor (Jahr)

Soweit, so gut. Nun benötige ich aber:
Vgl. Autor/Editor (Jahr), URL

Des weiteren muss, wenn kein Autor gegeben, stehen:
Vgl. Editor (Hrgs.) (Jahr) --> dieses Problem habe ich allgemein, auch bei @book

Bib-Code:
@Online{OICA,
  Title                    = {World Vehicles in use - All vehicles},
  Date                     = {2015-11-27},
  Editor                   = {OICA},
  Url                      = {http://www.oica.net/category/vehicles-in-use/},
  Year                     = {2005}
}
Anbei meine Datei (ich hoffe, dass passt so als Minimalbeispiel):
\documentclass[%
	a4paper,		
	oneside,			
	%twoside,		
	11pt,				
	onecolumn,		
	openany,		
	parskip=full,	
	bibliography=totoc,	
	pointlessnumbers,
	idxtotoc,
	liststotoc
	]{scrbook}
	
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\clearscrheadfoot
\setkomafont{pageheadfoot}{\normalfont\bfseries}
\renewcommand*\chapterpagestyle{scrheadings}
\renewcommand*\sectionmark[1]{\markright{\thesection\ #1}} 
\cfoot[-\pagemark-]{-\pagemark-}

\usepackage[style=authoryear, backend=bibtex, autocite=footnote]{biblatex}
\usepackage[babel,german=swiss, threshold=0, thresholdtype=words]{csquotes} 
\bibliography{biblio/biblio}

% / zwischen mehreren Autoren
\renewcommand{\multinamedelim}[0]{ / }
\renewcommand{\finalnamedelim}[0]{ / } 

% Runde Klammern in Fußnote um Jahreszahl
\DeclareFieldFormat{bibhyperrefparens}{\bibhyperref{\mkbibparens{#1}}}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
   {}%
      {\printtext[bibhyperrefparens]{%
          \printfield[]{labelyear}%
          \printfield[]{extrayear}%
          }%
      }%
}

% Initialen der Vornamen in Fußnote
\DeclareNameFormat{labelname}{%
 \ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
 \usebibmacro{name:andothers}} 

% Doppelpunkt nach der Jahreszahl
\renewcommand*{\labelnamepunct}{\addcolon\space} 

\begin{document}
\chapter{Text}
Beispieltext\footcite[Vgl.][Seite bei @misc und @online nicht angegeben]{OICA}
\end{document}
Ich hoffe, ihr könnt mir weiterhelfen.

Viele Grüße
InNe

Gast

Beitrag von Gast »

Du kannst den nötigen Code in das cite-Bibmacro einfügen
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\addspace}%
        \ifnamesequal{labelname}{editor}
          {\printtext[parens]{\usebibmacro{editorstrg}}}
          {}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}%
     \ifentrytype{online}
       {\setunit{\addcomma\space}%
        \usebibmacro{url}}
       {}}
    {\usebibmacro{cite:shorthand}}}
Der Block
        \ifnamesequal{labelname}{editor}
          {\printtext[parens]{\usebibmacro{editorstrg}}}
          {}%
erkennt, ob der angegebene Name mit dem Herausgeber übereinstimmt, wenn das der Fall ist, wird der String für den Herausgeber ausgegeben.

Das
     \ifentrytype{online}
       {\setunit{\addcomma\space}%
        \usebibmacro{url}}
       {}
am Ende fügt die URL für @online-Einträge hinzu.

Bitte beachte die Warnung, dass Du nur entweder year oder date benutzen darfst, ich denke, dass Dein date eigentlich ein urldate war.

Ich habe noch ein paar kleine Details angepasst, das waren aber häufig Geschmackssachen
\documentclass{article}   
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[style=authoryear, backend=bibtex, autocite=footnote]{biblatex}
\usepackage[babel,german=swiss, threshold=0, thresholdtype=words]{csquotes}

\begin{filecontents}{\jobname.bib}
@Online{OICA,
  Title                    = {World Vehicles in use - All vehicles},
  urldate                  = {2015-11-27},
  Editor                   = {OICA},
  Url                      = {http://www.oica.net/category/vehicles-in-use/},
  Year                     = {2005}
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

% / zwischen mehreren Autoren
\renewcommand{\multinamedelim}{ / }
\renewcommand{\finalnamedelim}{\multinamedelim}

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

% Runde Klammern in Fußnote um Jahreszahl
\DeclareFieldFormat{bibhyperrefparens}{\bibhyperref{\mkbibparens{#1}}}
\renewbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}%
    {\printtext[bibhyperrefparens]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}

% Initialen der Vornamen in Fußnote
\DeclareNameFormat{labelname}{%
 \ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
 \usebibmacro{name:andothers}}

% Doppelpunkt nach der Jahreszahl
\renewcommand*{\labelnamepunct}{\addcolon\space}

\begin{document}
Beispieltext\footcite[Vgl.][Seite bei @misc und @online nicht angegeben]{OICA} \cite{sigfridsson,worman,geer}
\end{document}

InNe

Beitrag von InNe »

Das klappt super!

Vielen, lieben Dank für die schnelle Hilfe!

Antworten