使用 biblatex 在参考书目中添加脚注

使用 biblatex 在参考书目中添加脚注

在我的博士论文中,我在开头附上了一份包含我自己出版物的参考书目。但并非所有出版物都与博士论文相关,例如因为它们来自我的硕士学位。我想在参考文献列表底部使用脚注或注释来显示这一点。

\documentclass{scrbook}

\usepackage{mwe}
\usepackage[defernumbers=true]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{refs.bib}
    @misc{ref1, note = {Article 1}, keywords={former}, keywords={myarticles}}
    @misc{ref2, note = {Article 2}, keywords={myarticles}}
    @misc{ref3, note = {Proceedings 1}, keywords={former}, keywords={myconferences}}
    @misc{ref4, note = {Proceedings 2}, keywords={myconferences}}
    @misc{ref5, note = {Reference 1}}
    @misc{ref6, note = {Reference 2}}
\end{filecontents}

\addbibresource{refs.bib}


\begin{document}
    \nocite{*}

    \defbibnote{thepostnote}{* refer to previous work}
    
    \printbibheading[title={References}]
    \newrefcontext[labelprefix=A]
    \printbibliography[keyword=myarticles, title={My Articles}, heading=subbibliography, postnote=thepostnote]
    \newrefcontext[labelprefix=C]
    \printbibliography[keyword=myconferences, title={My Conference Contributions}, heading=subbibliography, postnote=thepostnote]
    \newrefcontext
    \printbibliography[notkeyword=myarticles, notkeyword=myconferences, title={Regular References}, heading=subbibliography, resetnumbers=true]


\end{document}

理想情况下,条目应如下所示:

[A1]* 第 1 条

[A2] 第二条

* 参考以前的工作

目前,我的解决方法是将子书目分成两部分,然后使用\newrefcontext[labelprefix=*A]\newrefcontext[labelprefix=A]。不过这有点丑,最好能显示星号托架中。

答案1

首先,如果您想要提供多个,keywords则必须在同一keywords字段中提供它们并用逗号分隔。

其次,更有趣的是,您可以通过重新定义labelnumberwidth格式来添加星号。

\DeclareFieldFormat{labelnumberwidth}{%
  \mkbibbrackets{#1}%
  \ifkeyword{former}
    {\makebox[0pt][l]{\textsuperscript{*}}}
    {}}

\ifkeyword应该\textsuperscript{*}是不言自明的。我将 包裹\textsuperscript{*}在 中\makebox[0pt][l],这样星号就不会占用任何空间。通常数字是右对齐的,如果星号占用了空间, 的右括号[A2]将与 的右端对齐[A1]*,我们会得到

[A1]*
 [A2]

代替

[A1]*
[A2]

另一种方法是将标签左对齐,但这会导致

[8]
[9]
[10]

代替

 [8]
 [9]
[10]

如果您有当前版本,您可能还对避免最后一个参考书目中过多空间的biblatex选项感兴趣。locallabelwidth

\documentclass{article}

\usepackage[defernumbers=true, locallabelwidth]{biblatex}

\DeclareFieldFormat{labelnumberwidth}{%
  \mkbibbrackets{#1}%
  \ifkeyword{former}
    {\makebox[0pt][l]{\textsuperscript{*}}}
    {}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{ref1, note = {Article 1}, keywords={former,myarticles}}
@misc{ref2, note = {Article 2}, keywords={myarticles}}
@misc{ref3, note = {Proceedings 1}, keywords={former,myconferences}}
@misc{ref4, note = {Proceedings 2}, keywords={myconferences}}
@misc{ref5, note = {Reference 1}}
@misc{ref6, note = {Reference 2}}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\nocite{*}

\defbibnote{thepostnote}{* refer to previous work}

\printbibheading[title={References}]
\newrefcontext[labelprefix=A]
\printbibliography[keyword=myarticles, title={My Articles}, heading=subbibliography, postnote=thepostnote]
\newrefcontext[labelprefix=C]
\printbibliography[keyword=myconferences, title={My Conference Contributions}, heading=subbibliography, postnote=thepostnote]
\newrefcontext
\printbibliography[notkeyword=myarticles, notkeyword=myconferences, title={Regular References}, heading=subbibliography, resetnumbers=true]
\end{document}

上标星号标记<code>以前</code>的贡献。

相关内容