biblatex-apa 和 hyperref:右括号不是 \textcite 链接的一部分

biblatex-apa 和 hyperref:右括号不是 \textcite 链接的一部分

我使用 biblatex-apa 引用样式。我还使用带有彩色链接的 hyperref,而不是丑陋的彩色框。当我使用时,\textcite作者姓名和年份都是链接的一部分,但右括号不是。像这样:琼斯(2000)。有办法解决这个问题吗?我想要两个括号都链接或者都不链接...

解决这个问题的一种方法是使用citestyle=authoryear作为选项。这意味着只有年份是关联的,所以这不是一个完美的解决方案。有没有更好的方法来解决这个问题?

答案1

您好,我是 biblatex-apa 的作者。我知道这个问题是什么,明天我应该会修复这个问题并发布 biblatex-apa 的新版本氯化三乙胺

答案2

如果能给出一个简单的例子就更好了。;-)(我正在使用标准 biblatex 样式,但不知道 biblatex-apa 的样式\DeclareLanguageMapping。)

我认为以下解决方案相当“黑客化”,因为 a) 我不知道这个特定\textcite命令的功能 b) 除此之外的其他命令\textcite可能也需要更改 c) 附加\printtext[bibhyperref]包装器似乎指向参考书目中的正确条目,但这只是我的运气。从长远来看,您应该向 biblatex-apa 的作者 Philip Kime 发送功能请求。

\documentclass{article}

\usepackage[american]{babel}
\usepackage[style=apa]{biblatex}
\usepackage{csquotes}
\DeclareLanguageMapping{american}{american-apa}
\usepackage[colorlinks=true]{hyperref}

\DeclareCiteCommand{\textcite}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{\usebibmacro{textcite}}}%
  {}
  {\iffieldundef{postnote}
     {\ifbool{cbx:parens}
%        {\bibrightparen}% DELETED
        {\printtext[bibhyperref]{\bibrightparen}}% NEW
  {}}
%     {\ifbool{cbx:parens}% DELETED (FOR POSTNOTE)
     {\printtext[bibhyperref]{\ifbool{cbx:parens}% NEW (FOR POSTNOTE)
        {\postnotedelim}
  {\addspace\bibleftparen}%
%      \printfield{postnote}\bibrightparen}}% DELETED (FOR POSTNOTE)
      \printfield{postnote}\bibrightparen}}}% NEW (FOR POSTNOTE)

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{a01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}

@misc{b02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\bibliography{\jobname}

\begin{document}

Some Text \textcite{a01}. Some more text \textcite[A postnote]{b02}.

\printbibliography

\end{document}

相关内容