BibDesk 自定义模板条件标签

BibDesk 自定义模板条件标签

我正在使用 bibfuse 来启用 BibDesk 来管理我在 Microsoft Word 2011 中的参考文献。使用 BibDesk 模板标签(Apple 的键值编码),我有以下模板:

<$pubType=article?>
<$itemIndex/>. <$pubAuthors.unpunctuatedAbbreviatedNormalizedName.stringByRemovingTeX.@componentsJoinedByCommaAndAndWithEtAlAfterThree/>. <$pubFields.Title.stringByRemovingTeX/>.<$pubFields.Journal/> <$pubFields.Year/>;<$pubFields.Volume/><$pubFields.Number/>): <$pubFields.Pages/>.

当作者数量超过 3 时,返回的参考文献如下所示:

  1. Wilcox AJ、Weinberg CR、O'Connor JF 等。早期流产的发生率。新英格兰医学杂志 1988;319(4): 189-194。

请注意两个句号(“et al..”)。当作者人数为 3 人或更少时,参考文献的格式正确,如下所示:

  1. Regan L、Braude PR 和 Trembath PL。既往生育表现对自然流产风险的影响。BMJ 1989;299(6698):541--545。

我想知道如何使用 BibDesk条件标签...AndWithEtAlAfterThree/>如果作者人数超过 3 人,则省略后面的句号。请注意,这个问题是在 SourceForge 邮件列表中提问并部分回答,但我还是搞不清楚如何根据提供的信息去实现。

答案1

正如所指出的BibDesk 帮助:G. 模板标签,条件标签具有一般结构:

<$conditionKey?>
template for non empty condition
<?$conditionKey?>
template for empty condition
</$conditionKey?>

使用条件标签来获取所需输出的一种方法是使用集合修饰键 @fourthObject收集密钥 authors像这样:

<$authors.@fourthObject?><?$authors.@fourthObject?>.</$authors.@fourthObject?>

我们可以把这段代码翻译成英语:“authors 集合中是否有第四个对象?如果有,则不输出任何内容。如果没有,则输出一个句点。”

因此,在您的模板中,替换:

<$pubAuthors.unpunctuatedAbbreviatedNormalizedName.stringByRemovingTeX.@componentsJoinedByCommaAndAndWithEtAlAfterThree/>.

和:

<$pubAuthors.unpunctuatedAbbreviatedNormalizedName.stringByRemovingTeX.@componentsJoinedByCommaAndAndWithEtAlAfterThree/><$authors.@fourthObject?><?$authors.@fourthObject?>.</$authors.@fourthObject?>

相关内容