Sort bib entries by year when authors are equal.

Works only when just the year is specified.

original commit: d50eac2effe61bcd7e3fa9584b5dab652b54938f
This commit is contained in:
Sam Tobin-Hochstadt 2010-11-16 13:27:50 -05:00
parent 1f37c2230a
commit 865ad8584c

View File

@ -88,12 +88,21 @@
(define (extract-bib-key b)
(author-element-names (auto-bib-author b)))
(define (extract-bib-year b)
(string->number (auto-bib-date b)))
(define (gen-bib tag group)
(let* ([author<? (lambda (a b)
(string<? (extract-bib-key a) (extract-bib-key b)))]
(let* ([author/date<?
(lambda (a b)
(or
(string<? (extract-bib-key a) (extract-bib-key b))
(and (string=? (extract-bib-key a) (extract-bib-key b))
(extract-bib-year a) (extract-bib-year b)
(< (extract-bib-year a) (extract-bib-year b)))))]
[bibs (sort (hash-map (bib-group-ht group)
(lambda (k v) k))
author<?)])
author/date<?)])
(make-part
#f
`((part ,tag))