如何输出特定 biblatex 类型 (@inbook) 的 ISSN 字段?

如何输出特定 biblatex 类型 (@inbook) 的 ISSN 字段?

以下 MWE 编译自pdflatex test.tex && biber test && pdflatex test.tex && pdflatex test.tex

\documentclass{article}
\usepackage[
  bibencoding=utf8,
  backend=biber,
  natbib,
  style=ieee,
  isbn=true, % should also be for issn?
  url=true,
  defernumbers=true,
]{biblatex}
\usepackage{filecontents}
\usepackage{hyperref}

% in ieee.bbx, \printfield{issn} done only for @article; standard.bbx also has it for @periodical
\begin{filecontents*}{\jobname.bib}
@article {myinprocs,
  author = {Someb Authorb},
  title = {{Testing the title of inproceedings}},
  pages={123--127},
  year={2010},
  issn = {2341-2341},
  url = {http://example.com/inproc.pdf},
}
@inbook {myinbook,
  author = {Some Author},
  title = {{Testing the title of inbook}},
  url = {http://example.com/inbook.pdf},
  publisher={Some Publisher},
  pages={123--127},
  editor = {Some Editor},
  edition = {1},
  volume = {2},
  series = {My Series},
  issn = {1234-1234},
  booktitle = {This Booktitle},
  address = {Someplace},
  year={2008},
  month={jun},
}
\end{filecontents*}
\addbibresource{\jobname.bib}


\begin{document}

Testing inbook: \cite{myinbook}, \cite{myinprocs}

\printbibliography[sorting=none]

\end{document}

...输出如下:

测试.png

只有@article类型会输出 ISSN 字段,而类型不会输出@inbook。我意识到这是因为 biblatex 样式ieee.bbx\printfield{issn}针对@article类型。

我怎样才能指示 biblatex 也为该类型打印 ISSN 字段@inbook- 希望使用相同的输出样式@article(例如,单词“ISSN”用小写字母排版)?

答案1

尽管一些评论者对此表示保留,但一本书同时拥有 ISBN 和 ISSN 并不罕见。许多独立的学术书籍都是作为系列的一部分发行的,通常每个条目都会被分配一个特定的“卷”号。这本书通常会有一个唯一的 ISBN,以及该系列所有书籍共享的 ISSN。Springer 的计算机科学讲稿(ISSN 0302-9743)。

xpatch包可用于修补各种 Biblatex 条目类型,以便显示 ISSN 和 ISBN。以下是一个例子(由埃格尔):

\usepackage{xpatch}
\makeatletter
\@for\next:=book,inbook,collection,incollection,proceedings,inproceedings\do{%
  \xpatchbibdriver{\next}
    {{\printfield{isbn}}}
    {{\printfield{issn}\newunit\newblock\printfield{isbn}}}
    {}{}%
}
\makeatother

让 Biblatex 合理地输出卷号也需要做一些工作。由于如何standard.bbx处理volume条目,我发现使用该number字段更方便,并定义series+numberbibmacro 如下:

\DeclareFieldFormat[book,inbook,collection,incollection,proceedings,inproceedings]%
  {number}{\bibstring{volume}~#1 \bibstring{ofseries}}
\renewbibmacro*{series+number}{%
  \printfield{number}%
  \setunit*{\addspace}%
  \printfield{series}%
  \newunit%
}

结合使用这两个技巧,如果你有一个 Biblatex 条目,例如

@book{
  author = {Gary Gnu},
  series = {Zoological Investigations},
  number = 9876,
  title  = {All About Gnus},
  year   = 1978,
  issn   = {1234-5678},
  isbn   = {978-1-56619-909-4},
}

它将在你的参考书目中出现如下内容:

Gnu,Gary(1978)。 关于 Gnus。《动物学调查》第 9876 卷。ISSN:1234-5678。ISBN:978-1-56619-909-4。

答案2

看看biblatex@article@periodical是唯一支持的类型国际期刊号字段。ISSN 是国际标准连续出版物号

与一般的连续出版物不同,期刊的定义是“具有自己独特标题的连续出版物,包含由多位撰稿人撰写的多种文章,定期发行,间隔少于一年,且不事先决定最终发行时间。”这包括杂志和期刊,但不包括会议论文集或报纸。(维基百科 - 连续剧

另一方面,书籍有 ISBN(国际标准书号),它在作者等方面都是唯一的。

ISSN 和 ISBN 代码在概念上相似,ISBN 分配给每本图书。对于期刊的特定期刊,除了整个期刊的 ISSN 代码外,还可能分配 ISBN。(心理学维基

这在以大学期刊标题发表的论文中确实很常见(杜克堡大学的研究),但由于它们仍然是独立的作品,因此被分配了一个额外的 ISBN。


总之,要用判断力来决定将哪些信息放在何处。从网站下载书目条目时,请仔细检查信息是否正确。

相关内容