我正在使用带有 authoryear 样式的 biblatex。
到目前为止,我已经能够在出色的文档中轻松找到我需要的一切,但有一件事我遇到了困难。
使用我当前的设置(如下),引文中只有年份与参考书目条目超链接。我认为在使用 biblatex 之前,我会将整个引文(作者 + 年份)作为参考 - 我认为这在浏览时更容易点击等。
有没有简单的方法来实现这一点(或者是否涉及创建一种新的风格)。
\usepackage[style=authoryear,
bibstyle=authoryear,
citestyle=authoryear,
natbib=true,
hyperref=true,
backref=true,
abbreviate=true]{biblatex}
答案1
将以下内容添加到您的序言中:
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{citeyear}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\parencite}[\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\parencite}[\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{citeyear}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{ \usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\textcite}
{\boolfalse{cbx:parens}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\usebibmacro{textcite}}}
{\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\multicitedelim}
{\usebibmacro{textcite:postnote}}
请注意,此代码片段基本上取自这里并适应 biblatex v0.9b,即分别添加\footcitetext
和\textcite
更改的定义。(我还决定不为\citeauthor
和添加超链接\citeyear
。)
答案2
biblatex 风格apa
(经过修改的 authoryear 样式)可以帮您实现这一点。例如:
\usepackage[american]{babel}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
请注意,还建议您加载该csquotes
包。
它需要相对较新版本的 biblatex 才能运行。
答案3
作为 lockstep 提供的答案的补充,以下代码\textcite
也在链接中包含了右括号,不幸的是,还包括后面的空格。
\DeclareCiteCommand{\textcite}
{\boolfalse{cbx:parens}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{\printnames{labelname}%
\printtext{ (\printfield{year}\printtext{)}}}}
{\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\multicitedelim}
{\usebibmacro{textcite:postnote}}