在引用标签中链接作者和年份 - style=ext-authoryear

在引用标签中链接作者和年份 - style=ext-authoryear

我想知道引文标签中的作者如何也能成为超链接的一部分。我手动更改了参考文献的样式。以下 MWE 显示了我使用的包。

\begin{filecontents}{\jobname.bib}
    @book{Labov1972,
        Address = {Philadelphia},
        Author = {William Labov},
        Publisher = {University of Pennsylvania Press},
        Title = {Sociolinguistic Patterns},
        Year = {1972}}

    @book{Chomsky1957,
        Address = {The Hague},
        Author = {Noam Chomsky},
        Publisher = {Mouton},
        Title = {Syntactic Structures},
        Year = {1957}}
\end{filecontents}
\documentclass[]{scrreprt}
\usepackage{hyperref}
\usepackage[ngerman]{babel} 
%----------------------------------------------------------------------
% Bibliothek
%----------------------------------------------------------------------
% style einstellen
\usepackage[
backend=biber,
style=ext-authoryear,
backref=true,
doi=false,
isbn=false,
url=false,
articlein=false,
dashed=false,
introcite=plain,
labelalpha=true
]{biblatex}


%% Style Schriftum direkt aus dem Manual kopiert
\DeclareFieldFormat{bbx@introcite}{\mkbibbrackets{#1}}
\DeclareDelimFormat[bbx@introcite]{nameyeardelim}{\addcomma\space}
\UndeclareInnerCiteDelims{bbx@introcite}
\renewcommand*{\introcitepunct}{\quad}
\setlength\bibitemsep{1.5\itemsep}


% Bei mehreren Autoren et al.
\DefineBibliographyStrings{ngerman}{ 
    andothers = {{et\,al\adddot}},             
} 

% Keine Anführungszeichen beim Titel
\DeclareFieldFormat[article]{title}{{#1}}

%% Style des Verweises im Text
% Eckige Klammern um Autor Jahr
\DeclareOuterCiteDelims{cite}{[}{]}
% [Autor Jahr] -> [Autor, Jahr]
\renewcommand*{\nameyeardelim}{\addcomma\space}

\DefineBibliographyStrings{german}{
    backrefpage={zitiert auf Seite:},
    backrefpages={zitiert auf Seiten:}
}

%% Laden der Bibliothek
\addbibresource{\jobname.bib}
%----------------------------------------------------------------------
% Ende Bibliothek
%----------------------------------------------------------------------

\begin{document}

    Text text \cite{Chomsky1957}
\printbibliography

\end{document}          

在屏幕截图中您可以看到链接中仅包含年份。

在此处输入图片描述

答案1

使用类似的策略超链接名称与 biblatex 作者年份 (biblatex 1.4b),但是用新的\letbibmacro代替,\restorebibmacro我们可以得出以下 MWE。

请注意,我们还需要阻止introcite输出重现链接。有了足够新的版本biblatex-ext,我们就可以实现\AtIntrocite{\DeclareFieldFormat{linkallcite}{#1}}这一点。

(我删除了注释以使示例更紧凑,并更改了一两个小细节。)

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[
  backend=biber,
  style=ext-authoryear,
  backref=true,
  doi=false,
  isbn=false,
  url=false,
  articlein=false,
  dashed=false,
  introcite=plain,
]{biblatex}
\usepackage{hyperref}


\DeclareFieldFormat{bbx@introcite}{\mkbibbrackets{#1}}
\DeclareDelimFormat[bbx@introcite]{nameyeardelim}{\addcomma\space}
\UndeclareInnerCiteDelims{bbx@introcite}
\renewcommand*{\introcitepunct}{\quad}
\setlength\bibitemsep{1.5\itemsep}

\DeclareFieldFormat[article]{title}{#1}

\DeclareOuterCiteDelims{cite}{\bibopenbracket}{\bibclosebracket}

\DeclareFieldFormat{linkallcite}{%
  \DeclareFieldFormat{bibhyperref}{##1}%
  \bibhyperref{#1}%
}
\AtIntrocite{\DeclareFieldFormat{linkallcite}{#1}}

\letbibmacro{cite:orig}{cite}
\renewbibmacro{cite}{%
  \printtext[linkallcite]{%
    \usebibmacro{cite:orig}}}

\DeclareDelimFormat{nameyeardelim}{\addcomma\space}


\DefineBibliographyStrings{german}{
  andothers    = {{et\,al\adddot}},
  backrefpage  = {zitiert auf Seite:},
  backrefpages = {zitiert auf Seiten:},
}


\addbibresource{biblatex-examples.bib}

\begin{document}
Text text \cite{sigfridsson}

\printbibliography
\end{document}

完全链接的“Sigfridsson und Ryde, 1998”引用标签。

相关内容