Querverweise für den Autorennamen von \textcite und parencite als Possessivpronomen, die nicht auf das Zitat verweisen (BibLatex)

Querverweise für den Autorennamen von \textcite und parencite als Possessivpronomen, die nicht auf das Zitat verweisen (BibLatex)

Ich versuche, das zu verknüpfen Author Name.

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}

@article{mcintosh1997rhythmic,
  title={Rhythmic auditory-motor facilitation of gait patterns in patients with Parkinson's disease.},
  author={McIntosh, Gerald C and Brown, Susan H and Rice, Ruth R and Thaut, Michael H},
  journal={Journal of Neurology, Neurosurgery \& Psychiatry},
  volume={62},
  number={1},
  pages={22--26},
  year={1997},
  publisher={BMJ Publishing Group Ltd}
}

\end{filecontents}


\documentclass[british]{article}

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

\usepackage{csquotes}
\usepackage[%
  style=authoryear, 
  backend=biber, 
  maxcitenames=2,
  giveninits % <========================================================
]{biblatex}
\addbibresource{\jobname.bib} % \jobname to use the bib file created with filecontents
\DeclareNameAlias{sortname}{family-given}

\usepackage[unicode,colorlinks,citecolor=blue]{hyperref} % <============
\renewcommand*{\nameyeardelim}{\addcomma\space}

\newcommand{\mycite}[1]{\citeauthor{#1}'s \citeyear{#1}} % <============

\DeclareCiteCommand{\citeauthor} % <====================================
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printtext[bibhyperref]{\printnames{labelname}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}


\begin{document}

According to \citeauthor{mcintosh1997rhythmic}'s studies \autocite*{mcintosh1997rhythmic}, blablabla 

\mycite{mcintosh1997rhythmic} ->        McIntosh et al. (1990)\\
\textcite{mcintosh1997rhythmic}   ->        McIntosh et al. (1997)\\
\parencite{mcintosh1997rhythmic}  ->        (McIntosh et al., 1997)\\
\printbibliography
\end{document}

Die Ausgabe:

Bildbeschreibung hier eingeben

Nur das yearist ein Link. Das author nameverlinkt es nicht.

Antwort1

Um das gewünschte Ergebnis zu erzielen, müssen Sie Ihrer Präambel den folgenden Code hinzufügen:

\DeclareCiteCommand{\citeyear} % <======================================
    {}
    {(\bibhyperref{\printdate})}
    {\multicitedelim}
    {}

\DeclareCiteCommand{\parencite} % <=====================================
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{(\usebibmacro{cite}})}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\makeatletter
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{% <============================================
   \bibhyperref{%
   \let\bibhyperref\relax\relax%
   \abx@macro@textciteOrig%
   }%
}%
\makeatother

Dieser Code ändert die Befehle \citeyearund fügt bei Bedarf den Hyperlink und \parencitedie Klammern hinzu.\textcite()

Bitte beachten Sie das folgende vollständige MWE

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}

@article{mcintosh1997rhythmic,
  title={Rhythmic auditory-motor facilitation of gait patterns in patients with Parkinson's disease.},
  author={McIntosh, Gerald C and Brown, Susan H and Rice, Ruth R and Thaut, Michael H},
  journal={Journal of Neurology, Neurosurgery \& Psychiatry},
  volume={62},
  number={1},
  pages={22--26},
  year={1997},
  publisher={BMJ Publishing Group Ltd}
}
\end{filecontents}


\documentclass[british]{article}

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

\usepackage{csquotes}
\usepackage[%
  style=authoryear, 
  backend=biber, 
  maxcitenames=2,
  giveninits
]{biblatex}
\addbibresource{\jobname.bib} % \jobname to use the bib file created with filecontents
\DeclareNameAlias{sortname}{family-given}

\usepackage[unicode,colorlinks,citecolor=blue]{hyperref}
\renewcommand*{\nameyeardelim}{\addcomma\space}

\newcommand{\mycite}[1]{\citeauthor{#1}'s \citeyear{#1}}

\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printtext[bibhyperref]{\printnames{labelname}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\citeyear} % <======================================
    {}
    {(\bibhyperref{\printdate})}
    {\multicitedelim}
    {}

\DeclareCiteCommand{\parencite} % <=====================================
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{(\usebibmacro{cite}})}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\makeatletter
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{% <============================================
   \bibhyperref{%
   \let\bibhyperref\relax\relax%
   \abx@macro@textciteOrig%
   }%
}%
\makeatother


\begin{document}

According to \citeauthor{mcintosh1997rhythmic}'s studies 
\autocite*{mcintosh1997rhythmic}, blablabla 

\verb|\mycite|: \mycite{mcintosh1997rhythmic} ->        McIntosh et al. (1990) 

\verb|\textcite|: \textcite{mcintosh1997rhythmic}   ->        McIntosh et al. (1997) 

\verb|\parencite|: \parencite{mcintosh1997rhythmic}  ->        (McIntosh et al., 1997) 

\printbibliography
\end{document}

und sein Ergebnis:

resultierende Bibliographie

Antwort2

Um die öffnende Klammer (aus dem Hyperlink auszuschließen, \parencite{}sollten wir den folgenden Befehl verwenden:

\DeclareCiteCommand{\parencite} % <=====================================
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   (\printtext[bibhyperref]{\usebibmacro{cite}})}
  {\multicitedelim}
  {\usebibmacro{postnote}}

verwandte Informationen