尽管听起来很奇怪:是否有可能有一个\cite{key}
-command 来引用书目项目没有将此项目纳入参考书目吗?
可以说,我正在寻找的对立面\nocite{key}
。
我想过创建自己的\newcommand
,但这需要使用诸如\citeauthor{key}
和\citetitle{key}
之类的命令\newcommand
,这样该项目就会出现在参考书目中......
我想要以下内容:
源文件有如下内容:
\documentclass{scrbook}
\usepackage{biblatex}
\addbibresource{my_bib.bib}
\begin{document}
Let me reference one work: \nobibcite{key-1}. And another: \cite{key-2}.
\printbibliography
\end{document}
PDF 文件中的参考书目列出了仅有的该项目key-2
(被 引用\cite
)和不是该项目key-1
(由我正在寻找的命令引用)。尽管如此,这两个项目的书目信息都出现在全文中。
PDF 看起来应如下:
让我引用一部作品:作者。标题. 一.出版商,2013 年。另有:作者。标题. 二.出版商,2013 年。
参考书目
作者。标题. 二.出版商,2013 年。
那么我应该如何设计命令\nobibcite{key}
,或者是否已经有类似的命令biblatex
或其他包附带?
答案1
你可以:
skipbib
在 .bib 文件中的特定键上设置选项。用 和 定义一个类别
\DeclareBibliographyCategory{dontbib}
,然后\addtocategory{dontbib}{key}
将各个作品放入该类别,后跟\printbibliography[notcategory=dontbib]
。如果你经常需要这样做,可以创建一个引用命令来自动添加到该类别。此时,你必须决定是否
\cite
应该以普通方式覆盖将您的内容排除在参考书目之外。要做到这一点,我认为您需要两个类别,其中一个普通类别\cite
有效地设置一个标志,而您的特殊类别设置另一个标志,然后您设置一个来bibfilter
在它们之间进行裁决。
如果您使用 的数字排序方案biblatex
,跳过的引用仍将被计算在内,因此参考书目中的编号将存在间隙。为了避免这种情况,您可以将包选项添加defernumbers=true
到biblatex
。这将使只有出现在参考书目中的引用才会收到编号。参考书目中的引用将首先按引用顺序显示为未编号,然后根据其在参考书目中的位置获得编号。
答案2
稍有变化。
用例是:引用用作章节题词,并\fullcite
提供给读者以在需要时追踪来源,但参考书目不应引用该作品,因为题词作为文学装饰,对文档的论点没有贡献。但是,如果同一作品恰好以通常的方式在文档中被引用,那么它应该出现在参考书目中。
使用 biblatex 的文档级解决方案无需编辑文件.bib
,只需在文档中定义一个切换按钮,然后在非书目上下文中引用作品时将其添加到参考书目印刷类别中。
仅限题词:
题词加贡献:
平均能量损失
\begin{filecontents*}{\jobname.bib}
@book{book1,
title={A Title},
author={B Auctoritas},
year={1828},
publisher={Holmes and Sons},
}
@book{book2,
title={Another Title},
author={C Author},
year={2020},
publisher={P Publisher},
}
@book{eco,
author={Umberto Eco},
title={Come si fa una tesi di laurea},
subtitle={Le materie umanistiche},
publisher={Bompiani},
date={2004},
origdate={1977},
edition={15},
}
\end{filecontents*}
\documentclass[12pt]{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\DeclareBibliographyCategory{yesinbib}
\DeclareBibliographyCategory{notinbib}
\newtoggle{putinbib}
\toggletrue{putinbib}
\newcommand\qcite[2]{%
\togglefalse{putinbib}%
\footfullcite[#2]{#1}%
\toggletrue{putinbib}%
}
\AtEveryCitekey{%
\iftoggle{putinbib}{%true
\addtocategory{yesinbib}{\thefield{entrykey}}
}{%false
\addtocategory{notinbib}{\thefield{entrykey}}
}%
}
%------------------
\begin{document}
x
\vfill %demo purpose only
\noindent ``Certi nomi sono citati da tutti''\qcite{eco}{110-111}\\
%\togglefalse{putinbib}%
%\noindent ``Certi nomi sono citati da tutti''\footfullcite[110-111]{eco}\\
%\toggletrue{putinbib}%
Some names are cited by everybody.
\hrule
\bigskip
This is an ordinary cite\footcite[ch 4]{book1}...
Eco's thesis that theses are written in a metalanguage\footcite[163]{eco} ...
And another\footcite{book2} ...
\printbibliography[category=yesinbib]
\printbibliography[category=notinbib,title={Quotation sources}]
\end{document}