深夜记录一下,这个问题实在坑我太久。
先说标题中的问题的解决办法,注释掉\usepackage{bookmark}
,或者\usepackage{hyperref}
。这两个包都是和超链接跳转有关的包,实测会导致标题中的bug,注释掉即可消除bug。其他和超链接跳转有关的包或许也许也会导致该问题,需谨慎添加。
下面我按时间顺序把来龙去脉梳理一下。
爱思唯尔模板
我的第一篇论文投在了爱思唯尔期刊,用的是官方的latex模板。和万千网友一样,修改稿件时,有了给参考文献上色的需求。
我很快找到了一篇博文(简称博文1),把里面的程序复制下来,稍微折腾一下便可用了(博文1的评论区还有我的留言)。博文1的代码也顺带给出如下。这里有一个我不知原理的bug:代码行与行之间不能有空行,否则报错。这一问题博主在评论区也有指出,从出现bug到解决bug并没有耗费我太多时间。
\makeatletter
\def\changeBibColor#1{
%
\in@{
#1}{
jiang2022robust}% list of colored bib items
\ifin@\color{
red}\else\normalcolor\fi
}
\xpatchcmd\@bibitem
{
\item}
{
\changeBibColor{
#1}\item}
{
}{
\fail}
\xpatchcmd\@lbibitem
{
\item}
{
\changeBibColor{
#2}\item}
{
}{
\fail