使用 Bibtex 的某些特定参考文献具有不同的样式/颜色

使用 Bibtex 的某些特定参考文献具有不同的样式/颜色

我需要区分一些特定的参考文献和其他参考文献,无论是在正文中还是在文档末尾的参考文献列表中。假设我想要蓝色的“常规”参考文献,橙色的(实际上是我的参考文献)参考文献。

现在,我有一些非常标准的东西,例如:

在 .tex 文件中:

\usepackage[authoryear,colon,square]{natbib}
\bibliographystyle{dcu}
\begin{document}

Something to say \citep{one_regular_ref01,another_regular_ref02,my_specific01}.

当我从期刊网站上解析条目时,我的 .bib 是正常的。

这给了我类似的东西:

有些话要说[RegRef et al, 2001; aRegRef et al, 2002; My_paper, 2010]。

所有东西都是同一种颜色。但我希望我的裁判能用不同的颜色。

好的,我可以编辑 bib 文件,但这对我来说似乎很奇怪,因为我可以将相同的 bib 用于另一个文档而没有这个非常特殊的需求。

我认为在引用调用的末尾添加 *(例如)(即 \citep{my_specific01*})可以区分特定的引用,但现在我如何告诉 bibtex 将这些参考文献的显示方式(再次在文本和参考列表中)更改为不同的颜色或任何字体样式。

我在网上没有找到任何使用 bibtex 来处理和解决这个非常具体的任务的东西,但如果有任何想法我将不胜感激。

谢谢

答案1

用户必须做好两项准备

\preparecolorrefs{integer}其中整数大于或等于文档中的引用总数

\refcolor{cite-label}{color}指示非黑色的特定引文的颜色。

编辑以制作自编译示例(不需要外部文件)。

\documentclass{article}
\usepackage{xcolor,ifthen,filecontents}
\makeatletter
\let\svbibcite\bibcite
\let\svbiblabel\@biblabel
\def\bibcite#1#2{\svbibcite{#1}{%
  \if\relax\csname#1color\endcsname\relax\refcolor{#2}{black}\else%
    \refcolor{#2}{\csname#1color\endcsname}\fi%
  \if\relax\csname#1color\endcsname\relax\textcolor{black}{#2}\else%
    \textcolor{\csname#1color\endcsname}{#2}\fi}}
\def\@biblabel#1{\svbiblabel{\textcolor{\csname#1color\endcsname}{#1}}}
\makeatother
\def\refcolor#1#2{\expandafter\xdef\csname#1color\endcsname{#2}}
\newcounter{refindex}
\def\preparecolorrefs#1{%
  \setcounter{refindex}{0}%
  \whiledo{\value{refindex}<#1}{%
    \stepcounter{refindex}%
    \expandafter\def\csname\therefindex color\endcsname{black}%
  }%
}
\preparecolorrefs{5}% MUST CHOOSE A NUMBER > OR EQUAL TOTAL NUMBER OF REFERENCES
\refcolor{A01}{green}
\refcolor{C03}{red}
\begin{filecontents}{mybib.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha}
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo}
}
@misc{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie}
}
@misc{D04,
  author = {Duthor, D.},
  year = {2004},
  title = {Delta}
}
\end{filecontents}
\begin{document}
cite \cite{A01, B02, C03, D04}
\bibliographystyle{unsrt}
\bibliography{mybib}
\end{document}

在此处输入图片描述

相关内容