Wie kann ich \cite dazu bringen, die URL von @ONLINE auszudrucken?

Wie kann ich \cite dazu bringen, die URL von @ONLINE auszudrucken?

Ich verwende eine benutzerdefinierte Umgebung, {readon}um am Ende von Abschnitten einige zusätzliche Artikel und Websites zum Lesen anzugeben. Wie kann ich das ändern, \citesodass auch die URL für @ONLINEEinträge in dieser Liste gedruckt wird?

Bildbeschreibung hier eingeben

\documentclass{scrbook}

\usepackage[style=authortitle]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{lipsum}

\begin{filecontents}{\jobname.bib}
   @Online{penalties,
     author  = {David Carlisle},
     title   = {What are penalties and which ones are defined?},
     date    = {2012-04-09},
     url     = {https://tex.stackexchange.com/a/51264/4918},
     urldate = {2017-06-28},
   }
   @Book{texbytopic,
     author  = {Eijkhout, Victor},
     title   = {\TeX{} by Topic},
     address = {Berlin},
     year    = {2014},
   }
\end{filecontents}

\newenvironment{readon}{%
   \par\bigskip\noindent
   \footnotesize
   \textbf{Further reading \dots}
   \begin{itemize}
}{
   \end{itemize}
}

\begin{document}

\lipsum[1-3]

\begin{readon}
   \item \cite[155\psqq]{texbytopic}
   \item \cite{penalties} [[add URL here]]
\end{readon}

\printbibliography

\end{document}

Antwort1

Sie können das Zitatmakro ändern, um die URL für @onlineEinträge auszudrucken

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {}
       {\printnames{labelname}%
        \setunit{\printdelim{nametitledelim}}}%
     \usebibmacro{cite:title}}%
    {\usebibmacro{cite:shorthand}}%
  \usebibmacro{cite:url}}

\newbibmacro{cite:url}{%
  \ifentrytype{online}
    {\setunit{\addspace}%
     \printfield{url}}
    {}}

Da hierdurch das citeBibmacro geändert wird, ist die Lösung stilspezifisch authoryear, die allgemeine Idee lässt sich jedoch auf alle Stile anwenden.

Antwort2

Mit

\usepackage[style=authortitle]{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat{citeurl}{\ifentrytype{online}{[\url{#1}]}{}}

und dann

\begin{readon}
    \item \cite[155\psqq]{texbytopic} \citeurl{texbytopic}
    \item \cite{penalties} \citeurl{penalties}
\end{readon}

Bildbeschreibung hier eingeben

verwandte Informationen