我想使用 BibLaTeX 引用 ISO 标准。我发现的所有 BibTeX 指南都建议使用misc
和替换author
和editor
字段,用一个number
字段来表示 ISO 标准的完整字符串(例如“ISO 9241-210:2010”)。但是 BibLaTeX 不会显示number
。我发现这个德国螺纹建议将misc
BibliographyDriver 复制到新standard
类型(如“2.1.3 不支持的类型”一节所建议的)BibLaTeX 文档)并替换
\usebibmacro{author/editor+others/translator+others}
经过
\usebibmacro{series+number}
结果是standard.bbx
文件的完整改编副本,但重命名为din.bbx
。这是唯一/最佳解决方案吗?我不能只更改我需要的内容并以某种方式插入吗?
此链接与 TeX 无关,但可能有用:http://www.garshol.priv.no/blog/47.html
答案1
这是使用 biblatex 2.0/biber 1.0 的解决方案。您可以为此定义自己的条目类型,然后只需为新类型编写自己的驱动程序即可。由于您“拥有”此驱动程序,因此您可以用它做您想做的事情,添加新字段,按照您喜欢的方式格式化它们。这非常简单,我只是从standard.bbx
biblatex 中复制了一个现有驱动程序并对其进行了一些更改,使其成为“标准”驱动程序,并在数据模型声明(NUMBER 和 TYPE)中引用我允许此类型的字段。您实际上是在向数据模型添加内容,因为这已经指定了所有条目类型中都允许使用最常见的字段,例如 AUTHOR、YEAR 等。NUMBER 和 TYPE 不允许,所以我添加了它们。我不必在数据模型中实际定义这些字段,因为它们已经存在 - 当然,您可以用新名称创建全新的字段,但您需要一些\DeclareDatamodelFields
声明。请参阅 biblatex 2.x 文档的第 4.5.3 节。
\begin{filecontents}{test1.bib}
@STANDARD{test1,
author = {Alan Author},
title = {I Claim This Technology},
type = {ISO},
number = {ISO 9241-210:2010},
year = {2010}
}
\end{filecontents}
\documentclass{article}
\usepackage[style=numeric]{biblatex}
\addbibresource{test1.bib}
\DeclareDatamodelEntrytypes{standard}
\DeclareDatamodelEntryfields[standard]{type,number}
\DeclareBibliographyDriver{standard}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{number}%
\setunit{\addspace}\newblock
\printfield[parens]{type}%
\newunit\newblock
\usebibmacro{location+date}%
\newunit\newblock
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\usebibmacro{related}%
\usebibmacro{finentry}}
\begin{document}
\cite{test1}
\printbibliography
\end{document}
答案2
根据ietf建议,建议使用@techreport 的 RFC 参考,并提供一些其他提示。它可能也适用于 ISO。
@techreport{rfc1654,
AUTHOR = "Yakov Rekhter and Tony Li",
TITLE = "{A Border Gateway Protocol 4 (BGP-4)}",
HOWPUBLISHED = {Internet Requests for Comments},
TYPE="{RFC}",
NUMBER=1654,
PAGES = {1-56},
YEAR = {1995},
MONTH = {July},
ISSN = {2070-1721},
PUBLISHER = "{RFC Editor}",
INSTITUTION = "{RFC Editor}",
URL={http://www.rfc-editor.org/rfc/rfc1654.txt}
}
我使用 natbib 包获取[RFC1654],查看此帖子
答案3
你可以尝试https://www.ctan.org/search?phrase=din1505,它根据德国 DIN 1505 标准实现了各种文档类型的正确引用。警告:整个文档都是德文的。