这是我在这里的第一个问题,所以请耐心等待。
我想在脚注中引用整本书,但不引用具体页码。但是,当我使用该\autocite
命令而不引用具体页码时,它只会打印书中的总页数,我认为这看起来很误导。
假设文本如下所示:
陪审团,Rideon,描述性汇集研究,Gullivers Publishing,费城 1995 年,第 311 页。
这本书有 311 页,所以如果我这样引用它,看起来读者必须查看第 311 页的内容,而我只是想引用整本书作为进一步研究的参考文本。
我希望它看起来如何:
陪审团,Rideon,描述性汇集研究,格列佛出版公司,费城 1995 年。
我的风格如下:
\usepackage[
backend=biber,
style=philosophy-verbose,
citepages=omit,
citereset=chapter,
singletitle=true
]{biblatex}
有人知道该怎么做吗?
用我的 bib 条目进行编辑:
address = {Philadelphia},
author = {Rideon, Jury},
keywords = {minor},
pages = {311},
publisher = {Gullivers Publishing},
title = {{Descriptive Pool Studies}},
year = {1995}
答案1
您得到的输出表明相关.bib
项目包含一个pages
字段,该字段对于一本书的总页数来说是不正确的。假设您仍然希望将总页数作为潜在字段使用,那么您应该修改这些.bib
项目以使用该pagetotal
字段。或者,如果您根本不需要该字段,只需将其从文件中删除即可.bib
。我认为很少有样式需要书籍的总页数,我怀疑这些字段被添加到.bib
您从在线来源找到的项目中,而这些来源是出了名的不可靠。
然而,撇开这一事实不谈,隐藏字段也很容易。在下面的示例代码中,我在示例项目中同时放置了一个pages
(不正确的)字段和一个(正确的)字段,以及隐藏这两个字段的相关代码。pagetotal
.bib
清晰的现场解决方案
\documentclass{book}
\begin{filecontents}[overwrite]{\jobname.bib}
%%%% the pages field is INCORRECT in this type of bib item %%%%
%%%% it's included for demonstration purposes only %%%%
@book{Rizzi1990,
address = {Cambridge: Mass.},
author = {Luigi Rizzi},
publisher = {{MIT} Press},
title = {Relativized Minimality},
year = {1990},
pagetotal = {147},
pages = {147}
}
\end{filecontents}
\usepackage[
backend=biber,
style=philosophy-verbose,
citepages=omit,
citereset=chapter,
singletitle=true
]{biblatex}
\addbibresource{\jobname.bib}
\AtEveryCitekey{\clearfield{pagetotal}}
\AtEveryBibitem{\clearfield{pagetotal}}
\AtEveryCitekey{%
\ifentrytype{book}
{\clearfield{pages}}%
{}%
}
\AtEveryBibitem{
\ifentrytype{book}
{\clearfield{pages}}%
{}%
}
\begin{document}
\chapter{A chapter}
\autocite{Rizzi1990}
\printbibliography
\end{document}
源图解决方案
或者,您可以使用 删除字段\DeclareSourcemap
。对于这种情况,这可能是更好的解决方案。
\documentclass{book}
\begin{filecontents}[overwrite]{\jobname.bib}
%%%% the pages field is INCORRECT in this type of bib item %%%%
%%%% it's included for demonstration purposes only %%%%
@book{Rizzi1990,
address = {Cambridge: Mass.},
author = {Luigi Rizzi},
publisher = {{MIT} Press},
title = {Relativized Minimality},
year = {1990},
pagetotal = {147},
pages = {147}
}
\end{filecontents}
\usepackage[
backend=biber,
style=philosophy-verbose,
citepages=omit,
citereset=chapter,
singletitle=true
]{biblatex}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\pertype{book}
\step[fieldset=pages, null]
\step[fieldset=pagetotal,null]
}
}
}
\begin{document}
\chapter{A chapter}
\autocite{Rizzi1990}
\printbibliography
\end{document}