我需要区分一些特定的参考文献和其他参考文献,无论是在正文中还是在文档末尾的参考文献列表中。假设我想要蓝色的“常规”参考文献,橙色的(实际上是我的参考文献)参考文献。
现在,我有一些非常标准的东西,例如:
在 .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}