下列的这个问题,我想用粗体显示参考书目中的具体参考资料。与上一个问题不同的是,我想使用abbrvnat
参考书目样式。
当我使用该样式时,放在序言(下文)中的建议代码不起作用,abbrvnat
但使用其中plain
一种时它可以起作用。
\usepackage{xparse}
\ExplSyntaxOn
\clist_new:N \g_boldcite_list_clist
\cs_new:Npn \boldcite_checkkey:n #1
{
\clist_if_in:NnTF \g_boldcite_list_clist { #1 } { \bfseries } { \mdseries } \boldcite_bibitem:n {#1}
}
\cs_set_eq:NN \boldcite_bibitem:n \bibitem
\RenewDocumentCommand{\bibitem}{m}
{
\boldcite_checkkey:n { #1 }
}
\NewDocumentCommand{\boldreferences}{m}
{
\clist_gput_right:Nn \g_boldcite_list_clist { #1 }
}
\ExplSyntaxOff
然后通过使用\boldreferences{key1,key2}
,选定的参考文献在参考书目中变为粗体。
(致谢:@埃格尔)
上面的代码似乎对生成的.aux
文件做了一些更改,并且取决于样式。“普通”.aux
文件(不使用自定义代码)如下所示:
...
\bibcite{ref1}{{1}{year1}{{X et~al.}}{{authors}}}
\bibcite{ref2}{{2}{year2}{{Y et~al.}}{{authors}}}
\bibcite{ref3}{{3}{year3}{{Z et~al.}}{{authors}}}
...
使用具有样式的自定义代码plain
,我得到以下结果:
...
\bibcite{ref1}{{1}{}{{}}{{}}}
\bibcite{ref2}{{2}{}{{}}{{}}}
\bibcite{ref3}{{3}{}{{}}{{}}}
...
再次使用自定义代码,和abbrvnat
或apalike
或(我认为)所有需要作者/年份的样式:
...
\bibcite{[}{{1}{}{{}}{{}}}
\bibcite{[}{{2}{}{{}}{{}}}
\bibcite{[}{{3}{}{{}}{{}}}
...
我怀疑某些东西与 Latex3 和一些特殊字符()有关[
,但我不知道如何解决它。
我正在使用 natbib 和 xelatex。