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