1

I'm using bibfuse to enable BibDesk to manage my references in Microsoft Word 2011. Using the BibDesk template tags (Apple's Key-Value Coding), I have the following template:

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

When the number of authors exceeds 3, the reference returned looks like this:

  1. Wilcox AJ, Weinberg CR, O'Connor JF, et al.. Incidence of Early Loss of Pregnancy. New England Journal of Medicine 1988;319(4): 189-194.

Note the two periods ("et al.."). When the number of authors is 3 or less, the reference is correctly formatted, like this:

  1. Regan L, Braude PR, and Trembath PL. Influence of past reproductive performance on risk of spontaneous abortion. BMJ 1989;299(6698): 541--545.

I'd like to know how to use BibDesk condition tags to omit the period after the ...AndWithEtAlAfterThree/> if the number of authors is greater than 3. Note that this question was asked and partially answered on the SourceForge mailing list, but I still can't figure out how to implement based on the information provided.

0

1 Answer 1

0

As noted in BibDesk Help: G. Template Tags, condition tags have the general structure:

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

One way to use condition tags to get the output you want is to use the collection modifier key @fourthObject on the collection key authors like this:

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

We might translate this code into English as: "Is there a fourth object in the authors collection? If there is, don't output anything. If there isn't, output a period."

So, in your template, replace:

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

with:

<$pubAuthors.unpunctuatedAbbreviatedNormalizedName.stringByRemovingTeX.@componentsJoinedByCommaAndAndWithEtAlAfterThree/><$authors.@fourthObject?><?$authors.@fourthObject?>.</$authors.@fourthObject?>
1
  • Thanks, great explanation/example. Worked like a charm! And it's just what I need to use condition tags more generally. Jan 24, 2017 at 14:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .