在参考书目中加下划线/加粗/突出显示多个名称

在参考书目中加下划线/加粗/突出显示多个名称

这是发布问题的变体这里

现在我想在参考书目中突出显示多个名称。这是我尝试过的错误解决方案。

\documentclass[11pt,letter]{article} 
\usepackage[usenames,dvipsnames]{xcolor}  
\usepackage{xstring} 
\let\originalbibitem\bibitem  
\def\bibitem#1#2\par{  
\noexpandarg 
\originalbibitem{#1} 
\StrSubstitute{#2}{Author1}{{\color{blue}\textbf{Author1}}}[\x]
\expandafter\StrSubstitute\expandafter{\x}{Author2}{{\color{blue}\textbf{Author2‌​}}}{\x}
\par}

\begin{document} 
\cite{CiteKey1,CiteKey2,CiteKey3,CiteKey4} 
\bibliographystyle{IEEEtran} 
\bibliography{library} 
\end{document} 

问题是,对于每个参考文献,它都会制作两份副本。在第一个副本中,它将 Author1 和 Author2 制作成蓝色和粗体,而在第二个副本中,它只将 Author1 制作成蓝色和粗体。

有什么办法可以解决这个问题,使参考文献中只有一个名字,并以蓝色和粗体显示?此外,无论你提出什么解决方案,都应该可以扩展到最多 N 位作者。

谢谢!

答案1

您的宏中存在编码错误。第二个宏的末尾\StrSubstitute不应有临时宏 - 最后一个参数应放在方括号中以将输出分配给,但在此阶段您不再需要保存其输出。 \x\StrSubstitute[..]\x

示例输出

\documentclass{article}

\usepackage{xcolor}
\usepackage{xstring}
\let\originalbibitem\bibitem
\def\bibitem#1#2\par{%
\noexpandarg \originalbibitem{#1}
\StrSubstitute{#2}{Lipcoll}{{\color{blue}\textbf{Lipcoll}}}[\mytmpa]
\expandafter\StrSubstitute\expandafter{\mytmpa}{Sameh}{{\color{blue}\textbf{Sameh}}} \par}

\begin{document}

\nocite{*}
\bibliographystyle{IEEEtran}
\bibliography{xampl}

\end{document}

以上内容使用了标准发行版(在 bibtex 文档中)中的参考书目文件,并选择了几个不同的作者姓名来显示效果。请注意,用于重复作者的破折号部分破坏了您想要实现的目标。

相关内容