突出显示特定的参考书目条目

突出显示特定的参考书目条目

我正在尝试创建一个参考书目,其中某些项目被突出显示为更重要。理想情况下,这会在该特定项目的前面放置一个星号,同时保持排序不变。我使用biblatex-chicagoBiber 作为后端。

假设我的.bib文件中有以下两个条目:

@article{cite1,
  author = {Knuth, Donald},
  title = {{Title One}},
  journal = {Some Journal},
  year = {2005},
  volume = {1},
  pages = {1--42},
}

@book{cite2,
  author = {Knuth, Donald},
  title = {{A Way More Important Title}},
  publisher = {Oxford},
  year = {2009},
  address = {New York}
}

我想做的是突出显示第二个,以便排序顺序和重复名称破折号保持不变。理想情况下,它会产生如下结果:


Knuth, Donald。2005 年。“标题一。”一些日志1:1-42。

*————。 2009年。更重要的头衔.牛津:纽约。


有什么方法可以实现这一点吗?也许我可以在重要的条目中放入一些额外的键?我试过伪造名称(如name = {*Knuth, Donald}, sortname = {Knuth, Donald}),但这会破坏 3 个破折号的替换。

答案1

这是一个简单的方法:

\documentclass[12pt]{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{cite1,
  author = {Knuth, Donald},
  title = {{Title One}},
  journal = {Some Journal},
  year = {2005},
  volume = {1},
  pages = {1--42},
}

@book{cite2,
  author = {Knuth, Donald},
  title = {{A Way More Important Title}},
  publisher = {Oxford},
  year = {2009},
  address = {New York}
}
\end{filecontents}

\usepackage[T1]{fontenc}
\usepackage{biblatex-chicago}
\addbibresource{\jobname.bib}

%% Highlight entries
\usepackage[svgnames]{xcolor}
\DeclareBibliographyCategory{important}
% the colour definition
\colorlet{impentry}{Maroon}% let 'impentry' = Maroon

% Inform biblatex that all books in the 'important' category deserve
% special treatment, while all others do not
\AtEveryBibitem{%
  \ifcategory{important}%
    {\bfseries\color{impentry}}%
    {}%
  }

% Add books to 'important' category in preamble
\addtocategory{important}{%
 cite2,
}


\begin{document}

\nocite{*}
\printbibliography

\end{document}

一种更棘手的方法是使用biber's\DecareSourcemap命令(biblatex手册中有说明)来查找keywords字段中的关键字,然后采取相应的措施。这种方法的一个优点是,这意味着“初始化”被放在文件中,.bib而不需要声明新的参考书目类别等等。(您还可以动态重写参考书目输出,因此您可能只有 [比如说]addendum突出显示的字段。)

可能还有理由创建其他有用的命令\addncite,例如 ,它\cite会删除条目并同时将其添加到这个新的“重要”类别中。不过,不确定您的总体需求是什么。

答案2

我找到了链接的答案这里比这个解决方案更好,因为它允许在关键字字段中标记条目,而不是列出要突出显示的单个引用键。

相关内容