Biblatex 方括号颜色

Biblatex 方括号颜色

如何使用 biblatex(数字样式)更改文本中参考文献的方括号颜色?

我知道可以用 natbib 来完成,但不再使用这个包了。

\documentclass[hidelinks,spanish]{book}
\usepackage[usenames,dvipsnames]{color}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\definecolor{CeruleanRef}{RGB}{12,127,172}
\usepackage[colorlinks=true,linkcolor=black,citecolor=CeruleanRef,urlcolor=black]{hyperref}
\usepackage[numbers,sort&compress]{natbib}
\bibpunct{\color{CeruleanRef}[}{\color{CeruleanRef}]}{,}{n}{}{;}

\bibliographystyle{unsrtnat}

\begin{document}

\frontmatter

\mainmatter

A reference: \cite{RBoehler1996}

\appendix

\backmatter

\bibliography{articles,reports,books,reviews}

\end{document}

使用 natbib 我得到了这个: 在此处输入图片描述

我希望 biblatex 和 biber 也能有同样的效果。

答案1

您在此处看到的是hyperref彩色(引用)链接(因为您在 中这样设置了colorlinks=true, citecolor=CeruleanRef)。通常,当您仅引用该引用的某个部分时,该链接实际上会变成链接,使用数字样式时,仅链接数字本身,而不链接括号。您的natbib修复并未将链接扩展到括号​​,只是为它们添加了颜色。

我们可以通过添加\color{CeruleanRef}到命令的包装器来模拟该行为\cite(我从中获取它numeric.cbx,如果您使用或其他样式,请从那里numeric-comp.cbx复制的定义)\cite

\DeclareCiteCommand{\cite}[\color{CeruleanRef}\mkbibbrackets]% <--- this is new
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

为了numeric-comp

\DeclareCiteCommand{\cite}[\color{CeruleanRef}\mkbibbrackets]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}%
   \usebibmacro{postnote}}

请记住:这实际上不会创建超链接,文本只是看起来像超链接。只有在非常特殊的情况下,才能创建范围如此大的超链接,而且需要做大量工作。(使用numeric-comp,链接括号甚至没有任何意义:括号中的链接应该链接到哪里。)

平均能量损失

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=numeric-comp]{biblatex}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\definecolor{CeruleanRef}{RGB}{12,127,172}
\usepackage[colorlinks=true, citecolor=CeruleanRef]{hyperref}
\addbibresource{biblatex-examples.bib}

\DeclareCiteCommand{\cite}[\color{CeruleanRef}\mkbibbrackets]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}%
   \usebibmacro{postnote}}

\begin{document}
  \cite{companion,knuth:ct:b,knuth:ct:c} and \cite{baez/article} \cite{aksin}
  \printbibliography
\end{document}

在此处输入图片描述


你也可以使用我在评论中所建议的临时解决方案

\makeatletter
\renewcommand*{\bibleftbracket}{\blx@postpunct\textcolor{red}{[}}
\renewcommand*{\bibrightbracket}{\blx@postpunct\textcolor{red}{]}\midsentence}
\makeatother

但这确实有副作用:所有左括号都会变成红色。

相关内容