biblatex:没有文章页面

biblatex:没有文章页面

我必须引用没有页码的文章,但书籍章节应该有页码。我使用以下代码来避免在页码前使用“pp”。

\DefineBibliographyStrings{ngerman}{pages={}}

显然,这会省略所有引用的页码。有没有办法只显示没有页码的文章?

答案1

您必须更改处理pages参考书目中文章、合集等页面范围的字段的格式。(还有一个pagetotal字段用于处理书籍等的总页数。)可选参数\DeclareFieldFormat采用逗号分隔的条目类型列表,新/更改的格式应适用于这些条目类型。

更改文内引用的格式需要摆弄字段postnotebiblatex有关详细信息,请参阅手册第 3.11.3 节。

\documentclass{article}

\usepackage[style=authoryear]{biblatex}

\DeclareFieldFormat[article]{pages}{#1}%

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journaltitle = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
@incollection{Fis00,
  author = {Fischel, William A.},
  year = {2000},
  title = {Zoning and land use regulation},
  maintitle = {Encyclopedia of law and economics},
  volume = {2},
  booktitle = {Civil law and economics},
  editor = {Boudewijn, Bouckaert and de Geest, Gerrit},
  location = {Cheltenham},
  publisher = {Elgar},
  pages = {403--442},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Some text \autocites[887]{Bli74}[403]{Fis00}.

\printbibliography

\end{document}

enter image description here

编辑:iennisei 的回答让我认为我可能误解了你的问题:如果你不仅想删除文章页面范围的前缀,而且想完全省略它们,请使用以下代码(这使得上述格式重新定义变得多余):

\AtEveryBibitem{%
  \ifentrytype{article}{%
    \clearfield{pages}%
  }{%
  }%
}

enter image description here

答案2

您使用的技术会在整个参考书目中替换“页面”的语言字符串,并且还假定您不会在文章的条目中写任何页面引用(但如果您需要另一篇论文并使用另一种引用样式,该怎么办?)。@lockstep 的回答更有针对性,但(除非我弄错了)还假定您在文件中省略了页码.bib

为了完全防止打印页码,可以这样做:

\renewbibmacro*{note+pages}{%
    \printfield{note}%
    %\setunit{\bibpagespunct}%
    %\printfield{pages}%
    \newunit}

此宏由显示文章页码的文件note+pages使用。它是用于格式化参考书目的文件。standard.bbxauthoryear

相关内容