Citation language sorting problem: solved!


I’ve been having a lot of difficulty with the various citation management software packages based on the CSL language, as none has a built-in style that aligns with how we’ve always formatted our citations, particularly the sort order.

From my understanding, what we want for citations by the same first author:
– single author pubs in chronological order (oldest first)
– multi-author pubs in chronological order (oldest first)

This morning I finally did the research to come up with a solution that appears to work!

This should sort all papers by their first author. Then within that, it sorts between single-author and multi-author papers. Within each of those categories it searches by year

Method 1: via a direct CSL code editor

In the macro section, add the following macro:

<macro name=”Author-count”>

<names variable=”author”>

<name form=”count” et-al-min=”3″ et-al-use-first=”2″/>

</names>

</macro>

Then, in the <bibliography> section, specify your sort as:

<sort>

<key macro=”author-short” names-min=”2″ names-use-first=”1″/>

<key macro=”Author-count”/>

<key macro=”year”/>

</sort>

Method 2: via csl.mendeley.com/visualEditor/

1) add a new macro

– named author-count

– add an element for names

– add an element to names for variable ‘name’

– under “form” select “count”

– under “et-al-min” select “3”

– under “et-al-use-first” select “2”

2) under sort, first use a macro for “author-short”

– specify “names-min” as “2”

– specify “et-al-use-first as “1”

3) under sort, then add a macro for “author-count”

– leave all options blank (default)

4) under sort, add a 3rd macro for “year”

– leave all options blank (default)

Leave a comment