![打印未引用的参考书目条目列表(无引用键)](https://linux22.com/image/391465/%E6%89%93%E5%8D%B0%E6%9C%AA%E5%BC%95%E7%94%A8%E7%9A%84%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E6%9D%A1%E7%9B%AE%E5%88%97%E8%A1%A8%EF%BC%88%E6%97%A0%E5%BC%95%E7%94%A8%E9%94%AE%EF%BC%89.png)
我正在使用biblatex
附加功能将所有引用的参考文献添加到它们自己的类别中:
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
如图所示这里.现在考虑这个 MWE:
\documentclass{scrreprt}
\usepackage[refsegment=chapter]{biblatex}
\DeclareBibliographyCategory{cited}%so we can access all non-cited as own category
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
\begin{filecontents}{thebib.bib}
@misc{mathworks_constant_2018,
type = {Documentation},
title = {Constant volume pneumatic chamber based on ideal gas law},
url = {https://uk.mathworks.com/help/physmod/simscape/ref/constantvolumepneumaticchamber.html},
urldate = {2022-01-01},
journal = {Mathworks Simulink Documentation},
author = {{Mathworks}},
year = {2018},
}
@online{WinNT,
author = {MultiMedia LLC},
title = {{MS Windows NT} Kernel Description},
year = 1999,
url = {http://web.archive.org/web/20080207010024/http://www.808multimedia.com/winnt/kernel.htm},
urldate = {2010-09-30}
}
\end{filecontents}
\addbibresource{thebib.bib}
\usepackage{cleveref}
\begin{document}
\chapter{This is a chapter}
\autocite{mathworks_constant_2018}
\endrefsegment%anything after not in any segment -> not printed by bibbysegment
\nocite{*}%
\printbibheading%print big heading once
\defbibheading{subbibliography}{\vspace*{1.5\baselineskip}\section*{\Cref{refsegment:\therefsection\therefsegment}}}%
\bibbysegment[heading=subbibliography]%cycle through all segments and print
\defbibheading{notcited}{\section*{Further Reading}}
\printbibliography[notcategory=cited, heading=notcited]
\end{document}
受以下启发的示例这个问题。
with是重新定义以允许可点击链接。它不是示例的一部分,但我将其保留下来,这样就不会出现任何问题。我将其删除,\defbibheading
这样它们就不会显示出来。结果是:cleveref
hyperref
有没有办法[1]
从进一步阅读部分?
由于没有任何地方引用该条目,因此我们不需要引用关键字。它只是为任何关心的人提供一份列表。
答案1
您可以为进一步阅读部分。我只是从 as 中复制了定义,authoryear.bbx
这给出了一个相当令人满意的结果。您还需要使用该选项defernumbers
来确保编号按预期显示(您也可以将该选项添加omitnumbers
到\printbibliography
命令的进一步阅读部分,但这不会改变这里的输出;只有在进一步阅读后面跟着另一个编号\printbibliography
为之前没有出现过的条目)。
\documentclass{report}
\usepackage[refsegment=chapter, defernumbers=true]{biblatex}
\usepackage{cleveref}
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
\defbibheading{subbibliography}{%
\section*{\Cref{refsegment:\therefsection\therefsegment}}}
\defbibheading{notcited}{\section*{Further Reading}}
\defbibenvironment{bibnonum}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\begin{filecontents}{\jobname.bib}
@misc{mathworks_constant_2018,
type = {Documentation},
title = {Constant volume pneumatic chamber based on ideal gas law},
url = {https://uk.mathworks.com/help/physmod/simscape/ref/constantvolumepneumaticchamber.html},
urldate = {2022-01-01},
journal = {Mathworks Simulink Documentation},
author = {{Mathworks}},
year = {2018},
}
@online{WinNT,
author = {MultiMedia LLC},
title = {{MS Windows NT} Kernel Description},
year = 1999,
url = {http://web.archive.org/web/20080207010024/http://www.808multimedia.com/winnt/kernel.htm},
urldate = {2010-09-30}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\chapter{This is a chapter}
\autocite{mathworks_constant_2018}
\endrefsegment
\nocite{*}
\printbibheading
\bibbysegment[heading=subbibliography]
\printbibliography[notcategory=cited, env=bibnonum, heading=notcited]
\end{document}
我不得不用report
而不是scrreprt
因为https://github.com/plk/biblatex/issues/857使 MWE 为我工作。我还删除了 MWE,\vspace*{1.5\baselineskip}%
因为我想避免它在标准类中引入过多的空间。