我正在寻找一种方法来仅显示 ISBN、ISSN 或 doi 中的一个。它应该优先显示 doi 而不是 ISSN 而不是 ISBN。我目前的方法如下所列,什么都不做,这让我很困惑。有什么帮助吗?
干杯
\renewbibmacro*{issn}{%
\iftoggle{bbx:doi} {\iffieldundef{doi}{\usebibmacro{issn}}{}} {}
}
答案1
一个几乎普遍适用的简单解决方案是
\AtEveryBibitem{%
\iffieldundef{doi}
{\iffieldundef{issn}
{}
{\clearfield{isbn}}}
{\clearfield{issn}%
\clearfield{isbn}}%
}
对于标准样式,较短的
\AtEveryBibitem{%
\iffieldundef{doi}
{}
{\clearfield{issn}%
\clearfield{isbn}}%
}
应该足够了,因为没有条目同时显示 ISBN 和 ISSN - 它只是其中之一。
您可以使用 Biber 的源映射执行相同的操作,从而阻止数据到达biblatex
(这通常是用于除直接打印之外的其他用途的数据的首选 - 例如可用于排序或label...
字段的日期和名称)。
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=doi, final]
\step[fieldset=isbn, null]
\step[fieldset=issn, null]
}
}
}