Seite 1 von 1

o.J. bei \citeyear

Verfasst: Sa 20. Jun 2020, 20:12
von Gast

Sofern das Jahr nicht angegeben wird, wird über \DeclareLabeldate im Literaturverzeichnis und bei zitieren o.J. angegeben. Nun möchte ich gerne nach jemanden zitieren, sodass ausgegeben wird: nach Mustermann (o.J). Probiert habe ich das mittels: nach \citeauthor{mustermann} (\citeyear{mustrmann}). Dabei erhalte ich zwar in der Klammer, die passende Verlinkung zum Literaturverzeichnis, jedoch ein leeres Feld. Manuelle Eingabe von o.J fällt aufgrund der Verlinkung weg.
Wie kann ich das umsetzen?

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{hyperref
\usepackage[backend=biber, style=authoryear, dashed=false]{biblatex}

\DeclareLabeldate{
	\field{date}
	\field{year}
	\field{eventdate} 
	\field{origdate}
	\literal{nodate}
} % o.J bei keiner Angabe von Jahr

\begin{filecontents*}{\jobname.bib}
@online{mustermann,
  author      = {Max Mustermann},
  shortauthor = {MM},
  title       = {Titel},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
  \parencite{mustermann}

nach \citeauthor{mustermann} (\citeyear{mustermann})

  \printbibliography
\end{document}

Re: o.J. bei \citeyear

Verfasst: Sa 20. Jun 2020, 20:26
von MoeWe

Für Zitate dieser Bauart gibt es den Befehl \textcite. Wenn Du wirklich mal einen Befehl brauchst, der nur das labeldate ausgibt, dann kannst Du Dir in Analogie zu \citedate etwas eigenes bauen.

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{hyperref}
\usepackage[backend=biber, style=authoryear, dashed=false]{biblatex}

\DeclareLabeldate{
  \field{date}
  \field{year}
  \field{eventdate} 
  \field{origdate}
  \literal{nodate}
}

\DeclareCiteCommand{\citelabeldate}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\printlabeldate}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand*{\citelabeldate}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\printlabeldateextra}
  {\multicitedelim}
  {\usebibmacro{postnote}}


\begin{filecontents*}{\jobname.bib}
@online{mustermann,
  author      = {Max Mustermann},
  shortauthor = {MM},
  title       = {Titel},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
  \parencite{mustermann}

  nach \textcite{mustermann}

  wenn's sein muss \citelabeldate*{mustermann}
  
  \parencite{knuth:ct:b,knuth:ct:c}
  
  Achtung! \citelabeldate*{knuth:ct:b,knuth:ct:c} vs \citelabeldate{knuth:ct:b,knuth:ct:c}

  \printbibliography
\end{document}