有没有一种简单的方法可以让 LaTeX 使用 bibtex(而不是 biblatex)来打印文中未引用的参考文献,并且使用与引用的参考文献不同的颜色/格式?
因此,在下面的 MWE 中,我希望在参考列表中以不同的颜色列出“令人兴奋”的论文(自动)。
谢谢!
乳胶:
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{apalike}
\begin{document}
\nocite{*}
\citet{boring} is boring.
\bibliography{simple}
\end{document}
简单.bib:
@article{boring,
title={Some idiotic paper},
author={A. Boring Author},
year={2014},
journal={Dumb and Dumber}
}
@article{exciting,
title={An exciting paper},
author={Smart Person},
year={2014},
journal={Excitement}
}
答案1
\documentclass{article}
\usepackage{natbib}
\usepackage{color}
\bibliographystyle{apalike}
\makeatletter
\let\oldcitation\citation
\def\citation#1{%
\global\@namedef{ZZ#1}{}%
\oldcitation{#1}}
\let\oldbibitem\bibitem
\let\bibcolor\relax
\renewcommand\bibitem[2][]{%
\expandafter\ifx\csname ZZ#2\endcsname\relax
\color{red}%
\else
\color{black}%
\fi
\oldbibitem[#1]{#2}}%
\makeatother
\begin{document}
\nocite{*}
\citet{boring} is boring.
\bibliography{simple}
\end{document}
答案2
正如评论中指出的那样,David 的答案不适用于像 这样的多引文\cite{boring,exciting}
。这里有一个调整来让它工作:
\makeatletter
\let\oldcitation\citation
\def\citation#1{%
\@for\tmp:=#1\do{%
\global\@namedef{ZZ\tmp}{}%
\oldcitation{\tmp}}}
\let\oldbibitem\bibitem
\let\bibcolor\relax
\renewcommand\bibitem[2][]{%
\expandafter\ifx\csname ZZ#2\endcsname\relax
\color{red}%
\else
\color{black}%
\fi
\oldbibitem[#1]{#2}}%
\makeatother