如何在脚注中引用整本书而不添加总页数(\autocite / philosophy-verbose)?

如何在脚注中引用整本书而不添加总页数(\autocite / philosophy-verbose)?

这是我在这里的第一个问题,所以请耐心等待。

我想在脚注中引用整本书,但不引用具体页码。但是,当我使用该\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}

脚注输出 书目输出

相关内容