使用 Biber 和 biblatex 对参考书目条目进行注释

使用 Biber 和 biblatex 对参考书目条目进行注释

我使用biblatexBiber 作为后端。我需要在参考书目中的一些参考文献后面添加一个单句注释(粗体)。这些注释不包含在我的.bib文件中;它们特定于我目前正在撰写的论文。有人建议我只需编辑文件.bbl以包含注释,但我不知道该怎么做。这是一个可行的解决方案吗?如果是,我该怎么做?如果不是,我该如何以其他方式实现这一点?

我正在使用自然引用风格,如果这有区别的话。

答案1

可以在组合bbl生成的文件中插入附加材料biber/BibLaTX。您可以添加

\field{mynote}{<TEXT OF THE NOTE>}

在相应的条目中。必须给出打印它的指令。在 bibenty 末尾插入(并以粗体显示)的一种可能方法是:

\DeclareFieldFormat{mynote}{\textbf{#1}}
\AtEveryBibitem{
\csappto{blx@bbx@\thefield{entrytype}}{\iffieldundef{mynote}{}{\par\printfield{mynote}}}
}

连续调用biber将会删除文件中的修改bbl

另一种方法是bibexport创建一个仅包含当前文件中条目的新 BibTeX 文件tex,然后使用生成的文件bibexport并在其中插入特定于论文的注释。

另一种选择是使用 BibLaTeX 工具来处理外部文件。为此,loadfiles必须明确激活该选项

\documentclass{article}
\usepackage{filecontents}
\usepackage[style=nature,loadfiles=true]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
@article{key1,
author = {Author, John},
title  = {Title},
journal =  {A Journal},
year = 2012,
}
@article{key2,
author = {Author2, John},
title  = {Title},
journal =  {A Journal},
year = 2012,
}
\end{filecontents}

\begin{filecontents}{Notes/note-key2.tex}
Note for \cite{key2}.  
\endinput
\end{filecontents}

\DeclareFieldFormat{annotation}{\textbf{#1}}
\renewbibmacro*{annotation}{
  \IfFileExists{Notes/note-\thefield{entrykey}.tex}{\par}{}
  \printfile[annotation]{Notes/note-\thefield{entrykey}.tex}
}

\AtEveryBibitem{
\csappto{blx@bbx@\thefield{entrytype}}{\usebibmacro{annotation}}
}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

注释:这里我使用了一个Notes必须在编译文件之前创建的目录。对于注释文件,可以决定将filecontents它们包含在主源文件中或仅独立生成一次。

相关内容