我正在尝试创建一个参考书目,其中某些项目被突出显示为更重要。理想情况下,这会在该特定项目的前面放置一个星号,同时保持排序不变。我使用biblatex-chicago
Biber 作为后端。
假设我的.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
我找到了链接的答案这里比这个解决方案更好,因为它允许在关键字字段中标记条目,而不是列出要突出显示的单个引用键。