根据引用频率渐变颜色

根据引用频率渐变颜色

我有一个想法,坦率地说,我没有任何类型的 Start/MWE,因为我认为这实际上是一个相当困难的问题,至少对我来说是这样,但如果有人有兴趣尝试的话,这可能是一种有趣的结果。

我想\citep{...}, \citet{...}根据特定参考的使用频率更改内联引用(即类型宏)的链接颜色。

因此,低频率引用(即仅使用过一次的引用)可能会显示为黑色,而最受欢迎的引用(即对文献综述有重大贡献的开创性评论,被引用 X 次,X > 1)将显示为红色。其他所有内容的数量与其相对受欢迎程度成正比。

因此,在编译文档时,第一步需要计算每个正在使用的参考书目键的相应频率,后续编译需要根据 1 与最受欢迎参考文献的频率之间的比率以某种方式动态分配颜色。

你为什么要这样做?因为读者在阅读文档时,可以根据颜色的“热度”判断哪些是重要的参考资料,哪些不是。

答案1

以下是一个简单的方法biblatex。计算每个引用的引用次数的主要工作是citecounter通过我可以计算每篇参考文献被引用的次数吗?

我们只需要一种方法来获取最大引用数(也许这值得提出一个功能请求https://github.com/plk/biblatex/issues/791)。然后我们可以轻松地计算出引用的红色通道,其中$255\frac{c}{m}$是当前引用$c$的值,是。(这是整数除法,但我希望乘以 255 并使用模型可以抵消大多数意图和目的的舍入误差。)citecounter$m$maxcitecounterRGB

\documentclass{article}
\usepackage{xcolor}
\usepackage{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\protected\def\blx@aux@count#1#2{%
  \csnumgdef{blx@count@#1@\detokenize{#2}}{\csuse{blx@count@#1@\detokenize{#2}}+1}%
  \ifnumgreater{\csuse{blx@count@#1@\detokenize{#2}}}{0\csuse{blx@maxcitecount@#1}}
    {\csnumgdef{blx@maxcitecount@#1}{\csuse{blx@count@#1@\detokenize{#2}}}}
    {}%
}

\ExecuteBibliographyOptions{citecounter=true}

\AtEveryCitekey{%
  \ifcsundef{blx@count@\therefsection @\strfield{entrykey}}
    {\edef\blx@cite@colour{0}}
    {\edef\blx@cite@colour{%
       \the\numexpr255*\csuse{blx@count@\therefsection @\strfield{entrykey}}/
          \csuse{blx@maxcitecount@\therefsection}\relax}}%
  \color[RGB]{\blx@cite@colour,0,0}%
}
\makeatletter

\begin{document}
Lorem\autocite{sigfridsson} ipsum\autocite{worman} dolor\autocite{nussbaum}

Lorem\autocite{sigfridsson} ipsum\autocite{worman} dolor\autocite{geer}

Lorem\autocite{sigfridsson} ipsum\autocite{worman} dolor\autocite{knuth:ct:b}

Lorem\autocite{sigfridsson} ipsum\autocite{knuth:ct:a} dolor\autocite{nussbaum}

\printbibliography
\end{document}

引用数根据其引用次数以红色和黑色之间的数字表示。

相关内容