我使用biblatex
Biber 作为后端。我需要在参考书目中的一些参考文献后面添加一个单句注释(粗体)。这些注释不包含在我的.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
它们包含在主源文件中或仅独立生成一次。